@greenpandastudios/aug-cli 0.19.0

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 (414) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +13 -0
  3. package/THIRD_PARTY_NOTICES.md +18 -0
  4. package/bin/aug.mjs +3 -0
  5. package/docs/api/crypto.md +351 -0
  6. package/docs/api/io.md +207 -0
  7. package/docs/api/json.md +21 -0
  8. package/docs/api/memory.md +109 -0
  9. package/docs/api/time.md +54 -0
  10. package/docs/api/web.md +184 -0
  11. package/docs/assets/benchmarks/execution.svg +2978 -0
  12. package/docs/assets/benchmarks/http.svg +1674 -0
  13. package/docs/assets/benchmarks/improvements.svg +2315 -0
  14. package/docs/assets/benchmarks/memory.svg +1891 -0
  15. package/docs/benchmark-baseline.json +1087 -0
  16. package/docs/benchmark-results.json +91123 -0
  17. package/docs/benchmarks.json +38 -0
  18. package/docs/compatibility.md +42 -0
  19. package/docs/concurrency-implementation.md +18 -0
  20. package/docs/diagnostics.md +97 -0
  21. package/docs/docker.md +35 -0
  22. package/docs/example-projects.json +26 -0
  23. package/docs/examples/approved-design/counters.md +253 -0
  24. package/docs/examples/approved-design/dependencies/august/0.19.0/io/contracts.md +395 -0
  25. package/docs/examples/approved-design/domain/app.md +165 -0
  26. package/docs/examples/approved-design/domain/export.md +83 -0
  27. package/docs/examples/approved-design/domain/models.md +80 -0
  28. package/docs/examples/approved-design/domain/numbers.md +248 -0
  29. package/docs/examples/approved-design/index.md +39 -0
  30. package/docs/examples/approved-design/main-yaml.md +24 -0
  31. package/docs/examples/approved-design/main.md +215 -0
  32. package/docs/examples/benchmark/index.md +33 -0
  33. package/docs/examples/benchmark/main-yaml.md +17 -0
  34. package/docs/examples/benchmark/main.md +117 -0
  35. package/docs/examples/cli-args/index.md +32 -0
  36. package/docs/examples/cli-args/main.md +107 -0
  37. package/docs/examples/collections/index.md +32 -0
  38. package/docs/examples/collections/main.md +118 -0
  39. package/docs/examples/collections-benchmark/index.md +34 -0
  40. package/docs/examples/collections-benchmark/main.md +115 -0
  41. package/docs/examples/cpu-benchmark/index.md +34 -0
  42. package/docs/examples/cpu-benchmark/main.md +90 -0
  43. package/docs/examples/developer-workflow/calculator.md +357 -0
  44. package/docs/examples/developer-workflow/dependencies/august/0.19.0/io/contracts.md +395 -0
  45. package/docs/examples/developer-workflow/index.md +37 -0
  46. package/docs/examples/developer-workflow/logging/console.md +124 -0
  47. package/docs/examples/developer-workflow/logging/export.md +70 -0
  48. package/docs/examples/developer-workflow/logging/logger.md +111 -0
  49. package/docs/examples/developer-workflow/main.md +172 -0
  50. package/docs/examples/drop/index.md +33 -0
  51. package/docs/examples/drop/main.md +85 -0
  52. package/docs/examples/drop/resource.md +95 -0
  53. package/docs/examples/errors/errors.md +85 -0
  54. package/docs/examples/errors/index.md +33 -0
  55. package/docs/examples/errors/main.md +92 -0
  56. package/docs/examples/ffi/index.md +33 -0
  57. package/docs/examples/ffi/main.md +75 -0
  58. package/docs/examples/ffi/native.md +93 -0
  59. package/docs/examples/generic-di/dependencies/august/0.19.0/io/contracts.md +395 -0
  60. package/docs/examples/generic-di/index.md +33 -0
  61. package/docs/examples/generic-di/main.md +111 -0
  62. package/docs/examples/generic-di/types.md +180 -0
  63. package/docs/examples/generics/index.md +33 -0
  64. package/docs/examples/generics/main.md +120 -0
  65. package/docs/examples/generics/types.md +189 -0
  66. package/docs/examples/hello/app/export.md +67 -0
  67. package/docs/examples/hello/app/greeter.md +190 -0
  68. package/docs/examples/hello/dependencies/august/0.19.0/io/contracts.md +395 -0
  69. package/docs/examples/hello/index.md +37 -0
  70. package/docs/examples/hello/logging/console.md +121 -0
  71. package/docs/examples/hello/logging/export.md +71 -0
  72. package/docs/examples/hello/logging/logger.md +120 -0
  73. package/docs/examples/hello/main.md +115 -0
  74. package/docs/examples/http-benchmark/index.md +35 -0
  75. package/docs/examples/http-benchmark/main.md +79 -0
  76. package/docs/examples/http-benchmark/routes.md +88 -0
  77. package/docs/examples/index.md +60 -0
  78. package/docs/examples/interceptors/app.md +250 -0
  79. package/docs/examples/interceptors/dependencies/august/0.19.0/io/contracts.md +395 -0
  80. package/docs/examples/interceptors/index.md +35 -0
  81. package/docs/examples/interceptors/interceptors.md +284 -0
  82. package/docs/examples/interceptors/logging.md +155 -0
  83. package/docs/examples/interceptors/main.md +162 -0
  84. package/docs/examples/json-benchmark/data.md +71 -0
  85. package/docs/examples/json-benchmark/dependencies/august/0.19.0/json/contracts.md +103 -0
  86. package/docs/examples/json-benchmark/index.md +35 -0
  87. package/docs/examples/json-benchmark/main.md +131 -0
  88. package/docs/examples/new-syntax/console.md +118 -0
  89. package/docs/examples/new-syntax/dependencies/august/0.19.0/io/contracts.md +395 -0
  90. package/docs/examples/new-syntax/greeter.md +145 -0
  91. package/docs/examples/new-syntax/index.md +36 -0
  92. package/docs/examples/new-syntax/logger.md +111 -0
  93. package/docs/examples/new-syntax/main.md +135 -0
  94. package/docs/examples/new-syntax/math.md +79 -0
  95. package/docs/examples/oidc-login/client/contracts.md +151 -0
  96. package/docs/examples/oidc-login/client/endpoints.md +263 -0
  97. package/docs/examples/oidc-login/client/export.md +107 -0
  98. package/docs/examples/oidc-login/client/login.md +515 -0
  99. package/docs/examples/oidc-login/client/logout.md +249 -0
  100. package/docs/examples/oidc-login/client/protocol.md +595 -0
  101. package/docs/examples/oidc-login/client/session.md +297 -0
  102. package/docs/examples/oidc-login/client/views.md +144 -0
  103. package/docs/examples/oidc-login/common/export.md +115 -0
  104. package/docs/examples/oidc-login/common/headers.md +162 -0
  105. package/docs/examples/oidc-login/common/keys.md +336 -0
  106. package/docs/examples/oidc-login/common/settings.md +116 -0
  107. package/docs/examples/oidc-login/common/views.md +103 -0
  108. package/docs/examples/oidc-login/dependencies/august/0.19.0/crypto/contracts.md +925 -0
  109. package/docs/examples/oidc-login/dependencies/august/0.19.0/crypto/jose.md +434 -0
  110. package/docs/examples/oidc-login/dependencies/august/0.19.0/json/contracts.md +103 -0
  111. package/docs/examples/oidc-login/dependencies/august/0.19.0/memory/store.md +374 -0
  112. package/docs/examples/oidc-login/dependencies/august/0.19.0/time/contracts.md +150 -0
  113. package/docs/examples/oidc-login/dependencies/august/0.19.0/web/contracts.md +532 -0
  114. package/docs/examples/oidc-login/index.md +57 -0
  115. package/docs/examples/oidc-login/main-yaml.md +28 -0
  116. package/docs/examples/oidc-login/main.md +283 -0
  117. package/docs/examples/oidc-login/provider/authorization.md +457 -0
  118. package/docs/examples/oidc-login/provider/contracts.md +267 -0
  119. package/docs/examples/oidc-login/provider/credentials.md +148 -0
  120. package/docs/examples/oidc-login/provider/discovery.md +215 -0
  121. package/docs/examples/oidc-login/provider/export.md +131 -0
  122. package/docs/examples/oidc-login/provider/token.md +364 -0
  123. package/docs/examples/oidc-login/provider/userinfo.md +228 -0
  124. package/docs/examples/oidc-login/provider/views.md +137 -0
  125. package/docs/examples/ownership/counter.md +140 -0
  126. package/docs/examples/ownership/index.md +33 -0
  127. package/docs/examples/ownership/main.md +90 -0
  128. package/docs/examples/ownership-transfer/dependencies/august/0.19.0/io/contracts.md +395 -0
  129. package/docs/examples/ownership-transfer/index.md +33 -0
  130. package/docs/examples/ownership-transfer/main.md +125 -0
  131. package/docs/examples/ownership-transfer/resource.md +150 -0
  132. package/docs/examples/packages-app/dependencies/packages/@example/aug-math/0.1.0/arithmetic.md +117 -0
  133. package/docs/examples/packages-app/index.md +34 -0
  134. package/docs/examples/packages-app/main-yaml.md +18 -0
  135. package/docs/examples/packages-app/main.md +80 -0
  136. package/docs/examples/packages-math/aug-package-json.md +24 -0
  137. package/docs/examples/packages-math/index.md +36 -0
  138. package/docs/examples/packages-math/package-json.md +25 -0
  139. package/docs/examples/packages-math/src/arithmetic.md +121 -0
  140. package/docs/examples/packages-math/src/export.md +63 -0
  141. package/docs/examples/startup-benchmark/index.md +34 -0
  142. package/docs/examples/startup-benchmark/main.md +68 -0
  143. package/docs/examples/visibility/counter.md +142 -0
  144. package/docs/examples/visibility/index.md +33 -0
  145. package/docs/examples/visibility/main.md +96 -0
  146. package/docs/examples.json +47 -0
  147. package/docs/getting-started.md +5 -0
  148. package/docs/grammar.md +136 -0
  149. package/docs/implementation-map.md +106 -0
  150. package/docs/index.md +46 -0
  151. package/docs/language-conformance.md +30 -0
  152. package/docs/language-constructs.md +1461 -0
  153. package/docs/language-design-audit.md +147 -0
  154. package/docs/maintaining-docs.md +43 -0
  155. package/docs/packages.md +184 -0
  156. package/docs/performance.md +535 -0
  157. package/docs/production-readiness.md +39 -0
  158. package/docs/reference.md +361 -0
  159. package/docs/release-review.md +23 -0
  160. package/docs/releasing.md +79 -0
  161. package/docs/roadmap.md +13 -0
  162. package/docs/specifications.md +86 -0
  163. package/docs/testing.md +120 -0
  164. package/docs/tooling.md +197 -0
  165. package/docs/web-implementation-plan.md +39 -0
  166. package/docs/web-library-gaps.md +27 -0
  167. package/docs/web.md +197 -0
  168. package/examples/approved-design/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
  169. package/examples/approved-design/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
  170. package/examples/approved-design/.aug-spec/manifest.json +14 -0
  171. package/examples/approved-design/counters.aug +22 -0
  172. package/examples/approved-design/counters.aug.md +177 -0
  173. package/examples/approved-design/domain/app.aug +12 -0
  174. package/examples/approved-design/domain/app.aug.md +97 -0
  175. package/examples/approved-design/domain/export.aug +5 -0
  176. package/examples/approved-design/domain/export.aug.md +25 -0
  177. package/examples/approved-design/domain/models.aug +2 -0
  178. package/examples/approved-design/domain/models.aug.md +30 -0
  179. package/examples/approved-design/domain/numbers.aug +29 -0
  180. package/examples/approved-design/domain/numbers.aug.md +141 -0
  181. package/examples/approved-design/main.aug +26 -0
  182. package/examples/approved-design/main.aug.md +108 -0
  183. package/examples/approved-design/main.yaml +8 -0
  184. package/examples/benchmark/.aug-spec/manifest.json +7 -0
  185. package/examples/benchmark/main.aug +17 -0
  186. package/examples/benchmark/main.aug.md +43 -0
  187. package/examples/benchmark/main.yaml +1 -0
  188. package/examples/cli-args/.aug-spec/manifest.json +7 -0
  189. package/examples/cli-args/main.aug +15 -0
  190. package/examples/cli-args/main.aug.md +38 -0
  191. package/examples/collections/.aug-spec/manifest.json +7 -0
  192. package/examples/collections/main.aug +18 -0
  193. package/examples/collections/main.aug.md +43 -0
  194. package/examples/developer-workflow/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
  195. package/examples/developer-workflow/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
  196. package/examples/developer-workflow/.aug-spec/manifest.json +13 -0
  197. package/examples/developer-workflow/calculator.aug +55 -0
  198. package/examples/developer-workflow/calculator.aug.md +228 -0
  199. package/examples/developer-workflow/logging/console.aug +8 -0
  200. package/examples/developer-workflow/logging/console.aug.md +67 -0
  201. package/examples/developer-workflow/logging/export.aug +2 -0
  202. package/examples/developer-workflow/logging/export.aug.md +19 -0
  203. package/examples/developer-workflow/logging/logger.aug +6 -0
  204. package/examples/developer-workflow/logging/logger.aug.md +57 -0
  205. package/examples/developer-workflow/main.aug +25 -0
  206. package/examples/developer-workflow/main.aug.md +79 -0
  207. package/examples/drop/.aug-spec/manifest.json +8 -0
  208. package/examples/drop/main.aug +3 -0
  209. package/examples/drop/main.aug.md +35 -0
  210. package/examples/drop/resource.aug +8 -0
  211. package/examples/drop/resource.aug.md +44 -0
  212. package/examples/errors/.aug-spec/manifest.json +8 -0
  213. package/examples/errors/errors.aug +6 -0
  214. package/examples/errors/errors.aug.md +33 -0
  215. package/examples/errors/main.aug +7 -0
  216. package/examples/errors/main.aug.md +36 -0
  217. package/examples/ffi/.aug-spec/manifest.json +8 -0
  218. package/examples/ffi/main.aug +2 -0
  219. package/examples/ffi/main.aug.md +27 -0
  220. package/examples/ffi/native.aug +6 -0
  221. package/examples/ffi/native.aug.md +43 -0
  222. package/examples/generic-di/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
  223. package/examples/generic-di/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
  224. package/examples/generic-di/.aug-spec/manifest.json +10 -0
  225. package/examples/generic-di/main.aug +9 -0
  226. package/examples/generic-di/main.aug.md +49 -0
  227. package/examples/generic-di/types.aug +17 -0
  228. package/examples/generic-di/types.aug.md +124 -0
  229. package/examples/generics/.aug-spec/manifest.json +8 -0
  230. package/examples/generics/main.aug +9 -0
  231. package/examples/generics/main.aug.md +58 -0
  232. package/examples/generics/types.aug +19 -0
  233. package/examples/generics/types.aug.md +132 -0
  234. package/examples/hello/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
  235. package/examples/hello/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
  236. package/examples/hello/.aug-spec/manifest.json +14 -0
  237. package/examples/hello/app/export.aug +1 -0
  238. package/examples/hello/app/export.aug.md +17 -0
  239. package/examples/hello/app/greeter.aug +22 -0
  240. package/examples/hello/app/greeter.aug.md +109 -0
  241. package/examples/hello/logging/console.aug +7 -0
  242. package/examples/hello/logging/console.aug.md +65 -0
  243. package/examples/hello/logging/export.aug +2 -0
  244. package/examples/hello/logging/export.aug.md +19 -0
  245. package/examples/hello/logging/logger.aug +9 -0
  246. package/examples/hello/logging/logger.aug.md +59 -0
  247. package/examples/hello/main.aug +9 -0
  248. package/examples/hello/main.aug.md +49 -0
  249. package/examples/interceptors/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
  250. package/examples/interceptors/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
  251. package/examples/interceptors/.aug-spec/manifest.json +12 -0
  252. package/examples/interceptors/app.aug +28 -0
  253. package/examples/interceptors/app.aug.md +162 -0
  254. package/examples/interceptors/interceptors.aug +40 -0
  255. package/examples/interceptors/interceptors.aug.md +180 -0
  256. package/examples/interceptors/logging.aug +12 -0
  257. package/examples/interceptors/logging.aug.md +96 -0
  258. package/examples/interceptors/main.aug +22 -0
  259. package/examples/interceptors/main.aug.md +76 -0
  260. package/examples/new-syntax/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
  261. package/examples/new-syntax/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
  262. package/examples/new-syntax/.aug-spec/manifest.json +13 -0
  263. package/examples/new-syntax/console.aug +7 -0
  264. package/examples/new-syntax/console.aug.md +63 -0
  265. package/examples/new-syntax/greeter.aug +10 -0
  266. package/examples/new-syntax/greeter.aug.md +89 -0
  267. package/examples/new-syntax/logger.aug +6 -0
  268. package/examples/new-syntax/logger.aug.md +57 -0
  269. package/examples/new-syntax/main.aug +12 -0
  270. package/examples/new-syntax/main.aug.md +64 -0
  271. package/examples/new-syntax/math.aug +3 -0
  272. package/examples/new-syntax/math.aug.md +29 -0
  273. package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/contracts.aug +73 -0
  274. package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/contracts.aug.md +791 -0
  275. package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/jose.aug +68 -0
  276. package/examples/oidc-login/.aug-spec/august/0.19.0/crypto/jose.aug.md +266 -0
  277. package/examples/oidc-login/.aug-spec/august/0.19.0/json/contracts.aug +6 -0
  278. package/examples/oidc-login/.aug-spec/august/0.19.0/json/contracts.aug.md +55 -0
  279. package/examples/oidc-login/.aug-spec/august/0.19.0/memory/store.aug +45 -0
  280. package/examples/oidc-login/.aug-spec/august/0.19.0/memory/store.aug.md +250 -0
  281. package/examples/oidc-login/.aug-spec/august/0.19.0/time/contracts.aug +11 -0
  282. package/examples/oidc-login/.aug-spec/august/0.19.0/time/contracts.aug.md +96 -0
  283. package/examples/oidc-login/.aug-spec/august/0.19.0/web/contracts.aug +58 -0
  284. package/examples/oidc-login/.aug-spec/august/0.19.0/web/contracts.aug.md +420 -0
  285. package/examples/oidc-login/.aug-spec/manifest.json +40 -0
  286. package/examples/oidc-login/README.md +29 -0
  287. package/examples/oidc-login/client/contracts.aug +7 -0
  288. package/examples/oidc-login/client/contracts.aug.md +80 -0
  289. package/examples/oidc-login/client/endpoints.aug +21 -0
  290. package/examples/oidc-login/client/endpoints.aug.md +161 -0
  291. package/examples/oidc-login/client/export.aug +7 -0
  292. package/examples/oidc-login/client/export.aug.md +29 -0
  293. package/examples/oidc-login/client/login.aug +58 -0
  294. package/examples/oidc-login/client/login.aug.md +331 -0
  295. package/examples/oidc-login/client/logout.aug +18 -0
  296. package/examples/oidc-login/client/logout.aug.md +150 -0
  297. package/examples/oidc-login/client/protocol.aug +106 -0
  298. package/examples/oidc-login/client/protocol.aug.md +326 -0
  299. package/examples/oidc-login/client/session.aug +34 -0
  300. package/examples/oidc-login/client/session.aug.md +155 -0
  301. package/examples/oidc-login/client/views.aug +21 -0
  302. package/examples/oidc-login/client/views.aug.md +68 -0
  303. package/examples/oidc-login/common/export.aug +9 -0
  304. package/examples/oidc-login/common/export.aug.md +33 -0
  305. package/examples/oidc-login/common/headers.aug +11 -0
  306. package/examples/oidc-login/common/headers.aug.md +79 -0
  307. package/examples/oidc-login/common/keys.aug +37 -0
  308. package/examples/oidc-login/common/keys.aug.md +207 -0
  309. package/examples/oidc-login/common/settings.aug +4 -0
  310. package/examples/oidc-login/common/settings.aug.md +47 -0
  311. package/examples/oidc-login/common/views.aug +16 -0
  312. package/examples/oidc-login/common/views.aug.md +34 -0
  313. package/examples/oidc-login/main.aug +39 -0
  314. package/examples/oidc-login/main.aug.md +166 -0
  315. package/examples/oidc-login/main.yaml +12 -0
  316. package/examples/oidc-login/provider/authorization.aug +59 -0
  317. package/examples/oidc-login/provider/authorization.aug.md +264 -0
  318. package/examples/oidc-login/provider/contracts.aug +15 -0
  319. package/examples/oidc-login/provider/contracts.aug.md +193 -0
  320. package/examples/oidc-login/provider/credentials.aug +10 -0
  321. package/examples/oidc-login/provider/credentials.aug.md +64 -0
  322. package/examples/oidc-login/provider/discovery.aug +13 -0
  323. package/examples/oidc-login/provider/discovery.aug.md +133 -0
  324. package/examples/oidc-login/provider/export.aug +13 -0
  325. package/examples/oidc-login/provider/export.aug.md +41 -0
  326. package/examples/oidc-login/provider/token.aug +37 -0
  327. package/examples/oidc-login/provider/token.aug.md +223 -0
  328. package/examples/oidc-login/provider/userinfo.aug +26 -0
  329. package/examples/oidc-login/provider/userinfo.aug.md +104 -0
  330. package/examples/oidc-login/provider/views.aug +18 -0
  331. package/examples/oidc-login/provider/views.aug.md +63 -0
  332. package/examples/ownership/.aug-spec/manifest.json +8 -0
  333. package/examples/ownership/counter.aug +14 -0
  334. package/examples/ownership/counter.aug.md +85 -0
  335. package/examples/ownership/main.aug +4 -0
  336. package/examples/ownership/main.aug.md +38 -0
  337. package/examples/ownership-transfer/.aug-spec/august/0.19.0/io/contracts.aug +36 -0
  338. package/examples/ownership-transfer/.aug-spec/august/0.19.0/io/contracts.aug.md +316 -0
  339. package/examples/ownership-transfer/.aug-spec/manifest.json +10 -0
  340. package/examples/ownership-transfer/main.aug +9 -0
  341. package/examples/ownership-transfer/main.aug.md +63 -0
  342. package/examples/ownership-transfer/resource.aug +16 -0
  343. package/examples/ownership-transfer/resource.aug.md +89 -0
  344. package/examples/packages/README.md +15 -0
  345. package/examples/packages/app/.aug-spec/manifest.json +9 -0
  346. package/examples/packages/app/.aug-spec/packages/@example/aug-math/0.1.0/arithmetic.aug +9 -0
  347. package/examples/packages/app/.aug-spec/packages/@example/aug-math/0.1.0/arithmetic.aug.md +63 -0
  348. package/examples/packages/app/main.aug +2 -0
  349. package/examples/packages/app/main.aug.md +33 -0
  350. package/examples/packages/app/main.yaml +2 -0
  351. package/examples/packages/math/.aug-spec/manifest.json +8 -0
  352. package/examples/packages/math/README.md +3 -0
  353. package/examples/packages/math/aug-package.json +8 -0
  354. package/examples/packages/math/package.json +9 -0
  355. package/examples/packages/math/src/arithmetic.aug +8 -0
  356. package/examples/packages/math/src/arithmetic.aug.md +63 -0
  357. package/examples/packages/math/src/export.aug +1 -0
  358. package/examples/packages/math/src/export.aug.md +17 -0
  359. package/examples/visibility/.aug-spec/manifest.json +8 -0
  360. package/examples/visibility/counter.aug +14 -0
  361. package/examples/visibility/counter.aug.md +87 -0
  362. package/examples/visibility/main.aug +7 -0
  363. package/examples/visibility/main.aug.md +39 -0
  364. package/package.json +50 -0
  365. package/runtime/aug_crypto.c +121 -0
  366. package/runtime/aug_html.c +93 -0
  367. package/runtime/aug_http.c +829 -0
  368. package/runtime/aug_json.c +165 -0
  369. package/runtime/aug_runtime.c +792 -0
  370. package/runtime/aug_runtime.h +245 -0
  371. package/runtime/aug_tasks.c +172 -0
  372. package/runtime/aug_time.c +5 -0
  373. package/runtime/aug_values.c +80 -0
  374. package/scripts/bootstrap-native.mjs +121 -0
  375. package/scripts/native-dependencies.lock.json +65 -0
  376. package/scripts/native-home.mjs +11 -0
  377. package/src/actions.js +109 -0
  378. package/src/ast.js +19 -0
  379. package/src/builtins.js +93 -0
  380. package/src/checker.js +2896 -0
  381. package/src/cli.js +344 -0
  382. package/src/codegen.js +1159 -0
  383. package/src/config.js +149 -0
  384. package/src/continuation.js +110 -0
  385. package/src/di.js +24 -0
  386. package/src/documentation.js +27 -0
  387. package/src/editor.js +782 -0
  388. package/src/effects.js +29 -0
  389. package/src/fixes.js +222 -0
  390. package/src/formatter.js +296 -0
  391. package/src/freshness.js +154 -0
  392. package/src/help.js +212 -0
  393. package/src/html.js +27 -0
  394. package/src/http-policies.js +90 -0
  395. package/src/inference.js +16 -0
  396. package/src/interceptors.js +70 -0
  397. package/src/javadoc.js +67 -0
  398. package/src/lexer.js +199 -0
  399. package/src/libraries.js +31 -0
  400. package/src/lsp.js +180 -0
  401. package/src/native.js +144 -0
  402. package/src/navigation.js +162 -0
  403. package/src/openapi.js +220 -0
  404. package/src/ownership.js +232 -0
  405. package/src/package-manager.js +299 -0
  406. package/src/parser.js +1155 -0
  407. package/src/policies.js +130 -0
  408. package/src/project-init.js +19 -0
  409. package/src/project.js +292 -0
  410. package/src/schemas.js +62 -0
  411. package/src/semantic.js +255 -0
  412. package/src/spec.js +738 -0
  413. package/src/testing.js +186 -0
  414. package/src/types.js +10 -0
@@ -0,0 +1,2315 @@
1
+ <?xml version="1.0" encoding="utf-8" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
3
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+ <svg role="img" aria-label="August performance before and after" xmlns:xlink="http://www.w3.org/1999/xlink" width="432pt" height="504pt" viewBox="0 0 432 504" xmlns="http://www.w3.org/2000/svg" version="1.1">
5
+ <title>August performance before and after</title>
6
+ <metadata>
7
+ <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
8
+ <cc:Work>
9
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
10
+ <dc:title>August performance before and after</dc:title>
11
+ <dc:description>The same CPU, Map/Set, and HTTP programs on the same host and benchmark settings. Lower execution time and higher throughput are faster.</dc:description>
12
+ <dc:format>image/svg+xml</dc:format>
13
+ <dc:creator>
14
+ <cc:Agent>
15
+ <dc:title>Matplotlib v3.10.7, https://matplotlib.org/</dc:title>
16
+ </cc:Agent>
17
+ </dc:creator>
18
+ </cc:Work>
19
+ </rdf:RDF>
20
+ </metadata>
21
+ <defs>
22
+ <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>
23
+ </defs>
24
+ <g id="figure_1">
25
+ <g id="patch_1">
26
+ <path d="M 0 504
27
+ L 432 504
28
+ L 432 0
29
+ L 0 0
30
+ z
31
+ " style="fill: #ffffff"/>
32
+ </g>
33
+ <g id="axes_1">
34
+ <g id="patch_2">
35
+ <path d="M 101.84274 216.707885
36
+ L 428.99976 216.707885
37
+ L 428.99976 19.030177
38
+ L 101.84274 19.030177
39
+ z
40
+ " style="fill: #ffffff"/>
41
+ </g>
42
+ <g id="matplotlib.axis_1">
43
+ <g id="xtick_1">
44
+ <g id="line2d_1">
45
+ <path d="M 101.84274 216.707885
46
+ L 101.84274 19.030177
47
+ " clip-path="url(#p5807b480e4)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
48
+ </g>
49
+ <g id="line2d_2">
50
+ <defs>
51
+ <path id="m9cd3e2f3f9" d="M 0 0
52
+ L 0 3.5
53
+ " style="stroke: #52606d; stroke-width: 0.8"/>
54
+ </defs>
55
+ <g>
56
+ <use xlink:href="#m9cd3e2f3f9" x="101.84274" y="216.707885" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
57
+ </g>
58
+ </g>
59
+ <g id="text_1">
60
+ <!-- 0 -->
61
+ <g style="fill: #52606d" transform="translate(98.343365 232.066166) scale(0.11 -0.11)">
62
+ <defs>
63
+ <path id="DejaVuSans-30" d="M 2034 4250
64
+ Q 1547 4250 1301 3770
65
+ Q 1056 3291 1056 2328
66
+ Q 1056 1369 1301 889
67
+ Q 1547 409 2034 409
68
+ Q 2525 409 2770 889
69
+ Q 3016 1369 3016 2328
70
+ Q 3016 3291 2770 3770
71
+ Q 2525 4250 2034 4250
72
+ z
73
+ M 2034 4750
74
+ Q 2819 4750 3233 4129
75
+ Q 3647 3509 3647 2328
76
+ Q 3647 1150 3233 529
77
+ Q 2819 -91 2034 -91
78
+ Q 1250 -91 836 529
79
+ Q 422 1150 422 2328
80
+ Q 422 3509 836 4129
81
+ Q 1250 4750 2034 4750
82
+ z
83
+ " transform="scale(0.015625)"/>
84
+ </defs>
85
+ <use xlink:href="#DejaVuSans-30"/>
86
+ </g>
87
+ </g>
88
+ </g>
89
+ <g id="xtick_2">
90
+ <g id="line2d_3">
91
+ <path d="M 158.764956 216.707885
92
+ L 158.764956 19.030177
93
+ " clip-path="url(#p5807b480e4)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
94
+ </g>
95
+ <g id="line2d_4">
96
+ <g>
97
+ <use xlink:href="#m9cd3e2f3f9" x="158.764956" y="216.707885" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
98
+ </g>
99
+ </g>
100
+ <g id="text_2">
101
+ <!-- 10 -->
102
+ <g style="fill: #52606d" transform="translate(151.766206 232.066166) scale(0.11 -0.11)">
103
+ <defs>
104
+ <path id="DejaVuSans-31" d="M 794 531
105
+ L 1825 531
106
+ L 1825 4091
107
+ L 703 3866
108
+ L 703 4441
109
+ L 1819 4666
110
+ L 2450 4666
111
+ L 2450 531
112
+ L 3481 531
113
+ L 3481 0
114
+ L 794 0
115
+ L 794 531
116
+ z
117
+ " transform="scale(0.015625)"/>
118
+ </defs>
119
+ <use xlink:href="#DejaVuSans-31"/>
120
+ <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
121
+ </g>
122
+ </g>
123
+ </g>
124
+ <g id="xtick_3">
125
+ <g id="line2d_5">
126
+ <path d="M 215.687172 216.707885
127
+ L 215.687172 19.030177
128
+ " clip-path="url(#p5807b480e4)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
129
+ </g>
130
+ <g id="line2d_6">
131
+ <g>
132
+ <use xlink:href="#m9cd3e2f3f9" x="215.687172" y="216.707885" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
133
+ </g>
134
+ </g>
135
+ <g id="text_3">
136
+ <!-- 20 -->
137
+ <g style="fill: #52606d" transform="translate(208.688422 232.066166) scale(0.11 -0.11)">
138
+ <defs>
139
+ <path id="DejaVuSans-32" d="M 1228 531
140
+ L 3431 531
141
+ L 3431 0
142
+ L 469 0
143
+ L 469 531
144
+ Q 828 903 1448 1529
145
+ Q 2069 2156 2228 2338
146
+ Q 2531 2678 2651 2914
147
+ Q 2772 3150 2772 3378
148
+ Q 2772 3750 2511 3984
149
+ Q 2250 4219 1831 4219
150
+ Q 1534 4219 1204 4116
151
+ Q 875 4013 500 3803
152
+ L 500 4441
153
+ Q 881 4594 1212 4672
154
+ Q 1544 4750 1819 4750
155
+ Q 2544 4750 2975 4387
156
+ Q 3406 4025 3406 3419
157
+ Q 3406 3131 3298 2873
158
+ Q 3191 2616 2906 2266
159
+ Q 2828 2175 2409 1742
160
+ Q 1991 1309 1228 531
161
+ z
162
+ " transform="scale(0.015625)"/>
163
+ </defs>
164
+ <use xlink:href="#DejaVuSans-32"/>
165
+ <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
166
+ </g>
167
+ </g>
168
+ </g>
169
+ <g id="xtick_4">
170
+ <g id="line2d_7">
171
+ <path d="M 272.609389 216.707885
172
+ L 272.609389 19.030177
173
+ " clip-path="url(#p5807b480e4)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
174
+ </g>
175
+ <g id="line2d_8">
176
+ <g>
177
+ <use xlink:href="#m9cd3e2f3f9" x="272.609389" y="216.707885" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
178
+ </g>
179
+ </g>
180
+ <g id="text_4">
181
+ <!-- 30 -->
182
+ <g style="fill: #52606d" transform="translate(265.610639 232.066166) scale(0.11 -0.11)">
183
+ <defs>
184
+ <path id="DejaVuSans-33" d="M 2597 2516
185
+ Q 3050 2419 3304 2112
186
+ Q 3559 1806 3559 1356
187
+ Q 3559 666 3084 287
188
+ Q 2609 -91 1734 -91
189
+ Q 1441 -91 1130 -33
190
+ Q 819 25 488 141
191
+ L 488 750
192
+ Q 750 597 1062 519
193
+ Q 1375 441 1716 441
194
+ Q 2309 441 2620 675
195
+ Q 2931 909 2931 1356
196
+ Q 2931 1769 2642 2001
197
+ Q 2353 2234 1838 2234
198
+ L 1294 2234
199
+ L 1294 2753
200
+ L 1863 2753
201
+ Q 2328 2753 2575 2939
202
+ Q 2822 3125 2822 3475
203
+ Q 2822 3834 2567 4026
204
+ Q 2313 4219 1838 4219
205
+ Q 1578 4219 1281 4162
206
+ Q 984 4106 628 3988
207
+ L 628 4550
208
+ Q 988 4650 1302 4700
209
+ Q 1616 4750 1894 4750
210
+ Q 2613 4750 3031 4423
211
+ Q 3450 4097 3450 3541
212
+ Q 3450 3153 3228 2886
213
+ Q 3006 2619 2597 2516
214
+ z
215
+ " transform="scale(0.015625)"/>
216
+ </defs>
217
+ <use xlink:href="#DejaVuSans-33"/>
218
+ <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
219
+ </g>
220
+ </g>
221
+ </g>
222
+ <g id="xtick_5">
223
+ <g id="line2d_9">
224
+ <path d="M 329.531605 216.707885
225
+ L 329.531605 19.030177
226
+ " clip-path="url(#p5807b480e4)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
227
+ </g>
228
+ <g id="line2d_10">
229
+ <g>
230
+ <use xlink:href="#m9cd3e2f3f9" x="329.531605" y="216.707885" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
231
+ </g>
232
+ </g>
233
+ <g id="text_5">
234
+ <!-- 40 -->
235
+ <g style="fill: #52606d" transform="translate(322.532855 232.066166) scale(0.11 -0.11)">
236
+ <defs>
237
+ <path id="DejaVuSans-34" d="M 2419 4116
238
+ L 825 1625
239
+ L 2419 1625
240
+ L 2419 4116
241
+ z
242
+ M 2253 4666
243
+ L 3047 4666
244
+ L 3047 1625
245
+ L 3713 1625
246
+ L 3713 1100
247
+ L 3047 1100
248
+ L 3047 0
249
+ L 2419 0
250
+ L 2419 1100
251
+ L 313 1100
252
+ L 313 1709
253
+ L 2253 4666
254
+ z
255
+ " transform="scale(0.015625)"/>
256
+ </defs>
257
+ <use xlink:href="#DejaVuSans-34"/>
258
+ <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
259
+ </g>
260
+ </g>
261
+ </g>
262
+ <g id="xtick_6">
263
+ <g id="line2d_11">
264
+ <path d="M 386.453821 216.707885
265
+ L 386.453821 19.030177
266
+ " clip-path="url(#p5807b480e4)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
267
+ </g>
268
+ <g id="line2d_12">
269
+ <g>
270
+ <use xlink:href="#m9cd3e2f3f9" x="386.453821" y="216.707885" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
271
+ </g>
272
+ </g>
273
+ <g id="text_6">
274
+ <!-- 50 -->
275
+ <g style="fill: #52606d" transform="translate(379.455071 232.066166) scale(0.11 -0.11)">
276
+ <defs>
277
+ <path id="DejaVuSans-35" d="M 691 4666
278
+ L 3169 4666
279
+ L 3169 4134
280
+ L 1269 4134
281
+ L 1269 2991
282
+ Q 1406 3038 1543 3061
283
+ Q 1681 3084 1819 3084
284
+ Q 2600 3084 3056 2656
285
+ Q 3513 2228 3513 1497
286
+ Q 3513 744 3044 326
287
+ Q 2575 -91 1722 -91
288
+ Q 1428 -91 1123 -41
289
+ Q 819 9 494 109
290
+ L 494 744
291
+ Q 775 591 1075 516
292
+ Q 1375 441 1709 441
293
+ Q 2250 441 2565 725
294
+ Q 2881 1009 2881 1497
295
+ Q 2881 1984 2565 2268
296
+ Q 2250 2553 1709 2553
297
+ Q 1456 2553 1204 2497
298
+ Q 953 2441 691 2322
299
+ L 691 4666
300
+ z
301
+ " transform="scale(0.015625)"/>
302
+ </defs>
303
+ <use xlink:href="#DejaVuSans-35"/>
304
+ <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
305
+ </g>
306
+ </g>
307
+ </g>
308
+ <g id="text_7">
309
+ <!-- Milliseconds · lower is faster -->
310
+ <g style="fill: #263445" transform="translate(187.94 246.712104) scale(0.11 -0.11)">
311
+ <defs>
312
+ <path id="DejaVuSans-4d" d="M 628 4666
313
+ L 1569 4666
314
+ L 2759 1491
315
+ L 3956 4666
316
+ L 4897 4666
317
+ L 4897 0
318
+ L 4281 0
319
+ L 4281 4097
320
+ L 3078 897
321
+ L 2444 897
322
+ L 1241 4097
323
+ L 1241 0
324
+ L 628 0
325
+ L 628 4666
326
+ z
327
+ " transform="scale(0.015625)"/>
328
+ <path id="DejaVuSans-69" d="M 603 3500
329
+ L 1178 3500
330
+ L 1178 0
331
+ L 603 0
332
+ L 603 3500
333
+ z
334
+ M 603 4863
335
+ L 1178 4863
336
+ L 1178 4134
337
+ L 603 4134
338
+ L 603 4863
339
+ z
340
+ " transform="scale(0.015625)"/>
341
+ <path id="DejaVuSans-6c" d="M 603 4863
342
+ L 1178 4863
343
+ L 1178 0
344
+ L 603 0
345
+ L 603 4863
346
+ z
347
+ " transform="scale(0.015625)"/>
348
+ <path id="DejaVuSans-73" d="M 2834 3397
349
+ L 2834 2853
350
+ Q 2591 2978 2328 3040
351
+ Q 2066 3103 1784 3103
352
+ Q 1356 3103 1142 2972
353
+ Q 928 2841 928 2578
354
+ Q 928 2378 1081 2264
355
+ Q 1234 2150 1697 2047
356
+ L 1894 2003
357
+ Q 2506 1872 2764 1633
358
+ Q 3022 1394 3022 966
359
+ Q 3022 478 2636 193
360
+ Q 2250 -91 1575 -91
361
+ Q 1294 -91 989 -36
362
+ Q 684 19 347 128
363
+ L 347 722
364
+ Q 666 556 975 473
365
+ Q 1284 391 1588 391
366
+ Q 1994 391 2212 530
367
+ Q 2431 669 2431 922
368
+ Q 2431 1156 2273 1281
369
+ Q 2116 1406 1581 1522
370
+ L 1381 1569
371
+ Q 847 1681 609 1914
372
+ Q 372 2147 372 2553
373
+ Q 372 3047 722 3315
374
+ Q 1072 3584 1716 3584
375
+ Q 2034 3584 2315 3537
376
+ Q 2597 3491 2834 3397
377
+ z
378
+ " transform="scale(0.015625)"/>
379
+ <path id="DejaVuSans-65" d="M 3597 1894
380
+ L 3597 1613
381
+ L 953 1613
382
+ Q 991 1019 1311 708
383
+ Q 1631 397 2203 397
384
+ Q 2534 397 2845 478
385
+ Q 3156 559 3463 722
386
+ L 3463 178
387
+ Q 3153 47 2828 -22
388
+ Q 2503 -91 2169 -91
389
+ Q 1331 -91 842 396
390
+ Q 353 884 353 1716
391
+ Q 353 2575 817 3079
392
+ Q 1281 3584 2069 3584
393
+ Q 2775 3584 3186 3129
394
+ Q 3597 2675 3597 1894
395
+ z
396
+ M 3022 2063
397
+ Q 3016 2534 2758 2815
398
+ Q 2500 3097 2075 3097
399
+ Q 1594 3097 1305 2825
400
+ Q 1016 2553 972 2059
401
+ L 3022 2063
402
+ z
403
+ " transform="scale(0.015625)"/>
404
+ <path id="DejaVuSans-63" d="M 3122 3366
405
+ L 3122 2828
406
+ Q 2878 2963 2633 3030
407
+ Q 2388 3097 2138 3097
408
+ Q 1578 3097 1268 2742
409
+ Q 959 2388 959 1747
410
+ Q 959 1106 1268 751
411
+ Q 1578 397 2138 397
412
+ Q 2388 397 2633 464
413
+ Q 2878 531 3122 666
414
+ L 3122 134
415
+ Q 2881 22 2623 -34
416
+ Q 2366 -91 2075 -91
417
+ Q 1284 -91 818 406
418
+ Q 353 903 353 1747
419
+ Q 353 2603 823 3093
420
+ Q 1294 3584 2113 3584
421
+ Q 2378 3584 2631 3529
422
+ Q 2884 3475 3122 3366
423
+ z
424
+ " transform="scale(0.015625)"/>
425
+ <path id="DejaVuSans-6f" d="M 1959 3097
426
+ Q 1497 3097 1228 2736
427
+ Q 959 2375 959 1747
428
+ Q 959 1119 1226 758
429
+ Q 1494 397 1959 397
430
+ Q 2419 397 2687 759
431
+ Q 2956 1122 2956 1747
432
+ Q 2956 2369 2687 2733
433
+ Q 2419 3097 1959 3097
434
+ z
435
+ M 1959 3584
436
+ Q 2709 3584 3137 3096
437
+ Q 3566 2609 3566 1747
438
+ Q 3566 888 3137 398
439
+ Q 2709 -91 1959 -91
440
+ Q 1206 -91 779 398
441
+ Q 353 888 353 1747
442
+ Q 353 2609 779 3096
443
+ Q 1206 3584 1959 3584
444
+ z
445
+ " transform="scale(0.015625)"/>
446
+ <path id="DejaVuSans-6e" d="M 3513 2113
447
+ L 3513 0
448
+ L 2938 0
449
+ L 2938 2094
450
+ Q 2938 2591 2744 2837
451
+ Q 2550 3084 2163 3084
452
+ Q 1697 3084 1428 2787
453
+ Q 1159 2491 1159 1978
454
+ L 1159 0
455
+ L 581 0
456
+ L 581 3500
457
+ L 1159 3500
458
+ L 1159 2956
459
+ Q 1366 3272 1645 3428
460
+ Q 1925 3584 2291 3584
461
+ Q 2894 3584 3203 3211
462
+ Q 3513 2838 3513 2113
463
+ z
464
+ " transform="scale(0.015625)"/>
465
+ <path id="DejaVuSans-64" d="M 2906 2969
466
+ L 2906 4863
467
+ L 3481 4863
468
+ L 3481 0
469
+ L 2906 0
470
+ L 2906 525
471
+ Q 2725 213 2448 61
472
+ Q 2172 -91 1784 -91
473
+ Q 1150 -91 751 415
474
+ Q 353 922 353 1747
475
+ Q 353 2572 751 3078
476
+ Q 1150 3584 1784 3584
477
+ Q 2172 3584 2448 3432
478
+ Q 2725 3281 2906 2969
479
+ z
480
+ M 947 1747
481
+ Q 947 1113 1208 752
482
+ Q 1469 391 1925 391
483
+ Q 2381 391 2643 752
484
+ Q 2906 1113 2906 1747
485
+ Q 2906 2381 2643 2742
486
+ Q 2381 3103 1925 3103
487
+ Q 1469 3103 1208 2742
488
+ Q 947 2381 947 1747
489
+ z
490
+ " transform="scale(0.015625)"/>
491
+ <path id="DejaVuSans-20" transform="scale(0.015625)"/>
492
+ <path id="DejaVuSans-b7" d="M 684 2619
493
+ L 1344 2619
494
+ L 1344 1825
495
+ L 684 1825
496
+ L 684 2619
497
+ z
498
+ " transform="scale(0.015625)"/>
499
+ <path id="DejaVuSans-77" d="M 269 3500
500
+ L 844 3500
501
+ L 1563 769
502
+ L 2278 3500
503
+ L 2956 3500
504
+ L 3675 769
505
+ L 4391 3500
506
+ L 4966 3500
507
+ L 4050 0
508
+ L 3372 0
509
+ L 2619 2869
510
+ L 1863 0
511
+ L 1184 0
512
+ L 269 3500
513
+ z
514
+ " transform="scale(0.015625)"/>
515
+ <path id="DejaVuSans-72" d="M 2631 2963
516
+ Q 2534 3019 2420 3045
517
+ Q 2306 3072 2169 3072
518
+ Q 1681 3072 1420 2755
519
+ Q 1159 2438 1159 1844
520
+ L 1159 0
521
+ L 581 0
522
+ L 581 3500
523
+ L 1159 3500
524
+ L 1159 2956
525
+ Q 1341 3275 1631 3429
526
+ Q 1922 3584 2338 3584
527
+ Q 2397 3584 2469 3576
528
+ Q 2541 3569 2628 3553
529
+ L 2631 2963
530
+ z
531
+ " transform="scale(0.015625)"/>
532
+ <path id="DejaVuSans-66" d="M 2375 4863
533
+ L 2375 4384
534
+ L 1825 4384
535
+ Q 1516 4384 1395 4259
536
+ Q 1275 4134 1275 3809
537
+ L 1275 3500
538
+ L 2222 3500
539
+ L 2222 3053
540
+ L 1275 3053
541
+ L 1275 0
542
+ L 697 0
543
+ L 697 3053
544
+ L 147 3053
545
+ L 147 3500
546
+ L 697 3500
547
+ L 697 3744
548
+ Q 697 4328 969 4595
549
+ Q 1241 4863 1831 4863
550
+ L 2375 4863
551
+ z
552
+ " transform="scale(0.015625)"/>
553
+ <path id="DejaVuSans-61" d="M 2194 1759
554
+ Q 1497 1759 1228 1600
555
+ Q 959 1441 959 1056
556
+ Q 959 750 1161 570
557
+ Q 1363 391 1709 391
558
+ Q 2188 391 2477 730
559
+ Q 2766 1069 2766 1631
560
+ L 2766 1759
561
+ L 2194 1759
562
+ z
563
+ M 3341 1997
564
+ L 3341 0
565
+ L 2766 0
566
+ L 2766 531
567
+ Q 2569 213 2275 61
568
+ Q 1981 -91 1556 -91
569
+ Q 1019 -91 701 211
570
+ Q 384 513 384 1019
571
+ Q 384 1609 779 1909
572
+ Q 1175 2209 1959 2209
573
+ L 2766 2209
574
+ L 2766 2266
575
+ Q 2766 2663 2505 2880
576
+ Q 2244 3097 1772 3097
577
+ Q 1472 3097 1187 3025
578
+ Q 903 2953 641 2809
579
+ L 641 3341
580
+ Q 956 3463 1253 3523
581
+ Q 1550 3584 1831 3584
582
+ Q 2591 3584 2966 3190
583
+ Q 3341 2797 3341 1997
584
+ z
585
+ " transform="scale(0.015625)"/>
586
+ <path id="DejaVuSans-74" d="M 1172 4494
587
+ L 1172 3500
588
+ L 2356 3500
589
+ L 2356 3053
590
+ L 1172 3053
591
+ L 1172 1153
592
+ Q 1172 725 1289 603
593
+ Q 1406 481 1766 481
594
+ L 2356 481
595
+ L 2356 0
596
+ L 1766 0
597
+ Q 1100 0 847 248
598
+ Q 594 497 594 1153
599
+ L 594 3053
600
+ L 172 3053
601
+ L 172 3500
602
+ L 594 3500
603
+ L 594 4494
604
+ L 1172 4494
605
+ z
606
+ " transform="scale(0.015625)"/>
607
+ </defs>
608
+ <use xlink:href="#DejaVuSans-4d"/>
609
+ <use xlink:href="#DejaVuSans-69" transform="translate(86.279297 0)"/>
610
+ <use xlink:href="#DejaVuSans-6c" transform="translate(114.0625 0)"/>
611
+ <use xlink:href="#DejaVuSans-6c" transform="translate(141.845703 0)"/>
612
+ <use xlink:href="#DejaVuSans-69" transform="translate(169.628906 0)"/>
613
+ <use xlink:href="#DejaVuSans-73" transform="translate(197.412109 0)"/>
614
+ <use xlink:href="#DejaVuSans-65" transform="translate(249.511719 0)"/>
615
+ <use xlink:href="#DejaVuSans-63" transform="translate(311.035156 0)"/>
616
+ <use xlink:href="#DejaVuSans-6f" transform="translate(366.015625 0)"/>
617
+ <use xlink:href="#DejaVuSans-6e" transform="translate(427.197266 0)"/>
618
+ <use xlink:href="#DejaVuSans-64" transform="translate(490.576172 0)"/>
619
+ <use xlink:href="#DejaVuSans-73" transform="translate(554.052734 0)"/>
620
+ <use xlink:href="#DejaVuSans-20" transform="translate(606.152344 0)"/>
621
+ <use xlink:href="#DejaVuSans-b7" transform="translate(637.939453 0)"/>
622
+ <use xlink:href="#DejaVuSans-20" transform="translate(669.726562 0)"/>
623
+ <use xlink:href="#DejaVuSans-6c" transform="translate(701.513672 0)"/>
624
+ <use xlink:href="#DejaVuSans-6f" transform="translate(729.296875 0)"/>
625
+ <use xlink:href="#DejaVuSans-77" transform="translate(790.478516 0)"/>
626
+ <use xlink:href="#DejaVuSans-65" transform="translate(872.265625 0)"/>
627
+ <use xlink:href="#DejaVuSans-72" transform="translate(933.789062 0)"/>
628
+ <use xlink:href="#DejaVuSans-20" transform="translate(974.902344 0)"/>
629
+ <use xlink:href="#DejaVuSans-69" transform="translate(1006.689453 0)"/>
630
+ <use xlink:href="#DejaVuSans-73" transform="translate(1034.472656 0)"/>
631
+ <use xlink:href="#DejaVuSans-20" transform="translate(1086.572266 0)"/>
632
+ <use xlink:href="#DejaVuSans-66" transform="translate(1118.359375 0)"/>
633
+ <use xlink:href="#DejaVuSans-61" transform="translate(1153.564453 0)"/>
634
+ <use xlink:href="#DejaVuSans-73" transform="translate(1214.84375 0)"/>
635
+ <use xlink:href="#DejaVuSans-74" transform="translate(1266.943359 0)"/>
636
+ <use xlink:href="#DejaVuSans-65" transform="translate(1306.152344 0)"/>
637
+ <use xlink:href="#DejaVuSans-72" transform="translate(1367.675781 0)"/>
638
+ </g>
639
+ </g>
640
+ </g>
641
+ <g id="matplotlib.axis_2">
642
+ <g id="ytick_1">
643
+ <g id="line2d_13"/>
644
+ <g id="text_8">
645
+ <!-- CPU · 2M steps -->
646
+ <g style="fill: #263445" transform="translate(15.98024 54.993319) scale(0.11 -0.11)">
647
+ <defs>
648
+ <path id="DejaVuSans-43" d="M 4122 4306
649
+ L 4122 3641
650
+ Q 3803 3938 3442 4084
651
+ Q 3081 4231 2675 4231
652
+ Q 1875 4231 1450 3742
653
+ Q 1025 3253 1025 2328
654
+ Q 1025 1406 1450 917
655
+ Q 1875 428 2675 428
656
+ Q 3081 428 3442 575
657
+ Q 3803 722 4122 1019
658
+ L 4122 359
659
+ Q 3791 134 3420 21
660
+ Q 3050 -91 2638 -91
661
+ Q 1578 -91 968 557
662
+ Q 359 1206 359 2328
663
+ Q 359 3453 968 4101
664
+ Q 1578 4750 2638 4750
665
+ Q 3056 4750 3426 4639
666
+ Q 3797 4528 4122 4306
667
+ z
668
+ " transform="scale(0.015625)"/>
669
+ <path id="DejaVuSans-50" d="M 1259 4147
670
+ L 1259 2394
671
+ L 2053 2394
672
+ Q 2494 2394 2734 2622
673
+ Q 2975 2850 2975 3272
674
+ Q 2975 3691 2734 3919
675
+ Q 2494 4147 2053 4147
676
+ L 1259 4147
677
+ z
678
+ M 628 4666
679
+ L 2053 4666
680
+ Q 2838 4666 3239 4311
681
+ Q 3641 3956 3641 3272
682
+ Q 3641 2581 3239 2228
683
+ Q 2838 1875 2053 1875
684
+ L 1259 1875
685
+ L 1259 0
686
+ L 628 0
687
+ L 628 4666
688
+ z
689
+ " transform="scale(0.015625)"/>
690
+ <path id="DejaVuSans-55" d="M 556 4666
691
+ L 1191 4666
692
+ L 1191 1831
693
+ Q 1191 1081 1462 751
694
+ Q 1734 422 2344 422
695
+ Q 2950 422 3222 751
696
+ Q 3494 1081 3494 1831
697
+ L 3494 4666
698
+ L 4128 4666
699
+ L 4128 1753
700
+ Q 4128 841 3676 375
701
+ Q 3225 -91 2344 -91
702
+ Q 1459 -91 1007 375
703
+ Q 556 841 556 1753
704
+ L 556 4666
705
+ z
706
+ " transform="scale(0.015625)"/>
707
+ <path id="DejaVuSans-70" d="M 1159 525
708
+ L 1159 -1331
709
+ L 581 -1331
710
+ L 581 3500
711
+ L 1159 3500
712
+ L 1159 2969
713
+ Q 1341 3281 1617 3432
714
+ Q 1894 3584 2278 3584
715
+ Q 2916 3584 3314 3078
716
+ Q 3713 2572 3713 1747
717
+ Q 3713 922 3314 415
718
+ Q 2916 -91 2278 -91
719
+ Q 1894 -91 1617 61
720
+ Q 1341 213 1159 525
721
+ z
722
+ M 3116 1747
723
+ Q 3116 2381 2855 2742
724
+ Q 2594 3103 2138 3103
725
+ Q 1681 3103 1420 2742
726
+ Q 1159 2381 1159 1747
727
+ Q 1159 1113 1420 752
728
+ Q 1681 391 2138 391
729
+ Q 2594 391 2855 752
730
+ Q 3116 1113 3116 1747
731
+ z
732
+ " transform="scale(0.015625)"/>
733
+ </defs>
734
+ <use xlink:href="#DejaVuSans-43"/>
735
+ <use xlink:href="#DejaVuSans-50" transform="translate(69.824219 0)"/>
736
+ <use xlink:href="#DejaVuSans-55" transform="translate(130.126953 0)"/>
737
+ <use xlink:href="#DejaVuSans-20" transform="translate(203.320312 0)"/>
738
+ <use xlink:href="#DejaVuSans-b7" transform="translate(235.107422 0)"/>
739
+ <use xlink:href="#DejaVuSans-20" transform="translate(266.894531 0)"/>
740
+ <use xlink:href="#DejaVuSans-32" transform="translate(298.681641 0)"/>
741
+ <use xlink:href="#DejaVuSans-4d" transform="translate(362.304688 0)"/>
742
+ <use xlink:href="#DejaVuSans-20" transform="translate(448.583984 0)"/>
743
+ <use xlink:href="#DejaVuSans-73" transform="translate(480.371094 0)"/>
744
+ <use xlink:href="#DejaVuSans-74" transform="translate(532.470703 0)"/>
745
+ <use xlink:href="#DejaVuSans-65" transform="translate(571.679688 0)"/>
746
+ <use xlink:href="#DejaVuSans-70" transform="translate(633.203125 0)"/>
747
+ <use xlink:href="#DejaVuSans-73" transform="translate(696.679688 0)"/>
748
+ </g>
749
+ </g>
750
+ </g>
751
+ <g id="ytick_2">
752
+ <g id="line2d_14"/>
753
+ <g id="text_9">
754
+ <!-- Map + Set · 20k -->
755
+ <g style="fill: #263445" transform="translate(9.99899 122.048172) scale(0.11 -0.11)">
756
+ <defs>
757
+ <path id="DejaVuSans-2b" d="M 2944 4013
758
+ L 2944 2272
759
+ L 4684 2272
760
+ L 4684 1741
761
+ L 2944 1741
762
+ L 2944 0
763
+ L 2419 0
764
+ L 2419 1741
765
+ L 678 1741
766
+ L 678 2272
767
+ L 2419 2272
768
+ L 2419 4013
769
+ L 2944 4013
770
+ z
771
+ " transform="scale(0.015625)"/>
772
+ <path id="DejaVuSans-53" d="M 3425 4513
773
+ L 3425 3897
774
+ Q 3066 4069 2747 4153
775
+ Q 2428 4238 2131 4238
776
+ Q 1616 4238 1336 4038
777
+ Q 1056 3838 1056 3469
778
+ Q 1056 3159 1242 3001
779
+ Q 1428 2844 1947 2747
780
+ L 2328 2669
781
+ Q 3034 2534 3370 2195
782
+ Q 3706 1856 3706 1288
783
+ Q 3706 609 3251 259
784
+ Q 2797 -91 1919 -91
785
+ Q 1588 -91 1214 -16
786
+ Q 841 59 441 206
787
+ L 441 856
788
+ Q 825 641 1194 531
789
+ Q 1563 422 1919 422
790
+ Q 2459 422 2753 634
791
+ Q 3047 847 3047 1241
792
+ Q 3047 1584 2836 1778
793
+ Q 2625 1972 2144 2069
794
+ L 1759 2144
795
+ Q 1053 2284 737 2584
796
+ Q 422 2884 422 3419
797
+ Q 422 4038 858 4394
798
+ Q 1294 4750 2059 4750
799
+ Q 2388 4750 2728 4690
800
+ Q 3069 4631 3425 4513
801
+ z
802
+ " transform="scale(0.015625)"/>
803
+ <path id="DejaVuSans-6b" d="M 581 4863
804
+ L 1159 4863
805
+ L 1159 1991
806
+ L 2875 3500
807
+ L 3609 3500
808
+ L 1753 1863
809
+ L 3688 0
810
+ L 2938 0
811
+ L 1159 1709
812
+ L 1159 0
813
+ L 581 0
814
+ L 581 4863
815
+ z
816
+ " transform="scale(0.015625)"/>
817
+ </defs>
818
+ <use xlink:href="#DejaVuSans-4d"/>
819
+ <use xlink:href="#DejaVuSans-61" transform="translate(86.279297 0)"/>
820
+ <use xlink:href="#DejaVuSans-70" transform="translate(147.558594 0)"/>
821
+ <use xlink:href="#DejaVuSans-20" transform="translate(211.035156 0)"/>
822
+ <use xlink:href="#DejaVuSans-2b" transform="translate(242.822266 0)"/>
823
+ <use xlink:href="#DejaVuSans-20" transform="translate(326.611328 0)"/>
824
+ <use xlink:href="#DejaVuSans-53" transform="translate(358.398438 0)"/>
825
+ <use xlink:href="#DejaVuSans-65" transform="translate(421.875 0)"/>
826
+ <use xlink:href="#DejaVuSans-74" transform="translate(483.398438 0)"/>
827
+ <use xlink:href="#DejaVuSans-20" transform="translate(522.607422 0)"/>
828
+ <use xlink:href="#DejaVuSans-b7" transform="translate(554.394531 0)"/>
829
+ <use xlink:href="#DejaVuSans-20" transform="translate(586.181641 0)"/>
830
+ <use xlink:href="#DejaVuSans-32" transform="translate(617.96875 0)"/>
831
+ <use xlink:href="#DejaVuSans-30" transform="translate(681.591797 0)"/>
832
+ <use xlink:href="#DejaVuSans-6b" transform="translate(745.214844 0)"/>
833
+ </g>
834
+ </g>
835
+ </g>
836
+ <g id="ytick_3">
837
+ <g id="line2d_15"/>
838
+ <g id="text_10">
839
+ <!-- Map + Set · 200k -->
840
+ <g style="fill: #263445" transform="translate(3.00024 189.103025) scale(0.11 -0.11)">
841
+ <use xlink:href="#DejaVuSans-4d"/>
842
+ <use xlink:href="#DejaVuSans-61" transform="translate(86.279297 0)"/>
843
+ <use xlink:href="#DejaVuSans-70" transform="translate(147.558594 0)"/>
844
+ <use xlink:href="#DejaVuSans-20" transform="translate(211.035156 0)"/>
845
+ <use xlink:href="#DejaVuSans-2b" transform="translate(242.822266 0)"/>
846
+ <use xlink:href="#DejaVuSans-20" transform="translate(326.611328 0)"/>
847
+ <use xlink:href="#DejaVuSans-53" transform="translate(358.398438 0)"/>
848
+ <use xlink:href="#DejaVuSans-65" transform="translate(421.875 0)"/>
849
+ <use xlink:href="#DejaVuSans-74" transform="translate(483.398438 0)"/>
850
+ <use xlink:href="#DejaVuSans-20" transform="translate(522.607422 0)"/>
851
+ <use xlink:href="#DejaVuSans-b7" transform="translate(554.394531 0)"/>
852
+ <use xlink:href="#DejaVuSans-20" transform="translate(586.181641 0)"/>
853
+ <use xlink:href="#DejaVuSans-32" transform="translate(617.96875 0)"/>
854
+ <use xlink:href="#DejaVuSans-30" transform="translate(681.591797 0)"/>
855
+ <use xlink:href="#DejaVuSans-30" transform="translate(745.214844 0)"/>
856
+ <use xlink:href="#DejaVuSans-6b" transform="translate(808.837891 0)"/>
857
+ </g>
858
+ </g>
859
+ </g>
860
+ </g>
861
+ <g id="patch_3">
862
+ <path d="M 101.84274 28.015528
863
+ L 310.436808 28.015528
864
+ L 310.436808 49.473081
865
+ L 101.84274 49.473081
866
+ z
867
+ " clip-path="url(#p5807b480e4)" style="fill: #8a96a3"/>
868
+ </g>
869
+ <g id="patch_4">
870
+ <path d="M 101.84274 95.070381
871
+ L 128.455533 95.070381
872
+ L 128.455533 116.527934
873
+ L 101.84274 116.527934
874
+ z
875
+ " clip-path="url(#p5807b480e4)" style="fill: #8a96a3"/>
876
+ </g>
877
+ <g id="patch_5">
878
+ <path d="M 101.84274 162.125234
879
+ L 374.47359 162.125234
880
+ L 374.47359 183.582787
881
+ L 101.84274 183.582787
882
+ z
883
+ " clip-path="url(#p5807b480e4)" style="fill: #8a96a3"/>
884
+ </g>
885
+ <g id="patch_6">
886
+ <path d="M 101.84274 52.155275
887
+ L 143.053952 52.155275
888
+ L 143.053952 73.612828
889
+ L 101.84274 73.612828
890
+ z
891
+ " clip-path="url(#p5807b480e4)" style="fill: #087e8b"/>
892
+ </g>
893
+ <g id="patch_7">
894
+ <path d="M 101.84274 119.210128
895
+ L 116.328493 119.210128
896
+ L 116.328493 140.667681
897
+ L 101.84274 140.667681
898
+ z
899
+ " clip-path="url(#p5807b480e4)" style="fill: #087e8b"/>
900
+ </g>
901
+ <g id="patch_8">
902
+ <path d="M 101.84274 186.264982
903
+ L 187.791962 186.264982
904
+ L 187.791962 207.722535
905
+ L 101.84274 207.722535
906
+ z
907
+ " clip-path="url(#p5807b480e4)" style="fill: #087e8b"/>
908
+ </g>
909
+ <g id="patch_9">
910
+ <path d="M 101.84274 216.707885
911
+ L 428.99976 216.707885
912
+ " style="fill: none; stroke: #c4cbd2; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>
913
+ </g>
914
+ <g id="text_11">
915
+ <!-- 36.65 -->
916
+ <g style="fill: #263445" transform="translate(314.421363 41.503679) scale(0.1 -0.1)">
917
+ <defs>
918
+ <path id="DejaVuSans-36" d="M 2113 2584
919
+ Q 1688 2584 1439 2293
920
+ Q 1191 2003 1191 1497
921
+ Q 1191 994 1439 701
922
+ Q 1688 409 2113 409
923
+ Q 2538 409 2786 701
924
+ Q 3034 994 3034 1497
925
+ Q 3034 2003 2786 2293
926
+ Q 2538 2584 2113 2584
927
+ z
928
+ M 3366 4563
929
+ L 3366 3988
930
+ Q 3128 4100 2886 4159
931
+ Q 2644 4219 2406 4219
932
+ Q 1781 4219 1451 3797
933
+ Q 1122 3375 1075 2522
934
+ Q 1259 2794 1537 2939
935
+ Q 1816 3084 2150 3084
936
+ Q 2853 3084 3261 2657
937
+ Q 3669 2231 3669 1497
938
+ Q 3669 778 3244 343
939
+ Q 2819 -91 2113 -91
940
+ Q 1303 -91 875 529
941
+ Q 447 1150 447 2328
942
+ Q 447 3434 972 4092
943
+ Q 1497 4750 2381 4750
944
+ Q 2619 4750 2861 4703
945
+ Q 3103 4656 3366 4563
946
+ z
947
+ " transform="scale(0.015625)"/>
948
+ <path id="DejaVuSans-2e" d="M 684 794
949
+ L 1344 794
950
+ L 1344 0
951
+ L 684 0
952
+ L 684 794
953
+ z
954
+ " transform="scale(0.015625)"/>
955
+ </defs>
956
+ <use xlink:href="#DejaVuSans-33"/>
957
+ <use xlink:href="#DejaVuSans-36" transform="translate(63.623047 0)"/>
958
+ <use xlink:href="#DejaVuSans-2e" transform="translate(127.246094 0)"/>
959
+ <use xlink:href="#DejaVuSans-36" transform="translate(159.033203 0)"/>
960
+ <use xlink:href="#DejaVuSans-35" transform="translate(222.65625 0)"/>
961
+ </g>
962
+ </g>
963
+ <g id="text_12">
964
+ <!-- 4.68 -->
965
+ <g style="fill: #263445" transform="translate(132.440088 108.558533) scale(0.1 -0.1)">
966
+ <defs>
967
+ <path id="DejaVuSans-38" d="M 2034 2216
968
+ Q 1584 2216 1326 1975
969
+ Q 1069 1734 1069 1313
970
+ Q 1069 891 1326 650
971
+ Q 1584 409 2034 409
972
+ Q 2484 409 2743 651
973
+ Q 3003 894 3003 1313
974
+ Q 3003 1734 2745 1975
975
+ Q 2488 2216 2034 2216
976
+ z
977
+ M 1403 2484
978
+ Q 997 2584 770 2862
979
+ Q 544 3141 544 3541
980
+ Q 544 4100 942 4425
981
+ Q 1341 4750 2034 4750
982
+ Q 2731 4750 3128 4425
983
+ Q 3525 4100 3525 3541
984
+ Q 3525 3141 3298 2862
985
+ Q 3072 2584 2669 2484
986
+ Q 3125 2378 3379 2068
987
+ Q 3634 1759 3634 1313
988
+ Q 3634 634 3220 271
989
+ Q 2806 -91 2034 -91
990
+ Q 1263 -91 848 271
991
+ Q 434 634 434 1313
992
+ Q 434 1759 690 2068
993
+ Q 947 2378 1403 2484
994
+ z
995
+ M 1172 3481
996
+ Q 1172 3119 1398 2916
997
+ Q 1625 2713 2034 2713
998
+ Q 2441 2713 2670 2916
999
+ Q 2900 3119 2900 3481
1000
+ Q 2900 3844 2670 4047
1001
+ Q 2441 4250 2034 4250
1002
+ Q 1625 4250 1398 4047
1003
+ Q 1172 3844 1172 3481
1004
+ z
1005
+ " transform="scale(0.015625)"/>
1006
+ </defs>
1007
+ <use xlink:href="#DejaVuSans-34"/>
1008
+ <use xlink:href="#DejaVuSans-2e" transform="translate(63.623047 0)"/>
1009
+ <use xlink:href="#DejaVuSans-36" transform="translate(95.410156 0)"/>
1010
+ <use xlink:href="#DejaVuSans-38" transform="translate(159.033203 0)"/>
1011
+ </g>
1012
+ </g>
1013
+ <g id="text_13">
1014
+ <!-- 47.90 -->
1015
+ <g style="fill: #263445" transform="translate(378.458145 175.613386) scale(0.1 -0.1)">
1016
+ <defs>
1017
+ <path id="DejaVuSans-37" d="M 525 4666
1018
+ L 3525 4666
1019
+ L 3525 4397
1020
+ L 1831 0
1021
+ L 1172 0
1022
+ L 2766 4134
1023
+ L 525 4134
1024
+ L 525 4666
1025
+ z
1026
+ " transform="scale(0.015625)"/>
1027
+ <path id="DejaVuSans-39" d="M 703 97
1028
+ L 703 672
1029
+ Q 941 559 1184 500
1030
+ Q 1428 441 1663 441
1031
+ Q 2288 441 2617 861
1032
+ Q 2947 1281 2994 2138
1033
+ Q 2813 1869 2534 1725
1034
+ Q 2256 1581 1919 1581
1035
+ Q 1219 1581 811 2004
1036
+ Q 403 2428 403 3163
1037
+ Q 403 3881 828 4315
1038
+ Q 1253 4750 1959 4750
1039
+ Q 2769 4750 3195 4129
1040
+ Q 3622 3509 3622 2328
1041
+ Q 3622 1225 3098 567
1042
+ Q 2575 -91 1691 -91
1043
+ Q 1453 -91 1209 -44
1044
+ Q 966 3 703 97
1045
+ z
1046
+ M 1959 2075
1047
+ Q 2384 2075 2632 2365
1048
+ Q 2881 2656 2881 3163
1049
+ Q 2881 3666 2632 3958
1050
+ Q 2384 4250 1959 4250
1051
+ Q 1534 4250 1286 3958
1052
+ Q 1038 3666 1038 3163
1053
+ Q 1038 2656 1286 2365
1054
+ Q 1534 2075 1959 2075
1055
+ z
1056
+ " transform="scale(0.015625)"/>
1057
+ </defs>
1058
+ <use xlink:href="#DejaVuSans-34"/>
1059
+ <use xlink:href="#DejaVuSans-37" transform="translate(63.623047 0)"/>
1060
+ <use xlink:href="#DejaVuSans-2e" transform="translate(127.246094 0)"/>
1061
+ <use xlink:href="#DejaVuSans-39" transform="translate(159.033203 0)"/>
1062
+ <use xlink:href="#DejaVuSans-30" transform="translate(222.65625 0)"/>
1063
+ </g>
1064
+ </g>
1065
+ <g id="text_14">
1066
+ <!-- 7.24 -->
1067
+ <g style="fill: #263445" transform="translate(147.038507 65.643427) scale(0.1 -0.1)">
1068
+ <use xlink:href="#DejaVuSans-37"/>
1069
+ <use xlink:href="#DejaVuSans-2e" transform="translate(63.623047 0)"/>
1070
+ <use xlink:href="#DejaVuSans-32" transform="translate(95.410156 0)"/>
1071
+ <use xlink:href="#DejaVuSans-34" transform="translate(159.033203 0)"/>
1072
+ </g>
1073
+ </g>
1074
+ <g id="text_15">
1075
+ <!-- 2.54 -->
1076
+ <g style="fill: #263445" transform="translate(120.313049 132.69828) scale(0.1 -0.1)">
1077
+ <use xlink:href="#DejaVuSans-32"/>
1078
+ <use xlink:href="#DejaVuSans-2e" transform="translate(63.623047 0)"/>
1079
+ <use xlink:href="#DejaVuSans-35" transform="translate(95.410156 0)"/>
1080
+ <use xlink:href="#DejaVuSans-34" transform="translate(159.033203 0)"/>
1081
+ </g>
1082
+ </g>
1083
+ <g id="text_16">
1084
+ <!-- 15.10 -->
1085
+ <g style="fill: #263445" transform="translate(191.776517 199.753133) scale(0.1 -0.1)">
1086
+ <use xlink:href="#DejaVuSans-31"/>
1087
+ <use xlink:href="#DejaVuSans-35" transform="translate(63.623047 0)"/>
1088
+ <use xlink:href="#DejaVuSans-2e" transform="translate(127.246094 0)"/>
1089
+ <use xlink:href="#DejaVuSans-31" transform="translate(159.033203 0)"/>
1090
+ <use xlink:href="#DejaVuSans-30" transform="translate(222.65625 0)"/>
1091
+ </g>
1092
+ </g>
1093
+ <g id="text_17">
1094
+ <!-- August execution · same programs -->
1095
+ <g style="fill: #263445" transform="translate(101.84274 13.030177) scale(0.132 -0.132)">
1096
+ <defs>
1097
+ <path id="DejaVuSans-Bold-41" d="M 3419 850
1098
+ L 1538 850
1099
+ L 1241 0
1100
+ L 31 0
1101
+ L 1759 4666
1102
+ L 3194 4666
1103
+ L 4922 0
1104
+ L 3713 0
1105
+ L 3419 850
1106
+ z
1107
+ M 1838 1716
1108
+ L 3116 1716
1109
+ L 2478 3572
1110
+ L 1838 1716
1111
+ z
1112
+ " transform="scale(0.015625)"/>
1113
+ <path id="DejaVuSans-Bold-75" d="M 500 1363
1114
+ L 500 3500
1115
+ L 1625 3500
1116
+ L 1625 3150
1117
+ Q 1625 2866 1622 2436
1118
+ Q 1619 2006 1619 1863
1119
+ Q 1619 1441 1641 1255
1120
+ Q 1663 1069 1716 984
1121
+ Q 1784 875 1895 815
1122
+ Q 2006 756 2150 756
1123
+ Q 2500 756 2700 1025
1124
+ Q 2900 1294 2900 1772
1125
+ L 2900 3500
1126
+ L 4019 3500
1127
+ L 4019 0
1128
+ L 2900 0
1129
+ L 2900 506
1130
+ Q 2647 200 2364 54
1131
+ Q 2081 -91 1741 -91
1132
+ Q 1134 -91 817 281
1133
+ Q 500 653 500 1363
1134
+ z
1135
+ " transform="scale(0.015625)"/>
1136
+ <path id="DejaVuSans-Bold-67" d="M 2919 594
1137
+ Q 2688 288 2409 144
1138
+ Q 2131 0 1766 0
1139
+ Q 1125 0 706 504
1140
+ Q 288 1009 288 1791
1141
+ Q 288 2575 706 3076
1142
+ Q 1125 3578 1766 3578
1143
+ Q 2131 3578 2409 3434
1144
+ Q 2688 3291 2919 2981
1145
+ L 2919 3500
1146
+ L 4044 3500
1147
+ L 4044 353
1148
+ Q 4044 -491 3511 -936
1149
+ Q 2978 -1381 1966 -1381
1150
+ Q 1638 -1381 1331 -1331
1151
+ Q 1025 -1281 716 -1178
1152
+ L 716 -306
1153
+ Q 1009 -475 1290 -558
1154
+ Q 1572 -641 1856 -641
1155
+ Q 2406 -641 2662 -400
1156
+ Q 2919 -159 2919 353
1157
+ L 2919 594
1158
+ z
1159
+ M 2181 2772
1160
+ Q 1834 2772 1640 2515
1161
+ Q 1447 2259 1447 1791
1162
+ Q 1447 1309 1634 1061
1163
+ Q 1822 813 2181 813
1164
+ Q 2531 813 2725 1069
1165
+ Q 2919 1325 2919 1791
1166
+ Q 2919 2259 2725 2515
1167
+ Q 2531 2772 2181 2772
1168
+ z
1169
+ " transform="scale(0.015625)"/>
1170
+ <path id="DejaVuSans-Bold-73" d="M 3272 3391
1171
+ L 3272 2541
1172
+ Q 2913 2691 2578 2766
1173
+ Q 2244 2841 1947 2841
1174
+ Q 1628 2841 1473 2761
1175
+ Q 1319 2681 1319 2516
1176
+ Q 1319 2381 1436 2309
1177
+ Q 1553 2238 1856 2203
1178
+ L 2053 2175
1179
+ Q 2913 2066 3209 1816
1180
+ Q 3506 1566 3506 1031
1181
+ Q 3506 472 3093 190
1182
+ Q 2681 -91 1863 -91
1183
+ Q 1516 -91 1145 -36
1184
+ Q 775 19 384 128
1185
+ L 384 978
1186
+ Q 719 816 1070 734
1187
+ Q 1422 653 1784 653
1188
+ Q 2113 653 2278 743
1189
+ Q 2444 834 2444 1013
1190
+ Q 2444 1163 2330 1236
1191
+ Q 2216 1309 1875 1350
1192
+ L 1678 1375
1193
+ Q 931 1469 631 1722
1194
+ Q 331 1975 331 2491
1195
+ Q 331 3047 712 3315
1196
+ Q 1094 3584 1881 3584
1197
+ Q 2191 3584 2531 3537
1198
+ Q 2872 3491 3272 3391
1199
+ z
1200
+ " transform="scale(0.015625)"/>
1201
+ <path id="DejaVuSans-Bold-74" d="M 1759 4494
1202
+ L 1759 3500
1203
+ L 2913 3500
1204
+ L 2913 2700
1205
+ L 1759 2700
1206
+ L 1759 1216
1207
+ Q 1759 972 1856 886
1208
+ Q 1953 800 2241 800
1209
+ L 2816 800
1210
+ L 2816 0
1211
+ L 1856 0
1212
+ Q 1194 0 917 276
1213
+ Q 641 553 641 1216
1214
+ L 641 2700
1215
+ L 84 2700
1216
+ L 84 3500
1217
+ L 641 3500
1218
+ L 641 4494
1219
+ L 1759 4494
1220
+ z
1221
+ " transform="scale(0.015625)"/>
1222
+ <path id="DejaVuSans-Bold-20" transform="scale(0.015625)"/>
1223
+ <path id="DejaVuSans-Bold-65" d="M 4031 1759
1224
+ L 4031 1441
1225
+ L 1416 1441
1226
+ Q 1456 1047 1700 850
1227
+ Q 1944 653 2381 653
1228
+ Q 2734 653 3104 758
1229
+ Q 3475 863 3866 1075
1230
+ L 3866 213
1231
+ Q 3469 63 3072 -14
1232
+ Q 2675 -91 2278 -91
1233
+ Q 1328 -91 801 392
1234
+ Q 275 875 275 1747
1235
+ Q 275 2603 792 3093
1236
+ Q 1309 3584 2216 3584
1237
+ Q 3041 3584 3536 3087
1238
+ Q 4031 2591 4031 1759
1239
+ z
1240
+ M 2881 2131
1241
+ Q 2881 2450 2695 2645
1242
+ Q 2509 2841 2209 2841
1243
+ Q 1884 2841 1681 2658
1244
+ Q 1478 2475 1428 2131
1245
+ L 2881 2131
1246
+ z
1247
+ " transform="scale(0.015625)"/>
1248
+ <path id="DejaVuSans-Bold-78" d="M 1422 1791
1249
+ L 159 3500
1250
+ L 1344 3500
1251
+ L 2059 2463
1252
+ L 2784 3500
1253
+ L 3969 3500
1254
+ L 2706 1797
1255
+ L 4031 0
1256
+ L 2847 0
1257
+ L 2059 1106
1258
+ L 1281 0
1259
+ L 97 0
1260
+ L 1422 1791
1261
+ z
1262
+ " transform="scale(0.015625)"/>
1263
+ <path id="DejaVuSans-Bold-63" d="M 3366 3391
1264
+ L 3366 2478
1265
+ Q 3138 2634 2908 2709
1266
+ Q 2678 2784 2431 2784
1267
+ Q 1963 2784 1702 2511
1268
+ Q 1441 2238 1441 1747
1269
+ Q 1441 1256 1702 982
1270
+ Q 1963 709 2431 709
1271
+ Q 2694 709 2930 787
1272
+ Q 3166 866 3366 1019
1273
+ L 3366 103
1274
+ Q 3103 6 2833 -42
1275
+ Q 2563 -91 2291 -91
1276
+ Q 1344 -91 809 395
1277
+ Q 275 881 275 1747
1278
+ Q 275 2613 809 3098
1279
+ Q 1344 3584 2291 3584
1280
+ Q 2566 3584 2833 3536
1281
+ Q 3100 3488 3366 3391
1282
+ z
1283
+ " transform="scale(0.015625)"/>
1284
+ <path id="DejaVuSans-Bold-69" d="M 538 3500
1285
+ L 1656 3500
1286
+ L 1656 0
1287
+ L 538 0
1288
+ L 538 3500
1289
+ z
1290
+ M 538 4863
1291
+ L 1656 4863
1292
+ L 1656 3950
1293
+ L 538 3950
1294
+ L 538 4863
1295
+ z
1296
+ " transform="scale(0.015625)"/>
1297
+ <path id="DejaVuSans-Bold-6f" d="M 2203 2784
1298
+ Q 1831 2784 1636 2517
1299
+ Q 1441 2250 1441 1747
1300
+ Q 1441 1244 1636 976
1301
+ Q 1831 709 2203 709
1302
+ Q 2569 709 2762 976
1303
+ Q 2956 1244 2956 1747
1304
+ Q 2956 2250 2762 2517
1305
+ Q 2569 2784 2203 2784
1306
+ z
1307
+ M 2203 3584
1308
+ Q 3106 3584 3614 3096
1309
+ Q 4122 2609 4122 1747
1310
+ Q 4122 884 3614 396
1311
+ Q 3106 -91 2203 -91
1312
+ Q 1297 -91 786 396
1313
+ Q 275 884 275 1747
1314
+ Q 275 2609 786 3096
1315
+ Q 1297 3584 2203 3584
1316
+ z
1317
+ " transform="scale(0.015625)"/>
1318
+ <path id="DejaVuSans-Bold-6e" d="M 4056 2131
1319
+ L 4056 0
1320
+ L 2931 0
1321
+ L 2931 347
1322
+ L 2931 1631
1323
+ Q 2931 2084 2911 2256
1324
+ Q 2891 2428 2841 2509
1325
+ Q 2775 2619 2662 2680
1326
+ Q 2550 2741 2406 2741
1327
+ Q 2056 2741 1856 2470
1328
+ Q 1656 2200 1656 1722
1329
+ L 1656 0
1330
+ L 538 0
1331
+ L 538 3500
1332
+ L 1656 3500
1333
+ L 1656 2988
1334
+ Q 1909 3294 2193 3439
1335
+ Q 2478 3584 2822 3584
1336
+ Q 3428 3584 3742 3212
1337
+ Q 4056 2841 4056 2131
1338
+ z
1339
+ " transform="scale(0.015625)"/>
1340
+ <path id="DejaVuSans-Bold-b7" d="M 653 2828
1341
+ L 1778 2828
1342
+ L 1778 1619
1343
+ L 653 1619
1344
+ L 653 2828
1345
+ z
1346
+ " transform="scale(0.015625)"/>
1347
+ <path id="DejaVuSans-Bold-61" d="M 2106 1575
1348
+ Q 1756 1575 1579 1456
1349
+ Q 1403 1338 1403 1106
1350
+ Q 1403 894 1545 773
1351
+ Q 1688 653 1941 653
1352
+ Q 2256 653 2472 879
1353
+ Q 2688 1106 2688 1447
1354
+ L 2688 1575
1355
+ L 2106 1575
1356
+ z
1357
+ M 3816 1997
1358
+ L 3816 0
1359
+ L 2688 0
1360
+ L 2688 519
1361
+ Q 2463 200 2181 54
1362
+ Q 1900 -91 1497 -91
1363
+ Q 953 -91 614 226
1364
+ Q 275 544 275 1050
1365
+ Q 275 1666 698 1953
1366
+ Q 1122 2241 2028 2241
1367
+ L 2688 2241
1368
+ L 2688 2328
1369
+ Q 2688 2594 2478 2717
1370
+ Q 2269 2841 1825 2841
1371
+ Q 1466 2841 1156 2769
1372
+ Q 847 2697 581 2553
1373
+ L 581 3406
1374
+ Q 941 3494 1303 3539
1375
+ Q 1666 3584 2028 3584
1376
+ Q 2975 3584 3395 3211
1377
+ Q 3816 2838 3816 1997
1378
+ z
1379
+ " transform="scale(0.015625)"/>
1380
+ <path id="DejaVuSans-Bold-6d" d="M 3781 2919
1381
+ Q 3994 3244 4286 3414
1382
+ Q 4578 3584 4928 3584
1383
+ Q 5531 3584 5847 3212
1384
+ Q 6163 2841 6163 2131
1385
+ L 6163 0
1386
+ L 5038 0
1387
+ L 5038 1825
1388
+ Q 5041 1866 5042 1909
1389
+ Q 5044 1953 5044 2034
1390
+ Q 5044 2406 4934 2573
1391
+ Q 4825 2741 4581 2741
1392
+ Q 4263 2741 4089 2478
1393
+ Q 3916 2216 3909 1719
1394
+ L 3909 0
1395
+ L 2784 0
1396
+ L 2784 1825
1397
+ Q 2784 2406 2684 2573
1398
+ Q 2584 2741 2328 2741
1399
+ Q 2006 2741 1831 2477
1400
+ Q 1656 2213 1656 1722
1401
+ L 1656 0
1402
+ L 531 0
1403
+ L 531 3500
1404
+ L 1656 3500
1405
+ L 1656 2988
1406
+ Q 1863 3284 2130 3434
1407
+ Q 2397 3584 2719 3584
1408
+ Q 3081 3584 3359 3409
1409
+ Q 3638 3234 3781 2919
1410
+ z
1411
+ " transform="scale(0.015625)"/>
1412
+ <path id="DejaVuSans-Bold-70" d="M 1656 506
1413
+ L 1656 -1331
1414
+ L 538 -1331
1415
+ L 538 3500
1416
+ L 1656 3500
1417
+ L 1656 2988
1418
+ Q 1888 3294 2169 3439
1419
+ Q 2450 3584 2816 3584
1420
+ Q 3463 3584 3878 3070
1421
+ Q 4294 2556 4294 1747
1422
+ Q 4294 938 3878 423
1423
+ Q 3463 -91 2816 -91
1424
+ Q 2450 -91 2169 54
1425
+ Q 1888 200 1656 506
1426
+ z
1427
+ M 2400 2772
1428
+ Q 2041 2772 1848 2508
1429
+ Q 1656 2244 1656 1747
1430
+ Q 1656 1250 1848 986
1431
+ Q 2041 722 2400 722
1432
+ Q 2759 722 2948 984
1433
+ Q 3138 1247 3138 1747
1434
+ Q 3138 2247 2948 2509
1435
+ Q 2759 2772 2400 2772
1436
+ z
1437
+ " transform="scale(0.015625)"/>
1438
+ <path id="DejaVuSans-Bold-72" d="M 3138 2547
1439
+ Q 2991 2616 2845 2648
1440
+ Q 2700 2681 2553 2681
1441
+ Q 2122 2681 1889 2404
1442
+ Q 1656 2128 1656 1613
1443
+ L 1656 0
1444
+ L 538 0
1445
+ L 538 3500
1446
+ L 1656 3500
1447
+ L 1656 2925
1448
+ Q 1872 3269 2151 3426
1449
+ Q 2431 3584 2822 3584
1450
+ Q 2878 3584 2943 3579
1451
+ Q 3009 3575 3134 3559
1452
+ L 3138 2547
1453
+ z
1454
+ " transform="scale(0.015625)"/>
1455
+ </defs>
1456
+ <use xlink:href="#DejaVuSans-Bold-41"/>
1457
+ <use xlink:href="#DejaVuSans-Bold-75" transform="translate(77.392578 0)"/>
1458
+ <use xlink:href="#DejaVuSans-Bold-67" transform="translate(148.583984 0)"/>
1459
+ <use xlink:href="#DejaVuSans-Bold-75" transform="translate(220.166016 0)"/>
1460
+ <use xlink:href="#DejaVuSans-Bold-73" transform="translate(291.357422 0)"/>
1461
+ <use xlink:href="#DejaVuSans-Bold-74" transform="translate(350.878906 0)"/>
1462
+ <use xlink:href="#DejaVuSans-Bold-20" transform="translate(398.681641 0)"/>
1463
+ <use xlink:href="#DejaVuSans-Bold-65" transform="translate(433.496094 0)"/>
1464
+ <use xlink:href="#DejaVuSans-Bold-78" transform="translate(501.318359 0)"/>
1465
+ <use xlink:href="#DejaVuSans-Bold-65" transform="translate(565.820312 0)"/>
1466
+ <use xlink:href="#DejaVuSans-Bold-63" transform="translate(633.642578 0)"/>
1467
+ <use xlink:href="#DejaVuSans-Bold-75" transform="translate(692.919922 0)"/>
1468
+ <use xlink:href="#DejaVuSans-Bold-74" transform="translate(764.111328 0)"/>
1469
+ <use xlink:href="#DejaVuSans-Bold-69" transform="translate(811.914062 0)"/>
1470
+ <use xlink:href="#DejaVuSans-Bold-6f" transform="translate(846.191406 0)"/>
1471
+ <use xlink:href="#DejaVuSans-Bold-6e" transform="translate(914.892578 0)"/>
1472
+ <use xlink:href="#DejaVuSans-Bold-20" transform="translate(986.083984 0)"/>
1473
+ <use xlink:href="#DejaVuSans-Bold-b7" transform="translate(1020.898438 0)"/>
1474
+ <use xlink:href="#DejaVuSans-Bold-20" transform="translate(1058.886719 0)"/>
1475
+ <use xlink:href="#DejaVuSans-Bold-73" transform="translate(1093.701172 0)"/>
1476
+ <use xlink:href="#DejaVuSans-Bold-61" transform="translate(1153.222656 0)"/>
1477
+ <use xlink:href="#DejaVuSans-Bold-6d" transform="translate(1220.703125 0)"/>
1478
+ <use xlink:href="#DejaVuSans-Bold-65" transform="translate(1324.902344 0)"/>
1479
+ <use xlink:href="#DejaVuSans-Bold-20" transform="translate(1392.724609 0)"/>
1480
+ <use xlink:href="#DejaVuSans-Bold-70" transform="translate(1427.539062 0)"/>
1481
+ <use xlink:href="#DejaVuSans-Bold-72" transform="translate(1499.121094 0)"/>
1482
+ <use xlink:href="#DejaVuSans-Bold-6f" transform="translate(1548.4375 0)"/>
1483
+ <use xlink:href="#DejaVuSans-Bold-67" transform="translate(1617.138672 0)"/>
1484
+ <use xlink:href="#DejaVuSans-Bold-72" transform="translate(1688.720703 0)"/>
1485
+ <use xlink:href="#DejaVuSans-Bold-61" transform="translate(1738.037109 0)"/>
1486
+ <use xlink:href="#DejaVuSans-Bold-6d" transform="translate(1805.517578 0)"/>
1487
+ <use xlink:href="#DejaVuSans-Bold-73" transform="translate(1909.716797 0)"/>
1488
+ </g>
1489
+ </g>
1490
+ <g id="legend_1">
1491
+ <g id="patch_10">
1492
+ <path d="M 346.991323 112.831375
1493
+ L 368.991323 112.831375
1494
+ L 368.991323 105.131375
1495
+ L 346.991323 105.131375
1496
+ z
1497
+ " style="fill: #8a96a3"/>
1498
+ </g>
1499
+ <g id="text_18">
1500
+ <!-- Before -->
1501
+ <g style="fill: #263445" transform="translate(377.791323 112.831375) scale(0.11 -0.11)">
1502
+ <defs>
1503
+ <path id="DejaVuSans-42" d="M 1259 2228
1504
+ L 1259 519
1505
+ L 2272 519
1506
+ Q 2781 519 3026 730
1507
+ Q 3272 941 3272 1375
1508
+ Q 3272 1813 3026 2020
1509
+ Q 2781 2228 2272 2228
1510
+ L 1259 2228
1511
+ z
1512
+ M 1259 4147
1513
+ L 1259 2741
1514
+ L 2194 2741
1515
+ Q 2656 2741 2882 2914
1516
+ Q 3109 3088 3109 3444
1517
+ Q 3109 3797 2882 3972
1518
+ Q 2656 4147 2194 4147
1519
+ L 1259 4147
1520
+ z
1521
+ M 628 4666
1522
+ L 2241 4666
1523
+ Q 2963 4666 3353 4366
1524
+ Q 3744 4066 3744 3513
1525
+ Q 3744 3084 3544 2831
1526
+ Q 3344 2578 2956 2516
1527
+ Q 3422 2416 3680 2098
1528
+ Q 3938 1781 3938 1306
1529
+ Q 3938 681 3513 340
1530
+ Q 3088 0 2303 0
1531
+ L 628 0
1532
+ L 628 4666
1533
+ z
1534
+ " transform="scale(0.015625)"/>
1535
+ </defs>
1536
+ <use xlink:href="#DejaVuSans-42"/>
1537
+ <use xlink:href="#DejaVuSans-65" transform="translate(68.603516 0)"/>
1538
+ <use xlink:href="#DejaVuSans-66" transform="translate(130.126953 0)"/>
1539
+ <use xlink:href="#DejaVuSans-6f" transform="translate(165.332031 0)"/>
1540
+ <use xlink:href="#DejaVuSans-72" transform="translate(226.513672 0)"/>
1541
+ <use xlink:href="#DejaVuSans-65" transform="translate(265.376953 0)"/>
1542
+ </g>
1543
+ </g>
1544
+ <g id="patch_11">
1545
+ <path d="M 346.991323 128.977313
1546
+ L 368.991323 128.977313
1547
+ L 368.991323 121.277313
1548
+ L 346.991323 121.277313
1549
+ z
1550
+ " style="fill: #087e8b"/>
1551
+ </g>
1552
+ <g id="text_19">
1553
+ <!-- Current -->
1554
+ <g style="fill: #263445" transform="translate(377.791323 128.977313) scale(0.11 -0.11)">
1555
+ <defs>
1556
+ <path id="DejaVuSans-75" d="M 544 1381
1557
+ L 544 3500
1558
+ L 1119 3500
1559
+ L 1119 1403
1560
+ Q 1119 906 1312 657
1561
+ Q 1506 409 1894 409
1562
+ Q 2359 409 2629 706
1563
+ Q 2900 1003 2900 1516
1564
+ L 2900 3500
1565
+ L 3475 3500
1566
+ L 3475 0
1567
+ L 2900 0
1568
+ L 2900 538
1569
+ Q 2691 219 2414 64
1570
+ Q 2138 -91 1772 -91
1571
+ Q 1169 -91 856 284
1572
+ Q 544 659 544 1381
1573
+ z
1574
+ M 1991 3584
1575
+ L 1991 3584
1576
+ z
1577
+ " transform="scale(0.015625)"/>
1578
+ </defs>
1579
+ <use xlink:href="#DejaVuSans-43"/>
1580
+ <use xlink:href="#DejaVuSans-75" transform="translate(69.824219 0)"/>
1581
+ <use xlink:href="#DejaVuSans-72" transform="translate(133.203125 0)"/>
1582
+ <use xlink:href="#DejaVuSans-72" transform="translate(172.566406 0)"/>
1583
+ <use xlink:href="#DejaVuSans-65" transform="translate(211.429688 0)"/>
1584
+ <use xlink:href="#DejaVuSans-6e" transform="translate(272.953125 0)"/>
1585
+ <use xlink:href="#DejaVuSans-74" transform="translate(336.332031 0)"/>
1586
+ </g>
1587
+ </g>
1588
+ </g>
1589
+ </g>
1590
+ <g id="axes_2">
1591
+ <g id="patch_12">
1592
+ <path d="M 101.84274 468.707885
1593
+ L 428.99976 468.707885
1594
+ L 428.99976 271.030178
1595
+ L 101.84274 271.030178
1596
+ z
1597
+ " style="fill: #ffffff"/>
1598
+ </g>
1599
+ <g id="matplotlib.axis_3">
1600
+ <g id="xtick_7">
1601
+ <g id="line2d_16">
1602
+ <path d="M 119.769152 468.707885
1603
+ L 119.769152 271.030178
1604
+ " clip-path="url(#p17a8581dbe)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1605
+ </g>
1606
+ <g id="line2d_17">
1607
+ <g>
1608
+ <use xlink:href="#m9cd3e2f3f9" x="119.769152" y="468.707885" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
1609
+ </g>
1610
+ </g>
1611
+ <g id="text_20">
1612
+ <!-- 1 -->
1613
+ <g style="fill: #52606d" transform="translate(116.269777 484.066166) scale(0.11 -0.11)">
1614
+ <use xlink:href="#DejaVuSans-31"/>
1615
+ </g>
1616
+ </g>
1617
+ </g>
1618
+ <g id="xtick_8">
1619
+ <g id="line2d_18">
1620
+ <path d="M 186.993197 468.707885
1621
+ L 186.993197 271.030178
1622
+ " clip-path="url(#p17a8581dbe)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1623
+ </g>
1624
+ <g id="line2d_19">
1625
+ <g>
1626
+ <use xlink:href="#m9cd3e2f3f9" x="186.993197" y="468.707885" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
1627
+ </g>
1628
+ </g>
1629
+ <g id="text_21">
1630
+ <!-- 16 -->
1631
+ <g style="fill: #52606d" transform="translate(179.994447 484.066166) scale(0.11 -0.11)">
1632
+ <use xlink:href="#DejaVuSans-31"/>
1633
+ <use xlink:href="#DejaVuSans-36" transform="translate(63.623047 0)"/>
1634
+ </g>
1635
+ </g>
1636
+ </g>
1637
+ <g id="xtick_9">
1638
+ <g id="line2d_20">
1639
+ <path d="M 402.110142 468.707885
1640
+ L 402.110142 271.030178
1641
+ " clip-path="url(#p17a8581dbe)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1642
+ </g>
1643
+ <g id="line2d_21">
1644
+ <g>
1645
+ <use xlink:href="#m9cd3e2f3f9" x="402.110142" y="468.707885" style="fill: #52606d; stroke: #52606d; stroke-width: 0.8"/>
1646
+ </g>
1647
+ </g>
1648
+ <g id="text_22">
1649
+ <!-- 64 -->
1650
+ <g style="fill: #52606d" transform="translate(395.111392 484.066166) scale(0.11 -0.11)">
1651
+ <use xlink:href="#DejaVuSans-36"/>
1652
+ <use xlink:href="#DejaVuSans-34" transform="translate(63.623047 0)"/>
1653
+ </g>
1654
+ </g>
1655
+ </g>
1656
+ <g id="text_23">
1657
+ <!-- Concurrent keep-alive clients -->
1658
+ <g style="fill: #263445" transform="translate(185.128984 498.712104) scale(0.11 -0.11)">
1659
+ <defs>
1660
+ <path id="DejaVuSans-2d" d="M 313 2009
1661
+ L 1997 2009
1662
+ L 1997 1497
1663
+ L 313 1497
1664
+ L 313 2009
1665
+ z
1666
+ " transform="scale(0.015625)"/>
1667
+ <path id="DejaVuSans-76" d="M 191 3500
1668
+ L 800 3500
1669
+ L 1894 563
1670
+ L 2988 3500
1671
+ L 3597 3500
1672
+ L 2284 0
1673
+ L 1503 0
1674
+ L 191 3500
1675
+ z
1676
+ " transform="scale(0.015625)"/>
1677
+ </defs>
1678
+ <use xlink:href="#DejaVuSans-43"/>
1679
+ <use xlink:href="#DejaVuSans-6f" transform="translate(69.824219 0)"/>
1680
+ <use xlink:href="#DejaVuSans-6e" transform="translate(131.005859 0)"/>
1681
+ <use xlink:href="#DejaVuSans-63" transform="translate(194.384766 0)"/>
1682
+ <use xlink:href="#DejaVuSans-75" transform="translate(249.365234 0)"/>
1683
+ <use xlink:href="#DejaVuSans-72" transform="translate(312.744141 0)"/>
1684
+ <use xlink:href="#DejaVuSans-72" transform="translate(352.107422 0)"/>
1685
+ <use xlink:href="#DejaVuSans-65" transform="translate(390.970703 0)"/>
1686
+ <use xlink:href="#DejaVuSans-6e" transform="translate(452.494141 0)"/>
1687
+ <use xlink:href="#DejaVuSans-74" transform="translate(515.873047 0)"/>
1688
+ <use xlink:href="#DejaVuSans-20" transform="translate(555.082031 0)"/>
1689
+ <use xlink:href="#DejaVuSans-6b" transform="translate(586.869141 0)"/>
1690
+ <use xlink:href="#DejaVuSans-65" transform="translate(641.154297 0)"/>
1691
+ <use xlink:href="#DejaVuSans-65" transform="translate(702.677734 0)"/>
1692
+ <use xlink:href="#DejaVuSans-70" transform="translate(764.201172 0)"/>
1693
+ <use xlink:href="#DejaVuSans-2d" transform="translate(827.677734 0)"/>
1694
+ <use xlink:href="#DejaVuSans-61" transform="translate(863.761719 0)"/>
1695
+ <use xlink:href="#DejaVuSans-6c" transform="translate(925.041016 0)"/>
1696
+ <use xlink:href="#DejaVuSans-69" transform="translate(952.824219 0)"/>
1697
+ <use xlink:href="#DejaVuSans-76" transform="translate(980.607422 0)"/>
1698
+ <use xlink:href="#DejaVuSans-65" transform="translate(1039.787109 0)"/>
1699
+ <use xlink:href="#DejaVuSans-20" transform="translate(1101.310547 0)"/>
1700
+ <use xlink:href="#DejaVuSans-63" transform="translate(1133.097656 0)"/>
1701
+ <use xlink:href="#DejaVuSans-6c" transform="translate(1188.078125 0)"/>
1702
+ <use xlink:href="#DejaVuSans-69" transform="translate(1215.861328 0)"/>
1703
+ <use xlink:href="#DejaVuSans-65" transform="translate(1243.644531 0)"/>
1704
+ <use xlink:href="#DejaVuSans-6e" transform="translate(1305.167969 0)"/>
1705
+ <use xlink:href="#DejaVuSans-74" transform="translate(1368.546875 0)"/>
1706
+ <use xlink:href="#DejaVuSans-73" transform="translate(1407.755859 0)"/>
1707
+ </g>
1708
+ </g>
1709
+ </g>
1710
+ <g id="matplotlib.axis_4">
1711
+ <g id="ytick_4">
1712
+ <g id="line2d_22">
1713
+ <path d="M 101.84274 468.707885
1714
+ L 428.99976 468.707885
1715
+ " clip-path="url(#p17a8581dbe)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1716
+ </g>
1717
+ <g id="line2d_23">
1718
+ <defs>
1719
+ <path id="m3109c17da4" d="M 0 0
1720
+ L -3.5 0
1721
+ " style="stroke: #263445; stroke-width: 0.8"/>
1722
+ </defs>
1723
+ <g>
1724
+ <use xlink:href="#m3109c17da4" x="101.84274" y="468.707885" style="fill: #263445; stroke: #263445; stroke-width: 0.8"/>
1725
+ </g>
1726
+ </g>
1727
+ <g id="text_24">
1728
+ <!-- 0 -->
1729
+ <g style="fill: #263445" transform="translate(87.84399 472.887026) scale(0.11 -0.11)">
1730
+ <use xlink:href="#DejaVuSans-30"/>
1731
+ </g>
1732
+ </g>
1733
+ </g>
1734
+ <g id="ytick_5">
1735
+ <g id="line2d_24">
1736
+ <path d="M 101.84274 427.25781
1737
+ L 428.99976 427.25781
1738
+ " clip-path="url(#p17a8581dbe)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1739
+ </g>
1740
+ <g id="line2d_25">
1741
+ <g>
1742
+ <use xlink:href="#m3109c17da4" x="101.84274" y="427.25781" style="fill: #263445; stroke: #263445; stroke-width: 0.8"/>
1743
+ </g>
1744
+ </g>
1745
+ <g id="text_25">
1746
+ <!-- 20 -->
1747
+ <g style="fill: #263445" transform="translate(80.84524 431.436951) scale(0.11 -0.11)">
1748
+ <use xlink:href="#DejaVuSans-32"/>
1749
+ <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
1750
+ </g>
1751
+ </g>
1752
+ </g>
1753
+ <g id="ytick_6">
1754
+ <g id="line2d_26">
1755
+ <path d="M 101.84274 385.807735
1756
+ L 428.99976 385.807735
1757
+ " clip-path="url(#p17a8581dbe)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1758
+ </g>
1759
+ <g id="line2d_27">
1760
+ <g>
1761
+ <use xlink:href="#m3109c17da4" x="101.84274" y="385.807735" style="fill: #263445; stroke: #263445; stroke-width: 0.8"/>
1762
+ </g>
1763
+ </g>
1764
+ <g id="text_26">
1765
+ <!-- 40 -->
1766
+ <g style="fill: #263445" transform="translate(80.84524 389.986876) scale(0.11 -0.11)">
1767
+ <use xlink:href="#DejaVuSans-34"/>
1768
+ <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
1769
+ </g>
1770
+ </g>
1771
+ </g>
1772
+ <g id="ytick_7">
1773
+ <g id="line2d_28">
1774
+ <path d="M 101.84274 344.35766
1775
+ L 428.99976 344.35766
1776
+ " clip-path="url(#p17a8581dbe)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1777
+ </g>
1778
+ <g id="line2d_29">
1779
+ <g>
1780
+ <use xlink:href="#m3109c17da4" x="101.84274" y="344.35766" style="fill: #263445; stroke: #263445; stroke-width: 0.8"/>
1781
+ </g>
1782
+ </g>
1783
+ <g id="text_27">
1784
+ <!-- 60 -->
1785
+ <g style="fill: #263445" transform="translate(80.84524 348.536801) scale(0.11 -0.11)">
1786
+ <use xlink:href="#DejaVuSans-36"/>
1787
+ <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
1788
+ </g>
1789
+ </g>
1790
+ </g>
1791
+ <g id="ytick_8">
1792
+ <g id="line2d_30">
1793
+ <path d="M 101.84274 302.907585
1794
+ L 428.99976 302.907585
1795
+ " clip-path="url(#p17a8581dbe)" style="fill: none; stroke: #e8edf1; stroke-width: 0.8; stroke-linecap: square"/>
1796
+ </g>
1797
+ <g id="line2d_31">
1798
+ <g>
1799
+ <use xlink:href="#m3109c17da4" x="101.84274" y="302.907585" style="fill: #263445; stroke: #263445; stroke-width: 0.8"/>
1800
+ </g>
1801
+ </g>
1802
+ <g id="text_28">
1803
+ <!-- 80 -->
1804
+ <g style="fill: #263445" transform="translate(80.84524 307.086725) scale(0.11 -0.11)">
1805
+ <use xlink:href="#DejaVuSans-38"/>
1806
+ <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
1807
+ </g>
1808
+ </g>
1809
+ </g>
1810
+ <g id="text_29">
1811
+ <!-- Thousands of requests/sec · higher is faster -->
1812
+ <g style="fill: #263445" transform="translate(74.557584 490.078406) rotate(-90) scale(0.11 -0.11)">
1813
+ <defs>
1814
+ <path id="DejaVuSans-54" d="M -19 4666
1815
+ L 3928 4666
1816
+ L 3928 4134
1817
+ L 2272 4134
1818
+ L 2272 0
1819
+ L 1638 0
1820
+ L 1638 4134
1821
+ L -19 4134
1822
+ L -19 4666
1823
+ z
1824
+ " transform="scale(0.015625)"/>
1825
+ <path id="DejaVuSans-68" d="M 3513 2113
1826
+ L 3513 0
1827
+ L 2938 0
1828
+ L 2938 2094
1829
+ Q 2938 2591 2744 2837
1830
+ Q 2550 3084 2163 3084
1831
+ Q 1697 3084 1428 2787
1832
+ Q 1159 2491 1159 1978
1833
+ L 1159 0
1834
+ L 581 0
1835
+ L 581 4863
1836
+ L 1159 4863
1837
+ L 1159 2956
1838
+ Q 1366 3272 1645 3428
1839
+ Q 1925 3584 2291 3584
1840
+ Q 2894 3584 3203 3211
1841
+ Q 3513 2838 3513 2113
1842
+ z
1843
+ " transform="scale(0.015625)"/>
1844
+ <path id="DejaVuSans-71" d="M 947 1747
1845
+ Q 947 1113 1208 752
1846
+ Q 1469 391 1925 391
1847
+ Q 2381 391 2643 752
1848
+ Q 2906 1113 2906 1747
1849
+ Q 2906 2381 2643 2742
1850
+ Q 2381 3103 1925 3103
1851
+ Q 1469 3103 1208 2742
1852
+ Q 947 2381 947 1747
1853
+ z
1854
+ M 2906 525
1855
+ Q 2725 213 2448 61
1856
+ Q 2172 -91 1784 -91
1857
+ Q 1150 -91 751 415
1858
+ Q 353 922 353 1747
1859
+ Q 353 2572 751 3078
1860
+ Q 1150 3584 1784 3584
1861
+ Q 2172 3584 2448 3432
1862
+ Q 2725 3281 2906 2969
1863
+ L 2906 3500
1864
+ L 3481 3500
1865
+ L 3481 -1331
1866
+ L 2906 -1331
1867
+ L 2906 525
1868
+ z
1869
+ " transform="scale(0.015625)"/>
1870
+ <path id="DejaVuSans-2f" d="M 1625 4666
1871
+ L 2156 4666
1872
+ L 531 -594
1873
+ L 0 -594
1874
+ L 1625 4666
1875
+ z
1876
+ " transform="scale(0.015625)"/>
1877
+ <path id="DejaVuSans-67" d="M 2906 1791
1878
+ Q 2906 2416 2648 2759
1879
+ Q 2391 3103 1925 3103
1880
+ Q 1463 3103 1205 2759
1881
+ Q 947 2416 947 1791
1882
+ Q 947 1169 1205 825
1883
+ Q 1463 481 1925 481
1884
+ Q 2391 481 2648 825
1885
+ Q 2906 1169 2906 1791
1886
+ z
1887
+ M 3481 434
1888
+ Q 3481 -459 3084 -895
1889
+ Q 2688 -1331 1869 -1331
1890
+ Q 1566 -1331 1297 -1286
1891
+ Q 1028 -1241 775 -1147
1892
+ L 775 -588
1893
+ Q 1028 -725 1275 -790
1894
+ Q 1522 -856 1778 -856
1895
+ Q 2344 -856 2625 -561
1896
+ Q 2906 -266 2906 331
1897
+ L 2906 616
1898
+ Q 2728 306 2450 153
1899
+ Q 2172 0 1784 0
1900
+ Q 1141 0 747 490
1901
+ Q 353 981 353 1791
1902
+ Q 353 2603 747 3093
1903
+ Q 1141 3584 1784 3584
1904
+ Q 2172 3584 2450 3431
1905
+ Q 2728 3278 2906 2969
1906
+ L 2906 3500
1907
+ L 3481 3500
1908
+ L 3481 434
1909
+ z
1910
+ " transform="scale(0.015625)"/>
1911
+ </defs>
1912
+ <use xlink:href="#DejaVuSans-54"/>
1913
+ <use xlink:href="#DejaVuSans-68" transform="translate(61.083984 0)"/>
1914
+ <use xlink:href="#DejaVuSans-6f" transform="translate(124.462891 0)"/>
1915
+ <use xlink:href="#DejaVuSans-75" transform="translate(185.644531 0)"/>
1916
+ <use xlink:href="#DejaVuSans-73" transform="translate(249.023438 0)"/>
1917
+ <use xlink:href="#DejaVuSans-61" transform="translate(301.123047 0)"/>
1918
+ <use xlink:href="#DejaVuSans-6e" transform="translate(362.402344 0)"/>
1919
+ <use xlink:href="#DejaVuSans-64" transform="translate(425.78125 0)"/>
1920
+ <use xlink:href="#DejaVuSans-73" transform="translate(489.257812 0)"/>
1921
+ <use xlink:href="#DejaVuSans-20" transform="translate(541.357422 0)"/>
1922
+ <use xlink:href="#DejaVuSans-6f" transform="translate(573.144531 0)"/>
1923
+ <use xlink:href="#DejaVuSans-66" transform="translate(634.326172 0)"/>
1924
+ <use xlink:href="#DejaVuSans-20" transform="translate(669.53125 0)"/>
1925
+ <use xlink:href="#DejaVuSans-72" transform="translate(701.318359 0)"/>
1926
+ <use xlink:href="#DejaVuSans-65" transform="translate(740.181641 0)"/>
1927
+ <use xlink:href="#DejaVuSans-71" transform="translate(801.705078 0)"/>
1928
+ <use xlink:href="#DejaVuSans-75" transform="translate(865.181641 0)"/>
1929
+ <use xlink:href="#DejaVuSans-65" transform="translate(928.560547 0)"/>
1930
+ <use xlink:href="#DejaVuSans-73" transform="translate(990.083984 0)"/>
1931
+ <use xlink:href="#DejaVuSans-74" transform="translate(1042.183594 0)"/>
1932
+ <use xlink:href="#DejaVuSans-73" transform="translate(1081.392578 0)"/>
1933
+ <use xlink:href="#DejaVuSans-2f" transform="translate(1133.492188 0)"/>
1934
+ <use xlink:href="#DejaVuSans-73" transform="translate(1167.183594 0)"/>
1935
+ <use xlink:href="#DejaVuSans-65" transform="translate(1219.283203 0)"/>
1936
+ <use xlink:href="#DejaVuSans-63" transform="translate(1280.806641 0)"/>
1937
+ <use xlink:href="#DejaVuSans-20" transform="translate(1335.787109 0)"/>
1938
+ <use xlink:href="#DejaVuSans-b7" transform="translate(1367.574219 0)"/>
1939
+ <use xlink:href="#DejaVuSans-20" transform="translate(1399.361328 0)"/>
1940
+ <use xlink:href="#DejaVuSans-68" transform="translate(1431.148438 0)"/>
1941
+ <use xlink:href="#DejaVuSans-69" transform="translate(1494.527344 0)"/>
1942
+ <use xlink:href="#DejaVuSans-67" transform="translate(1522.310547 0)"/>
1943
+ <use xlink:href="#DejaVuSans-68" transform="translate(1585.787109 0)"/>
1944
+ <use xlink:href="#DejaVuSans-65" transform="translate(1649.166016 0)"/>
1945
+ <use xlink:href="#DejaVuSans-72" transform="translate(1710.689453 0)"/>
1946
+ <use xlink:href="#DejaVuSans-20" transform="translate(1751.802734 0)"/>
1947
+ <use xlink:href="#DejaVuSans-69" transform="translate(1783.589844 0)"/>
1948
+ <use xlink:href="#DejaVuSans-73" transform="translate(1811.373047 0)"/>
1949
+ <use xlink:href="#DejaVuSans-20" transform="translate(1863.472656 0)"/>
1950
+ <use xlink:href="#DejaVuSans-66" transform="translate(1895.259766 0)"/>
1951
+ <use xlink:href="#DejaVuSans-61" transform="translate(1930.464844 0)"/>
1952
+ <use xlink:href="#DejaVuSans-73" transform="translate(1991.744141 0)"/>
1953
+ <use xlink:href="#DejaVuSans-74" transform="translate(2043.84375 0)"/>
1954
+ <use xlink:href="#DejaVuSans-65" transform="translate(2083.052734 0)"/>
1955
+ <use xlink:href="#DejaVuSans-72" transform="translate(2144.576172 0)"/>
1956
+ </g>
1957
+ </g>
1958
+ </g>
1959
+ <g id="line2d_32">
1960
+ <path d="M 119.769152 416.328778
1961
+ L 186.993197 338.721789
1962
+ L 402.110142 405.096832
1963
+ " clip-path="url(#p17a8581dbe)" style="fill: none; stroke-dasharray: 7.4,3.2; stroke-dashoffset: 0; stroke: #8a96a3; stroke-width: 2"/>
1964
+ <defs>
1965
+ <path id="mc71834a7e5" d="M 0 3
1966
+ C 0.795609 3 1.55874 2.683901 2.12132 2.12132
1967
+ C 2.683901 1.55874 3 0.795609 3 0
1968
+ C 3 -0.795609 2.683901 -1.55874 2.12132 -2.12132
1969
+ C 1.55874 -2.683901 0.795609 -3 0 -3
1970
+ C -0.795609 -3 -1.55874 -2.683901 -2.12132 -2.12132
1971
+ C -2.683901 -1.55874 -3 -0.795609 -3 0
1972
+ C -3 0.795609 -2.683901 1.55874 -2.12132 2.12132
1973
+ C -1.55874 2.683901 -0.795609 3 0 3
1974
+ z
1975
+ " style="stroke: #8a96a3"/>
1976
+ </defs>
1977
+ <g clip-path="url(#p17a8581dbe)">
1978
+ <use xlink:href="#mc71834a7e5" x="119.769152" y="416.328778" style="fill: #8a96a3; stroke: #8a96a3"/>
1979
+ <use xlink:href="#mc71834a7e5" x="186.993197" y="338.721789" style="fill: #8a96a3; stroke: #8a96a3"/>
1980
+ <use xlink:href="#mc71834a7e5" x="402.110142" y="405.096832" style="fill: #8a96a3; stroke: #8a96a3"/>
1981
+ </g>
1982
+ </g>
1983
+ <g id="line2d_33">
1984
+ <path d="M 119.769152 419.950165
1985
+ L 186.993197 316.64811
1986
+ L 402.110142 333.23817
1987
+ " clip-path="url(#p17a8581dbe)" style="fill: none; stroke: #087e8b; stroke-width: 2; stroke-linecap: square"/>
1988
+ <defs>
1989
+ <path id="m97b82aa8ea" d="M 0 3
1990
+ C 0.795609 3 1.55874 2.683901 2.12132 2.12132
1991
+ C 2.683901 1.55874 3 0.795609 3 0
1992
+ C 3 -0.795609 2.683901 -1.55874 2.12132 -2.12132
1993
+ C 1.55874 -2.683901 0.795609 -3 0 -3
1994
+ C -0.795609 -3 -1.55874 -2.683901 -2.12132 -2.12132
1995
+ C -2.683901 -1.55874 -3 -0.795609 -3 0
1996
+ C -3 0.795609 -2.683901 1.55874 -2.12132 2.12132
1997
+ C -1.55874 2.683901 -0.795609 3 0 3
1998
+ z
1999
+ " style="stroke: #087e8b"/>
2000
+ </defs>
2001
+ <g clip-path="url(#p17a8581dbe)">
2002
+ <use xlink:href="#m97b82aa8ea" x="119.769152" y="419.950165" style="fill: #087e8b; stroke: #087e8b"/>
2003
+ <use xlink:href="#m97b82aa8ea" x="186.993197" y="316.64811" style="fill: #087e8b; stroke: #087e8b"/>
2004
+ <use xlink:href="#m97b82aa8ea" x="402.110142" y="333.23817" style="fill: #087e8b; stroke: #087e8b"/>
2005
+ </g>
2006
+ </g>
2007
+ <g id="patch_13">
2008
+ <path d="M 101.84274 468.707885
2009
+ L 428.99976 468.707885
2010
+ " style="fill: none; stroke: #c4cbd2; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>
2011
+ </g>
2012
+ <g id="text_30">
2013
+ <!-- 25.3k -->
2014
+ <g style="fill: #8a96a3" transform="translate(105.741027 407.328778) scale(0.1 -0.1)">
2015
+ <use xlink:href="#DejaVuSans-32"/>
2016
+ <use xlink:href="#DejaVuSans-35" transform="translate(63.623047 0)"/>
2017
+ <use xlink:href="#DejaVuSans-2e" transform="translate(127.246094 0)"/>
2018
+ <use xlink:href="#DejaVuSans-33" transform="translate(159.033203 0)"/>
2019
+ <use xlink:href="#DejaVuSans-6b" transform="translate(222.65625 0)"/>
2020
+ </g>
2021
+ </g>
2022
+ <g id="text_31">
2023
+ <!-- 62.7k -->
2024
+ <g style="fill: #8a96a3" transform="translate(172.965072 357.721789) scale(0.1 -0.1)">
2025
+ <use xlink:href="#DejaVuSans-36"/>
2026
+ <use xlink:href="#DejaVuSans-32" transform="translate(63.623047 0)"/>
2027
+ <use xlink:href="#DejaVuSans-2e" transform="translate(127.246094 0)"/>
2028
+ <use xlink:href="#DejaVuSans-37" transform="translate(159.033203 0)"/>
2029
+ <use xlink:href="#DejaVuSans-6b" transform="translate(222.65625 0)"/>
2030
+ </g>
2031
+ </g>
2032
+ <g id="text_32">
2033
+ <!-- 30.7k -->
2034
+ <g style="fill: #8a96a3" transform="translate(388.082017 424.096832) scale(0.1 -0.1)">
2035
+ <use xlink:href="#DejaVuSans-33"/>
2036
+ <use xlink:href="#DejaVuSans-30" transform="translate(63.623047 0)"/>
2037
+ <use xlink:href="#DejaVuSans-2e" transform="translate(127.246094 0)"/>
2038
+ <use xlink:href="#DejaVuSans-37" transform="translate(159.033203 0)"/>
2039
+ <use xlink:href="#DejaVuSans-6b" transform="translate(222.65625 0)"/>
2040
+ </g>
2041
+ </g>
2042
+ <g id="text_33">
2043
+ <!-- 23.5k -->
2044
+ <g style="fill: #087e8b" transform="translate(105.741027 438.950165) scale(0.1 -0.1)">
2045
+ <use xlink:href="#DejaVuSans-32"/>
2046
+ <use xlink:href="#DejaVuSans-33" transform="translate(63.623047 0)"/>
2047
+ <use xlink:href="#DejaVuSans-2e" transform="translate(127.246094 0)"/>
2048
+ <use xlink:href="#DejaVuSans-35" transform="translate(159.033203 0)"/>
2049
+ <use xlink:href="#DejaVuSans-6b" transform="translate(222.65625 0)"/>
2050
+ </g>
2051
+ </g>
2052
+ <g id="text_34">
2053
+ <!-- 73.4k -->
2054
+ <g style="fill: #087e8b" transform="translate(172.965072 307.64811) scale(0.1 -0.1)">
2055
+ <use xlink:href="#DejaVuSans-37"/>
2056
+ <use xlink:href="#DejaVuSans-33" transform="translate(63.623047 0)"/>
2057
+ <use xlink:href="#DejaVuSans-2e" transform="translate(127.246094 0)"/>
2058
+ <use xlink:href="#DejaVuSans-34" transform="translate(159.033203 0)"/>
2059
+ <use xlink:href="#DejaVuSans-6b" transform="translate(222.65625 0)"/>
2060
+ </g>
2061
+ </g>
2062
+ <g id="text_35">
2063
+ <!-- 65.4k -->
2064
+ <g style="fill: #087e8b" transform="translate(388.082017 324.23817) scale(0.1 -0.1)">
2065
+ <use xlink:href="#DejaVuSans-36"/>
2066
+ <use xlink:href="#DejaVuSans-35" transform="translate(63.623047 0)"/>
2067
+ <use xlink:href="#DejaVuSans-2e" transform="translate(127.246094 0)"/>
2068
+ <use xlink:href="#DejaVuSans-34" transform="translate(159.033203 0)"/>
2069
+ <use xlink:href="#DejaVuSans-6b" transform="translate(222.65625 0)"/>
2070
+ </g>
2071
+ </g>
2072
+ <g id="text_36">
2073
+ <!-- August HTTP · same JSON endpoint -->
2074
+ <g style="fill: #263445" transform="translate(101.84274 265.030178) scale(0.132 -0.132)">
2075
+ <defs>
2076
+ <path id="DejaVuSans-Bold-48" d="M 588 4666
2077
+ L 1791 4666
2078
+ L 1791 2888
2079
+ L 3566 2888
2080
+ L 3566 4666
2081
+ L 4769 4666
2082
+ L 4769 0
2083
+ L 3566 0
2084
+ L 3566 1978
2085
+ L 1791 1978
2086
+ L 1791 0
2087
+ L 588 0
2088
+ L 588 4666
2089
+ z
2090
+ " transform="scale(0.015625)"/>
2091
+ <path id="DejaVuSans-Bold-54" d="M 31 4666
2092
+ L 4331 4666
2093
+ L 4331 3756
2094
+ L 2784 3756
2095
+ L 2784 0
2096
+ L 1581 0
2097
+ L 1581 3756
2098
+ L 31 3756
2099
+ L 31 4666
2100
+ z
2101
+ " transform="scale(0.015625)"/>
2102
+ <path id="DejaVuSans-Bold-50" d="M 588 4666
2103
+ L 2584 4666
2104
+ Q 3475 4666 3951 4270
2105
+ Q 4428 3875 4428 3144
2106
+ Q 4428 2409 3951 2014
2107
+ Q 3475 1619 2584 1619
2108
+ L 1791 1619
2109
+ L 1791 0
2110
+ L 588 0
2111
+ L 588 4666
2112
+ z
2113
+ M 1791 3794
2114
+ L 1791 2491
2115
+ L 2456 2491
2116
+ Q 2806 2491 2997 2661
2117
+ Q 3188 2831 3188 3144
2118
+ Q 3188 3456 2997 3625
2119
+ Q 2806 3794 2456 3794
2120
+ L 1791 3794
2121
+ z
2122
+ " transform="scale(0.015625)"/>
2123
+ <path id="DejaVuSans-Bold-4a" d="M 588 4666
2124
+ L 1791 4666
2125
+ L 1791 453
2126
+ Q 1791 -419 1317 -850
2127
+ Q 844 -1281 -116 -1281
2128
+ L -359 -1281
2129
+ L -359 -372
2130
+ L -172 -372
2131
+ Q 203 -372 395 -162
2132
+ Q 588 47 588 453
2133
+ L 588 4666
2134
+ z
2135
+ " transform="scale(0.015625)"/>
2136
+ <path id="DejaVuSans-Bold-53" d="M 3834 4519
2137
+ L 3834 3531
2138
+ Q 3450 3703 3084 3790
2139
+ Q 2719 3878 2394 3878
2140
+ Q 1963 3878 1756 3759
2141
+ Q 1550 3641 1550 3391
2142
+ Q 1550 3203 1689 3098
2143
+ Q 1828 2994 2194 2919
2144
+ L 2706 2816
2145
+ Q 3484 2659 3812 2340
2146
+ Q 4141 2022 4141 1434
2147
+ Q 4141 663 3683 286
2148
+ Q 3225 -91 2284 -91
2149
+ Q 1841 -91 1394 -6
2150
+ Q 947 78 500 244
2151
+ L 500 1259
2152
+ Q 947 1022 1364 901
2153
+ Q 1781 781 2169 781
2154
+ Q 2563 781 2772 912
2155
+ Q 2981 1044 2981 1288
2156
+ Q 2981 1506 2839 1625
2157
+ Q 2697 1744 2272 1838
2158
+ L 1806 1941
2159
+ Q 1106 2091 782 2419
2160
+ Q 459 2747 459 3303
2161
+ Q 459 4000 909 4375
2162
+ Q 1359 4750 2203 4750
2163
+ Q 2588 4750 2994 4692
2164
+ Q 3400 4634 3834 4519
2165
+ z
2166
+ " transform="scale(0.015625)"/>
2167
+ <path id="DejaVuSans-Bold-4f" d="M 2719 3878
2168
+ Q 2169 3878 1866 3472
2169
+ Q 1563 3066 1563 2328
2170
+ Q 1563 1594 1866 1187
2171
+ Q 2169 781 2719 781
2172
+ Q 3272 781 3575 1187
2173
+ Q 3878 1594 3878 2328
2174
+ Q 3878 3066 3575 3472
2175
+ Q 3272 3878 2719 3878
2176
+ z
2177
+ M 2719 4750
2178
+ Q 3844 4750 4481 4106
2179
+ Q 5119 3463 5119 2328
2180
+ Q 5119 1197 4481 553
2181
+ Q 3844 -91 2719 -91
2182
+ Q 1597 -91 958 553
2183
+ Q 319 1197 319 2328
2184
+ Q 319 3463 958 4106
2185
+ Q 1597 4750 2719 4750
2186
+ z
2187
+ " transform="scale(0.015625)"/>
2188
+ <path id="DejaVuSans-Bold-4e" d="M 588 4666
2189
+ L 1931 4666
2190
+ L 3628 1466
2191
+ L 3628 4666
2192
+ L 4769 4666
2193
+ L 4769 0
2194
+ L 3425 0
2195
+ L 1728 3200
2196
+ L 1728 0
2197
+ L 588 0
2198
+ L 588 4666
2199
+ z
2200
+ " transform="scale(0.015625)"/>
2201
+ <path id="DejaVuSans-Bold-64" d="M 2919 2988
2202
+ L 2919 4863
2203
+ L 4044 4863
2204
+ L 4044 0
2205
+ L 2919 0
2206
+ L 2919 506
2207
+ Q 2688 197 2409 53
2208
+ Q 2131 -91 1766 -91
2209
+ Q 1119 -91 703 423
2210
+ Q 288 938 288 1747
2211
+ Q 288 2556 703 3070
2212
+ Q 1119 3584 1766 3584
2213
+ Q 2128 3584 2408 3439
2214
+ Q 2688 3294 2919 2988
2215
+ z
2216
+ M 2181 722
2217
+ Q 2541 722 2730 984
2218
+ Q 2919 1247 2919 1747
2219
+ Q 2919 2247 2730 2509
2220
+ Q 2541 2772 2181 2772
2221
+ Q 1825 2772 1636 2509
2222
+ Q 1447 2247 1447 1747
2223
+ Q 1447 1247 1636 984
2224
+ Q 1825 722 2181 722
2225
+ z
2226
+ " transform="scale(0.015625)"/>
2227
+ </defs>
2228
+ <use xlink:href="#DejaVuSans-Bold-41"/>
2229
+ <use xlink:href="#DejaVuSans-Bold-75" transform="translate(77.392578 0)"/>
2230
+ <use xlink:href="#DejaVuSans-Bold-67" transform="translate(148.583984 0)"/>
2231
+ <use xlink:href="#DejaVuSans-Bold-75" transform="translate(220.166016 0)"/>
2232
+ <use xlink:href="#DejaVuSans-Bold-73" transform="translate(291.357422 0)"/>
2233
+ <use xlink:href="#DejaVuSans-Bold-74" transform="translate(350.878906 0)"/>
2234
+ <use xlink:href="#DejaVuSans-Bold-20" transform="translate(398.681641 0)"/>
2235
+ <use xlink:href="#DejaVuSans-Bold-48" transform="translate(433.496094 0)"/>
2236
+ <use xlink:href="#DejaVuSans-Bold-54" transform="translate(517.1875 0)"/>
2237
+ <use xlink:href="#DejaVuSans-Bold-54" transform="translate(587.650391 0)"/>
2238
+ <use xlink:href="#DejaVuSans-Bold-50" transform="translate(655.863281 0)"/>
2239
+ <use xlink:href="#DejaVuSans-Bold-20" transform="translate(729.154297 0)"/>
2240
+ <use xlink:href="#DejaVuSans-Bold-b7" transform="translate(763.96875 0)"/>
2241
+ <use xlink:href="#DejaVuSans-Bold-20" transform="translate(801.957031 0)"/>
2242
+ <use xlink:href="#DejaVuSans-Bold-73" transform="translate(836.771484 0)"/>
2243
+ <use xlink:href="#DejaVuSans-Bold-61" transform="translate(896.292969 0)"/>
2244
+ <use xlink:href="#DejaVuSans-Bold-6d" transform="translate(963.773438 0)"/>
2245
+ <use xlink:href="#DejaVuSans-Bold-65" transform="translate(1067.972656 0)"/>
2246
+ <use xlink:href="#DejaVuSans-Bold-20" transform="translate(1135.794922 0)"/>
2247
+ <use xlink:href="#DejaVuSans-Bold-4a" transform="translate(1170.609375 0)"/>
2248
+ <use xlink:href="#DejaVuSans-Bold-53" transform="translate(1207.816406 0)"/>
2249
+ <use xlink:href="#DejaVuSans-Bold-4f" transform="translate(1279.837891 0)"/>
2250
+ <use xlink:href="#DejaVuSans-Bold-4e" transform="translate(1364.847656 0)"/>
2251
+ <use xlink:href="#DejaVuSans-Bold-20" transform="translate(1448.539062 0)"/>
2252
+ <use xlink:href="#DejaVuSans-Bold-65" transform="translate(1483.353516 0)"/>
2253
+ <use xlink:href="#DejaVuSans-Bold-6e" transform="translate(1551.175781 0)"/>
2254
+ <use xlink:href="#DejaVuSans-Bold-64" transform="translate(1622.367188 0)"/>
2255
+ <use xlink:href="#DejaVuSans-Bold-70" transform="translate(1693.949219 0)"/>
2256
+ <use xlink:href="#DejaVuSans-Bold-6f" transform="translate(1765.53125 0)"/>
2257
+ <use xlink:href="#DejaVuSans-Bold-69" transform="translate(1834.232422 0)"/>
2258
+ <use xlink:href="#DejaVuSans-Bold-6e" transform="translate(1868.509766 0)"/>
2259
+ <use xlink:href="#DejaVuSans-Bold-74" transform="translate(1939.701172 0)"/>
2260
+ </g>
2261
+ </g>
2262
+ <g id="legend_2">
2263
+ <g id="line2d_34">
2264
+ <path d="M 346.991323 285.438459
2265
+ L 357.991323 285.438459
2266
+ L 368.991323 285.438459
2267
+ " style="fill: none; stroke-dasharray: 7.4,3.2; stroke-dashoffset: 0; stroke: #8a96a3; stroke-width: 2"/>
2268
+ <g>
2269
+ <use xlink:href="#mc71834a7e5" x="357.991323" y="285.438459" style="fill: #8a96a3; stroke: #8a96a3"/>
2270
+ </g>
2271
+ </g>
2272
+ <g id="text_37">
2273
+ <!-- Before -->
2274
+ <g style="fill: #263445" transform="translate(377.791323 289.288459) scale(0.11 -0.11)">
2275
+ <use xlink:href="#DejaVuSans-42"/>
2276
+ <use xlink:href="#DejaVuSans-65" transform="translate(68.603516 0)"/>
2277
+ <use xlink:href="#DejaVuSans-66" transform="translate(130.126953 0)"/>
2278
+ <use xlink:href="#DejaVuSans-6f" transform="translate(165.332031 0)"/>
2279
+ <use xlink:href="#DejaVuSans-72" transform="translate(226.513672 0)"/>
2280
+ <use xlink:href="#DejaVuSans-65" transform="translate(265.376953 0)"/>
2281
+ </g>
2282
+ </g>
2283
+ <g id="line2d_35">
2284
+ <path d="M 346.991323 301.584396
2285
+ L 357.991323 301.584396
2286
+ L 368.991323 301.584396
2287
+ " style="fill: none; stroke: #087e8b; stroke-width: 2; stroke-linecap: square"/>
2288
+ <g>
2289
+ <use xlink:href="#m97b82aa8ea" x="357.991323" y="301.584396" style="fill: #087e8b; stroke: #087e8b"/>
2290
+ </g>
2291
+ </g>
2292
+ <g id="text_38">
2293
+ <!-- Current -->
2294
+ <g style="fill: #263445" transform="translate(377.791323 305.434396) scale(0.11 -0.11)">
2295
+ <use xlink:href="#DejaVuSans-43"/>
2296
+ <use xlink:href="#DejaVuSans-75" transform="translate(69.824219 0)"/>
2297
+ <use xlink:href="#DejaVuSans-72" transform="translate(133.203125 0)"/>
2298
+ <use xlink:href="#DejaVuSans-72" transform="translate(172.566406 0)"/>
2299
+ <use xlink:href="#DejaVuSans-65" transform="translate(211.429688 0)"/>
2300
+ <use xlink:href="#DejaVuSans-6e" transform="translate(272.953125 0)"/>
2301
+ <use xlink:href="#DejaVuSans-74" transform="translate(336.332031 0)"/>
2302
+ </g>
2303
+ </g>
2304
+ </g>
2305
+ </g>
2306
+ </g>
2307
+ <defs>
2308
+ <clipPath id="p5807b480e4">
2309
+ <rect x="101.84274" y="19.030177" width="327.15702" height="197.677708"/>
2310
+ </clipPath>
2311
+ <clipPath id="p17a8581dbe">
2312
+ <rect x="101.84274" y="271.030178" width="327.15702" height="197.677707"/>
2313
+ </clipPath>
2314
+ </defs>
2315
+ </svg>