sparkforensics-cli 0.1.0 → 0.2.2

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 (361) hide show
  1. package/README.md +6 -0
  2. package/bin/sparkforensics-analyze.mjs +113 -48
  3. package/export-template/docs/404.html +25 -0
  4. package/export-template/docs/assets/app.DQTZyGL1.js +1 -0
  5. package/export-template/docs/assets/aqe-loop.IwQSATHw.svg +1 -0
  6. package/export-template/docs/assets/aqe-loop.dark.DGbaxqJE.svg +1 -0
  7. package/export-template/docs/assets/broadcast-vs-shuffle.Db4WY1XK.svg +1 -0
  8. package/export-template/docs/assets/broadcast-vs-shuffle.dark.C7Bxs0mG.svg +1 -0
  9. package/export-template/docs/assets/cache-lifecycle.dark.B-hS7AgU.svg +1 -0
  10. package/export-template/docs/assets/cache-lifecycle.rEOVYQNU.svg +1 -0
  11. package/export-template/docs/assets/chunks/@localSearchIndexroot.DppnXnDE.js +1 -0
  12. package/export-template/docs/assets/chunks/VPLocalSearchBox.BkBIPFs6.js +9 -0
  13. package/export-template/docs/assets/chunks/duplicate-plan-subtree.dark.Cdp70QhV.js +1 -0
  14. package/export-template/docs/assets/chunks/framework.DSg0KOwT.js +20 -0
  15. package/export-template/docs/assets/chunks/retry-escalation-ladder.dark.DHipdJgZ.js +1 -0
  16. package/export-template/docs/assets/chunks/theme.DP0u1AUq.js +2 -0
  17. package/export-template/docs/assets/cold-start-timeline.DxC_Sc7w.svg +1 -0
  18. package/export-template/docs/assets/cold-start-timeline.dark.CZ17YcAG.svg +1 -0
  19. package/export-template/docs/assets/columnar-layout.PghGeOEA.svg +1 -0
  20. package/export-template/docs/assets/columnar-layout.dark.BVNlz0ff.svg +1 -0
  21. package/export-template/docs/assets/container-memory.DIO0AnIm.svg +1 -0
  22. package/export-template/docs/assets/container-memory.dark.CP-5zuCl.svg +1 -0
  23. package/export-template/docs/assets/contributor-guide_architecture_board-widgets.md.CWpj01WU.js +1 -0
  24. package/export-template/docs/assets/contributor-guide_architecture_board-widgets.md.CWpj01WU.lean.js +1 -0
  25. package/export-template/docs/assets/contributor-guide_architecture_detector-contract.md.CgzUsQ6W.js +1 -0
  26. package/export-template/docs/assets/contributor-guide_architecture_detector-contract.md.CgzUsQ6W.lean.js +1 -0
  27. package/export-template/docs/assets/contributor-guide_architecture_drill-down.md.BtPdlM7r.js +1 -0
  28. package/export-template/docs/assets/contributor-guide_architecture_drill-down.md.BtPdlM7r.lean.js +1 -0
  29. package/export-template/docs/assets/contributor-guide_architecture_impact-estimation.md.CooslVJt.js +1 -0
  30. package/export-template/docs/assets/contributor-guide_architecture_impact-estimation.md.CooslVJt.lean.js +1 -0
  31. package/export-template/docs/assets/contributor-guide_architecture_index.md.3TO9ic6w.js +1 -0
  32. package/export-template/docs/assets/contributor-guide_architecture_index.md.3TO9ic6w.lean.js +1 -0
  33. package/export-template/docs/assets/contributor-guide_architecture_overview.md.CehiRmGn.js +1 -0
  34. package/export-template/docs/assets/contributor-guide_architecture_overview.md.CehiRmGn.lean.js +1 -0
  35. package/export-template/docs/assets/contributor-guide_architecture_state-and-history.md.C-xxn0q7.js +1 -0
  36. package/export-template/docs/assets/contributor-guide_architecture_state-and-history.md.C-xxn0q7.lean.js +1 -0
  37. package/export-template/docs/assets/contributor-guide_architecture_widget-rendering.md.R27gQrgY.js +1 -0
  38. package/export-template/docs/assets/contributor-guide_architecture_widget-rendering.md.R27gQrgY.lean.js +1 -0
  39. package/export-template/docs/assets/contributor-guide_architecture_worker-protocol.md.IbnfNrV3.js +6 -0
  40. package/export-template/docs/assets/contributor-guide_architecture_worker-protocol.md.IbnfNrV3.lean.js +1 -0
  41. package/export-template/docs/assets/contributor-guide_contributing.md.CvRsdr6J.js +1 -0
  42. package/export-template/docs/assets/contributor-guide_contributing.md.CvRsdr6J.lean.js +1 -0
  43. package/export-template/docs/assets/contributor-guide_development-setup.md.DvAN_9mK.js +12 -0
  44. package/export-template/docs/assets/contributor-guide_development-setup.md.DvAN_9mK.lean.js +1 -0
  45. package/export-template/docs/assets/contributor-guide_testing.md.6rIKqSyY.js +1 -0
  46. package/export-template/docs/assets/contributor-guide_testing.md.6rIKqSyY.lean.js +1 -0
  47. package/export-template/docs/assets/dag-stages.DSz_S937.svg +1 -0
  48. package/export-template/docs/assets/dag-stages.dark.F72UzxH4.svg +1 -0
  49. package/export-template/docs/assets/driver-executor.D5pQ7YN1.svg +1 -0
  50. package/export-template/docs/assets/driver-executor.dark.BmX9cPvh.svg +1 -0
  51. package/export-template/docs/assets/duplicate-plan-subtree.B4cvN6fj.svg +1 -0
  52. package/export-template/docs/assets/duplicate-plan-subtree.dark.Dw8wS0Ag.svg +1 -0
  53. package/export-template/docs/assets/index.md.CHJVslga.js +1 -0
  54. package/export-template/docs/assets/index.md.CHJVslga.lean.js +1 -0
  55. package/export-template/docs/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 +0 -0
  56. package/export-template/docs/assets/inter-italic-cyrillic.By2_1cv3.woff2 +0 -0
  57. package/export-template/docs/assets/inter-italic-greek-ext.1u6EdAuj.woff2 +0 -0
  58. package/export-template/docs/assets/inter-italic-greek.DJ8dCoTZ.woff2 +0 -0
  59. package/export-template/docs/assets/inter-italic-latin-ext.CN1xVJS-.woff2 +0 -0
  60. package/export-template/docs/assets/inter-italic-latin.C2AdPX0b.woff2 +0 -0
  61. package/export-template/docs/assets/inter-italic-vietnamese.BSbpV94h.woff2 +0 -0
  62. package/export-template/docs/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 +0 -0
  63. package/export-template/docs/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 +0 -0
  64. package/export-template/docs/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 +0 -0
  65. package/export-template/docs/assets/inter-roman-greek.BBVDIX6e.woff2 +0 -0
  66. package/export-template/docs/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 +0 -0
  67. package/export-template/docs/assets/inter-roman-latin.Di8DUHzh.woff2 +0 -0
  68. package/export-template/docs/assets/inter-roman-vietnamese.BjW4sHH5.woff2 +0 -0
  69. package/export-template/docs/assets/join-strategy.C_FvrCEo.svg +1 -0
  70. package/export-template/docs/assets/join-strategy.dark.ChMLnNII.svg +1 -0
  71. package/export-template/docs/assets/memory-borrowing.BqQRJg0u.svg +1 -0
  72. package/export-template/docs/assets/memory-borrowing.dark.Yhh20O9C.svg +1 -0
  73. package/export-template/docs/assets/memory-regions.XHvO7jHG.svg +1 -0
  74. package/export-template/docs/assets/memory-regions.dark.D4TP9_08.svg +1 -0
  75. package/export-template/docs/assets/repartition-vs-coalesce.BovLRrpj.svg +1 -0
  76. package/export-template/docs/assets/repartition-vs-coalesce.dark.BhAczKZQ.svg +1 -0
  77. package/export-template/docs/assets/retry-escalation-ladder.DyTKJJmZ.svg +1 -0
  78. package/export-template/docs/assets/retry-escalation-ladder.dark.BdsabtU3.svg +1 -0
  79. package/export-template/docs/assets/shuffle-map-reduce.KuOEZVmg.svg +1 -0
  80. package/export-template/docs/assets/shuffle-map-reduce.dark.BgQZnFSb.svg +1 -0
  81. package/export-template/docs/assets/spill-classification.BU2euYDO.svg +1 -0
  82. package/export-template/docs/assets/spill-classification.dark.D7i1M40d.svg +1 -0
  83. package/export-template/docs/assets/style.DSixAiZE.css +1 -0
  84. package/export-template/docs/assets/tuning-reference_anti-patterns.md.Df1YMIHu.js +1 -0
  85. package/export-template/docs/assets/tuning-reference_anti-patterns.md.Df1YMIHu.lean.js +1 -0
  86. package/export-template/docs/assets/tuning-reference_aqe.md.BIsCtLzm.js +1 -0
  87. package/export-template/docs/assets/tuning-reference_aqe.md.BIsCtLzm.lean.js +1 -0
  88. package/export-template/docs/assets/tuning-reference_bottleneck-broadcast-sizing.md.CEstB3Ia.js +1 -0
  89. package/export-template/docs/assets/tuning-reference_bottleneck-broadcast-sizing.md.CEstB3Ia.lean.js +1 -0
  90. package/export-template/docs/assets/tuning-reference_bottleneck-cold-start.md.CEuy-72y.js +7 -0
  91. package/export-template/docs/assets/tuning-reference_bottleneck-cold-start.md.CEuy-72y.lean.js +1 -0
  92. package/export-template/docs/assets/tuning-reference_bottleneck-duplicate-plan-subtree.md.CIohQDfn.js +1 -0
  93. package/export-template/docs/assets/tuning-reference_bottleneck-duplicate-plan-subtree.md.CIohQDfn.lean.js +1 -0
  94. package/export-template/docs/assets/tuning-reference_bottleneck-failures.md.4z5BXGJ2.js +6 -0
  95. package/export-template/docs/assets/tuning-reference_bottleneck-failures.md.4z5BXGJ2.lean.js +1 -0
  96. package/export-template/docs/assets/tuning-reference_bottleneck-gc.md.DSxzZRK7.js +6 -0
  97. package/export-template/docs/assets/tuning-reference_bottleneck-gc.md.DSxzZRK7.lean.js +1 -0
  98. package/export-template/docs/assets/tuning-reference_bottleneck-job-failure-rate.md.BaJl__1W.js +8 -0
  99. package/export-template/docs/assets/tuning-reference_bottleneck-job-failure-rate.md.BaJl__1W.lean.js +1 -0
  100. package/export-template/docs/assets/tuning-reference_bottleneck-memory-utilization.md.DbP-SJZc.js +7 -0
  101. package/export-template/docs/assets/tuning-reference_bottleneck-memory-utilization.md.DbP-SJZc.lean.js +1 -0
  102. package/export-template/docs/assets/tuning-reference_bottleneck-retry-waste.md.D5JMjVOt.js +1 -0
  103. package/export-template/docs/assets/tuning-reference_bottleneck-retry-waste.md.D5JMjVOt.lean.js +1 -0
  104. package/export-template/docs/assets/tuning-reference_bottleneck-shuffle.md.CM-nTmIH.js +12 -0
  105. package/export-template/docs/assets/tuning-reference_bottleneck-shuffle.md.CM-nTmIH.lean.js +1 -0
  106. package/export-template/docs/assets/tuning-reference_bottleneck-skew.md.BdUwiDhn.js +14 -0
  107. package/export-template/docs/assets/tuning-reference_bottleneck-skew.md.BdUwiDhn.lean.js +1 -0
  108. package/export-template/docs/assets/tuning-reference_bottleneck-slow-host.md.BlIo6UDW.js +7 -0
  109. package/export-template/docs/assets/tuning-reference_bottleneck-slow-host.md.BlIo6UDW.lean.js +1 -0
  110. package/export-template/docs/assets/tuning-reference_bottleneck-small-files.md.B8kloyx8.js +5 -0
  111. package/export-template/docs/assets/tuning-reference_bottleneck-small-files.md.B8kloyx8.lean.js +1 -0
  112. package/export-template/docs/assets/tuning-reference_bottleneck-spill.md.PNH7mITt.js +6 -0
  113. package/export-template/docs/assets/tuning-reference_bottleneck-spill.md.PNH7mITt.lean.js +1 -0
  114. package/export-template/docs/assets/tuning-reference_bottleneck-straggler.md.DY36fHN5.js +7 -0
  115. package/export-template/docs/assets/tuning-reference_bottleneck-straggler.md.DY36fHN5.lean.js +1 -0
  116. package/export-template/docs/assets/tuning-reference_bottleneck-tiny-tasks.md.QTV7O8kU.js +8 -0
  117. package/export-template/docs/assets/tuning-reference_bottleneck-tiny-tasks.md.QTV7O8kU.lean.js +1 -0
  118. package/export-template/docs/assets/tuning-reference_bottleneck-utilization.md.DTiueZC3.js +5 -0
  119. package/export-template/docs/assets/tuning-reference_bottleneck-utilization.md.DTiueZC3.lean.js +1 -0
  120. package/export-template/docs/assets/tuning-reference_caching.md.B7aQ8asB.js +1 -0
  121. package/export-template/docs/assets/tuning-reference_caching.md.B7aQ8asB.lean.js +1 -0
  122. package/export-template/docs/assets/tuning-reference_cluster-config.md.ZVmDGsQ3.js +1 -0
  123. package/export-template/docs/assets/tuning-reference_cluster-config.md.ZVmDGsQ3.lean.js +1 -0
  124. package/export-template/docs/assets/tuning-reference_config.md.UvveiWG3.js +1 -0
  125. package/export-template/docs/assets/tuning-reference_config.md.UvveiWG3.lean.js +1 -0
  126. package/export-template/docs/assets/tuning-reference_data-formats.md.bjCAWH3N.js +1 -0
  127. package/export-template/docs/assets/tuning-reference_data-formats.md.bjCAWH3N.lean.js +1 -0
  128. package/export-template/docs/assets/tuning-reference_index.md.BQ_NooMV.js +1 -0
  129. package/export-template/docs/assets/tuning-reference_index.md.BQ_NooMV.lean.js +1 -0
  130. package/export-template/docs/assets/tuning-reference_intro.md.CobD-lGB.js +1 -0
  131. package/export-template/docs/assets/tuning-reference_intro.md.CobD-lGB.lean.js +1 -0
  132. package/export-template/docs/assets/tuning-reference_joins.md.BtKs_CuW.js +1 -0
  133. package/export-template/docs/assets/tuning-reference_joins.md.BtKs_CuW.lean.js +1 -0
  134. package/export-template/docs/assets/tuning-reference_memory-model.md.DhT-n4y3.js +1 -0
  135. package/export-template/docs/assets/tuning-reference_memory-model.md.DhT-n4y3.lean.js +1 -0
  136. package/export-template/docs/assets/tuning-reference_metrics.md.mLOh7Apj.js +1 -0
  137. package/export-template/docs/assets/tuning-reference_metrics.md.mLOh7Apj.lean.js +1 -0
  138. package/export-template/docs/assets/tuning-reference_partitioning.md.q0zKF_8X.js +1 -0
  139. package/export-template/docs/assets/tuning-reference_partitioning.md.q0zKF_8X.lean.js +1 -0
  140. package/export-template/docs/assets/tuning-reference_pyspark.md.DDCfvN9t.js +6 -0
  141. package/export-template/docs/assets/tuning-reference_pyspark.md.DDCfvN9t.lean.js +1 -0
  142. package/export-template/docs/assets/tuning-reference_shuffle.md.BZZ7R4Ix.js +1 -0
  143. package/export-template/docs/assets/tuning-reference_shuffle.md.BZZ7R4Ix.lean.js +1 -0
  144. package/export-template/docs/assets/tuning-reference_spark-architecture.md.Dwzm5avO.js +1 -0
  145. package/export-template/docs/assets/tuning-reference_spark-architecture.md.Dwzm5avO.lean.js +1 -0
  146. package/export-template/docs/assets/tuning-reference_table-formats.md.D6wj-2dX.js +1 -0
  147. package/export-template/docs/assets/tuning-reference_table-formats.md.D6wj-2dX.lean.js +1 -0
  148. package/export-template/docs/assets/udf-execution-models.BUFDICuG.svg +1 -0
  149. package/export-template/docs/assets/udf-execution-models.dark.YTNS6GDq.svg +1 -0
  150. package/export-template/docs/assets/user-guide_alternative-log-retrieval.md.B4tPGIal.js +1 -0
  151. package/export-template/docs/assets/user-guide_alternative-log-retrieval.md.B4tPGIal.lean.js +1 -0
  152. package/export-template/docs/assets/user-guide_getting-started.md.BJvwLEIM.js +3 -0
  153. package/export-template/docs/assets/user-guide_getting-started.md.BJvwLEIM.lean.js +1 -0
  154. package/export-template/docs/assets/user-guide_mcp-tools.md.Vi3RoflJ.js +125 -0
  155. package/export-template/docs/assets/user-guide_mcp-tools.md.Vi3RoflJ.lean.js +1 -0
  156. package/export-template/docs/assets/user-guide_run-comparison.md.CQc1aoU8.js +1 -0
  157. package/export-template/docs/assets/user-guide_run-comparison.md.CQc1aoU8.lean.js +1 -0
  158. package/export-template/docs/assets/user-guide_understanding-findings.md.DL1UDhvR.js +1 -0
  159. package/export-template/docs/assets/user-guide_understanding-findings.md.DL1UDhvR.lean.js +1 -0
  160. package/export-template/docs/contributor-guide/architecture/board-widgets.html +25 -0
  161. package/export-template/docs/contributor-guide/architecture/detector-contract.html +25 -0
  162. package/export-template/docs/contributor-guide/architecture/drill-down.html +25 -0
  163. package/export-template/docs/contributor-guide/architecture/impact-estimation.html +25 -0
  164. package/export-template/docs/contributor-guide/architecture/index.html +25 -0
  165. package/export-template/docs/contributor-guide/architecture/overview.html +25 -0
  166. package/export-template/docs/contributor-guide/architecture/state-and-history.html +25 -0
  167. package/export-template/docs/contributor-guide/architecture/widget-rendering.html +25 -0
  168. package/export-template/docs/contributor-guide/architecture/worker-protocol.html +30 -0
  169. package/export-template/docs/contributor-guide/contributing.html +25 -0
  170. package/export-template/docs/contributor-guide/development-setup.html +36 -0
  171. package/export-template/docs/contributor-guide/testing.html +25 -0
  172. package/export-template/docs/favicon.svg +4 -0
  173. package/export-template/docs/hashmap.json +1 -0
  174. package/export-template/docs/index.html +25 -0
  175. package/export-template/docs/package.json +1 -0
  176. package/export-template/docs/tuning-reference/anti-patterns.html +25 -0
  177. package/export-template/docs/tuning-reference/aqe.html +25 -0
  178. package/export-template/docs/tuning-reference/bottleneck-broadcast-sizing.html +25 -0
  179. package/export-template/docs/tuning-reference/bottleneck-cold-start.html +31 -0
  180. package/export-template/docs/tuning-reference/bottleneck-duplicate-plan-subtree.html +25 -0
  181. package/export-template/docs/tuning-reference/bottleneck-failures.html +30 -0
  182. package/export-template/docs/tuning-reference/bottleneck-gc.html +30 -0
  183. package/export-template/docs/tuning-reference/bottleneck-job-failure-rate.html +32 -0
  184. package/export-template/docs/tuning-reference/bottleneck-memory-utilization.html +31 -0
  185. package/export-template/docs/tuning-reference/bottleneck-retry-waste.html +25 -0
  186. package/export-template/docs/tuning-reference/bottleneck-shuffle.html +36 -0
  187. package/export-template/docs/tuning-reference/bottleneck-skew.html +38 -0
  188. package/export-template/docs/tuning-reference/bottleneck-slow-host.html +31 -0
  189. package/export-template/docs/tuning-reference/bottleneck-small-files.html +29 -0
  190. package/export-template/docs/tuning-reference/bottleneck-spill.html +30 -0
  191. package/export-template/docs/tuning-reference/bottleneck-straggler.html +31 -0
  192. package/export-template/docs/tuning-reference/bottleneck-tiny-tasks.html +32 -0
  193. package/export-template/docs/tuning-reference/bottleneck-utilization.html +29 -0
  194. package/export-template/docs/tuning-reference/caching.html +25 -0
  195. package/export-template/docs/tuning-reference/cluster-config.html +25 -0
  196. package/export-template/docs/tuning-reference/config.html +25 -0
  197. package/export-template/docs/tuning-reference/data-formats.html +25 -0
  198. package/export-template/docs/tuning-reference/index.html +25 -0
  199. package/export-template/docs/tuning-reference/intro.html +25 -0
  200. package/export-template/docs/tuning-reference/joins.html +25 -0
  201. package/export-template/docs/tuning-reference/memory-model.html +25 -0
  202. package/export-template/docs/tuning-reference/metrics.html +25 -0
  203. package/export-template/docs/tuning-reference/partitioning.html +25 -0
  204. package/export-template/docs/tuning-reference/pyspark.html +30 -0
  205. package/export-template/docs/tuning-reference/shuffle.html +25 -0
  206. package/export-template/docs/tuning-reference/spark-architecture.html +25 -0
  207. package/export-template/docs/tuning-reference/table-formats.html +25 -0
  208. package/export-template/docs/user-guide/alternative-log-retrieval.html +25 -0
  209. package/export-template/docs/user-guide/getting-started.html +27 -0
  210. package/export-template/docs/user-guide/mcp-tools.html +149 -0
  211. package/export-template/docs/user-guide/run-comparison.html +25 -0
  212. package/export-template/docs/user-guide/understanding-findings.html +25 -0
  213. package/export-template/docs/vp-icons.css +0 -0
  214. package/export-template/favicon.svg +4 -0
  215. package/export-template/index.html +111 -0
  216. package/export-template/parser-worker-DyjiQvfP.js +112 -0
  217. package/export-template/sample-runs/sample-run.ndjson.gz +0 -0
  218. package/package.json +20 -6
  219. package/vendor-core/analyzer.js +74 -74
  220. package/vendor-core/cli/budgets.js +13 -27
  221. package/vendor-core/cli/collect-run.js +43 -19
  222. package/vendor-core/core-count.js +25 -27
  223. package/vendor-core/core-locality-ratio.js +4 -11
  224. package/vendor-core/core-time-series.js +6 -12
  225. package/vendor-core/core-usage-locality.js +3 -4
  226. package/vendor-core/detectors.js +395 -389
  227. package/vendor-core/docs-config.js +69 -21
  228. package/vendor-core/docs-content/chapters/01-intro.md +32 -0
  229. package/vendor-core/docs-content/chapters/02-spark-architecture.md +76 -0
  230. package/vendor-core/docs-content/chapters/03-memory-model.md +73 -0
  231. package/vendor-core/docs-content/chapters/04-partitioning.md +65 -0
  232. package/vendor-core/docs-content/chapters/05-joins.md +62 -0
  233. package/vendor-core/docs-content/chapters/06-shuffle.md +59 -0
  234. package/vendor-core/docs-content/chapters/07-data-formats.md +81 -0
  235. package/vendor-core/docs-content/chapters/07b-table-formats.md +56 -0
  236. package/vendor-core/docs-content/chapters/08-caching.md +58 -0
  237. package/vendor-core/docs-content/chapters/09-pyspark.md +78 -0
  238. package/vendor-core/docs-content/chapters/10-aqe.md +167 -0
  239. package/vendor-core/docs-content/chapters/11-cluster-config.md +170 -0
  240. package/vendor-core/docs-content/chapters/12-anti-patterns.md +171 -0
  241. package/vendor-core/docs-content/chapters/14-metrics.md +87 -0
  242. package/vendor-core/docs-content/chapters/15-config.md +93 -0
  243. package/vendor-core/docs-content/chapters/nav-index.json +370 -0
  244. package/vendor-core/docs-content/detection/cache.md +7 -0
  245. package/vendor-core/docs-content/detection/cfg.md +15 -0
  246. package/vendor-core/docs-content/detection/chrn.md +9 -0
  247. package/vendor-core/docs-content/detection/cold.md +4 -0
  248. package/vendor-core/docs-content/detection/cstor.md +4 -0
  249. package/vendor-core/docs-content/detection/fail.md +5 -0
  250. package/vendor-core/docs-content/detection/gc.md +4 -0
  251. package/vendor-core/docs-content/detection/host.md +5 -0
  252. package/vendor-core/docs-content/detection/incmp.md +6 -0
  253. package/vendor-core/docs-content/detection/jobs.md +4 -0
  254. package/vendor-core/docs-content/detection/local.md +6 -0
  255. package/vendor-core/docs-content/detection/mem.md +10 -0
  256. package/vendor-core/docs-content/detection/part.md +5 -0
  257. package/vendor-core/docs-content/detection/plan.md +14 -0
  258. package/vendor-core/docs-content/detection/retry.md +4 -0
  259. package/vendor-core/docs-content/detection/sfail.md +5 -0
  260. package/vendor-core/docs-content/detection/shape.md +5 -0
  261. package/vendor-core/docs-content/detection/shfl.md +4 -0
  262. package/vendor-core/docs-content/detection/skew.md +6 -0
  263. package/vendor-core/docs-content/detection/slow.md +6 -0
  264. package/vendor-core/docs-content/detection/spec.md +8 -0
  265. package/vendor-core/docs-content/detection/spill.md +7 -0
  266. package/vendor-core/docs-content/detection/strag.md +5 -0
  267. package/vendor-core/docs-content/detection/tiny.md +4 -0
  268. package/vendor-core/docs-content/detection/util.md +4 -0
  269. package/vendor-core/docs-content/diagrams/aqe-loop.dark.svg +1 -0
  270. package/vendor-core/docs-content/diagrams/aqe-loop.svg +1 -0
  271. package/vendor-core/docs-content/diagrams/broadcast-vs-shuffle.dark.svg +1 -0
  272. package/vendor-core/docs-content/diagrams/broadcast-vs-shuffle.svg +1 -0
  273. package/vendor-core/docs-content/diagrams/cache-lifecycle.dark.svg +1 -0
  274. package/vendor-core/docs-content/diagrams/cache-lifecycle.svg +1 -0
  275. package/vendor-core/docs-content/diagrams/cold-start-timeline.dark.svg +1 -0
  276. package/vendor-core/docs-content/diagrams/cold-start-timeline.svg +1 -0
  277. package/vendor-core/docs-content/diagrams/columnar-layout.dark.svg +1 -0
  278. package/vendor-core/docs-content/diagrams/columnar-layout.svg +1 -0
  279. package/vendor-core/docs-content/diagrams/container-memory.dark.svg +1 -0
  280. package/vendor-core/docs-content/diagrams/container-memory.svg +1 -0
  281. package/vendor-core/docs-content/diagrams/dag-stages.dark.svg +1 -0
  282. package/vendor-core/docs-content/diagrams/dag-stages.svg +1 -0
  283. package/vendor-core/docs-content/diagrams/driver-executor.dark.svg +1 -0
  284. package/vendor-core/docs-content/diagrams/driver-executor.svg +1 -0
  285. package/vendor-core/docs-content/diagrams/duplicate-plan-subtree.dark.svg +1 -0
  286. package/vendor-core/docs-content/diagrams/duplicate-plan-subtree.svg +1 -0
  287. package/vendor-core/docs-content/diagrams/join-strategy.dark.svg +1 -0
  288. package/vendor-core/docs-content/diagrams/join-strategy.svg +1 -0
  289. package/vendor-core/docs-content/diagrams/memory-borrowing.dark.svg +1 -0
  290. package/vendor-core/docs-content/diagrams/memory-borrowing.svg +1 -0
  291. package/vendor-core/docs-content/diagrams/memory-regions.dark.svg +1 -0
  292. package/vendor-core/docs-content/diagrams/memory-regions.svg +1 -0
  293. package/vendor-core/docs-content/diagrams/repartition-vs-coalesce.dark.svg +1 -0
  294. package/vendor-core/docs-content/diagrams/repartition-vs-coalesce.svg +1 -0
  295. package/vendor-core/docs-content/diagrams/retry-escalation-ladder.dark.svg +1 -0
  296. package/vendor-core/docs-content/diagrams/retry-escalation-ladder.svg +1 -0
  297. package/vendor-core/docs-content/diagrams/shuffle-map-reduce.dark.svg +1 -0
  298. package/vendor-core/docs-content/diagrams/shuffle-map-reduce.svg +1 -0
  299. package/vendor-core/docs-content/diagrams/spill-classification.dark.svg +1 -0
  300. package/vendor-core/docs-content/diagrams/spill-classification.svg +1 -0
  301. package/vendor-core/docs-content/diagrams/udf-execution-models.dark.svg +1 -0
  302. package/vendor-core/docs-content/diagrams/udf-execution-models.svg +1 -0
  303. package/vendor-core/docs-content/tuning/broadcast-sizing.md +78 -0
  304. package/vendor-core/docs-content/tuning/cold-start.md +81 -0
  305. package/vendor-core/docs-content/tuning/duplicate-plan-subtree.md +45 -0
  306. package/vendor-core/docs-content/tuning/failures.md +124 -0
  307. package/vendor-core/docs-content/tuning/gc.md +110 -0
  308. package/vendor-core/docs-content/tuning/job-failure-rate.md +101 -0
  309. package/vendor-core/docs-content/tuning/memory-utilization.md +58 -0
  310. package/vendor-core/docs-content/tuning/retry-waste.md +90 -0
  311. package/vendor-core/docs-content/tuning/shuffle.md +154 -0
  312. package/vendor-core/docs-content/tuning/skew.md +123 -0
  313. package/vendor-core/docs-content/tuning/slow-host.md +117 -0
  314. package/vendor-core/docs-content/tuning/small-files.md +99 -0
  315. package/vendor-core/docs-content/tuning/spill.md +114 -0
  316. package/vendor-core/docs-content/tuning/straggler.md +103 -0
  317. package/vendor-core/docs-content/tuning/tiny-tasks.md +94 -0
  318. package/vendor-core/docs-content/tuning/utilization.md +90 -0
  319. package/vendor-core/docs-site-config.js +10 -17
  320. package/vendor-core/efficiency-model.js +7 -13
  321. package/vendor-core/etl-phases.js +3 -5
  322. package/vendor-core/event-handlers.js +232 -134
  323. package/vendor-core/event-schemas.js +48 -114
  324. package/vendor-core/evidence-availability.js +5 -10
  325. package/vendor-core/evidence-report.js +73 -123
  326. package/vendor-core/export-data.js +48 -0
  327. package/vendor-core/finding-action-label.js +4 -10
  328. package/vendor-core/finding-filter-predicate.js +3 -7
  329. package/vendor-core/finding-generic-recommendation.js +112 -0
  330. package/vendor-core/finding-names.js +51 -0
  331. package/vendor-core/format-utils.js +112 -38
  332. package/vendor-core/impact-band.js +18 -24
  333. package/vendor-core/impact-estimator.js +38 -74
  334. package/vendor-core/ingest.js +7 -13
  335. package/vendor-core/job-groups.js +3 -6
  336. package/vendor-core/list-runs.js +278 -0
  337. package/vendor-core/load-vendored.js +6 -12
  338. package/vendor-core/log-header-peek.js +81 -0
  339. package/vendor-core/lz4-block.js +4 -6
  340. package/vendor-core/mcp-server-factory.js +38 -8
  341. package/vendor-core/mcp-tools.js +105 -76
  342. package/vendor-core/model-assembler.js +8 -16
  343. package/vendor-core/occupancy.js +5 -9
  344. package/vendor-core/parser-worker.js +20 -29
  345. package/vendor-core/plan-dot.js +2 -5
  346. package/vendor-core/plan-duration-attribution.js +78 -29
  347. package/vendor-core/plan-graph-model.js +126 -69
  348. package/vendor-core/plan-node-detail.js +31 -17
  349. package/vendor-core/plan-summary.js +19 -8
  350. package/vendor-core/recommendation-rollup.js +35 -39
  351. package/vendor-core/redact.js +72 -16
  352. package/vendor-core/rolling-log-reassembly.js +4 -6
  353. package/vendor-core/run-comparison.js +86 -72
  354. package/vendor-core/scaling-sim.js +5 -7
  355. package/vendor-core/session-snapshot.js +1 -1
  356. package/vendor-core/shs-fetch.js +4 -6
  357. package/vendor-core/shs-load.js +9 -13
  358. package/vendor-core/shs-request.js +1 -1
  359. package/vendor-core/stage-quantiles.js +14 -0
  360. package/vendor-core/types.js +78 -18
  361. package/vendor-core/wasted-core-hours.js +7 -12
package/README.md ADDED
@@ -0,0 +1,6 @@
1
+ # sparkforensics-cli
2
+
3
+ CLI to analyze Apache Spark event logs for performance bottlenecks.
4
+
5
+ See the [main README](https://github.com/shuffle-works/sparkforensics#readme)
6
+ for install instructions, usage examples, and the full flag reference.
@@ -1,17 +1,20 @@
1
1
  #!/usr/bin/env node
2
2
  import { parseArgs } from 'node:util';
3
- import { writeFileSync, existsSync, realpathSync } from 'node:fs';
4
- import { join, dirname } from 'node:path';
3
+ import {
4
+ writeFileSync, existsSync, realpathSync,
5
+ mkdtempSync, mkdirSync, rmSync, renameSync, readdirSync, cpSync,
6
+ } from 'node:fs';
7
+ import { join, dirname, resolve } from 'node:path';
5
8
  import { fileURLToPath, pathToFileURL } from 'node:url';
9
+ import { gzipSync } from 'node:zlib';
6
10
 
7
11
  const binDir = dirname(fileURLToPath(import.meta.url));
8
12
  const pkgDir = dirname(binDir);
9
13
 
10
- // vendor-core/ exists only in a published/standalone install (populated by
11
- // scripts/vendor-core.mjs at pack time); in the monorepo it falls back to
12
- // the real packages/core/src/ sibling. load-vendored.js itself is the one
13
- // module this bootstrap has to locate by hand (see its own header comment);
14
- // every other core module then loads through its exported loadVendored().
14
+ // vendor-core/ exists only in a published install (populated by vendor-core.mjs
15
+ // at pack time); the monorepo falls back to the packages/core/src/ sibling.
16
+ // load-vendored.js is the one module located by hand; the rest load through its
17
+ // exported loadVendored().
15
18
  const vendoredHelper = join(pkgDir, 'vendor-core', 'load-vendored.js');
16
19
  const helperPath = existsSync(vendoredHelper) ? vendoredHelper : join(pkgDir, '..', 'core', 'src', 'load-vendored.js');
17
20
  const { loadVendored } = await import(pathToFileURL(helperPath).href);
@@ -19,12 +22,13 @@ const loadCore = (moduleName) => loadVendored(pkgDir, moduleName);
19
22
 
20
23
  const { collectRun } = await loadCore('cli/collect-run');
21
24
  const { resolveFromShs } = await loadCore('shs-load');
22
- const { analyze } = await loadCore('analyzer');
25
+ const { analyze, auditConfig } = await loadCore('analyzer');
23
26
  const { deriveEvidenceAvailability } = await loadCore('evidence-availability');
24
27
  const { buildEvidenceReport, toFindingsFilter } = await loadCore('evidence-report');
25
28
  const { evaluateBudgets } = await loadCore('cli/budgets');
26
29
  const { buildComparison, renderComparisonMarkdown } = await loadCore('run-comparison');
27
- const { redactComparison } = await loadCore('redact');
30
+ const { redactComparison, redactExportData } = await loadCore('redact');
31
+ const { buildExportRunData } = await loadCore('export-data');
28
32
 
29
33
  const USAGE = `Usage: sparkforensics-analyze <event-log-file|rolling-log-dir> [options]
30
34
  sparkforensics-analyze --shs-base-url <url> --app-id <id> [--attempt-id <id>] [options]
@@ -32,6 +36,10 @@ const USAGE = `Usage: sparkforensics-analyze <event-log-file|rolling-log-dir> [o
32
36
  Options:
33
37
  --format md|json Output format (default: json).
34
38
  --out <path> Write output to a file instead of stdout.
39
+ --export-html <dir> Write a self-contained HTML dashboard for this run into <dir>
40
+ (must not exist or be empty). Open <dir>/index.html directly, no
41
+ server required. Can be combined with --format/--out, which write
42
+ their own separate output unchanged.
35
43
  --max-runtime <ms> Fail if app runtime exceeds this many ms.
36
44
  --max-spill <gb> Fail if any stage spills more than this many GB.
37
45
  --max-skew <ratio> Fail if any stage's P95/median duration ratio exceeds this.
@@ -82,6 +90,7 @@ function parseCliArgs(argv) {
82
90
  'regression-metric': { type: 'string' },
83
91
  'fail-on-introduced': { type: 'string' },
84
92
  redact: { type: 'boolean' },
93
+ 'export-html': { type: 'string' },
85
94
  impact: { type: 'string' },
86
95
  type: { type: 'string' },
87
96
  stage: { type: 'string' },
@@ -104,7 +113,43 @@ function splitCsv(value) {
104
113
  async function collectWithEvidence(path) {
105
114
  const { appModel, skippedLines } = await collectRun(path);
106
115
  appModel.evidenceAvailability = deriveEvidenceAvailability(appModel, { skippedLines });
107
- return appModel;
116
+ return { appModel, skippedLines };
117
+ }
118
+
119
+ async function writeHtmlExport(destDir, appModel, catalog, skippedLines, { redact }) {
120
+ const configFindings = auditConfig(appModel.app);
121
+ let exportData = buildExportRunData(appModel, catalog, configFindings, skippedLines);
122
+ if (redact) exportData = redactExportData(exportData);
123
+
124
+ // Published install: packages/cli/export-template/ (populated by
125
+ // scripts/vendor-export-template.mjs at prepack time). Monorepo dev mode:
126
+ // fall back to the repo-root dist-export/ build output directly, same
127
+ // fallback pattern as loadCore()'s vendor-core/ -> core/src/ resolution.
128
+ const vendoredTemplate = join(pkgDir, 'export-template');
129
+ const templateDir = existsSync(vendoredTemplate) ? vendoredTemplate : join(pkgDir, '..', '..', 'dist-export');
130
+ if (!existsSync(templateDir)) {
131
+ throw new Error(`export template not found at ${templateDir} (run \`npm run build:export\` first)`);
132
+ }
133
+
134
+ const parentDir = dirname(destDir);
135
+ mkdirSync(parentDir, { recursive: true });
136
+ const tempDir = mkdtempSync(join(parentDir, '.sparkforensics-export-'));
137
+ try {
138
+ cpSync(templateDir, tempDir, { recursive: true });
139
+ // gzip + base64 to shrink the artifact; decodeRunPayload (hydrate-store.ts)
140
+ // reverses it. base64's alphabet (A-Za-z0-9+/=) can't contain "<", so log
141
+ // free text can't inject a "</script>" break-out — no escaping needed.
142
+ const json = JSON.stringify(exportData);
143
+ const base64 = gzipSync(json).toString('base64');
144
+ writeFileSync(join(tempDir, 'data.js'), `window.__SPARKFORENSICS_RUN_GZ__ = "${base64}";\n`);
145
+ // Clear destDir (confirmed empty-or-absent by the caller) right before the
146
+ // rename to avoid platform rename-onto-dir quirks. Kept inside the try so a
147
+ // rename failure surfaces the same actionable error as a write failure.
148
+ rmSync(destDir, { recursive: true, force: true });
149
+ renameSync(tempDir, destDir);
150
+ } catch (e) {
151
+ throw new Error(`${e.message} (export left at ${tempDir}; remove it manually)`, { cause: e });
152
+ }
108
153
  }
109
154
 
110
155
  export async function main(argv, { fetchImpl } = {}) {
@@ -136,11 +181,26 @@ export async function main(argv, { fetchImpl } = {}) {
136
181
  return bail(`Invalid value for --format (expected "json" or "md").\n${USAGE}`, 2);
137
182
  }
138
183
 
184
+ let exportHtmlDir;
185
+ if (values['export-html'] !== undefined) {
186
+ exportHtmlDir = resolve(values['export-html']);
187
+ // readdirSync throws ENOTDIR when the path exists but is a regular file
188
+ // (e.g. a report path accidentally reused as the export target): catch
189
+ // that here so it becomes a clean bail() instead of an uncaught crash.
190
+ let existingContents;
191
+ try {
192
+ existingContents = existsSync(exportHtmlDir) ? readdirSync(exportHtmlDir) : [];
193
+ } catch (e) {
194
+ return bail(`--export-html: ${exportHtmlDir} exists but is not a directory (${e.message}).\n${USAGE}`, 2);
195
+ }
196
+ if (existingContents.length > 0) {
197
+ return bail(`--export-html: ${exportHtmlDir} already exists and is not empty.\n${USAGE}`, 2);
198
+ }
199
+ }
200
+
139
201
  const usingBaseline = values.baseline !== undefined;
140
- // Single source of truth for which flags need --baseline: a future flag
141
- // just gets appended here, instead of also needing its own OR-condition
142
- // above (easy to forget, and forgetting it means the flag is silently
143
- // accepted without --baseline instead of erroring).
202
+ // Single source of truth for which flags need --baseline: append a future
203
+ // flag here rather than adding its own OR-condition (easy to forget).
144
204
  const BASELINE_DEPENDENT_FLAGS = ['max-regression-pct', 'regression-metric', 'fail-on-introduced'];
145
205
  if (!usingBaseline && BASELINE_DEPENDENT_FLAGS.some((flag) => values[flag] !== undefined)) {
146
206
  return bail(`--max-regression-pct/--regression-metric/--fail-on-introduced require --baseline.\n${USAGE}`, 2);
@@ -157,10 +217,9 @@ export async function main(argv, { fetchImpl } = {}) {
157
217
  minEfficiencyPct: values['min-efficiency'] != null ? Number(values['min-efficiency']) : undefined,
158
218
  maxRegressionPct: values['max-regression-pct'] != null ? Number(values['max-regression-pct']) : undefined,
159
219
  };
160
- // Derived from `budgets`, not hardcoded: every key on that object literal
161
- // above is numeric (regressionMetric/failOnIntroduced are only added below,
162
- // after this validation loop runs), so a future numeric budget field can't
163
- // silently skip this check by only being added to one of the two places.
220
+ // Derived from `budgets`, not hardcoded: every key above is numeric
221
+ // (regressionMetric/failOnIntroduced are added below), so a future numeric
222
+ // budget field can't skip this check.
164
223
  const NUMERIC_BUDGET_FLAGS = Object.keys(budgets);
165
224
  for (const flag of NUMERIC_BUDGET_FLAGS) {
166
225
  const value = budgets[flag];
@@ -168,13 +227,10 @@ export async function main(argv, { fetchImpl } = {}) {
168
227
  return bail(`Invalid numeric value for ${flag}.\n${USAGE}`, 2);
169
228
  }
170
229
  }
171
- // Only set when the user actually passed --regression-metric: evaluateBudgets()
172
- // now treats "regressionMetric is set" as "the caller asked for a regression
173
- // check" (guarding against it being set without --max-regression-pct), so
174
- // defaulting it here unconditionally would trip that guard on every run that
175
- // never touched either flag. checkRegression already falls back to
176
- // 'wallClock' itself (`budgets.regressionMetric ?? 'wallClock'`) once
177
- // maxRegressionPct is actually set, so no default is needed here.
230
+ // Only set when the user passed --regression-metric: evaluateBudgets() treats
231
+ // "regressionMetric is set" as "caller asked for a regression check", so
232
+ // defaulting it here would trip that guard on runs that touched neither flag.
233
+ // checkRegression falls back to 'wallClock' itself once maxRegressionPct is set.
178
234
  if (values['regression-metric'] !== undefined) budgets.regressionMetric = values['regression-metric'];
179
235
  if (values['fail-on-introduced'] !== undefined) budgets.failOnIntroduced = values['fail-on-introduced'];
180
236
 
@@ -191,25 +247,30 @@ export async function main(argv, { fetchImpl } = {}) {
191
247
 
192
248
  let appModel;
193
249
  let baselineAppModel;
250
+ // Assigned by every branch below before it's read.
251
+ let skippedLines;
194
252
  try {
195
253
  if (usingShs) {
196
254
  const shsPromise = resolveFromShs(
197
255
  values['shs-base-url'], values['app-id'], values['attempt-id'],
198
256
  fetchImpl !== undefined ? { fetchImpl } : {},
199
257
  );
200
- // The SHS fetch (network) and a local --baseline parse (disk) are
201
- // independent, so run them concurrently. Not applied to the
202
- // local-candidate+local-baseline combination below: both sides there
203
- // are synchronous-equivalent CPU work reading the same way, so
204
- // parallelizing wouldn't help and would just add indirection.
258
+ // SHS fetch (network) and local --baseline parse (disk) are independent,
259
+ // so run them concurrently. Not done for local+local below: both are CPU
260
+ // work, so parallelizing wouldn't help.
205
261
  if (usingBaseline) {
206
- [appModel, baselineAppModel] = await Promise.all([shsPromise, collectWithEvidence(values.baseline)]);
262
+ const [shsResult, baselineResult] = await Promise.all([shsPromise, collectWithEvidence(values.baseline)]);
263
+ ({ appModel, skippedLines } = shsResult);
264
+ baselineAppModel = baselineResult.appModel;
207
265
  } else {
208
- appModel = await shsPromise;
266
+ ({ appModel, skippedLines } = await shsPromise);
209
267
  }
210
268
  } else {
211
- appModel = await collectWithEvidence(positionals[0]);
212
- if (usingBaseline) baselineAppModel = await collectWithEvidence(values.baseline);
269
+ ({ appModel, skippedLines } = await collectWithEvidence(positionals[0]));
270
+ if (usingBaseline) {
271
+ const baselineResult = await collectWithEvidence(values.baseline);
272
+ baselineAppModel = baselineResult.appModel;
273
+ }
213
274
  }
214
275
  } catch (e) {
215
276
  process.stderr.write(`${e.message}\n`);
@@ -223,6 +284,16 @@ export async function main(argv, { fetchImpl } = {}) {
223
284
  );
224
285
  const catalog = analyzeModel(appModel);
225
286
 
287
+ if (exportHtmlDir !== undefined) {
288
+ try {
289
+ await writeHtmlExport(exportHtmlDir, appModel, catalog, skippedLines, { redact: values.redact });
290
+ } catch (e) {
291
+ process.stderr.write(`--export-html failed: ${e.message}\n`);
292
+ process.exitCode = 2;
293
+ return;
294
+ }
295
+ }
296
+
226
297
  let comparison;
227
298
  if (usingBaseline) {
228
299
  const baselineCatalog = analyzeModel(baselineAppModel);
@@ -230,9 +301,8 @@ export async function main(argv, { fetchImpl } = {}) {
230
301
  { label: 'baseline', appModel: baselineAppModel, catalog: baselineCatalog },
231
302
  { label: 'candidate', appModel, catalog },
232
303
  );
233
- // --redact must also scrub the comparison section: stage names in
234
- // comparison.findings/baseStages/candStages carry raw Spark stage text,
235
- // which is exactly what --redact promises to pseudonymize.
304
+ // --redact must also scrub the comparison section: stage names there carry
305
+ // raw Spark stage text, which --redact promises to pseudonymize.
236
306
  if (values.redact) comparison = redactComparison(comparison);
237
307
  }
238
308
 
@@ -264,9 +334,8 @@ export async function main(argv, { fetchImpl } = {}) {
264
334
  else if (r.status === 'violation') process.stderr.write(`[violation] ${r.name}: ${r.detail}\n`);
265
335
  }
266
336
 
267
- // Always checked, unlike the opt-in budgets above: a run whose event log
268
- // never recorded an ApplicationEnd is inconclusive by default, not just
269
- // when the caller happens to pass --max-runtime.
337
+ // Always checked, unlike the opt-in budgets: a run with no ApplicationEnd is
338
+ // inconclusive by default, not only when --max-runtime is passed.
270
339
  const incompleteRunFinding = catalog.find((f) => f.type === 'incompleteRun');
271
340
  if (incompleteRunFinding) process.stderr.write(`[inconclusive] run-complete: ${incompleteRunFinding.recommendation}\n`);
272
341
 
@@ -275,14 +344,10 @@ export async function main(argv, { fetchImpl } = {}) {
275
344
  else process.exitCode = 0;
276
345
  }
277
346
 
278
- // Guarded so tests can import `main` for in-process runs (e.g. mocking the
279
- // global `fetch` that resolveFromShs falls back to) without also triggering
280
- // a second, real invocation as a side effect of the import. A published
281
- // install's `npm install` bin creates a node_modules/.bin/ symlink (see
282
- // server/index.js's invokedDirectly for the same fix), so argv[1] must be
283
- // realpath-resolved before comparing against this module's real path:
284
- // otherwise the guard never matches when invoked through that symlink and
285
- // the CLI silently does nothing (exit 0, no output).
347
+ // Guarded so tests can import `main` without triggering a real invocation.
348
+ // A published install's bin is a node_modules/.bin/ symlink, so argv[1] must be
349
+ // realpath-resolved first; otherwise the guard never matches through the symlink
350
+ // and the CLI silently does nothing.
286
351
  if (process.argv[1] && realpathSync(process.argv[1]) === fileURLToPath(import.meta.url)) {
287
352
  await main(process.argv.slice(2));
288
353
  }
@@ -0,0 +1,25 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en-US" dir="ltr">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <title>404 | SparkForensics</title>
7
+ <meta name="description" content="Not Found">
8
+ <meta name="generator" content="VitePress v1.6.4">
9
+ <link rel="preload stylesheet" href="./assets/style.DSixAiZE.css" as="style">
10
+ <link rel="preload stylesheet" href="./vp-icons.css" as="style">
11
+
12
+
13
+ <link rel="icon" type="image/svg+xml" href="./favicon.svg">
14
+ <link rel="preconnect" href="https://fonts.googleapis.com">
15
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="">
16
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Recursive:wght,CASL@400..700,0..1&amp;family=JetBrains+Mono:wght@400;500;600&amp;display=swap">
17
+ <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
18
+ <script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
19
+ </head>
20
+ <body>
21
+ <div id="app"></div>
22
+
23
+
24
+ </body>
25
+ </html>
@@ -0,0 +1 @@
1
+ import{t as p}from"./chunks/theme.DP0u1AUq.js";import{R as s,a6 as i,a7 as u,a8 as c,a9 as l,aa as f,ab as d,ac as m,ad as h,ae as g,af as A,d as v,u as y,v as C,s as P,ag as b,ah as w,ai as R,aj as E}from"./chunks/framework.DSg0KOwT.js";function r(e){if(e.extends){const a=r(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const n=r(p),S=v({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=y();return C(()=>{P(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&b(),w(),R(),n.setup&&n.setup(),()=>E(n.Layout)}});async function T(){globalThis.__VITEPRESS__=!0;const e=D(),a=j();a.provide(u,e);const t=c(e.route);return a.provide(l,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),n.enhanceApp&&await n.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function j(){return A(S)}function D(){let e=s;return h(a=>{let t=g(a),o=null;return t&&(e&&(t=t.replace(/\.js$/,".lean.js")),o=import(t)),s&&(e=!1),o},n.NotFound)}s&&T().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{T as createApp};
@@ -0,0 +1 @@
1
+ <svg id="gd1" width="100%" xmlns="http://www.w3.org/2000/svg" class="flowchart" viewBox="-8 -17.3125 618.5792526348741 775.4390625000001" role="graphics-document document" aria-roledescription="flowchart-v2" style="max-width: 618.5792526348741px;"><style>#gd1{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:16px;fill:#151b1e;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#gd1 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#gd1 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#gd1 .error-icon{fill:#eef1f6;}#gd1 .error-text{fill:#110e09;stroke:#110e09;}#gd1 .edge-thickness-normal{stroke-width:1px;}#gd1 .edge-thickness-thick{stroke-width:3.5px;}#gd1 .edge-pattern-solid{stroke-dasharray:0;}#gd1 .edge-thickness-invisible{stroke-width:0;fill:none;}#gd1 .edge-pattern-dashed{stroke-dasharray:3;}#gd1 .edge-pattern-dotted{stroke-dasharray:2;}#gd1 .marker{fill:#4f5f60;stroke:#4f5f60;}#gd1 .marker.cross{stroke:#4f5f60;}#gd1 svg{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:16px;}#gd1 p{margin:0;}#gd1 .label{font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;color:#151b1e;}#gd1 .cluster-label text{fill:#151b1e;}#gd1 .cluster-label span{color:#151b1e;}#gd1 .cluster-label span p{background-color:transparent;}#gd1 .label text,#gd1 span{fill:#151b1e;color:#151b1e;}#gd1 .node rect,#gd1 .node circle,#gd1 .node ellipse,#gd1 .node polygon,#gd1 .node path{fill:#ffffff;stroke:#9aa8a3;stroke-width:1px;}#gd1 .rough-node .label text,#gd1 .node .label text,#gd1 .image-shape .label,#gd1 .icon-shape .label{text-anchor:middle;}#gd1 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#gd1 .rough-node .label,#gd1 .node .label,#gd1 .image-shape .label,#gd1 .icon-shape .label{text-align:center;}#gd1 .node.clickable{cursor:pointer;}#gd1 .root .anchor path{fill:#4f5f60!important;stroke-width:0;stroke:#4f5f60;}#gd1 .arrowheadPath{fill:rgba(255, 255, 255, 0);}#gd1 .edgePath .path{stroke:#4f5f60;stroke-width:1px;}#gd1 .flowchart-link{stroke:#4f5f60;fill:none;}#gd1 .edgeLabel{background-color:#eef1f6;text-align:center;}#gd1 .edgeLabel p{background-color:#eef1f6;}#gd1 .edgeLabel rect{opacity:0.5;background-color:#eef1f6;fill:#eef1f6;}#gd1 .labelBkg{background-color:rgba(238, 241, 246, 0.5);}#gd1 .cluster rect{fill:#f2f5f9;stroke:#dbe2df;stroke-width:1px;}#gd1 .cluster text{fill:#151b1e;}#gd1 .cluster span{color:#151b1e;}#gd1 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;font-size:12px;background:#eef1f6;border:1px solid hsl(217.5, 0%, 84.9019607843%);border-radius:2px;pointer-events:none;z-index:100;}#gd1 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#151b1e;}#gd1 rect.text{fill:none;stroke-width:0;}#gd1 .icon-shape,#gd1 .image-shape{background-color:#eef1f6;text-align:center;}#gd1 .icon-shape p,#gd1 .image-shape p{background-color:#eef1f6;padding:2px;}#gd1 .icon-shape .label rect,#gd1 .image-shape .label rect{opacity:0.5;background-color:#eef1f6;fill:#eef1f6;}#gd1 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#gd1 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#gd1 .node .neo-node{stroke:#9aa8a3;}#gd1 [data-look=&quot;neo&quot;].node rect,#gd1 [data-look=&quot;neo&quot;].cluster rect,#gd1 [data-look=&quot;neo&quot;].node polygon{stroke:url(#gd1-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd1 [data-look=&quot;neo&quot;].swimlane.cluster rect{filter:none;}#gd1 [data-look=&quot;neo&quot;].node path{stroke:url(#gd1-gradient);stroke-width:1px;}#gd1 [data-look=&quot;neo&quot;].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd1 [data-look=&quot;neo&quot;].node .neo-line path{stroke:#9aa8a3;filter:none;}#gd1 [data-look=&quot;neo&quot;].node circle{stroke:url(#gd1-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd1 [data-look=&quot;neo&quot;].node circle .state-start{fill:#000000;}#gd1 [data-look=&quot;neo&quot;].icon-shape .icon{fill:url(#gd1-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd1 [data-look=&quot;neo&quot;].icon-shape .icon-neo path{stroke:url(#gd1-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#gd1 :root{--mermaid-font-family:Recursive,ui-sans-serif,system-ui,-apple-system,sans-serif;}</style><g><marker id="gd1_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></path></marker><marker id="gd1_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></path></marker><marker id="gd1_flowchart-v2-pointEnd-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="11.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="10.5" markerHeight="14" orient="auto"><path d="M 0 0 L 11.5 7 L 0 14 z" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></path></marker><marker id="gd1_flowchart-v2-pointStart-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="1" refY="7" markerUnits="userSpaceOnUse" markerWidth="11.5" markerHeight="14" orient="auto"><polygon points="0,7 11.5,14 11.5,0" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></polygon></marker><marker id="gd1_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></circle></marker><marker id="gd1_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:1;stroke-dasharray:1,0"></circle></marker><marker id="gd1_flowchart-v2-circleEnd-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refY="5" refX="12.25" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></circle></marker><marker id="gd1_flowchart-v2-circleStart-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-2" refY="5" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width:0;stroke-dasharray:1,0"></circle></marker><marker id="gd1_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width:2;stroke-dasharray:1,0"></path></marker><marker id="gd1_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width:2;stroke-dasharray:1,0"></path></marker><marker id="gd1_flowchart-v2-crossEnd-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="17.7" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width:2.5"></path></marker><marker id="gd1_flowchart-v2-crossStart-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="-3.5" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width:2.5;stroke-dasharray:1,0"></path></marker><g class="root"><g class="clusters"></g><g class="edgePaths"><path d="M319.804,42.125L319.721,46.208C319.638,50.292,319.471,58.458,319.388,66.042C319.304,73.625,319.304,80.625,319.304,84.125L319.304,87.625" id="gd1-L_START_MAT_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_START_MAT_0" data-points="W3sieCI6MzE5LjgwNDI3NDc1NDkzNzA3LCJ5Ijo0Mi4xMjV9LHsieCI6MzE5LjMwNDI3NDc1NDkzNzA3LCJ5Ijo2Ni42MjV9LHsieCI6MzE5LjMwNDI3NDc1NDkzNzA3LCJ5Ijo5MS42MjV9XQ==" data-look="classic" marker-end="url(#gd1_flowchart-v2-pointEnd)" style=";"></path><path d="M387.327,157.85L395.887,162.017C404.446,166.183,421.566,174.517,430.125,182.183C438.685,189.85,438.685,196.85,438.685,200.35L438.685,203.85" id="gd1-L_MAT_STATS_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_MAT_STATS_0" data-points="W3sieCI6Mzg3LjMyNzI0ODEwODkyNzg1LCJ5IjoxNTcuODV9LHsieCI6NDM4LjY4NDcyMTM4NDg3NDEsInkiOjE4Mi44NX0seyJ4Ijo0MzguNjg0NzIxMzg0ODc0MSwieSI6MjA3Ljg1fV0=" data-look="classic" marker-end="url(#gd1_flowchart-v2-pointEnd)" style=";"></path><path d="M438.685,256.475L438.685,260.642C438.685,264.808,438.685,273.142,438.685,280.808C438.685,288.475,438.685,295.475,438.685,298.975L438.685,302.475" id="gd1-L_STATS_RULES_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_STATS_RULES_0" data-points="W3sieCI6NDM4LjY4NDcyMTM4NDg3NDEsInkiOjI1Ni40NzV9LHsieCI6NDM4LjY4NDcyMTM4NDg3NDEsInkiOjI4MS40NzV9LHsieCI6NDM4LjY4NDcyMTM4NDg3NDEsInkiOjMwNi40NzV9XQ==" data-look="classic" marker-end="url(#gd1_flowchart-v2-pointEnd)" style=";"></path><path d="M438.685,407.9L438.685,412.067C438.685,416.233,438.685,424.567,438.685,432.233C438.685,439.9,438.685,446.9,438.685,450.4L438.685,453.9" id="gd1-L_RULES_DONE_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_RULES_DONE_0" data-points="W3sieCI6NDM4LjY4NDcyMTM4NDg3NDEsInkiOjQwNy45fSx7IngiOjQzOC42ODQ3MjEzODQ4NzQxLCJ5Ijo0MzIuOTAwMDAwMDAwMDAwMDN9LHsieCI6NDM4LjY4NDcyMTM4NDg3NDEsInkiOjQ1Ny45MDAwMDAwMDAwMDAwM31d" data-look="classic" marker-end="url(#gd1_flowchart-v2-pointEnd)" style=";"></path><path d="M392.399,582.591L376.145,596.357C359.891,610.124,327.384,637.656,299.807,657.173C272.23,676.69,249.584,688.19,238.261,693.94L226.938,699.69" id="gd1-L_DONE_NEXT_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_DONE_NEXT_0" data-points="W3sieCI6MzkyLjM5ODk1NTU3NTUwNzA1LCJ5Ijo1ODIuNTkwNzk2NjkwNjMzM30seyJ4IjoyOTQuODc2NTQwMzc5OTM3MDcsInkiOjY2NS4xODkwNjI1MDAwMDAxfSx7IngiOjIyMy4zNzEzNDUwMjczNjY1MiwieSI6NzAxLjUwMTU2MjUwMDAwMDF9XQ==" data-look="classic" marker-end="url(#gd1_flowchart-v2-pointEnd)" style=";"></path><path d="M168.903,701.502L167.262,695.449C165.621,689.397,162.339,677.293,160.698,650.941C159.057,624.589,159.057,583.989,159.057,545.274C159.057,506.559,159.057,469.729,159.057,438.696C159.057,407.663,159.057,382.425,159.057,357.188C159.057,331.95,159.057,306.713,159.057,285.875C159.057,265.038,159.057,248.6,159.057,232.163C159.057,215.725,159.057,199.288,169.92,187.129C180.783,174.971,202.509,167.092,213.372,163.153L224.235,159.214" id="gd1-L_NEXT_MAT_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_NEXT_MAT_0" data-points="W3sieCI6MTY4LjkwMzM2NDYxMDE4MDQsInkiOjcwMS41MDE1NjI1MDAwMDAxfSx7IngiOjE1OS4wNTY2NDA2MjUsInkiOjY2NS4xODkwNjI1MDAwMDAxfSx7IngiOjE1OS4wNTY2NDA2MjUsInkiOjU0My4zODgyODEyNTAwMDAxfSx7IngiOjE1OS4wNTY2NDA2MjUsInkiOjQzMi45MDAwMDAwMDAwMDAwM30seyJ4IjoxNTkuMDU2NjQwNjI1LCJ5IjozNTcuMTg3NX0seyJ4IjoxNTkuMDU2NjQwNjI1LCJ5IjoyODEuNDc1fSx7IngiOjE1OS4wNTY2NDA2MjUsInkiOjIzMi4xNjI1fSx7IngiOjE1OS4wNTY2NDA2MjUsInkiOjE4Mi44NX0seyJ4IjoyMjcuOTk1MTc5NzIxNTUyODMsInkiOjE1Ny44NX1d" data-look="classic" marker-end="url(#gd1_flowchart-v2-pointEnd)" style=";"></path><path d="M452.966,614.596L454.657,623.028C456.348,631.46,459.73,648.325,461.497,663.476C463.264,678.627,463.416,692.064,463.492,698.783L463.567,705.502" id="gd1-L_DONE_END_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" data-edge="true" data-et="edge" data-id="L_DONE_END_0" data-points="W3sieCI6NDUyLjk2NTY5MTI2MDE3MjgsInkiOjYxNC41OTU1OTI2MjQ3MDEzfSx7IngiOjQ2My4xMTI0NTU3NTk4NzQxLCJ5Ijo2NjUuMTg5MDYyNTAwMDAwMX0seyJ4Ijo0NjMuNjEyNDU1NzU5ODc0MywieSI6NzA5LjUwMTU2MjQ5OTk5OTd9XQ==" data-look="classic" marker-end="url(#gd1_flowchart-v2-pointEnd)" style=";"></path></g><g class="edgeLabels"><g class="edgeLabel"><g class="label" data-id="L_START_MAT_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel"><g class="label" data-id="L_MAT_STATS_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel"><g class="label" data-id="L_STATS_RULES_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel"><g class="label" data-id="L_RULES_DONE_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel" transform="translate(313.0393, 649.80581)"><g class="label" data-id="L_DONE_NEXT_0" transform="translate(0, -10.4609375)"><g><rect class="background" x="-12.87890625" y="-0.8515625" width="25.7578125" height="22.625"></rect><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">No</tspan></tspan></text></g></g></g><g class="edgeLabel"><g class="label" data-id="L_NEXT_MAT_0" transform="translate(0, -10.4609375)"><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"></tspan></text></g></g><g><rect class="background" style="stroke: none"></rect></g><g class="edgeLabel" transform="translate(463.1124557598741, 665.1890625000001)"><g class="label" data-id="L_DONE_END_0" transform="translate(0, -10.4609375)"><g><rect class="background" x="-15.9765625" y="-0.8515625" width="31.953125" height="22.625"></rect><text y="-10.1" text-anchor="middle"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em" text-anchor="middle"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Yes</tspan></tspan></text></g></g></g></g><g class="nodes"><g class="node default " id="gd1-flowchart-START-0" data-look="classic" transform="translate(319.30427475493707, 24.8125)"><g class="basic label-container outer-path"><path d="M-99.08984375 -16.8125 C-40.56692648748164 -16.8125, 17.955990775036724 -16.8125, 99.08984375 -16.8125 C99.08984375 -16.8125, 99.08984375 -16.8125, 99.08984375 -16.8125 C99.5102351036826 -16.79901886752953, 99.93062645736521 -16.78553773505906, 100.16702432342574 -16.77795691561503 C100.51388267167391 -16.744495907917724, 100.86074101992209 -16.71103490022042, 101.23977853082076 -16.674469607403328 C101.47498985705869 -16.636442464268256, 101.71020118329663 -16.598415321133185, 102.30369819504182 -16.502463326912288 C102.63515254237288 -16.426811035075726, 102.96660688970395 -16.35115874323916, 103.35441144197858 -16.26264488484368 C103.58435363164328 -16.194399249942386, 103.81429582130798 -16.126153615041087, 104.38760066552213 -15.955999746616866 C104.65193672849273 -15.858721631947905, 104.91627279146333 -15.761443517278941, 105.39902026953447 -15.58378798287999 C105.60556687553078 -15.492355927392799, 105.8121134815271 -15.400923871905606, 106.38451411391395 -15.147539091609422 C106.68168963330787 -14.992502813491615, 106.9788651527018 -14.837466535373808, 107.3400325930662 -14.649045713074486 C107.63784013297172 -14.468513032272396, 107.93564767287724 -14.287980351470306, 108.26164927660236 -14.090356263494073 C108.4825818595616 -13.936243257639068, 108.70351444252086 -13.782130251784062, 109.14557704388356 -13.47376651765502 C109.37720712074018 -13.289047695297079, 109.60883719759681 -13.104328872939137, 109.98818364611219 -12.801810175081075 C110.22387667508232 -12.587760002266217, 110.45956970405246 -12.373709829451359, 110.78600663202111 -12.077248448518045 C111.02711986705778 -11.828279237577936, 111.26823310209446 -11.579310026637827, 111.53576757582874 -11.303058717518391 C111.71266366805368 -11.095266501918184, 111.88955976027862 -10.887474286317977, 112.23438554899376 -10.48242229374996 C112.36650550354653 -10.305393591024712, 112.4986254580993 -10.128364888299467, 112.87898978041132 -9.61871134830398 C113.05082791590453 -9.35472182718612, 113.22266605139774 -9.090732306068261, 113.46693145302739 -8.715475054720704 C113.61404907912427 -8.454252812310639, 113.76116670522116 -8.193030569900573, 113.99579458839607 -7.776425004674043 C114.16030320316878 -7.434819346178024, 114.3248118179415 -7.093213687682006, 114.46340597445335 -6.80541995624525 C114.61646635288562 -6.427357862296418, 114.7695267313179 -6.049295768347587, 114.86784409571159 -5.806449977458242 C114.99215121632058 -5.432056735833987, 115.11645833692955 -5.057663494209732, 115.20744702917885 -4.783620050234238 C115.26776079891114 -4.553617506091873, 115.32807456864343 -4.323614961949509, 115.4808192735569 -3.7411332021405377 C115.53237724377156 -3.476393921869112, 115.58393521398622 -3.2116546415976863, 115.68683748365544 -2.6832732352486945 C115.72439240098934 -2.3920047124641735, 115.76194731832325 -2.100736189679652, 115.82465508645839 -1.6143871230729026 C115.8388236058502 -1.3937009969224836, 115.85299212524201 -1.173014870772065, 115.89370575987407 -0.5388671479234525 C115.89370575987407 -0.20955582256260824, 115.89370575987407 0.11975550279823599, 115.89370575987407 0.5388671479234484 C115.87130045078565 0.887847922215478, 115.84889514169724 1.2368286965075077, 115.82465508645839 1.6143871230728912 C115.77288876813242 2.0158764655933616, 115.72112244980644 2.4173658081138325, 115.68683748365544 2.683273235248683 C115.63353822004606 2.9569536890794796, 115.58023895643669 3.230634142910276, 115.4808192735569 3.7411332021405337 C115.3847101313274 4.107639015427417, 115.28860098909787 4.4741448287143015, 115.20744702917887 4.7836200502342265 C115.09333603976594 5.127304169228837, 114.97922505035302 5.470988288223446, 114.8678440957116 5.806449977458231 C114.74136239465915 6.118862224415145, 114.61488069360668 6.43127447137206, 114.46340597445335 6.805419956245245 C114.36874125259244 7.001993276690003, 114.27407653073152 7.198566597134762, 113.99579458839607 7.776425004674039 C113.88084038049358 7.980537841180703, 113.76588617259108 8.184650677687367, 113.46693145302739 8.7154750547207 C113.25427014411555 9.042179932766533, 113.04160883520372 9.368884810812364, 112.87898978041133 9.618711348303972 C112.6977927270435 9.86149889242571, 112.51659567367568 10.104286436547445, 112.23438554899376 10.482422293749956 C112.0873640757283 10.65512208200638, 111.94034260246283 10.827821870262808, 111.53576757582874 11.303058717518383 C111.36781370639444 11.476484876978427, 111.19985983696013 11.649911036438471, 110.78600663202111 12.077248448518041 C110.59375622349694 12.25184518287263, 110.40150581497277 12.426441917227217, 109.9881836461122 12.801810175081064 C109.71585471671195 13.018985249300611, 109.44352578731167 13.236160323520158, 109.14557704388358 13.473766517655019 C108.82660212165297 13.696269615201253, 108.50762719942237 13.918772712747487, 108.26164927660236 14.090356263494066 C107.94764724904854 14.280706137877928, 107.63364522149472 14.47105601226179, 107.34003259306621 14.649045713074484 C107.10933531364678 14.76940033597894, 106.87863803422735 14.889754958883396, 106.38451411391395 15.14753909160942 C106.11165675171486 15.268324951828891, 105.83879938951577 15.389110812048362, 105.39902026953449 15.583787982879988 C105.06141880491165 15.70802844261492, 104.72381734028882 15.83226890234985, 104.38760066552213 15.955999746616863 C104.15460255929287 16.025152361513694, 103.9216044530636 16.094304976410523, 103.35441144197861 16.262644884843677 C103.08897504851937 16.323229009516403, 102.82353865506013 16.383813134189133, 102.30369819504183 16.502463326912284 C101.99433043269822 16.552479507545172, 101.68496267035461 16.60249568817806, 101.23977853082077 16.674469607403324 C100.91059564666574 16.70622548433742, 100.58141276251071 16.737981361271515, 100.16702432342574 16.77795691561503 C99.79125558037933 16.790007087815038, 99.41548683733292 16.80205726001505, 99.08984375 16.8125 C99.08984375 16.8125, 99.08984375 16.8125, 99.08984375 16.8125 C23.165612793326034 16.8125, -52.75861816334793 16.8125, -99.08984375 16.8125 C-99.33315908014045 16.804697350946956, -99.5764744102809 16.796894701893912, -100.16702432342572 16.77795691561503 C-100.50950849143058 16.744917879825074, -100.85199265943544 16.71187884403512, -101.23977853082076 16.674469607403324 C-101.51080089087021 16.63065281404032, -101.78182325091967 16.586836020677318, -102.30369819504182 16.502463326912284 C-102.6123438551927 16.432016969084003, -102.9209895153436 16.361570611255722, -103.35441144197858 16.26264488484368 C-103.7516474412552 16.144747325392693, -104.14888344053182 16.0268497659417, -104.38760066552211 15.95599974661687 C-104.69659419474007 15.842287271559789, -105.00558772395803 15.728574796502707, -105.39902026953447 15.58378798287999 C-105.7497198742447 15.428543671008923, -106.10041947895493 15.273299359137855, -106.38451411391394 15.147539091609424 C-106.61880974907909 15.025307208817281, -106.85310538424424 14.90307532602514, -107.3400325930662 14.649045713074488 C-107.67077465890328 14.448547929107923, -108.00151672474038 14.248050145141356, -108.26164927660234 14.090356263494078 C-108.55610310307142 13.884958020849952, -108.8505569295405 13.679559778205824, -109.14557704388356 13.473766517655022 C-109.41685784624772 13.257427296854935, -109.6881386486119 13.041088076054846, -109.98818364611219 12.801810175081076 C-110.17748692904512 12.629889942211795, -110.36679021197804 12.457969709342512, -110.78600663202111 12.077248448518052 C-111.08461008180659 11.768915870815391, -111.38321353159206 11.46058329311273, -111.53576757582874 11.303058717518388 C-111.73911318716125 11.064197391754151, -111.94245879849376 10.825336065989914, -112.23438554899374 10.482422293749961 C-112.3840442477418 10.281893271615505, -112.53370294648985 10.08136424948105, -112.87898978041132 9.618711348303982 C-113.0200403898505 9.402019734813436, -113.16109099928967 9.185328121322891, -113.46693145302737 8.715475054720711 C-113.67765420393683 8.341315472488636, -113.88837695484628 7.967155890256563, -113.99579458839607 7.776425004674045 C-114.1317194230788 7.4941741771297865, -114.26764425776155 7.211923349585527, -114.46340597445335 6.8054199562452515 C-114.61353554224516 6.434597021241728, -114.76366511003698 6.063774086238203, -114.86784409571159 5.806449977458245 C-114.97602222514845 5.480634687438666, -115.08420035458532 5.154819397419089, -115.20744702917885 4.783620050234233 C-115.27817789854394 4.513892590392428, -115.34890876790904 4.244165130550623, -115.4808192735569 3.74113320214054 C-115.54372030106165 3.4181497200404833, -115.60662132856642 3.0951662379404263, -115.68683748365544 2.6832732352486963 C-115.72542898549644 2.3839651677239724, -115.76402048733742 2.084657100199249, -115.82465508645839 1.614387123072912 C-115.84229090654274 1.3396949898814317, -115.8599267266271 1.0650028566899512, -115.89370575987407 0.5388671479234546 C-115.89370575987407 0.11726696294825045, -115.89370575987407 -0.3043332220269537, -115.89370575987407 -0.5388671479234464 C-115.86703589203857 -0.9542718669911348, -115.84036602420308 -1.369676586058823, -115.82465508645839 -1.614387123072889 C-115.78220651678576 -1.9436098470355772, -115.73975794711315 -2.2728325709982653, -115.68683748365544 -2.6832732352486883 C-115.63802399095333 -2.9339202035387184, -115.5892104982512 -3.184567171828749, -115.4808192735569 -3.741133202140532 C-115.39092144908048 -4.0839525688327525, -115.30102362460406 -4.4267719355249735, -115.20744702917887 -4.783620050234225 C-115.09665468907889 -5.117308926253211, -114.9858623489789 -5.450997802272197, -114.8678440957116 -5.8064499774582226 C-114.77536425749726 -6.034876965823699, -114.68288441928291 -6.263303954189175, -114.46340597445335 -6.8054199562452435 C-114.34002777784909 -7.061617421364519, -114.21664958124481 -7.317814886483795, -113.99579458839607 -7.776425004674037 C-113.84995496275205 -8.03537802786846, -113.70411533710804 -8.29433105106288, -113.46693145302739 -8.715475054720706 C-113.32395660467877 -8.935122815906636, -113.18098175633016 -9.154770577092568, -112.87898978041132 -9.618711348303977 C-112.64242814814911 -9.93568238432729, -112.4058665158869 -10.252653420350603, -112.23438554899376 -10.482422293749956 C-112.08737831045616 -10.655105361085063, -111.94037107191855 -10.82778842842017, -111.53576757582874 -11.303058717518383 C-111.30831318102999 -11.537924054501202, -111.08085878623125 -11.772789391484022, -110.78600663202113 -12.077248448518036 C-110.56892438140933 -12.274396804842056, -110.35184213079755 -12.471545161166075, -109.9881836461122 -12.80181017508106 C-109.70920858834289 -13.024285359814025, -109.43023353057357 -13.24676054454699, -109.14557704388358 -13.473766517655017 C-108.93050710615033 -13.623789995990178, -108.71543716841708 -13.77381347432534, -108.26164927660236 -14.090356263494064 C-107.93591376035343 -14.287819047678537, -107.6101782441045 -14.485281831863011, -107.34003259306621 -14.649045713074482 C-106.97848290230057 -14.837665955163285, -106.61693321153494 -15.026286197252087, -106.38451411391395 -15.14753909160942 C-106.08907103907296 -15.278322976834097, -105.79362796423196 -15.409106862058776, -105.39902026953449 -15.583787982879986 C-105.11989742407695 -15.686507770191657, -104.84077457861942 -15.78922755750333, -104.38760066552213 -15.955999746616863 C-104.16199577521184 -16.022958093836724, -103.93639088490153 -16.089916441056587, -103.35441144197861 -16.262644884843677 C-102.93651236552915 -16.358027621996936, -102.51861328907971 -16.453410359150194, -102.30369819504183 -16.502463326912284 C-102.05993400139695 -16.541873231321233, -101.81616980775208 -16.58128313573018, -101.23977853082077 -16.674469607403324 C-100.9498555788997 -16.702438125891785, -100.65993262697863 -16.73040664438025, -100.16702432342574 -16.77795691561503 C-99.8585731183163 -16.78784834539904, -99.55012191320687 -16.79773977518305, -99.08984375 -16.8125 C-99.08984375 -16.8125, -99.08984375 -16.8125, -99.08984375 -16.8125" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M-99.08984375 -16.8125 C-39.666562709196064 -16.8125, 19.75671833160787 -16.8125, 99.08984375 -16.8125 M-99.08984375 -16.8125 C-38.27111033161308 -16.8125, 22.54762308677384 -16.8125, 99.08984375 -16.8125 M99.08984375 -16.8125 C99.08984375 -16.8125, 99.08984375 -16.8125, 99.08984375 -16.8125 M99.08984375 -16.8125 C99.08984375 -16.8125, 99.08984375 -16.8125, 99.08984375 -16.8125 M99.08984375 -16.8125 C99.46414231954735 -16.800496973402584, 99.83844088909468 -16.78849394680517, 100.16702432342574 -16.77795691561503 M99.08984375 -16.8125 C99.31764706189604 -16.80519479117974, 99.54545037379206 -16.797889582359485, 100.16702432342574 -16.77795691561503 M100.16702432342574 -16.77795691561503 C100.40483080591137 -16.75501601025378, 100.64263728839703 -16.73207510489253, 101.23977853082076 -16.674469607403328 M100.16702432342574 -16.77795691561503 C100.51940321287226 -16.74396334794774, 100.87178210231879 -16.709969780280453, 101.23977853082076 -16.674469607403328 M101.23977853082076 -16.674469607403328 C101.61304584484458 -16.61412264280321, 101.98631315886841 -16.55377567820309, 102.30369819504182 -16.502463326912288 M101.23977853082076 -16.674469607403328 C101.51762068837762 -16.629550242067648, 101.79546284593448 -16.584630876731964, 102.30369819504182 -16.502463326912288 M102.30369819504182 -16.502463326912288 C102.67504396591643 -16.417706077967775, 103.04638973679104 -16.332948829023266, 103.35441144197858 -16.26264488484368 M102.30369819504182 -16.502463326912288 C102.71162739234859 -16.409356149613807, 103.11955658965535 -16.31624897231532, 103.35441144197858 -16.26264488484368 M103.35441144197858 -16.26264488484368 C103.58473562304637 -16.19428587689906, 103.81505980411417 -16.125926868954437, 104.38760066552213 -15.955999746616866 M103.35441144197858 -16.26264488484368 C103.76128922399089 -16.141885694887495, 104.16816700600317 -16.021126504931306, 104.38760066552213 -15.955999746616866 M104.38760066552213 -15.955999746616866 C104.74544826973627 -15.824308520359068, 105.10329587395042 -15.69261729410127, 105.39902026953447 -15.58378798287999 M104.38760066552213 -15.955999746616866 C104.68313177839558 -15.847241565219777, 104.97866289126901 -15.73848338382269, 105.39902026953447 -15.58378798287999 M105.39902026953447 -15.58378798287999 C105.7032733334576 -15.449104176827692, 106.00752639738073 -15.314420370775395, 106.38451411391395 -15.147539091609422 M105.39902026953447 -15.58378798287999 C105.76204028053989 -15.423089792613911, 106.12506029154531 -15.262391602347833, 106.38451411391395 -15.147539091609422 M106.38451411391395 -15.147539091609422 C106.58101301545994 -15.045025740536433, 106.77751191700592 -14.942512389463444, 107.3400325930662 -14.649045713074486 M106.38451411391395 -15.147539091609422 C106.6048289930689 -15.032600960272699, 106.82514387222385 -14.917662828935976, 107.3400325930662 -14.649045713074486 M107.3400325930662 -14.649045713074486 C107.66337324422474 -14.453034710181596, 107.98671389538329 -14.257023707288706, 108.26164927660236 -14.090356263494073 M107.3400325930662 -14.649045713074486 C107.63643661164944 -14.46936385514597, 107.93284063023269 -14.289681997217452, 108.26164927660236 -14.090356263494073 M108.26164927660236 -14.090356263494073 C108.47096504236337 -13.944346646432642, 108.6802808081244 -13.79833702937121, 109.14557704388356 -13.47376651765502 M108.26164927660236 -14.090356263494073 C108.56943210051956 -13.875660289233132, 108.87721492443677 -13.66096431497219, 109.14557704388356 -13.47376651765502 M109.14557704388356 -13.47376651765502 C109.44652470286051 -13.233768768174441, 109.74747236183748 -12.993771018693861, 109.98818364611219 -12.801810175081075 M109.14557704388356 -13.47376651765502 C109.46360825401851 -13.22014509073833, 109.78163946415347 -12.966523663821638, 109.98818364611219 -12.801810175081075 M109.98818364611219 -12.801810175081075 C110.27920778671263 -12.537509750664565, 110.57023192731307 -12.273209326248054, 110.78600663202111 -12.077248448518045 M109.98818364611219 -12.801810175081075 C110.15949717707988 -12.646227758963862, 110.33081070804757 -12.490645342846651, 110.78600663202111 -12.077248448518045 M110.78600663202111 -12.077248448518045 C111.01505539658443 -11.840736793853129, 111.24410416114773 -11.60422513918821, 111.53576757582874 -11.303058717518391 M110.78600663202111 -12.077248448518045 C111.03816348837758 -11.816875791867083, 111.29032034473403 -11.55650313521612, 111.53576757582874 -11.303058717518391 M111.53576757582874 -11.303058717518391 C111.7170096947392 -11.090161411677439, 111.89825181364968 -10.877264105836485, 112.23438554899376 -10.48242229374996 M111.53576757582874 -11.303058717518391 C111.75927188117637 -11.040517842701805, 111.98277618652402 -10.777976967885218, 112.23438554899376 -10.48242229374996 M112.23438554899376 -10.48242229374996 C112.37138444036334 -10.298856260170469, 112.50838333173293 -10.115290226590979, 112.87898978041132 -9.61871134830398 M112.23438554899376 -10.48242229374996 C112.39335479699659 -10.269417983822592, 112.55232404499941 -10.056413673895225, 112.87898978041132 -9.61871134830398 M112.87898978041132 -9.61871134830398 C113.04588070052678 -9.362322078519686, 113.21277162064224 -9.10593280873539, 113.46693145302739 -8.715475054720704 M112.87898978041132 -9.61871134830398 C113.06167162338578 -9.338062980551747, 113.24435346636025 -9.057414612799514, 113.46693145302739 -8.715475054720704 M113.46693145302739 -8.715475054720704 C113.66056759858648 -8.371654470494594, 113.85420374414558 -8.027833886268484, 113.99579458839607 -7.776425004674043 M113.46693145302739 -8.715475054720704 C113.59159630649624 -8.494119983701477, 113.71626115996509 -8.272764912682252, 113.99579458839607 -7.776425004674043 M113.99579458839607 -7.776425004674043 C114.11713721541332 -7.52445444335643, 114.23847984243056 -7.272483882038817, 114.46340597445335 -6.80541995624525 M113.99579458839607 -7.776425004674043 C114.13915760433912 -7.4787286345911435, 114.28252062028218 -7.181032264508243, 114.46340597445335 -6.80541995624525 M114.46340597445335 -6.80541995624525 C114.60847561006888 -6.447095151544289, 114.7535452456844 -6.0887703468433285, 114.86784409571159 -5.806449977458242 M114.46340597445335 -6.80541995624525 C114.60392143432317 -6.458344053685191, 114.74443689419299 -6.111268151125131, 114.86784409571159 -5.806449977458242 M114.86784409571159 -5.806449977458242 C114.99620369281638 -5.419851322303059, 115.12456328992117 -5.0332526671478774, 115.20744702917885 -4.783620050234238 M114.86784409571159 -5.806449977458242 C114.9864873465687 -5.449115409111576, 115.10513059742578 -5.09178084076491, 115.20744702917885 -4.783620050234238 M115.20744702917885 -4.783620050234238 C115.26459460119155 -4.565691590235471, 115.32174217320423 -4.3477631302367055, 115.4808192735569 -3.7411332021405377 M115.20744702917885 -4.783620050234238 C115.31334327089385 -4.379791784853474, 115.41923951260884 -3.9759635194727103, 115.4808192735569 -3.7411332021405377 M115.4808192735569 -3.7411332021405377 C115.53786296545681 -3.4482259004230884, 115.59490665735672 -3.155318598705639, 115.68683748365544 -2.6832732352486945 M115.4808192735569 -3.7411332021405377 C115.54796291607273 -3.396364788635631, 115.61510655858856 -3.051596375130725, 115.68683748365544 -2.6832732352486945 M115.68683748365544 -2.6832732352486945 C115.7265813140867 -2.3750279347308134, 115.76632514451798 -2.066782634212932, 115.82465508645839 -1.6143871230729026 M115.68683748365544 -2.6832732352486945 C115.74023785037151 -2.2691105360939816, 115.79363821708758 -1.854947836939269, 115.82465508645839 -1.6143871230729026 M115.82465508645839 -1.6143871230729026 C115.84088028069189 -1.3616666261451467, 115.85710547492539 -1.108946129217391, 115.89370575987407 -0.5388671479234525 M115.82465508645839 -1.6143871230729026 C115.84173256937464 -1.3483915419563326, 115.85881005229088 -1.0823959608397624, 115.89370575987407 -0.5388671479234525 M115.89370575987407 -0.5388671479234525 C115.89370575987407 -0.16824239323273082, 115.89370575987407 0.20238236145799082, 115.89370575987407 0.5388671479234484 M115.89370575987407 -0.5388671479234525 C115.89370575987407 -0.15576999051307544, 115.89370575987407 0.2273271668973016, 115.89370575987407 0.5388671479234484 M115.89370575987407 0.5388671479234484 C115.87635117233982 0.8091788571402362, 115.85899658480558 1.079490566357024, 115.82465508645839 1.6143871230728912 M115.89370575987407 0.5388671479234484 C115.87740713212368 0.7927314311513065, 115.86110850437328 1.0465957143791647, 115.82465508645839 1.6143871230728912 M115.82465508645839 1.6143871230728912 C115.78740866280779 1.9032630297686772, 115.75016223915719 2.1921389364644632, 115.68683748365544 2.683273235248683 M115.82465508645839 1.6143871230728912 C115.77450158024604 2.0033678133258936, 115.72434807403368 2.3923485035788965, 115.68683748365544 2.683273235248683 M115.68683748365544 2.683273235248683 C115.61582422100807 3.047911330284546, 115.5448109583607 3.4125494253204094, 115.4808192735569 3.7411332021405337 M115.68683748365544 2.683273235248683 C115.6315243276617 2.96729460083687, 115.57621117166796 3.2513159664250564, 115.4808192735569 3.7411332021405337 M115.4808192735569 3.7411332021405337 C115.37570257924787 4.141988715404388, 115.27058588493884 4.542844228668242, 115.20744702917887 4.7836200502342265 M115.4808192735569 3.7411332021405337 C115.40262000566845 4.039340902376324, 115.32442073777999 4.337548602612115, 115.20744702917887 4.7836200502342265 M115.20744702917887 4.7836200502342265 C115.11550630093998 5.060530874924042, 115.0235655727011 5.337441699613857, 114.8678440957116 5.806449977458231 M115.20744702917887 4.7836200502342265 C115.12709910257772 5.025615203453302, 115.04675117597655 5.267610356672378, 114.8678440957116 5.806449977458231 M114.8678440957116 5.806449977458231 C114.74849966444233 6.101233030060933, 114.62915523317307 6.396016082663635, 114.46340597445335 6.805419956245245 M114.8678440957116 5.806449977458231 C114.77763439403981 6.029269684673507, 114.68742469236801 6.252089391888783, 114.46340597445335 6.805419956245245 M114.46340597445335 6.805419956245245 C114.28444903348075 7.177027873239972, 114.10549209250816 7.548635790234699, 113.99579458839607 7.776425004674039 M114.46340597445335 6.805419956245245 C114.31601018202406 7.111490472989414, 114.16861438959475 7.417560989733582, 113.99579458839607 7.776425004674039 M113.99579458839607 7.776425004674039 C113.83286878230237 8.065716271420246, 113.66994297620867 8.355007538166456, 113.46693145302739 8.7154750547207 M113.99579458839607 7.776425004674039 C113.86963417986522 8.000435585147224, 113.74347377133435 8.224446165620412, 113.46693145302739 8.7154750547207 M113.46693145302739 8.7154750547207 C113.26795171101386 9.021161371995603, 113.06897196900034 9.326847689270505, 112.87898978041133 9.618711348303972 M113.46693145302739 8.7154750547207 C113.34068663917009 8.909420990284692, 113.21444182531279 9.103366925848684, 112.87898978041133 9.618711348303972 M112.87898978041133 9.618711348303972 C112.74933482670565 9.792437174460314, 112.61967987299997 9.966163000616655, 112.23438554899376 10.482422293749956 M112.87898978041133 9.618711348303972 C112.67667232141221 9.889798311863107, 112.4743548624131 10.160885275422244, 112.23438554899376 10.482422293749956 M112.23438554899376 10.482422293749956 C111.96311417323618 10.801073087493364, 111.6918427974786 11.119723881236771, 111.53576757582874 11.303058717518383 M112.23438554899376 10.482422293749956 C112.05930432776333 10.68808265861092, 111.8842231065329 10.893743023471886, 111.53576757582874 11.303058717518383 M111.53576757582874 11.303058717518383 C111.23960673446257 11.608869101486238, 110.94344589309638 11.914679485454094, 110.78600663202111 12.077248448518041 M111.53576757582874 11.303058717518383 C111.29517962823581 11.551485526045932, 111.05459168064287 11.799912334573483, 110.78600663202111 12.077248448518041 M110.78600663202111 12.077248448518041 C110.48623481363111 12.349493282452158, 110.18646299524111 12.621738116386277, 109.9881836461122 12.801810175081064 M110.78600663202111 12.077248448518041 C110.58466494315394 12.260101643138043, 110.38332325428676 12.442954837758046, 109.9881836461122 12.801810175081064 M109.9881836461122 12.801810175081064 C109.72529832179926 13.011454225548361, 109.46241299748631 13.221098276015656, 109.14557704388358 13.473766517655019 M109.9881836461122 12.801810175081064 C109.73777317562092 13.001505861595385, 109.48736270512964 13.201201548109706, 109.14557704388358 13.473766517655019 M109.14557704388358 13.473766517655019 C108.90836850217828 13.63923292775637, 108.67115996047296 13.80469933785772, 108.26164927660236 14.090356263494066 M109.14557704388358 13.473766517655019 C108.92764250305642 13.625788219101821, 108.70970796222926 13.777809920548625, 108.26164927660236 14.090356263494066 M108.26164927660236 14.090356263494066 C108.03668912679119 14.226728428322179, 107.81172897698002 14.363100593150293, 107.34003259306621 14.649045713074484 M108.26164927660236 14.090356263494066 C107.93672927544716 14.287324677636217, 107.61180927429197 14.484293091778369, 107.34003259306621 14.649045713074484 M107.34003259306621 14.649045713074484 C106.99157275834773 14.830836985647942, 106.64311292362923 15.012628258221401, 106.38451411391395 15.14753909160942 M107.34003259306621 14.649045713074484 C106.98097100508242 14.836367913535701, 106.62190941709864 15.023690113996919, 106.38451411391395 15.14753909160942 M106.38451411391395 15.14753909160942 C106.1217434230441 15.263859881641912, 105.85897273217424 15.380180671674403, 105.39902026953449 15.583787982879988 M106.38451411391395 15.14753909160942 C106.03502936723893 15.302245621865785, 105.68554462056392 15.456952152122147, 105.39902026953449 15.583787982879988 M105.39902026953449 15.583787982879988 C105.14200242948385 15.678372923865494, 104.8849845894332 15.772957864850998, 104.38760066552213 15.955999746616863 M105.39902026953449 15.583787982879988 C105.1190086560397 15.686834845045054, 104.83899704254489 15.78988170721012, 104.38760066552213 15.955999746616863 M104.38760066552213 15.955999746616863 C104.15199860910896 16.02592520025986, 103.9163965526958 16.095850653902858, 103.35441144197861 16.262644884843677 M104.38760066552213 15.955999746616863 C104.11164234319575 16.03790272814854, 103.83568402086937 16.119805709680218, 103.35441144197861 16.262644884843677 M103.35441144197861 16.262644884843677 C103.0869505315888 16.323691092294602, 102.81948962119898 16.384737299745524, 102.30369819504183 16.502463326912284 M103.35441144197861 16.262644884843677 C103.03489412408113 16.33557262760842, 102.71537680618364 16.408500370373165, 102.30369819504183 16.502463326912284 M102.30369819504183 16.502463326912284 C102.03421976648269 16.546030509405302, 101.76474133792355 16.58959769189832, 101.23977853082077 16.674469607403324 M102.30369819504183 16.502463326912284 C101.91960236209378 16.564560962475653, 101.53550652914572 16.626658598039025, 101.23977853082077 16.674469607403324 M101.23977853082077 16.674469607403324 C100.82701205089941 16.714288693297014, 100.41424557097805 16.754107779190708, 100.16702432342574 16.77795691561503 M101.23977853082077 16.674469607403324 C100.94667980792086 16.70274448869869, 100.65358108502093 16.73101936999406, 100.16702432342574 16.77795691561503 M100.16702432342574 16.77795691561503 C99.8897873981251 16.786847364200483, 99.61255047282447 16.795737812785934, 99.08984375 16.8125 M100.16702432342574 16.77795691561503 C99.79096028733674 16.790016557288162, 99.41489625124775 16.802076198961295, 99.08984375 16.8125 M99.08984375 16.8125 C99.08984375 16.8125, 99.08984375 16.8125, 99.08984375 16.8125 M99.08984375 16.8125 C99.08984375 16.8125, 99.08984375 16.8125, 99.08984375 16.8125 M99.08984375 16.8125 C34.970924347089436 16.8125, -29.147995055821127 16.8125, -99.08984375 16.8125 M99.08984375 16.8125 C37.590552968223854 16.8125, -23.908737813552293 16.8125, -99.08984375 16.8125 M-99.08984375 16.8125 C-99.34483446191905 16.804322944178068, -99.59982517383811 16.796145888356133, -100.16702432342572 16.77795691561503 M-99.08984375 16.8125 C-99.41963881136145 16.80192411428928, -99.74943387272292 16.791348228578563, -100.16702432342572 16.77795691561503 M-100.16702432342572 16.77795691561503 C-100.41623586132809 16.753915778274312, -100.66544739923044 16.7298746409336, -101.23977853082076 16.674469607403324 M-100.16702432342572 16.77795691561503 C-100.45092738107259 16.750569129087218, -100.73483043871946 16.723181342559407, -101.23977853082076 16.674469607403324 M-101.23977853082076 16.674469607403324 C-101.50405400708611 16.63174359788767, -101.76832948335148 16.589017588372013, -102.30369819504182 16.502463326912284 M-101.23977853082076 16.674469607403324 C-101.55857778014233 16.622928617098115, -101.87737702946389 16.571387626792905, -102.30369819504182 16.502463326912284 M-102.30369819504182 16.502463326912284 C-102.51997613355 16.453099298793237, -102.73625407205819 16.40373527067419, -103.35441144197858 16.26264488484368 M-102.30369819504182 16.502463326912284 C-102.55215664064472 16.4457543080463, -102.80061508624763 16.38904528918032, -103.35441144197858 16.26264488484368 M-103.35441144197858 16.26264488484368 C-103.63602229355554 16.179064262301164, -103.9176331451325 16.09548363975865, -104.38760066552211 15.95599974661687 M-103.35441144197858 16.26264488484368 C-103.69583925336177 16.161310902616307, -104.03726706474494 16.059976920388937, -104.38760066552211 15.95599974661687 M-104.38760066552211 15.95599974661687 C-104.77740438288268 15.812548375322116, -105.16720810024324 15.669097004027364, -105.39902026953447 15.58378798287999 M-104.38760066552211 15.95599974661687 C-104.69104432531977 15.84432967480889, -104.99448798511743 15.73265960300091, -105.39902026953447 15.58378798287999 M-105.39902026953447 15.58378798287999 C-105.75084691347755 15.428044764172975, -106.1026735574206 15.272301545465963, -106.38451411391394 15.147539091609424 M-105.39902026953447 15.58378798287999 C-105.74280791078348 15.43160339219709, -106.0865955520325 15.27941880151419, -106.38451411391394 15.147539091609424 M-106.38451411391394 15.147539091609424 C-106.59583777436048 15.03729167331373, -106.80716143480701 14.927044255018037, -107.3400325930662 14.649045713074488 M-106.38451411391394 15.147539091609424 C-106.7301897983248 14.96720030846812, -107.07586548273567 14.786861525326817, -107.3400325930662 14.649045713074488 M-107.3400325930662 14.649045713074488 C-107.62020557517586 14.479203204840415, -107.9003785572855 14.309360696606342, -108.26164927660234 14.090356263494078 M-107.3400325930662 14.649045713074488 C-107.53349341325425 14.531768626974515, -107.72695423344231 14.414491540874542, -108.26164927660234 14.090356263494078 M-108.26164927660234 14.090356263494078 C-108.5720710338273 13.873819483595234, -108.88249279105226 13.65728270369639, -109.14557704388356 13.473766517655022 M-108.26164927660234 14.090356263494078 C-108.59093826269726 13.860658521484718, -108.9202272487922 13.630960779475355, -109.14557704388356 13.473766517655022 M-109.14557704388356 13.473766517655022 C-109.40039722950677 13.270554200670448, -109.65521741512997 13.067341883685874, -109.98818364611219 12.801810175081076 M-109.14557704388356 13.473766517655022 C-109.34406103332103 13.315480817959436, -109.54254502275847 13.157195118263848, -109.98818364611219 12.801810175081076 M-109.98818364611219 12.801810175081076 C-110.16670563175143 12.639681231156425, -110.34522761739066 12.477552287231775, -110.78600663202111 12.077248448518052 M-109.98818364611219 12.801810175081076 C-110.17546486464427 12.631726327599749, -110.36274608317635 12.461642480118423, -110.78600663202111 12.077248448518052 M-110.78600663202111 12.077248448518052 C-111.03811557925926 11.816925261965153, -111.29022452649741 11.556602075412254, -111.53576757582874 11.303058717518388 M-110.78600663202111 12.077248448518052 C-111.07291447103961 11.780992549159793, -111.3598223100581 11.484736649801533, -111.53576757582874 11.303058717518388 M-111.53576757582874 11.303058717518388 C-111.70850185014689 11.10015521004564, -111.88123612446505 10.897251702572893, -112.23438554899374 10.482422293749961 M-111.53576757582874 11.303058717518388 C-111.68513470599729 11.127603587191944, -111.83450183616581 10.952148456865498, -112.23438554899374 10.482422293749961 M-112.23438554899374 10.482422293749961 C-112.36783311206418 10.303614716558673, -112.50128067513461 10.124807139367388, -112.87898978041132 9.618711348303982 M-112.23438554899374 10.482422293749961 C-112.44280100713063 10.203164566885375, -112.65121646526751 9.923906840020788, -112.87898978041132 9.618711348303982 M-112.87898978041132 9.618711348303982 C-113.00157691659335 9.430384587873174, -113.1241640527754 9.242057827442364, -113.46693145302737 8.715475054720711 M-112.87898978041132 9.618711348303982 C-113.00792260885193 9.42063590050705, -113.13685543729254 9.222560452710116, -113.46693145302737 8.715475054720711 M-113.46693145302737 8.715475054720711 C-113.6219793771036 8.44017176521858, -113.77702730117983 8.164868475716446, -113.99579458839607 7.776425004674045 M-113.46693145302737 8.715475054720711 C-113.67190570085013 8.351522521818131, -113.87687994867288 7.987569988915551, -113.99579458839607 7.776425004674045 M-113.99579458839607 7.776425004674045 C-114.13854066930097 7.480009713398167, -114.28128675020588 7.183594422122289, -114.46340597445335 6.8054199562452515 M-113.99579458839607 7.776425004674045 C-114.17630980296073 7.401581299223673, -114.3568250175254 7.026737593773301, -114.46340597445335 6.8054199562452515 M-114.46340597445335 6.8054199562452515 C-114.58600847766618 6.502589402951395, -114.70861098087902 6.19975884965754, -114.86784409571159 5.806449977458245 M-114.46340597445335 6.8054199562452515 C-114.59767816662836 6.4737650455967435, -114.73195035880336 6.142110134948235, -114.86784409571159 5.806449977458245 M-114.86784409571159 5.806449977458245 C-114.9362234877239 5.600502143493753, -115.0046028797362 5.394554309529261, -115.20744702917885 4.783620050234233 M-114.86784409571159 5.806449977458245 C-114.95593854282137 5.541123538707624, -115.04403298993114 5.275797099957003, -115.20744702917885 4.783620050234233 M-115.20744702917885 4.783620050234233 C-115.30965635141108 4.393851606762307, -115.41186567364329 4.004083163290381, -115.4808192735569 3.74113320214054 M-115.20744702917885 4.783620050234233 C-115.28406195555634 4.491454130837747, -115.36067688193383 4.19928821144126, -115.4808192735569 3.74113320214054 M-115.4808192735569 3.74113320214054 C-115.5435921335196 3.4188078332807437, -115.6063649934823 3.0964824644209474, -115.68683748365544 2.6832732352486963 M-115.4808192735569 3.74113320214054 C-115.53520212132895 3.4618887726500245, -115.589584969101 3.182644343159509, -115.68683748365544 2.6832732352486963 M-115.68683748365544 2.6832732352486963 C-115.7200699925379 2.4255284588574515, -115.75330250142036 2.1677836824662062, -115.82465508645839 1.614387123072912 M-115.68683748365544 2.6832732352486963 C-115.73167264289866 2.3355405938618956, -115.77650780214188 1.987807952475095, -115.82465508645839 1.614387123072912 M-115.82465508645839 1.614387123072912 C-115.84658052664655 1.272880694245517, -115.86850596683472 0.9313742654181221, -115.89370575987407 0.5388671479234546 M-115.82465508645839 1.614387123072912 C-115.84184944907005 1.3465710463565557, -115.85904381168172 1.0787549696401992, -115.89370575987407 0.5388671479234546 M-115.89370575987407 0.5388671479234546 C-115.89370575987407 0.28479068906001104, -115.89370575987407 0.030714230196567494, -115.89370575987407 -0.5388671479234464 M-115.89370575987407 0.5388671479234546 C-115.89370575987407 0.3027180264511964, -115.89370575987407 0.06656890497893814, -115.89370575987407 -0.5388671479234464 M-115.89370575987407 -0.5388671479234464 C-115.87844427885152 -0.776577033695483, -115.86318279782896 -1.0142869194675197, -115.82465508645839 -1.614387123072889 M-115.89370575987407 -0.5388671479234464 C-115.87927858468451 -0.7635820469069167, -115.86485140949496 -0.988296945890387, -115.82465508645839 -1.614387123072889 M-115.82465508645839 -1.614387123072889 C-115.77471864423897 -2.001684307860858, -115.72478220201954 -2.3889814926488278, -115.68683748365544 -2.6832732352486883 M-115.82465508645839 -1.614387123072889 C-115.78446032416677 -1.9261297620530857, -115.74426556187515 -2.2378724010332824, -115.68683748365544 -2.6832732352486883 M-115.68683748365544 -2.6832732352486883 C-115.63896318793016 -2.9290976255620063, -115.59108889220488 -3.1749220158753246, -115.4808192735569 -3.741133202140532 M-115.68683748365544 -2.6832732352486883 C-115.63229173357848 -2.9633541336454736, -115.57774598350153 -3.243435032042259, -115.4808192735569 -3.741133202140532 M-115.4808192735569 -3.741133202140532 C-115.41288615508395 -4.00019162527771, -115.34495303661099 -4.259250048414888, -115.20744702917887 -4.783620050234225 M-115.4808192735569 -3.741133202140532 C-115.38377411433467 -4.111208453893005, -115.28672895511242 -4.481283705645479, -115.20744702917887 -4.783620050234225 M-115.20744702917887 -4.783620050234225 C-115.10899399213078 -5.080144911461864, -115.01054095508269 -5.376669772689503, -114.8678440957116 -5.8064499774582226 M-115.20744702917887 -4.783620050234225 C-115.08437815266866 -5.154283897920347, -114.96130927615846 -5.524947745606471, -114.8678440957116 -5.8064499774582226 M-114.8678440957116 -5.8064499774582226 C-114.75757112091428 -6.078826357190543, -114.64729814611695 -6.351202736922864, -114.46340597445335 -6.8054199562452435 M-114.8678440957116 -5.8064499774582226 C-114.78060694963108 -6.021927414892619, -114.69336980355054 -6.237404852327015, -114.46340597445335 -6.8054199562452435 M-114.46340597445335 -6.8054199562452435 C-114.28138546397916 -7.183389440859925, -114.09936495350496 -7.561358925474605, -113.99579458839607 -7.776425004674037 M-114.46340597445335 -6.8054199562452435 C-114.29694429411171 -7.151081197184032, -114.13048261377008 -7.496742438122822, -113.99579458839607 -7.776425004674037 M-113.99579458839607 -7.776425004674037 C-113.86560244266944 -8.007594342795965, -113.73541029694283 -8.238763680917891, -113.46693145302739 -8.715475054720706 M-113.99579458839607 -7.776425004674037 C-113.86833450026974 -8.002743297875826, -113.7408744121434 -8.229061591077615, -113.46693145302739 -8.715475054720706 M-113.46693145302739 -8.715475054720706 C-113.3164838499072 -8.946602973951395, -113.16603624678702 -9.177730893182082, -112.87898978041132 -9.618711348303977 M-113.46693145302739 -8.715475054720706 C-113.26240363019001 -9.029684714009345, -113.05787580735263 -9.343894373297985, -112.87898978041132 -9.618711348303977 M-112.87898978041132 -9.618711348303977 C-112.63409122866668 -9.946853096924762, -112.38919267692204 -10.274994845545546, -112.23438554899376 -10.482422293749956 M-112.87898978041132 -9.618711348303977 C-112.68044899559817 -9.88473791251601, -112.48190821078502 -10.150764476728042, -112.23438554899376 -10.482422293749956 M-112.23438554899376 -10.482422293749956 C-112.08006549656425 -10.663695408393394, -111.92574544413473 -10.844968523036835, -111.53576757582874 -11.303058717518383 M-112.23438554899376 -10.482422293749956 C-111.99206573540486 -10.767064935179462, -111.74974592181597 -11.05170757660897, -111.53576757582874 -11.303058717518383 M-111.53576757582874 -11.303058717518383 C-111.35998891294412 -11.484564618643368, -111.18421025005951 -11.666070519768356, -110.78600663202113 -12.077248448518036 M-111.53576757582874 -11.303058717518383 C-111.30909905371392 -11.537112576433705, -111.08243053159909 -11.771166435349025, -110.78600663202113 -12.077248448518036 M-110.78600663202113 -12.077248448518036 C-110.56716286985011 -12.275996563033107, -110.34831910767909 -12.474744677548179, -109.9881836461122 -12.80181017508106 M-110.78600663202113 -12.077248448518036 C-110.51893490863951 -12.319795921362644, -110.25186318525789 -12.562343394207252, -109.9881836461122 -12.80181017508106 M-109.9881836461122 -12.80181017508106 C-109.73049742427459 -13.007308079678213, -109.47281120243696 -13.212805984275363, -109.14557704388358 -13.473766517655017 M-109.9881836461122 -12.80181017508106 C-109.66208293757364 -13.061866812236264, -109.33598222903508 -13.321923449391468, -109.14557704388358 -13.473766517655017 M-109.14557704388358 -13.473766517655017 C-108.85536227111484 -13.676207779943459, -108.5651474983461 -13.8786490422319, -108.26164927660236 -14.090356263494064 M-109.14557704388358 -13.473766517655017 C-108.83998114686422 -13.68693698638255, -108.53438524984486 -13.900107455110083, -108.26164927660236 -14.090356263494064 M-108.26164927660236 -14.090356263494064 C-108.0621404321215 -14.211299697462469, -107.86263158764065 -14.332243131430873, -107.34003259306621 -14.649045713074482 M-108.26164927660236 -14.090356263494064 C-107.97525579192252 -14.263969676941908, -107.6888623072427 -14.437583090389754, -107.34003259306621 -14.649045713074482 M-107.34003259306621 -14.649045713074482 C-107.02226908814517 -14.814822730054553, -106.70450558322412 -14.980599747034624, -106.38451411391395 -15.14753909160942 M-107.34003259306621 -14.649045713074482 C-107.0269547332943 -14.812378231981546, -106.7138768735224 -14.975710750888611, -106.38451411391395 -15.14753909160942 M-106.38451411391395 -15.14753909160942 C-106.13438946680526 -15.2582618532004, -105.88426481969658 -15.36898461479138, -105.39902026953449 -15.583787982879986 M-106.38451411391395 -15.14753909160942 C-106.1755267957548 -15.240051577969943, -105.96653947759567 -15.332564064330466, -105.39902026953449 -15.583787982879986 M-105.39902026953449 -15.583787982879986 C-105.16563464085726 -15.669676051626308, -104.93224901218004 -15.755564120372629, -104.38760066552213 -15.955999746616863 M-105.39902026953449 -15.583787982879986 C-105.06907576940202 -15.70521060890226, -104.73913126926955 -15.82663323492453, -104.38760066552213 -15.955999746616863 M-104.38760066552213 -15.955999746616863 C-104.08089288707872 -16.047029005316887, -103.77418510863531 -16.13805826401691, -103.35441144197861 -16.262644884843677 M-104.38760066552213 -15.955999746616863 C-104.09088561948347 -16.04406321479208, -103.7941705734448 -16.132126682967296, -103.35441144197861 -16.262644884843677 M-103.35441144197861 -16.262644884843677 C-102.94022764334593 -16.35717963407971, -102.52604384471327 -16.451714383315743, -102.30369819504183 -16.502463326912284 M-103.35441144197861 -16.262644884843677 C-102.95080898959249 -16.354764510848675, -102.54720653720635 -16.44688413685367, -102.30369819504183 -16.502463326912284 M-102.30369819504183 -16.502463326912284 C-101.9590809114558 -16.558178376775526, -101.61446362786977 -16.613893426638768, -101.23977853082077 -16.674469607403324 M-102.30369819504183 -16.502463326912284 C-101.8821282494785 -16.57061948638721, -101.46055830391516 -16.638775645862136, -101.23977853082077 -16.674469607403324 M-101.23977853082077 -16.674469607403324 C-100.93214544361537 -16.704146601343112, -100.62451235640998 -16.733823595282896, -100.16702432342574 -16.77795691561503 M-101.23977853082077 -16.674469607403324 C-100.87273452601615 -16.709877901111827, -100.50569052121152 -16.745286194820327, -100.16702432342574 -16.77795691561503 M-100.16702432342574 -16.77795691561503 C-99.8631940142134 -16.787700162261647, -99.55936370500108 -16.79744340890827, -99.08984375 -16.8125 M-100.16702432342574 -16.77795691561503 C-99.74966392374544 -16.79134085129004, -99.33230352406515 -16.80472478696505, -99.08984375 -16.8125 M-99.08984375 -16.8125 C-99.08984375 -16.8125, -99.08984375 -16.8125, -99.08984375 -16.8125 M-99.08984375 -16.8125 C-99.08984375 -16.8125, -99.08984375 -16.8125, -99.08984375 -16.8125" stroke="#9aa8a3" stroke-width="1.3" fill="none" stroke-dasharray="0 0"></path></g><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Execute</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> leaf</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> query</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> stages</tspan></tspan></text></g></g></g><g class="node default " id="gd1-flowchart-MAT-1" data-look="classic" transform="translate(319.30427475493707, 124.7375)"><rect class="basic label-container" x="-119.29296875" y="-33.1125" width="238.5859375" height="66.225"></rect><g class="label" transform="translate(0, -18.1125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Materialize</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> at</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> shuffle</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> /</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">broadcast</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> boundary</tspan></tspan></text></g></g></g><g class="node default " id="gd1-flowchart-STATS-3" data-look="classic" transform="translate(438.6847213848741, 232.1625)"><rect class="basic label-container" x="-147.51171875" y="-24.3125" width="295.0234375" height="48.625"></rect><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Collect</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> real</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> runtime</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> statistics</tspan></tspan></text></g></g></g><g class="node default " id="gd1-flowchart-RULES-5" data-look="classic" transform="translate(438.6847213848741, 357.1875)"><rect class="basic label-container" x="-163.89453125" y="-50.712500000000006" width="327.7890625" height="101.42500000000001"></rect><g class="label" transform="translate(0, -35.712500000000006)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Re-apply</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> AQE</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> rules:</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">coalesce</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> post-shuffle</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> partitions,</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="2.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">skew-partition</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> split,</tspan></tspan><tspan class="text-outer-tspan row" x="0" y="3.2em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">promote</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> sort-merge</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> to</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> broadcast</tspan></tspan></text></g></g></g><g class="node default " id="gd1-flowchart-DONE-7" data-look="classic" transform="translate(438.6847213848741, 543.3882812500001)"><polygon points="85.48828125,0 170.9765625,-85.48828125 85.48828125,-170.9765625 0,-85.48828125" class="label-container" transform="translate(-84.98828125, 85.48828125)"></polygon><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Plan</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> complete?</tspan></tspan></text></g></g></g><g class="node default " id="gd1-flowchart-NEXT-9" data-look="classic" transform="translate(175.49609375, 725.8140625000001)"><rect class="basic label-container" x="-167.49609375" y="-24.3125" width="334.9921875" height="48.625"></rect><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Launch</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> and</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> run</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> next</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> query</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> stages</tspan></tspan></text></g></g></g><g class="node default " id="gd1-flowchart-END-13" data-look="classic" transform="translate(463.1124557598741, 725.8140625000001)"><g class="basic label-container outer-path"><path d="M-53.31640625 -16.8125 C-30.594799935372887 -16.8125, -7.873193620745774 -16.8125, 53.31640625 -16.8125 C53.31640625 -16.8125, 53.31640625 -16.8125, 53.31640625 -16.8125 C53.64295665451384 -16.802028164119044, 53.969507059027684 -16.791556328238087, 54.393586823425736 -16.77795691561503 C54.772868023121426 -16.741368114432767, 55.15214922281712 -16.704779313250505, 55.46634103082076 -16.674469607403328 C55.797386038189885 -16.620948817904264, 56.128431045559005 -16.567428028405196, 56.53026069504182 -16.502463326912288 C56.8314478125175 -16.433719332778082, 57.13263492999319 -16.364975338643877, 57.58097394197859 -16.26264488484368 C57.935037358579144 -16.157560721313438, 58.2891007751797 -16.05247655778319, 58.61416316552212 -15.955999746616866 C58.9835207772579 -15.820072731193765, 59.35287838899368 -15.684145715770663, 59.625582769534475 -15.58378798287999 C59.93370118476972 -15.44739310046339, 60.241819600004966 -15.310998218046793, 60.611076613913944 -15.147539091609422 C60.90803767893415 -14.992614694201022, 61.204998743954356 -14.837690296792621, 61.5665950930662 -14.649045713074486 C61.86918183989225 -14.465615848951433, 62.1717685867183 -14.28218598482838, 62.48821177660235 -14.090356263494073 C62.69377054894095 -13.9469673624065, 62.89932932127955 -13.803578461318928, 63.37213954388357 -13.47376651765502 C63.68184817740717 -13.226782124112818, 63.99155681093077 -12.979797730570615, 64.21474614611219 -12.801810175081075 C64.38585212141285 -12.646416255529033, 64.55695809671352 -12.491022335976993, 65.01256913202111 -12.077248448518045 C65.20089507920055 -11.882786446207463, 65.38922102637999 -11.68832444389688, 65.76233007582874 -11.303058717518391 C66.03836902317222 -10.978807662907682, 66.31440797051569 -10.654556608296971, 66.46094804899376 -10.48242229374996 C66.69983272261327 -10.162338593941278, 66.93871739623279 -9.842254894132598, 67.10555228041132 -9.61871134830398 C67.31408638572209 -9.29834696329872, 67.52262049103287 -8.97798257829346, 67.69349395302739 -8.715475054720704 C67.84455783088984 -8.447245842699543, 67.9956217087523 -8.179016630678383, 68.22235708839607 -7.776425004674043 C68.32820649764341 -7.5566264415573965, 68.43405590689075 -7.33682787844075, 68.68996847445335 -6.80541995624525 C68.79712108369708 -6.540750939758478, 68.9042736929408 -6.2760819232717076, 69.09440659571159 -5.806449977458242 C69.16985299265362 -5.579217450619777, 69.24529938959563 -5.351984923781312, 69.43400952917885 -4.783620050234238 C69.50272181208476 -4.521590335422224, 69.57143409499066 -4.259560620610211, 69.7073817735569 -3.7411332021405377 C69.77429226331823 -3.3975619787531186, 69.84120275307957 -3.0539907553656995, 69.91339998365544 -2.6832732352486945 C69.95150147683042 -2.38776557817442, 69.9896029700054 -2.0922579211001446, 70.05121758645839 -1.6143871230729026 C70.07009925324604 -1.3202899218481754, 70.08898092003369 -1.026192720623448, 70.12026825987407 -0.5388671479234525 C70.12026825987407 -0.23896822555121705, 70.12026825987407 0.06093069682101837, 70.12026825987407 0.5388671479234484 C70.10440649682765 0.7859269107560638, 70.08854473378123 1.0329866735886792, 70.05121758645839 1.6143871230728912 C70.01482348117088 1.8966526168538458, 69.97842937588337 2.1789181106348003, 69.91339998365544 2.683273235248683 C69.86185823103557 2.9479292415984117, 69.81031647841571 3.212585247948141, 69.7073817735569 3.7411332021405337 C69.6286415627227 4.041403752274591, 69.54990135188851 4.341674302408648, 69.43400952917887 4.7836200502342265 C69.3091492529007 5.159679308600699, 69.18428897662251 5.535738566967172, 69.0944065957116 5.806449977458231 C69.00605549358964 6.024678907851838, 68.91770439146768 6.242907838245445, 68.68996847445335 6.805419956245245 C68.58846322513483 7.016197778319552, 68.48695797581632 7.2269756003938594, 68.22235708839607 7.776425004674039 C68.0240310479826 8.12857297211744, 67.82570500756913 8.48072093956084, 67.69349395302739 8.7154750547207 C67.55330784979824 8.930838554520202, 67.41312174656912 9.146202054319703, 67.10555228041133 9.618711348303972 C66.89011087925917 9.907383198732447, 66.67466947810702 10.196055049160924, 66.46094804899376 10.482422293749956 C66.3106036046091 10.659025432965398, 66.16025916022446 10.835628572180843, 65.76233007582874 11.303058717518383 C65.50299216607142 11.570846401381184, 65.2436542563141 11.838634085243985, 65.01256913202111 12.077248448518041 C64.80411014057171 12.266565389029722, 64.5956511491223 12.455882329541405, 64.2147461461122 12.801810175081064 C63.89573417275114 13.056213734571376, 63.576722199390076 13.310617294061686, 63.37213954388357 13.473766517655019 C63.07116196491652 13.683715447633034, 62.77018438594946 13.893664377611048, 62.488211776602355 14.090356263494066 C62.27633473586123 14.218797370719036, 62.0644576951201 14.347238477944007, 61.566595093066205 14.649045713074484 C61.21702754440577 14.831414879301935, 60.86745999574532 15.013784045529388, 60.61107661391395 15.14753909160942 C60.329845095833356 15.272031942227123, 60.048613577752754 15.396524792844826, 59.62558276953448 15.583787982879988 C59.231851442681055 15.728684750774537, 58.838120115827635 15.873581518669084, 58.614163165522136 15.955999746616863 C58.22128332438079 16.072604421199244, 57.82840348323945 16.189209095781624, 57.580973941978606 16.262644884843677 C57.24226823854182 16.33995225139185, 56.90356253510503 16.417259617940022, 56.530260695041825 16.502463326912284 C56.27766402512006 16.543301197588804, 56.02506735519829 16.584139068265323, 55.466341030820765 16.674469607403324 C55.242995181386014 16.696015512885612, 55.01964933195127 16.717561418367897, 54.393586823425736 16.77795691561503 C54.10500499878328 16.787211173040866, 53.81642317414082 16.796465430466704, 53.31640625 16.8125 C53.31640625 16.8125, 53.31640625 16.8125, 53.31640625 16.8125 C18.93637936219575 16.8125, -15.443647525608498 16.8125, -53.31640625 16.8125 C-53.66742474453771 16.801243520096225, -54.018443239075424 16.789987040192454, -54.39358682342573 16.77795691561503 C-54.64304677564572 16.753891814043854, -54.892506727865715 16.729826712472676, -55.46634103082076 16.674469607403324 C-55.86086829843945 16.61068549837939, -56.25539556605814 16.546901389355455, -56.53026069504182 16.502463326912284 C-56.74664873633789 16.45307416855039, -56.96303677763395 16.403685010188497, -57.580973941978584 16.26264488484368 C-57.96787736321746 16.147813980317483, -58.354780784456345 16.03298307579129, -58.614163165522115 15.95599974661687 C-58.90665829323003 15.848358835825035, -59.19915342093795 15.740717925033199, -59.625582769534475 15.58378798287999 C-59.87373307318833 15.473939204569644, -60.1218833768422 15.364090426259297, -60.611076613913944 15.147539091609424 C-60.865064450697076 15.015033799846636, -61.11905228748021 14.88252850808385, -61.5665950930662 14.649045713074488 C-61.87818984085637 14.460155145830095, -62.18978458864654 14.271264578585702, -62.48821177660234 14.090356263494078 C-62.69838706826935 13.943747078368911, -62.90856235993635 13.797137893243745, -63.37213954388356 13.473766517655022 C-63.67885103842073 13.229172262697283, -63.98556253295789 12.984578007739545, -64.21474614611219 12.801810175081076 C-64.52610536390932 12.519041971591193, -64.83746458170644 12.23627376810131, -65.01256913202111 12.077248448518052 C-65.27216496269797 11.809194440130124, -65.53176079337483 11.541140431742196, -65.76233007582874 11.303058717518388 C-65.92946372831445 11.106734019134448, -66.09659738080013 10.910409320750508, -66.46094804899374 10.482422293749961 C-66.63604665741073 10.24780611028258, -66.81114526582773 10.0131899268152, -67.10555228041132 9.618711348303982 C-67.27364381523894 9.360477611911614, -67.44173535006655 9.102243875519246, -67.69349395302737 8.715475054720711 C-67.85758545313605 8.424113980211573, -68.02167695324475 8.132752905702434, -68.22235708839607 7.776425004674045 C-68.40345763479543 7.400365845144823, -68.5845581811948 7.024306685615602, -68.68996847445335 6.8054199562452515 C-68.81857579126552 6.48775739726586, -68.9471831080777 6.17009483828647, -69.09440659571159 5.806449977458245 C-69.18290693815997 5.539901046618386, -69.27140728060836 5.273352115778527, -69.43400952917885 4.783620050234233 C-69.53784306548333 4.387657774565944, -69.64167660178782 3.9916954988976547, -69.7073817735569 3.74113320214054 C-69.7656854790257 3.441755997050752, -69.82398918449451 3.142378791960964, -69.91339998365544 2.6832732352486963 C-69.94923851667801 2.4053166502444685, -69.98507704970058 2.1273600652402407, -70.05121758645839 1.614387123072912 C-70.06816927370815 1.3503509110023713, -70.0851209609579 1.0863146989318304, -70.12026825987407 0.5388671479234546 C-70.12026825987407 0.1636284748460043, -70.12026825987407 -0.211610198231446, -70.12026825987407 -0.5388671479234464 C-70.09537639983046 -0.9265779604503619, -70.07048453978686 -1.3142887729772772, -70.05121758645839 -1.614387123072889 C-70.0116311143098 -1.9214119838242603, -69.97204464216121 -2.228436844575631, -69.91339998365544 -2.6832732352486883 C-69.86545523378872 -2.929459392687808, -69.817510483922 -3.175645550126928, -69.7073817735569 -3.741133202140532 C-69.6313240847173 -4.031174133296806, -69.5552663958777 -4.321215064453079, -69.43400952917887 -4.783620050234225 C-69.32564058186101 -5.110010053308667, -69.21727163454314 -5.436400056383109, -69.0944065957116 -5.8064499774582226 C-68.98732312833857 -6.070948212187609, -68.88023966096554 -6.335446446916997, -68.68996847445335 -6.8054199562452435 C-68.51058587976976 -7.177911752278376, -68.33120328508618 -7.550403548311509, -68.22235708839607 -7.776425004674037 C-68.08337989500296 -8.023193084510353, -67.94440270160985 -8.269961164346672, -67.69349395302739 -8.715475054720706 C-67.54303159195344 -8.946625646131444, -67.39256923087949 -9.177776237542185, -67.10555228041132 -9.618711348303977 C-66.92129025289198 -9.865605678563844, -66.73702822537265 -10.11250000882371, -66.46094804899376 -10.482422293749956 C-66.2911987113776 -10.681819524724824, -66.12144937376145 -10.881216755699691, -65.76233007582874 -11.303058717518383 C-65.5786248466641 -11.49274944911069, -65.39491961749945 -11.682440180702995, -65.01256913202113 -12.077248448518036 C-64.764224842167 -12.302788161733723, -64.51588055231285 -12.52832787494941, -64.2147461461122 -12.80181017508106 C-63.93432479476095 -13.025438740458132, -63.653903443409696 -13.249067305835203, -63.37213954388358 -13.473766517655017 C-63.03534538726007 -13.708699541731512, -62.69855123063657 -13.943632565808008, -62.488211776602355 -14.090356263494064 C-62.173803228347886 -14.280952573115641, -61.85939468009342 -14.471548882737217, -61.566595093066205 -14.649045713074482 C-61.24594669952522 -14.816327774599719, -60.92529830598423 -14.983609836124954, -60.61107661391395 -15.14753909160942 C-60.31917572144852 -15.276754957771546, -60.027274828983074 -15.405970823933673, -59.62558276953449 -15.583787982879986 C-59.4167016450963 -15.660658167549187, -59.20782052065812 -15.737528352218387, -58.614163165522136 -15.955999746616863 C-58.355969379759166 -16.032630306944476, -58.09777559399619 -16.109260867272088, -57.58097394197861 -16.262644884843677 C-57.206920235798236 -16.3480202023508, -56.83286652961787 -16.43339551985792, -56.53026069504183 -16.502463326912284 C-56.11122932384378 -16.57020906937077, -55.69219795264573 -16.637954811829253, -55.46634103082077 -16.674469607403324 C-55.040052483351836 -16.715593150890665, -54.6137639358829 -16.756716694378007, -54.393586823425736 -16.77795691561503 C-54.13666559473522 -16.7861958793523, -53.8797443660447 -16.79443484308957, -53.31640625000001 -16.8125 C-53.31640625000001 -16.8125, -53.31640625 -16.8125, -53.31640625 -16.8125" stroke="none" stroke-width="0" fill="#ffffff"></path><path d="M-53.31640625 -16.8125 C-16.690110440260057 -16.8125, 19.936185369479887 -16.8125, 53.31640625 -16.8125 M-53.31640625 -16.8125 C-27.854110667226987 -16.8125, -2.391815084453974 -16.8125, 53.31640625 -16.8125 M53.31640625 -16.8125 C53.31640625 -16.8125, 53.31640625 -16.8125, 53.31640625 -16.8125 M53.31640625 -16.8125 C53.31640625 -16.8125, 53.31640625 -16.8125, 53.31640625 -16.8125 M53.31640625 -16.8125 C53.53365532849352 -16.805533244902392, 53.750904406987054 -16.79856648980478, 54.393586823425736 -16.77795691561503 M53.31640625 -16.8125 C53.70315644567863 -16.800097673988173, 54.08990664135726 -16.78769534797635, 54.393586823425736 -16.77795691561503 M54.393586823425736 -16.77795691561503 C54.64405051108307 -16.753794984893382, 54.89451419874041 -16.729633054171735, 55.46634103082076 -16.674469607403328 M54.393586823425736 -16.77795691561503 C54.69856058547665 -16.748536463574588, 55.00353434752756 -16.71911601153415, 55.46634103082076 -16.674469607403328 M55.46634103082076 -16.674469607403328 C55.692142818256535 -16.637963725529726, 55.91794460569231 -16.601457843656124, 56.53026069504182 -16.502463326912288 M55.46634103082076 -16.674469607403328 C55.890125081072185 -16.60595548865307, 56.313909131323605 -16.537441369902815, 56.53026069504182 -16.502463326912288 M56.53026069504182 -16.502463326912288 C56.873259186531904 -16.424176159504007, 57.216257678022 -16.34588899209573, 57.58097394197859 -16.26264488484368 M56.53026069504182 -16.502463326912288 C56.74754679512687 -16.452869192492187, 56.964832895211934 -16.40327505807209, 57.58097394197859 -16.26264488484368 M57.58097394197859 -16.26264488484368 C57.83432781953702 -16.18745078386598, 58.087681697095455 -16.11225668288828, 58.61416316552212 -15.955999746616866 M57.58097394197859 -16.26264488484368 C57.80391991919336 -16.19647568907365, 58.02686589640813 -16.130306493303625, 58.61416316552212 -15.955999746616866 M58.61416316552212 -15.955999746616866 C58.901272496158875 -15.850340858932984, 59.18838182679562 -15.7446819712491, 59.625582769534475 -15.58378798287999 M58.61416316552212 -15.955999746616866 C58.905101487782204 -15.848931754620786, 59.19603981004229 -15.741863762624703, 59.625582769534475 -15.58378798287999 M59.625582769534475 -15.58378798287999 C59.8987537802006 -15.462863279788216, 60.17192479086673 -15.34193857669644, 60.611076613913944 -15.147539091609422 M59.625582769534475 -15.58378798287999 C59.923254454171655 -15.452017558207903, 60.220926138808835 -15.320247133535814, 60.611076613913944 -15.147539091609422 M60.611076613913944 -15.147539091609422 C60.97475264165271 -14.957809540883723, 61.33842866939147 -14.768079990158025, 61.5665950930662 -14.649045713074486 M60.611076613913944 -15.147539091609422 C60.920124168363834 -14.986309180407321, 61.22917172281372 -14.825079269205222, 61.5665950930662 -14.649045713074486 M61.5665950930662 -14.649045713074486 C61.893766798401074 -14.45071230262613, 62.22093850373595 -14.252378892177774, 62.48821177660235 -14.090356263494073 M61.5665950930662 -14.649045713074486 C61.841916181627894 -14.482144451222078, 62.11723727018959 -14.31524318936967, 62.48821177660235 -14.090356263494073 M62.48821177660235 -14.090356263494073 C62.70386350962931 -13.939926949947527, 62.91951524265627 -13.789497636400982, 63.37213954388357 -13.47376651765502 M62.48821177660235 -14.090356263494073 C62.78824153258442 -13.881068493799784, 63.08827128856649 -13.671780724105497, 63.37213954388357 -13.47376651765502 M63.37213954388357 -13.47376651765502 C63.552569516999434 -13.329878415538353, 63.7329994901153 -13.185990313421685, 64.21474614611219 -12.801810175081075 M63.37213954388357 -13.47376651765502 C63.64678117418125 -13.254747126013344, 63.92142280447892 -13.035727734371667, 64.21474614611219 -12.801810175081075 M64.21474614611219 -12.801810175081075 C64.47330951694522 -12.566989762902425, 64.73187288777824 -12.332169350723776, 65.01256913202111 -12.077248448518045 M64.21474614611219 -12.801810175081075 C64.4310875205319 -12.605334662912183, 64.64742889495163 -12.408859150743293, 65.01256913202111 -12.077248448518045 M65.01256913202111 -12.077248448518045 C65.25395572870775 -11.827996969230943, 65.49534232539438 -11.57874548994384, 65.76233007582874 -11.303058717518391 M65.01256913202111 -12.077248448518045 C65.20454030521383 -11.87902245107014, 65.39651147840652 -11.680796453622236, 65.76233007582874 -11.303058717518391 M65.76233007582874 -11.303058717518391 C65.96157330630597 -11.069016281738868, 66.16081653678317 -10.834973845959343, 66.46094804899376 -10.48242229374996 M65.76233007582874 -11.303058717518391 C65.9638159375087 -11.066381959518797, 66.16530179918867 -10.829705201519202, 66.46094804899376 -10.48242229374996 M66.46094804899376 -10.48242229374996 C66.71110660150613 -10.147232623296341, 66.9612651540185 -9.812042952842726, 67.10555228041132 -9.61871134830398 M66.46094804899376 -10.48242229374996 C66.68219718998614 -10.185968601031554, 66.90344633097853 -9.889514908313148, 67.10555228041132 -9.61871134830398 M67.10555228041132 -9.61871134830398 C67.2847514769538 -9.343413260692776, 67.46395067349629 -9.068115173081573, 67.69349395302739 -8.715475054720704 M67.10555228041132 -9.61871134830398 C67.33958008632824 -9.25918179315053, 67.57360789224516 -8.899652237997081, 67.69349395302739 -8.715475054720704 M67.69349395302739 -8.715475054720704 C67.81321698204258 -8.502894693432934, 67.93294001105778 -8.290314332145165, 68.22235708839607 -7.776425004674043 M67.69349395302739 -8.715475054720704 C67.9013859605934 -8.346341743938746, 68.10927796815942 -7.977208433156786, 68.22235708839607 -7.776425004674043 M68.22235708839607 -7.776425004674043 C68.39959396087335 -7.408388846713422, 68.57683083335061 -7.040352688752799, 68.68996847445335 -6.80541995624525 M68.22235708839607 -7.776425004674043 C68.33960537398362 -7.532956430940066, 68.45685365957117 -7.28948785720609, 68.68996847445335 -6.80541995624525 M68.68996847445335 -6.80541995624525 C68.83099514280602 -6.457081358849001, 68.9720218111587 -6.108742761452752, 69.09440659571159 -5.806449977458242 M68.68996847445335 -6.80541995624525 C68.79098469894201 -6.55590792874242, 68.89200092343067 -6.306395901239592, 69.09440659571159 -5.806449977458242 M69.09440659571159 -5.806449977458242 C69.21868658137161 -5.432138461976913, 69.34296656703162 -5.057826946495583, 69.43400952917885 -4.783620050234238 M69.09440659571159 -5.806449977458242 C69.18140161269577 -5.544434847075514, 69.26839662967996 -5.282419716692786, 69.43400952917885 -4.783620050234238 M69.43400952917885 -4.783620050234238 C69.52607837012039 -4.432521656836063, 69.61814721106194 -4.081423263437888, 69.7073817735569 -3.7411332021405377 M69.43400952917885 -4.783620050234238 C69.51995263298896 -4.455881747429453, 69.60589573679908 -4.128143444624668, 69.7073817735569 -3.7411332021405377 M69.7073817735569 -3.7411332021405377 C69.77373665905338 -3.4004148892261155, 69.84009154454986 -3.0596965763116937, 69.91339998365544 -2.6832732352486945 M69.7073817735569 -3.7411332021405377 C69.75945320243765 -3.4737574201383072, 69.81152463131839 -3.2063816381360764, 69.91339998365544 -2.6832732352486945 M69.91339998365544 -2.6832732352486945 C69.94796383721186 -2.4152028124700387, 69.98252769076826 -2.147132389691383, 70.05121758645839 -1.6143871230729026 M69.91339998365544 -2.6832732352486945 C69.94440743701716 -2.4427855500893823, 69.97541489037889 -2.20229786493007, 70.05121758645839 -1.6143871230729026 M70.05121758645839 -1.6143871230729026 C70.06612498441352 -1.3821923668867897, 70.08103238236865 -1.1499976107006766, 70.12026825987407 -0.5388671479234525 M70.05121758645839 -1.6143871230729026 C70.06578912175523 -1.3874236988931434, 70.08036065705205 -1.1604602747133845, 70.12026825987407 -0.5388671479234525 M70.12026825987407 -0.5388671479234525 C70.12026825987407 -0.20890660384289966, 70.12026825987407 0.12105394023765315, 70.12026825987407 0.5388671479234484 M70.12026825987407 -0.5388671479234525 C70.12026825987407 -0.13136851331110805, 70.12026825987407 0.2761301213012364, 70.12026825987407 0.5388671479234484 M70.12026825987407 0.5388671479234484 C70.10201318411191 0.8232046881510504, 70.08375810834974 1.1075422283786525, 70.05121758645839 1.6143871230728912 M70.12026825987407 0.5388671479234484 C70.1039388354316 0.7932111144889966, 70.08760941098913 1.0475550810545449, 70.05121758645839 1.6143871230728912 M70.05121758645839 1.6143871230728912 C70.0143265193383 1.9005069546911044, 69.97743545221822 2.1866267863093176, 69.91339998365544 2.683273235248683 M70.05121758645839 1.6143871230728912 C70.01067439843547 1.9288320832206667, 69.97013121041255 2.243277043368442, 69.91339998365544 2.683273235248683 M69.91339998365544 2.683273235248683 C69.8436754598637 3.0412939286359517, 69.77395093607196 3.39931462202322, 69.7073817735569 3.7411332021405337 M69.91339998365544 2.683273235248683 C69.83747559997468 3.0731288988251895, 69.76155121629392 3.462984562401696, 69.7073817735569 3.7411332021405337 M69.7073817735569 3.7411332021405337 C69.64612869423678 3.9747177408406857, 69.58487561491665 4.208302279540837, 69.43400952917887 4.7836200502342265 M69.7073817735569 3.7411332021405337 C69.63471950720073 4.018225915782076, 69.56205724084457 4.295318629423619, 69.43400952917887 4.7836200502342265 M69.43400952917887 4.7836200502342265 C69.30165728235256 5.182243930208237, 69.16930503552626 5.580867810182248, 69.0944065957116 5.806449977458231 M69.43400952917887 4.7836200502342265 C69.3254045547529 5.110720929352485, 69.21679958032692 5.437821808470745, 69.0944065957116 5.806449977458231 M69.0944065957116 5.806449977458231 C68.93937686307903 6.189376414356649, 68.78434713044646 6.572302851255067, 68.68996847445335 6.805419956245245 M69.0944065957116 5.806449977458231 C69.0120031658233 6.009988042444269, 68.929599735935 6.213526107430306, 68.68996847445335 6.805419956245245 M68.68996847445335 6.805419956245245 C68.5695134907138 7.055547307304184, 68.44905850697425 7.305674658363121, 68.22235708839607 7.776425004674039 M68.68996847445335 6.805419956245245 C68.53290976782243 7.131555721082338, 68.3758510611915 7.457691485919431, 68.22235708839607 7.776425004674039 M68.22235708839607 7.776425004674039 C68.02871348526601 8.120258830572553, 67.83506988213595 8.464092656471067, 67.69349395302739 8.7154750547207 M68.22235708839607 7.776425004674039 C68.05791054438951 8.068416495575931, 67.89346400038296 8.360407986477822, 67.69349395302739 8.7154750547207 M67.69349395302739 8.7154750547207 C67.5216334578114 8.97949892637717, 67.34977296259542 9.24352279803364, 67.10555228041133 9.618711348303972 M67.69349395302739 8.7154750547207 C67.54257632776189 8.947325054185212, 67.39165870249639 9.179175053649722, 67.10555228041133 9.618711348303972 M67.10555228041133 9.618711348303972 C66.90417142320123 9.888543350791991, 66.70279056599114 10.158375353280013, 66.46094804899376 10.482422293749956 M67.10555228041133 9.618711348303972 C66.86885916970155 9.935858553469092, 66.63216605899177 10.253005758634211, 66.46094804899376 10.482422293749956 M66.46094804899376 10.482422293749956 C66.18600202825375 10.805389534582941, 65.91105600751375 11.128356775415927, 65.76233007582874 11.303058717518383 M66.46094804899376 10.482422293749956 C66.24092233489162 10.740877017352123, 66.02089662078949 10.99933174095429, 65.76233007582874 11.303058717518383 M65.76233007582874 11.303058717518383 C65.54728701448207 11.525108333722502, 65.3322439531354 11.747157949926619, 65.01256913202111 12.077248448518041 M65.76233007582874 11.303058717518383 C65.52596312367938 11.547127001700279, 65.28959617153001 11.791195285882175, 65.01256913202111 12.077248448518041 M65.01256913202111 12.077248448518041 C64.69666793612126 12.364141556346667, 64.38076674022142 12.65103466417529, 64.2147461461122 12.801810175081064 M65.01256913202111 12.077248448518041 C64.69862934844078 12.362360253574204, 64.38468956486045 12.647472058630367, 64.2147461461122 12.801810175081064 M64.2147461461122 12.801810175081064 C63.93389153775366 13.02578425139199, 63.65303692939512 13.249758327702915, 63.37213954388357 13.473766517655019 M64.2147461461122 12.801810175081064 C63.951513365652644 13.011731312579085, 63.68828058519309 13.221652450077105, 63.37213954388357 13.473766517655019 M63.37213954388357 13.473766517655019 C63.1629445545505 13.619691886308635, 62.953749565217436 13.765617254962251, 62.488211776602355 14.090356263494066 M63.37213954388357 13.473766517655019 C63.0301534858576 13.712321187396086, 62.68816742783164 13.950875857137154, 62.488211776602355 14.090356263494066 M62.488211776602355 14.090356263494066 C62.25653866081539 14.230797867746473, 62.024865545028426 14.37123947199888, 61.566595093066205 14.649045713074484 M62.488211776602355 14.090356263494066 C62.28635602334661 14.212722407353775, 62.084500270090864 14.335088551213484, 61.566595093066205 14.649045713074484 M61.566595093066205 14.649045713074484 C61.31097873621164 14.782400602715422, 61.05536237935707 14.91575549235636, 60.61107661391395 15.14753909160942 M61.566595093066205 14.649045713074484 C61.3507365863295 14.76165895777505, 61.1348780795928 14.874272202475614, 60.61107661391395 15.14753909160942 M60.61107661391395 15.14753909160942 C60.3932005720644 15.243986352273067, 60.17532453021485 15.340433612936716, 59.62558276953448 15.583787982879988 M60.61107661391395 15.14753909160942 C60.24756928885663 15.308453001350621, 59.884061963799304 15.469366911091821, 59.62558276953448 15.583787982879988 M59.62558276953448 15.583787982879988 C59.371278882261215 15.677374164155914, 59.116974994987956 15.77096034543184, 58.614163165522136 15.955999746616863 M59.62558276953448 15.583787982879988 C59.229912255419855 15.729398389612308, 58.834241741305235 15.875008796344629, 58.614163165522136 15.955999746616863 M58.614163165522136 15.955999746616863 C58.213356215217225 16.074957145588748, 57.812549264912306 16.19391454456063, 57.580973941978606 16.262644884843677 M58.614163165522136 15.955999746616863 C58.3299288833275 16.040358989596037, 58.04569460113286 16.124718232575212, 57.580973941978606 16.262644884843677 M57.580973941978606 16.262644884843677 C57.17958632990261 16.354258988001067, 56.77819871782661 16.44587309115846, 56.530260695041825 16.502463326912284 M57.580973941978606 16.262644884843677 C57.36200799868759 16.312622432513535, 57.14304205539656 16.362599980183397, 56.530260695041825 16.502463326912284 M56.530260695041825 16.502463326912284 C56.19672250553573 16.556387194764337, 55.86318431602964 16.610311062616393, 55.466341030820765 16.674469607403324 M56.530260695041825 16.502463326912284 C56.14574190200733 16.564629343382325, 55.761223108972835 16.626795359852366, 55.466341030820765 16.674469607403324 M55.466341030820765 16.674469607403324 C55.16866386062573 16.703186166002865, 54.87098669043069 16.731902724602403, 54.393586823425736 16.77795691561503 M55.466341030820765 16.674469607403324 C55.06148279209324 16.7135257947801, 54.65662455336572 16.752581982156872, 54.393586823425736 16.77795691561503 M54.393586823425736 16.77795691561503 C54.12682922962056 16.786511312436204, 53.86007163581539 16.79506570925738, 53.31640625 16.8125 M54.393586823425736 16.77795691561503 C54.03025537289736 16.789608248051707, 53.66692392236898 16.801259580488388, 53.31640625 16.8125 M53.31640625 16.8125 C53.31640625 16.8125, 53.31640625 16.8125, 53.31640625 16.8125 M53.31640625 16.8125 C53.31640625 16.8125, 53.31640625 16.8125, 53.31640625 16.8125 M53.31640625 16.8125 C12.945385013862392 16.8125, -27.425636222275216 16.8125, -53.31640625 16.8125 M53.31640625 16.8125 C14.499127191283584 16.8125, -24.31815186743283 16.8125, -53.31640625 16.8125 M-53.31640625 16.8125 C-53.58953252390146 16.803741372004023, -53.86265879780292 16.794982744008042, -54.39358682342573 16.77795691561503 M-53.31640625 16.8125 C-53.616782627166685 16.802867514231416, -53.91715900433337 16.793235028462828, -54.39358682342573 16.77795691561503 M-54.39358682342573 16.77795691561503 C-54.75228610910218 16.74335362692483, -55.11098539477864 16.708750338234626, -55.46634103082076 16.674469607403324 M-54.39358682342573 16.77795691561503 C-54.79999770917113 16.738750946247773, -55.206408594916525 16.699544976880514, -55.46634103082076 16.674469607403324 M-55.46634103082076 16.674469607403324 C-55.707972663499596 16.635404478913106, -55.949604296178435 16.59633935042289, -56.53026069504182 16.502463326912284 M-55.46634103082076 16.674469607403324 C-55.84841498932381 16.61269885282035, -56.230488947826856 16.550928098237378, -56.53026069504182 16.502463326912284 M-56.53026069504182 16.502463326912284 C-56.82176687164128 16.435928944359034, -57.11327304824075 16.369394561805784, -57.580973941978584 16.26264488484368 M-56.53026069504182 16.502463326912284 C-56.7743519056739 16.44675110092952, -57.01844311630598 16.391038874946755, -57.580973941978584 16.26264488484368 M-57.580973941978584 16.26264488484368 C-57.96456602600796 16.1487967678197, -58.34815811003733 16.034948650795723, -58.614163165522115 15.95599974661687 M-57.580973941978584 16.26264488484368 C-57.988535425052426 16.141682776001247, -58.39609690812627 16.020720667158812, -58.614163165522115 15.95599974661687 M-58.614163165522115 15.95599974661687 C-58.97926539004866 15.821638753023134, -59.344367614575205 15.687277759429398, -59.625582769534475 15.58378798287999 M-58.614163165522115 15.95599974661687 C-58.93644926521457 15.837395482749997, -59.25873536490703 15.718791218883124, -59.625582769534475 15.58378798287999 M-59.625582769534475 15.58378798287999 C-60.00500452096703 15.415829228667162, -60.38442627239957 15.247870474454334, -60.611076613913944 15.147539091609424 M-59.625582769534475 15.58378798287999 C-59.99983986086158 15.418115470491644, -60.37409695218868 15.252442958103298, -60.611076613913944 15.147539091609424 M-60.611076613913944 15.147539091609424 C-60.81587954320837 15.04069353457906, -61.02068247250279 14.933847977548695, -61.5665950930662 14.649045713074488 M-60.611076613913944 15.147539091609424 C-60.88101746515753 15.006711122421017, -61.1509583164011 14.865883153232607, -61.5665950930662 14.649045713074488 M-61.5665950930662 14.649045713074488 C-61.87215734405247 14.463812080843507, -62.17771959503874 14.278578448612528, -62.48821177660234 14.090356263494078 M-61.5665950930662 14.649045713074488 C-61.89150766097744 14.452081805008506, -62.21642022888868 14.255117896942522, -62.48821177660234 14.090356263494078 M-62.48821177660234 14.090356263494078 C-62.741769625481886 13.913485284458076, -62.99532747436143 13.736614305422076, -63.37213954388356 13.473766517655022 M-62.48821177660234 14.090356263494078 C-62.7241021586778 13.925809344488295, -62.95999254075326 13.761262425482512, -63.37213954388356 13.473766517655022 M-63.37213954388356 13.473766517655022 C-63.564021660969686 13.32074563547642, -63.75590377805581 13.16772475329782, -64.21474614611219 12.801810175081076 M-63.37213954388356 13.473766517655022 C-63.652141612368105 13.250472319206576, -63.93214368085264 13.027178120758128, -64.21474614611219 12.801810175081076 M-64.21474614611219 12.801810175081076 C-64.38821192340706 12.64427314579484, -64.56167770070194 12.4867361165086, -65.01256913202111 12.077248448518052 M-64.21474614611219 12.801810175081076 C-64.47016082771616 12.569849319150514, -64.72557550932011 12.337888463219953, -65.01256913202111 12.077248448518052 M-65.01256913202111 12.077248448518052 C-65.29991962100709 11.78053547672613, -65.58727010999307 11.483822504934208, -65.76233007582874 11.303058717518388 M-65.01256913202111 12.077248448518052 C-65.30096534126127 11.779455684708465, -65.58936155050142 11.481662920898875, -65.76233007582874 11.303058717518388 M-65.76233007582874 11.303058717518388 C-66.00123079034599 11.022432344410678, -66.24013150486323 10.74180597130297, -66.46094804899374 10.482422293749961 M-65.76233007582874 11.303058717518388 C-65.9316884002657 11.104120792873086, -66.10104672470264 10.905182868227785, -66.46094804899374 10.482422293749961 M-66.46094804899374 10.482422293749961 C-66.64601453025952 10.234450068757107, -66.8310810115253 9.986477843764254, -67.10555228041132 9.618711348303982 M-66.46094804899374 10.482422293749961 C-66.6645933539544 10.209556137571617, -66.86823865891508 9.936689981393272, -67.10555228041132 9.618711348303982 M-67.10555228041132 9.618711348303982 C-67.30511197313 9.312134071007392, -67.50467166584866 9.005556793710804, -67.69349395302737 8.715475054720711 M-67.10555228041132 9.618711348303982 C-67.27679919710876 9.355630098020907, -67.44804611380619 9.092548847737831, -67.69349395302737 8.715475054720711 M-67.69349395302737 8.715475054720711 C-67.90135564333625 8.346395575298772, -68.10921733364512 7.97731609587683, -68.22235708839607 7.776425004674045 M-67.69349395302737 8.715475054720711 C-67.87531802370603 8.392628005547097, -68.0571420943847 8.069780956373481, -68.22235708839607 7.776425004674045 M-68.22235708839607 7.776425004674045 C-68.37645808415449 7.456430989748572, -68.53055907991292 7.1364369748231, -68.68996847445335 6.8054199562452515 M-68.22235708839607 7.776425004674045 C-68.39013841122504 7.428023497874478, -68.55791973405401 7.079621991074911, -68.68996847445335 6.8054199562452515 M-68.68996847445335 6.8054199562452515 C-68.7804189657573 6.582005493983192, -68.87086945706126 6.358591031721132, -69.09440659571159 5.806449977458245 M-68.68996847445335 6.8054199562452515 C-68.81074383725664 6.507102475088326, -68.93151920005994 6.208784993931401, -69.09440659571159 5.806449977458245 M-69.09440659571159 5.806449977458245 C-69.21025457215114 5.457534330290723, -69.3261025485907 5.1086186831232, -69.43400952917885 4.783620050234233 M-69.09440659571159 5.806449977458245 C-69.18373181093287 5.537416661252031, -69.27305702615416 5.268383345045819, -69.43400952917885 4.783620050234233 M-69.43400952917885 4.783620050234233 C-69.52261356541952 4.445734458816345, -69.61121760166019 4.107848867398457, -69.7073817735569 3.74113320214054 M-69.43400952917885 4.783620050234233 C-69.50960630220504 4.49533679083666, -69.58520307523125 4.2070535314390884, -69.7073817735569 3.74113320214054 M-69.7073817735569 3.74113320214054 C-69.74918309448393 3.526492253892619, -69.79098441541093 3.3118513056446988, -69.91339998365544 2.6832732352486963 M-69.7073817735569 3.74113320214054 C-69.77163327268651 3.411215333669161, -69.83588477181611 3.0812974651977822, -69.91339998365544 2.6832732352486963 M-69.91339998365544 2.6832732352486963 C-69.9518023222872 2.3854322802202645, -69.99020466091896 2.0875913251918328, -70.05121758645839 1.614387123072912 M-69.91339998365544 2.6832732352486963 C-69.95164556907245 2.38664802719936, -69.98989115448948 2.0900228191500236, -70.05121758645839 1.614387123072912 M-70.05121758645839 1.614387123072912 C-70.07011993850202 1.3199677322894656, -70.08902229054564 1.0255483415060194, -70.12026825987407 0.5388671479234546 M-70.05121758645839 1.614387123072912 C-70.06596827129229 1.3846333002464188, -70.08071895612619 1.1548794774199258, -70.12026825987407 0.5388671479234546 M-70.12026825987407 0.5388671479234546 C-70.12026825987407 0.16445174304616905, -70.12026825987407 -0.20996366183111648, -70.12026825987407 -0.5388671479234464 M-70.12026825987407 0.5388671479234546 C-70.12026825987407 0.13235862426415163, -70.12026825987407 -0.27414989939515133, -70.12026825987407 -0.5388671479234464 M-70.12026825987407 -0.5388671479234464 C-70.09451849164631 -0.93994057290952, -70.06876872341856 -1.3410139978955935, -70.05121758645839 -1.614387123072889 M-70.12026825987407 -0.5388671479234464 C-70.09374443254192 -0.951997168269588, -70.06722060520978 -1.36512718861573, -70.05121758645839 -1.614387123072889 M-70.05121758645839 -1.614387123072889 C-70.00274032600058 -1.9903671822658788, -69.95426306554276 -2.3663472414588687, -69.91339998365544 -2.6832732352486883 M-70.05121758645839 -1.614387123072889 C-70.02319229405495 -1.8317457567340738, -69.9951670016515 -2.0491043903952586, -69.91339998365544 -2.6832732352486883 M-69.91339998365544 -2.6832732352486883 C-69.87105634434975 -2.900698873752012, -69.82871270504408 -3.1181245122553354, -69.7073817735569 -3.741133202140532 M-69.91339998365544 -2.6832732352486883 C-69.83263278126782 -3.097995749354825, -69.7518655788802 -3.512718263460961, -69.7073817735569 -3.741133202140532 M-69.7073817735569 -3.741133202140532 C-69.61176477424975 -4.1057622611683575, -69.5161477749426 -4.470391320196184, -69.43400952917887 -4.783620050234225 M-69.7073817735569 -3.741133202140532 C-69.61574626512174 -4.090579110884378, -69.5241107566866 -4.440025019628225, -69.43400952917887 -4.783620050234225 M-69.43400952917887 -4.783620050234225 C-69.34197259499923 -5.060820631889215, -69.24993566081962 -5.338021213544205, -69.0944065957116 -5.8064499774582226 M-69.43400952917887 -4.783620050234225 C-69.3037918274016 -5.175815020614122, -69.17357412562433 -5.568009990994019, -69.0944065957116 -5.8064499774582226 M-69.0944065957116 -5.8064499774582226 C-68.96678941237744 -6.121666887604007, -68.83917222904327 -6.4368837977497915, -68.68996847445335 -6.8054199562452435 M-69.0944065957116 -5.8064499774582226 C-68.98972516603155 -6.0650151326457085, -68.8850437363515 -6.323580287833194, -68.68996847445335 -6.8054199562452435 M-68.68996847445335 -6.8054199562452435 C-68.57830916505456 -7.037282901338325, -68.46664985565576 -7.269145846431407, -68.22235708839607 -7.776425004674037 M-68.68996847445335 -6.8054199562452435 C-68.56667015816835 -7.0614515481723945, -68.44337184188335 -7.317483140099545, -68.22235708839607 -7.776425004674037 M-68.22235708839607 -7.776425004674037 C-68.07537967186859 -8.037398290795865, -67.92840225534111 -8.298371576917695, -67.69349395302739 -8.715475054720706 M-68.22235708839607 -7.776425004674037 C-68.06085557716324 -8.063187291669271, -67.89935406593042 -8.349949578664507, -67.69349395302739 -8.715475054720706 M-67.69349395302739 -8.715475054720706 C-67.5379463631859 -8.954437923093517, -67.38239877334439 -9.193400791466328, -67.10555228041132 -9.618711348303977 M-67.69349395302739 -8.715475054720706 C-67.55653162720894 -8.925885966711931, -67.41956930139051 -9.136296878703156, -67.10555228041132 -9.618711348303977 M-67.10555228041132 -9.618711348303977 C-66.96494526853323 -9.807111934658325, -66.82433825665512 -9.995512521012675, -66.46094804899376 -10.482422293749956 M-67.10555228041132 -9.618711348303977 C-66.87800952023478 -9.92359791736863, -66.65046676005825 -10.228484486433285, -66.46094804899376 -10.482422293749956 M-66.46094804899376 -10.482422293749956 C-66.23922564908253 -10.742870041047642, -66.0175032491713 -11.00331778834533, -65.76233007582874 -11.303058717518383 M-66.46094804899376 -10.482422293749956 C-66.30873940003775 -10.661215233731163, -66.15653075108173 -10.840008173712368, -65.76233007582874 -11.303058717518383 M-65.76233007582874 -11.303058717518383 C-65.60410923979069 -11.466434720899894, -65.44588840375265 -11.629810724281405, -65.01256913202113 -12.077248448518036 M-65.76233007582874 -11.303058717518383 C-65.60205241664366 -11.468558559667525, -65.44177475745859 -11.634058401816665, -65.01256913202113 -12.077248448518036 M-65.01256913202113 -12.077248448518036 C-64.84836282846734 -12.226376268744874, -64.68415652491355 -12.37550408897171, -64.2147461461122 -12.80181017508106 M-65.01256913202113 -12.077248448518036 C-64.8084498933591 -12.26262414037179, -64.60433065469707 -12.447999832225541, -64.2147461461122 -12.80181017508106 M-64.2147461461122 -12.80181017508106 C-63.96146668302988 -13.003793806839637, -63.70818721994756 -13.205777438598211, -63.37213954388358 -13.473766517655017 M-64.2147461461122 -12.80181017508106 C-64.04418126011345 -12.937831132742833, -63.87361637411468 -13.073852090404605, -63.37213954388358 -13.473766517655017 M-63.37213954388358 -13.473766517655017 C-63.1472085944439 -13.630668610880264, -62.92227764500423 -13.787570704105512, -62.488211776602355 -14.090356263494064 M-63.37213954388358 -13.473766517655017 C-63.022848228040175 -13.717417019010012, -62.673556912196766 -13.961067520365008, -62.488211776602355 -14.090356263494064 M-62.488211776602355 -14.090356263494064 C-62.16752535640484 -14.284758255980387, -61.84683893620732 -14.47916024846671, -61.566595093066205 -14.649045713074482 M-62.488211776602355 -14.090356263494064 C-62.21648937387375 -14.255075980846227, -61.94476697114515 -14.41979569819839, -61.566595093066205 -14.649045713074482 M-61.566595093066205 -14.649045713074482 C-61.232853612456665 -14.823158429736859, -60.899112131847126 -14.997271146399235, -60.61107661391395 -15.14753909160942 M-61.566595093066205 -14.649045713074482 C-61.22838448185986 -14.825489972306597, -60.89017387065352 -15.00193423153871, -60.61107661391395 -15.14753909160942 M-60.61107661391395 -15.14753909160942 C-60.265214896365194 -15.30064181434493, -59.919353178816436 -15.453744537080437, -59.62558276953449 -15.583787982879986 M-60.61107661391395 -15.14753909160942 C-60.382751262770505 -15.248611951529728, -60.154425911627065 -15.349684811450034, -59.62558276953449 -15.583787982879986 M-59.62558276953449 -15.583787982879986 C-59.324229468241654 -15.69468878343513, -59.022876166948826 -15.80558958399027, -58.614163165522136 -15.955999746616863 M-59.62558276953449 -15.583787982879986 C-59.38532873995319 -15.672203686649809, -59.14507471037189 -15.760619390419631, -58.614163165522136 -15.955999746616863 M-58.614163165522136 -15.955999746616863 C-58.34662904125584 -16.035402470383826, -58.07909491698954 -16.114805194150787, -57.58097394197861 -16.262644884843677 M-58.614163165522136 -15.955999746616863 C-58.36631210914616 -16.02956063915251, -58.11846105277018 -16.103121531688156, -57.58097394197861 -16.262644884843677 M-57.58097394197861 -16.262644884843677 C-57.29387268178521 -16.32817387397201, -57.00677142159181 -16.393702863100344, -56.53026069504183 -16.502463326912284 M-57.58097394197861 -16.262644884843677 C-57.34618543292528 -16.316233829896895, -57.11139692387194 -16.36982277495011, -56.53026069504183 -16.502463326912284 M-56.53026069504183 -16.502463326912284 C-56.258364024400066 -16.546421472031472, -55.9864673537583 -16.59037961715066, -55.46634103082077 -16.674469607403324 M-56.53026069504183 -16.502463326912284 C-56.30929416776536 -16.538187481421332, -56.08832764048889 -16.57391163593038, -55.46634103082077 -16.674469607403324 M-55.46634103082077 -16.674469607403324 C-55.09175507846818 -16.710605463721258, -54.7171691261156 -16.746741320039195, -54.393586823425736 -16.77795691561503 M-55.46634103082077 -16.674469607403324 C-55.230425767090566 -16.69722806916576, -54.99451050336036 -16.7199865309282, -54.393586823425736 -16.77795691561503 M-54.393586823425736 -16.77795691561503 C-53.98581636034455 -16.791033320688985, -53.57804589726336 -16.80410972576294, -53.31640625000001 -16.8125 M-54.393586823425736 -16.77795691561503 C-54.0215695639957 -16.789886785037282, -53.64955230456566 -16.801816654459536, -53.31640625000001 -16.8125 M-53.31640625000001 -16.8125 C-53.31640625000001 -16.8125, -53.31640625000001 -16.8125, -53.31640625 -16.8125 M-53.31640625000001 -16.8125 C-53.31640625000001 -16.8125, -53.31640625 -16.8125, -53.31640625 -16.8125" stroke="#9aa8a3" stroke-width="1.3" fill="none" stroke-dasharray="0 0"></path></g><g class="label" transform="translate(0, -9.3125)"><rect></rect><g><rect class="background" style="stroke: none"></rect><text y="-10.1"><tspan class="text-outer-tspan row" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">Query</tspan><tspan font-style="normal" class="text-inner-tspan" font-weight="normal"> finished</tspan></tspan></text></g></g></g></g></g></g><defs><filter id="gd1-drop-shadow" height="130%" width="130%"><feDropShadow dx="4" dy="4" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"></feDropShadow></filter></defs><defs><filter id="gd1-drop-shadow-small" height="150%" width="150%"><feDropShadow dx="2" dy="2" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"></feDropShadow></filter></defs><linearGradient id="gd1-gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="#9aa8a3" stop-opacity="1"></stop><stop offset="100%" stop-color="hsl(214.2857142857, 0%, 86.2745098039%)" stop-opacity="1"></stop></linearGradient></svg>