diff --git a/LICENSE b/LICENSE index 3a66dce..789b564 100644 --- a/LICENSE +++ b/LICENSE @@ -1,21 +1,21 @@ -MIT License - -Copyright (c) 2019 Louis Gombert, Guillaume Anthouard - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +MIT License + +Copyright (c) 2019 Maxence Younsi, Guillaume Anthouard + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/build.gradle b/build.gradle index 567dd08..cc874b6 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,6 @@ plugins { id "java" id "application" - id "maven" id "com.github.johnrengelman.shadow" version "5.0.0" } @@ -24,14 +23,14 @@ dependencies { implementation "org.jline:jline-reader:$jlineVersion" implementation "org.jline:jline-remote-telnet:$jlineVersion" implementation "com.github.LimeiloN:anscapes:0.6.0" + implementation "com.github.LimeiloN:dynamic-compiler:1.0.0" implementation "com.google.code.gson:gson:2.8.5" - //implementation "com.googlecode.lanterna:lanterna:3.0.1" } // Define the main class for the application mainClassName = "lorganisation.projecttbt.Game" group = "lorganisation" -version = "0.5.0" +version = "0.6.0" sourceCompatibility = 1.8 targetCompatibility = 1.8 diff --git a/diagramme_uml.pdf b/diagramme_uml.pdf new file mode 100644 index 0000000..c16b0d7 Binary files /dev/null and b/diagramme_uml.pdf differ diff --git a/diagramme_uml.svg b/diagramme_uml.svg new file mode 100644 index 0000000..33df005 --- /dev/null +++ b/diagramme_uml.svg @@ -0,0 +1,6372 @@ +<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill-opacity="1" color-rendering="auto" color-interpolation="auto" text-rendering="auto" stroke="black" stroke-linecap="square" width="2964" stroke-miterlimit="10" shape-rendering="auto" stroke-opacity="1" fill="black" stroke-dasharray="none" font-weight="normal" stroke-width="1" height="3089" font-family="'Dialog'" font-style="normal" stroke-linejoin="miter" font-size="12px" stroke-dashoffset="0" image-rendering="auto"> + <!--Generated by ySVG--> + <defs id="genericDefs"/> + <g> + <defs id="defs1"> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath1"> + <path d="M0 0 L2964 0 L2964 3089 L0 3089 L0 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath2"> + <path d="M-20 -20 L2944 -20 L2944 3069 L-20 3069 L-20 -20 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath3"> + <path d="M-1359 -2755 L1605 -2755 L1605 334 L-1359 334 L-1359 -2755 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath4"> + <path d="M0 0 L0 91 L315 91 L315 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath5"> + <path d="M0 0 L0 64 L315 64 L315 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath6"> + <path d="M0 0 L0 22 L315 22 L315 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath7"> + <path d="M0 0 L0 20 L29 20 L29 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath8"> + <path d="M0 0 L0 20 L74 20 L74 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath9"> + <path d="M0 22 L0 44 L315 44 L315 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath10"> + <path d="M0 0 L0 20 L190 20 L190 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath11"> + <path d="M0 44 L0 64 L315 64 L315 44 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath12"> + <path d="M0 0 L0 20 L315 20 L315 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath13"> + <path d="M0 0 L0 19 L61 19 L61 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath14"> + <path d="M0 0 L0 19 L250 19 L250 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath15"> + <path d="M0 0 L0 27 L315 27 L315 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath16"> + <path d="M0 0 L0 26 L315 26 L315 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath17"> + <path d="M-719 -2755 L2245 -2755 L2245 334 L-719 334 L-719 -2755 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath18"> + <path d="M0 0 L0 224 L208 224 L208 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath19"> + <path d="M0 0 L0 197 L208 197 L208 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath20"> + <path d="M0 0 L0 22 L208 22 L208 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath21"> + <path d="M0 0 L0 20 L52 20 L52 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath22"> + <path d="M0 0 L0 20 L72 20 L72 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath23"> + <path d="M0 22 L0 23 L208 23 L208 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath24"> + <path d="M0 0 L0 1 L208 1 L208 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath25"> + <path d="M0 23 L0 45 L208 45 L208 23 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath26"> + <path d="M0 0 L0 20 L26 20 L26 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath27"> + <path d="M0 0 L0 20 L73 20 L73 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath28"> + <path d="M0 45 L0 67 L208 67 L208 45 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath29"> + <path d="M0 0 L0 20 L175 20 L175 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath30"> + <path d="M0 67 L0 89 L208 89 L208 67 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath31"> + <path d="M0 0 L0 20 L105 20 L105 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath32"> + <path d="M0 89 L0 111 L208 111 L208 89 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath33"> + <path d="M0 0 L0 20 L172 20 L172 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath34"> + <path d="M0 111 L0 133 L208 133 L208 111 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath35"> + <path d="M0 0 L0 20 L99 20 L99 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath36"> + <path d="M0 133 L0 155 L208 155 L208 133 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath37"> + <path d="M0 0 L0 20 L20 20 L20 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath38"> + <path d="M0 0 L0 20 L76 20 L76 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath39"> + <path d="M0 155 L0 177 L208 177 L208 155 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath40"> + <path d="M0 0 L0 20 L81 20 L81 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath41"> + <path d="M0 177 L0 197 L208 197 L208 177 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath42"> + <path d="M0 0 L0 20 L208 20 L208 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath43"> + <path d="M0 0 L0 19 L44 19 L44 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath44"> + <path d="M0 0 L0 19 L88 19 L88 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath45"> + <path d="M0 0 L0 27 L208 27 L208 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath46"> + <path d="M0 0 L0 26 L208 26 L208 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath47"> + <path d="M-1455 -1668 L1509 -1668 L1509 1421 L-1455 1421 L-1455 -1668 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath48"> + <path d="M0 0 L0 752 L240 752 L240 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath49"> + <path d="M0 0 L0 725 L240 725 L240 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath50"> + <path d="M0 0 L0 22 L240 22 L240 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath51"> + <path d="M0 0 L0 20 L37 20 L37 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath52"> + <path d="M0 0 L0 20 L95 20 L95 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath53"> + <path d="M0 22 L0 44 L240 44 L240 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath54"> + <path d="M0 0 L0 20 L148 20 L148 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath55"> + <path d="M0 0 L0 20 L77 20 L77 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath56"> + <path d="M0 44 L0 66 L240 66 L240 44 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath57"> + <path d="M0 0 L0 20 L57 20 L57 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath58"> + <path d="M0 0 L0 20 L64 20 L64 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath59"> + <path d="M0 66 L0 88 L240 88 L240 66 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath60"> + <path d="M0 0 L0 20 L130 20 L130 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath61"> + <path d="M0 0 L0 20 L84 20 L84 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath62"> + <path d="M0 88 L0 110 L240 110 L240 88 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath63"> + <path d="M0 0 L0 20 L111 20 L111 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath64"> + <path d="M0 0 L0 20 L68 20 L68 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath65"> + <path d="M0 110 L0 132 L240 132 L240 110 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath66"> + <path d="M0 0 L0 20 L120 20 L120 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath67"> + <path d="M0 132 L0 154 L240 154 L240 132 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath68"> + <path d="M0 0 L0 20 L121 20 L121 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath69"> + <path d="M0 154 L0 176 L240 176 L240 154 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath70"> + <path d="M0 0 L0 20 L89 20 L89 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath71"> + <path d="M0 176 L0 177 L240 177 L240 176 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath72"> + <path d="M0 0 L0 1 L240 1 L240 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath73"> + <path d="M0 177 L0 199 L240 199 L240 177 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath74"> + <path d="M0 0 L0 20 L114 20 L114 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath75"> + <path d="M0 199 L0 221 L240 221 L240 199 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath76"> + <path d="M0 0 L0 20 L109 20 L109 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath77"> + <path d="M0 221 L0 243 L240 243 L240 221 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath78"> + <path d="M0 243 L0 265 L240 265 L240 243 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath79"> + <path d="M0 0 L0 20 L154 20 L154 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath80"> + <path d="M0 265 L0 287 L240 287 L240 265 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath81"> + <path d="M0 0 L0 20 L176 20 L176 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath82"> + <path d="M0 287 L0 309 L240 309 L240 287 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath83"> + <path d="M0 0 L0 20 L102 20 L102 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath84"> + <path d="M0 309 L0 331 L240 331 L240 309 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath85"> + <path d="M0 331 L0 353 L240 353 L240 331 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath86"> + <path d="M0 0 L0 20 L138 20 L138 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath87"> + <path d="M0 353 L0 375 L240 375 L240 353 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath88"> + <path d="M0 0 L0 20 L93 20 L93 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath89"> + <path d="M0 375 L0 397 L240 397 L240 375 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath90"> + <path d="M0 0 L0 20 L112 20 L112 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath91"> + <path d="M0 397 L0 419 L240 419 L240 397 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath92"> + <path d="M0 0 L0 20 L106 20 L106 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath93"> + <path d="M0 419 L0 441 L240 441 L240 419 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath94"> + <path d="M0 441 L0 463 L240 463 L240 441 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath95"> + <path d="M0 0 L0 20 L78 20 L78 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath96"> + <path d="M0 463 L0 485 L240 485 L240 463 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath97"> + <path d="M0 0 L0 20 L147 20 L147 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath98"> + <path d="M0 485 L0 507 L240 507 L240 485 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath99"> + <path d="M0 0 L0 20 L152 20 L152 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath100"> + <path d="M0 507 L0 529 L240 529 L240 507 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath101"> + <path d="M0 0 L0 20 L71 20 L71 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath102"> + <path d="M0 0 L0 20 L134 20 L134 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath103"> + <path d="M0 529 L0 551 L240 551 L240 529 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath104"> + <path d="M0 0 L0 20 L116 20 L116 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath105"> + <path d="M0 551 L0 573 L240 573 L240 551 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath106"> + <path d="M0 573 L0 595 L240 595 L240 573 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath107"> + <path d="M0 595 L0 617 L240 617 L240 595 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath108"> + <path d="M0 617 L0 639 L240 639 L240 617 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath109"> + <path d="M0 0 L0 20 L49 20 L49 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath110"> + <path d="M0 0 L0 20 L100 20 L100 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath111"> + <path d="M0 639 L0 661 L240 661 L240 639 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath112"> + <path d="M0 0 L0 20 L200 20 L200 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath113"> + <path d="M0 661 L0 683 L240 683 L240 661 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath114"> + <path d="M0 683 L0 705 L240 705 L240 683 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath115"> + <path d="M0 705 L0 725 L240 725 L240 705 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath116"> + <path d="M0 0 L0 20 L240 20 L240 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath117"> + <path d="M0 0 L0 19 L49 19 L49 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath118"> + <path d="M0 0 L0 19 L134 19 L134 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath119"> + <path d="M0 0 L0 27 L240 27 L240 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath120"> + <path d="M0 0 L0 26 L240 26 L240 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath121"> + <path d="M-974 -2755 L1990 -2755 L1990 334 L-974 334 L-974 -2755 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath122"> + <path d="M0 0 L0 224 L172 224 L172 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath123"> + <path d="M0 0 L0 197 L172 197 L172 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath124"> + <path d="M0 0 L0 22 L172 22 L172 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath125"> + <path d="M0 22 L0 44 L172 44 L172 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath126"> + <path d="M0 0 L0 20 L58 20 L58 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath127"> + <path d="M0 0 L0 20 L65 20 L65 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath128"> + <path d="M0 44 L0 66 L172 66 L172 44 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath129"> + <path d="M0 0 L0 20 L117 20 L117 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath130"> + <path d="M0 0 L0 20 L51 20 L51 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath131"> + <path d="M0 66 L0 88 L172 88 L172 66 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath132"> + <path d="M0 0 L0 20 L83 20 L83 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath133"> + <path d="M0 0 L0 20 L39 20 L39 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath134"> + <path d="M0 88 L0 89 L172 89 L172 88 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath135"> + <path d="M0 0 L0 1 L172 1 L172 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath136"> + <path d="M0 89 L0 111 L172 111 L172 89 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath137"> + <path d="M0 0 L0 20 L87 20 L87 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath138"> + <path d="M0 111 L0 133 L172 133 L172 111 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath139"> + <path d="M0 133 L0 155 L172 155 L172 133 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath140"> + <path d="M0 155 L0 177 L172 177 L172 155 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath141"> + <path d="M0 177 L0 197 L172 197 L172 177 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath142"> + <path d="M0 0 L0 19 L52 19 L52 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath143"> + <path d="M0 0 L0 19 L99 19 L99 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath144"> + <path d="M0 0 L0 27 L172 27 L172 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath145"> + <path d="M0 0 L0 26 L172 26 L172 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath146"> + <path d="M-1908 -2755 L1056 -2755 L1056 334 L-1908 334 L-1908 -2755 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath147"> + <path d="M0 0 L0 25 L132 25 L132 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath148"> + <path d="M-2471 -1668 L493 -1668 L493 1421 L-2471 1421 L-2471 -1668 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath149"> + <path d="M0 0 L0 510 L260 510 L260 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath150"> + <path d="M0 0 L0 483 L260 483 L260 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath151"> + <path d="M0 0 L0 22 L260 22 L260 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath152"> + <path d="M0 0 L0 20 L69 20 L69 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath153"> + <path d="M0 22 L0 44 L260 44 L260 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath154"> + <path d="M0 0 L0 20 L33 20 L33 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath155"> + <path d="M0 0 L0 20 L66 20 L66 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath156"> + <path d="M0 44 L0 66 L260 66 L260 44 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath157"> + <path d="M0 66 L0 88 L260 88 L260 66 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath158"> + <path d="M0 88 L0 110 L260 110 L260 88 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath159"> + <path d="M0 0 L0 20 L94 20 L94 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath160"> + <path d="M0 110 L0 111 L260 111 L260 110 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath161"> + <path d="M0 0 L0 1 L260 1 L260 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath162"> + <path d="M0 111 L0 133 L260 133 L260 111 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath163"> + <path d="M0 0 L0 20 L203 20 L203 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath164"> + <path d="M0 133 L0 155 L260 155 L260 133 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath165"> + <path d="M0 155 L0 177 L260 177 L260 155 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath166"> + <path d="M0 0 L0 20 L27 20 L27 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath167"> + <path d="M0 0 L0 20 L193 20 L193 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath168"> + <path d="M0 177 L0 199 L260 199 L260 177 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath169"> + <path d="M0 0 L0 20 L144 20 L144 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath170"> + <path d="M0 199 L0 221 L260 221 L260 199 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath171"> + <path d="M0 0 L0 20 L107 20 L107 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath172"> + <path d="M0 221 L0 243 L260 243 L260 221 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath173"> + <path d="M0 0 L0 20 L139 20 L139 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath174"> + <path d="M0 243 L0 265 L260 265 L260 243 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath175"> + <path d="M0 0 L0 20 L125 20 L125 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath176"> + <path d="M0 265 L0 287 L260 287 L260 265 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath177"> + <path d="M0 287 L0 309 L260 309 L260 287 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath178"> + <path d="M0 0 L0 20 L166 20 L166 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath179"> + <path d="M0 309 L0 331 L260 331 L260 309 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath180"> + <path d="M0 331 L0 353 L260 353 L260 331 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath181"> + <path d="M0 0 L0 20 L103 20 L103 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath182"> + <path d="M0 353 L0 375 L260 375 L260 353 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath183"> + <path d="M0 375 L0 397 L260 397 L260 375 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath184"> + <path d="M0 0 L0 20 L115 20 L115 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath185"> + <path d="M0 397 L0 419 L260 419 L260 397 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath186"> + <path d="M0 0 L0 20 L178 20 L178 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath187"> + <path d="M0 419 L0 441 L260 441 L260 419 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath188"> + <path d="M0 0 L0 20 L195 20 L195 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath189"> + <path d="M0 441 L0 463 L260 463 L260 441 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath190"> + <path d="M0 463 L0 483 L260 483 L260 463 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath191"> + <path d="M0 0 L0 20 L260 20 L260 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath192"> + <path d="M0 0 L0 19 L62 19 L62 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath193"> + <path d="M0 0 L0 19 L135 19 L135 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath194"> + <path d="M0 0 L0 27 L260 27 L260 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath195"> + <path d="M0 0 L0 26 L260 26 L260 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath196"> + <path d="M-2778 -1668 L186 -1668 L186 1421 L-2778 1421 L-2778 -1668 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath197"> + <path d="M0 0 L0 69 L157 69 L157 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath198"> + <path d="M0 0 L0 42 L157 42 L157 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath199"> + <path d="M0 0 L0 22 L157 22 L157 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath200"> + <path d="M0 22 L0 42 L157 42 L157 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath201"> + <path d="M0 0 L0 20 L157 20 L157 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath202"> + <path d="M0 0 L0 19 L37 19 L37 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath203"> + <path d="M0 0 L0 27 L157 27 L157 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath204"> + <path d="M0 0 L0 26 L157 26 L157 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath205"> + <path d="M-2216 -1668 L748 -1668 L748 1421 L-2216 1421 L-2216 -1668 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath206"> + <path d="M0 0 L0 532 L208 532 L208 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath207"> + <path d="M0 0 L0 505 L208 505 L208 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath208"> + <path d="M0 0 L0 20 L44 20 L44 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath209"> + <path d="M0 0 L0 20 L122 20 L122 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath210"> + <path d="M0 22 L0 44 L208 44 L208 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath211"> + <path d="M0 44 L0 66 L208 66 L208 44 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath212"> + <path d="M0 0 L0 20 L45 20 L45 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath213"> + <path d="M0 0 L0 20 L61 20 L61 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath214"> + <path d="M0 66 L0 88 L208 88 L208 66 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath215"> + <path d="M0 0 L0 20 L70 20 L70 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath216"> + <path d="M0 88 L0 110 L208 110 L208 88 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath217"> + <path d="M0 110 L0 132 L208 132 L208 110 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath218"> + <path d="M0 132 L0 154 L208 154 L208 132 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath219"> + <path d="M0 154 L0 176 L208 176 L208 154 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath220"> + <path d="M0 176 L0 198 L208 198 L208 176 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath221"> + <path d="M0 0 L0 20 L110 20 L110 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath222"> + <path d="M0 0 L0 20 L82 20 L82 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath223"> + <path d="M0 198 L0 199 L208 199 L208 198 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath224"> + <path d="M0 199 L0 221 L208 221 L208 199 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath225"> + <path d="M0 221 L0 243 L208 243 L208 221 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath226"> + <path d="M0 243 L0 265 L208 265 L208 243 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath227"> + <path d="M0 0 L0 20 L88 20 L88 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath228"> + <path d="M0 265 L0 287 L208 287 L208 265 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath229"> + <path d="M0 0 L0 20 L24 20 L24 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath230"> + <path d="M0 0 L0 20 L129 20 L129 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath231"> + <path d="M0 287 L0 309 L208 309 L208 287 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath232"> + <path d="M0 309 L0 331 L208 331 L208 309 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath233"> + <path d="M0 331 L0 353 L208 353 L208 331 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath234"> + <path d="M0 0 L0 20 L108 20 L108 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath235"> + <path d="M0 353 L0 375 L208 375 L208 353 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath236"> + <path d="M0 0 L0 20 L97 20 L97 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath237"> + <path d="M0 375 L0 397 L208 397 L208 375 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath238"> + <path d="M0 0 L0 20 L101 20 L101 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath239"> + <path d="M0 397 L0 419 L208 419 L208 397 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath240"> + <path d="M0 419 L0 441 L208 441 L208 419 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath241"> + <path d="M0 441 L0 463 L208 463 L208 441 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath242"> + <path d="M0 463 L0 485 L208 485 L208 463 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath243"> + <path d="M0 0 L0 20 L142 20 L142 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath244"> + <path d="M0 485 L0 505 L208 505 L208 485 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath245"> + <path d="M0 0 L0 19 L140 19 L140 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath246"> + <path d="M-2785 -1780 L179 -1780 L179 1309 L-2785 1309 L-2785 -1780 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath247"> + <path d="M0 0 L0 290 L157 290 L157 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath248"> + <path d="M0 0 L0 263 L157 263 L157 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath249"> + <path d="M0 0 L0 20 L6 20 L6 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath250"> + <path d="M0 0 L0 20 L43 20 L43 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath251"> + <path d="M0 22 L0 44 L157 44 L157 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath252"> + <path d="M0 44 L0 66 L157 66 L157 44 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath253"> + <path d="M0 0 L0 20 L41 20 L41 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath254"> + <path d="M0 66 L0 88 L157 88 L157 66 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath255"> + <path d="M0 88 L0 110 L157 110 L157 88 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath256"> + <path d="M0 0 L0 20 L35 20 L35 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath257"> + <path d="M0 110 L0 132 L157 132 L157 110 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath258"> + <path d="M0 132 L0 154 L157 154 L157 132 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath259"> + <path d="M0 0 L0 20 L31 20 L31 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath260"> + <path d="M0 154 L0 176 L157 176 L157 154 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath261"> + <path d="M0 0 L0 20 L63 20 L63 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath262"> + <path d="M0 176 L0 198 L157 198 L157 176 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath263"> + <path d="M0 0 L0 20 L98 20 L98 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath264"> + <path d="M0 198 L0 199 L157 199 L157 198 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath265"> + <path d="M0 0 L0 1 L157 1 L157 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath266"> + <path d="M0 199 L0 221 L157 221 L157 199 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath267"> + <path d="M0 0 L0 20 L90 20 L90 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath268"> + <path d="M0 221 L0 243 L157 243 L157 221 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath269"> + <path d="M0 243 L0 263 L157 263 L157 243 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath270"> + <path d="M-1959 -2246 L1005 -2246 L1005 843 L-1959 843 L-1959 -2246 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath271"> + <path d="M0 0 L0 91 L210 91 L210 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath272"> + <path d="M0 0 L0 64 L210 64 L210 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath273"> + <path d="M0 0 L0 22 L210 22 L210 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath274"> + <path d="M0 0 L0 20 L158 20 L158 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath275"> + <path d="M0 22 L0 44 L210 44 L210 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath276"> + <path d="M0 44 L0 64 L210 64 L210 44 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath277"> + <path d="M0 0 L0 20 L210 20 L210 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath278"> + <path d="M0 0 L0 19 L157 19 L157 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath279"> + <path d="M0 0 L0 27 L210 27 L210 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath280"> + <path d="M0 0 L0 26 L210 26 L210 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath281"> + <path d="M-1903 -1847 L1061 -1847 L1061 1242 L-1903 1242 L-1903 -1847 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath282"> + <path d="M0 0 L0 356 L230 356 L230 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath283"> + <path d="M0 0 L0 329 L230 329 L230 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath284"> + <path d="M0 0 L0 22 L230 22 L230 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath285"> + <path d="M0 22 L0 44 L230 44 L230 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath286"> + <path d="M0 0 L0 20 L123 20 L123 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath287"> + <path d="M0 44 L0 66 L230 66 L230 44 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath288"> + <path d="M0 66 L0 88 L230 88 L230 66 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath289"> + <path d="M0 0 L0 20 L38 20 L38 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath290"> + <path d="M0 88 L0 89 L230 89 L230 88 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath291"> + <path d="M0 0 L0 1 L230 1 L230 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath292"> + <path d="M0 89 L0 111 L230 111 L230 89 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath293"> + <path d="M0 111 L0 133 L230 133 L230 111 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath294"> + <path d="M0 133 L0 155 L230 155 L230 133 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath295"> + <path d="M0 155 L0 177 L230 177 L230 155 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath296"> + <path d="M0 0 L0 20 L126 20 L126 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath297"> + <path d="M0 177 L0 199 L230 199 L230 177 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath298"> + <path d="M0 0 L0 20 L170 20 L170 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath299"> + <path d="M0 199 L0 221 L230 221 L230 199 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath300"> + <path d="M0 221 L0 243 L230 243 L230 221 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath301"> + <path d="M0 243 L0 265 L230 265 L230 243 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath302"> + <path d="M0 265 L0 287 L230 287 L230 265 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath303"> + <path d="M0 287 L0 309 L230 309 L230 287 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath304"> + <path d="M0 309 L0 329 L230 329 L230 309 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath305"> + <path d="M0 0 L0 20 L230 20 L230 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath306"> + <path d="M0 0 L0 19 L29 19 L29 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath307"> + <path d="M0 0 L0 19 L127 19 L127 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath308"> + <path d="M0 0 L0 27 L230 27 L230 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath309"> + <path d="M0 0 L0 26 L230 26 L230 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath310"> + <path d="M-1742 -1668 L1222 -1668 L1222 1421 L-1742 1421 L-1742 -1668 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath311"> + <path d="M0 0 L0 136 L230 136 L230 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath312"> + <path d="M0 0 L0 109 L230 109 L230 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath313"> + <path d="M0 22 L0 23 L230 23 L230 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath314"> + <path d="M0 23 L0 45 L230 45 L230 23 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath315"> + <path d="M0 45 L0 67 L230 67 L230 45 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath316"> + <path d="M0 0 L0 20 L211 20 L211 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath317"> + <path d="M0 67 L0 89 L230 89 L230 67 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath318"> + <path d="M0 89 L0 109 L230 109 L230 89 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath319"> + <path d="M0 0 L0 19 L74 19 L74 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath320"> + <path d="M-439 -2755 L2525 -2755 L2525 334 L-439 334 L-439 -2755 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath321"> + <path d="M0 0 L0 224 L233 224 L233 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath322"> + <path d="M0 0 L0 197 L233 197 L233 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath323"> + <path d="M0 0 L0 22 L233 22 L233 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath324"> + <path d="M0 22 L0 44 L233 44 L233 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath325"> + <path d="M0 44 L0 66 L233 66 L233 44 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath326"> + <path d="M0 66 L0 88 L233 88 L233 66 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath327"> + <path d="M0 0 L0 20 L59 20 L59 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath328"> + <path d="M0 88 L0 110 L233 110 L233 88 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath329"> + <path d="M0 110 L0 132 L233 132 L233 110 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath330"> + <path d="M0 132 L0 154 L233 154 L233 132 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath331"> + <path d="M0 154 L0 155 L233 155 L233 154 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath332"> + <path d="M0 0 L0 1 L233 1 L233 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath333"> + <path d="M0 155 L0 177 L233 177 L233 155 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath334"> + <path d="M0 0 L0 20 L163 20 L163 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath335"> + <path d="M0 177 L0 197 L233 197 L233 177 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath336"> + <path d="M0 0 L0 20 L233 20 L233 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath337"> + <path d="M0 0 L0 19 L78 19 L78 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath338"> + <path d="M0 0 L0 27 L233 27 L233 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath339"> + <path d="M0 0 L0 26 L233 26 L233 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath340"> + <path d="M-20 -2755 L2944 -2755 L2944 334 L-20 334 L-20 -2755 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath341"> + <path d="M0 0 L0 312 L372 312 L372 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath342"> + <path d="M0 0 L0 285 L372 285 L372 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath343"> + <path d="M0 0 L0 22 L372 22 L372 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath344"> + <path d="M0 0 L0 20 L143 20 L143 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath345"> + <path d="M0 22 L0 44 L372 44 L372 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath346"> + <path d="M0 44 L0 66 L372 66 L372 44 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath347"> + <path d="M0 66 L0 88 L372 88 L372 66 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath348"> + <path d="M0 88 L0 110 L372 110 L372 88 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath349"> + <path d="M0 0 L0 20 L131 20 L131 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath350"> + <path d="M0 110 L0 132 L372 132 L372 110 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath351"> + <path d="M0 132 L0 154 L372 154 L372 132 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath352"> + <path d="M0 154 L0 176 L372 176 L372 154 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath353"> + <path d="M0 176 L0 198 L372 198 L372 176 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath354"> + <path d="M0 0 L0 20 L92 20 L92 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath355"> + <path d="M0 198 L0 220 L372 220 L372 198 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath356"> + <path d="M0 0 L0 20 L91 20 L91 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath357"> + <path d="M0 220 L0 221 L372 221 L372 220 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath358"> + <path d="M0 0 L0 1 L372 1 L372 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath359"> + <path d="M0 221 L0 243 L372 243 L372 221 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath360"> + <path d="M0 243 L0 265 L372 265 L372 243 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath361"> + <path d="M0 0 L0 20 L196 20 L196 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath362"> + <path d="M0 265 L0 285 L372 285 L372 265 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath363"> + <path d="M0 0 L0 20 L372 20 L372 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath364"> + <path d="M0 0 L0 19 L210 19 L210 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath365"> + <path d="M0 0 L0 19 L170 19 L170 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath366"> + <path d="M0 0 L0 27 L372 27 L372 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath367"> + <path d="M0 0 L0 26 L372 26 L372 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath368"> + <path d="M-1721 -2755 L1243 -2755 L1243 334 L-1721 334 L-1721 -2755 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath369"> + <path d="M0 0 L0 25 L140 25 L140 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath370"> + <path d="M-1193 -2755 L1771 -2755 L1771 334 L-1193 334 L-1193 -2755 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath371"> + <path d="M0 0 L0 158 L119 158 L119 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath372"> + <path d="M0 0 L0 131 L119 131 L119 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath373"> + <path d="M0 0 L0 22 L119 22 L119 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath374"> + <path d="M0 22 L0 44 L119 44 L119 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath375"> + <path d="M0 44 L0 66 L119 66 L119 44 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath376"> + <path d="M0 66 L0 88 L119 88 L119 66 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath377"> + <path d="M0 88 L0 110 L119 110 L119 88 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath378"> + <path d="M0 0 L0 20 L56 20 L56 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath379"> + <path d="M0 110 L0 111 L119 111 L119 110 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath380"> + <path d="M0 0 L0 1 L119 1 L119 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath381"> + <path d="M0 111 L0 131 L119 131 L119 111 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath382"> + <path d="M0 0 L0 20 L119 20 L119 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath383"> + <path d="M0 0 L0 27 L119 27 L119 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath384"> + <path d="M0 0 L0 26 L119 26 L119 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath385"> + <path d="M-1190 -1668 L1774 -1668 L1774 1421 L-1190 1421 L-1190 -1668 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath386"> + <path d="M0 0 L0 972 L218 972 L218 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath387"> + <path d="M0 0 L0 945 L218 945 L218 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath388"> + <path d="M0 0 L0 22 L218 22 L218 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath389"> + <path d="M0 22 L0 44 L218 44 L218 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath390"> + <path d="M0 44 L0 66 L218 66 L218 44 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath391"> + <path d="M0 66 L0 88 L218 88 L218 66 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath392"> + <path d="M0 88 L0 110 L218 110 L218 88 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath393"> + <path d="M0 110 L0 132 L218 132 L218 110 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath394"> + <path d="M0 132 L0 154 L218 154 L218 132 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath395"> + <path d="M0 154 L0 176 L218 176 L218 154 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath396"> + <path d="M0 176 L0 198 L218 198 L218 176 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath397"> + <path d="M0 198 L0 220 L218 220 L218 198 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath398"> + <path d="M0 220 L0 242 L218 242 L218 220 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath399"> + <path d="M0 242 L0 264 L218 264 L218 242 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath400"> + <path d="M0 0 L0 20 L75 20 L75 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath401"> + <path d="M0 264 L0 286 L218 286 L218 264 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath402"> + <path d="M0 286 L0 308 L218 308 L218 286 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath403"> + <path d="M0 308 L0 330 L218 330 L218 308 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath404"> + <path d="M0 330 L0 352 L218 352 L218 330 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath405"> + <path d="M0 352 L0 353 L218 353 L218 352 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath406"> + <path d="M0 0 L0 1 L218 1 L218 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath407"> + <path d="M0 353 L0 375 L218 375 L218 353 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath408"> + <path d="M0 375 L0 397 L218 397 L218 375 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath409"> + <path d="M0 397 L0 419 L218 419 L218 397 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath410"> + <path d="M0 0 L0 20 L128 20 L128 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath411"> + <path d="M0 419 L0 441 L218 441 L218 419 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath412"> + <path d="M0 441 L0 463 L218 463 L218 441 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath413"> + <path d="M0 463 L0 485 L218 485 L218 463 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath414"> + <path d="M0 0 L0 20 L180 20 L180 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath415"> + <path d="M0 485 L0 507 L218 507 L218 485 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath416"> + <path d="M0 507 L0 529 L218 529 L218 507 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath417"> + <path d="M0 529 L0 551 L218 551 L218 529 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath418"> + <path d="M0 0 L0 20 L104 20 L104 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath419"> + <path d="M0 551 L0 573 L218 573 L218 551 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath420"> + <path d="M0 0 L0 20 L133 20 L133 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath421"> + <path d="M0 573 L0 595 L218 595 L218 573 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath422"> + <path d="M0 0 L0 20 L156 20 L156 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath423"> + <path d="M0 595 L0 617 L218 617 L218 595 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath424"> + <path d="M0 617 L0 639 L218 639 L218 617 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath425"> + <path d="M0 639 L0 661 L218 661 L218 639 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath426"> + <path d="M0 0 L0 20 L132 20 L132 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath427"> + <path d="M0 661 L0 683 L218 683 L218 661 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath428"> + <path d="M0 683 L0 705 L218 705 L218 683 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath429"> + <path d="M0 705 L0 727 L218 727 L218 705 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath430"> + <path d="M0 727 L0 749 L218 749 L218 727 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath431"> + <path d="M0 749 L0 771 L218 771 L218 749 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath432"> + <path d="M0 0 L0 20 L113 20 L113 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath433"> + <path d="M0 771 L0 793 L218 793 L218 771 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath434"> + <path d="M0 793 L0 815 L218 815 L218 793 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath435"> + <path d="M0 815 L0 837 L218 837 L218 815 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath436"> + <path d="M0 837 L0 859 L218 859 L218 837 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath437"> + <path d="M0 859 L0 881 L218 881 L218 859 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath438"> + <path d="M0 881 L0 903 L218 903 L218 881 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath439"> + <path d="M0 903 L0 925 L218 925 L218 903 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath440"> + <path d="M0 0 L0 20 L179 20 L179 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath441"> + <path d="M0 925 L0 945 L218 945 L218 925 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath442"> + <path d="M0 0 L0 20 L218 20 L218 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath443"> + <path d="M0 0 L0 19 L103 19 L103 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath444"> + <path d="M0 0 L0 19 L125 19 L125 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath445"> + <path d="M0 0 L0 27 L218 27 L218 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath446"> + <path d="M0 0 L0 26 L218 26 L218 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath447"> + <path d="M-173 -2386 L2791 -2386 L2791 703 L-173 703 L-173 -2386 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath448"> + <path d="M0 0 L0 47 L335 47 L335 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath449"> + <path d="M0 0 L0 20 L335 20 L335 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath450"> + <path d="M0 0 L0 19 L320 19 L320 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath451"> + <path d="M0 0 L0 27 L335 27 L335 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath452"> + <path d="M0 0 L0 26 L335 26 L335 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath453"> + <path d="M-551 -2374 L2413 -2374 L2413 715 L-551 715 L-551 -2374 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath454"> + <path d="M0 0 L0 334 L335 334 L335 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath455"> + <path d="M0 0 L0 307 L335 307 L335 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath456"> + <path d="M0 0 L0 22 L335 22 L335 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath457"> + <path d="M0 22 L0 44 L335 44 L335 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath458"> + <path d="M0 44 L0 66 L335 66 L335 44 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath459"> + <path d="M0 0 L0 20 L34 20 L34 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath460"> + <path d="M0 66 L0 88 L335 88 L335 66 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath461"> + <path d="M0 0 L0 20 L53 20 L53 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath462"> + <path d="M0 88 L0 110 L335 110 L335 88 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath463"> + <path d="M0 0 L0 20 L67 20 L67 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath464"> + <path d="M0 110 L0 132 L335 132 L335 110 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath465"> + <path d="M0 132 L0 154 L335 154 L335 132 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath466"> + <path d="M0 154 L0 176 L335 176 L335 154 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath467"> + <path d="M0 0 L0 20 L85 20 L85 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath468"> + <path d="M0 176 L0 198 L335 198 L335 176 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath469"> + <path d="M0 198 L0 220 L335 220 L335 198 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath470"> + <path d="M0 0 L0 20 L118 20 L118 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath471"> + <path d="M0 220 L0 221 L335 221 L335 220 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath472"> + <path d="M0 0 L0 1 L335 1 L335 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath473"> + <path d="M0 221 L0 243 L335 243 L335 221 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath474"> + <path d="M0 0 L0 20 L320 20 L320 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath475"> + <path d="M0 243 L0 265 L335 265 L335 243 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath476"> + <path d="M0 265 L0 287 L335 287 L335 265 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath477"> + <path d="M0 287 L0 307 L335 307 L335 287 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath478"> + <path d="M0 0 L0 19 L20 19 L20 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath479"> + <path d="M0 0 L0 19 L172 19 L172 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath480"> + <path d="M-792 -2050 L2172 -2050 L2172 1039 L-792 1039 L-792 -2050 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath481"> + <path d="M0 0 L0 268 L351 268 L351 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath482"> + <path d="M0 0 L0 241 L351 241 L351 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath483"> + <path d="M0 0 L0 22 L351 22 L351 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath484"> + <path d="M0 0 L0 20 L86 20 L86 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath485"> + <path d="M0 22 L0 44 L351 44 L351 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath486"> + <path d="M0 44 L0 66 L351 66 L351 44 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath487"> + <path d="M0 0 L0 20 L159 20 L159 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath488"> + <path d="M0 66 L0 88 L351 88 L351 66 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath489"> + <path d="M0 88 L0 110 L351 110 L351 88 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath490"> + <path d="M0 110 L0 132 L351 132 L351 110 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath491"> + <path d="M0 132 L0 154 L351 154 L351 132 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath492"> + <path d="M0 154 L0 176 L351 176 L351 154 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath493"> + <path d="M0 176 L0 177 L351 177 L351 176 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath494"> + <path d="M0 0 L0 1 L351 1 L351 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath495"> + <path d="M0 177 L0 199 L351 199 L351 177 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath496"> + <path d="M0 199 L0 221 L351 221 L351 199 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath497"> + <path d="M0 221 L0 241 L351 241 L351 221 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath498"> + <path d="M0 0 L0 20 L351 20 L351 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath499"> + <path d="M0 0 L0 19 L120 19 L120 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath500"> + <path d="M0 0 L0 27 L351 27 L351 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath501"> + <path d="M0 0 L0 26 L351 26 L351 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath502"> + <path d="M-663 -1803 L2301 -1803 L2301 1286 L-663 1286 L-663 -1803 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath503"> + <path d="M0 0 L0 136 L335 136 L335 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath504"> + <path d="M0 0 L0 109 L335 109 L335 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath505"> + <path d="M0 88 L0 89 L335 89 L335 88 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath506"> + <path d="M0 89 L0 109 L335 109 L335 89 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath507"> + <path d="M-99 -1814 L2865 -1814 L2865 1275 L-99 1275 L-99 -1814 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath508"> + <path d="M0 0 L0 114 L339 114 L339 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath509"> + <path d="M0 0 L0 87 L339 87 L339 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath510"> + <path d="M0 0 L0 22 L339 22 L339 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath511"> + <path d="M0 22 L0 44 L339 44 L339 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath512"> + <path d="M0 44 L0 66 L339 66 L339 44 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath513"> + <path d="M0 66 L0 67 L339 67 L339 66 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath514"> + <path d="M0 0 L0 1 L339 1 L339 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath515"> + <path d="M0 67 L0 87 L339 87 L339 67 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath516"> + <path d="M0 0 L0 20 L339 20 L339 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath517"> + <path d="M0 0 L0 27 L339 27 L339 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath518"> + <path d="M0 0 L0 26 L339 26 L339 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath519"> + <path d="M-402 -1982 L2562 -1982 L2562 1107 L-402 1107 L-402 -1982 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath520"> + <path d="M0 66 L0 67 L335 67 L335 66 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath521"> + <path d="M0 67 L0 89 L335 89 L335 67 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath522"> + <path d="M0 89 L0 111 L335 111 L335 89 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath523"> + <path d="M0 111 L0 133 L335 133 L335 111 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath524"> + <path d="M0 0 L0 20 L145 20 L145 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath525"> + <path d="M0 133 L0 155 L335 155 L335 133 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath526"> + <path d="M0 155 L0 177 L335 177 L335 155 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath527"> + <path d="M0 177 L0 199 L335 199 L335 177 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath528"> + <path d="M0 199 L0 221 L335 221 L335 199 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath529"> + <path d="M-373 -1668 L2591 -1668 L2591 1421 L-373 1421 L-373 -1668 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath530"> + <path d="M0 0 L0 92 L335 92 L335 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath531"> + <path d="M0 0 L0 65 L335 65 L335 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath532"> + <path d="M0 44 L0 45 L335 45 L335 44 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath533"> + <path d="M0 45 L0 65 L335 65 L335 45 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath534"> + <path d="M-20 -2138 L2944 -2138 L2944 951 L-20 951 L-20 -2138 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath535"> + <path d="M0 0 L0 70 L339 70 L339 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath536"> + <path d="M0 0 L0 43 L339 43 L339 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath537"> + <path d="M0 22 L0 23 L339 23 L339 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath538"> + <path d="M0 23 L0 43 L339 43 L339 23 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath539"> + <path d="M-752 -430 L2212 -430 L2212 2659 L-752 2659 L-752 -430 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath540"> + <path d="M0 0 L0 554 L318 554 L318 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath541"> + <path d="M0 0 L0 527 L318 527 L318 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath542"> + <path d="M0 0 L0 22 L318 22 L318 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath543"> + <path d="M0 22 L0 44 L318 44 L318 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath544"> + <path d="M0 44 L0 66 L318 66 L318 44 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath545"> + <path d="M0 66 L0 88 L318 88 L318 66 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath546"> + <path d="M0 88 L0 110 L318 110 L318 88 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath547"> + <path d="M0 110 L0 132 L318 132 L318 110 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath548"> + <path d="M0 0 L0 20 L60 20 L60 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath549"> + <path d="M0 132 L0 154 L318 154 L318 132 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath550"> + <path d="M0 0 L0 20 L40 20 L40 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath551"> + <path d="M0 154 L0 176 L318 176 L318 154 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath552"> + <path d="M0 176 L0 198 L318 198 L318 176 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath553"> + <path d="M0 198 L0 199 L318 199 L318 198 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath554"> + <path d="M0 0 L0 1 L318 1 L318 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath555"> + <path d="M0 199 L0 221 L318 221 L318 199 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath556"> + <path d="M0 221 L0 243 L318 243 L318 221 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath557"> + <path d="M0 0 L0 20 L168 20 L168 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath558"> + <path d="M0 243 L0 265 L318 265 L318 243 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath559"> + <path d="M0 265 L0 287 L318 287 L318 265 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath560"> + <path d="M0 287 L0 309 L318 309 L318 287 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath561"> + <path d="M0 0 L0 20 L140 20 L140 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath562"> + <path d="M0 309 L0 331 L318 331 L318 309 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath563"> + <path d="M0 331 L0 353 L318 353 L318 331 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath564"> + <path d="M0 353 L0 375 L318 375 L318 353 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath565"> + <path d="M0 0 L0 20 L182 20 L182 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath566"> + <path d="M0 375 L0 397 L318 397 L318 375 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath567"> + <path d="M0 0 L0 20 L254 20 L254 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath568"> + <path d="M0 397 L0 419 L318 419 L318 397 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath569"> + <path d="M0 0 L0 20 L228 20 L228 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath570"> + <path d="M0 419 L0 441 L318 441 L318 419 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath571"> + <path d="M0 441 L0 463 L318 463 L318 441 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath572"> + <path d="M0 463 L0 485 L318 485 L318 463 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath573"> + <path d="M0 0 L0 20 L153 20 L153 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath574"> + <path d="M0 485 L0 507 L318 507 L318 485 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath575"> + <path d="M0 507 L0 527 L318 527 L318 507 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath576"> + <path d="M0 0 L0 20 L318 20 L318 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath577"> + <path d="M0 0 L0 19 L192 19 L192 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath578"> + <path d="M0 0 L0 27 L318 27 L318 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath579"> + <path d="M0 0 L0 26 L318 26 L318 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath580"> + <path d="M-1480 -1397 L1484 -1397 L1484 1692 L-1480 1692 L-1480 -1397 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath581"> + <path d="M0 0 L0 224 L236 224 L236 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath582"> + <path d="M0 0 L0 197 L236 197 L236 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath583"> + <path d="M0 0 L0 22 L236 22 L236 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath584"> + <path d="M0 0 L0 20 L135 20 L135 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath585"> + <path d="M0 0 L0 20 L80 20 L80 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath586"> + <path d="M0 22 L0 44 L236 44 L236 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath587"> + <path d="M0 44 L0 45 L236 45 L236 44 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath588"> + <path d="M0 0 L0 1 L236 1 L236 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath589"> + <path d="M0 45 L0 67 L236 67 L236 45 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath590"> + <path d="M0 67 L0 89 L236 89 L236 67 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath591"> + <path d="M0 89 L0 111 L236 111 L236 89 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath592"> + <path d="M0 0 L0 20 L177 20 L177 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath593"> + <path d="M0 111 L0 133 L236 133 L236 111 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath594"> + <path d="M0 133 L0 155 L236 155 L236 133 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath595"> + <path d="M0 0 L0 20 L164 20 L164 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath596"> + <path d="M0 155 L0 177 L236 177 L236 155 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath597"> + <path d="M0 177 L0 197 L236 197 L236 177 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath598"> + <path d="M0 0 L0 20 L236 20 L236 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath599"> + <path d="M0 0 L0 19 L121 19 L121 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath600"> + <path d="M0 0 L0 27 L236 27 L236 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath601"> + <path d="M0 0 L0 26 L236 26 L236 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath602"> + <path d="M-1551 -276 L1413 -276 L1413 2813 L-1551 2813 L-1551 -276 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath603"> + <path d="M0 0 L0 114 L150 114 L150 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath604"> + <path d="M0 0 L0 87 L150 87 L150 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath605"> + <path d="M0 0 L0 22 L150 22 L150 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath606"> + <path d="M0 22 L0 44 L150 44 L150 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath607"> + <path d="M0 44 L0 45 L150 45 L150 44 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath608"> + <path d="M0 0 L0 1 L150 1 L150 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath609"> + <path d="M0 45 L0 67 L150 67 L150 45 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath610"> + <path d="M0 67 L0 87 L150 87 L150 67 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath611"> + <path d="M0 0 L0 20 L150 20 L150 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath612"> + <path d="M0 0 L0 27 L150 27 L150 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath613"> + <path d="M0 0 L0 26 L150 26 L150 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath614"> + <path d="M-1713 -934 L1251 -934 L1251 2155 L-1713 2155 L-1713 -934 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath615"> + <path d="M0 0 L0 224 L203 224 L203 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath616"> + <path d="M0 0 L0 197 L203 197 L203 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath617"> + <path d="M0 0 L0 22 L203 22 L203 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath618"> + <path d="M0 22 L0 44 L203 44 L203 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath619"> + <path d="M0 44 L0 66 L203 66 L203 44 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath620"> + <path d="M0 66 L0 88 L203 88 L203 66 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath621"> + <path d="M0 88 L0 110 L203 110 L203 88 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath622"> + <path d="M0 110 L0 111 L203 111 L203 110 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath623"> + <path d="M0 0 L0 1 L203 1 L203 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath624"> + <path d="M0 111 L0 133 L203 133 L203 111 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath625"> + <path d="M0 133 L0 155 L203 155 L203 133 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath626"> + <path d="M0 155 L0 177 L203 177 L203 155 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath627"> + <path d="M0 177 L0 197 L203 197 L203 177 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath628"> + <path d="M0 0 L0 19 L123 19 L123 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath629"> + <path d="M0 0 L0 27 L203 27 L203 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath630"> + <path d="M0 0 L0 26 L203 26 L203 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath631"> + <path d="M-1752 -469 L1212 -469 L1212 2620 L-1752 2620 L-1752 -469 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath632"> + <path d="M0 0 L0 47 L154 47 L154 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath633"> + <path d="M0 0 L0 27 L154 27 L154 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath634"> + <path d="M0 0 L0 26 L154 26 L154 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath635"> + <path d="M-1717 -681 L1247 -681 L1247 2408 L-1717 2408 L-1717 -681 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath636"> + <path d="M0 0 L0 158 L172 158 L172 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath637"> + <path d="M0 0 L0 131 L172 131 L172 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath638"> + <path d="M0 22 L0 23 L172 23 L172 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath639"> + <path d="M0 23 L0 45 L172 45 L172 23 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath640"> + <path d="M0 45 L0 67 L172 67 L172 45 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath641"> + <path d="M0 67 L0 89 L172 89 L172 67 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath642"> + <path d="M0 111 L0 131 L172 131 L172 111 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath643"> + <path d="M0 0 L0 19 L151 19 L151 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath644"> + <path d="M-1235 -1199 L1729 -1199 L1729 1890 L-1235 1890 L-1235 -1199 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath645"> + <path d="M0 0 L0 290 L199 290 L199 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath646"> + <path d="M0 0 L0 263 L199 263 L199 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath647"> + <path d="M0 0 L0 22 L199 22 L199 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath648"> + <path d="M0 22 L0 44 L199 44 L199 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath649"> + <path d="M0 44 L0 66 L199 66 L199 44 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath650"> + <path d="M0 66 L0 88 L199 88 L199 66 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath651"> + <path d="M0 88 L0 110 L199 110 L199 88 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath652"> + <path d="M0 110 L0 132 L199 132 L199 110 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath653"> + <path d="M0 132 L0 133 L199 133 L199 132 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath654"> + <path d="M0 0 L0 1 L199 1 L199 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath655"> + <path d="M0 133 L0 155 L199 155 L199 133 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath656"> + <path d="M0 155 L0 177 L199 177 L199 155 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath657"> + <path d="M0 177 L0 199 L199 199 L199 177 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath658"> + <path d="M0 0 L0 20 L136 20 L136 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath659"> + <path d="M0 199 L0 221 L199 221 L199 199 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath660"> + <path d="M0 221 L0 243 L199 243 L199 221 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath661"> + <path d="M0 243 L0 263 L199 263 L199 243 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath662"> + <path d="M0 0 L0 20 L199 20 L199 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath663"> + <path d="M0 0 L0 19 L43 19 L43 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath664"> + <path d="M0 0 L0 19 L94 19 L94 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath665"> + <path d="M0 0 L0 27 L199 27 L199 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath666"> + <path d="M0 0 L0 26 L199 26 L199 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath667"> + <path d="M-375 -760 L2589 -760 L2589 2329 L-375 2329 L-375 -760 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath668"> + <path d="M0 0 L0 92 L264 92 L264 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath669"> + <path d="M0 0 L0 65 L264 65 L264 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath670"> + <path d="M0 0 L0 22 L264 22 L264 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath671"> + <path d="M0 22 L0 23 L264 23 L264 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath672"> + <path d="M0 0 L0 1 L264 1 L264 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath673"> + <path d="M0 23 L0 45 L264 45 L264 23 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath674"> + <path d="M0 45 L0 65 L264 65 L264 45 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath675"> + <path d="M0 0 L0 20 L264 20 L264 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath676"> + <path d="M0 0 L0 19 L245 19 L245 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath677"> + <path d="M0 0 L0 27 L264 27 L264 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath678"> + <path d="M0 0 L0 26 L264 26 L264 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath679"> + <path d="M-1577 -20 L1387 -20 L1387 3069 L-1577 3069 L-1577 -20 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath680"> + <path d="M0 0 L0 158 L170 158 L170 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath681"> + <path d="M0 0 L0 131 L170 131 L170 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath682"> + <path d="M0 0 L0 22 L170 22 L170 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath683"> + <path d="M0 22 L0 44 L170 44 L170 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath684"> + <path d="M0 44 L0 66 L170 66 L170 44 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath685"> + <path d="M0 66 L0 67 L170 67 L170 66 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath686"> + <path d="M0 0 L0 1 L170 1 L170 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath687"> + <path d="M0 67 L0 89 L170 89 L170 67 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath688"> + <path d="M0 89 L0 111 L170 111 L170 89 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath689"> + <path d="M0 111 L0 131 L170 131 L170 111 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath690"> + <path d="M0 0 L0 19 L93 19 L93 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath691"> + <path d="M0 0 L0 27 L170 27 L170 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath692"> + <path d="M0 0 L0 26 L170 26 L170 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath693"> + <path d="M-1557 -1212 L1407 -1212 L1407 1877 L-1557 1877 L-1557 -1212 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath694"> + <path d="M0 0 L0 70 L132 70 L132 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath695"> + <path d="M0 0 L0 43 L132 43 L132 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath696"> + <path d="M0 0 L0 22 L132 22 L132 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath697"> + <path d="M0 0 L0 20 L12 20 L12 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath698"> + <path d="M0 22 L0 23 L132 23 L132 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath699"> + <path d="M0 0 L0 1 L132 1 L132 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath700"> + <path d="M0 23 L0 43 L132 43 L132 23 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath701"> + <path d="M0 0 L0 19 L12 19 L12 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath702"> + <path d="M0 0 L0 27 L132 27 L132 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath703"> + <path d="M0 0 L0 26 L132 26 L132 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath704"> + <path d="M-1759 -1259 L1205 -1259 L1205 1830 L-1759 1830 L-1759 -1259 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath705"> + <path d="M0 0 L0 158 L228 158 L228 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath706"> + <path d="M0 0 L0 131 L228 131 L228 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath707"> + <path d="M0 0 L0 22 L228 22 L228 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath708"> + <path d="M0 22 L0 44 L228 44 L228 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath709"> + <path d="M0 44 L0 45 L228 45 L228 44 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath710"> + <path d="M0 0 L0 1 L228 1 L228 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath711"> + <path d="M0 45 L0 67 L228 67 L228 45 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath712"> + <path d="M0 0 L0 20 L213 20 L213 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath713"> + <path d="M0 67 L0 89 L228 89 L228 67 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath714"> + <path d="M0 89 L0 111 L228 111 L228 89 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath715"> + <path d="M0 111 L0 131 L228 131 L228 111 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath716"> + <path d="M0 0 L0 19 L40 19 L40 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath717"> + <path d="M0 0 L0 27 L228 27 L228 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath718"> + <path d="M0 0 L0 26 L228 26 L228 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath719"> + <path d="M-1342 -624 L1622 -624 L1622 2465 L-1342 2465 L-1342 -624 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath720"> + <path d="M0 0 L0 532 L203 532 L203 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath721"> + <path d="M0 0 L0 505 L203 505 L203 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath722"> + <path d="M0 110 L0 132 L203 132 L203 110 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath723"> + <path d="M0 132 L0 133 L203 133 L203 132 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath724"> + <path d="M0 177 L0 199 L203 199 L203 177 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath725"> + <path d="M0 199 L0 221 L203 221 L203 199 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath726"> + <path d="M0 221 L0 243 L203 243 L203 221 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath727"> + <path d="M0 243 L0 265 L203 265 L203 243 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath728"> + <path d="M0 265 L0 287 L203 287 L203 265 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath729"> + <path d="M0 287 L0 309 L203 309 L203 287 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath730"> + <path d="M0 309 L0 331 L203 331 L203 309 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath731"> + <path d="M0 331 L0 353 L203 353 L203 331 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath732"> + <path d="M0 353 L0 375 L203 375 L203 353 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath733"> + <path d="M0 375 L0 397 L203 397 L203 375 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath734"> + <path d="M0 397 L0 419 L203 419 L203 397 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath735"> + <path d="M0 419 L0 441 L203 441 L203 419 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath736"> + <path d="M0 441 L0 463 L203 463 L203 441 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath737"> + <path d="M0 463 L0 485 L203 485 L203 463 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath738"> + <path d="M0 485 L0 505 L203 505 L203 485 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath739"> + <path d="M0 0 L0 19 L164 19 L164 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath740"> + <path d="M-1035 -1027 L1929 -1027 L1929 2062 L-1035 2062 L-1035 -1027 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath741"> + <path d="M0 0 L0 180 L148 180 L148 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath742"> + <path d="M0 0 L0 153 L148 153 L148 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath743"> + <path d="M0 0 L0 22 L148 22 L148 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath744"> + <path d="M0 0 L0 20 L30 20 L30 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath745"> + <path d="M0 22 L0 44 L148 44 L148 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath746"> + <path d="M0 44 L0 66 L148 66 L148 44 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath747"> + <path d="M0 66 L0 88 L148 88 L148 66 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath748"> + <path d="M0 88 L0 89 L148 89 L148 88 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath749"> + <path d="M0 0 L0 1 L148 1 L148 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath750"> + <path d="M0 89 L0 111 L148 111 L148 89 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath751"> + <path d="M0 111 L0 133 L148 133 L148 111 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath752"> + <path d="M0 0 L0 20 L127 20 L127 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath753"> + <path d="M0 133 L0 153 L148 153 L148 133 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath754"> + <path d="M0 0 L0 27 L148 27 L148 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath755"> + <path d="M0 0 L0 26 L148 26 L148 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath756"> + <path d="M-1225 -357 L1739 -357 L1739 2732 L-1225 2732 L-1225 -357 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath757"> + <path d="M0 44 L0 45 L203 45 L203 44 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath758"> + <path d="M0 45 L0 67 L203 67 L203 45 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath759"> + <path d="M0 67 L0 89 L203 89 L203 67 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath760"> + <path d="M0 89 L0 111 L203 111 L203 89 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath761"> + <path d="M-20 -690 L2944 -690 L2944 2399 L-20 2399 L-20 -690 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath762"> + <path d="M0 0 L0 114 L312 114 L312 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath763"> + <path d="M0 0 L0 87 L312 87 L312 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath764"> + <path d="M0 0 L0 22 L312 22 L312 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath765"> + <path d="M0 22 L0 23 L312 23 L312 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath766"> + <path d="M0 0 L0 1 L312 1 L312 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath767"> + <path d="M0 23 L0 45 L312 45 L312 23 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath768"> + <path d="M0 45 L0 67 L312 67 L312 45 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath769"> + <path d="M0 0 L0 20 L245 20 L245 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath770"> + <path d="M0 67 L0 87 L312 87 L312 67 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath771"> + <path d="M0 0 L0 20 L312 20 L312 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath772"> + <path d="M0 0 L0 19 L69 19 L69 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath773"> + <path d="M0 0 L0 19 L253 19 L253 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath774"> + <path d="M0 0 L0 27 L312 27 L312 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath775"> + <path d="M0 0 L0 26 L312 26 L312 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath776"> + <path d="M-1506 -488 L1458 -488 L1458 2601 L-1506 2601 L-1506 -488 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath777"> + <path d="M0 0 L0 92 L203 92 L203 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath778"> + <path d="M0 0 L0 65 L203 65 L203 0 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath779"> + <path d="M0 22 L0 23 L203 23 L203 22 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath780"> + <path d="M0 23 L0 45 L203 45 L203 23 Z"/> + </clipPath> + <clipPath clipPathUnits="userSpaceOnUse" id="clipPath781"> + <path d="M0 45 L0 65 L203 65 L203 45 Z"/> + </clipPath> + </defs> + <g fill="rgb(33,33,33)" transform="translate(20,20)" stroke="rgb(33,33,33)"> + <rect x="-20" width="2964" height="3089" y="-20" clip-path="url(#clipPath2)" stroke="none"/> + </g> + <g fill="rgb(64,64,64)" stroke="rgb(64,64,64)"> + <path d="M11 3077 L11 3068 L13.9688 3068 Q14.75 3068 15.1562 3068.0781 Q15.7344 3068.1875 16.125 3068.4766 Q16.5156 3068.7656 16.7578 3069.2891 Q17 3069.8125 17 3070.4375 Q17 3071.5156 16.3594 3072.2578 Q15.7188 3073 14.0312 3073 L12 3073 L12 3077 L11 3077 ZM12 3072 L14.0938 3072 Q15.125 3072 15.5625 3071.6016 Q16 3071.2031 16 3070.4688 Q16 3069.9375 15.7422 3069.5625 Q15.4844 3069.1875 15.0625 3069.0781 Q14.7969 3069 14.0625 3069 L12 3069 L12 3072 ZM19.0039 3073.5 Q19.0039 3071.6406 19.832 3070.75 Q20.5195 3070 21.5039 3070 Q22.6133 3070 23.3086 3070.9062 Q24.0039 3071.8125 24.0039 3073.4062 Q24.0039 3074.7031 23.6914 3075.4453 Q23.3789 3076.1875 22.793 3076.5938 Q22.207 3077 21.5039 3077 Q20.3789 3077 19.6914 3076.1016 Q19.0039 3075.2031 19.0039 3073.5 ZM20.0039 3073.5 Q20.0039 3074.75 20.1836 3075.375 Q20.3633 3076 21.5039 3076 Q22.5195 3076 22.7617 3075.375 Q23.0039 3074.75 23.0039 3073.4531 Q23.0039 3072.25 22.7617 3071.625 Q22.5195 3071 21.5039 3071 Q20.4883 3071 20.2461 3071.625 Q20.0039 3072.25 20.0039 3073.5 ZM26.6777 3077 L24.6777 3070 L25.6777 3070 L26.8496 3074.3594 L27.1621 3075.5469 Q27.1777 3075.4531 27.4746 3074.4219 L28.6152 3070 L29.7715 3070 L30.8809 3074.2812 L31.1777 3075.3906 L31.4277 3074.4531 L32.6777 3070 L33.6777 3070 L31.7246 3077 L30.584 3077 L29.584 3073.1719 L29.1777 3071.6094 L27.6777 3077 L26.6777 3077 ZM38.3281 3075 L39.3125 3075 Q39.0938 3075.9531 38.4844 3076.4766 Q37.875 3077 36.9219 3077 Q35.7344 3077 35.0391 3076.0938 Q34.3438 3075.1875 34.3438 3073.5625 Q34.3438 3071.8594 35.0469 3070.9297 Q35.75 3070 36.875 3070 Q37.9688 3070 38.6562 3070.9688 Q39.3438 3071.9375 39.3438 3073.6875 Q39.3438 3073.7812 39.3438 3074 L35.3438 3074 Q35.3906 3074.9688 35.3984 3075.4844 Q35.4062 3076 36.9375 3076 Q37.4219 3076 37.7734 3075.7578 Q38.125 3075.5156 38.3281 3075 ZM35.3438 3073 L38.3438 3073 Q38.2812 3072.125 38.375 3071.6875 Q37.5625 3071 36.875 3071 Q35.375 3071 35.3828 3071.5469 Q35.3906 3072.0938 35.3438 3073 ZM41.0176 3077 L41.0176 3070 L42.0176 3070 L42.0176 3071 Q42.3145 3070.8906 42.5723 3070.4453 Q42.8301 3070 43.127 3070 Q43.5645 3070 44.0176 3070.2031 L43.7207 3071.1719 Q43.3926 3071 43.0488 3071 Q42.752 3071 42.5176 3071.2344 Q42.2832 3071.4688 42.1738 3071.8906 Q42.0176 3072.5312 42.0176 3073.2969 L42.0176 3077 L41.0176 3077 ZM48.998 3075 L49.9824 3075 Q49.7637 3075.9531 49.1543 3076.4766 Q48.5449 3077 47.5918 3077 Q46.4043 3077 45.709 3076.0938 Q45.0137 3075.1875 45.0137 3073.5625 Q45.0137 3071.8594 45.7168 3070.9297 Q46.4199 3070 47.5449 3070 Q48.6387 3070 49.3262 3070.9688 Q50.0137 3071.9375 50.0137 3073.6875 Q50.0137 3073.7812 50.0137 3074 L46.0137 3074 Q46.0605 3074.9688 46.0684 3075.4844 Q46.0762 3076 47.6074 3076 Q48.0918 3076 48.4434 3075.7578 Q48.7949 3075.5156 48.998 3075 ZM46.0137 3073 L49.0137 3073 Q48.9512 3072.125 49.0449 3071.6875 Q48.2324 3071 47.5449 3071 Q46.0449 3071 46.0527 3071.5469 Q46.0605 3072.0938 46.0137 3073 ZM55.6875 3077 L55.6875 3075.9375 Q55.1562 3076.625 54.1094 3077 Q53.4375 3077 52.875 3076.5547 Q52.3125 3076.1094 52 3075.3203 Q51.6875 3074.5312 51.6875 3073.5 Q51.6875 3072.5 51.9766 3071.6875 Q52.2656 3070.875 52.8359 3070.4375 Q53.4062 3070 54.1094 3070 Q54.625 3070 55.0312 3070.4609 Q55.4375 3070.9219 55.6875 3070.9844 L55.6875 3068 L56.6875 3068 L56.6875 3077 L55.6875 3077 ZM52.6875 3073.5 Q52.6875 3074.75 52.9531 3075.375 Q53.2188 3076 54.2031 3076 Q54.8281 3076 55.2578 3075.4062 Q55.6875 3074.8125 55.6875 3073.5938 Q55.6875 3072.25 55.25 3071.625 Q54.8125 3071 54.1562 3071 Q53.1562 3071 52.9219 3071.6016 Q52.6875 3072.2031 52.6875 3073.5 ZM62.6953 3077 L61.6953 3077 L61.6953 3068 L62.6953 3068 L62.6953 3070.9688 Q63.3047 3071 64.2734 3070 Q64.7891 3070 65.2656 3070.25 Q65.7422 3070.5 66.0469 3070.9531 Q66.3516 3071.4062 66.5234 3072.0391 Q66.6953 3072.6719 66.6953 3073.4062 Q66.6953 3075.125 65.9766 3076.0625 Q65.2578 3077 64.2578 3077 Q63.2578 3076 62.6953 3075.9375 L62.6953 3077 ZM62.6953 3073.4531 Q62.6953 3074.625 63.3359 3075.1406 Q63.4141 3076 64.1797 3076 Q65.4141 3076 65.5547 3075.3672 Q65.6953 3074.7344 65.6953 3073.5 Q65.6953 3072.2188 65.5781 3071.6094 Q65.4609 3071 64.2109 3071 Q63.6016 3071 63.1484 3071.6328 Q62.6953 3072.2656 62.6953 3073.4531 ZM68.3691 3078.875 L68.3691 3077.9062 Q68.541 3078 68.6816 3078 Q68.8691 3078 68.9785 3077.875 Q69.0879 3077.75 69.1504 3077.5312 Q69.1973 3077.375 69.3223 3076.7188 Q69.3379 3076.6406 69.3691 3076.4531 L67.3691 3070 L68.3535 3070 L69.4785 3073.7656 Q69.6973 3074.4844 69.8691 3075.2812 Q69.9785 3074.9062 70.1816 3074.2031 L71.3691 3070 L72.3535 3070 L70.3223 3077.0938 Q70.0566 3077.9062 69.9004 3078.2031 Q69.7129 3078.6094 69.4551 3078.8047 Q69.1973 3079 68.8535 3079 Q68.6348 3079 68.3691 3078.875 ZM77.7031 3078.875 L77.7031 3077.9062 Q77.875 3078 78.0156 3078 Q78.2031 3078 78.3125 3077.875 Q78.4219 3077.75 78.4844 3077.5312 Q78.5312 3077.375 78.6562 3076.7188 Q78.6719 3076.6406 78.7031 3076.4531 L76.7031 3070 L77.6875 3070 L78.8125 3073.7656 Q79.0312 3074.4844 79.2031 3075.2812 Q79.3125 3074.9062 79.5156 3074.2031 L80.7031 3070 L81.6875 3070 L79.6562 3077.0938 Q79.3906 3077.9062 79.2344 3078.2031 Q79.0469 3078.6094 78.7891 3078.8047 Q78.5312 3079 78.1875 3079 Q77.9688 3079 77.7031 3078.875 ZM83.7031 3077 L83.7031 3068 L88.7031 3068 L88.7031 3069 L84.7031 3069 L84.7031 3072 L87.7031 3072 L87.7031 3073 L84.7031 3073 L84.7031 3077 L83.7031 3077 ZM91.0332 3069 L91.0332 3068 L92.0332 3068 L92.0332 3069 L91.0332 3069 ZM91.0332 3077 L91.0332 3070 L92.0332 3070 L92.0332 3077 L91.0332 3077 ZM93.6992 3077 L93.6992 3068 L94.6992 3068 L94.6992 3077 L93.6992 3077 ZM100.3496 3075 L101.334 3075 Q101.1152 3075.9531 100.5059 3076.4766 Q99.8965 3077 98.9434 3077 Q97.7559 3077 97.0605 3076.0938 Q96.3652 3075.1875 96.3652 3073.5625 Q96.3652 3071.8594 97.0684 3070.9297 Q97.7715 3070 98.8965 3070 Q99.9902 3070 100.6777 3070.9688 Q101.3652 3071.9375 101.3652 3073.6875 Q101.3652 3073.7812 101.3652 3074 L97.3652 3074 Q97.4121 3074.9688 97.4199 3075.4844 Q97.4277 3076 98.959 3076 Q99.4434 3076 99.7949 3075.7578 Q100.1465 3075.5156 100.3496 3075 ZM97.3652 3073 L100.3652 3073 Q100.3027 3072.125 100.3965 3071.6875 Q99.584 3071 98.8965 3071 Q97.3965 3071 97.4043 3071.5469 Q97.4121 3072.0938 97.3652 3073 ZM103.0391 3075 L104.0391 3075 Q104.1328 3075.4844 104.5234 3075.7422 Q104.9141 3076 105.6328 3076 L106.2422 3076 L107.0391 3075.2031 L107.0391 3074.9844 L107.0391 3075.0625 L106.6172 3074.2656 L106.6484 3074.2656 L105.6953 3074.0469 L104.4141 3073.7344 L104.2422 3073.7344 L103.0391 3072.1562 L103.0391 3071.9531 L103.0391 3071.2031 L103.0391 3071.2031 L103.0391 3071.2031 L103.0391 3071.2031 L104.2422 3070 L105.4453 3070 Q106.2109 3070 106.7969 3070.2422 Q107.3828 3070.4844 107.6562 3070.8984 Q107.9297 3071.3125 108.0391 3072 L107.0391 3072 Q106.9609 3071.5312 106.5859 3071.2656 Q106.2109 3071 105.5391 3071 L104.8359 3071 L104.0391 3071.7969 L104.0391 3071.8125 L104.0391 3071.5625 L104.8359 3072.3594 L104.3203 3072.3594 L104.6328 3072.7188 Q104.8047 3072.5312 105.6641 3072.75 L106.8984 3073.0781 L106.8359 3073.0781 L108.0391 3074.4688 L108.0391 3074.8594 L108.0391 3075.7969 L108.0391 3075.7969 L106.8359 3077 L105.6172 3077 Q104.4453 3077 103.8281 3076.4922 Q103.2109 3075.9844 103.0391 3075 Z" stroke="none" clip-path="url(#clipPath1)"/> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(1339,2735)" stroke="rgb(120,120,120)"> + <path d="M0 0 L317 0 L317 93 L0 93 L0 0 ZM1 1 L316 1 L316 92 L1 92 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath3)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1340,2763)" stroke="rgb(60,63,65)"> + <rect x="0" width="315" height="64" y="0" clip-path="url(#clipPath5)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1624,2764)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1342,2764)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath8)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="5" clip-path="url(#clipPath8)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="12" y="5" clip-path="url(#clipPath8)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="25" xml:space="preserve" y="15" clip-path="url(#clipPath8)" stroke="none">devenv()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1624,2786)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1342,2786)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath10)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="5" clip-path="url(#clipPath10)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="12" y="5" clip-path="url(#clipPath10)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="25" xml:space="preserve" y="15" clip-path="url(#clipPath10)" stroke="none">convert(ColorMode, float, File)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1592,2808)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath13)" stroke="none">TextImage</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1342,2808)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath14)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="5" clip-path="url(#clipPath14)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="12" y="5" clip-path="url(#clipPath14)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="25" xml:space="preserve" y="15" clip-path="url(#clipPath14)" stroke="none">convert(BufferedImage, ColorMode, float)</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1340,2736)" stroke="rgb(60,60,60)"> + <rect x="0" width="315" height="27" y="0" clip-path="url(#clipPath15)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(1340,2736)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="315" height="1" y="26" clip-path="url(#clipPath15)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1340,2736)" stroke="rgb(238,255,255)"> + <image x="2" y="8" clip-path="url(#clipPath16)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlUlEQVR42mNgoBVw 2P+fI+DQtzIQBrFJ0ux35Hu0/+HvD4H4ExQ/BIkR1njomzVQ8Ukg/uN3+Pscr/1f JEAYxAaJgeRAarBqBkouBOL/QLzb79BPPUzDf+qB5KBqFmIz4D8JBvzHZ8B/PF74 T6wBMAwLRAw5Yg3AiQenAQtJMGAhoYSESyPuhIQjKcM0EpeUqZaZSAEA6RdrfECM AgkAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="8" clip-path="url(#clipPath16)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="28" xml:space="preserve" y="17" clip-path="url(#clipPath16)" stroke="none">IntegratedDevenv</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(699,2735)" stroke="rgb(120,120,120)"> + <path d="M0 0 L210 0 L210 226 L0 226 L0 0 ZM1 1 L209 1 L209 225 L1 225 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath17)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(700,2763)" stroke="rgb(60,63,65)"> + <rect x="0" width="208" height="197" y="0" clip-path="url(#clipPath19)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(854,2764)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath21)" stroke="none">Terminal</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(702,2764)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath22)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath22)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="25" xml:space="preserve" y="15" clip-path="url(#clipPath22)" stroke="none">terminal</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(700,2763)" stroke="gray"> + <rect x="0" width="208" height="1" y="22" clip-path="url(#clipPath23)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(700,2785)" stroke="gray"> + <rect x="0" width="208" height="1" y="0" clip-path="url(#clipPath24)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(880,2787)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath26)" stroke="none">Size</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(702,2787)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath27)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath27)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="25" xml:space="preserve" y="15" clip-path="url(#clipPath27)" stroke="none">getSize()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(877,2809)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(702,2809)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath29)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath29)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="25" xml:space="preserve" y="15" clip-path="url(#clipPath29)" stroke="none">render(Game, int, int, Align)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(877,2831)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(702,2831)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath31)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath31)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="25" xml:space="preserve" y="15" clip-path="url(#clipPath31)" stroke="none">render(Screen)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(877,2853)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(702,2853)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath33)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath33)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="25" xml:space="preserve" y="15" clip-path="url(#clipPath33)" stroke="none">renderComponent(Widget)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(854,2875)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath21)" stroke="none">Terminal</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(702,2875)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath35)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath35)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="25" xml:space="preserve" y="15" clip-path="url(#clipPath35)" stroke="none">getTerminal()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(886,2897)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(702,2897)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath38)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath38)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="25" xml:space="preserve" y="15" clip-path="url(#clipPath38)" stroke="none">getCols()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(886,2919)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(702,2919)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath40)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath40)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="25" xml:space="preserve" y="15" clip-path="url(#clipPath40)" stroke="none">getRows()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(862,2941)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath43)" stroke="none">Coords</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(702,2941)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath44)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath44)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="25" xml:space="preserve" y="15" clip-path="url(#clipPath44)" stroke="none">getCenter()</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(700,2736)" stroke="rgb(60,60,60)"> + <rect x="0" width="208" height="27" y="0" clip-path="url(#clipPath45)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(700,2736)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="208" height="1" y="26" clip-path="url(#clipPath45)" stroke="none"/> + </g> + <g fill="rgb(128,203,196)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(700,2736)" stroke="rgb(128,203,196)"> + <image x="2" y="8" clip-path="url(#clipPath46)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlUlEQVR42mNgoBVw 2P+fI+DQtzIQBrFJ0ux35Hu0/+HvD4H4ExQ/BIkR1njomzVQ8Ukg/uN3+Pscr/1f JEAYxAaJgeRAarBqBkouBOL/QLzb79BPPUzDf+qB5KBqFmIz4D8JBvzHZ8B/PF74 T6wBMAwLRAw5Yg3AiQenAQtJMGAhoYSESyPuhIQjKcM0EpeUqZaZSAEA6RdrfECM AgkAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="8" clip-path="url(#clipPath46)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="28" xml:space="preserve" y="17" clip-path="url(#clipPath46)" stroke="none">TerminalGameRenderer</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(1435,1648)" stroke="rgb(120,120,120)"> + <path d="M0 0 L242 0 L242 754 L0 754 L0 0 ZM1 1 L241 1 L241 753 L1 753 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath47)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1436,1676)" stroke="rgb(60,63,65)"> + <rect x="0" width="240" height="725" y="0" clip-path="url(#clipPath49)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1637,1677)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">Game</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,1677)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath52)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath52)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath52)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath52)" stroke="none">INSTANCE</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1526,1699)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath54)" stroke="none">CyclicList<AbstractPlayer></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,1699)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath55)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath55)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath55)" stroke="none">players</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1617,1721)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath57)" stroke="none">LevelMap</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,1721)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath58)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath58)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath58)" stroke="none">map</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1544,1743)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath60)" stroke="none">TerminalGameRenderer</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,1743)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath61)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath61)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath61)" stroke="none">renderer</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1563,1765)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath63)" stroke="none">TerminalGameInput</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,1765)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath64)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath64)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath64)" stroke="none">input</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1600,1787)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath8)" stroke="none">List<Colors></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,1787)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath66)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath66)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath66)" stroke="none">availableColors</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1654,1809)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,1809)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath68)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath68)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath68)" stroke="none">numCharacters</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1654,1831)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,1831)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath70)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath70)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath70)" stroke="none">numTurn</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1436,1676)" stroke="gray"> + <rect x="0" width="240" height="1" y="176" clip-path="url(#clipPath71)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1436,1852)" stroke="gray"> + <rect x="0" width="240" height="1" y="0" clip-path="url(#clipPath72)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1645,1854)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,1854)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath74)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath74)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath74)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath74)" stroke="none">main(String[])</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1637,1876)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">Game</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,1876)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath76)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath76)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath76)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath76)" stroke="none">getInstance()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1645,1898)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,1898)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath54)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath54)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath54)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath54)" stroke="none">handleSignal(Signal)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1645,1920)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,1920)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath79)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath79)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath79)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath79)" stroke="none">shutdownGracefully()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1645,1942)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,1942)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath81)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath81)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath81)" stroke="none">addPlayer(AbstractPlayer)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1526,1964)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath54)" stroke="none">CyclicList<AbstractPlayer></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,1964)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath83)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath83)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath83)" stroke="none">getPlayers()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1617,1986)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath57)" stroke="none">LevelMap</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,1986)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath70)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath70)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath70)" stroke="none">getMap()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1645,2008)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,2008)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath86)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath86)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath86)" stroke="none">setMap(LevelMap)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1563,2030)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath63)" stroke="none">TerminalGameInput</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,2030)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath88)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath88)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath88)" stroke="none">getInput()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1544,2052)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath60)" stroke="none">TerminalGameRenderer</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,2052)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath90)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath90)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath90)" stroke="none">getRenderer()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1645,2074)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,2074)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath92)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath92)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath92)" stroke="none">mainMenu()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1645,2096)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,2096)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath66)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath66)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath66)" stroke="none">mapSelection()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1645,2118)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,2118)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath95)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath95)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath95)" stroke="none">lobby()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1600,2140)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath8)" stroke="none">List<Colors></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,2140)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath97)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath97)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath97)" stroke="none">getAvailableColors()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1654,2162)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,2162)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath99)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath99)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath99)" stroke="none">getRealPlayerCount()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1603,2184)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath101)" stroke="none">List<String></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,2184)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath102)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath102)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath102)" stroke="none">getPlayerNames()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1654,2206)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,2206)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath104)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath104)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath104)" stroke="none">getBotCount()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1645,2228)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,2228)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath101)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath101)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath101)" stroke="none">start()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1645,2250)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,2250)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath31)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath31)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath31)" stroke="none">clearDeads()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1645,2272)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,2272)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath61)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath61)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath61)" stroke="none">winner()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1625,2294)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,2294)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath110)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath110)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath110)" stroke="none">isFinished()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1625,2316)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,2316)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath112)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath112)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath112)" stroke="none">isTurnFinished(AbstractPlayer)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1654,2338)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,2338)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath104)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath104)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath104)" stroke="none">getNumTurn()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1625,2360)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,2360)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath60)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath60)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath60)" stroke="none">isTileFree(int, int)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1625,2382)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath117)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1438,2382)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath118)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath118)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath118)" stroke="none">isTileFree(Coords)</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1436,1649)" stroke="rgb(60,60,60)"> + <rect x="0" width="240" height="27" y="0" clip-path="url(#clipPath119)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(1436,1649)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="240" height="1" y="26" clip-path="url(#clipPath119)" stroke="none"/> + </g> + <g fill="rgb(128,203,196)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1436,1649)" stroke="rgb(128,203,196)"> + <image x="2" y="5" clip-path="url(#clipPath120)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlUlEQVR42mNgoBVw 2P+fI+DQtzIQBrFJ0ux35Hu0/+HvD4H4ExQ/BIkR1njomzVQ8Ukg/uN3+Pscr/1f JEAYxAaJgeRAarBqBkouBOL/QLzb79BPPUzDf+qB5KBqFmIz4D8JBvzHZ8B/PF74 T6wBMAwLRAw5Yg3AiQenAQtJMGAhoYSESyPuhIQjKcM0EpeUqZaZSAEA6RdrfECM AgkAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="2" y="5" clip-path="url(#clipPath120)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAYklEQVR42mNgIBIc e9WnwkAJOPJ84vcjLyZW7v/fwEKuAf+h+OKx55PMKDEAhP8cfTZxwv5XU3nINQCE txx82itLjgEvjryYEE6WF44+nzj38MNpgmQF4uHn/Q4Mo2AU4AAAesdRt+OlrNwAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath120)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath120)" stroke="none">Game</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(954,2735)" stroke="rgb(120,120,120)"> + <path d="M0 0 L174 0 L174 226 L0 226 L0 0 ZM1 1 L173 1 L173 225 L1 225 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath121)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(955,2763)" stroke="rgb(60,63,65)"> + <rect x="0" width="172" height="197" y="0" clip-path="url(#clipPath123)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1073,2764)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath21)" stroke="none">Terminal</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(957,2764)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath22)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath22)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="25" xml:space="preserve" y="15" clip-path="url(#clipPath22)" stroke="none">terminal</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1067,2786)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath126)" stroke="none">KeyStroke</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(957,2786)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath127)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath127)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="25" xml:space="preserve" y="15" clip-path="url(#clipPath127)" stroke="none">lastKey</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1008,2808)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath129)" stroke="none">KeyMap<KeyStroke></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(957,2808)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath130)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath130)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="25" xml:space="preserve" y="15" clip-path="url(#clipPath130)" stroke="none">keys</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1042,2830)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath132)" stroke="none">BindingReader</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(957,2830)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath133)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath133)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="25" xml:space="preserve" y="15" clip-path="url(#clipPath133)" stroke="none">br</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(955,2763)" stroke="gray"> + <rect x="0" width="172" height="1" y="88" clip-path="url(#clipPath134)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(955,2851)" stroke="gray"> + <rect x="0" width="172" height="1" y="0" clip-path="url(#clipPath135)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1105,2853)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(957,2853)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath137)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath137)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="25" xml:space="preserve" y="15" clip-path="url(#clipPath137)" stroke="none">readInput()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1067,2875)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath126)" stroke="none">KeyStroke</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(957,2875)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath95)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath95)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="25" xml:space="preserve" y="15" clip-path="url(#clipPath95)" stroke="none">readKey()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1105,2897)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(957,2897)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath76)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath76)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="25" xml:space="preserve" y="15" clip-path="url(#clipPath76)" stroke="none">readRawInput()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1067,2919)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath126)" stroke="none">KeyStroke</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(957,2919)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath88)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath88)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="25" xml:space="preserve" y="15" clip-path="url(#clipPath88)" stroke="none">getLastKey()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1073,2941)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath142)" stroke="none">Terminal</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(957,2941)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath143)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath143)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="25" xml:space="preserve" y="15" clip-path="url(#clipPath143)" stroke="none">getTerminal()</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(955,2736)" stroke="rgb(60,60,60)"> + <rect x="0" width="172" height="27" y="0" clip-path="url(#clipPath144)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(955,2736)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="172" height="1" y="26" clip-path="url(#clipPath144)" stroke="none"/> + </g> + <g fill="rgb(128,203,196)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(955,2736)" stroke="rgb(128,203,196)"> + <image x="2" y="8" clip-path="url(#clipPath145)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlUlEQVR42mNgoBVw 2P+fI+DQtzIQBrFJ0ux35Hu0/+HvD4H4ExQ/BIkR1njomzVQ8Ukg/uN3+Pscr/1f JEAYxAaJgeRAarBqBkouBOL/QLzb79BPPUzDf+qB5KBqFmIz4D8JBvzHZ8B/PF74 T6wBMAwLRAw5Yg3AiQenAQtJMGAhoYSESyPuhIQjKcM0EpeUqZaZSAEA6RdrfECM AgkAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="8" clip-path="url(#clipPath145)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="28" xml:space="preserve" y="17" clip-path="url(#clipPath145)" stroke="none">TerminalGameInput</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(1888,2735)" stroke="rgb(120,120,120)"> + <path d="M0 0 L134 0 L134 27 L0 27 L0 0 ZM1 1 L133 1 L133 26 L1 26 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath146)" stroke="none"/> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1889,2736)" stroke="rgb(60,60,60)"> + <rect x="0" width="132" height="27" y="0" clip-path="url(#clipPath147)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(1889,2736)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="132" height="1" y="26" clip-path="url(#clipPath147)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1889,2736)" stroke="rgb(238,255,255)"> + <image x="2" y="8" clip-path="url(#clipPath147)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAo0lEQVR42mNgGBTg /6pQ5v9nMr3/n8mOh+NTWb7EG3Aqp+n/6ez/mDirnjgDTmevwm4ATvwZiP3RDTiF 4gV8GKT2dPZydANWEe1ldPUwgYYTJ/jqTx/ZAMQn6s8e0iPZgMYzRzMbTh/5D8Zn jqwk2YCmk0ctgZp/gwxoPH2klGQDQOz6k4fVGk4dsyIrDMgPRJwJCQ8G6sGflPFi oFqgnsGREQF4ei3GYQceTQAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="18" xml:space="preserve" y="17" clip-path="url(#clipPath147)" stroke="none">Package utils</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(2451,1648)" stroke="rgb(120,120,120)"> + <path d="M0 0 L262 0 L262 512 L0 512 L0 0 ZM1 1 L261 1 L261 511 L1 511 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath148)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(2452,1676)" stroke="rgb(60,63,65)"> + <rect x="0" width="260" height="483" y="0" clip-path="url(#clipPath150)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2641,1677)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath152)" stroke="none">ClassLoader</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2454,1677)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath101)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath101)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath101)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAYUlEQVR42mNgQAL/ //+XAWEGUgFQkxiU7gNhZDFiNLMA8R4gDgDiCUDcD8TBQLwXJEesITZAvAaI06B4 LUiMFC9Yk20A1At7oc7uh2I/qLdYKAlEUXJiAxSN0gyjYBSQCAC6M4ZDFG2KEwAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath101)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath101)" stroke="none">assets</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2677,1699)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath154)" stroke="none">Gson</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2454,1699)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath155)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath155)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath155)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAYUlEQVR42mNgQAL/ //+XAWEGUgFQkxiU7gNhZDFiNLMA8R4gDgDiCUDcD8TBQLwXJEesITZAvAaI06B4 LUiMFC9Yk20A1At7oc7uh2I/qLdYKAlEUXJiAxSN0gyjYBSQCAC6M4ZDFG2KEwAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath155)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath155)" stroke="none">gson</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2639,1721)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath101)" stroke="none">List<String></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2454,1721)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath52)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath52)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath52)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath52)" stroke="none">botNames</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2596,1743)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath74)" stroke="none">Map<String, String></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2454,1743)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath152)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath152)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath152)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath152)" stroke="none">maps</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2596,1765)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath74)" stroke="none">Map<String, String></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2454,1765)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath159)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath159)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath159)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath159)" stroke="none">characters</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2452,1676)" stroke="gray"> + <rect x="0" width="260" height="1" y="110" clip-path="url(#clipPath160)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2452,1786)" stroke="gray"> + <rect x="0" width="260" height="1" y="0" clip-path="url(#clipPath161)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2639,1788)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath101)" stroke="none">InputStream</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2454,1788)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath163)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath163)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath163)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath163)" stroke="none">openResource(String, boolean)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2639,1810)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath101)" stroke="none">InputStream</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2454,1810)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath79)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath79)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath79)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath79)" stroke="none">openResource(String)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2683,1832)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath166)" stroke="none">URL</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2454,1832)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath167)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath167)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath167)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath167)" stroke="none">getResource(String, boolean)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2683,1854)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath166)" stroke="none">URL</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2454,1854)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath169)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath169)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath169)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath169)" stroke="none">getResource(String)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2596,1876)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath74)" stroke="none">Map<String, String></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2454,1876)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath171)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath171)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath171)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath171)" stroke="none">gameMaps()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2641,1898)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath152)" stroke="none">Set<String></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2454,1898)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath173)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath173)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath173)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath173)" stroke="none">gameMapNames()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2641,1920)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath152)" stroke="none">Set<String></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2454,1920)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath175)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath175)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath175)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath175)" stroke="none">gameMapFiles()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2596,1942)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath74)" stroke="none">Map<String, String></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2454,1942)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath102)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath102)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath102)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath102)" stroke="none">gameCharacters()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2641,1964)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath152)" stroke="none">Set<String></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2454,1964)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath178)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath178)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath178)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath178)" stroke="none">gameCharacterNames()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2641,1986)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath152)" stroke="none">Set<String></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2454,1986)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath99)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath99)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath99)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath99)" stroke="none">gameCharacterFiles()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2639,2008)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath101)" stroke="none">List<String></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2454,2008)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath181)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath181)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath181)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath181)" stroke="none">botNames()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2661,2030)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2454,2030)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath40)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath40)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath40)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath40)" stroke="none">reload()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2661,2052)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2454,2052)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath184)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath184)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath184)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath184)" stroke="none">extract(String)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2639,2074)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath101)" stroke="none">List<String></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2454,2074)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath186)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath186)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath186)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath186)" stroke="none">listFilesInJar(String, String)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2639,2096)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath101)" stroke="none">List<String></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2454,2096)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath188)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath188)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath188)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath188)" stroke="none">listFilesOutside(String, String)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2639,2118)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath101)" stroke="none">List<String></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2454,2118)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath79)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath79)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath79)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath79)" stroke="none">listFiles(String, String)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2648,2140)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath192)" stroke="none">FileSystem</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2454,2140)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath193)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath193)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath193)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath193)" stroke="none">getJarFileSystem()</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(2452,1649)" stroke="rgb(60,60,60)"> + <rect x="0" width="260" height="27" y="0" clip-path="url(#clipPath194)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(2452,1649)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="260" height="1" y="26" clip-path="url(#clipPath194)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(2452,1649)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath195)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlUlEQVR42mNgoBVw 2P+fI+DQtzIQBrFJ0ux35Hu0/+HvD4H4ExQ/BIkR1njomzVQ8Ukg/uN3+Pscr/1f JEAYxAaJgeRAarBqBkouBOL/QLzb79BPPUzDf+qB5KBqFmIz4D8JBvzHZ8B/PF74 T6wBMAwLRAw5Yg3AiQenAQtJMGAhoYSESyPuhIQjKcM0EpeUqZaZSAEA6RdrfECM AgkAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath195)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath195)" stroke="none">AssetsManager</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(2758,1648)" stroke="rgb(120,120,120)"> + <path d="M0 0 L159 0 L159 71 L0 71 L0 0 ZM1 1 L158 1 L158 70 L1 70 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath196)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(2759,1676)" stroke="rgb(60,63,65)"> + <rect x="0" width="157" height="42" y="0" clip-path="url(#clipPath198)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2865,1677)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2761,1677)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath110)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA+klEQVR42mNgGDKg YcV/nYb9/1lI17jqv1zTyv/Lm1b9/w/E1xpX/XdFUdC48n88Mm5e/d8BrHHzfy4g vwGo6RsQ32pa/T8OSK+HGrSpftV/FbABUAE4bl71fxVU/BFYbPX/6UBXsCFZ6AsU /wnCLSv/2+F0OtTAD2DFq/93d6z6z9+4+n801OAPUMtCIIpX/88CCswHYyAbbsDq /xFARZlA9hsg/gHEf4DhMbtt1X9RogyAKWhf+l8Q6qI0ZBfCDcDpBaALsGlYteo/ M4YBIA6WQPwAdHIJKBBhGoDh4AykL2MEYsPy/wp4oxHihVsY0UhxQqJ5UqY5AACl +ynQwNob5AAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath110)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="31" xml:space="preserve" y="15" clip-path="url(#clipPath110)" stroke="none">canStepOn()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2877,1699)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath202)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2761,1699)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath44)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA+klEQVR42mNgGDKg YcV/nYb9/1lI17jqv1zTyv/Lm1b9/w/E1xpX/XdFUdC48n88Mm5e/d8BrHHzfy4g vwGo6RsQ32pa/T8OSK+HGrSpftV/FbABUAE4bl71fxVU/BFYbPX/6UBXsCFZ6AsU /wnCLSv/2+F0OtTAD2DFq/93d6z6z9+4+n801OAPUMtCIIpX/88CCswHYyAbbsDq /xFARZlA9hsg/gHEf4DhMbtt1X9RogyAKWhf+l8Q6qI0ZBfCDcDpBaALsGlYteo/ M4YBIA6WQPwAdHIJKBBhGoDh4AykL2MEYsPy/wp4oxHihVsY0UhxQqJ5UqY5AACl +ynQwNob5AAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath44)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath44)" stroke="none">getIcon()</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(2759,1649)" stroke="rgb(60,60,60)"> + <rect x="0" width="157" height="27" y="0" clip-path="url(#clipPath203)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(2759,1649)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="157" height="1" y="26" clip-path="url(#clipPath203)" stroke="none"/> + </g> + <g fill="rgb(128,203,196)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(2759,1649)" stroke="rgb(128,203,196)"> + <image x="2" y="5" clip-path="url(#clipPath204)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAkElEQVR42mNgGHTg yPO+eGR8+Hm3A0kGHH7R+x8Fv+xdRbIBh573hIDZQM20NwCkGMPZRGKwRTAD4IEG 8fcUEPvQi95TIAwWB4qhq0MxgJAXcKqDu+Bl73wQhjivbz+Y/6L3PhiDxfv2o6sD G3D0eY8pTBAD4zEAhEF68ccIHi8QF6VAzeiBSLIB6FE3+DIfAGRtNkBqvV8TAAAA AElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath204)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="30" xml:space="preserve" y="17" clip-path="url(#clipPath204)" stroke="none">Tile</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(2196,1648)" stroke="rgb(120,120,120)"> + <path d="M0 0 L210 0 L210 534 L0 534 L0 0 ZM1 1 L209 1 L209 533 L1 533 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath205)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(2197,1676)" stroke="rgb(60,63,65)"> + <rect x="0" width="208" height="505" y="0" clip-path="url(#clipPath207)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2359,1677)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath208)" stroke="none">Pattern</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2199,1677)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath209)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath209)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath209)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAYUlEQVR42mNgQAL/ //+XAWEGUgFQkxiU7gNhZDFiNLMA8R4gDgDiCUDcD8TBQLwXJEesITZAvAaI06B4 LUiMFC9Yk20A1At7oc7uh2I/qLdYKAlEUXJiAxSN0gyjYBSQCAC6M4ZDFG2KEwAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath209)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath209)" stroke="none">validInstruction</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2366,1699)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2199,1699)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath58)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath58)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAOElEQVR42mNgGAW0 Aw0NDTr19fUTQBjEJlkzEH8H4v9Q/J0kQ6C2/kfGIDH6GUCxFygOxFFAGgAAYH9F mbh+I2oAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="31" xml:space="preserve" y="15" clip-path="url(#clipPath58)" stroke="none">visual</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2358,1721)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath212)" stroke="none">Tiles[][]</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2199,1721)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath213)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath213)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath213)" stroke="none">tiles</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2383,1743)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2199,1743)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath215)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath215)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath215)" stroke="none">width</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2383,1765)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2199,1765)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath8)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath8)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath8)" stroke="none">height</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2366,1787)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2199,1787)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath215)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath215)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath215)" stroke="none">name</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2366,1809)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2199,1809)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath35)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath35)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath35)" stroke="none">description</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2383,1831)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2199,1831)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath110)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath110)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath110)" stroke="none">maxPlayers</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2293,1853)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath221)" stroke="none">CyclicList<Coords></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2199,1853)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath222)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath222)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath222)" stroke="none">startPos</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2197,1676)" stroke="gray"> + <rect x="0" width="208" height="1" y="198" clip-path="url(#clipPath223)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2197,1874)" stroke="gray"> + <rect x="0" width="208" height="1" y="0" clip-path="url(#clipPath24)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2358,1876)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath212)" stroke="none">Tiles[][]</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2199,1876)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath86)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath86)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath86)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath86)" stroke="none">blankLevel(int, int)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2346,1898)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath57)" stroke="none">LevelMap</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2199,1898)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath83)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath83)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath83)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath83)" stroke="none">load(String)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2358,1920)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath212)" stroke="none">Tiles[][]</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2199,1920)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath227)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath227)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath227)" stroke="none">getTiles()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2379,1942)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath229)" stroke="none">Tile</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2199,1942)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath230)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath230)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath230)" stroke="none">getTileAt(int, int)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2366,1964)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2199,1964)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath175)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath175)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath175)" stroke="none">getDescription()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2383,1986)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2199,1986)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath175)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath175)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath175)" stroke="none">getMaxPlayers()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2293,2008)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath221)" stroke="none">CyclicList<Coords></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2199,2008)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath234)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath234)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath234)" stroke="none">getStartPos()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2383,2030)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2199,2030)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath236)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath236)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath236)" stroke="none">getWidth()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2383,2052)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2199,2052)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath238)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath238)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath238)" stroke="none">getHeight()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2366,2074)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2199,2074)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath236)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath236)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath236)" stroke="none">getName()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2366,2096)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2199,2096)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath95)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath95)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath95)" stroke="none">visual()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2354,2118)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2199,2118)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath86)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath86)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath86)" stroke="none">canCollide(int, int)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2354,2140)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2199,2140)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath243)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath243)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath243)" stroke="none">canCollide(Coords)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2354,2162)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath117)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2199,2162)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath245)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath245)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath245)" stroke="none">isInBounds(int, int)</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(2197,1649)" stroke="rgb(60,60,60)"> + <rect x="0" width="208" height="27" y="0" clip-path="url(#clipPath45)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(2197,1649)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="208" height="1" y="26" clip-path="url(#clipPath45)" stroke="none"/> + </g> + <g fill="rgb(128,203,196)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(2197,1649)" stroke="rgb(128,203,196)"> + <image x="2" y="5" clip-path="url(#clipPath46)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlUlEQVR42mNgoBVw 2P+fI+DQtzIQBrFJ0ux35Hu0/+HvD4H4ExQ/BIkR1njomzVQ8Ukg/uN3+Pscr/1f JEAYxAaJgeRAarBqBkouBOL/QLzb79BPPUzDf+qB5KBqFmIz4D8JBvzHZ8B/PF74 T6wBMAwLRAw5Yg3AiQenAQtJMGAhoYSESyPuhIQjKcM0EpeUqZaZSAEA6RdrfECM AgkAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath46)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath46)" stroke="none">LevelMap</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(2765,1760)" stroke="rgb(120,120,120)"> + <path d="M0 0 L159 0 L159 292 L0 292 L0 0 ZM1 1 L158 1 L158 291 L1 291 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath246)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(2766,1788)" stroke="rgb(60,63,65)"> + <rect x="0" width="157" height="263" y="0" clip-path="url(#clipPath248)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2768,1789)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath250)" stroke="none">BLANK</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2768,1811)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">ROCK</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2768,1833)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath253)" stroke="none">GRASS</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2768,1855)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath208)" stroke="none">WATER</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2768,1877)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath256)" stroke="none">LAVA</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2768,1899)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">SAND</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2768,1921)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath259)" stroke="none">TREE</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2884,1943)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2768,1943)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath261)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath261)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath261)" stroke="none">icon</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2872,1965)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2768,1965)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath263)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath263)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath263)" stroke="none">canStepOn</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2766,1788)" stroke="gray"> + <rect x="0" width="157" height="1" y="198" clip-path="url(#clipPath264)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2766,1986)" stroke="gray"> + <rect x="0" width="157" height="1" y="0" clip-path="url(#clipPath265)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2884,1988)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2768,1988)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath267)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath267)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath267)" stroke="none">toString()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2872,2010)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2768,2010)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath92)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath92)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath92)" stroke="none">canStepOn()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2884,2032)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath202)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2768,2032)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath44)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath44)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath44)" stroke="none">getIcon()</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(2766,1761)" stroke="rgb(60,60,60)"> + <rect x="0" width="157" height="27" y="0" clip-path="url(#clipPath203)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(2766,1761)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="157" height="1" y="26" clip-path="url(#clipPath203)" stroke="none"/> + </g> + <g fill="rgb(128,203,196)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(2766,1761)" stroke="rgb(128,203,196)"> + <image x="2" y="5" clip-path="url(#clipPath204)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAfUlEQVR42mNgoBf4 0Z3r/a07uxyngu89Of/R8bee3BCYZiD/B0Q8t4okA1A1wzAWQ7AZAMTzMDVDDUf3 DnYDcmuA9DMscj9ALiPOC5356miGYGqGGJAdj4H7CxTAgYgwBLtmfAaAMZif0w70 0kqYHNGxAMLY5EYNwGLAgAEAIYuIaXX7GbUAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath204)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="34" xml:space="preserve" y="17" clip-path="url(#clipPath204)" stroke="none">Tiles</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(1939,2226)" stroke="rgb(120,120,120)"> + <path d="M0 0 L212 0 L212 93 L0 93 L0 0 ZM1 1 L211 1 L211 92 L1 92 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath270)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1940,2254)" stroke="rgb(60,63,65)"> + <rect x="0" width="210" height="64" y="0" clip-path="url(#clipPath272)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2082,2255)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath155)" stroke="none">ActionType</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1942,2255)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath274)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath274)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath274)" stroke="none">play(Game, Character)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2099,2277)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1942,2277)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath8)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath8)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath8)" stroke="none">isBot()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2099,2299)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath117)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1942,2299)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath278)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath278)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath278)" stroke="none">isMoveKey(KeyStroke)</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1940,2227)" stroke="rgb(60,60,60)"> + <rect x="0" width="210" height="27" y="0" clip-path="url(#clipPath279)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(1940,2227)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="210" height="1" y="26" clip-path="url(#clipPath279)" stroke="none"/> + </g> + <g fill="rgb(128,203,196)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1940,2227)" stroke="rgb(128,203,196)"> + <image x="2" y="5" clip-path="url(#clipPath280)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlUlEQVR42mNgoBVw 2P+fI+DQtzIQBrFJ0ux35Hu0/+HvD4H4ExQ/BIkR1njomzVQ8Ukg/uN3+Pscr/1f JEAYxAaJgeRAarBqBkouBOL/QLzb79BPPUzDf+qB5KBqFmIz4D8JBvzHZ8B/PF74 T6wBMAwLRAw5Yg3AiQenAQtJMGAhoYSESyPuhIQjKcM0EpeUqZaZSAEA6RdrfECM AgkAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath280)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath280)" stroke="none">Player</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(1883,1827)" stroke="rgb(120,120,120)"> + <path d="M0 0 L232 0 L232 358 L0 358 L0 0 ZM1 1 L231 1 L231 357 L1 357 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath281)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1884,1855)" stroke="rgb(60,63,65)"> + <rect x="0" width="230" height="329" y="0" clip-path="url(#clipPath283)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2054,1856)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath126)" stroke="none">AnsiColor</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1886,1856)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath52)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath52)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="31" xml:space="preserve" y="15" clip-path="url(#clipPath52)" stroke="none">playerColor</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1989,1878)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath286)" stroke="none">CyclicList<Character></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1886,1878)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath159)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath159)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath159)" stroke="none">characters</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2075,1900)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1886,1900)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath215)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath215)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath215)" stroke="none">name</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2074,1922)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath289)" stroke="none">Status</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1886,1922)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath101)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath101)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath101)" stroke="none">status</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1884,1855)" stroke="gray"> + <rect x="0" width="230" height="1" y="88" clip-path="url(#clipPath290)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1884,1943)" stroke="gray"> + <rect x="0" width="230" height="1" y="0" clip-path="url(#clipPath291)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2046,1945)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath155)" stroke="none">ActionType</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1886,1945)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath274)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA+klEQVR42mNgGDKg YcV/nYb9/1lI17jqv1zTyv/Lm1b9/w/E1xpX/XdFUdC48n88Mm5e/d8BrHHzfy4g vwGo6RsQ32pa/T8OSK+HGrSpftV/FbABUAE4bl71fxVU/BFYbPX/6UBXsCFZ6AsU /wnCLSv/2+F0OtTAD2DFq/93d6z6z9+4+n801OAPUMtCIIpX/88CCswHYyAbbsDq /xFARZlA9hsg/gHEf4DhMbtt1X9RogyAKWhf+l8Q6qI0ZBfCDcDpBaALsGlYteo/ M4YBIA6WQPwAdHIJKBBhGoDh4AykL2MEYsPy/wp4oxHihVsY0UhxQqJ5UqY5AACl +ynQwNob5AAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath274)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath274)" stroke="none">play(Game, Character)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2063,1967)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1886,1967)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath8)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA+klEQVR42mNgGDKg YcV/nYb9/1lI17jqv1zTyv/Lm1b9/w/E1xpX/XdFUdC48n88Mm5e/d8BrHHzfy4g vwGo6RsQ32pa/T8OSK+HGrSpftV/FbABUAE4bl71fxVU/BFYbPX/6UBXsCFZ6AsU /wnCLSv/2+F0OtTAD2DFq/93d6z6z9+4+n801OAPUMtCIIpX/88CCswHYyAbbsDq /xFARZlA9hsg/gHEf4DhMbtt1X9RogyAKWhf+l8Q6qI0ZBfCDcDpBaALsGlYteo/ M4YBIA6WQPwAdHIJKBBhGoDh4AykL2MEYsPy/wp4oxHihVsY0UhxQqJ5UqY5AACl +ynQwNob5AAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath8)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath8)" stroke="none">isBot()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2075,1989)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1886,1989)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath236)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath236)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath236)" stroke="none">getName()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2083,2011)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1886,2011)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath296)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath296)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath296)" stroke="none">setName(String)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2083,2033)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1886,2033)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath298)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath298)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath298)" stroke="none">addCharacter(Character)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1989,2055)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath286)" stroke="none">CyclicList<Character></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1886,2055)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath68)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath68)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath68)" stroke="none">getCharacters()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2054,2077)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath126)" stroke="none">AnsiColor</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1886,2077)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath159)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath159)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath159)" stroke="none">getColor()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2083,2099)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1886,2099)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath296)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath296)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath296)" stroke="none">setColor(Colors)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2063,2121)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1886,2121)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath54)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath54)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath54)" stroke="none">hasCharacter(String)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2074,2143)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath289)" stroke="none">Status</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1886,2143)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath236)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath236)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath236)" stroke="none">getStatus()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(2083,2165)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath306)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1886,2165)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath307)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath307)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath307)" stroke="none">setStatus(Status)</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1884,1828)" stroke="rgb(60,60,60)"> + <rect x="0" width="230" height="27" y="0" clip-path="url(#clipPath308)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(1884,1828)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="230" height="1" y="26" clip-path="url(#clipPath308)" stroke="none"/> + </g> + <g fill="rgb(128,203,196)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1884,1828)" stroke="rgb(128,203,196)"> + <image x="2" y="5" clip-path="url(#clipPath309)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAyklEQVR42mNgoBXY f7+B49DznjIQBrFJ0nzkZU/04Re9D4H4ExQ/BIkR1HjoZb81UPFJIP4DxHP2v+qS AGEQGyp2EqQGq+bDz3sXAhX8P/yiZ/ehl916mIZ364HkwGqAajENAGsm0gAgxm7A 854eQl6AqsFuADDEQwgFIkgNQQNg0Qj062EQRo5Gog0Ai73sXQXCKGGBz4AjL3oq CBkAUoPdAHg09u6BxQKyAZBY6N2DMxqxJSQg3gfFhBMSjqQMTRtEJmWqZSZSAABf 1zKM+4rQ4QAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <image x="12" y="5" clip-path="url(#clipPath309)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="34" xml:space="preserve" y="17" clip-path="url(#clipPath309)" stroke="none">AbstractPlayer</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(1722,1648)" stroke="rgb(120,120,120)"> + <path d="M0 0 L232 0 L232 138 L0 138 L0 0 ZM1 1 L231 1 L231 137 L1 137 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath310)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1723,1676)" stroke="rgb(60,63,65)"> + <rect x="0" width="230" height="109" y="0" clip-path="url(#clipPath312)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1880,1677)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath101)" stroke="none">List<String></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1725,1677)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath52)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath52)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath52)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAYUlEQVR42mNgQAL/ //+XAWEGUgFQkxiU7gNhZDFiNLMA8R4gDgDiCUDcD8TBQLwXJEesITZAvAaI06B4 LUiMFC9Yk20A1At7oc7uh2I/qLdYKAlEUXJiAxSN0gyjYBSQCAC6M4ZDFG2KEwAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath52)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath52)" stroke="none">botNames</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1723,1676)" stroke="gray"> + <rect x="0" width="230" height="1" y="22" clip-path="url(#clipPath313)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1723,1698)" stroke="gray"> + <rect x="0" width="230" height="1" y="0" clip-path="url(#clipPath291)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1902,1700)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1725,1700)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath238)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath238)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath238)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath238)" stroke="none">isWorking()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1922,1722)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1725,1722)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath316)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath316)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath316)" stroke="none">pickCharacters(List<String>, int)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1885,1744)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath155)" stroke="none">ActionType</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1725,1744)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath274)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath274)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath274)" stroke="none">play(Game, Character)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1902,1766)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath117)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1725,1766)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath319)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath319)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath319)" stroke="none">isBot()</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1723,1649)" stroke="rgb(60,60,60)"> + <rect x="0" width="230" height="27" y="0" clip-path="url(#clipPath308)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(1723,1649)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="230" height="1" y="26" clip-path="url(#clipPath308)" stroke="none"/> + </g> + <g fill="rgb(128,203,196)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1723,1649)" stroke="rgb(128,203,196)"> + <image x="2" y="5" clip-path="url(#clipPath309)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlUlEQVR42mNgoBVw 2P+fI+DQtzIQBrFJ0ux35Hu0/+HvD4H4ExQ/BIkR1njomzVQ8Ukg/uN3+Pscr/1f JEAYxAaJgeRAarBqBkouBOL/QLzb79BPPUzDf+qB5KBqFmIz4D8JBvzHZ8B/PF74 T6wBMAwLRAw5Yg3AiQenAQtJMGAhoYSESyPuhIQjKcM0EpeUqZaZSAEA6RdrfECM AgkAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath309)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath309)" stroke="none">Bot</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(419,2735)" stroke="rgb(120,120,120)"> + <path d="M0 0 L235 0 L235 226 L0 226 L0 0 ZM1 1 L234 1 L234 225 L1 225 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath320)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(420,2763)" stroke="rgb(60,63,65)"> + <rect x="0" width="233" height="197" y="0" clip-path="url(#clipPath322)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(422,2764)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath101)" stroke="none">MOVE_PASS</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(422,2786)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath64)" stroke="none">MOVE_LEFT</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(422,2808)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath55)" stroke="none">MOVE_RIGHT</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(422,2830)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath327)" stroke="none">MOVE_UP</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(422,2852)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath40)" stroke="none">MOVE_DOWN</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(422,2874)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath222)" stroke="none">CAST_ATTACK</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(422,2896)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath40)" stroke="none">DO_NOTHING</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(420,2763)" stroke="gray"> + <rect x="0" width="233" height="1" y="154" clip-path="url(#clipPath331)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(420,2917)" stroke="gray"> + <rect x="0" width="233" height="1" y="0" clip-path="url(#clipPath332)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(585,2919)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath155)" stroke="none">ActionType</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(422,2919)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath334)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="5" clip-path="url(#clipPath334)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="12" y="5" clip-path="url(#clipPath334)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="25" xml:space="preserve" y="15" clip-path="url(#clipPath334)" stroke="none">parseFromKey(KeyStroke)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(614,2941)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath202)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(422,2941)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath337)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath337)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="25" xml:space="preserve" y="15" clip-path="url(#clipPath337)" stroke="none">toString()</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(420,2736)" stroke="rgb(60,60,60)"> + <rect x="0" width="233" height="27" y="0" clip-path="url(#clipPath338)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(420,2736)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="233" height="1" y="26" clip-path="url(#clipPath338)" stroke="none"/> + </g> + <g fill="rgb(128,203,196)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(420,2736)" stroke="rgb(128,203,196)"> + <image x="2" y="8" clip-path="url(#clipPath339)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAfUlEQVR42mNgoBf4 0Z3r/a07uxyngu89Of/R8bee3BCYZiD/B0Q8t4okA1A1wzAWQ7AZAMTzMDVDDUf3 DnYDcmuA9DMscj9ALiPOC5356miGYGqGGJAdj4H7CxTAgYgwBLtmfAaAMZif0w70 0kqYHNGxAMLY5EYNwGLAgAEAIYuIaXX7GbUAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="8" clip-path="url(#clipPath339)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="28" xml:space="preserve" y="17" clip-path="url(#clipPath339)" stroke="none">ActionType</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(0,2735)" stroke="rgb(120,120,120)"> + <path d="M0 0 L374 0 L374 314 L0 314 L0 0 ZM1 1 L373 1 L373 313 L1 313 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath340)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1,2763)" stroke="rgb(60,63,65)"> + <rect x="0" width="372" height="285" y="0" clip-path="url(#clipPath342)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(161,2764)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath277)" stroke="none">HashMap<String, CharacterTemplate></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(3,2764)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath344)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath344)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath344)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath344)" stroke="none">characterTemplates</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(338,2786)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath154)" stroke="none">Gson</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(3,2786)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath155)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath155)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath155)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath155)" stroke="none">gson</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(334,2808)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(3,2808)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath261)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath261)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath261)" stroke="none">type</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(334,2830)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(3,2830)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath261)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath261)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath261)" stroke="none">icon</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(351,2852)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(3,2852)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath349)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath349)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath349)" stroke="none">maxActionPoints</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(351,2874)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(3,2874)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath263)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath263)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath263)" stroke="none">maxHealth</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(351,2896)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(3,2896)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath171)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath171)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath171)" stroke="none">magicArmor</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(351,2918)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(3,2918)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath234)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath234)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath234)" stroke="none">physicArmor</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(351,2940)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(3,2940)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath354)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath354)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath354)" stroke="none">physicAtk</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(351,2962)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(3,2962)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath356)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath356)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath356)" stroke="none">magicAtk</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1,2763)" stroke="gray"> + <rect x="0" width="372" height="1" y="220" clip-path="url(#clipPath357)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1,2983)" stroke="gray"> + <rect x="0" width="372" height="1" y="0" clip-path="url(#clipPath358)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(265,2985)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath92)" stroke="none">CharacterTemplate</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(3,2985)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath83)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath83)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath83)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath83)" stroke="none">load(String)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(265,3007)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath92)" stroke="none">CharacterTemplate</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(3,3007)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath361)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath361)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath361)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath361)" stroke="none">getCharacterTemplate(String)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(161,3029)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath364)" stroke="none">HashMap<String, CharacterTemplate></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(3,3029)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath365)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="2" y="2" clip-path="url(#clipPath365)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAVElEQVR42mNgGAWj AAn8Dy3k/B9YpAbGQDZpmtPSWP8HFcwGYm8ong0SI95moAYMcZAhxLgEqEjlf2Ch B5gdXHAEhMFsoBhIji4GUOYFigOR0mgEAN5QUkHk3R9LAAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath365)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath365)" stroke="none">getCharacterTemplates()</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1,2736)" stroke="rgb(60,60,60)"> + <rect x="0" width="372" height="27" y="0" clip-path="url(#clipPath366)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(1,2736)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="372" height="1" y="26" clip-path="url(#clipPath366)" stroke="none"/> + </g> + <g fill="rgb(128,203,196)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1,2736)" stroke="rgb(128,203,196)"> + <image x="2" y="5" clip-path="url(#clipPath367)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlUlEQVR42mNgoBVw 2P+fI+DQtzIQBrFJ0ux35Hu0/+HvD4H4ExQ/BIkR1njomzVQ8Ukg/uN3+Pscr/1f JEAYxAaJgeRAarBqBkouBOL/QLzb79BPPUzDf+qB5KBqFmIz4D8JBvzHZ8B/PF74 T6wBMAwLRAw5Yg3AiQenAQtJMGAhoYSESyPuhIQjKcM0EpeUqZaZSAEA6RdrfECM AgkAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath367)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath367)" stroke="none">CharacterTemplate</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(1701,2735)" stroke="rgb(120,120,120)"> + <path d="M0 0 L142 0 L142 27 L0 27 L0 0 ZM1 1 L141 1 L141 26 L1 26 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath368)" stroke="none"/> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1702,2736)" stroke="rgb(60,60,60)"> + <rect x="0" width="140" height="27" y="0" clip-path="url(#clipPath369)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(1702,2736)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="140" height="1" y="26" clip-path="url(#clipPath369)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1702,2736)" stroke="rgb(238,255,255)"> + <image x="2" y="8" clip-path="url(#clipPath369)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAo0lEQVR42mNgGBTg /6pQ5v9nMr3/n8mOh+NTWb7EG3Aqp+n/6ez/mDirnjgDTmevwm4ATvwZiP3RDTiF 4gV8GKT2dPZydANWEe1ldPUwgYYTJ/jqTx/ZAMQn6s8e0iPZgMYzRzMbTh/5D8Zn jqwk2YCmk0ctgZp/gwxoPH2klGQDQOz6k4fVGk4dsyIrDMgPRJwJCQ8G6sGflPFi oFqgnsGREQF4ei3GYQceTQAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="18" xml:space="preserve" y="17" clip-path="url(#clipPath369)" stroke="none">Package attack</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(1173,2735)" stroke="rgb(120,120,120)"> + <path d="M0 0 L121 0 L121 160 L0 160 L0 0 ZM1 1 L120 1 L120 159 L1 159 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath370)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1174,2763)" stroke="rgb(60,63,65)"> + <rect x="0" width="119" height="131" y="0" clip-path="url(#clipPath372)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1176,2764)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">IDLE</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1176,2786)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath83)" stroke="none">CASTING_ATTACK</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1176,2808)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath126)" stroke="none">STUNNED</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1176,2830)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath126)" stroke="none">SILENCED</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1254,2852)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1176,2852)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath378)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath378)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAOElEQVR42mNgGAW0 Aw0NDTr19fUTQBjEJlkzEH8H4v9Q/J0kQ6C2/kfGIDH6GUCxFygOxFFAGgAAYH9F mbh+I2oAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="25" xml:space="preserve" y="15" clip-path="url(#clipPath378)" stroke="none">value</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1174,2763)" stroke="gray"> + <rect x="0" width="119" height="1" y="110" clip-path="url(#clipPath379)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1174,2873)" stroke="gray"> + <rect x="0" width="119" height="1" y="0" clip-path="url(#clipPath380)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1254,2875)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath202)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1176,2875)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath337)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath337)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="25" xml:space="preserve" y="15" clip-path="url(#clipPath337)" stroke="none">toString()</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1174,2736)" stroke="rgb(60,60,60)"> + <rect x="0" width="119" height="27" y="0" clip-path="url(#clipPath383)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(1174,2736)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="119" height="1" y="26" clip-path="url(#clipPath383)" stroke="none"/> + </g> + <g fill="rgb(128,203,196)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1174,2736)" stroke="rgb(128,203,196)"> + <image x="2" y="8" clip-path="url(#clipPath384)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAfUlEQVR42mNgoBf4 0Z3r/a07uxyngu89Of/R8bee3BCYZiD/B0Q8t4okA1A1wzAWQ7AZAMTzMDVDDUf3 DnYDcmuA9DMscj9ALiPOC5356miGYGqGGJAdj4H7CxTAgYgwBLtmfAaAMZif0w70 0kqYHNGxAMLY5EYNwGLAgAEAIYuIaXX7GbUAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="8" clip-path="url(#clipPath384)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="28" xml:space="preserve" y="17" clip-path="url(#clipPath384)" stroke="none">Status</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(1170,1648)" stroke="rgb(120,120,120)"> + <path d="M0 0 L220 0 L220 974 L0 974 L0 0 ZM1 1 L219 1 L219 973 L1 973 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath385)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1171,1676)" stroke="rgb(60,63,65)"> + <rect x="0" width="218" height="945" y="0" clip-path="url(#clipPath387)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1343,1677)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath208)" stroke="none">Coords</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,1677)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath327)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath327)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath327)" stroke="none">pos</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1350,1699)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,1699)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath261)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath261)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath261)" stroke="none">type</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1350,1721)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,1721)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath261)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath261)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath261)" stroke="none">icon</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1367,1743)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,1743)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath92)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath92)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath92)" stroke="none">actionPoints</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1367,1765)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,1765)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath349)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath349)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath349)" stroke="none">maxActionPoints</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1367,1787)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,1787)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath27)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath27)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath27)" stroke="none">health</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1367,1809)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,1809)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath263)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath263)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath263)" stroke="none">maxHealth</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1367,1831)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,1831)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath171)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath171)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath171)" stroke="none">magicArmor</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1367,1853)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,1853)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath22)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath22)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath22)" stroke="none">armor</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1367,1875)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,1875)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath354)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath354)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath354)" stroke="none">physicAtk</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1367,1897)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,1897)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath356)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath356)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath356)" stroke="none">magicAtk</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1317,1919)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath215)" stroke="none">List<Effect></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,1919)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath400)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath400)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath400)" stroke="none">effects</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1281,1941)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath92)" stroke="none">CyclicList<Attack></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,1941)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath55)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath55)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath55)" stroke="none">attacks</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1343,1963)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath208)" stroke="none">Coords</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,1963)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath70)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath70)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath70)" stroke="none">aimingAt</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1338,1985)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,1985)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath31)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath31)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath31)" stroke="none">hasAttacked</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1305,2007)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath222)" stroke="none">AbstractPlayer</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,2007)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath27)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath27)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath27)" stroke="none">owner</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1171,1676)" stroke="gray"> + <rect x="0" width="218" height="1" y="352" clip-path="url(#clipPath405)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1171,2028)" stroke="gray"> + <rect x="0" width="218" height="1" y="0" clip-path="url(#clipPath406)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1350,2030)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,2030)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath267)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath267)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath267)" stroke="none">toString()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1358,2052)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,2052)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath263)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath263)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath263)" stroke="none">turnReset()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1358,2074)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,2074)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath410)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath410)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath410)" stroke="none">addEffect(Effect)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1358,2096)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,2096)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath54)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath54)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath54)" stroke="none">removeEffect(Effect)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1358,2118)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,2118)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath74)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath74)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath74)" stroke="none">attack(Attack)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1358,2140)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,2140)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath414)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath414)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath414)" stroke="none">damage(DamageType, int)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1350,2162)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,2162)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath267)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath267)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath267)" stroke="none">getType()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1350,2184)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,2184)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath227)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath227)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath227)" stroke="none">getIcon()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1281,2206)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath92)" stroke="none">CyclicList<Attack></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,2206)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath418)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath418)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath418)" stroke="none">getAttacks()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1367,2228)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,2228)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath420)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath420)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath420)" stroke="none">getActionPoints()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1367,2250)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,2250)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath422)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath422)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath422)" stroke="none">getMaxActionPoints()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1367,2272)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,2272)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath110)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath110)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath110)" stroke="none">getHealth()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1367,2294)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,2294)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath286)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath286)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath286)" stroke="none">getMaxHealth()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1367,2316)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,2316)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath426)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath426)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath426)" stroke="none">getMagicArmor()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1367,2338)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,2338)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath35)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath35)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath35)" stroke="none">getArmor()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1367,2360)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,2360)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath129)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath129)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath129)" stroke="none">getPhysicAtk()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1367,2382)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,2382)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath104)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath104)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath104)" stroke="none">getMagicAtk()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1317,2404)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath215)" stroke="none">List<Effect></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,2404)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath110)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath110)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath110)" stroke="none">getEffects()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1338,2426)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,2426)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath432)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath432)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath432)" stroke="none">hasAttacked()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1305,2448)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath222)" stroke="none">AbstractPlayer</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,2448)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath110)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath110)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath110)" stroke="none">getOwner()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1343,2470)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath208)" stroke="none">Coords</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,2470)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath61)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath61)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath61)" stroke="none">getPos()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1358,2492)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,2492)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath66)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath66)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath66)" stroke="none">setPos(Coords)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1343,2514)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath208)" stroke="none">Coords</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,2514)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath104)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath104)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath104)" stroke="none">getAimingAt()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1358,2536)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,2536)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath99)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath99)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath99)" stroke="none">setAimingAt(Coords)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1358,2558)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,2558)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath52)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath52)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath52)" stroke="none">resetAim()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1358,2580)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,2580)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath440)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath440)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath440)" stroke="none">consumeActionPoints(int)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1284,2602)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath443)" stroke="none">List<StyledString></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1173,2602)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath444)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath444)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath444)" stroke="none">getDescription()</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1171,1649)" stroke="rgb(60,60,60)"> + <rect x="0" width="218" height="27" y="0" clip-path="url(#clipPath445)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(1171,1649)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="218" height="1" y="26" clip-path="url(#clipPath445)" stroke="none"/> + </g> + <g fill="rgb(128,203,196)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1171,1649)" stroke="rgb(128,203,196)"> + <image x="2" y="5" clip-path="url(#clipPath446)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlUlEQVR42mNgoBVw 2P+fI+DQtzIQBrFJ0ux35Hu0/+HvD4H4ExQ/BIkR1njomzVQ8Ukg/uN3+Pscr/1f JEAYxAaJgeRAarBqBkouBOL/QLzb79BPPUzDf+qB5KBqFmIz4D8JBvzHZ8B/PF74 T6wBMAwLRAw5Yg3AiQenAQtJMGAhoYSESyPuhIQjKcM0EpeUqZaZSAEA6RdrfECM AgkAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath446)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath446)" stroke="none">Character</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(153,2366)" stroke="rgb(120,120,120)"> + <path d="M0 0 L337 0 L337 49 L0 49 L0 0 ZM1 1 L336 1 L336 48 L1 48 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath447)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(154,2394)" stroke="rgb(60,63,65)"> + <rect x="0" width="335" height="20" y="0" clip-path="url(#clipPath449)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(458,2395)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath306)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(156,2395)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath450)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath450)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath450)" stroke="none">display(TerminalGameInput, TerminalGameRenderer)</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(154,2367)" stroke="rgb(60,60,60)"> + <rect x="0" width="335" height="27" y="0" clip-path="url(#clipPath451)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(154,2367)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="335" height="1" y="26" clip-path="url(#clipPath451)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(154,2367)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath452)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlUlEQVR42mNgoBVw 2P+fI+DQtzIQBrFJ0ux35Hu0/+HvD4H4ExQ/BIkR1njomzVQ8Ukg/uN3+Pscr/1f JEAYxAaJgeRAarBqBkouBOL/QLzb79BPPUzDf+qB5KBqFmIz4D8JBvzHZ8B/PF74 T6wBMAwLRAw5Yg3AiQenAQtJMGAhoYSESyPuhIQjKcM0EpeUqZaZSAEA6RdrfECM AgkAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath452)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath452)" stroke="none">WinnerScreen</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(531,2354)" stroke="rgb(120,120,120)"> + <path d="M0 0 L337 0 L337 336 L0 336 L0 0 ZM1 1 L336 1 L336 335 L1 335 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath453)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(532,2382)" stroke="rgb(60,63,65)"> + <rect x="0" width="335" height="307" y="0" clip-path="url(#clipPath455)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(828,2383)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">Game</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(534,2383)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath215)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath215)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath215)" stroke="none">game</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(816,2405)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(534,2405)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath213)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath213)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath213)" stroke="none">skip</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(831,2427)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath459)" stroke="none">Label</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(534,2427)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath286)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath286)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath286)" stroke="none">maxPlayerLabel</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(812,2449)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath461)" stroke="none">TextField</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(534,2449)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath418)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath418)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath418)" stroke="none">pseudoField</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(798,2471)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath463)" stroke="none">ColorPicker</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(534,2471)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath35)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath35)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath35)" stroke="none">colorPicker</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(797,2493)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath64)" stroke="none">IntegerField</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(534,2493)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath334)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath334)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath334)" stroke="none">characterPerPlayerField</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(771,2515)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath159)" stroke="none">PlayerListWidget</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(534,2515)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath267)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath267)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath267)" stroke="none">playerList</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(780,2537)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath467)" stroke="none">InvisibleButton</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(534,2537)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath410)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath410)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath410)" stroke="none">addPlayerButton</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(780,2559)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath467)" stroke="none">InvisibleButton</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(534,2559)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath74)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath74)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath74)" stroke="none">addBotButton</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(780,2581)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath467)" stroke="none">InvisibleButton</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(534,2581)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath470)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath470)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath470)" stroke="none">confirmButton</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(532,2382)" stroke="gray"> + <rect x="0" width="335" height="1" y="220" clip-path="url(#clipPath471)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(532,2602)" stroke="gray"> + <rect x="0" width="335" height="1" y="0" clip-path="url(#clipPath472)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(836,2604)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(534,2604)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath474)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath474)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath474)" stroke="none">display(TerminalGameInput, TerminalGameRenderer)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(836,2626)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(534,2626)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath10)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath10)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath10)" stroke="none">showPlayerSubMenu(Game)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(836,2648)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(534,2648)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath79)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath79)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath79)" stroke="none">hidePlayerSubMenu()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(845,2670)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath478)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(534,2670)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath479)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath479)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath479)" stroke="none">getMaxCharacterCount()</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(532,2355)" stroke="rgb(60,60,60)"> + <rect x="0" width="335" height="27" y="0" clip-path="url(#clipPath451)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(532,2355)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="335" height="1" y="26" clip-path="url(#clipPath451)" stroke="none"/> + </g> + <g fill="rgb(128,203,196)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(532,2355)" stroke="rgb(128,203,196)"> + <image x="2" y="5" clip-path="url(#clipPath452)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlUlEQVR42mNgoBVw 2P+fI+DQtzIQBrFJ0ux35Hu0/+HvD4H4ExQ/BIkR1njomzVQ8Ukg/uN3+Pscr/1f JEAYxAaJgeRAarBqBkouBOL/QLzb79BPPUzDf+qB5KBqFmIz4D8JBvzHZ8B/PF74 T6wBMAwLRAw5Yg3AiQenAQtJMGAhoYSESyPuhIQjKcM0EpeUqZaZSAEA6RdrfECM AgkAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath452)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath452)" stroke="none">LobbyScreen</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(772,2030)" stroke="rgb(120,120,120)"> + <path d="M0 0 L353 0 L353 270 L0 270 L0 0 ZM1 1 L352 1 L352 269 L1 269 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath480)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(773,2058)" stroke="rgb(60,63,65)"> + <rect x="0" width="351" height="241" y="0" clip-path="url(#clipPath482)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1036,2059)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath484)" stroke="none">TextBoxWidget</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(775,2059)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath356)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath356)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath356)" stroke="none">gameInfo</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1019,2081)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath181)" stroke="none">List<StyledString></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(775,2081)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath155)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath155)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath155)" stroke="none">infos</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(963,2103)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath487)" stroke="none">HorizontalComboBoxWidget</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(775,2103)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath181)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath181)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath181)" stroke="none">attackSelect</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1028,2125)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath159)" stroke="none">PlayerListWidget</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(775,2125)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath238)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath238)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath238)" stroke="none">playerListW</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1009,2147)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath432)" stroke="none">CharacterListWidget</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(775,2147)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath470)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath470)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath470)" stroke="none">characterListW</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1088,2169)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath459)" stroke="none">Label</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(775,2169)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath35)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath35)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath35)" stroke="none">statusLabel</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1088,2191)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath459)" stroke="none">Label</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(775,2191)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath382)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath382)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath382)" stroke="none">subStatusLabel</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1085,2213)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">Game</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(775,2213)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath215)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath215)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath215)" stroke="none">game</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(773,2058)" stroke="gray"> + <rect x="0" width="351" height="1" y="176" clip-path="url(#clipPath493)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(773,2234)" stroke="gray"> + <rect x="0" width="351" height="1" y="0" clip-path="url(#clipPath494)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1093,2236)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(775,2236)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath474)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath474)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath474)" stroke="none">display(TerminalGameInput, TerminalGameRenderer)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1093,2258)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(775,2258)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath99)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath99)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath99)" stroke="none">addInfo(StyledString)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1093,2280)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath306)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(775,2280)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath499)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath499)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath499)" stroke="none">addInfo(String)</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(773,2031)" stroke="rgb(60,60,60)"> + <rect x="0" width="351" height="27" y="0" clip-path="url(#clipPath500)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(773,2031)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="351" height="1" y="26" clip-path="url(#clipPath500)" stroke="none"/> + </g> + <g fill="rgb(128,203,196)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(773,2031)" stroke="rgb(128,203,196)"> + <image x="2" y="5" clip-path="url(#clipPath501)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlUlEQVR42mNgoBVw 2P+fI+DQtzIQBrFJ0ux35Hu0/+HvD4H4ExQ/BIkR1njomzVQ8Ukg/uN3+Pscr/1f JEAYxAaJgeRAarBqBkouBOL/QLzb79BPPUzDf+qB5KBqFmIz4D8JBvzHZ8B/PF74 T6wBMAwLRAw5Yg3AiQenAQtJMGAhoYSESyPuhIQjKcM0EpeUqZaZSAEA6RdrfECM AgkAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath501)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath501)" stroke="none">GameScreen</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(643,1783)" stroke="rgb(120,120,120)"> + <path d="M0 0 L337 0 L337 138 L0 138 L0 0 ZM1 1 L336 1 L336 137 L1 137 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath502)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(644,1811)" stroke="rgb(60,63,65)"> + <rect x="0" width="335" height="109" y="0" clip-path="url(#clipPath504)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(940,1812)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">Game</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(646,1812)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath215)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath215)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath215)" stroke="none">game</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(883,1834)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath159)" stroke="none">PlayerListWidget</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(646,1834)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath238)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath238)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath238)" stroke="none">playerListW</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(928,1856)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(646,1856)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath213)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath213)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath213)" stroke="none">skip</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(957,1878)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(646,1878)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath86)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath86)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath86)" stroke="none">characterPerPlayer</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(644,1811)" stroke="gray"> + <rect x="0" width="335" height="1" y="88" clip-path="url(#clipPath505)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(644,1899)" stroke="gray"> + <rect x="0" width="335" height="1" y="0" clip-path="url(#clipPath472)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(948,1901)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath306)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(646,1901)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath450)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath450)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath450)" stroke="none">display(TerminalGameInput, TerminalGameRenderer)</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(644,1784)" stroke="rgb(60,60,60)"> + <rect x="0" width="335" height="27" y="0" clip-path="url(#clipPath451)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(644,1784)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="335" height="1" y="26" clip-path="url(#clipPath451)" stroke="none"/> + </g> + <g fill="rgb(128,203,196)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(644,1784)" stroke="rgb(128,203,196)"> + <image x="2" y="5" clip-path="url(#clipPath452)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlUlEQVR42mNgoBVw 2P+fI+DQtzIQBrFJ0ux35Hu0/+HvD4H4ExQ/BIkR1njomzVQ8Ukg/uN3+Pscr/1f JEAYxAaJgeRAarBqBkouBOL/QLzb79BPPUzDf+qB5KBqFmIz4D8JBvzHZ8B/PF74 T6wBMAwLRAw5Yg3AiQenAQtJMGAhoYSESyPuhIQjKcM0EpeUqZaZSAEA6RdrfECM AgkAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath452)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath452)" stroke="none">CharacterSelectionScreen</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(79,1794)" stroke="rgb(120,120,120)"> + <path d="M0 0 L341 0 L341 116 L0 116 L0 0 ZM1 1 L340 1 L340 115 L1 115 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath507)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(80,1822)" stroke="rgb(60,63,65)"> + <rect x="0" width="339" height="87" y="0" clip-path="url(#clipPath509)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(368,1823)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(82,1823)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath213)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath213)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath213)" stroke="none">skip</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(397,1845)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(82,1845)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath250)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath250)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath250)" stroke="none">i</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(351,1867)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath155)" stroke="none">LoadingBar</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(82,1867)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath57)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath57)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath57)" stroke="none">bar</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(80,1822)" stroke="gray"> + <rect x="0" width="339" height="1" y="66" clip-path="url(#clipPath513)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(80,1888)" stroke="gray"> + <rect x="0" width="339" height="1" y="0" clip-path="url(#clipPath514)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(388,1890)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath306)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(82,1890)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath450)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath450)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath450)" stroke="none">display(TerminalGameInput, TerminalGameRenderer)</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(80,1795)" stroke="rgb(60,60,60)"> + <rect x="0" width="339" height="27" y="0" clip-path="url(#clipPath517)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(80,1795)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="339" height="1" y="26" clip-path="url(#clipPath517)" stroke="none"/> + </g> + <g fill="rgb(128,203,196)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(80,1795)" stroke="rgb(128,203,196)"> + <image x="2" y="5" clip-path="url(#clipPath518)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlUlEQVR42mNgoBVw 2P+fI+DQtzIQBrFJ0ux35Hu0/+HvD4H4ExQ/BIkR1njomzVQ8Ukg/uN3+Pscr/1f JEAYxAaJgeRAarBqBkouBOL/QLzb79BPPUzDf+qB5KBqFmIz4D8JBvzHZ8B/PF74 T6wBMAwLRAw5Yg3AiQenAQtJMGAhoYSESyPuhIQjKcM0EpeUqZaZSAEA6RdrfECM AgkAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath518)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath518)" stroke="none">TestScreen</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(382,1962)" stroke="rgb(120,120,120)"> + <path d="M0 0 L337 0 L337 336 L0 336 L0 0 ZM1 1 L336 1 L336 335 L1 335 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath519)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(383,1990)" stroke="rgb(60,63,65)"> + <rect x="0" width="335" height="307" y="0" clip-path="url(#clipPath455)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(606,1991)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath221)" stroke="none">CyclicList<Widget></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(385,1991)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath171)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath171)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath171)" stroke="none">components</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(672,2013)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath208)" stroke="none">Widget</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(385,2013)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath152)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath152)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath152)" stroke="none">focus</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(658,2035)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath126)" stroke="none">KeyStroke</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(385,2035)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath227)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath227)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath227)" stroke="none">focusKey</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(383,1990)" stroke="gray"> + <rect x="0" width="335" height="1" y="66" clip-path="url(#clipPath520)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(383,2056)" stroke="gray"> + <rect x="0" width="335" height="1" y="0" clip-path="url(#clipPath472)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(687,2058)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(385,2058)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath104)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath104)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath104)" stroke="none">disableFocus()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(687,2080)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(385,2080)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath74)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath74)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath74)" stroke="none">enableFocus()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(672,2102)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath208)" stroke="none">Widget</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(385,2102)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath524)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath524)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath524)" stroke="none">setFocused(Widget)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(672,2124)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath208)" stroke="none">Widget</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(385,2124)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath68)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath68)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath68)" stroke="none">setFocused(int)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(672,2146)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath208)" stroke="none">Widget</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(385,2146)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath97)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath97)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath97)" stroke="none">getFocusedWidget()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(672,2168)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath208)" stroke="none">Widget</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(385,2168)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath83)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath83)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath83)" stroke="none">nextFocus()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(672,2190)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath208)" stroke="none">Widget</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(385,2190)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath83)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath83)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath83)" stroke="none">prevFocus()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(638,2212)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath95)" stroke="none">List<Widget></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(385,2212)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath102)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath102)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath102)" stroke="none">getComponents()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(672,2234)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath208)" stroke="none">Widget</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(385,2234)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath298)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath298)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath298)" stroke="none">addComponent(Widget)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(687,2256)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(385,2256)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath274)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath274)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath274)" stroke="none">keyPressed(KeyStroke)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(687,2278)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath306)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(385,2278)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath450)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA+klEQVR42mNgGDKg YcV/nYb9/1lI17jqv1zTyv/Lm1b9/w/E1xpX/XdFUdC48n88Mm5e/d8BrHHzfy4g vwGo6RsQ32pa/T8OSK+HGrSpftV/FbABUAE4bl71fxVU/BFYbPX/6UBXsCFZ6AsU /wnCLSv/2+F0OtTAD2DFq/93d6z6z9+4+n801OAPUMtCIIpX/88CCswHYyAbbsDq /xFARZlA9hsg/gHEf4DhMbtt1X9RogyAKWhf+l8Q6qI0ZBfCDcDpBaALsGlYteo/ M4YBIA6WQPwAdHIJKBBhGoDh4AykL2MEYsPy/wp4oxHihVsY0UhxQqJ5UqY5AACl +ynQwNob5AAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath450)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath450)" stroke="none">display(TerminalGameInput, TerminalGameRenderer)</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(383,1963)" stroke="rgb(60,60,60)"> + <rect x="0" width="335" height="27" y="0" clip-path="url(#clipPath451)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(383,1963)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="335" height="1" y="26" clip-path="url(#clipPath451)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(383,1963)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath452)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAyklEQVR42mNgoBXY f7+B49DznjIQBrFJ0nzkZU/04Re9D4H4ExQ/BIkR1HjoZb81UPFJIP4DxHP2v+qS AGEQGyp2EqQGq+bDz3sXAhX8P/yiZ/ehl916mIZ364HkwGqAajENAGsm0gAgxm7A 854eQl6AqsFuADDEQwgFIkgNQQNg0Qj062EQRo5Gog0Ai73sXQXCKGGBz4AjL3oq CBkAUoPdAHg09u6BxQKyAZBY6N2DMxqxJSQg3gfFhBMSjqQMTRtEJmWqZSZSAABf 1zKM+4rQ4QAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath452)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath452)" stroke="none">Screen</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(353,1648)" stroke="rgb(120,120,120)"> + <path d="M0 0 L337 0 L337 94 L0 94 L0 0 ZM1 1 L336 1 L336 93 L1 93 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath529)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(354,1676)" stroke="rgb(60,63,65)"> + <rect x="0" width="335" height="65" y="0" clip-path="url(#clipPath531)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(638,1677)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(356,1677)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath213)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath213)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath213)" stroke="none">skip</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(650,1699)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">Game</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(356,1699)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath215)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath215)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath215)" stroke="none">game</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(354,1676)" stroke="gray"> + <rect x="0" width="335" height="1" y="44" clip-path="url(#clipPath532)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(354,1720)" stroke="gray"> + <rect x="0" width="335" height="1" y="0" clip-path="url(#clipPath472)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(658,1722)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath306)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(356,1722)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath450)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath450)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath450)" stroke="none">display(TerminalGameInput, TerminalGameRenderer)</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(354,1649)" stroke="rgb(60,60,60)"> + <rect x="0" width="335" height="27" y="0" clip-path="url(#clipPath451)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(354,1649)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="335" height="1" y="26" clip-path="url(#clipPath451)" stroke="none"/> + </g> + <g fill="rgb(128,203,196)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(354,1649)" stroke="rgb(128,203,196)"> + <image x="2" y="5" clip-path="url(#clipPath452)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlUlEQVR42mNgoBVw 2P+fI+DQtzIQBrFJ0ux35Hu0/+HvD4H4ExQ/BIkR1njomzVQ8Ukg/uN3+Pscr/1f JEAYxAaJgeRAarBqBkouBOL/QLzb79BPPUzDf+qB5KBqFmIz4D8JBvzHZ8B/PF74 T6wBMAwLRAw5Yg3AiQenAQtJMGAhoYSESyPuhIQjKcM0EpeUqZaZSAEA6RdrfECM AgkAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath452)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath452)" stroke="none">MapSelectionScreen</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(0,2118)" stroke="rgb(120,120,120)"> + <path d="M0 0 L341 0 L341 72 L0 72 L0 0 ZM1 1 L340 1 L340 71 L1 71 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath534)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1,2146)" stroke="rgb(60,63,65)"> + <rect x="0" width="339" height="43" y="0" clip-path="url(#clipPath536)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(289,2147)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(3,2147)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath213)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath213)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath213)" stroke="none">skip</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1,2146)" stroke="gray"> + <rect x="0" width="339" height="1" y="22" clip-path="url(#clipPath537)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1,2168)" stroke="gray"> + <rect x="0" width="339" height="1" y="0" clip-path="url(#clipPath514)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(309,2170)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath306)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(3,2170)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath450)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath450)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath450)" stroke="none">display(TerminalGameInput, TerminalGameRenderer)</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1,2119)" stroke="rgb(60,60,60)"> + <rect x="0" width="339" height="27" y="0" clip-path="url(#clipPath517)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(1,2119)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="339" height="1" y="26" clip-path="url(#clipPath517)" stroke="none"/> + </g> + <g fill="rgb(128,203,196)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1,2119)" stroke="rgb(128,203,196)"> + <image x="2" y="5" clip-path="url(#clipPath518)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlUlEQVR42mNgoBVw 2P+fI+DQtzIQBrFJ0ux35Hu0/+HvD4H4ExQ/BIkR1njomzVQ8Ukg/uN3+Pscr/1f JEAYxAaJgeRAarBqBkouBOL/QLzb79BPPUzDf+qB5KBqFmIz4D8JBvzHZ8B/PF74 T6wBMAwLRAw5Yg3AiQenAQtJMGAhoYSESyPuhIQjKcM0EpeUqZaZSAEA6RdrfECM AgkAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath518)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath518)" stroke="none">MainScreen</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(732,410)" stroke="rgb(120,120,120)"> + <path d="M0 0 L320 0 L320 556 L0 556 L0 0 ZM1 1 L319 1 L319 555 L1 555 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath539)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(733,438)" stroke="rgb(60,63,65)"> + <rect x="0" width="318" height="527" y="0" clip-path="url(#clipPath541)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1023,439)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath26)" stroke="none">Size</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(735,439)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath327)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath327)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath327)" stroke="none">size</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(946,461)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath181)" stroke="none">List<StyledString></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(735,461)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath58)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath58)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath58)" stroke="none">lines</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1000,483)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(735,483)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath27)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath27)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath27)" stroke="none">visible</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1015,505)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath459)" stroke="none">Align</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(735,505)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath155)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath155)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath155)" stroke="none">align</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1015,527)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath459)" stroke="none">Align</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(735,527)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath227)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath227)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath227)" stroke="none">textAlign</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(980,549)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath152)" stroke="none">StyledString</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(735,549)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath548)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath548)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath548)" stroke="none">title</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1009,571)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath550)" stroke="none">Colors</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(735,571)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath420)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath420)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath420)" stroke="none">backgroundColor</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1009,593)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath550)" stroke="none">Colors</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(735,593)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath418)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath418)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath418)" stroke="none">borderColor</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1000,615)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(735,615)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath110)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath110)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath110)" stroke="none">allowResize</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(733,438)" stroke="gray"> + <rect x="0" width="318" height="1" y="198" clip-path="url(#clipPath553)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(733,636)" stroke="gray"> + <rect x="0" width="318" height="1" y="0" clip-path="url(#clipPath554)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1012,638)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(735,638)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath68)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath68)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath68)" stroke="none">paint(Terminal)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1020,660)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(735,660)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath557)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath557)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath557)" stroke="none">setAllowResize(boolean)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1020,682)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(735,682)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath222)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath222)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath222)" stroke="none">toggle()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1000,704)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(735,704)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath267)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath267)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath267)" stroke="none">isVisible()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1020,726)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(735,726)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath561)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath561)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath561)" stroke="none">setVisible(boolean)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1009,748)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath550)" stroke="none">Colors</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(735,748)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath274)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath274)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath274)" stroke="none">getBackgroundColor()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1020,770)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(735,770)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath10)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath10)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath10)" stroke="none">setBackgroundColor(Colors)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1020,792)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(735,792)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath565)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath565)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath565)" stroke="none">setText(List<StyledString>)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(975,814)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath8)" stroke="none">StringBuilder</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(735,814)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath567)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath567)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath567)" stroke="none">makeList(Coords, Size, Size, StyledString)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(975,836)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath8)" stroke="none">StringBuilder</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(735,836)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath569)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath569)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath569)" stroke="none">makeList(Coords, Size, StyledString)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1023,858)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath26)" stroke="none">Size</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(735,858)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath467)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath467)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath467)" stroke="none">getSize()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1020,880)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(735,880)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath181)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath181)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath181)" stroke="none">setSize(Size)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1020,902)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(735,902)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath573)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath573)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath573)" stroke="none">addLine(StyledString)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(946,924)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath181)" stroke="none">List<StyledString></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(735,924)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath354)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath354)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath354)" stroke="none">getLines()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1020,946)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath306)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(735,946)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath577)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath577)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath577)" stroke="none">addLines(List<StyledString>)</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(733,411)" stroke="rgb(60,60,60)"> + <rect x="0" width="318" height="27" y="0" clip-path="url(#clipPath578)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(733,411)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="318" height="1" y="26" clip-path="url(#clipPath578)" stroke="none"/> + </g> + <g fill="rgb(128,203,196)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(733,411)" stroke="rgb(128,203,196)"> + <image x="2" y="5" clip-path="url(#clipPath579)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlUlEQVR42mNgoBVw 2P+fI+DQtzIQBrFJ0ux35Hu0/+HvD4H4ExQ/BIkR1njomzVQ8Ukg/uN3+Pscr/1f JEAYxAaJgeRAarBqBkouBOL/QLzb79BPPUzDf+qB5KBqFmIz4D8JBvzHZ8B/PF74 T6wBMAwLRAw5Yg3AiQenAQtJMGAhoYSESyPuhIQjKcM0EpeUqZaZSAEA6RdrfECM AgkAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath579)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath579)" stroke="none">TextBoxWidget</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(1460,1377)" stroke="rgb(120,120,120)"> + <path d="M0 0 L238 0 L238 226 L0 226 L0 0 ZM1 1 L237 1 L237 225 L1 225 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath580)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1461,1405)" stroke="rgb(60,63,65)"> + <rect x="0" width="236" height="197" y="0" clip-path="url(#clipPath582)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1560,1406)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath584)" stroke="none">CyclicList<StyledString></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1463,1406)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath585)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath585)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath585)" stroke="none">options</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1661,1428)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath459)" stroke="none">Align</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1463,1428)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath110)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath110)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath110)" stroke="none">alignement</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1461,1405)" stroke="gray"> + <rect x="0" width="236" height="1" y="44" clip-path="url(#clipPath587)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1461,1449)" stroke="gray"> + <rect x="0" width="236" height="1" y="0" clip-path="url(#clipPath588)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1666,1451)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1463,1451)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath557)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath557)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath557)" stroke="none">addOption(StyledString)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1560,1473)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath584)" stroke="none">CyclicList<StyledString></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1463,1473)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath171)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath171)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath171)" stroke="none">getOptions()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1666,1495)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1463,1495)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath592)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath592)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath592)" stroke="none">setOptions(StyledString...)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1666,1517)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1463,1517)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath184)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath184)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath184)" stroke="none">resetOptions()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1646,1539)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1463,1539)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath595)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath595)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath595)" stroke="none">handleInput(KeyStroke)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1626,1561)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath152)" stroke="none">StyledString</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1463,1561)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath159)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath159)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath159)" stroke="none">getValue()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1658,1583)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath202)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1463,1583)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath599)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath599)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath599)" stroke="none">paint(Terminal)</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1461,1378)" stroke="rgb(60,60,60)"> + <rect x="0" width="236" height="27" y="0" clip-path="url(#clipPath600)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(1461,1378)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="236" height="1" y="26" clip-path="url(#clipPath600)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1461,1378)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath601)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlUlEQVR42mNgoBVw 2P+fI+DQtzIQBrFJ0ux35Hu0/+HvD4H4ExQ/BIkR1njomzVQ8Ukg/uN3+Pscr/1f JEAYxAaJgeRAarBqBkouBOL/QLzb79BPPUzDf+qB5KBqFmIz4D8JBvzHZ8B/PF74 T6wBMAwLRAw5Yg3AiQenAQtJMGAhoYSESyPuhIQjKcM0EpeUqZaZSAEA6RdrfECM AgkAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath601)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath601)" stroke="none">HorizontalComboBoxWidget</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(1531,256)" stroke="rgb(120,120,120)"> + <path d="M0 0 L152 0 L152 116 L0 116 L0 0 ZM1 1 L151 1 L151 115 L1 115 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath602)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1532,284)" stroke="rgb(60,63,65)"> + <rect x="0" width="150" height="87" y="0" clip-path="url(#clipPath604)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1646,285)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath459)" stroke="none">Align</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1534,285)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath110)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath110)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath110)" stroke="none">alignement</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1611,307)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath152)" stroke="none">StyledString</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1534,307)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath215)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath215)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath215)" stroke="none">string</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1532,284)" stroke="gray"> + <rect x="0" width="150" height="1" y="44" clip-path="url(#clipPath607)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1532,328)" stroke="gray"> + <rect x="0" width="150" height="1" y="0" clip-path="url(#clipPath608)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1611,330)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath152)" stroke="none">StyledString</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1534,330)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath137)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath137)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath137)" stroke="none">getText()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1643,352)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath202)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1534,352)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath599)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath599)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath599)" stroke="none">paint(Terminal)</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1532,257)" stroke="rgb(60,60,60)"> + <rect x="0" width="150" height="27" y="0" clip-path="url(#clipPath612)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(1532,257)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="150" height="1" y="26" clip-path="url(#clipPath612)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1532,257)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath613)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlUlEQVR42mNgoBVw 2P+fI+DQtzIQBrFJ0ux35Hu0/+HvD4H4ExQ/BIkR1njomzVQ8Ukg/uN3+Pscr/1f JEAYxAaJgeRAarBqBkouBOL/QLzb79BPPUzDf+qB5KBqFmIz4D8JBvzHZ8B/PF74 T6wBMAwLRAw5Yg3AiQenAQtJMGAhoYSESyPuhIQjKcM0EpeUqZaZSAEA6RdrfECM AgkAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath613)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath613)" stroke="none">Button</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(1693,914)" stroke="rgb(120,120,120)"> + <path d="M0 0 L205 0 L205 226 L0 226 L0 0 ZM1 1 L204 1 L204 225 L1 225 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath614)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1694,942)" stroke="rgb(60,63,65)"> + <rect x="0" width="203" height="197" y="0" clip-path="url(#clipPath616)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1826,943)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath152)" stroke="none">StyledString</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1696,943)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath585)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath585)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath585)" stroke="none">prompt</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1821,965)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath8)" stroke="none">StringBuilder</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1696,965)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath55)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath55)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath55)" stroke="none">builder</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1861,987)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath459)" stroke="none">Align</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1696,987)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath110)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath110)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath110)" stroke="none">alignement</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1775,1009)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath66)" stroke="none">Map<Integer, String></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1696,1009)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath267)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath267)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath267)" stroke="none">modifiers</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1875,1031)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1696,1031)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath132)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath132)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath132)" stroke="none">maxSize</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1694,942)" stroke="gray"> + <rect x="0" width="203" height="1" y="110" clip-path="url(#clipPath622)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1694,1052)" stroke="gray"> + <rect x="0" width="203" height="1" y="0" clip-path="url(#clipPath623)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1846,1054)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1696,1054)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath595)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath595)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath595)" stroke="none">handleInput(KeyStroke)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1858,1076)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1696,1076)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath68)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath68)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath68)" stroke="none">paint(Terminal)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1858,1098)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1696,1098)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath159)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath159)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath159)" stroke="none">getValue()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1866,1120)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath306)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1696,1120)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath628)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath628)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath628)" stroke="none">setValue(String)</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1694,915)" stroke="rgb(60,60,60)"> + <rect x="0" width="203" height="27" y="0" clip-path="url(#clipPath629)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(1694,915)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="203" height="1" y="26" clip-path="url(#clipPath629)" stroke="none"/> + </g> + <g fill="rgb(128,203,196)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1694,915)" stroke="rgb(128,203,196)"> + <image x="2" y="5" clip-path="url(#clipPath630)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlUlEQVR42mNgoBVw 2P+fI+DQtzIQBrFJ0ux35Hu0/+HvD4H4ExQ/BIkR1njomzVQ8Ukg/uN3+Pscr/1f JEAYxAaJgeRAarBqBkouBOL/QLzb79BPPUzDf+qB5KBqFmIz4D8JBvzHZ8B/PF74 T6wBMAwLRAw5Yg3AiQenAQtJMGAhoYSESyPuhIQjKcM0EpeUqZaZSAEA6RdrfECM AgkAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath630)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath630)" stroke="none">TextField</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(1732,449)" stroke="rgb(120,120,120)"> + <path d="M0 0 L156 0 L156 49 L0 49 L0 0 ZM1 1 L155 1 L155 48 L1 48 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath631)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1733,477)" stroke="rgb(60,63,65)"> + <rect x="0" width="154" height="20" y="0" clip-path="url(#clipPath79)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1848,478)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath202)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1735,478)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath599)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath599)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath599)" stroke="none">paint(Terminal)</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1733,450)" stroke="rgb(60,60,60)"> + <rect x="0" width="154" height="27" y="0" clip-path="url(#clipPath633)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(1733,450)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="154" height="1" y="26" clip-path="url(#clipPath633)" stroke="none"/> + </g> + <g fill="rgb(128,203,196)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1733,450)" stroke="rgb(128,203,196)"> + <image x="2" y="5" clip-path="url(#clipPath634)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlUlEQVR42mNgoBVw 2P+fI+DQtzIQBrFJ0ux35Hu0/+HvD4H4ExQ/BIkR1njomzVQ8Ukg/uN3+Pscr/1f JEAYxAaJgeRAarBqBkouBOL/QLzb79BPPUzDf+qB5KBqFmIz4D8JBvzHZ8B/PF74 T6wBMAwLRAw5Yg3AiQenAQtJMGAhoYSESyPuhIQjKcM0EpeUqZaZSAEA6RdrfECM AgkAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath634)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath634)" stroke="none">InvisibleButton</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(1697,661)" stroke="rgb(120,120,120)"> + <path d="M0 0 L174 0 L174 160 L0 160 L0 0 ZM1 1 L173 1 L173 159 L1 159 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath635)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1698,689)" stroke="rgb(60,63,65)"> + <rect x="0" width="172" height="131" y="0" clip-path="url(#clipPath637)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1807,690)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath213)" stroke="none">TextImage</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1700,690)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath27)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath27)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath27)" stroke="none">image</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1698,689)" stroke="gray"> + <rect x="0" width="172" height="1" y="22" clip-path="url(#clipPath638)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1698,711)" stroke="gray"> + <rect x="0" width="172" height="1" y="0" clip-path="url(#clipPath135)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1831,713)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1700,713)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath68)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath68)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath68)" stroke="none">paint(Terminal)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1848,735)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1700,735)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath60)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath60)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath60)" stroke="none">getImageWidth()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1848,757)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1700,757)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath102)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath102)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath102)" stroke="none">getImageHeight()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1807,779)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath213)" stroke="none">TextImage</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1700,779)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath263)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath263)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath263)" stroke="none">getImage()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1839,801)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath306)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1700,801)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath643)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath643)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath643)" stroke="none">setImage(TextImage)</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1698,662)" stroke="rgb(60,60,60)"> + <rect x="0" width="172" height="27" y="0" clip-path="url(#clipPath144)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(1698,662)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="172" height="1" y="26" clip-path="url(#clipPath144)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1698,662)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath145)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlUlEQVR42mNgoBVw 2P+fI+DQtzIQBrFJ0ux35Hu0/+HvD4H4ExQ/BIkR1njomzVQ8Ukg/uN3+Pscr/1f JEAYxAaJgeRAarBqBkouBOL/QLzb79BPPUzDf+qB5KBqFmIz4D8JBvzHZ8B/PF74 T6wBMAwLRAw5Yg3AiQenAQtJMGAhoYSESyPuhIQjKcM0EpeUqZaZSAEA6RdrfECM AgkAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath145)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath145)" stroke="none">ImageWidget</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(1215,1179)" stroke="rgb(120,120,120)"> + <path d="M0 0 L201 0 L201 292 L0 292 L0 0 ZM1 1 L200 1 L200 291 L1 291 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath644)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1216,1207)" stroke="rgb(60,63,65)"> + <rect x="0" width="199" height="263" y="0" clip-path="url(#clipPath646)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1344,1208)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath152)" stroke="none">StyledString</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1218,1208)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath585)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath585)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath585)" stroke="none">prompt</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1293,1230)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath66)" stroke="none">Map<Integer, String></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1218,1230)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath267)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath267)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath267)" stroke="none">modifiers</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1379,1252)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath459)" stroke="none">Align</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1218,1252)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath110)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath110)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath110)" stroke="none">alignement</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1393,1274)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1218,1274)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath354)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath354)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath354)" stroke="none">maxValue</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1393,1296)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1218,1296)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath267)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath267)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath267)" stroke="none">minValue</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1393,1318)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1218,1318)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath64)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath64)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath64)" stroke="none">value</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1216,1207)" stroke="gray"> + <rect x="0" width="199" height="1" y="132" clip-path="url(#clipPath653)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1216,1339)" stroke="gray"> + <rect x="0" width="199" height="1" y="0" clip-path="url(#clipPath654)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1364,1341)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1218,1341)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath595)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath595)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath595)" stroke="none">handleInput(KeyStroke)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1364,1363)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1218,1363)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath432)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath432)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath432)" stroke="none">removeChar()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1364,1385)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1218,1385)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath658)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath658)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath658)" stroke="none">appendChar(char)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1364,1407)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1218,1407)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath104)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath104)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath104)" stroke="none">increment(int)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1376,1429)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1218,1429)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath68)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath68)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath68)" stroke="none">paint(Terminal)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1370,1451)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath663)" stroke="none">Integer</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1218,1451)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath664)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath664)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath664)" stroke="none">getValue()</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1216,1180)" stroke="rgb(60,60,60)"> + <rect x="0" width="199" height="27" y="0" clip-path="url(#clipPath665)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(1216,1180)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="199" height="1" y="26" clip-path="url(#clipPath665)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1216,1180)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath666)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlUlEQVR42mNgoBVw 2P+fI+DQtzIQBrFJ0ux35Hu0/+HvD4H4ExQ/BIkR1njomzVQ8Ukg/uN3+Pscr/1f JEAYxAaJgeRAarBqBkouBOL/QLzb79BPPUzDf+qB5KBqFmIz4D8JBvzHZ8B/PF74 T6wBMAwLRAw5Yg3AiQenAQtJMGAhoYSESyPuhIQjKcM0EpeUqZaZSAEA6RdrfECM AgkAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath666)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath666)" stroke="none">IntegerField</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(355,740)" stroke="rgb(120,120,120)"> + <path d="M0 0 L266 0 L266 94 L0 94 L0 0 ZM1 1 L265 1 L265 93 L1 93 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath667)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(356,768)" stroke="rgb(60,63,65)"> + <rect x="0" width="264" height="65" y="0" clip-path="url(#clipPath669)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(575,769)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath250)" stroke="none">Integer</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(358,769)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath132)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath132)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath132)" stroke="none">selected</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(356,768)" stroke="gray"> + <rect x="0" width="264" height="1" y="22" clip-path="url(#clipPath671)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(356,790)" stroke="gray"> + <rect x="0" width="264" height="1" y="0" clip-path="url(#clipPath672)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(589,792)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(358,792)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath68)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath68)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath68)" stroke="none">setSelected(int)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(589,814)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath306)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(358,814)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath676)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath676)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath676)" stroke="none">updatePlayerList(List<AbstractPlayer>)</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(356,741)" stroke="rgb(60,60,60)"> + <rect x="0" width="264" height="27" y="0" clip-path="url(#clipPath677)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(356,741)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="264" height="1" y="26" clip-path="url(#clipPath677)" stroke="none"/> + </g> + <g fill="rgb(128,203,196)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(356,741)" stroke="rgb(128,203,196)"> + <image x="2" y="5" clip-path="url(#clipPath678)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlUlEQVR42mNgoBVw 2P+fI+DQtzIQBrFJ0ux35Hu0/+HvD4H4ExQ/BIkR1njomzVQ8Ukg/uN3+Pscr/1f JEAYxAaJgeRAarBqBkouBOL/QLzb79BPPUzDf+qB5KBqFmIz4D8JBvzHZ8B/PF74 T6wBMAwLRAw5Yg3AiQenAQtJMGAhoYSESyPuhIQjKcM0EpeUqZaZSAEA6RdrfECM AgkAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath678)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath678)" stroke="none">PlayerListWidget</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(1557,0)" stroke="rgb(120,120,120)"> + <path d="M0 0 L172 0 L172 160 L0 160 L0 0 ZM1 1 L171 1 L171 159 L1 159 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath679)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1558,28)" stroke="rgb(60,63,65)"> + <rect x="0" width="170" height="131" y="0" clip-path="url(#clipPath681)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1700,29)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath26)" stroke="none">Size</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1560,29)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath327)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath327)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath327)" stroke="none">size</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1692,51)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath459)" stroke="none">Align</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1560,51)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath155)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath155)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath155)" stroke="none">align</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1665,73)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath213)" stroke="none">TextImage</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1560,73)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath27)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath27)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath27)" stroke="none">image</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1558,28)" stroke="gray"> + <rect x="0" width="170" height="1" y="66" clip-path="url(#clipPath685)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1558,94)" stroke="gray"> + <rect x="0" width="170" height="1" y="0" clip-path="url(#clipPath686)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1689,96)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1560,96)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath68)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath68)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath68)" stroke="none">paint(Terminal)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1700,118)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath26)" stroke="none">Size</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1560,118)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath467)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath467)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath467)" stroke="none">getSize()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1697,140)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath306)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1560,140)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath690)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath690)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath690)" stroke="none">onFocus()</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1558,1)" stroke="rgb(60,60,60)"> + <rect x="0" width="170" height="27" y="0" clip-path="url(#clipPath691)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(1558,1)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="170" height="1" y="26" clip-path="url(#clipPath691)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1558,1)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath692)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlUlEQVR42mNgoBVw 2P+fI+DQtzIQBrFJ0ux35Hu0/+HvD4H4ExQ/BIkR1njomzVQ8Ukg/uN3+Pscr/1f JEAYxAaJgeRAarBqBkouBOL/QLzb79BPPUzDf+qB5KBqFmIz4D8JBvzHZ8B/PF74 T6wBMAwLRAw5Yg3AiQenAQtJMGAhoYSESyPuhIQjKcM0EpeUqZaZSAEA6RdrfECM AgkAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath692)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath692)" stroke="none">ImageButtonWidget</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(1537,1192)" stroke="rgb(120,120,120)"> + <path d="M0 0 L134 0 L134 72 L0 72 L0 0 ZM1 1 L133 1 L133 71 L1 71 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath693)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1538,1220)" stroke="rgb(60,63,65)"> + <rect x="0" width="132" height="43" y="0" clip-path="url(#clipPath695)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1656,1221)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath697)" stroke="none">E</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1540,1221)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath171)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath171)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath171)" stroke="none">selectedItem</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1538,1220)" stroke="gray"> + <rect x="0" width="132" height="1" y="22" clip-path="url(#clipPath698)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1538,1242)" stroke="gray"> + <rect x="0" width="132" height="1" y="0" clip-path="url(#clipPath699)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1656,1244)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath701)" stroke="none">E</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1540,1244)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath664)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA+klEQVR42mNgGDKg YcV/nYb9/1lI17jqv1zTyv/Lm1b9/w/E1xpX/XdFUdC48n88Mm5e/d8BrHHzfy4g vwGo6RsQ32pa/T8OSK+HGrSpftV/FbABUAE4bl71fxVU/BFYbPX/6UBXsCFZ6AsU /wnCLSv/2+F0OtTAD2DFq/93d6z6z9+4+n801OAPUMtCIIpX/88CCswHYyAbbsDq /xFARZlA9hsg/gHEf4DhMbtt1X9RogyAKWhf+l8Q6qI0ZBfCDcDpBaALsGlYteo/ M4YBIA6WQPwAdHIJKBBhGoDh4AykL2MEYsPy/wp4oxHihVsY0UhxQqJ5UqY5AACl +ynQwNob5AAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath664)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath664)" stroke="none">getValue()</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1538,1193)" stroke="rgb(60,60,60)"> + <rect x="0" width="132" height="27" y="0" clip-path="url(#clipPath702)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(1538,1193)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="132" height="1" y="26" clip-path="url(#clipPath702)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1538,1193)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath703)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAyklEQVR42mNgoBXY f7+B49DznjIQBrFJ0nzkZU/04Re9D4H4ExQ/BIkR1HjoZb81UPFJIP4DxHP2v+qS AGEQGyp2EqQGq+bDz3sXAhX8P/yiZ/ehl916mIZ364HkwGqAajENAGsm0gAgxm7A 854eQl6AqsFuADDEQwgFIkgNQQNg0Qj062EQRo5Gog0Ai73sXQXCKGGBz4AjL3oq CBkAUoPdAHg09u6BxQKyAZBY6N2DMxqxJSQg3gfFhBMSjqQMTRtEJmWqZSZSAABf 1zKM+4rQ4QAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath703)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath703)" stroke="none">InputWidget</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(1739,1239)" stroke="rgb(120,120,120)"> + <path d="M0 0 L230 0 L230 160 L0 160 L0 0 ZM1 1 L229 1 L229 159 L1 159 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath704)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1740,1267)" stroke="rgb(60,63,65)"> + <rect x="0" width="228" height="131" y="0" clip-path="url(#clipPath706)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1860,1268)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath92)" stroke="none">CyclicList<Colors></text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1742,1268)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath66)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath66)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath66)" stroke="none">availableColors</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1932,1290)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath459)" stroke="none">Align</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1742,1290)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath110)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath110)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath110)" stroke="none">alignement</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1740,1267)" stroke="gray"> + <rect x="0" width="228" height="1" y="44" clip-path="url(#clipPath709)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1740,1311)" stroke="gray"> + <rect x="0" width="228" height="1" y="0" clip-path="url(#clipPath710)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1937,1313)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1742,1313)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath712)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath712)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath712)" stroke="none">setAvailableColors(List<Colors>)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1929,1335)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1742,1335)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath68)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath68)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath68)" stroke="none">paint(Terminal)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1917,1357)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1742,1357)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath595)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath595)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath595)" stroke="none">handleInput(KeyStroke)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1926,1379)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath716)" stroke="none">Colors</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1742,1379)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath664)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath664)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath664)" stroke="none">getValue()</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1740,1240)" stroke="rgb(60,60,60)"> + <rect x="0" width="228" height="27" y="0" clip-path="url(#clipPath717)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(1740,1240)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="228" height="1" y="26" clip-path="url(#clipPath717)" stroke="none"/> + </g> + <g fill="rgb(128,203,196)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1740,1240)" stroke="rgb(128,203,196)"> + <image x="2" y="5" clip-path="url(#clipPath718)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlUlEQVR42mNgoBVw 2P+fI+DQtzIQBrFJ0ux35Hu0/+HvD4H4ExQ/BIkR1njomzVQ8Ukg/uN3+Pscr/1f JEAYxAaJgeRAarBqBkouBOL/QLzb79BPPUzDf+qB5KBqFmIz4D8JBvzHZ8B/PF74 T6wBMAwLRAw5Yg3AiQenAQtJMGAhoYSESyPuhIQjKcM0EpeUqZaZSAEA6RdrfECM AgkAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath718)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath718)" stroke="none">ColorPicker</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(1322,604)" stroke="rgb(120,120,120)"> + <path d="M0 0 L205 0 L205 534 L0 534 L0 0 ZM1 1 L204 1 L204 533 L1 533 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath719)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1323,632)" stroke="rgb(60,63,65)"> + <rect x="0" width="203" height="505" y="0" clip-path="url(#clipPath721)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1480,633)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath208)" stroke="none">Coords</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1325,633)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath38)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath38)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath38)" stroke="none">coords</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1475,655)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1325,655)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath27)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath27)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath27)" stroke="none">visible</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1475,677)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1325,677)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath222)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath222)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath222)" stroke="none">enabled</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1475,699)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1325,699)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath356)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath356)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath356)" stroke="none">focusable</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1466,721)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath126)" stroke="none">KeyStroke</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1325,721)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath95)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath95)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath95)" stroke="none">control</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1487,743)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1325,743)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath35)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath35)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath35)" stroke="none">description</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1323,632)" stroke="gray"> + <rect x="0" width="203" height="1" y="132" clip-path="url(#clipPath723)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1323,764)" stroke="gray"> + <rect x="0" width="203" height="1" y="0" clip-path="url(#clipPath623)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1480,766)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath208)" stroke="none">Coords</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1325,766)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath181)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath181)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath181)" stroke="none">getCoords()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1495,788)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1325,788)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath173)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath173)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath173)" stroke="none">setCoords(Coords)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1466,810)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath126)" stroke="none">KeyStroke</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1325,810)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath221)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath221)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath221)" stroke="none">getControls()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1475,832)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1325,832)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath76)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath76)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath76)" stroke="none">isFocusable()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1495,854)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1325,854)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath487)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath487)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath487)" stroke="none">setFocusable(boolean)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1495,876)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1325,876)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath88)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath88)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath88)" stroke="none">onFocus()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1495,898)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1325,898)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath184)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath184)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath184)" stroke="none">onFocusLost()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1475,920)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1325,920)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath263)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath263)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath263)" stroke="none">isEnabled()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1495,942)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1325,942)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath54)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath54)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath54)" stroke="none">setEnabled(boolean)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1475,964)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1325,964)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath267)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath267)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath267)" stroke="none">isVisible()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1495,986)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1325,986)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath561)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath561)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath561)" stroke="none">setVisible(boolean)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1487,1008)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1325,1008)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath175)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath175)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath175)" stroke="none">getDescription()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1495,1030)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1325,1030)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath79)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath79)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath79)" stroke="none">setDescription(String)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1475,1052)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath109)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1325,1052)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath267)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath267)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath267)" stroke="none">isGlobal()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1487,1074)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1325,1074)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath267)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath267)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath267)" stroke="none">toString()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1487,1096)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1325,1096)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath68)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA+klEQVR42mNgGDKg YcV/nYb9/1lI17jqv1zTyv/Lm1b9/w/E1xpX/XdFUdC48n88Mm5e/d8BrHHzfy4g vwGo6RsQ32pa/T8OSK+HGrSpftV/FbABUAE4bl71fxVU/BFYbPX/6UBXsCFZ6AsU /wnCLSv/2+F0OtTAD2DFq/93d6z6z9+4+n801OAPUMtCIIpX/88CCswHYyAbbsDq /xFARZlA9hsg/gHEf4DhMbtt1X9RogyAKWhf+l8Q6qI0ZBfCDcDpBaALsGlYteo/ M4YBIA6WQPwAdHIJKBBhGoDh4AykL2MEYsPy/wp4oxHihVsY0UhxQqJ5UqY5AACl +ynQwNob5AAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath68)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath68)" stroke="none">paint(Terminal)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1475,1118)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath117)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1325,1118)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath739)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath739)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath739)" stroke="none">handleInput(KeyStroke)</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1323,605)" stroke="rgb(60,60,60)"> + <rect x="0" width="203" height="27" y="0" clip-path="url(#clipPath629)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(1323,605)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="203" height="1" y="26" clip-path="url(#clipPath629)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1323,605)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath630)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAyklEQVR42mNgoBXY f7+B49DznjIQBrFJ0nzkZU/04Re9D4H4ExQ/BIkR1HjoZb81UPFJIP4DxHP2v+qS AGEQGyp2EqQGq+bDz3sXAhX8P/yiZ/ehl916mIZ364HkwGqAajENAGsm0gAgxm7A 854eQl6AqsFuADDEQwgFIkgNQQNg0Qj062EQRo5Gog0Ai73sXQXCKGGBz4AjL3oq CBkAUoPdAHg09u6BxQKyAZBY6N2DMxqxJSQg3gfFhBMSjqQMTRtEJmWqZSZSAABf 1zKM+4rQ4QAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath630)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath630)" stroke="none">Widget</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(1015,1007)" stroke="rgb(120,120,120)"> + <path d="M0 0 L150 0 L150 182 L0 182 L0 0 ZM1 1 L149 1 L149 181 L1 181 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath740)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1016,1035)" stroke="rgb(60,63,65)"> + <rect x="0" width="148" height="153" y="0" clip-path="url(#clipPath742)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1132,1036)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath744)" stroke="none">float</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1018,1036)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath585)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath585)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath585)" stroke="none">percent</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1142,1058)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath37)" stroke="none">int</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1018,1058)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath159)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath159)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath159)" stroke="none">barLength</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1133,1080)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">char</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1018,1080)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath95)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath95)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath95)" stroke="none">fillChar</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1125,1102)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1018,1102)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath267)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath267)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath267)" stroke="none">modifiers</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1016,1035)" stroke="gray"> + <rect x="0" width="148" height="1" y="88" clip-path="url(#clipPath748)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1016,1123)" stroke="gray"> + <rect x="0" width="148" height="1" y="0" clip-path="url(#clipPath749)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1132,1125)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath744)" stroke="none">float</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1018,1125)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath31)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath31)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath31)" stroke="none">getPercent()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1133,1147)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1018,1147)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath752)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath752)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath752)" stroke="none">setPercent(float)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1125,1169)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath202)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1018,1169)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath599)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath599)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath599)" stroke="none">paint(Terminal)</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1016,1008)" stroke="rgb(60,60,60)"> + <rect x="0" width="148" height="27" y="0" clip-path="url(#clipPath754)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(1016,1008)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="148" height="1" y="26" clip-path="url(#clipPath754)" stroke="none"/> + </g> + <g fill="rgb(128,203,196)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1016,1008)" stroke="rgb(128,203,196)"> + <image x="2" y="5" clip-path="url(#clipPath755)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlUlEQVR42mNgoBVw 2P+fI+DQtzIQBrFJ0ux35Hu0/+HvD4H4ExQ/BIkR1njomzVQ8Ukg/uN3+Pscr/1f JEAYxAaJgeRAarBqBkouBOL/QLzb79BPPUzDf+qB5KBqFmIz4D8JBvzHZ8B/PF74 T6wBMAwLRAw5Yg3AiQenAQtJMGAhoYSESyPuhIQjKcM0EpeUqZaZSAEA6RdrfECM AgkAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath755)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath755)" stroke="none">LoadingBar</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(1205,337)" stroke="rgb(120,120,120)"> + <path d="M0 0 L205 0 L205 226 L0 226 L0 0 ZM1 1 L204 1 L204 225 L1 225 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath756)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1206,365)" stroke="rgb(60,63,65)"> + <rect x="0" width="203" height="197" y="0" clip-path="url(#clipPath616)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1338,366)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath152)" stroke="none">StyledString</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1208,366)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath127)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath127)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath127)" stroke="none">stext</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1373,388)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath459)" stroke="none">Align</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1208,388)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath110)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath110)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath110)" stroke="none">alignement</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1206,365)" stroke="gray"> + <rect x="0" width="203" height="1" y="44" clip-path="url(#clipPath757)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1206,409)" stroke="gray"> + <rect x="0" width="203" height="1" y="0" clip-path="url(#clipPath623)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1338,411)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath152)" stroke="none">StyledString</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1208,411)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath382)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath382)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath382)" stroke="none">getStyledText()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1370,433)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1208,433)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath137)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath137)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath137)" stroke="none">getText()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1378,455)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1208,455)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath104)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath104)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath104)" stroke="none">setText(String)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1378,477)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1208,477)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath54)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath54)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath54)" stroke="none">setText(StyledString)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1373,499)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath459)" stroke="none">Align</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1208,499)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath752)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath752)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath752)" stroke="none">getAlignement()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1370,521)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath51)" stroke="none">String</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1208,521)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath68)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath68)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath68)" stroke="none">paint(Terminal)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1358,543)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath117)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1208,543)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath739)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath739)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath739)" stroke="none">handleInput(KeyStroke)</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1206,338)" stroke="rgb(60,60,60)"> + <rect x="0" width="203" height="27" y="0" clip-path="url(#clipPath629)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(1206,338)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="203" height="1" y="26" clip-path="url(#clipPath629)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1206,338)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath630)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlUlEQVR42mNgoBVw 2P+fI+DQtzIQBrFJ0ux35Hu0/+HvD4H4ExQ/BIkR1njomzVQ8Ukg/uN3+Pscr/1f JEAYxAaJgeRAarBqBkouBOL/QLzb79BPPUzDf+qB5KBqFmIz4D8JBvzHZ8B/PF74 T6wBMAwLRAw5Yg3AiQenAQtJMGAhoYSESyPuhIQjKcM0EpeUqZaZSAEA6RdrfECM AgkAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath630)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath630)" stroke="none">Label</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(0,670)" stroke="rgb(120,120,120)"> + <path d="M0 0 L314 0 L314 116 L0 116 L0 0 ZM1 1 L313 1 L313 115 L1 115 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath761)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1,698)" stroke="rgb(60,63,65)"> + <rect x="0" width="312" height="87" y="0" clip-path="url(#clipPath763)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(268,699)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath250)" stroke="none">Integer</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(3,699)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath132)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath132)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAk0lEQVR42mNgGL7g SVGR89Pi4hMgDGKTpPltbi4fUOPtZ8XFGiAMYoPEiDbgcWGh2ZPi4rVw1wDZIDGi ND8tKrICajj1tKTkFdD2/SAMZZ8EyRE04FlJSS/Qyf+xYZAcSQYAXbINhMk3oKTE EoTJNgDo7w8gTJoBxcXNOMMAKEeMASLAUC8Fhng9CgaKgeSGYZ4BAMw4rP6h3VSN AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath132)" stroke="none">selected</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1,698)" stroke="gray"> + <rect x="0" width="312" height="1" y="22" clip-path="url(#clipPath765)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1,720)" stroke="gray"> + <rect x="0" width="312" height="1" y="0" clip-path="url(#clipPath766)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(282,722)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(3,722)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath68)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath68)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath68)" stroke="none">setSelected(int)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(282,744)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath7)" stroke="none">void</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(3,744)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath769)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath769)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath769)" stroke="none">updatePlayerList(List<AbstractPlayer>)</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(242,766)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath772)" stroke="none">StyledString</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(3,766)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath773)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath773)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath773)" stroke="none">makeHealthBar(int, float, Colors, Colors)</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1,671)" stroke="rgb(60,60,60)"> + <rect x="0" width="312" height="27" y="0" clip-path="url(#clipPath774)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(1,671)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="312" height="1" y="26" clip-path="url(#clipPath774)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1,671)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath775)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlUlEQVR42mNgoBVw 2P+fI+DQtzIQBrFJ0ux35Hu0/+HvD4H4ExQ/BIkR1njomzVQ8Ukg/uN3+Pscr/1f JEAYxAaJgeRAarBqBkouBOL/QLzb79BPPUzDf+qB5KBqFmIz4D8JBvzHZ8B/PF74 T6wBMAwLRAw5Yg3AiQenAQtJMGAhoYSESyPuhIQjKcM0EpeUqZaZSAEA6RdrfECM AgkAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath775)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath775)" stroke="none">CharacterListWidget</text> + </g> + <g fill="rgb(120,120,120)" transform="matrix(1,0,0,1,20,20) translate(1486,468)" stroke="rgb(120,120,120)"> + <path d="M0 0 L205 0 L205 94 L0 94 L0 0 ZM1 1 L204 1 L204 93 L1 93 L1 1 Z" fill-rule="evenodd" clip-path="url(#clipPath776)" stroke="none"/> + </g> + <g fill="rgb(60,63,65)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1487,496)" stroke="rgb(60,63,65)"> + <rect x="0" width="203" height="65" y="0" clip-path="url(#clipPath778)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1632,497)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath378)" stroke="none">Runnable</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1489,497)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath27)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAs0lEQVR42mNgoAZo OH5cof7M4VkNZ47MR8Ygsfqzx1QIG3D66NyG00f+A/E+IH4PZYNx/ekjz5pPH1En ZMCqhlNH9oLY9WeOZCAbQJQhYAOANjeeOZoJpA+jG0DQEKgB/wlhnIYQawBOQ5AC kXhDzhxVhhsA4gAlnpJkCDCKUVxRf/KwGgmG/AXGWhBGWBBpyN+G04eTcEYpAUPw ayZgCHGakQ0BhTZZmpFjB5zJsAUYtQAAGlmMnyOcyUcAAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath27)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApklEQVR42mNgGL7g /9UA5/9X/U9AcIAzaZpve/IBNd7+f8lXA4xBbKAY8QZcCTD7fy1gLZwPZIPEiNN8 2d8K6ORT/6/6vfp/zX8/GIPYV/1PguSI8XsvUFPW/+sBCigYJAaUI86AK/4hELaf BwhDvOUfQroB1/yPgjD5BtwN5Qdh0gy4EtAMVLgK6PR6VAwUA8oRNuCmr8j/a36l GAaAxIBywzDPAAAYXaWLkMGukgAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath27)" stroke="none">action</text> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1487,496)" stroke="gray"> + <rect x="0" width="203" height="1" y="22" clip-path="url(#clipPath779)" stroke="none"/> + </g> + <g fill="gray" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1487,518)" stroke="gray"> + <rect x="0" width="203" height="1" y="0" clip-path="url(#clipPath623)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1632,520)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath378)" stroke="none">Runnable</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1489,520)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath110)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath110)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath110)" stroke="none">getAction()</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1639,542)" stroke="rgb(238,255,255)"> + <text x="3" xml:space="preserve" y="15" clip-path="url(#clipPath117)" stroke="none">boolean</text> + </g> + <g fill="rgb(238,255,255)" font-family="'Segoe UI'" transform="matrix(1,0,0,1,20,20) translate(1489,542)" stroke="rgb(238,255,255)"> + <image x="2" y="2" clip-path="url(#clipPath739)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA0klEQVR42mNgGDKg ccX/6I5V//lJ1li/8r9X06r/L4H4f9Pq/7+BuLuh4T8TwuSV/+ORcfPq/w4g8fZV /1WAmi40r/r/D0i/blrzP6lx1f+jYINW/f/QuPp/NNgAqAAcAzWsalv1XxSqEWTr woZV/9mQvOIPFP8LlWvF6uyGtf+VkAz8BzIU5P/6Nf/zgJq+wi1c/X8xxBWr/2cB BeaDMZCNbAAS/oshRqIB/3EagM8LRBsA9GcI1kDEbwAiEBuW/1fAFo04NCOikeKE RPOkTHMAAM0hX5ArmhQ1AAAAAElFTkSuQmCC" height="16" preserveAspectRatio="none"/> + <image x="18" y="2" clip-path="url(#clipPath739)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="37" xml:space="preserve" y="15" clip-path="url(#clipPath739)" stroke="none">handleInput(KeyStroke)</text> + </g> + <g fill="rgb(60,60,60)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1487,469)" stroke="rgb(60,60,60)"> + <rect x="0" width="203" height="27" y="0" clip-path="url(#clipPath629)" stroke="none"/> + </g> + <g font-size="13px" transform="matrix(1,0,0,1,20,20) translate(1487,469)" fill-opacity="0.098" fill="rgb(85,85,85)" font-family="'Source Code Pro'" stroke="rgb(85,85,85)" stroke-opacity="0.098"> + <rect x="0" width="203" height="1" y="26" clip-path="url(#clipPath629)" stroke="none"/> + </g> + <g fill="rgb(238,255,255)" font-size="13px" font-family="'Source Code Pro'" transform="matrix(1,0,0,1,20,20) translate(1487,469)" stroke="rgb(238,255,255)"> + <image x="2" y="5" clip-path="url(#clipPath630)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAyklEQVR42mNgoBXY f7+B49DznjIQBrFJ0nzkZU/04Re9D4H4ExQ/BIkR1HjoZb81UPFJIP4DxHP2v+qS AGEQGyp2EqQGq+bDz3sXAhX8P/yiZ/ehl916mIZ364HkwGqAajENAGsm0gAgxm7A 854eQl6AqsFuADDEQwgFIkgNQQNg0Qj062EQRo5Gog0Ai73sXQXCKGGBz4AjL3oq CBkAUoPdAHg09u6BxQKyAZBY6N2DMxqxJSQg3gfFhBMSjqQMTRtEJmWqZSZSAABf 1zKM+4rQ4QAAAABJRU5ErkJggg==" height="16" preserveAspectRatio="none"/> + <image x="18" y="5" clip-path="url(#clipPath630)" width="16" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmElEQVR42mNgGL5g /dVG57VXG0+AMIhNkuZttxv4gBpvr7nUoAHCIDZIjGgDVl1tEFp3tcEJxl93rWnt +iv1ZkRp3nC5wWr91abdQE374fhq4ysgPgmSI2gA0OZeoOL/2HFDL6kGbINiMg24 3mQJxhS44AMUE2/A2isNzbjCACRH0IDNNxtE1l1rLAUmnnpkDBIDyQ3DPAMApQ67 44n7f/4AAAAASUVORK5CYII=" height="16" preserveAspectRatio="none"/> + <text x="40" xml:space="preserve" y="17" clip-path="url(#clipPath630)" stroke="none">ActionWidget</text> + </g> + <g fill="rgb(96,147,80)" stroke-miterlimit="1.45" stroke-dasharray="6,2" transform="matrix(1,0,0,1,20,20)" stroke-linecap="butt" stroke="rgb(96,147,80)"> + <path fill="none" d="M2839.9072 1760.0115 L2838.9636 1730.0231" clip-path="url(#clipPath2)"/> + </g> + <g fill="rgb(96,147,80)" stroke-miterlimit="1.45" stroke-dasharray="6,2" transform="matrix(1,0,0,1,20,20)" stroke-linecap="butt" stroke="rgb(96,147,80)"> + <path d="M2838.6177 1719.0286 L2832.998 1731.2113 L2844.9922 1730.834 Z" stroke="none" clip-path="url(#clipPath2)"/> + <path fill="none" stroke-dasharray="none" d="M1876.4222 1785.9691 L1893.9176 1817.3738" clip-path="url(#clipPath2)" stroke="rgb(88,157,246)"/> + <path fill="rgb(88,157,246)" stroke-dasharray="none" d="M1899.2709 1826.9833 L1898.6724 1813.5802 L1888.1893 1819.4202 Z" clip-path="url(#clipPath2)" stroke="none"/> + <path fill="none" stroke-dasharray="none" d="M2036.9758 2226.0122 L2031.7681 2195.8413" clip-path="url(#clipPath2)" stroke="rgb(88,157,246)"/> + <path fill="rgb(88,157,246)" stroke-dasharray="none" d="M2029.8971 2185.0017 L2026.0255 2197.8474 L2037.8507 2195.8064 Z" clip-path="url(#clipPath2)" stroke="none"/> + <path fill="none" stroke-dasharray="none" d="M746.7279 1920.991 L715.7635 1953.9722" clip-path="url(#clipPath2)" stroke="rgb(88,157,246)"/> + <path fill="rgb(88,157,246)" stroke-dasharray="none" d="M708.2345 1961.9917 L720.8223 1957.3499 L712.0737 1949.1364 Z" clip-path="url(#clipPath2)" stroke="none"/> + <path fill="none" stroke-dasharray="none" d="M524.6347 1742.0205 L538.569 1951.0358" clip-path="url(#clipPath2)" stroke="rgb(88,157,246)"/> + <path fill="rgb(88,157,246)" stroke-dasharray="none" d="M539.3008 1962.0114 L544.4892 1949.6388 L532.5158 1950.437 Z" clip-path="url(#clipPath2)" stroke="none"/> + <path fill="none" stroke-dasharray="none" d="M635.6494 2354.0171 L618.2599 2308.2678" clip-path="url(#clipPath2)" stroke="rgb(88,157,246)"/> + <path fill="rgb(88,157,246)" stroke-dasharray="none" d="M614.3517 2297.9856 L613.0067 2311.3345 L624.2238 2307.0708 Z" clip-path="url(#clipPath2)" stroke="none"/> + <path fill="none" stroke-dasharray="none" d="M343.0526 2365.9827 L395.5273 2306.2898" clip-path="url(#clipPath2)" stroke="rgb(88,157,246)"/> + <path fill="rgb(88,157,246)" stroke-dasharray="none" d="M402.79 2298.0283 L390.3608 2303.0793 L399.3734 2311.0024 Z" clip-path="url(#clipPath2)" stroke="none"/> + <path fill="none" stroke-dasharray="none" d="M771.9944 2149.478 L729.9308 2145.7791" clip-path="url(#clipPath2)" stroke="rgb(88,157,246)"/> + <path fill="rgb(88,157,246)" stroke-dasharray="none" d="M718.9731 2144.8154 L730.4014 2151.8435 L731.4526 2139.8896 Z" clip-path="url(#clipPath2)" stroke="none"/> + <path fill="none" stroke-dasharray="none" d="M312.3124 1910.0128 L373.9259 1966.9183" clip-path="url(#clipPath2)" stroke="rgb(88,157,246)"/> + <path fill="rgb(88,157,246)" stroke-dasharray="none" d="M382.0067 1974.3816 L377.2622 1961.8322 L369.1205 1970.6476 Z" clip-path="url(#clipPath2)" stroke="none"/> + <path fill="none" stroke-dasharray="none" d="M340.9712 2143.2334 L371.0446 2141.334" clip-path="url(#clipPath2)" stroke="rgb(88,157,246)"/> + <path fill="rgb(88,157,246)" stroke-dasharray="none" d="M382.0227 2140.6406 L369.6683 2135.4089 L370.4247 2147.385 Z" clip-path="url(#clipPath2)" stroke="none"/> + <path fill="none" stroke-dasharray="none" d="M1692.9941 1134.5909 L1645.8948 1184.0269" clip-path="url(#clipPath2)" stroke="rgb(88,157,246)"/> + <path fill="rgb(88,157,246)" stroke-dasharray="none" d="M1638.3071 1191.991 L1650.9287 1187.4415 L1642.2405 1179.1641 Z" clip-path="url(#clipPath2)" stroke="none"/> + <path fill="none" stroke-dasharray="none" d="M313.9745 755.9803 L344.1448 761.3582" clip-path="url(#clipPath2)" stroke="rgb(88,157,246)"/> + <path fill="rgb(88,157,246)" stroke-dasharray="none" d="M354.9742 763.2885 L344.2133 755.2758 L342.1075 767.0896 Z" clip-path="url(#clipPath2)" stroke="none"/> + <path fill="none" stroke-dasharray="none" d="M1731.9937 488.1152 L1701.7823 493.7755" clip-path="url(#clipPath2)" stroke="rgb(88,157,246)"/> + <path fill="rgb(88,157,246)" stroke-dasharray="none" d="M1690.9705 495.8012 L1703.8701 499.4888 L1701.6603 487.694 Z" clip-path="url(#clipPath2)" stroke="none"/> + <path fill="none" stroke-dasharray="none" d="M1052.0035 742.9871 L1311.5605 832.187" clip-path="url(#clipPath2)" stroke="rgb(88,157,246)"/> + <path fill="rgb(88,157,246)" stroke-dasharray="none" d="M1321.9634 835.7621 L1312.5648 826.1877 L1308.6648 837.5363 Z" clip-path="url(#clipPath2)" stroke="none"/> + <path fill="none" stroke-dasharray="none" d="M1566.8589 561.9771 L1531.6141 638.4839" clip-path="url(#clipPath2)" stroke="rgb(88,157,246)"/> + <path fill="rgb(88,157,246)" stroke-dasharray="none" d="M1527.0116 648.4748 L1537.4821 640.0862 L1526.583 635.0652 Z" clip-path="url(#clipPath2)" stroke="none"/> + <path fill="none" stroke-dasharray="none" d="M1415.9749 1291.2181 L1526.5988 1254.0239" clip-path="url(#clipPath2)" stroke="rgb(88,157,246)"/> + <path fill="rgb(88,157,246)" stroke-dasharray="none" d="M1537.0253 1250.5184 L1523.7389 1248.6554 L1527.563 1260.0298 Z" clip-path="url(#clipPath2)" stroke="none"/> + <path fill="none" stroke-dasharray="none" d="M1630.6909 160.009 L1617.5972 245.1181" clip-path="url(#clipPath2)" stroke="rgb(88,157,246)"/> + <path fill="rgb(88,157,246)" stroke-dasharray="none" d="M1615.9246 255.9902 L1623.6794 245.0421 L1611.819 243.2174 Z" clip-path="url(#clipPath2)" stroke="none"/> + <path fill="none" stroke-dasharray="none" d="M1696.9775 772.4685 L1537.3229 830.2018" clip-path="url(#clipPath2)" stroke="rgb(88,157,246)"/> + <path fill="rgb(88,157,246)" stroke-dasharray="none" d="M1526.9784 833.9424 L1540.3036 835.5042 L1536.2229 824.2193 Z" clip-path="url(#clipPath2)" stroke="none"/> + <path fill="none" stroke-dasharray="none" d="M1338.8994 562.9844 L1347.3542 593.4072" clip-path="url(#clipPath2)" stroke="rgb(88,157,246)"/> + <path fill="rgb(88,157,246)" stroke-dasharray="none" d="M1350.2997 604.0056 L1352.8674 590.8372 L1341.3055 594.0504 Z" clip-path="url(#clipPath2)" stroke="none"/> + <path fill="none" stroke-dasharray="none" d="M1585.8792 1191.9601 L1531.9384 1084.6797" clip-path="url(#clipPath2)" stroke="rgb(88,157,246)"/> + <path fill="rgb(88,157,246)" stroke-dasharray="none" d="M1526.9969 1074.8521 L1527.027 1088.2684 L1537.748 1082.8778 Z" clip-path="url(#clipPath2)" stroke="none"/> + <path fill="none" stroke-dasharray="none" d="M1738.9792 1277.1324 L1681.3318 1256.1488" clip-path="url(#clipPath2)" stroke="rgb(88,157,246)"/> + <path fill="rgb(88,157,246)" stroke-dasharray="none" d="M1670.9952 1252.3864 L1680.2192 1262.129 L1684.3237 1250.8528 Z" clip-path="url(#clipPath2)" stroke="none"/> + <path fill="none" stroke-dasharray="none" d="M1589.7819 1377.0061 L1599.5221 1274.9286" clip-path="url(#clipPath2)" stroke="rgb(88,157,246)"/> + <path fill="rgb(88,157,246)" stroke-dasharray="none" d="M1600.567 1263.9783 L1593.4542 1275.354 L1605.4 1276.494 Z" clip-path="url(#clipPath2)" stroke="none"/> + <path fill="none" stroke-dasharray="none" d="M1165.0093 1047.0968 L1312.9258 946.717" clip-path="url(#clipPath2)" stroke="rgb(88,157,246)"/> + <path fill="rgb(88,157,246)" stroke-dasharray="none" d="M1322.0278 940.5402 L1308.7291 942.3138 L1315.4675 952.2433 Z" clip-path="url(#clipPath2)" stroke="none"/> + <path fill="none" stroke-dasharray="none" d="M620.9817 754.4129 L721.2922 729.8318" clip-path="url(#clipPath2)" stroke="rgb(88,157,246)"/> + <path fill="rgb(88,157,246)" stroke-dasharray="none" d="M731.9761 727.2137 L718.8929 724.2422 L721.749 735.8975 Z" clip-path="url(#clipPath2)" stroke="none"/> + <path fill="none" stroke-dasharray="none" d="M1601.6659 371.9543 L1593.8314 457.0745" clip-path="url(#clipPath2)" stroke="rgb(88,157,246)"/> + <path fill="rgb(88,157,246)" stroke-dasharray="none" d="M1592.8232 468.0282 L1599.8978 456.6287 L1587.9484 455.5288 Z" clip-path="url(#clipPath2)" stroke="none"/> + </g> + </g> +</svg> diff --git a/project-tbt.zip b/project-tbt.zip new file mode 100644 index 0000000..b1d47c4 Binary files /dev/null and b/project-tbt.zip differ diff --git a/projecttbt.uml b/projecttbt.uml new file mode 100644 index 0000000..69a7162 --- /dev/null +++ b/projecttbt.uml @@ -0,0 +1,162 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Diagram> + <ID>JAVA</ID> + <OriginalElement>lorganisation.projecttbt</OriginalElement> + <nodes> + <node x="2601.0" y="1831.0">lorganisation.projecttbt.map.Tile</node> + <node x="1329.0" y="2549.0">lorganisation.projecttbt.IntegratedDevenv</node> + <node x="1415.0" y="1498.0">lorganisation.projecttbt.Game</node> + <node x="810.0" y="814.0">lorganisation.projecttbt.ui.widget.TextBoxWidget</node> + <node x="626.0" y="1669.0">lorganisation.projecttbt.ui.screen.WinnerScreen</node> + <node x="164.0" y="2168.0">lorganisation.projecttbt.ui.screen.LobbyScreen</node> + <node x="948.0" y="2549.0">lorganisation.projecttbt.TerminalGameInput</node> + <node x="1733.0" y="1677.0">lorganisation.projecttbt.player.AbstractPlayer</node> + <node x="101.0" y="738.0">lorganisation.projecttbt.ui.widget.HorizontalComboBoxWidget</node> + <node x="303.0" y="208.0">lorganisation.projecttbt.ui.widget.Button</node> + <node x="1702.0" y="1498.0">lorganisation.projecttbt.player.Bot</node> + <node x="2290.0" y="1498.0">lorganisation.projecttbt.AssetsManager</node> + <node x="417.0" y="2549.0">lorganisation.projecttbt.player.ActionType</node> + <node x="0.0" y="2549.0">lorganisation.projecttbt.player.CharacterTemplate</node> + <node x="0.0" y="1005.0">lorganisation.projecttbt.ui.widget.TextField</node> + <node x="521.0" y="260.0">lorganisation.projecttbt.ui.widget.InvisibleButton</node> + <node x="695.0" y="2549.0">lorganisation.projecttbt.TerminalGameRenderer</node> + <node x="673.0" y="402.0">lorganisation.projecttbt.ui.widget.ImageWidget</node> + <node x="246.0" y="1161.0">lorganisation.projecttbt.ui.widget.IntegerField</node> + <node x="1165.0" y="2549.0">lorganisation.projecttbt.player.AbstractPlayer.Status</node> + <node x="582.0" y="2173.0">lorganisation.projecttbt.ui.screen.GameScreen</node> + <node x="1191.0" y="1148.0">lorganisation.projecttbt.ui.widget.PlayerListWidget</node> + <node x="1150.0" y="1498.0">lorganisation.projecttbt.player.Character</node> + <node x="206.0" y="0.0">lorganisation.projecttbt.ui.widget.ImageButtonWidget</node> + <node x="764.0" y="1898.0">lorganisation.projecttbt.ui.screen.CharacterSelectionScreen</node> + <node x="260.0" y="1009.0">lorganisation.projecttbt.ui.widget.InputWidget</node> + <node x="492.0" y="1085.0">lorganisation.projecttbt.ui.widget.ColorPicker</node> + <node x="427.0" y="510.0">lorganisation.projecttbt.ui.widget.Widget</node> + <node x="205.0" y="493.0">lorganisation.projecttbt.ui.widget.LoadingBar</node> + <node x="1774.0" y="2076.0">lorganisation.projecttbt.player.Player</node> + <node x="2035.0" y="1498.0">lorganisation.projecttbt.map.LevelMap</node> + <node x="89.0" y="1633.0">lorganisation.projecttbt.ui.screen.TestScreen</node> + <node x="382.0" y="1790.0">lorganisation.projecttbt.ui.screen.Screen</node> + <node x="1876.0" y="2549.0">lorganisation.projecttbt.utils</node> + <node x="369.0" y="1498.0">lorganisation.projecttbt.ui.screen.MapSelectionScreen</node> + <node x="0.0" y="1947.0">lorganisation.projecttbt.ui.screen.MainScreen</node> + <node x="1689.0" y="2549.0">lorganisation.projecttbt.player.attack</node> + <node x="2612.0" y="1498.0">lorganisation.projecttbt.map.Tiles</node> + <node x="886.0" y="547.0">lorganisation.projecttbt.ui.widget.Label</node> + <node x="1498.0" y="1202.0">lorganisation.projecttbt.ui.widget.CharacterListWidget</node> + <node x="396.0" y="375.0">lorganisation.projecttbt.ui.widget.ActionWidget</node> + </nodes> + <notes /> + <edges> + <edge source="lorganisation.projecttbt.ui.widget.Button" target="lorganisation.projecttbt.ui.widget.ActionWidget"> + <point x="0.0" y="0.0" /> + <point x="0.0" y="0.0" /> + </edge> + <edge source="lorganisation.projecttbt.ui.widget.ActionWidget" target="lorganisation.projecttbt.ui.widget.Widget"> + <point x="0.0" y="0.0" /> + <point x="0.0" y="0.0" /> + </edge> + <edge source="lorganisation.projecttbt.ui.screen.TestScreen" target="lorganisation.projecttbt.ui.screen.Screen"> + <point x="0.0" y="0.0" /> + <point x="0.0" y="0.0" /> + </edge> + <edge source="lorganisation.projecttbt.ui.widget.InvisibleButton" target="lorganisation.projecttbt.ui.widget.ActionWidget"> + <point x="0.0" y="0.0" /> + <point x="0.0" y="0.0" /> + </edge> + <edge source="lorganisation.projecttbt.ui.widget.ImageButtonWidget" target="lorganisation.projecttbt.ui.widget.Button"> + <point x="0.0" y="0.0" /> + <point x="0.0" y="0.0" /> + </edge> + <edge source="lorganisation.projecttbt.player.Bot" target="lorganisation.projecttbt.player.AbstractPlayer"> + <point x="0.0" y="0.0" /> + <point x="0.0" y="0.0" /> + </edge> + <edge source="lorganisation.projecttbt.ui.widget.TextField" target="lorganisation.projecttbt.ui.widget.InputWidget"> + <point x="0.0" y="0.0" /> + <point x="0.0" y="0.0" /> + </edge> + <edge source="lorganisation.projecttbt.ui.screen.GameScreen" target="lorganisation.projecttbt.ui.screen.Screen"> + <point x="0.0" y="0.0" /> + <point x="0.0" y="0.0" /> + </edge> + <edge source="lorganisation.projecttbt.ui.widget.Label" target="lorganisation.projecttbt.ui.widget.Widget"> + <point x="0.0" y="0.0" /> + <point x="0.0" y="0.0" /> + </edge> + <edge source="lorganisation.projecttbt.map.Tiles" target="lorganisation.projecttbt.map.Tile"> + <point x="0.0" y="0.0" /> + <point x="0.0" y="0.0" /> + </edge> + <edge source="lorganisation.projecttbt.player.Player" target="lorganisation.projecttbt.player.AbstractPlayer"> + <point x="0.0" y="0.0" /> + <point x="0.0" y="0.0" /> + </edge> + <edge source="lorganisation.projecttbt.ui.widget.ImageWidget" target="lorganisation.projecttbt.ui.widget.Widget"> + <point x="0.0" y="0.0" /> + <point x="0.0" y="0.0" /> + </edge> + <edge source="lorganisation.projecttbt.ui.screen.MapSelectionScreen" target="lorganisation.projecttbt.ui.screen.Screen"> + <point x="0.0" y="0.0" /> + <point x="0.0" y="0.0" /> + </edge> + <edge source="lorganisation.projecttbt.ui.screen.CharacterSelectionScreen" target="lorganisation.projecttbt.ui.screen.Screen"> + <point x="0.0" y="0.0" /> + <point x="0.0" y="0.0" /> + </edge> + <edge source="lorganisation.projecttbt.ui.widget.InputWidget" target="lorganisation.projecttbt.ui.widget.Widget"> + <point x="0.0" y="0.0" /> + <point x="0.0" y="0.0" /> + </edge> + <edge source="lorganisation.projecttbt.ui.widget.TextBoxWidget" target="lorganisation.projecttbt.ui.widget.Widget"> + <point x="0.0" y="0.0" /> + <point x="0.0" y="0.0" /> + </edge> + <edge source="lorganisation.projecttbt.ui.widget.HorizontalComboBoxWidget" target="lorganisation.projecttbt.ui.widget.InputWidget"> + <point x="0.0" y="0.0" /> + <point x="0.0" y="0.0" /> + </edge> + <edge source="lorganisation.projecttbt.ui.widget.CharacterListWidget" target="lorganisation.projecttbt.ui.widget.PlayerListWidget"> + <point x="0.0" y="0.0" /> + <point x="0.0" y="0.0" /> + </edge> + <edge source="lorganisation.projecttbt.ui.screen.MainScreen" target="lorganisation.projecttbt.ui.screen.Screen"> + <point x="0.0" y="0.0" /> + <point x="0.0" y="0.0" /> + </edge> + <edge source="lorganisation.projecttbt.ui.widget.IntegerField" target="lorganisation.projecttbt.ui.widget.InputWidget"> + <point x="0.0" y="0.0" /> + <point x="0.0" y="0.0" /> + </edge> + <edge source="lorganisation.projecttbt.ui.widget.ColorPicker" target="lorganisation.projecttbt.ui.widget.InputWidget"> + <point x="0.0" y="0.0" /> + <point x="0.0" y="0.0" /> + </edge> + <edge source="lorganisation.projecttbt.ui.widget.LoadingBar" target="lorganisation.projecttbt.ui.widget.Widget"> + <point x="0.0" y="0.0" /> + <point x="0.0" y="0.0" /> + </edge> + <edge source="lorganisation.projecttbt.ui.screen.LobbyScreen" target="lorganisation.projecttbt.ui.screen.Screen"> + <point x="0.0" y="0.0" /> + <point x="0.0" y="0.0" /> + </edge> + <edge source="lorganisation.projecttbt.ui.screen.WinnerScreen" target="lorganisation.projecttbt.ui.screen.Screen"> + <point x="0.0" y="0.0" /> + <point x="0.0" y="0.0" /> + </edge> + <edge source="lorganisation.projecttbt.ui.widget.PlayerListWidget" target="lorganisation.projecttbt.ui.widget.TextBoxWidget"> + <point x="0.0" y="0.0" /> + <point x="0.0" y="0.0" /> + </edge> + </edges> + <settings layout="Hierarchic Group" zoom="0.642685025817556" x="960.0254418853774" y="1144.4801821103374" /> + <SelectedNodes> + <node>lorganisation.projecttbt.ui.widget.ColorPicker</node> + </SelectedNodes> + <Categories> + <Category>Fields</Category> + <Category>Methods</Category> + </Categories> + <SCOPE>All</SCOPE> + <VISIBILITY>private</VISIBILITY> +</Diagram> + diff --git a/src/main/java/lorganisation/projecttbt/Game.java b/src/main/java/lorganisation/projecttbt/Game.java index 78a7ab2..cbeacaa 100644 --- a/src/main/java/lorganisation/projecttbt/Game.java +++ b/src/main/java/lorganisation/projecttbt/Game.java @@ -3,10 +3,11 @@ import com.limelion.anscapes.ColorMode; import lorganisation.projecttbt.map.LevelMap; import lorganisation.projecttbt.player.AbstractPlayer; -import lorganisation.projecttbt.player.Action; +import lorganisation.projecttbt.player.ActionType; import lorganisation.projecttbt.player.Character; import lorganisation.projecttbt.player.Player; import lorganisation.projecttbt.ui.screen.*; +import lorganisation.projecttbt.utils.Coords; import lorganisation.projecttbt.utils.CyclicList; import lorganisation.projecttbt.utils.TerminalUtils; import lorganisation.projecttbt.utils.Utils; @@ -18,10 +19,30 @@ import java.io.File; import java.io.IOException; import java.nio.charset.StandardCharsets; +import java.util.ArrayList; import java.util.List; import static com.limelion.anscapes.Anscapes.Colors; +/* TODO some ideas: + - background images for each menu + - correct colors to match game theme + - fix TextBoxes (make a maxSize) -> KINDA + - fix UI -> KINDA (not dynamic but working) + - preview map (MapSelectionScreen) -> flemme, plus tard + - make proper Game Info -> OK + - make able to go back to previous menu using CyclicList<Screen> + - fix the game bounds problem -> OK + - add customizable attacks (AttackDeserializer) + - add Sound + Game Music Theme + - Background(Object) attribute in Screen (can be made with uniform color, gradient, image) + - Cooldowns and effects tick + */ +/* FIXME: + - do not compare character but instead keyCode (or else you can't navigate in Character Selection) + + */ + /** * La classe principale du jeu. * @@ -29,27 +50,26 @@ */ public class Game { + private static Game INSTANCE; /** * La liste des joueurs. */ private CyclicList<AbstractPlayer> players; - /** * La map du jeu */ private LevelMap map; - /** * Gère le rendu à l'écran */ private TerminalGameRenderer renderer; - /** * Gère les entrées utilisateurs */ private TerminalGameInput input; - private List<Colors> availableColors; + private int numCharacters; + private int numTurn = 1; public Game(TerminalGameInput input, TerminalGameRenderer renderer) { @@ -114,33 +134,38 @@ public static void main(String[] args) throws IOException { TerminalUtils.enterPrivateMode(); // L'objet jeu qui fait tout tenir en place - Game game = new Game(new TerminalGameInput(term), new TerminalGameRenderer(term)); + INSTANCE = new Game(new TerminalGameInput(term), new TerminalGameRenderer(term)); // On demande à l'utilisateur de redimensionner sa fenêtre // Sur Windows, on ne peut pas la redimensionner depuis le programme TerminalUtils.askForResize(term, new Size(130, 40)); - //new TestScreen(game).display(game.input, game.renderer); + //new TestScreen().display(INSTANCE.input, INSTANCE.renderer); // Menu principal du jeu // L'utilisateur peut choisir de démarrer une partie ou d'utiliser les outils de développement intégrés - game.mainMenu(); + INSTANCE.mainMenu(); // L'utilisateur peut choisir la map - game.mapSelection(); + INSTANCE.mapSelection(); // Les joueurs choisissent leurs personnages et leurs couleurs - game.lobby(); + INSTANCE.lobby(); // La partie commence ! // Elle continue jusqu'à ce que mort s'ensuive mdr - game.start(); + INSTANCE.start(); + + // Quelqu'un a gagné ! Fin du jeu + INSTANCE.winner(); // END / Cleanup - TerminalUtils.clearTerm(); - TerminalUtils.exitPrivateMode(); + shutdownGracefully(); + } + + public static Game getInstance() { - term.close(); + return INSTANCE; } /** @@ -169,6 +194,14 @@ public static void handleSignal(Terminal.Signal sig) { } } + public static void shutdownGracefully() { + + TerminalUtils.clearTerm(); + TerminalUtils.exitPrivateMode(); + + System.exit(0); + } + /** * Ajoute un joueur dans le jeu. * @@ -249,7 +282,7 @@ public void mainMenu() { */ public void mapSelection() { - new MapSelectionScreen(this).display(input, renderer); + new MapSelectionScreen().display(input, renderer); } /** @@ -257,10 +290,12 @@ public void mapSelection() { */ public void lobby() { - LobbyScreen lobbyScreen = new LobbyScreen(this); + LobbyScreen lobbyScreen = new LobbyScreen(); lobbyScreen.display(input, renderer); - CharacterSelectionScreen characterSelectionScreen = new CharacterSelectionScreen(this, lobbyScreen.getMaxCharacterCount()); + this.numCharacters = lobbyScreen.getMaxCharacterCount(); + + CharacterSelectionScreen characterSelectionScreen = new CharacterSelectionScreen(lobbyScreen.getMaxCharacterCount()); characterSelectionScreen.display(input, renderer); } @@ -286,7 +321,18 @@ public int getRealPlayerCount() { return count; } - // Keep it until as model until CharacterSelectionScreen is made + /** + * Donne une lsite contenant le noms de tous les joueurs dans la partie + */ + public List<String> getPlayerNames() { + + List<String> names = new ArrayList<>(); + + for (AbstractPlayer player : getPlayers()) + names.add(player.getName()); + + return names; + } /** * Donne le nombre de BOTs non-bot dans la partie @@ -301,37 +347,86 @@ public int getBotCount() { */ public void start() { - GameScreen gameScreen = new GameScreen(this); - gameScreen.display(input, renderer); - - int turnNumber = 1; + // L'écran du jeu + GameScreen gameScreen = new GameScreen(); + // On cycle sur les personnages tant que la partie n'est pas finie while (!isFinished()) { + //début tour d'un joueur AbstractPlayer currPlayer = getPlayers().next(); - currPlayer.setStatus(AbstractPlayer.Status.IDLE); - Character currCharacter = currPlayer.getCharacters().next(); - currCharacter.setActionPoints(currCharacter.getDefaultActionPoints()); - while (!isTurnFinished(currPlayer)) { - Action action = currPlayer.play(this, currCharacter); + gameScreen.display(input, renderer); + + // get status before modified by play() + AbstractPlayer.Status currStatus = currPlayer.getStatus(); - if (action == Action.DO_NOTHING && currPlayer instanceof Player) { + ActionType actionType = currPlayer.play(this, currCharacter); + + if (actionType == ActionType.DO_NOTHING && currPlayer instanceof Player) { gameScreen.keyPressed(input.getLastKey()); } else { gameScreen.display(input, renderer); } - if (action == Action.CAST_ATTACK && currPlayer.getStatus() == AbstractPlayer.Status.CASTING_ATTACK) - break; + /*if (actionType == ActionType.CAST_ATTACK) + gameScreen.addInfo(currPlayer.getName() + "(" + currStatus.name() + " -> " + currPlayer.getStatus().name() + ")" + " CASTED " + currCharacter.getAttacks().current().getName() + " with " + currCharacter.getType());*/ + + if (actionType == ActionType.CAST_ATTACK && currStatus == AbstractPlayer.Status.CASTING_ATTACK) + break; // SI IL LANCE LATTAQUE + } + + currCharacter.turnReset(); + ++numTurn; + + // on vire tous les personnages morts, si un joueur n'a plus de persos, c'est qu'il a perdu, il est out / kaput, il dégage ses morts de la game. + clearDeads(); + } + } + + /** + * FIXME: à simplifier (pb de Concurrent Modification) Supprime les personnages morts, puis les joueurs n'ayant plus + * de personnages + */ + private void clearDeads() { + + List<Integer> aliventPlayers = new ArrayList<>(); + + int k = 0; + for (AbstractPlayer player : getPlayers()) { + int i = 0; + + List<Integer> toRemove = new ArrayList<>(); + for (Character character : player.getCharacters()) { + if (character.getHealth() <= 0) + toRemove.add(i); + ++i; } - ++turnNumber; + for (Integer j : toRemove) + player.getCharacters().remove(j.intValue()); + + if (player.getCharacters().size() == 0 || player.getCharacters().isEmpty()) + aliventPlayers.add(k); + + ++k; } + for (Integer l : aliventPlayers) + getPlayers().remove(l.intValue()); + } + + /** + * Affiche l'écran du victoire, assez primitif. Le joueur gagnant est le seul restant dans la + * CyclicList<AbstractPlayer> + */ + private void winner() { + + WinnerScreen winnerScreen = new WinnerScreen(); + winnerScreen.display(input, renderer); } /** @@ -345,12 +440,12 @@ public boolean isFinished() { for (AbstractPlayer player : getPlayers()) for (Character character : player.getCharacters()) - if (character.getHealth() != 0) { + if (character.getHealth() > 0) { ++playersAlive; break; } - return playersAlive == 1; + return playersAlive <= 1; } /** @@ -366,4 +461,29 @@ public boolean isTurnFinished(AbstractPlayer player) { return c.getActionPoints() <= 0 || c.getHealth() <= 0; } + + /** + * Donne le nombre de tours qui se sont écoulés + * + * @return int game turn count + */ + public int getNumTurn() { + + return numTurn; + } + + public boolean isTileFree(int x, int y) { + + for (AbstractPlayer p : players) + for (Character c : p.getCharacters()) + if (c.getPos().getX() == x && c.getPos().getY() == y) + return false; + + return true; + } + + public boolean isTileFree(Coords pos) { + + return isTileFree(pos.getX(), pos.getY()); + } } \ No newline at end of file diff --git a/src/main/java/lorganisation/projecttbt/TerminalGameInput.java b/src/main/java/lorganisation/projecttbt/TerminalGameInput.java index 36790ef..1e87701 100644 --- a/src/main/java/lorganisation/projecttbt/TerminalGameInput.java +++ b/src/main/java/lorganisation/projecttbt/TerminalGameInput.java @@ -1,11 +1,12 @@ package lorganisation.projecttbt; +import lorganisation.projecttbt.utils.KeyUtils; import org.jline.keymap.BindingReader; import org.jline.keymap.KeyMap; import org.jline.terminal.Terminal; +import org.jline.utils.InfoCmp; import javax.swing.KeyStroke; -import java.awt.event.KeyEvent; import java.io.IOException; public class TerminalGameInput { @@ -34,11 +35,14 @@ public TerminalGameInput(Terminal terminal) { keys.bind(KeyStroke.getKeyStroke(c), Character.toString(c)); // Ici les touches spéciales (TAB, BACKSPACE etc...) - keys.bind(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), KeyMap.esc()); - keys.bind(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "\r"); - keys.bind(KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0), "\t"); - keys.bind(KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, 0), "\b"); - + keys.bind(KeyUtils.KEY_ESCAPE, KeyMap.esc()); + keys.bind(KeyUtils.KEY_ENTER, "\r"); + keys.bind(KeyUtils.KEY_TAB, "\t"); + keys.bind(KeyUtils.KEY_BACKSPACE, "\b"); + keys.bind(KeyUtils.KEY_UP_ARROW, KeyMap.key(terminal, InfoCmp.Capability.key_up)); + keys.bind(KeyUtils.KEY_LEFT_ARROW, KeyMap.key(terminal, InfoCmp.Capability.key_left)); + keys.bind(KeyUtils.KEY_DOWN_ARROW, KeyMap.key(terminal, InfoCmp.Capability.key_down)); + keys.bind(KeyUtils.KEY_RIGHT_ARROW, KeyMap.key(terminal, InfoCmp.Capability.key_right)); } public int readInput() { diff --git a/src/main/java/lorganisation/projecttbt/TerminalGameRenderer.java b/src/main/java/lorganisation/projecttbt/TerminalGameRenderer.java index 382710a..6614bd1 100644 --- a/src/main/java/lorganisation/projecttbt/TerminalGameRenderer.java +++ b/src/main/java/lorganisation/projecttbt/TerminalGameRenderer.java @@ -1,8 +1,10 @@ package lorganisation.projecttbt; import com.limelion.anscapes.Anscapes; +import lorganisation.projecttbt.map.Tile; import lorganisation.projecttbt.player.AbstractPlayer; import lorganisation.projecttbt.player.Character; +import lorganisation.projecttbt.player.attack.Attack; import lorganisation.projecttbt.ui.screen.Screen; import lorganisation.projecttbt.ui.widget.InvisibleButton; import lorganisation.projecttbt.ui.widget.Widget; @@ -13,9 +15,13 @@ import org.jline.terminal.Size; import org.jline.terminal.Terminal; +import java.util.List; + public class TerminalGameRenderer { - // Terminal utilisé pour afficher les écrans et composants + /** + * L'objet terminal utilisé pour écrire + */ private Terminal terminal; public TerminalGameRenderer(Terminal terminal) { @@ -25,7 +31,7 @@ public TerminalGameRenderer(Terminal terminal) { } /** - * Get terminal size + * Retourne la taille du terminal * * @return Size of the terminal */ @@ -35,42 +41,64 @@ public Size getSize() { } /** - * Render and display a Game at (0,0) aligned to the left + * Affiche la map du jeu à l'emplacement spécifié * - * @param g game to render + * @param g l'instance du jeu à afficher + * @param x offset selon x + * @param y offset selon + * @param align alignement du composant */ - public void render(Game g) { + public void render(Game g, int x, int y, Utils.Align align) { - render(g, 0, 0, Utils.Align.LEFT); - } + Coords coords = TerminalUtils.coordinatesOfAlignedObject(y, x, g.getMap().getWidth(), align, terminal.getWidth()); + // On affiche la map + TerminalUtils.writeAt(coords.getX(), coords.getY(), g.getMap().visual().replaceAll("\n", "\n" + Anscapes.moveRight(coords.getX()))); - /** - * Render and display a Game on the terminal - * - * @param g game to display - * @param x offset from LEFT / RIGHT / CENTER - * @param y distance from top - * @param align alignment - */ - public void render(Game g, int x, int y, Utils.Align align) { + // On affiche la distance d'attaque du personnage + // Lorsque le personnage est en phase d'attaque + AbstractPlayer currPlayingPlayer = g.getPlayers().current(); + if (currPlayingPlayer != null && currPlayingPlayer.getStatus() == AbstractPlayer.Status.CASTING_ATTACK) { - TerminalUtils.clearTerm(); + Character currPlayingCharacter = g.getPlayers().current().getCharacters().current(); - Coords coords = TerminalUtils.coordinatesOfAlignedObject(y, x, g.getMap().getWidth(), align, terminal.getWidth()); + Attack atk = currPlayingCharacter.getAttacks().current(); + List<Coords> toHighlight = atk.getReachableTiles(currPlayingCharacter); + for (Coords tile : toHighlight) + if (g.getMap().isInBounds(tile.getX(), tile.getY())) + TerminalUtils.writeAt(coords.getX() + tile.getX(), coords.getY() + tile.getY(), Anscapes.Colors.BLUE_BRIGHT.bg() + " "); - TerminalUtils.writeAt(coords.getX(), coords.getY(), g.getMap().visual().replaceAll("\n", "\n" + Anscapes.moveRight(coords.getX()))); + for(Coords impact : atk.getHitTiles(currPlayingCharacter.getAimingAt())) { + TerminalUtils.writeAt(coords.getX() + impact.getX(), coords.getY() + impact.getY(), Anscapes.Colors.BLUE.bg() + " "); + } + } + + for (AbstractPlayer player : g.getPlayers()) { - for (AbstractPlayer player : g.getPlayers()) + // display characters (top layer) for (Character character : player.getCharacters()) TerminalUtils.writeAt(coords.getX() + character.getPos().getX(), coords.getY() + character.getPos().getY(), player.getColor().fg() + character.getIcon()); + } + + // Une petite cible pour montrer où le joueur vise + // FIXME make that if a character is on this tile we must just invert the color and not print an 'x' + if (currPlayingPlayer != null && currPlayingPlayer.getStatus() == AbstractPlayer.Status.CASTING_ATTACK) { + + // character that player is currently playing with (if playing) + Character currPlayingCharacter = currPlayingPlayer.getCharacters().current(); + + Coords aim = currPlayingCharacter.getAimingAt(); + Tile aimedTile = g.getMap().getTileAt(aim.getX(), aim.getY()); + + TerminalUtils.writeAt(coords.getX() + aim.getX(), coords.getY() + aim.getY(), Anscapes.Colors.RED_BRIGHT.fg() + Anscapes.Colors.BLUE.bg() + "×"); + } } /** - * Render and display a screen on the terminal + * Affiche un objet Screen * * @param screen to render and display */ @@ -85,7 +113,7 @@ public void render(Screen screen) { StringBuilder controls = new StringBuilder("Change focus: TAB"); //if (screen.getFocusedWidget() != null && screen.getFocusedWidget().getControls() != null) for (Widget widget : screen.getComponents()) - if (((!widget.isFocusable() && widget.isEnabled()) || widget == screen.getFocusedWidget()) && widget.getControls() != null) { + if (((!widget.isFocusable() && widget.isEnabled()) || widget == screen.getFocusedWidget())) { //FIXME removed && widget.getControls() != null at the end if ((widget instanceof InvisibleButton && !widget.isEnabled())) { continue; @@ -96,20 +124,20 @@ public void render(Screen screen) { } } - int ypos = terminalSize.getRows() - (int) Math.ceil((double) controls.length() / terminalSize.getColumns()); + int yPos = terminalSize.getRows() - (int) Math.ceil((double) controls.length() / terminalSize.getColumns()); // same col because cursorPos(y, x) starts at (1, 1) whereas formattedLine(y, x) starts at (0, 0) - System.out.print(TerminalUtils.makeLine(new Coords(0, ypos), - new Coords(terminalSize.getColumns(), ypos), + System.out.print(TerminalUtils.makeLine(new Coords(0, yPos), + new Coords(terminalSize.getColumns(), yPos), ' ', Anscapes.Colors.WHITE.bg())); - System.out.print(TerminalUtils.formattedLine(ypos, 0, new StyledString(controls.toString()), Utils.Align.LEFT, terminalSize.getColumns())); + System.out.print(TerminalUtils.formattedLine(yPos, 0, new StyledString(controls.toString()), Utils.Align.LEFT, terminalSize.getColumns())); } /** - * Uses component's paint method to render it + * Dessine un composant * - * @param component to render + * @param component le composant à dessiner */ private void renderComponent(Widget component) { @@ -117,9 +145,7 @@ private void renderComponent(Widget component) { } /** - * Get terminal - * - * @return the current terminal + * @return l'objet terminal associé */ public Terminal getTerminal() { diff --git a/src/main/java/lorganisation/projecttbt/experiments/SerializationTest.java b/src/main/java/lorganisation/projecttbt/experiments/SerializationTest.java deleted file mode 100644 index 78fe093..0000000 --- a/src/main/java/lorganisation/projecttbt/experiments/SerializationTest.java +++ /dev/null @@ -1,34 +0,0 @@ -package lorganisation.projecttbt.experiments; - -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import lorganisation.projecttbt.player.Character; -import lorganisation.projecttbt.player.attack.Attack; -import lorganisation.projecttbt.player.attack.CircularAttack; -import lorganisation.projecttbt.player.attack.effects.FireEffect; -import lorganisation.projecttbt.utils.Coords; -import lorganisation.projecttbt.utils.Pair; -import lorganisation.projecttbt.utils.Utils; - -import java.io.Serializable; -import java.util.function.BiFunction; - -public class SerializationTest { - - public static void main(String[] args) { - - // int magicCost, int cooldown, int minimumRange, int maximumRange, int areaRadius, TargetType target, DamageType damageType, BiFunction<Pair<Character, Character>, Coords, Integer> damages, Effect... effects - BiFunction<Pair<Character, Character>, Coords, Integer> lightningStrikeDamages = (BiFunction<Pair<Character, Character>, Coords, Integer> & Serializable) (pair, tile) -> (4 - Utils.distance(pair.getV().getPos(), tile)); - CircularAttack lightningStrike = new CircularAttack(10, 3, 2, 5, 2, Attack.TargetType.ENEMIES, Attack.DamageType.MAGIC, lightningStrikeDamages, new FireEffect(1, 3)); - - Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create(); - String serializedObject; - - - System.out.println("|----------+Serializing+----------|"); - System.out.println(serializedObject = gson.toJson(new FireEffect(1, 3))); - System.out.println("|---------+Deserializing+---------|"); - System.out.println("Objects are equals: " + lightningStrike.equals(gson.fromJson(serializedObject, FireEffect.class))); - System.out.println("|------------+Finished+-----------|"); - } -} diff --git a/src/main/java/lorganisation/projecttbt/map/LevelMap.java b/src/main/java/lorganisation/projecttbt/map/LevelMap.java index 17147b6..6293ada 100644 --- a/src/main/java/lorganisation/projecttbt/map/LevelMap.java +++ b/src/main/java/lorganisation/projecttbt/map/LevelMap.java @@ -40,7 +40,6 @@ private LevelMap(int width, int height, Tiles[][] tiles, String name, String des this.tiles = tiles; // Création du visuel de la map - // FIXME probleme de rotation de la map StringBuilder sb = new StringBuilder(); for (int y = 0; y < height; ++y) { for (int x = 0; x < width; ++x) @@ -229,6 +228,14 @@ public Tiles[][] getTiles() { return tiles; } + public Tile getTileAt(int x, int y) { + + if (isInBounds(x, y)) + return tiles[x][y]; + else + return null; + } + public String getDescription() { return description; @@ -274,6 +281,16 @@ public String visual() { */ public boolean canCollide(int x, int y) { - return x > 0 && y > 0 && x < width && y < height && tiles[x][y].canStepOn(); + return isInBounds(x, y) && tiles[x][y].canStepOn(); + } + + public boolean canCollide(Coords pos) { + + return canCollide(pos.getX(), pos.getY()); + } + + public boolean isInBounds(int x, int y) { + + return x >= 0 && y >= 0 && x < width && y < height; } } diff --git a/src/main/java/lorganisation/projecttbt/map/Tile.java b/src/main/java/lorganisation/projecttbt/map/Tile.java index 6e03063..567909d 100644 --- a/src/main/java/lorganisation/projecttbt/map/Tile.java +++ b/src/main/java/lorganisation/projecttbt/map/Tile.java @@ -1,8 +1,8 @@ -package lorganisation.projecttbt.map; - -public interface Tile { - - boolean canStepOn(); - - String getIcon(); -} +package lorganisation.projecttbt.map; + +public interface Tile { + + boolean canStepOn(); + + String getIcon(); +} diff --git a/src/main/java/lorganisation/projecttbt/map/Tiles.java b/src/main/java/lorganisation/projecttbt/map/Tiles.java index 921eabd..74f71ef 100644 --- a/src/main/java/lorganisation/projecttbt/map/Tiles.java +++ b/src/main/java/lorganisation/projecttbt/map/Tiles.java @@ -1,46 +1,50 @@ -package lorganisation.projecttbt.map; - -import com.limelion.anscapes.Anscapes; - -import static com.limelion.anscapes.Anscapes.Colors; - -/** - * Représente une case d'une map. Le joueur peut ou non la traverser. TODO changer vers une vraie classe Tiles, - * permettant une customisation approfondie de chaque Tiles - */ -public enum Tiles implements Tile { - - BLANK(Colors.WHITE.bg() + " " + Anscapes.RESET, true), - ROCK(Colors.WHITE_BRIGHT.bg() + " " + Anscapes.RESET, false), - GRASS(Colors.GREEN.bg() + " " + Anscapes.RESET, true), - WATER(Colors.BLUE_BRIGHT.bg() + " " + Anscapes.RESET, false); - - private String icon; - private boolean canStepOn; - - Tiles(String icon, boolean canStepOn) { - - this.icon = icon; - this.canStepOn = canStepOn; - } - - @Override - public String toString() { - - return "Tiles{" + - "icon=" + icon + - ", canStepOn=" + canStepOn + - '}'; - } - - public boolean canStepOn() { - - return canStepOn; - } - - public String getIcon() { - - return icon; - } - -} +package lorganisation.projecttbt.map; + +import com.limelion.anscapes.Anscapes; + +import static com.limelion.anscapes.Anscapes.Colors; + +/** + * Représente une case d'une map. Le joueur peut ou non la traverser. TODO changer vers une vraie classe Tiles, + * permettant une customisation approfondie de chaque Tiles + */ +public enum Tiles implements Tile { + + BLANK(Colors.WHITE.bg() + " " + Anscapes.RESET, true), + ROCK(Colors.WHITE_BRIGHT.bg() + " " + Anscapes.RESET, false), + GRASS(Colors.GREEN.bg() + " " + Anscapes.RESET, true), + WATER(Colors.BLUE_BRIGHT.bg() + " " + Anscapes.RESET, false), + LAVA(Colors.RED.bg() + " " + Anscapes.RESET, false), + SAND(Colors.YELLOW_BRIGHT.bg() + " " + Anscapes.RESET, true), + TREE(Colors.GREEN_BRIGHT.bg() + Colors.GREEN.fg() + "Ψ" + Anscapes.RESET, false); + + + private String icon; + private boolean canStepOn; + + Tiles(String icon, boolean canStepOn) { + + this.icon = icon; + this.canStepOn = canStepOn; + } + + @Override + public String toString() { + + return "Tiles{" + + "icon=" + icon + + ", canStepOn=" + canStepOn + + '}'; + } + + public boolean canStepOn() { + + return canStepOn; + } + + public String getIcon() { + + return icon; + } + +} diff --git a/src/main/java/lorganisation/projecttbt/player/AbstractPlayer.java b/src/main/java/lorganisation/projecttbt/player/AbstractPlayer.java index d3c087c..75950db 100644 --- a/src/main/java/lorganisation/projecttbt/player/AbstractPlayer.java +++ b/src/main/java/lorganisation/projecttbt/player/AbstractPlayer.java @@ -23,7 +23,7 @@ public AbstractPlayer(String name, AnsiColor c) { this.status = Status.IDLE; } - public abstract Action play(Game game, Character character); + public abstract ActionType play(Game game, Character character); public abstract boolean isBot(); diff --git a/src/main/java/lorganisation/projecttbt/player/Action.java b/src/main/java/lorganisation/projecttbt/player/Action.java deleted file mode 100644 index f216b4c..0000000 --- a/src/main/java/lorganisation/projecttbt/player/Action.java +++ /dev/null @@ -1,17 +0,0 @@ -package lorganisation.projecttbt.player; - -public enum Action { - - MOVE_PASS, - MOVE_LEFT, - MOVE_RIGHT, - MOVE_UP, - MOVE_DOWN, - CAST_ATTACK, - DO_NOTHING; - - public String toString() { - - return this.name(); - } -} diff --git a/src/main/java/lorganisation/projecttbt/player/ActionType.java b/src/main/java/lorganisation/projecttbt/player/ActionType.java new file mode 100644 index 0000000..b7250a0 --- /dev/null +++ b/src/main/java/lorganisation/projecttbt/player/ActionType.java @@ -0,0 +1,35 @@ +package lorganisation.projecttbt.player; + +import javax.swing.KeyStroke; + +public enum ActionType { + + MOVE_PASS, + MOVE_LEFT, + MOVE_RIGHT, + MOVE_UP, + MOVE_DOWN, + CAST_ATTACK, + DO_NOTHING; + + public static ActionType parseFromKey(KeyStroke key) { + + if (key.getKeyChar() == 'z') + return MOVE_UP; + if (key.getKeyChar() == 'q') + return MOVE_LEFT; + if (key.getKeyChar() == 's') + return MOVE_DOWN; + if (key.getKeyChar() == 'd') + return MOVE_RIGHT; + if (key.getKeyChar() == ' ') + return CAST_ATTACK; + + return DO_NOTHING; + } + + public String toString() { + + return this.name(); + } +} diff --git a/src/main/java/lorganisation/projecttbt/player/Attack.java b/src/main/java/lorganisation/projecttbt/player/Attack.java deleted file mode 100644 index 8a30664..0000000 --- a/src/main/java/lorganisation/projecttbt/player/Attack.java +++ /dev/null @@ -1,6 +0,0 @@ -package lorganisation.projecttbt.player; - -public class Attack { - - -} diff --git a/src/main/java/lorganisation/projecttbt/player/Bot.java b/src/main/java/lorganisation/projecttbt/player/Bot.java index f03c069..fd9ddc5 100644 --- a/src/main/java/lorganisation/projecttbt/player/Bot.java +++ b/src/main/java/lorganisation/projecttbt/player/Bot.java @@ -20,6 +20,11 @@ public Bot(List<? extends AnsiColor> availableColors) { super("[BOT] " + Utils.pickRandom(botNames), Utils.pickRandom(availableColors)); } + public static boolean isWorking() { + + return false; + } + public void pickCharacters(List<String> characterNames, int quantity) { while (characters.size() < quantity) { @@ -35,14 +40,14 @@ public void pickCharacters(List<String> characterNames, int quantity) { } while (true); - characters.add(CharacterTemplate.getCharacterTemplate(name).createCharacter()); + characters.add(new Character(CharacterTemplate.getCharacterTemplate(name), this)); } } @Override - public Action play(Game game, Character character) { + public ActionType play(Game game, Character character) { - return Action.DO_NOTHING; + return ActionType.DO_NOTHING; } @Override diff --git a/src/main/java/lorganisation/projecttbt/player/Character.java b/src/main/java/lorganisation/projecttbt/player/Character.java index 135f674..e6599de 100644 --- a/src/main/java/lorganisation/projecttbt/player/Character.java +++ b/src/main/java/lorganisation/projecttbt/player/Character.java @@ -1,8 +1,12 @@ package lorganisation.projecttbt.player; import lorganisation.projecttbt.player.attack.Attack; +import lorganisation.projecttbt.player.attack.CircularAttack; import lorganisation.projecttbt.player.attack.effects.Effect; import lorganisation.projecttbt.utils.Coords; +import lorganisation.projecttbt.utils.CyclicList; +import lorganisation.projecttbt.utils.StyledString; +import lorganisation.projecttbt.utils.Utils; import java.util.ArrayList; import java.util.List; @@ -23,28 +27,57 @@ public class Character { protected int magicArmor; // Points de magie protected int armor; // Valeur du bouclier + // FIXME physicAtk et magicAtk useless ? protected int physicAtk; // Dommages moyens par attaque protected int magicAtk; protected List<Effect> effects; + protected CyclicList<Attack> attacks; - private Character(String type, String icon, int actionPoints, int health, int magicArmor, int armor, int physicAtk) { + protected Coords aimingAt; + protected boolean hasAttacked; + protected AbstractPlayer owner; + + public Character(CharacterTemplate template, AbstractPlayer owner) { + + this.owner = owner; this.pos = new Coords(0, 0); - this.type = type; - this.icon = icon; - this.actionPoints = actionPoints; - this.maxActionPoints = actionPoints; - this.health = health; - this.magicArmor = magicArmor; - this.armor = armor; - this.physicAtk = physicAtk; + this.type = template.type; + this.icon = template.icon; + this.maxActionPoints = template.maxActionPoints; + this.health = template.maxHealth; + this.maxHealth = template.maxHealth; + this.magicArmor = template.magicArmor; + this.magicAtk = template.magicAtk; + this.armor = template.physicArmor; + this.physicAtk = template.physicAtk; this.effects = new ArrayList<>(); + this.attacks = new CyclicList<>(); + attacks.add(new CircularAttack("Basic Attack", 2, 0, 0, this.maxActionPoints, 0, Attack.TargetType.ENEMIES, (this.magicAtk > this.physicAtk) ? Attack.DamageType.MAGIC : (magicAtk == physicAtk ? Attack.DamageType.TRUE : Attack.DamageType.PHYSIC), (chars, tile) -> 15 - Utils.distance(chars.getU().pos, chars.getV().pos))); + // FIXME attacks +/* + if (template.attacks != null) + this.attacks = new CyclicList<>(template.attacks); + + this.attacks = new CyclicList<>(); + + */ + + turnReset(); } - public Character(CharacterTemplate template) { + public String toString() { - this(template.type, template.icon, template.portee, template.hp, template.mp, template.defense, template.dommagesAttaque); + return type + "(" + owner.getName() + ")" + ": icon=" + icon + ", maxAP=" + maxActionPoints + ", health=" + health + ", magicArmor=" + magicArmor + " armor=" + armor + ", physicAtk=" + physicAtk + ", magicAtk=" + magicAtk + ", effects=" + effects.size() + ", attacks=" + attacks.size(); + } + + public void turnReset() { + + this.actionPoints = maxActionPoints; + this.hasAttacked = false; + + resetAim(); } public void addEffect(Effect e) { @@ -57,6 +90,11 @@ public void removeEffect(Effect e) { this.effects.remove(e); } + public void attack(Attack atk) { + + this.hasAttacked = true; + } + public void damage(Attack.DamageType type, int damage) { switch (type) { @@ -89,17 +127,17 @@ public String getIcon() { return icon; } - public int getActionPoints() { + public CyclicList<Attack> getAttacks() { - return actionPoints; + return this.attacks; } - public void setActionPoints(int actionPoints) { + public int getActionPoints() { - this.actionPoints = actionPoints; + return actionPoints; } - public int getDefaultActionPoints() { + public int getMaxActionPoints() { return maxActionPoints; } @@ -109,9 +147,9 @@ public int getHealth() { return health; } - public void setHealth(int health) { + public int getMaxHealth() { - this.health = health; + return maxHealth; } public int getMagicArmor() { @@ -119,34 +157,34 @@ public int getMagicArmor() { return magicArmor; } - public void setMagicArmor(int magicArmor) { + public int getArmor() { - this.magicArmor = magicArmor; + return armor; } - public int getArmor() { + public int getPhysicAtk() { - return armor; + return physicAtk; } - public void setArmor(int armor) { + public int getMagicAtk() { - this.armor = armor; + return magicAtk; } - public int getPhysicAtk() { + public List<Effect> getEffects() { - return physicAtk; + return effects; } - public void setPhysicAtk(int physicAtk) { + public boolean hasAttacked() { - this.physicAtk = physicAtk; + return hasAttacked; } - public void decreaseMana(int magicCost) { + public AbstractPlayer getOwner() { - this.magicArmor -= magicCost; + return owner; } public Coords getPos() { @@ -158,4 +196,43 @@ public void setPos(Coords pos) { this.pos = pos; } + + public Coords getAimingAt() { + + return aimingAt; + } + + public void setAimingAt(Coords aimingAt) { + + this.aimingAt = aimingAt; + } + + public void resetAim() { + + this.aimingAt = new Coords(pos.getX(), pos.getY()); + } + + public void consumeActionPoints(int cost) { + + this.actionPoints = Math.max(this.actionPoints -= cost, 0); + } + + public List<StyledString> getDescription() { + + + List<StyledString> desc = new ArrayList<>(); + desc.add(new StyledString("Type: " + type + " (" + icon + ")")); + desc.add(new StyledString("Action: " + actionPoints + " / " + maxActionPoints)); + desc.add(new StyledString("Vie: " + health + " / " + maxHealth)); + desc.add(new StyledString("Defense: " + armor + " | " + magicArmor)); + desc.add(new StyledString("Attaque: " + physicAtk + " | " + magicAtk)); + + if (!effects.isEmpty()) { + desc.add(new StyledString("Effets:")); + for (Effect effect : effects) + desc.add(new StyledString(" - " + effect.toString())); + } + + return desc; + } } diff --git a/src/main/java/lorganisation/projecttbt/player/CharacterTemplate.java b/src/main/java/lorganisation/projecttbt/player/CharacterTemplate.java index b306043..71f47d1 100644 --- a/src/main/java/lorganisation/projecttbt/player/CharacterTemplate.java +++ b/src/main/java/lorganisation/projecttbt/player/CharacterTemplate.java @@ -1,6 +1,8 @@ package lorganisation.projecttbt.player; import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.annotations.Expose; import lorganisation.projecttbt.AssetsManager; import java.io.IOException; @@ -15,7 +17,10 @@ public class CharacterTemplate { private static Gson gson; static { - gson = new Gson(); + GsonBuilder gBuild = new GsonBuilder(); + //gBuild.registerTypeAdapter(CharacterTemplate.class, new CharacterDeserializer()); + + gson = gBuild.create(); characterTemplates = new HashMap<>(); try { for (String name : AssetsManager.gameCharacterNames()) @@ -25,15 +30,28 @@ public class CharacterTemplate { } } + @Expose protected String type; // Type de personnage + @Expose protected String icon; // icone // Definition automatique des capacités à partir du type (dans un fichier texte par exemple) - protected int portee; // Portée du déplacement - protected int hp; // Points de vie - protected int mp; // Points de magie - protected int defense; // Valeur du bouclier - protected int dommagesAttaque; // Dommages moyens par attaque + @Expose + protected int maxActionPoints; + @Expose + protected int maxHealth; + + @Expose + protected int magicArmor; // Points de magie + @Expose + protected int physicArmor; // Valeur du bouclier + + @Expose + protected int physicAtk; // Dommages moyens par attaque + @Expose + protected int magicAtk; + + //protected List<Attack> attacks; private static CharacterTemplate load(String name) throws IOException { @@ -54,9 +72,56 @@ public static HashMap<String, CharacterTemplate> getCharacterTemplates() { return characterTemplates; } - - public Character createCharacter() { - - return new Character(this); +/* + public static class CharacterDeserializer implements JsonDeserializer<CharacterTemplate> { + + @Override + public CharacterTemplate deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { + + JsonObject jsonObj = json.getAsJsonObject(); + + System.out.println(jsonObj.toString()); + + if (!jsonObj.has("type")) + throw new JsonParseException("Character is missing type"); + if (!jsonObj.has("icon")) + throw new JsonParseException("Character is missing icon"); + if (!jsonObj.has("actionPoints")) + throw new JsonParseException("Character is missing actionPoints"); + if (!jsonObj.has("health")) + throw new JsonParseException("Character is missing health"); + if (!jsonObj.has("magicArmor")) + throw new JsonParseException("Character is missing magicArmor"); + if (!jsonObj.has("physicArmor")) + throw new JsonParseException("Character is missing physicArmor"); + if (!jsonObj.has("physicAtk")) + throw new JsonParseException("Character is missing physicAtk"); + if (!jsonObj.has("magicAtk")) + throw new JsonParseException("Character is missing magicAtk"); + if (!jsonObj.has("attacks")) + throw new JsonParseException("Character is missing attacks"); + + + CharacterTemplate template = new CharacterTemplate(); + template.type = jsonObj.get("type").getAsString(); + template.icon = jsonObj.get("icon").getAsString(); + template.maxActionPoints = jsonObj.get("actionPoints").getAsInt(); + template.maxHealth = jsonObj.get("health").getAsInt(); + template.magicArmor = jsonObj.get("magicArmor").getAsInt(); + template.physicArmor = jsonObj.get("physicArmor").getAsInt(); + template.physicAtk = jsonObj.get("physicAtk").getAsInt(); + template.magicAtk = jsonObj.get("magicAtk").getAsInt(); + + ArrayList<Attack> attacks = new ArrayList<>(); + JsonArray jsonAtks = jsonObj.getAsJsonArray("attacks"); + for (JsonElement jsonAtk : jsonAtks) + attacks.add(Attack.fromJson(jsonAtk)); + + template.attacks = attacks; + + return template; + } } + + */ } diff --git a/src/main/java/lorganisation/projecttbt/player/Player.java b/src/main/java/lorganisation/projecttbt/player/Player.java index 05107e1..67c796a 100644 --- a/src/main/java/lorganisation/projecttbt/player/Player.java +++ b/src/main/java/lorganisation/projecttbt/player/Player.java @@ -3,7 +3,7 @@ import com.limelion.anscapes.AnsiColor; import lorganisation.projecttbt.Game; import lorganisation.projecttbt.map.LevelMap; -import lorganisation.projecttbt.utils.KeyUtils; +import lorganisation.projecttbt.utils.Coords; import javax.swing.KeyStroke; @@ -15,55 +15,95 @@ public Player(String name, AnsiColor c) { } @Override - public Action play(Game game, Character character) { - - // TODO get player action + public ActionType play(Game game, Character character) { KeyStroke key = game.getInput().readKey(); - Action action = Action.DO_NOTHING; - int actionPoints = character.getActionPoints(); // FIXME needs to be character.getActionPoints() - usedActionPoints() + ActionType actionType = ActionType.DO_NOTHING; - if (isMoveKey(key)) { - if ((status == AbstractPlayer.Status.IDLE || status == AbstractPlayer.Status.SILENCED) && actionPoints > 0 || status == AbstractPlayer.Status.CASTING_ATTACK) { - if (key.equals(KeyStroke.getKeyStroke('q'))) action = Action.MOVE_LEFT; - else if (key.equals(KeyStroke.getKeyStroke('d'))) action = Action.MOVE_RIGHT; - else if (key.equals(KeyStroke.getKeyStroke('z'))) action = Action.MOVE_UP; - else action = Action.MOVE_DOWN; - } - } else if (key.equals(KeyUtils.KEY_SPACE_BAR)) { // is attack key ? + int actionPoints = character.getActionPoints(); + + if (key != null) { + + if (isMoveKey(key)) { + if ((status == AbstractPlayer.Status.IDLE || + status == AbstractPlayer.Status.SILENCED) && + actionPoints > 0 + || status == AbstractPlayer.Status.CASTING_ATTACK) { - if ((status == AbstractPlayer.Status.IDLE && actionPoints > 0) || status == AbstractPlayer.Status.CASTING_ATTACK) { // TODO load attacks & attackCost - action = Action.CAST_ATTACK; + actionType = ActionType.parseFromKey(key); + } + } else if (key.equals(KeyStroke.getKeyStroke('a'))) { // is attack key ? + + if ((status == AbstractPlayer.Status.IDLE && actionPoints >= character.attacks.current().getCost()) + || status == AbstractPlayer.Status.CASTING_ATTACK) { + actionType = ActionType.CAST_ATTACK; + + if (status != Status.CASTING_ATTACK) + character.resetAim(); + } } } + LevelMap map = game.getMap(); - switch (action) { + Coords target = character.getAimingAt(); + + switch (actionType) { case MOVE_LEFT: { - if (map.canCollide(character.pos.getX() - 1, character.pos.getY())) { + + Coords dest = new Coords(character.pos.getX() - 1, character.pos.getY()); + + if (status == Status.CASTING_ATTACK) { + + if (map.isInBounds(target.getX() - 1, target.getY())) + character.aimingAt.decX(); + + } else if (map.canCollide(dest) && game.isTileFree(dest)) { character.pos.decX(); --character.actionPoints; } break; } case MOVE_RIGHT: { - if (map.canCollide(character.pos.getX() + 1, character.pos.getY())) { + Coords dest = new Coords(character.pos.getX() + 1, character.pos.getY()); + + if (status == Status.CASTING_ATTACK) { + + if (map.isInBounds(target.getX() + 1, target.getY())) + character.aimingAt.incX(); + + } else if (map.canCollide(dest) && game.isTileFree(dest)) { character.pos.incX(); --character.actionPoints; } break; } case MOVE_UP: { - if (map.canCollide(character.pos.getX(), character.pos.getY() - 1)) { + Coords dest = new Coords(character.pos.getX(), character.pos.getY() - 1); + + if (status == Status.CASTING_ATTACK) { + + if (map.isInBounds(target.getX(), target.getY() - 1)) + character.aimingAt.decY(); + + } else if (map.canCollide(dest) && game.isTileFree(dest)) { character.pos.decY(); --character.actionPoints; } + break; } case MOVE_DOWN: { - if (map.canCollide(character.pos.getX(), character.pos.getY() + 1)) { + Coords dest = new Coords(character.pos.getX(), character.pos.getY() + 1); + + if (status == Status.CASTING_ATTACK) { + + if (map.isInBounds(target.getX(), target.getY() + 1)) + character.aimingAt.incY(); + + } else if (map.canCollide(dest) && game.isTileFree(dest)) { character.pos.incY(); --character.actionPoints; } @@ -72,8 +112,14 @@ public Action play(Game game, Character character) { case CAST_ATTACK: { if (status == Status.CASTING_ATTACK) { /* cast attack */ + if (character.getAttacks().current().use(game, character, character.getAimingAt())) + character.getOwner().setStatus(Status.IDLE); + else + actionType = ActionType.DO_NOTHING; + } else { /* select attack */ + character.getOwner().setStatus(Status.CASTING_ATTACK); } break; } @@ -82,7 +128,7 @@ public Action play(Game game, Character character) { break; } - return action; + return actionType; } @Override @@ -91,8 +137,19 @@ public boolean isBot() { return false; } + /** + * @param key la touche + * + * @return true si key est une touche de mouvement + */ private boolean isMoveKey(KeyStroke key) { - return (key.equals(KeyStroke.getKeyStroke('q')) || key.equals(KeyStroke.getKeyStroke('d')) || key.equals(KeyStroke.getKeyStroke('z')) || key.equals(KeyStroke.getKeyStroke('s'))); + if (key == null) + return false; + + return key.getKeyChar() == 'z' || + key.getKeyChar() == 'q' || + key.getKeyChar() == 's' || + key.getKeyChar() == 'd'; } } diff --git a/src/main/java/lorganisation/projecttbt/player/attack/Attack.java b/src/main/java/lorganisation/projecttbt/player/attack/Attack.java index 860ca93..60bbaa8 100644 --- a/src/main/java/lorganisation/projecttbt/player/attack/Attack.java +++ b/src/main/java/lorganisation/projecttbt/player/attack/Attack.java @@ -1,11 +1,15 @@ package lorganisation.projecttbt.player.attack; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; import lorganisation.projecttbt.Game; import lorganisation.projecttbt.player.AbstractPlayer; import lorganisation.projecttbt.player.Character; import lorganisation.projecttbt.player.attack.effects.Effect; import lorganisation.projecttbt.utils.Coords; import lorganisation.projecttbt.utils.Pair; +import lorganisation.projecttbt.utils.StyledString; import lorganisation.projecttbt.utils.Utils; import java.util.ArrayList; @@ -14,32 +18,109 @@ public abstract class Attack { - protected TargetType target; - protected int areaRadius; // radius of attack's impact zone + public int areaRadius; // radius of attack's impact zone protected int cooldown; // default cooldown - protected int magicCost; + protected int cost; protected List<Effect> effects; + protected TargetType targetType; protected DamageType damageType; + protected String name; + // Pair of ( Caster, Hit Character(if any) ), Tile Hit ===function===> Integer (damages dealt to Hit Character) - protected BiFunction<Pair<Character, Character>, Coords, Integer> damages; + protected BiFunction<Pair<Character, Character>, Coords, Integer> damages; // function that evaluates damages (Integer) to deal using Pair< caster, target > and hitTile - public Attack(int magicCost, int cooldown, int areaRadius, TargetType target, DamageType damageType, BiFunction<Pair<Character, Character>, Coords, Integer> damages, Effect... effects) { + public Attack(String name, int cost, int cooldown, int areaRadius, TargetType target, DamageType damageType, BiFunction<Pair<Character, Character>, Coords, Integer> damages, Effect... effects) { + this.name = name; this.effects = Utils.arrayToList(effects); - this.target = target; + this.targetType = target; this.damages = damages; this.cooldown = cooldown; - this.magicCost = magicCost; + this.cost = cost; this.damageType = damageType; this.areaRadius = areaRadius; } + //FIXME TODO prendre la fonction damages depuis le json + public static Attack fromJson(JsonElement jsonElement) { + + JsonObject jsonObj = jsonElement.getAsJsonObject(); + + if (!jsonObj.has("type") + || !jsonObj.has("name") + || !jsonObj.has("cost") + || !jsonObj.has("cooldown") + || !jsonObj.has("areaRadius") + || !jsonObj.has("targetType") + || !jsonObj.has("damageType") + || !jsonObj.has("damages")) + throw new JsonParseException("Attack is missing some parameters, check the manual !"); + + String type = jsonObj.get("type").getAsString(); + DamageType damageType; + try { + damageType = DamageType.valueOf(jsonObj.get("damageType").getAsString()); + } catch (IllegalArgumentException ex) { + throw new JsonParseException("DamageType isn't valid, choose from: MAGIC, PHYSIC, TRUE"); + } + + TargetType targetType; + try { + targetType = TargetType.valueOf(jsonObj.get("targetType").getAsString()); + } catch (IllegalArgumentException ex) { + throw new JsonParseException("TargetType isn't valid, choose from: ALL, SELF, ALLIES, ENEMIES"); + } + + if (type.toLowerCase().contains("circular")) { + + if (!jsonObj.has("minimumRange") + || !jsonObj.has("maximumRange")) + throw new JsonParseException("CircularAttack needs parameters: minimumRange(int) & maximumRange(int)"); + + CircularAttack atk = new CircularAttack(jsonObj.get("name").getAsString(), + jsonObj.get("cost").getAsInt(), + jsonObj.get("cooldown").getAsInt(), + jsonObj.get("minimumRange").getAsInt(), + jsonObj.get("maximumRange").getAsInt(), + jsonObj.get("areaRadius").getAsInt(), + targetType, damageType, (chars, tile) -> 10); + + return atk; + + } else if (type.toLowerCase().contains("rectilign")) { + + if (!jsonObj.has("range") + || !jsonObj.has("direction")) + throw new JsonParseException("RectilignAttack needs parameters: range(int) & direction(Direction: LEFT, RIGHT, DOWN, TOP)"); + + RectilignAttack.Direction direction; + try { + direction = RectilignAttack.Direction.valueOf(jsonObj.get("direction").getAsString()); + } catch (IllegalArgumentException ex) { + throw new JsonParseException("Direction isn't valid, choose from: UP, RIGHT, DOWN, LEFT"); + } + + + RectilignAttack atk = new RectilignAttack(jsonObj.get("range").getAsString(), + jsonObj.get("cost").getAsInt(), + jsonObj.get("cooldown").getAsInt(), + jsonObj.get("range").getAsInt(), + direction, + jsonObj.get("areaRadius").getAsInt(), + targetType, damageType, (chars, tile) -> 10); + + return atk; + + } else + throw new JsonParseException("Attack Type is not correct (CircularAttack or RectilignAttack are available atm.)"); + } + /** * @return true if attack has been casted */ public boolean use(Game game, Character origin, Coords tile) { - if (this.target.equals(TargetType.SELF) && condition(origin, tile)) { + if (this.targetType.equals(TargetType.SELF) && condition(origin, tile)) { // if damages < 0 it's a heal, if it's > 0 then the spell costs health to cast, damages = 0 -> not affecting health, only effects applied to player origin.damage(damageType, this.damages.apply(Pair.of(origin, origin), tile)); @@ -51,32 +132,32 @@ public boolean use(Game game, Character origin, Coords tile) { return true; } - if (condition(origin, tile) && origin.getMagicArmor() >= this.magicCost) { - origin.decreaseMana(this.magicCost); + if (condition(origin, tile) && origin.getActionPoints() >= this.cost) { + + origin.consumeActionPoints(this.cost); for (AbstractPlayer player : game.getPlayers()) for (Character target : player.getCharacters()) { // if spell is targeting Allies and the tested Character doesn't belong to casting character's player, skip this character; - if (this.target.equals(TargetType.ALLIES) && Utils.getCharacterOwner(game.getPlayers(), target) != Utils.getCharacterOwner(game.getPlayers(), origin)) { + if (this.targetType.equals(TargetType.ALLIES) && target.getOwner() != origin.getOwner()) { continue; // if spell is targeting enemies and character belongs to same player, skip this character - } else if (this.target.equals(TargetType.ENEMIES) && Utils.getCharacterOwner(game.getPlayers(), target) == Utils.getCharacterOwner(game.getPlayers(), origin)) { + } else if (this.targetType.equals(TargetType.ENEMIES) && target.getOwner() == origin.getOwner()) { continue; - } else if (this.target == TargetType.SELF) + } else if (this.targetType == TargetType.SELF) continue; if (Utils.distance(tile, target.getPos()) <= areaRadius) { target.damage(damageType, this.damages.apply(Pair.of(origin, target), tile)); - for (Effect effect : effects) { target.addEffect(effect); } - - return true; } } + + return true; } return false; @@ -90,22 +171,53 @@ public List<Coords> getHitTiles(Coords tile) { List<Coords> hitTiles = new ArrayList<>(); - for (int x = tile.getX() - this.areaRadius; x < tile.getX() + this.areaRadius; x++) - for (int y = tile.getY() - this.areaRadius; y < tile.getY() + this.areaRadius; y++) { + for (int x = tile.getX() - this.areaRadius; x <= tile.getX() + this.areaRadius; x++) + for (int y = tile.getY() - this.areaRadius; y <= tile.getY() + this.areaRadius; y++) { int distance = (int) Math.sqrt(Math.pow(tile.getX() - x, 2) + Math.pow(tile.getY() - y, 2)); - if (distance <= this.areaRadius && distance >= areaRadius) + if (distance <= this.areaRadius) hitTiles.add(new Coords(x, y)); } + hitTiles.add(new Coords(tile.getX(), tile.getY())); return hitTiles; } - public enum TargetType { + public List<StyledString> getDescription() { + + List<StyledString> desc = new ArrayList<>(); + desc.add(new StyledString(this.getName())); + desc.add(new StyledString("Type: " + this.getClass().getSimpleName().replaceAll("Attack", "") + " | " + damageType + " DAMAGE")); + //TODO give color to damageType + desc.add(new StyledString("Zone d'impact: " + (areaRadius + 1))); + desc.add(new StyledString("Atteint: " + targetType.name())); + + if (!effects.isEmpty()) { + desc.add(new StyledString("Effets:")); + for (Effect effect : effects) + desc.add(new StyledString(" - " + effect.toString())); + } + + desc.add(new StyledString("Coût: " + cost + " AP")); + desc.add(new StyledString("Récupération: " + cooldown)); - ALLIES, SELF, ENEMIES + return desc; + } + + public String getName() { + + return this.name; + } + + public int getCost() { + + return this.cost; + } + + public enum TargetType { + ALLIES, SELF, ENEMIES, ALL } public enum DamageType { diff --git a/src/main/java/lorganisation/projecttbt/player/attack/CircularAttack.java b/src/main/java/lorganisation/projecttbt/player/attack/CircularAttack.java index a275d40..7670756 100644 --- a/src/main/java/lorganisation/projecttbt/player/attack/CircularAttack.java +++ b/src/main/java/lorganisation/projecttbt/player/attack/CircularAttack.java @@ -14,9 +14,9 @@ public class CircularAttack extends Attack { protected Pair<Integer, Integer> range; //Pair.of(min, max) - public CircularAttack(int magicCost, int cooldown, int minimumRange, int maximumRange, int areaRadius, TargetType target, DamageType damageType, BiFunction<Pair<Character, Character>, Coords, Integer> damages, Effect... effects) { + public CircularAttack(String name, int cost, int cooldown, int minimumRange, int maximumRange, int areaRadius, TargetType target, DamageType damageType, BiFunction<Pair<Character, Character>, Coords, Integer> damages, Effect... effects) { - super(magicCost, cooldown, areaRadius, target, damageType, damages, effects); + super(name, cost, cooldown, areaRadius, target, damageType, damages, effects); this.range = Pair.of(minimumRange, maximumRange); this.damages = damages; @@ -37,8 +37,8 @@ public List<Coords> getReachableTiles(Character origin) { int Ox = origin.getPos().getX(), Oy = origin.getPos().getY(); - for (int x = Ox - this.range.getV(); x < Ox + this.range.getV(); x++) - for (int y = Oy - this.range.getV(); y < Oy + this.range.getV(); y++) { + for (int x = Ox - this.range.getV(); x <= Ox + this.range.getV(); x++) + for (int y = Oy - this.range.getV(); y <= Oy + this.range.getV(); y++) { int distance = (int) Math.sqrt(Math.pow(Ox - x, 2) + Math.pow(Oy - y, 2)); if (distance <= this.range.getV() && distance >= this.range.getU()) diff --git a/src/main/java/lorganisation/projecttbt/player/attack/RectilignAttack.java b/src/main/java/lorganisation/projecttbt/player/attack/RectilignAttack.java index 6556fec..388b1e2 100644 --- a/src/main/java/lorganisation/projecttbt/player/attack/RectilignAttack.java +++ b/src/main/java/lorganisation/projecttbt/player/attack/RectilignAttack.java @@ -14,9 +14,9 @@ public class RectilignAttack extends Attack { private int range; private Direction direction; - public RectilignAttack(int magicCost, int cooldown, int range, Direction direction, int areaRadius, TargetType target, DamageType damageType, BiFunction<Pair<Character, Character>, Coords, Integer> damages, Effect... effects) { + public RectilignAttack(String name, int cost, int cooldown, int range, Direction direction, int areaRadius, TargetType target, DamageType damageType, BiFunction<Pair<Character, Character>, Coords, Integer> damages, Effect... effects) { - super(magicCost, cooldown, areaRadius, target, damageType, damages, effects); + super(name, cost, cooldown, areaRadius, target, damageType, damages, effects); this.range = range; this.direction = direction; @@ -30,7 +30,7 @@ public boolean condition(Character origin, Coords target) { return origin.getPos().getY() == target.getY() && (target.getX() < origin.getPos().getX() && target.getX() >= origin.getPos().getX() - range); case RIGHT: return origin.getPos().getY() == target.getY() && (target.getX() > origin.getPos().getX() && target.getX() <= origin.getPos().getX() + range); - case TOP: + case UP: return origin.getPos().getX() == target.getX() && (target.getY() < origin.getPos().getY() && target.getY() >= origin.getPos().getY() - range); case DOWN: return origin.getPos().getX() == target.getX() && (target.getY() > origin.getPos().getY() && target.getY() <= origin.getPos().getY() + range); @@ -60,7 +60,7 @@ public List<Coords> getReachableTiles(Character origin) { minX = origin.getPos().getX(); maxX = origin.getPos().getX() + this.range; } - case TOP: { + case UP: { minX = origin.getPos().getX(); maxX = origin.getPos().getX(); @@ -90,6 +90,6 @@ public List<Coords> getReachableTiles(Character origin) { enum Direction { - LEFT, RIGHT, DOWN, TOP + LEFT, RIGHT, DOWN, UP } } diff --git a/src/main/java/lorganisation/projecttbt/player/attack/effects/Effect.java b/src/main/java/lorganisation/projecttbt/player/attack/effects/Effect.java index 1617332..458571e 100644 --- a/src/main/java/lorganisation/projecttbt/player/attack/effects/Effect.java +++ b/src/main/java/lorganisation/projecttbt/player/attack/effects/Effect.java @@ -1,36 +1,41 @@ -package lorganisation.projecttbt.player.attack.effects; - - -import com.google.gson.annotations.Expose; -import lorganisation.projecttbt.player.Character; - - -public abstract class Effect { - - protected Character owner = null; - - @Expose - protected int duration; - - @Expose - protected Runnable function; - - public void applyTo(Character character) { - - if (this.owner != character) - character.addEffect(this); - } - - public void tick() { - - function.run(); - - if (--duration <= 0) - owner.removeEffect(this); - } - - public void increaseDuration() { - - ++duration; - } -} +package lorganisation.projecttbt.player.attack.effects; + + +import com.google.gson.annotations.Expose; +import lorganisation.projecttbt.player.Character; + + +public abstract class Effect { + + protected Character owner = null; + + @Expose + protected int duration; + + @Expose + protected Runnable function; + + public void applyTo(Character character) { + + if (this.owner != character) + character.addEffect(this); + } + + public void tick() { + + function.run(); + + if (--duration <= 0) + owner.removeEffect(this); + } + + public void increaseDuration() { + + ++duration; + } + + public String toString() { + + return getClass().getSimpleName().replaceAll("Effect", "") + "(t: " + duration + ")"; + } +} diff --git a/src/main/java/lorganisation/projecttbt/ui/screen/CharacterSelectionScreen.java b/src/main/java/lorganisation/projecttbt/ui/screen/CharacterSelectionScreen.java index 85d4656..f55925f 100644 --- a/src/main/java/lorganisation/projecttbt/ui/screen/CharacterSelectionScreen.java +++ b/src/main/java/lorganisation/projecttbt/ui/screen/CharacterSelectionScreen.java @@ -19,21 +19,21 @@ public class CharacterSelectionScreen extends Screen { - private Game associatedGame; + private Game game = Game.getInstance(); private PlayerListWidget playerListW; private boolean skip = false; private int characterPerPlayer; - public CharacterSelectionScreen(Game game, int characterPerPlayer) { + public CharacterSelectionScreen(int characterPerPlayer) { - super(game.getRenderer().getTerminal()); + super(Game.getInstance().getRenderer().getTerminal()); this.characterPerPlayer = characterPerPlayer; Size termSize = game.getInput().getTerminal().getSize(); - this.associatedGame = game; + addComponent(TerminalUtils.getTitle()); Label mapName = new Label(new Coords(0, 2), new StyledString("Map - " + game.getMap().getName()), @@ -45,8 +45,8 @@ public CharacterSelectionScreen(Game game, int characterPerPlayer) { Utils.Align.CENTER); addComponent(desc); - addComponent(new InvisibleButton(this::prevFocus, KeyStroke.getKeyStroke('q'))); - addComponent(new InvisibleButton(this::nextFocus, KeyStroke.getKeyStroke('d'))); + addComponent(new InvisibleButton(this::prevFocus, KeyStroke.getKeyStroke('q'), "'q' to cycle focus backward")); + addComponent(new InvisibleButton(this::nextFocus, KeyStroke.getKeyStroke('d'), "'d' to cycle focus forward")); // La liste de joueurs sur la droite playerListW = new PlayerListWidget(new Coords(0, 1), @@ -88,17 +88,21 @@ public CharacterSelectionScreen(Game game, int characterPerPlayer) { int yPos = 2 * termSize.getRows() / 10 + (l - 1) * (ySpace + imgSize / 2); + String imagePath = "assets/images/characters/dqzdqd_missing_dqzdqd1.jpg"; + if (AssetsManager.getResource("assets/images/characters/" + name + ".png") != null) + imagePath = "assets/images/characters/" + name + ".png"; + ImageButtonWidget characterBox = new ImageButtonWidget(new Coords(xPos, yPos), imageSize, Utils.Align.LEFT, - "assets/characters/sprites/" + name + ".png", + imagePath, true, new StyledString(name.toUpperCase()), () -> { - AbstractPlayer p = associatedGame.getPlayers().current(); + AbstractPlayer p = game.getPlayers().current(); if (!p.hasCharacter(name)) { - Character character = CharacterTemplate.getCharacterTemplate(name).createCharacter(); - character.setPos(associatedGame.getMap().getStartPos().next()); + Character character = new Character(CharacterTemplate.getCharacterTemplate(name), p); + character.setPos(game.getMap().getStartPos().next()); p.addCharacter(character); } }, KeyUtils.KEY_ENTER); @@ -114,19 +118,17 @@ public CharacterSelectionScreen(Game game, int characterPerPlayer) { @Override public void display(TerminalGameInput input, TerminalGameRenderer renderer) { - associatedGame.getPlayers().reset(); + game.getPlayers().reset(); - AbstractPlayer current = associatedGame.getPlayers().next(); + AbstractPlayer current = game.getPlayers().next(); while (!skip) { - playerListW.addLine(new StyledString("new render: " + current.getName())); - playerListW.updatePlayerList(associatedGame.getPlayers()); + playerListW.updatePlayerList(game.getPlayers()); TerminalUtils.clearTerm(); renderer.render(this); - for (Widget widget : getComponents()) if (widget instanceof ImageButtonWidget) { ImageButtonWidget imageButton = ((ImageButtonWidget) widget); @@ -159,16 +161,16 @@ public void display(TerminalGameInput input, TerminalGameRenderer renderer) { } if (current.getCharacters().size() == characterPerPlayer) { - current = associatedGame.getPlayers().next(); - playerListW.addLine(new StyledString(current.getName() + " (" + associatedGame.getPlayers().getIndex() + " ) a fini")); - playerListW.setSelected(associatedGame.getPlayers().getIndex()); + current = game.getPlayers().next(); + + playerListW.setSelected(game.getPlayers().getIndex()); skip = true; - for (AbstractPlayer player : associatedGame.getPlayers()) + for (AbstractPlayer player : game.getPlayers()) skip = skip && player.getCharacters().size() == characterPerPlayer; } } - associatedGame.getPlayers().reset(); + game.getPlayers().reset(); } } diff --git a/src/main/java/lorganisation/projecttbt/ui/screen/GameScreen.java b/src/main/java/lorganisation/projecttbt/ui/screen/GameScreen.java index 5e9eaeb..f170c8b 100644 --- a/src/main/java/lorganisation/projecttbt/ui/screen/GameScreen.java +++ b/src/main/java/lorganisation/projecttbt/ui/screen/GameScreen.java @@ -1,15 +1,14 @@ package lorganisation.projecttbt.ui.screen; import com.limelion.anscapes.Anscapes; +import lorganisation.projecttbt.AssetsManager; import lorganisation.projecttbt.Game; import lorganisation.projecttbt.TerminalGameInput; import lorganisation.projecttbt.TerminalGameRenderer; import lorganisation.projecttbt.player.AbstractPlayer; import lorganisation.projecttbt.player.Character; -import lorganisation.projecttbt.ui.widget.InvisibleButton; -import lorganisation.projecttbt.ui.widget.Label; -import lorganisation.projecttbt.ui.widget.PlayerListWidget; -import lorganisation.projecttbt.ui.widget.TextBoxWidget; +import lorganisation.projecttbt.player.attack.Attack; +import lorganisation.projecttbt.ui.widget.*; import lorganisation.projecttbt.utils.*; import org.jline.terminal.Size; @@ -20,88 +19,140 @@ public class GameScreen extends Screen { - private final TextBoxWidget statusUpdate; - private final PlayerListWidget playerListW; - private boolean skip = false; + private TextBoxWidget gameInfo; + private List<StyledString> infos = new ArrayList<>(); + private HorizontalComboBoxWidget attackSelect; + private PlayerListWidget playerListW; + private CharacterListWidget characterListW; private Label statusLabel, subStatusLabel; - private Game game; + private Game game = Game.getInstance(); - public GameScreen(Game game) { + public GameScreen() { - super(game.getInput().getTerminal()); - - this.game = game; + super(Game.getInstance().getInput().getTerminal()); Size termSize = game.getInput().getTerminal().getSize(); - Label lbl = new Label(new Coords(0, 2), - new StyledString("Project: TBT", - Pair.of(0, Anscapes.Colors.RED_BRIGHT.fg()), - Pair.of(9, Anscapes.Colors.YELLOW.fg()), - Pair.of(10, Anscapes.Colors.BLUE.fg()), - Pair.of(11, Anscapes.Colors.GREEN.fg())), - Utils.Align.CENTER); - addComponent(lbl); + addComponent(TerminalUtils.getTitle()); - statusLabel = new Label(new Coords(0, 4), + statusLabel = new Label(new Coords(0, 3), new StyledString(""), Utils.Align.CENTER); addComponent(statusLabel); - subStatusLabel = new Label(new Coords(0, 5), + subStatusLabel = new Label(new Coords(0, 4), new StyledString(""), Utils.Align.CENTER); addComponent(subStatusLabel); - statusUpdate = new TextBoxWidget(new Coords(0, 0), - new Size(termSize.getColumns() / 7, termSize.getRows() - 5), - Utils.Align.RIGHT, - Utils.Align.LEFT, - new StyledString("STATUS UPDATE"), - Anscapes.Colors.WHITE, - Anscapes.Colors.BLACK); - addComponent(statusUpdate); - - InvisibleButton quitBtn = new InvisibleButton(() -> { - TerminalUtils.clearTerm(); - System.exit(0); - }, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0)); + gameInfo = new TextBoxWidget(new Coords(0, 0), + new Size(termSize.getColumns() / 4, termSize.getRows() - 2), + Utils.Align.RIGHT, + Utils.Align.LEFT, + new StyledString("Infos", Pair.of(0, Anscapes.Colors.BLUE_BRIGHT.fg())), + Anscapes.Colors.MAGENTA_BRIGHT, + Anscapes.Colors.BLACK); + gameInfo.setAllowResize(false); + addComponent(gameInfo); + + attackSelect = new HorizontalComboBoxWidget(new Coords(0, 3), + Utils.Align.RIGHT); + + InvisibleButton quitBtn = new InvisibleButton(Game::shutdownGracefully, + KeyUtils.KEY_ESCAPE, + "ESC to exit"); addComponent(quitBtn); playerListW = new PlayerListWidget(new Coords(0, 1), new Size(termSize.getColumns() / 7, termSize.getRows() - 2), Utils.Align.LEFT, Utils.Align.LEFT, - new StyledString("Personnages"), - Anscapes.Colors.WHITE, - Anscapes.Colors.BLACK); + new StyledString("Joueurs"), + Anscapes.Colors.BLUE_BRIGHT, + Anscapes.Colors.WHITE_BRIGHT); + playerListW.setAllowResize(false); addComponent(playerListW); + + characterListW = new CharacterListWidget(new Coords(0, 1), + new Size(playerListW.getSize().getColumns(), termSize.getRows() - 2 - playerListW.getSize().getRows()), + Utils.Align.LEFT, + Utils.Align.LEFT, + new StyledString("Personnages"), + Anscapes.Colors.MAGENTA_BRIGHT, + Anscapes.Colors.WHITE_BRIGHT, + game.getPlayers()); + characterListW.setAllowResize(false); + addComponent(characterListW); } public void display(TerminalGameInput input, TerminalGameRenderer renderer) { + TerminalUtils.clearTerm(); + Size termSize = renderer.getTerminal().getSize(); + AbstractPlayer currPlayer = game.getPlayers().current(); + Character currCharacter = currPlayer.getCharacters().current(); - int i = 0; - for (Coords startPos : game.getMap().getStartPos()) - statusUpdate.addLine(new StyledString("startPos" + i++ + startPos.toString())); + attackSelect.resetOptions(); + for (Attack atk : currCharacter.getAttacks()) + attackSelect.addOption(new StyledString(atk.getName().toUpperCase(), Pair.of(0, currPlayer.getColor().fg()))); + if (currCharacter.getAttacks().current() != null) { + gameInfo.setText(new ArrayList<>()); + gameInfo.addLine(new StyledString("")); + gameInfo.addLines(currCharacter.getAttacks().current().getDescription()); + } + gameInfo.addLine(new StyledString("_______")); + gameInfo.addLine(new StyledString("")); + gameInfo.addLines(currCharacter.getDescription()); - List<StyledString> updates = new ArrayList<>(); - for (AbstractPlayer player : game.getPlayers()) - for (Character character : player.getCharacters()) - updates.add(new StyledString(player.getName() + " " + character.getType() + " -> " + character.getPos())); - statusUpdate.setText(updates); + gameInfo.setSize(new Size(Utils.findLongestSequence(gameInfo.getLines()) + 4, termSize.getRows() - 1)); + for (StyledString info : infos) + gameInfo.addLine(info); + List<String> leftMenuText = new ArrayList<>(); + leftMenuText.addAll(game.getPlayerNames()); + leftMenuText.addAll(AssetsManager.gameCharacterNames()); + int leftMenuWidth = Utils.findLongestSequence(leftMenuText) + 9 /* 9 = colorBlock(2) + spaces(4) + borders(2) + bonus(1) */; + + playerListW.setSelected(game.getPlayers().getIndex()); + playerListW.setSize(new Size(leftMenuWidth, game.getPlayers().size() + 5)); playerListW.updatePlayerList(game.getPlayers()); - playerListW.setSelected(game.getPlayers().indexOf(currPlayer)); - statusLabel.setText(new StyledString(" Tour de " + currPlayer.getName(), Pair.of(9, currPlayer.getColor().fg()))); + characterListW.setSelected(game.getPlayers().getIndex()); + characterListW.setCoords(new Coords(playerListW.getCoords().getX(), playerListW.getCoords().getY() + playerListW.getSize().getRows())); + characterListW.setSize(new Size(playerListW.getSize().getColumns(), termSize.getRows() - 2 - playerListW.getSize().getRows())); // -2 car taille de la liste de controls sur le GameScreen (constant) + characterListW.updatePlayerList(game.getPlayers()); + + statusLabel.setText(new StyledString(" Tour no " + game.getNumTurn() + " : " + currPlayer.getName(), Pair.of(12 + String.valueOf(game.getNumTurn()).length(), currPlayer.getColor().fg()))); - subStatusLabel.setText(new StyledString(currPlayer.getName() + " " + currPlayer.getStatus(), Pair.of(0, currPlayer.getColor().fg()), Pair.of(currPlayer.getName().length(), Anscapes.RESET))); + subStatusLabel.setText(new StyledString(currPlayer.getName() + " " + currPlayer.getStatus() + " avec " + currCharacter.getType(), + Pair.of(0, currPlayer.getColor().fg()), + Pair.of(currPlayer.getName().length(), Anscapes.RESET), + Pair.of(currPlayer.getName().length() + 7 + currPlayer.getStatus().toString().length(), currPlayer.getColor().fg()), + Pair.of(currPlayer.getName().length() + 7 + currPlayer.getStatus().toString().length() + currCharacter.getType().length(), Anscapes.RESET))); renderer.render(game, 0, 10, Utils.Align.CENTER); renderer.render(this); } + + public void addInfo(StyledString styledString) { + + this.infos.add(styledString); + } + + public void addInfo(String string) { + + if (string.length() > gameInfo.getSize().getColumns()) + for (int i = 0; i < string.length(); i = i + gameInfo.getSize().getColumns()) { + int a = i + gameInfo.getSize().getColumns(); + if (a > string.length()) + a = string.length(); + this.infos.add(new StyledString(string.substring(i, a))); + } + + else + this.infos.add(new StyledString(string)); + } } \ No newline at end of file diff --git a/src/main/java/lorganisation/projecttbt/ui/screen/LobbyScreen.java b/src/main/java/lorganisation/projecttbt/ui/screen/LobbyScreen.java index ecc9573..5821c1d 100644 --- a/src/main/java/lorganisation/projecttbt/ui/screen/LobbyScreen.java +++ b/src/main/java/lorganisation/projecttbt/ui/screen/LobbyScreen.java @@ -8,18 +8,14 @@ import lorganisation.projecttbt.player.Bot; import lorganisation.projecttbt.player.Player; import lorganisation.projecttbt.ui.widget.*; -import lorganisation.projecttbt.utils.Coords; -import lorganisation.projecttbt.utils.StyledString; -import lorganisation.projecttbt.utils.TerminalUtils; -import lorganisation.projecttbt.utils.Utils; +import lorganisation.projecttbt.utils.*; import org.jline.terminal.Size; import javax.swing.KeyStroke; -import java.awt.event.KeyEvent; public class LobbyScreen extends Screen { - private Game associatedGame; + private Game game = Game.getInstance(); private boolean skip = false; @@ -35,28 +31,28 @@ public class LobbyScreen extends Screen { private InvisibleButton addBotButton; private InvisibleButton confirmButton; - public LobbyScreen(Game game) { + public LobbyScreen() { - super(game.getInput().getTerminal()); + super(Game.getInstance().getInput().getTerminal()); - this.associatedGame = game; + addComponent(TerminalUtils.getTitle()); - Label mapName = new Label(new Coords(0, 2), + Label mapName = new Label(new Coords(0, 3), new StyledString("Map - " + game.getMap().getName()), Utils.Align.CENTER); addComponent(mapName); - Label desc = new Label(new Coords(0, 3), + Label desc = new Label(new Coords(0, 4), new StyledString("Préparation de la partie - Joueurs"), Utils.Align.CENTER); addComponent(desc); - maxPlayerLabel = new Label(new Coords(0, 4), + maxPlayerLabel = new Label(new Coords(0, 5), new StyledString("Nombre de joueurs maximum: ?"), Utils.Align.CENTER); addComponent(maxPlayerLabel); - characterPerPlayerField = new IntegerField(new Coords(4, 7), + characterPerPlayerField = new IntegerField(new Coords(4, 8), new StyledString("Entrez le nombre de personnages par joueur: "), Utils.Align.LEFT, 1, @@ -70,16 +66,14 @@ public LobbyScreen(Game game) { game.addPlayer(new Bot(game.getAvailableColors())); playerList.updatePlayerList(game.getPlayers()); - }, KeyStroke.getKeyStroke('*')); - addBotButton.setDescription("Press '*' to add a BOT"); + }, KeyStroke.getKeyStroke('*'), "Press '*' to add a BOT"); addComponent(addBotButton); addPlayerButton = new InvisibleButton(() -> { if (!characterPerPlayerField.isFocusable()) { showPlayerSubMenu(game); } - }, KeyStroke.getKeyStroke('+')); - addPlayerButton.setDescription("Press '+' to add a player"); + }, KeyStroke.getKeyStroke('+'), "Press '+' to add a player"); addComponent(addPlayerButton); confirmButton = new InvisibleButton(() -> { @@ -95,7 +89,7 @@ public LobbyScreen(Game game) { setFocused(pseudoField); } else if (pseudoField.isVisible() && pseudoField.getValue().length() >= 3) { // only visible if is creating player - associatedGame.addPlayer(new Player(pseudoField.getValue(), colorPicker.getValue())); + game.addPlayer(new Player(pseudoField.getValue(), colorPicker.getValue())); playerList.updatePlayerList(game.getPlayers()); hidePlayerSubMenu(); @@ -107,12 +101,10 @@ public LobbyScreen(Game game) { skip = true; } } - }, KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0)); - confirmButton.setDescription("Press ENTER to confirm"); + }, KeyUtils.KEY_ENTER, "Press ENTER to confirm"); addComponent(confirmButton); - playerList = new PlayerListWidget(new Coords(5, 5), new Size(0, 0), Utils.Align.RIGHT, @@ -123,16 +115,23 @@ public LobbyScreen(Game game) { playerList.setVisible(false); addComponent(playerList); - pseudoField = (TextField) addComponent(new TextField(new Coords(4, 9), new StyledString("Pseudo: "), Utils.Align.LEFT, 16)); + + pseudoField = new TextField(new Coords(4, 10), + new StyledString("Pseudo: "), + Utils.Align.LEFT, + 16); pseudoField.setVisible(false); + addComponent(pseudoField); - colorPicker = (ColorPicker) addComponent(new ColorPicker(new Coords(4 + 8 /* "Pseudo: " */ + 16 /* maxSize */ + 2 /* some space*/, 9), game.getAvailableColors(), Utils.Align.LEFT)); + colorPicker = new ColorPicker(new Coords(4 + 8 /* "Pseudo: " */ + 16 /* maxSize */ + 2 /* some space*/, 10), + game.getAvailableColors(), + Utils.Align.LEFT); colorPicker.setVisible(false); + addComponent(colorPicker); hidePlayerSubMenu(); addBotButton.setEnabled(false); addPlayerButton.setEnabled(false); - } public void display(TerminalGameInput input, TerminalGameRenderer renderer) { @@ -147,14 +146,14 @@ public void display(TerminalGameInput input, TerminalGameRenderer renderer) { //Utils.writeAt(0, 1, " lastKey -> " + input.getLastKey()); //int maxPlayers = associatedGame.getMap().getStartPos().size() / characterPerPlayerField.getValue(); - int maxPlayers = associatedGame.getMap().getStartPos().size() / characterPerPlayerField.getValue(); + int maxPlayers = game.getMap().getStartPos().size() / characterPerPlayerField.getValue(); if (maxPlayers < 2) { characterPerPlayerField.increment(-1); - maxPlayers = associatedGame.getMap().getStartPos().size() / characterPerPlayerField.getValue(); + maxPlayers = game.getMap().getStartPos().size() / characterPerPlayerField.getValue(); } - if (associatedGame.getPlayers().size() >= maxPlayers) { + if (game.getPlayers().size() >= maxPlayers) { hidePlayerSubMenu(); @@ -163,7 +162,9 @@ public void display(TerminalGameInput input, TerminalGameRenderer renderer) { disableFocus(); - addComponent(new Label(new Coords(0, (int) (renderer.getSize().getRows() * .65)), new StyledString("Press ENTER to go start the game"), Utils.Align.CENTER)); + addComponent(new Label(new Coords(0, (int) (renderer.getSize().getRows() * .65)), + new StyledString("Appuyez sur ENTER pour choisir les personnages."), + Utils.Align.CENTER)); } maxPlayerLabel.setText("Nombre de joueurs maximum: " + maxPlayers); @@ -191,7 +192,7 @@ private void showPlayerSubMenu(Game game) { private void hidePlayerSubMenu() { - addBotButton.setEnabled(true); + addBotButton.setEnabled(Bot.isWorking()); //TODO make working bots addPlayerButton.setEnabled(true); pseudoField.setVisible(false); diff --git a/src/main/java/lorganisation/projecttbt/ui/screen/MainScreen.java b/src/main/java/lorganisation/projecttbt/ui/screen/MainScreen.java index 77d6b3c..1f4933e 100644 --- a/src/main/java/lorganisation/projecttbt/ui/screen/MainScreen.java +++ b/src/main/java/lorganisation/projecttbt/ui/screen/MainScreen.java @@ -2,14 +2,10 @@ import com.limelion.anscapes.Anscapes; import com.limelion.anscapes.ColorMode; -import lorganisation.projecttbt.AssetsManager; -import lorganisation.projecttbt.IntegratedDevenv; -import lorganisation.projecttbt.TerminalGameInput; -import lorganisation.projecttbt.TerminalGameRenderer; +import lorganisation.projecttbt.*; import lorganisation.projecttbt.ui.widget.Button; import lorganisation.projecttbt.ui.widget.ImageWidget; import lorganisation.projecttbt.ui.widget.InvisibleButton; -import lorganisation.projecttbt.ui.widget.Label; import lorganisation.projecttbt.utils.*; import org.jline.terminal.Terminal; @@ -39,15 +35,6 @@ public MainScreen(Terminal terminal) { e.printStackTrace(); } - Label lbl = new Label(new Coords(0, 2), - new StyledString("Project: TBT", - Pair.of(0, Anscapes.Colors.RED_BRIGHT.fg()), - Pair.of(9, Anscapes.Colors.YELLOW.fg()), - Pair.of(10, Anscapes.Colors.BLUE.fg()), - Pair.of(11, Anscapes.Colors.GREEN.fg())), - Utils.Align.CENTER); - //addComponent(lbl); - Button btn = new Button(new Coords(0, 25), new StyledString("Press ENTER to start", Pair.of(0, Anscapes.BLINK_SLOW), @@ -59,11 +46,7 @@ public MainScreen(Terminal terminal) { KeyUtils.KEY_ENTER); addComponent(btn); - InvisibleButton iBtn = new InvisibleButton(() -> { - TerminalUtils.clearTerm(); - TerminalUtils.exitPrivateMode(); - System.exit(0); - }, KeyUtils.KEY_ESCAPE); + InvisibleButton iBtn = new InvisibleButton(Game::shutdownGracefully, KeyUtils.KEY_ESCAPE, "ESC to exit"); addComponent(iBtn); } diff --git a/src/main/java/lorganisation/projecttbt/ui/screen/MapSelectionScreen.java b/src/main/java/lorganisation/projecttbt/ui/screen/MapSelectionScreen.java index 832f802..ca72a4f 100644 --- a/src/main/java/lorganisation/projecttbt/ui/screen/MapSelectionScreen.java +++ b/src/main/java/lorganisation/projecttbt/ui/screen/MapSelectionScreen.java @@ -8,39 +8,34 @@ import lorganisation.projecttbt.map.LevelMap; import lorganisation.projecttbt.ui.widget.Button; import lorganisation.projecttbt.ui.widget.Label; -import lorganisation.projecttbt.utils.Coords; -import lorganisation.projecttbt.utils.StyledString; -import lorganisation.projecttbt.utils.TerminalUtils; -import lorganisation.projecttbt.utils.Utils; - -import javax.swing.KeyStroke; -import java.awt.event.KeyEvent; +import lorganisation.projecttbt.utils.*; public class MapSelectionScreen extends Screen { private boolean skip = false; - private Game game; + private Game game = Game.getInstance(); + + public MapSelectionScreen() { - public MapSelectionScreen(Game game) { + super(Game.getInstance().getInput().getTerminal()); - super(game.getInput().getTerminal()); - this.game = game; + addComponent(TerminalUtils.getTitle()); - addComponent(new Label(new Coords(0, 2), new StyledString("Available maps"), Utils.Align.CENTER)); + addComponent(new Label(new Coords(0, 3), new StyledString("Available maps"), Utils.Align.CENTER)); int i = 0; for (String e : AssetsManager.gameMapNames()) { //max 10 maps pr l'instant - Button btn = new Button(new Coords(0, 5 + i), new StyledString(e.toUpperCase()), Utils.Align.CENTER, + Button btn = new Button(new Coords(0, 6 + i), new StyledString(e.toUpperCase()), Utils.Align.CENTER, () -> { game.setMap(LevelMap.load(e + ".map")); skip = true; } - , true, KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0)); + , true, KeyUtils.KEY_ENTER); addComponent(btn); - i++; - } - setFocused(1); + if (i++ == 0) + setFocused(btn); + } } public void display(TerminalGameInput input, TerminalGameRenderer renderer) { @@ -56,14 +51,14 @@ public void display(TerminalGameInput input, TerminalGameRenderer renderer) { mapButton.getText().modifiers().put(mapButton.getText().length(), Anscapes.RESET + " <"); mapButton.getCoords().setX(mapButton.getCoords().getX() - 2); // must change Coords or else doesn't print at right place (use 2 bc "> ".length() == 2) - game.getRenderer().render(this); + renderer.render(this); //Removing Focused Format mapButton.getCoords().setX(mapButton.getCoords().getX() + 2); mapButton.getText().modifiers().remove(0, "> " + Anscapes.Colors.RED.fg()); mapButton.getText().modifiers().remove(mapButton.getText().length(), Anscapes.RESET + " <"); - keyPressed(game.getInput().readKey()); + keyPressed(input.readKey()); } } } diff --git a/src/main/java/lorganisation/projecttbt/ui/screen/TestScreen.java b/src/main/java/lorganisation/projecttbt/ui/screen/TestScreen.java index c457364..b413aa7 100644 --- a/src/main/java/lorganisation/projecttbt/ui/screen/TestScreen.java +++ b/src/main/java/lorganisation/projecttbt/ui/screen/TestScreen.java @@ -4,24 +4,27 @@ import lorganisation.projecttbt.Game; import lorganisation.projecttbt.TerminalGameInput; import lorganisation.projecttbt.TerminalGameRenderer; +import lorganisation.projecttbt.player.AbstractPlayer; +import lorganisation.projecttbt.player.Character; +import lorganisation.projecttbt.player.CharacterTemplate; +import lorganisation.projecttbt.player.Player; import lorganisation.projecttbt.ui.widget.*; -import lorganisation.projecttbt.utils.Coords; -import lorganisation.projecttbt.utils.StyledString; -import lorganisation.projecttbt.utils.TerminalUtils; -import lorganisation.projecttbt.utils.Utils; +import lorganisation.projecttbt.utils.*; import org.jline.terminal.Size; import javax.swing.KeyStroke; import java.awt.event.KeyEvent; +import java.util.List; public class TestScreen extends Screen { private boolean skip = false; private int i = 0; + private LoadingBar bar; - public TestScreen(Game game) { + public TestScreen() { - super(game.getInput().getTerminal()); + super(Game.getInstance().getInput().getTerminal()); //addComponent(new InvisibleButton(() -> this.skip = true, Pair.of(13, "ENTER : SKIP this screen"))); addComponent(new Label(new Coords(0, 5), @@ -48,57 +51,106 @@ public TestScreen(Game game) { 10)); addComponent(new ColorPicker(new Coords(7, 12), - game.getAvailableColors(), + Game.getInstance().getAvailableColors(), Utils.Align.LEFT)); - addComponent(new Button(new Coords(2, 13), + /*addComponent(new Button(new Coords(2, 13), new StyledString("ENTER TO VALIDATE"), Utils.Align.LEFT, () -> skip = true, false, - KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0))); + KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0)));*/ + + addComponent(new InvisibleButton(() -> skip = true, + KeyUtils.KEY_ENTER, "SKIP TEST MENU")); addComponent(new Button(new Coords(2, 14), new StyledString("PRESS 'V' TO VALIDATE"), Utils.Align.LEFT, - () -> System.exit(1), + Game::shutdownGracefully, true, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0))); //public TextBoxWidget(Coords coords, Size size, Utils.Align align, Utils.Align textAlign, StyledString title, Anscapes.Colors borderColor, Anscapes.Colors backgroundColor, StyledString... lines) { - StyledString[] lines = new StyledString[game.getPlayers().size()]; + StyledString[] lines = new StyledString[Game.getInstance().getPlayers().size()]; /* int j = 0; for (AbstractPlayer p : game.getPlayers()) lines[j++] = (new StyledString(p.getName(), Pair.of(0, p.getColor().fg())));*/ - addComponent(new TextBoxWidget(new Coords(3, 10), new Size(40, 10), Utils.Align.RIGHT, Utils.Align.LEFT, new StyledString("Titre boite"), Anscapes.Colors.BLUE, Anscapes.Colors.YELLOW_BRIGHT, new StyledString("Salut mon giga pote"), new StyledString("Ca va ou quoi"))); + addComponent(new TextBoxWidget(new Coords(3, 10), + new Size(40, 10), + Utils.Align.RIGHT, + Utils.Align.LEFT, + new StyledString("Titre boite"), + Anscapes.Colors.BLUE, + Anscapes.Colors.YELLOW_BRIGHT, + new StyledString("Salut mon giga pote"), + new StyledString("Ca va ou quoi"))); addComponent(new ImageButtonWidget(new Coords(0, 8), new Size(16, 16), - Utils.Align.CENTER, "assets/characters/sprites/mage.png", + Utils.Align.CENTER, "assets/images/characters/mage.png", true, new StyledString("MAGE"), () -> TerminalUtils.writeAt(2, 2, Anscapes.Colors.RED.bg() + "image"), KeyStroke.getKeyStroke('a', 0))); + + addComponent(new HorizontalComboBoxWidget(new Coords(3, 18), + Utils.Align.LEFT, + new StyledString("first"), + new StyledString("second"), + new StyledString("last option", Pair.of(0, Anscapes.Colors.RED.fg())) + )); + + bar = (LoadingBar) addComponent(new LoadingBar(new Coords(3, 19), + 12, ' ', Anscapes.Colors.GREEN_BRIGHT.bg())); + + bar.setPercent(.01f); } public void display(TerminalGameInput input, TerminalGameRenderer renderer) { while (!skip) { + AbstractPlayer dummyPlayer = new Player("Dummy", Anscapes.Colors.BLUE); + Character archer = new Character(CharacterTemplate.getCharacterTemplate("archer"), dummyPlayer); + renderer.render(this); + archer.setPos(new Coords(10, 25)); + List<Coords> reach = archer.getAttacks().current().getReachableTiles(archer); + TerminalUtils.writeAt(10, 20, archer.getType() + ": " + reach.size()); + + for (Coords tile : reach) { + if (tile.getX() < 7) + TerminalUtils.writeAt(tile.getX(), tile.getY(), Anscapes.Colors.RED_BRIGHT.bg() + " " + Anscapes.RESET); + else + TerminalUtils.writeAt(tile.getX(), tile.getY(), Anscapes.Colors.GREEN_BRIGHT.bg() + " " + Anscapes.RESET); + } + + archer.getAttacks().current().areaRadius = 3; + for (Coords hit : archer.getAttacks().current().getHitTiles(new Coords(12, 25))) { + TerminalUtils.writeAt(hit.getX(), hit.getY(), Anscapes.Colors.YELLOW_BRIGHT.bg() + " " + Anscapes.RESET); + } + + TerminalUtils.writeAt(archer.getPos().getX(), archer.getPos().getY(), archer.getIcon()); + TerminalUtils.writeAt(0, this.getFocusedWidget().getCoords().getY(), ">"); TerminalUtils.writeAt(0, 0, (++i) + " focusedIndex -> " + this.components.getIndex()); KeyStroke key = input.readKey(); - TerminalUtils.clearTerm(); + TerminalUtils.clearTerm(); + bar.setPercent(bar.getPercent() * -2); keyPressed(key); + for (Widget w : getComponents()) + System.out.println((((!w.isFocusable() && w.isEnabled()) || w == getFocusedWidget()) && w.getControls() != null)); + TerminalUtils.writeAt(0, 2, Anscapes.Colors.RED_BRIGHT.fg() + input.getLastKey()); + TerminalUtils.writeAt(0, 3, Anscapes.Colors.RED_BRIGHT.fg() + input.getLastKey()); } } } diff --git a/src/main/java/lorganisation/projecttbt/ui/screen/WinnerScreen.java b/src/main/java/lorganisation/projecttbt/ui/screen/WinnerScreen.java new file mode 100644 index 0000000..04029c2 --- /dev/null +++ b/src/main/java/lorganisation/projecttbt/ui/screen/WinnerScreen.java @@ -0,0 +1,74 @@ +package lorganisation.projecttbt.ui.screen; + +import com.limelion.anscapes.Anscapes; +import com.limelion.anscapes.ColorMode; +import lorganisation.projecttbt.*; +import lorganisation.projecttbt.player.AbstractPlayer; +import lorganisation.projecttbt.ui.widget.ImageWidget; +import lorganisation.projecttbt.ui.widget.InvisibleButton; +import lorganisation.projecttbt.ui.widget.TextBoxWidget; +import lorganisation.projecttbt.utils.*; +import org.jline.terminal.Size; +import org.jline.terminal.Terminal; + +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.io.IOException; + +//TODO Add some stats about the guy when we'll only have that left to do. +public class WinnerScreen extends Screen { + + public WinnerScreen() { + + super(Game.getInstance().getRenderer().getTerminal()); + + Terminal terminal = Game.getInstance().getRenderer().getTerminal(); + + try { + + BufferedImage image = ImageIO.read(AssetsManager.openResource("assets/images/logo.png")); + + ImageWidget background = new ImageWidget(new Coords(0, 0), + IntegratedDevenv.convert(image, + ColorMode.RGB, + (float) 130 / 800)); + + addComponent(background); + } catch (IOException e) { + e.printStackTrace(); + } + + + AbstractPlayer winner = null; + + if (Game.getInstance().getPlayers().size() > 0) + winner = Game.getInstance().getPlayers().get(0); + + if (winner != null) { + TextBoxWidget boxWidget = new TextBoxWidget(new Coords(0, terminal.getHeight() * 6 / 10), + new Size((int) (terminal.getWidth() * .5f), (int) (terminal.getHeight() * .1f)), + Utils.Align.CENTER, + Utils.Align.CENTER, + new StyledString("LOOKS LIKE WE'VE FOUND OURSELVES A WINNER", Pair.of(0, Anscapes.Colors.RED.fg())), + Anscapes.Colors.BLUE_BRIGHT, + Anscapes.Colors.RED_BRIGHT, + new StyledString(winner.getName().toUpperCase() + " JUST WON THIS GAME, YEEEHAAWWW"), + new StyledString(winner.getName().toUpperCase() + " we are lazy bastards, if u wanna play again just restart the game")); + + addComponent(boxWidget); + } + + addComponent(new InvisibleButton(Game::shutdownGracefully, KeyUtils.KEY_ESCAPE, "ESC to exit")); + } + + @Override + public void display(TerminalGameInput input, TerminalGameRenderer renderer) { + + while (true) { + + renderer.render(this); + + keyPressed(input.readKey()); + } + } +} diff --git a/src/main/java/lorganisation/projecttbt/ui/widget/CharacterListWidget.java b/src/main/java/lorganisation/projecttbt/ui/widget/CharacterListWidget.java new file mode 100644 index 0000000..b96d14b --- /dev/null +++ b/src/main/java/lorganisation/projecttbt/ui/widget/CharacterListWidget.java @@ -0,0 +1,76 @@ +package lorganisation.projecttbt.ui.widget; + +import com.limelion.anscapes.Anscapes; +import lorganisation.projecttbt.player.AbstractPlayer; +import lorganisation.projecttbt.player.Character; +import lorganisation.projecttbt.utils.Coords; +import lorganisation.projecttbt.utils.Pair; +import lorganisation.projecttbt.utils.StyledString; +import lorganisation.projecttbt.utils.Utils; +import org.jline.terminal.Size; + +import java.util.ArrayList; +import java.util.List; + +public class CharacterListWidget extends PlayerListWidget { + + private Integer selected = 0; + + public CharacterListWidget(Coords coords, Size size, Utils.Align align, Utils.Align textAlign, StyledString title, Anscapes.Colors borderColor, Anscapes.Colors backgroundColor, List<AbstractPlayer> players) { + + super(coords, size, align, textAlign, title, borderColor, backgroundColor); + } + + + public void setSelected(int selected) { + + this.selected = selected; + } + + public void updatePlayerList(List<AbstractPlayer> players) { + + List<StyledString> lines = new ArrayList<>(); + + for (int i = 0; i < players.size(); i++) { + AbstractPlayer player = players.get(i); + + for (int j = 0; j < player.getCharacters().size(); j++) { + + Character character = player.getCharacters().get(j); + lines.add(new StyledString(" " + (selected != null && selected == i ? " > " : " ") + character.getType(), Pair.of(0, player.getColor().bg()), Pair.of(2, player.getColor().fg() + getBackgroundColor().bg()))); + + lines.add(makeHealthBar(size.getColumns() - 4, (float) character.getHealth() / character.getMaxHealth(), Anscapes.Colors.MAGENTA_BRIGHT, Anscapes.Colors.CYAN_BRIGHT)); + } + + if (i != players.size() - 1) + lines.add(new StyledString(" ")); + } + + setText(lines); + } + + public StyledString makeHealthBar(int length, float percent, Anscapes.Colors missing, Anscapes.Colors left) { + + int leftCount = Math.round(length * percent); + + StyledString bar = new StyledString(Utils.repeatString(" ", length)); + bar.modifiers().put(0, left.bg()); + bar.modifiers().put(leftCount, missing.bg()); + + return bar; + } +} + +/* + +final render: + + G## MAGE + --------_____ + +> R## ARCHER + -----________ + + G## KNIGHT + -----------__ + */ \ No newline at end of file diff --git a/src/main/java/lorganisation/projecttbt/ui/widget/ColorPicker.java b/src/main/java/lorganisation/projecttbt/ui/widget/ColorPicker.java index fc2b5b1..9f0527c 100644 --- a/src/main/java/lorganisation/projecttbt/ui/widget/ColorPicker.java +++ b/src/main/java/lorganisation/projecttbt/ui/widget/ColorPicker.java @@ -28,6 +28,9 @@ public ColorPicker(Coords coords, List<Anscapes.Colors> availableColors, Utils.A public void setAvailableColors(List<Anscapes.Colors> availableColors) { this.availableColors = new CyclicList<>(availableColors); + + // se place en index = 0 pour ne pas avoir 2 fois la même couleur + this.availableColors.next(); } @Override diff --git a/src/main/java/lorganisation/projecttbt/ui/widget/HorizontalComboBoxWidget.java b/src/main/java/lorganisation/projecttbt/ui/widget/HorizontalComboBoxWidget.java new file mode 100644 index 0000000..678957b --- /dev/null +++ b/src/main/java/lorganisation/projecttbt/ui/widget/HorizontalComboBoxWidget.java @@ -0,0 +1,73 @@ +package lorganisation.projecttbt.ui.widget; + +import lorganisation.projecttbt.utils.*; +import org.jline.terminal.Terminal; + +import javax.swing.KeyStroke; + +public class HorizontalComboBoxWidget extends InputWidget<StyledString> { + + + protected CyclicList<StyledString> options; + protected Utils.Align alignement; + + public HorizontalComboBoxWidget(Coords coords, Utils.Align alignement, StyledString... options) { + + super(coords); + + this.alignement = alignement; + this.options = new CyclicList<>(Utils.arrayToList(options)); + + setFocusable(true); + + //TODO make these keys customizable, now not needed as this Widget is only used in GameScreen where Q / D are already taken + setDescription("H. Combo box: J/K to cycle through options"); + } + + public void addOption(StyledString str) { + + options.add(str); + } + + public CyclicList<StyledString> getOptions() { + + return this.options; + } + + public void setOptions(StyledString... opt) { + + options = new CyclicList<>(opt); + } + + public void resetOptions() { + + this.options = new CyclicList<>(); + } + + @Override + public boolean handleInput(KeyStroke key) { + + if (key.getKeyChar() == 'k') + return this.options.next() != null; + else if (key.getKeyChar() == 'j') + return this.options.prev() != null; + + return false; + } + + @Override + public StyledString getValue() { + + return options.current(); + } + + @Override + public String paint(Terminal terminal) { + + + StringBuilder visual = new StringBuilder("> "); + visual.append(getValue()).append(" <"); + + return TerminalUtils.formattedLine(coords.getY(), coords.getY(), visual.toString(), alignement, terminal.getWidth()); + } +} diff --git a/src/main/java/lorganisation/projecttbt/ui/widget/InvisibleButton.java b/src/main/java/lorganisation/projecttbt/ui/widget/InvisibleButton.java index f4b56a5..3da1e43 100644 --- a/src/main/java/lorganisation/projecttbt/ui/widget/InvisibleButton.java +++ b/src/main/java/lorganisation/projecttbt/ui/widget/InvisibleButton.java @@ -6,12 +6,13 @@ public class InvisibleButton extends ActionWidget { - public InvisibleButton(Runnable action, KeyStroke control) { + public InvisibleButton(Runnable action, KeyStroke control, String desc) { super(null); this.action = action; this.control = control; + this.description = desc; setVisible(false); setFocusable(false); diff --git a/src/main/java/lorganisation/projecttbt/ui/widget/LoadingBar.java b/src/main/java/lorganisation/projecttbt/ui/widget/LoadingBar.java index 1699981..d88692d 100644 --- a/src/main/java/lorganisation/projecttbt/ui/widget/LoadingBar.java +++ b/src/main/java/lorganisation/projecttbt/ui/widget/LoadingBar.java @@ -6,7 +6,7 @@ public class LoadingBar extends Widget { - private float percent = 0; + private float percent = 0f; private int barLength; private char fillChar; private String modifiers; @@ -27,7 +27,8 @@ public float getPercent() { public void setPercent(float percent) { - this.percent = percent; + if (percent >= 0f && percent <= 1f) + this.percent = percent; } @Override diff --git a/src/main/java/lorganisation/projecttbt/ui/widget/PlayerListWidget.java b/src/main/java/lorganisation/projecttbt/ui/widget/PlayerListWidget.java index c6d45c0..6201c61 100644 --- a/src/main/java/lorganisation/projecttbt/ui/widget/PlayerListWidget.java +++ b/src/main/java/lorganisation/projecttbt/ui/widget/PlayerListWidget.java @@ -36,15 +36,12 @@ public void updatePlayerList(List<AbstractPlayer> players) { for (int i = 0; i < players.size(); i++) { AbstractPlayer player = players.get(i); - playerList.add(new StyledString(" " + (selected != null && selected == i ? " > " : " ") + player.getName(), Pair.of(0, player.getColor().bg()), Pair.of(2, Anscapes.Colors.BLACK.fg() + getBackgroundColor().bg()))); + playerList.add(new StyledString(" " + (selected != null && selected == i ? " > " : " ") + player.getName(), Pair.of(0, player.getColor().bg()), Pair.of(2, player.getColor().fg() + getBackgroundColor().bg()))); if (i != players.size() - 1) playerList.add(new StyledString(" ")); } - if (selected != null) - addLine(new StyledString("selected = " + selected + " (-> " + players.get(selected).getName())); - setText(playerList); } } diff --git a/src/main/java/lorganisation/projecttbt/ui/widget/TextBoxWidget.java b/src/main/java/lorganisation/projecttbt/ui/widget/TextBoxWidget.java index 745502e..f6963f8 100644 --- a/src/main/java/lorganisation/projecttbt/ui/widget/TextBoxWidget.java +++ b/src/main/java/lorganisation/projecttbt/ui/widget/TextBoxWidget.java @@ -12,14 +12,14 @@ public class TextBoxWidget extends Widget { + protected Size size; private List<StyledString> lines; private boolean visible = false; private Utils.Align align; private Utils.Align textAlign; private StyledString title; - private Size size; private Anscapes.Colors backgroundColor, borderColor; - + private boolean allowResize = true; public TextBoxWidget(Coords coords, Size size, Utils.Align align, Utils.Align textAlign, StyledString title, Anscapes.Colors borderColor, Anscapes.Colors backgroundColor, StyledString... lines) { @@ -41,11 +41,23 @@ public TextBoxWidget(Coords coords, Size size, Utils.Align align, Utils.Align te @Override public String paint(Terminal terminal) { - StringBuilder visual = designList(coords, size, terminal.getSize(), title); + StringBuilder visual; + + if (allowResize) + visual = makeList(coords, size, terminal.getSize(), title); + else { + Coords coords = TerminalUtils.coordinatesOfAlignedObject(this.coords.getY(), this.coords.getX(), size.getColumns(), align, terminal.getSize().getColumns()); // determine coordinates + visual = makeList(coords, size, title); + } return visual.append(Anscapes.RESET).toString(); } + public void setAllowResize(boolean allowResize) { + + this.allowResize = allowResize; + } + public void toggle() { visible = !visible; @@ -76,7 +88,7 @@ public void setText(List<StyledString> lines) { this.lines = lines; } - private StringBuilder designList(Coords coords, Size boxSize, Size terminalSize, StyledString title) { + private StringBuilder makeList(Coords coords, Size boxSize, Size terminalSize, StyledString title) { int longestString = Utils.findLongestSequence(lines); // get longest line in list int minWidth = (longestString != 0 ? longestString : 10) + 4 /* bordersWidth = 1 & margin = 1 */; // determine minimum width of box to fit longest line @@ -92,12 +104,10 @@ private StringBuilder designList(Coords coords, Size boxSize, Size terminalSize, if (title.length() > boxSize.getColumns()) // if title is longer than box is wide title.setText(title.subSequence(0, boxSize.getRows() - 3) + "."); // shorten string so as to make it like : TheLongestStringYouHaveEverWritten -> TheLongest. (also doesn't overlap the first and last column) - this.size = boxSize; - - return designList(coords, boxSize, title); + return makeList(coords, boxSize, title); } - private StringBuilder designList(Coords coords, Size boxSize, StyledString title) { + private StringBuilder makeList(Coords coords, Size boxSize, StyledString title) { Coords titlePos = new Coords(coords.getX() + (boxSize.getColumns() - title.length()) / 2, coords.getY()); // determine title coordinates @@ -106,6 +116,7 @@ private StringBuilder designList(Coords coords, Size boxSize, StyledString title .append(borderColor.bg()) // apply borderColor (in background) .append(Utils.repeatString(" ", titlePos.getX() - coords.getX())) // fill with space to draw line until we reach title .append(title.toString()) // add title + .append(borderColor.bg()) .append(Utils.repeatString(" ", coords.getX() + boxSize.getColumns() - titlePos.getX() - title.length())) // finish line .append(Anscapes.moveDown(1)).append(Anscapes.moveLeft(boxSize.getColumns())) // go down and back to line start .append(" ").append(backgroundColor.bg()).append(Utils.repeatString(" ", boxSize.getColumns() - 2)).append(borderColor.bg()).append(" "); // add margin (empty line) @@ -141,9 +152,23 @@ public Size getSize() { return this.size; } + public void setSize(Size newSize) { + + this.size = newSize; + } + public void addLine(StyledString styledString) { this.lines.add(styledString); } + public List<StyledString> getLines() { + + return this.lines; + } + + public void addLines(List<StyledString> description) { + + lines.addAll(description); + } } diff --git a/src/main/java/lorganisation/projecttbt/ui/widget/TextField.java b/src/main/java/lorganisation/projecttbt/ui/widget/TextField.java index 4d64a47..1d0f370 100644 --- a/src/main/java/lorganisation/projecttbt/ui/widget/TextField.java +++ b/src/main/java/lorganisation/projecttbt/ui/widget/TextField.java @@ -35,7 +35,7 @@ public TextField(Coords coords, StyledString prompt, Utils.Align alignement, int this.maxSize = maxSize; this.builder = new StringBuilder(); - setDescription("This is a fcking textfield, writ wiv ur keyboard"); + setDescription("TextField: type"); } @Override diff --git a/src/main/java/lorganisation/projecttbt/utils/Coords.java b/src/main/java/lorganisation/projecttbt/utils/Coords.java index 85b9f1e..60c22e8 100644 --- a/src/main/java/lorganisation/projecttbt/utils/Coords.java +++ b/src/main/java/lorganisation/projecttbt/utils/Coords.java @@ -1,12 +1,12 @@ package lorganisation.projecttbt.utils; /** - * Une classe contenant des coordonnées (x,y) mutables. + * Une classe contenant des coordonnées (x,y) (mutable). */ public class Coords extends Pair<Integer, Integer> { /** - * Creates Coords object from x and y coordinates + * Crée un objet Coords à partir des coordonnées * * @param x (horizontal) coordinates (where 0 is left) * @param y (vertical) coordinates (where 0 is top) @@ -17,9 +17,7 @@ public Coords(int x, int y) { } /** - * Get x coordinate - * - * @return x coordinate + * @return la coordonnée x */ public int getX() { @@ -29,7 +27,7 @@ public int getX() { /** * Set x coordinate * - * @param x horizontal coordinate + * @param x la coordonnée x */ public void setX(int x) { @@ -77,7 +75,7 @@ public void decY() { } /** - * @return toString format -> (x, y) + * @return (x, y) */ @Override public String toString() { diff --git a/src/main/java/lorganisation/projecttbt/utils/CyclicList.java b/src/main/java/lorganisation/projecttbt/utils/CyclicList.java index 749b39a..22df592 100644 --- a/src/main/java/lorganisation/projecttbt/utils/CyclicList.java +++ b/src/main/java/lorganisation/projecttbt/utils/CyclicList.java @@ -52,6 +52,9 @@ public CyclicList(E[] arr) { */ public E current() { + if (isEmpty()) + return null; + return get(index > 0 ? index : 0); } @@ -121,4 +124,13 @@ public E getPrev() { return get((index + size() - 1) % size()); } + + public boolean set(E item) { + + if (contains(item)) { + setIndex(indexOf(item)); + return true; + } else + return false; + } } diff --git a/src/main/java/lorganisation/projecttbt/utils/Feeder.java b/src/main/java/lorganisation/projecttbt/utils/Feeder.java deleted file mode 100644 index b1e4b56..0000000 --- a/src/main/java/lorganisation/projecttbt/utils/Feeder.java +++ /dev/null @@ -1,7 +0,0 @@ -package lorganisation.projecttbt.utils; - -@FunctionalInterface -public interface Feeder<R> { - - R feed(); -} diff --git a/src/main/java/lorganisation/projecttbt/utils/KeyUtils.java b/src/main/java/lorganisation/projecttbt/utils/KeyUtils.java index d94935c..985c38c 100644 --- a/src/main/java/lorganisation/projecttbt/utils/KeyUtils.java +++ b/src/main/java/lorganisation/projecttbt/utils/KeyUtils.java @@ -3,6 +3,9 @@ import javax.swing.KeyStroke; import java.awt.event.KeyEvent; +/** + * Une class utilitaire pour tout ce qui touche aux entrées + */ public class KeyUtils { /** @@ -11,7 +14,8 @@ public class KeyUtils { public static final KeyStroke KEY_ENTER = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), KEY_ESCAPE = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), - KEY_SPACE_BAR = KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, 0), + KEY_SPACE = KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, 0), + KEY_BACKSPACE = KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, 0), KEY_TAB = KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0), KEY_LEFT_ARROW = KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, 0), KEY_RIGHT_ARROW = KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, 0), diff --git a/src/main/java/lorganisation/projecttbt/utils/TerminalUtils.java b/src/main/java/lorganisation/projecttbt/utils/TerminalUtils.java index eba282e..f29a966 100644 --- a/src/main/java/lorganisation/projecttbt/utils/TerminalUtils.java +++ b/src/main/java/lorganisation/projecttbt/utils/TerminalUtils.java @@ -2,15 +2,24 @@ import com.limelion.anscapes.Anscapes; import com.limelion.anscapes.AnsiColor; -import org.jline.reader.LineReader; -import org.jline.reader.LineReaderBuilder; +import lorganisation.projecttbt.ui.widget.Label; +import lorganisation.projecttbt.ui.widget.Widget; import org.jline.terminal.Size; import org.jline.terminal.Terminal; -import java.util.function.Function; - +/** + * Une class utilitaire pour tout ce qui touche au terminal, dessiner, écrire, redimensionner + */ public class TerminalUtils { + private static final Label title = new Label(new Coords(0, 1), + new StyledString("Project: TBT", + Pair.of(0, Anscapes.Colors.RED_BRIGHT.fg()), + Pair.of(9, Anscapes.Colors.YELLOW.fg()), + Pair.of(10, Anscapes.Colors.BLUE.fg()), + Pair.of(11, Anscapes.Colors.GREEN.fg())), + Utils.Align.CENTER); + /** * Ask the user to resize the terminal, blocks until resized. * @@ -56,7 +65,7 @@ public static void askForResize(Terminal terminal, Size desiredSize) { } /** - * Clear terminal and set cursorPos to top left corner + * Efface le terminal (afin de partir sur une base saine) */ public static void clearTerm() { @@ -64,9 +73,9 @@ public static void clearTerm() { } /** - * Clear a line + * Efface la ligne donnée * - * @param row number with the first line at row = 1 + * @param row le numéro de la ligne (commence à 1) */ public static void clearLine(int row) { @@ -74,7 +83,7 @@ public static void clearLine(int row) { } /** - * Make the current output terminal go into private mode + * Obtient du terminal un mode privée, il s'agit d'un text buffer alternatif. */ public static void enterPrivateMode() { @@ -83,7 +92,9 @@ public static void enterPrivateMode() { /** - * Make the current output terminal leave private mode + * Sort du mode privé + * + * @see TerminalUtils#enterPrivateMode() */ public static void exitPrivateMode() { @@ -91,7 +102,7 @@ public static void exitPrivateMode() { } /** - * Ecrit un String à une position donnée + * Ecrit du texte à une position donnée * * @param x * @param y @@ -255,36 +266,8 @@ public static String makeLine(Coords start, Coords end, char fillChar, String mo return makeLine(start.getX(), start.getY(), end.getX(), end.getY(), fillChar, modifiers); } - /** - * Lit un entier correct. - * - * @param term - * @param prompt - */ - public static int promptReadInt(Terminal term, String prompt, int def, Function<Integer, Boolean> filter) { - - if (!filter.apply(def)) - throw new IllegalArgumentException("Default int does not even match filter."); - - LineReader reader = LineReaderBuilder.builder() - .terminal(term) - .build(); + public static Widget getTitle() { - while (true) { - try { - String line = reader.readLine(prompt); - - if (line.equals("")) - return def; - - int n = Integer.parseInt(line); - - if (filter.apply(n)) - return n; - - } catch (NumberFormatException nfe) { - System.out.print(Anscapes.CLEAR_LINE); - } - } + return title; } } diff --git a/src/main/java/lorganisation/projecttbt/utils/Utils.java b/src/main/java/lorganisation/projecttbt/utils/Utils.java index 76a21e9..d8b9512 100644 --- a/src/main/java/lorganisation/projecttbt/utils/Utils.java +++ b/src/main/java/lorganisation/projecttbt/utils/Utils.java @@ -101,7 +101,7 @@ public static int max(Iterable<Integer> coll) { /** * Get length of longest Sequence in Iterable Collection * - * @param list to analyse + * @param list la liste à analyser * * @return length of the longest sequence */ @@ -117,11 +117,10 @@ public static int findLongestSequence(Iterable<? extends CharSequence> list) { } /** - * @param list containing elements - * @param condition one of the elements needs to match - * @param <E> + * @param list une liste + * @param condition la condition sur chaque élément * - * @return true if one of the list's elements matches + * @return true si un des éléments de la liste valide la condition */ public static <E> boolean match(Iterable<E> list, Predicate<E> condition) { diff --git a/src/main/resources/assets/characters/archer.json b/src/main/resources/assets/characters/archer.json index c0fc8e7..fe3f45c 100644 --- a/src/main/resources/assets/characters/archer.json +++ b/src/main/resources/assets/characters/archer.json @@ -1,9 +1,31 @@ -{ - "type": "Archer", - "icon": "A", - "portee": 8, - "hp": 100, - "mp": 150, - "defense": 10, - "dommagesAttaque": 10 +{ + "type": "Archer", + "icon": "A", + "maxActionPoints": 5, + "maxHealth": 10, + "magicArmor": 10, + "physicArmor": 10, + "physicAtk": 10, + "magicAtk": 10, + "attacks": [ + { + "type": "CircularAttack", + "name": "ArcherAttack1", + "cost": 2, + "cooldown": 3, + "minimumRange": 2, + "maximumRange": 8, + "areaRadius": 1, + "targetType": "ENEMIES", + "damageType": "PHYSICAL", + "damages": "(chars, tile) -> 12 - Utils.distance(chars.me.getPos(), chars.enemy.getPos())", + "effects": [ + { + "type": "FireEffect", + "strength": 2, + "duration": 3 + } + ] + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/characters/knight.json b/src/main/resources/assets/characters/knight.json new file mode 100644 index 0000000..37dff51 --- /dev/null +++ b/src/main/resources/assets/characters/knight.json @@ -0,0 +1,31 @@ +{ + "type": "Knight", + "icon": "K", + "maxActionPoints": 5, + "maxHealth": 10, + "magicArmor": 60, + "physicArmor": 100, + "physicAtk": 12, + "magicAtk": 2, + "attacks": [ + { + "type": "CircularAttack", + "name": "KnightAttack1", + "cost": 2, + "cooldown": 3, + "minimumRange": 2, + "maximumRange": 8, + "areaRadius": 1, + "targetType": "ENEMIES", + "damageType": "PHYSICAL", + "damages": "(chars, tile) -> 12 - Utils.distance(chars.me.getPos(), chars.enemy.getPos())", + "effects": [ + { + "type": "FireEffect", + "strength": 2, + "duration": 3 + } + ] + } +] +} \ No newline at end of file diff --git a/src/main/resources/assets/characters/mage.json b/src/main/resources/assets/characters/mage.json index 7d709ca..08d3d52 100644 --- a/src/main/resources/assets/characters/mage.json +++ b/src/main/resources/assets/characters/mage.json @@ -1,9 +1,31 @@ { "type": "Mage", "icon": "M", - "portee": 3, - "hp": 80, - "mp": 200, - "defense": 10, - "dommagesAttaque": 8 -} + "maxActionPoints": 5, + "maxHealth": 50, + "magicArmor": 10, + "physicArmor": 10, + "physicAtk": 10, + "magicAtk": 10, + "attacks": [ + { + "type": "CircularAttack", + "name": "MageAttack1", + "cost": 2, + "cooldown": 3, + "minimumRange": 2, + "maximumRange": 8, + "areaRadius": 1, + "targetType": "ENEMIES", + "damageType": "PHYSICAL", + "damages": "(chars, tile) -> 12 - Utils.distance(chars.me.getPos(), chars.enemy.getPos())", + "effects": [ + { + "type": "FireEffect", + "strength": 2, + "duration": 3 + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/characters/recruit.json b/src/main/resources/assets/characters/recruit.json index 428dff6..167441a 100644 --- a/src/main/resources/assets/characters/recruit.json +++ b/src/main/resources/assets/characters/recruit.json @@ -1,9 +1,31 @@ -{ - "type": "Recruit", - "icon": "R", - "portee": 5, - "hp": 100, - "mp": 50, - "defense": 20, - "dommagesAttaque": 10 +{ + "type": "Recruit", + "icon": "R", + "maxActionPoints": 5, + "maxHealth": 50, + "magicArmor": 10, + "physicArmor": 10, + "physicAtk": 10, + "magicAtk": 10, + "attacks": [ + { + "type": "CircularAttack", + "name": "RecruitAttack1", + "cost": 2, + "cooldown": 3, + "minimumRange": 2, + "maximumRange": 8, + "areaRadius": 1, + "targetType": "ENEMIES", + "damageType": "PHYSICAL", + "damages": "(chars, tile) -> 12 - Utils.distance(chars.me.getPos(), chars.enemy.getPos())", + "effects": [ + { + "type": "FireEffect", + "strength": 2, + "duration": 3 + } + ] + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/characters/sprites/archer.png b/src/main/resources/assets/images/characters/archer.png similarity index 100% rename from src/main/resources/assets/characters/sprites/archer.png rename to src/main/resources/assets/images/characters/archer.png diff --git a/src/main/resources/assets/images/characters/dqzdqd_missing_dqzdqd1.jpg b/src/main/resources/assets/images/characters/dqzdqd_missing_dqzdqd1.jpg new file mode 100644 index 0000000..5a29948 Binary files /dev/null and b/src/main/resources/assets/images/characters/dqzdqd_missing_dqzdqd1.jpg differ diff --git a/src/main/resources/assets/images/characters/knight.png b/src/main/resources/assets/images/characters/knight.png new file mode 100644 index 0000000..506e8ab Binary files /dev/null and b/src/main/resources/assets/images/characters/knight.png differ diff --git a/src/main/resources/assets/characters/sprites/mage.png b/src/main/resources/assets/images/characters/mage.png similarity index 100% rename from src/main/resources/assets/characters/sprites/mage.png rename to src/main/resources/assets/images/characters/mage.png diff --git a/src/main/resources/assets/characters/sprites/recruit.png b/src/main/resources/assets/images/characters/recruit.png similarity index 100% rename from src/main/resources/assets/characters/sprites/recruit.png rename to src/main/resources/assets/images/characters/recruit.png