├── .eslintrc ├── .gitignore ├── .travis.yml ├── CHANGELOG.md ├── LICENSE ├── README.md ├── bin └── text-to-svg ├── fonts ├── ipa_font_license_v1.html └── ipag.ttf ├── gulpfile.babel.js ├── index.js ├── package.json ├── src └── index.js └── test ├── browser.html ├── browser.js ├── html-reporter.js └── index.js /.eslintrc: -------------------------------------------------------------------------------- 1 | # vim:set ft=yaml: 2 | 3 | ############### 4 | # ESLint@2.3.0 5 | ############### 6 | env: 7 | node : true 8 | mocha : true 9 | es6 : true 10 | 11 | ecmaFeatures: 12 | globalReturn : true 13 | impliedStrict : true 14 | jsx : true 15 | experimentalObjectRestSpread : true 16 | 17 | parserOptions: 18 | ecmaVersion: 6 19 | sourceType: "module" 20 | 21 | # see: http:#eslint.org/docs/rules/ 22 | rules: # 0: disable, 1: warn, 2: error 23 | 24 | # Possible Errors 25 | comma-dangle : [ 2, 'always-multiline' ] # no trailing comma at last prop 26 | no-cond-assign : 2 # no if(c='f') 27 | no-console : 1 # use logger instead 28 | no-constant-condition : 2 # no if(true) 29 | no-control-regex : 2 # no control char in regex :/\\x1f/ 30 | no-debugger : 2 # no debugger; 31 | no-dupe-args : 2 # no duplicate args in functions 32 | no-dupe-keys : 2 # no duplicate key in object 33 | no-duplicate-case : 2 # no duplicate case label 34 | no-empty : 2 # no empty block statement 35 | no-empty-character-class : 2 # no empty character classes in regexp 36 | no-ex-assign : 2 # no overwirte exception in catch 37 | no-extra-boolean-cast : 2 # no unnecessary cast to bool :if(!!foo), !!!foo 38 | no-extra-parens : 0 # no unnecessary parens :(a*b) + c 39 | no-extra-semi : 2 # no semi at var x = 5;; or function foo(){}; 40 | no-func-assign : 2 # no overwrite fuction declaration 41 | no-inner-declarations : [2, 'functions'] # no declare func in block 42 | no-invalid-regexp : 2 # no invalid regexp 43 | no-irregular-whitespace: 2 # no irregular whitespace like NBSP 44 | no-negated-in-lhs : 2 # no negeted left operand of in 45 | no-obj-calls : 2 # no global object call as function :Math() 46 | no-regex-spaces : 2 # no multi space in regexp: /foo bar/ => /foo {2}bar/ 47 | no-sparse-arrays : 2 # no sparse array: [,,] or [a,,b] 48 | no-unexpected-multiline: 2 # separate two expressions with semi 49 | no-unreachable : 2 # no unreachable code 50 | use-isnan : 2 # use isNaN(n) not n == NaN 51 | valid-jsdoc : 1 # validate JSDoc 52 | valid-typeof : 2 # validate typeof misspell: typeof a == strning 53 | 54 | 55 | # Best Practices 56 | accessor-pairs : 0 # get/setter in objects 57 | array-callback-return : 2 # always return at array methods callback 58 | block-scoped-var : 0 # allow var in block 59 | complexity : [1, 15] # cyclomatic complexity 60 | consistent-return : 1 # no return without value 61 | curly : [2, 'multi-line'] # never omit brace in if,else,for,while,do 62 | default-case : 2 # always use default in switch (or write # no default instead) 63 | dot-notation : 2 # use dot notation like foo.bar instead of foo['bar'] 64 | dot-location : [2, 'property'] # enforces consistent newlines before or after dots 65 | eqeqeq : 2 # use === or !== always 66 | guard-for-in : 2 # no use for in (or use it with hasOwnProperty) 67 | no-alert : 0 # allow use of alert, prompt, confirm 68 | no-caller : 2 # no use caller, callee 69 | # no-case-declarations : 0 # disallow lexical declarations in case clauses 70 | no-div-regex : 0 # escape division operator in regexp 71 | no-else-return : 2 # no return in else. use if as guard. 72 | # no-empty-function : 0 # no empty function 73 | # no-empty-pattern : 0 # no empty pattern 74 | no-eq-null : 2 # always use === or !== for compare null: foo === null 75 | no-eval : 2 # no eval, setTimeout, setTimeout for eval func string 76 | no-extend-native : 2 # no extend native object 77 | no-extra-bind : 2 # no unnecessary function binding 78 | no-extra-label : 2 # no unnecessary label 79 | no-fallthrough : 2 # always use break in each case of swich (or write # falls through) 80 | no-floating-decimal : 2 # no floating decimals: no .5 use 0.5 81 | no-implicit-coercion : [2, {boolean: false, number: false, string: false}] # disallow the type conversions with shorter notations 82 | # no-implicit-globals : 0 # no var and named function 83 | no-implied-eval : 2 # no setTimeout, setInterval with function string 84 | no-invalid-this : 2 # disallow this keywords outside of classes or class-like objects 85 | no-iterator : 2 # no __iterator__ 86 | no-labels : 2 # no labels for break and continue 87 | no-lone-blocks : 2 # no unnecessary nested blocks 88 | no-loop-func : 2 # no writing function in loop 89 | # no-magic-numbers 90 | no-multi-spaces : 2 # no multi space 91 | no-multi-str : 2 # no multi string 92 | no-native-reassign : 2 # no overwrite native objects 93 | no-new : 2 # no calling new constructor withou assign 94 | no-new-func : 2 # no new Function constructor for create function 95 | no-new-wrappers : 2 # no use primitive wrapper constructor: new String('a') 96 | no-octal : 2 # no octal literals: 071 (same as 57) 97 | no-octal-escape : 2 # no octal escape: \251 use \u00A9 or \xA9 98 | # no-param-reassign : [2, {"props": false}] # disallow reassignment of function parameters 99 | no-process-env : 2 # no process.env 100 | no-proto : 2 # no __proto__ use Object.getPrototypeOf() 101 | no-redeclare : 1 # no redeclare: var a = 3; var a = 4; 102 | no-return-assign : 2 # no assign in return: return foo = bar; 103 | no-script-url : 2 # no script url: location.href = 'javascript:void(0)' 104 | no-self-assign : 2 # no self assing 105 | no-self-compare : 2 # no self compare: if (x === x) 106 | no-sequences : 2 # no comma operator: var a = (3, 5); # a = 5 107 | no-throw-literal : 2 # restrict what can be thrown as an exception 108 | no-unmodified-loop-condition: 2 # no unmodified condition of loops 109 | no-unused-expressions : 2 # no unused expression: a; 110 | no-unused-labels : 2 # no unused label 111 | no-useless-call : 0 # disallow unnecessary .call() and .apply() 112 | no-useless-concat : 2 # no useless concat like 'a'+'b', but 'ab'. 113 | no-void : 2 # no void operator 114 | no-warning-comments : [0, {terms: ['todo', 'fixme'], location: 'start'}] # allow TODO: FIXME: coments 115 | no-with : 2 # no with 116 | radix : 2 # require radix at parseInt(): no parseInt(071) use parseInt(071, 10) 117 | vars-on-top : 0 # allow vars on not only top 118 | wrap-iife : [2, 'inside'] # wrap immediate invocation function expression outside: (function() { })(); 119 | yoda : [2, 'never'] # never use yoda condition 120 | 121 | 122 | # Strict Mode 123 | strict : 1 # babel add global use strict always 124 | 125 | 126 | # Variables 127 | init-declarations : 0 # enforce or disallow variable initializations at definition 128 | no-catch-shadow : 2 # no overwrite cought error 129 | no-delete-var : 2 # no delete var: var x; delete x; 130 | no-label-var : 2 # no label with variable name no-shadow 131 | # no-restricted-globals : 0 # restrict usage of specified global variables 132 | no-shadow : 2 # no shadowing 133 | no-shadow-restricted-names: 2 # no shadowing Global props 134 | no-undef-init : 2 # no initialize with undefined: var a = undefined; 135 | no-undef : 1 # no use undeclared vars 136 | no-undefined : 0 # allow using if (a === undefined) because undefined is const in strict mode and undef-init save us 137 | no-unused-vars : [1, {vars: 'all', args: 'all'}] # no unused vars 138 | no-use-before-define : 1 # no use before define 139 | 140 | 141 | # Node.js 142 | callback-return : 0 # enforce return after a callback 143 | global-require : 2 # enforce require() on the top-level module scope. 144 | handle-callback-err : 2 # no ignore error arg in callback 145 | no-mixed-requires : [1, false] # no mixed require module 146 | no-new-require : 2 # no new for require: new require('app') 147 | no-path-concat : 2 # no concat for __dirname, __filename use path.join() or path.resolve() 148 | no-process-exit : 0 # no process.extit() 149 | # no-restricted-imports : 0 # restrict usage of specified node imports 150 | # no-restricted-modules : [0, null] # allow use of node modules 151 | no-sync : 0 # no use of xxxSync() 152 | 153 | 154 | # Stylistic Issues 155 | array-bracket-spacing : [2, 'never'] # enforce spacing inside array brackets 156 | block-spacing : 2 # disallow or enforce spaces inside of single line blocks. 157 | # brace-style : [2, '1tbs', {allowSingleLine: true }] # require brace style 158 | camelcase : 0 # force using camelcase 159 | comma-spacing : [2, {before: false, after: true}] # space after comma: (a, b) 160 | comma-style : [2, 'first', {exceptions: {ArrayExpression: true, ObjectExpression: true} }] # comma first 161 | computed-property-spacing : [2, 'never'] # require or disallow padding inside computed properties 162 | consistent-this : [2, 'thisArg'] # use var thisArg = this; 163 | eol-last : 2 # eol at last line 164 | func-names : 0 # require function name for debugging: Foo.prototype.bar = function bar(){} 165 | func-style : [2, 'declaration'] # use function expression 166 | # id-blacklist : 0 # black list for id 167 | # id-length : 0 # this option enforces minimum and maximum identifier lengths (variable names, property names etc.) (off by default) 168 | # id-match : 0 # checking id name match with pattern 169 | indent : [2, 2, {SwitchCase: 1}] # specify tab or space width for your code 170 | jsx-quotes : 2 # enforce JSX quote style 171 | key-spacing : [2, { 172 | singleLine: { 173 | beforeColon: false, 174 | afterColon: true 175 | }, 176 | multiLine: { 177 | beforeColon: false, 178 | afterColon: true 179 | } 180 | }] 181 | keyword-spacing : [2, {before: true, after: true}] # add space before/after keyword 182 | linebreak-style : 2 # disallow mixed 'LF' and 'CRLF' as linebreaks 183 | lines-around-comment : 2 # enforce empty lines around comments 184 | max-depth : [1, {maximum: 5}] # max depth of block 185 | max-len : [2, { 186 | code: 12000, 187 | tabWidth: 2, 188 | ignoreUrls: true 189 | }] # max length of code 190 | max-nested-callbacks : [2, {maximum: 4}] # max callback nest 191 | max-params : [1, {maximum: 4}] # max parameters of function 192 | max-statements : [1, {maximum: 100}] # max statement of function 193 | new-cap : [2, {newIsCap: true, capIsNew: false}] # use UpperCap for Constructor and always call with new 194 | new-parens : 2 # use parens for new: no new Person; use new Person(); 195 | # newline-after-var : [2, 'always'] # require or disallow an empty newline after variable declarations 196 | # newline-before-return : require newline before return statement 197 | newline-per-chained-call: [2, {ignoreChainWithDepth: 3}] # newline after each chaining calls 198 | no-array-constructor : 2 # no use new Array() or Array() 199 | # no-bitwise 200 | # no-continue : 0 # disallow use of the continue statement 201 | no-inline-comments : 0 # allow inline comments 202 | no-lonely-if : 1 # no lonely if: if() {} else { if() {} } => if() {} else if() {} 203 | no-mixed-spaces-and-tabs: [2, false] # no mix space and tab, no smart tab 204 | no-multiple-empty-lines: [2, {max: 3}] # no extra blank line over 3 205 | no-negated-condition : 2 # disallow negated conditions 206 | no-nested-ternary : 2 # no : a? b:c === d?e:f; use if-else 207 | no-new-object : 2 # no use new Object() or Object 208 | # no-plusplus 209 | # no-restricted-syntax : 2 # disallow certain syntax 210 | no-spaced-func : 2 # space in function call: fn () 211 | no-ternary : 0 # no ternary 212 | no-trailing-spaces : 2 # no space at end of line 213 | no-underscore-dangle : 2 # no use underscore for var 214 | no-unneeded-ternary : 2 # disallow the use of Boolean literals in conditional expressions 215 | no-whitespace-before-property: 2 # no whitespace before property 216 | object-curly-spacing : [2, 'always', { 217 | objectsInObjects: true, 218 | arraysInObjects: true 219 | }] 220 | one-var : 0 # one ver per scope 221 | # one-var-declaration-per-line 222 | operator-assignment : 0 # x = x + 1 or x ++ is case by case 223 | operator-linebreak : [2, 'before'] # enforce operators to be placed before or after line breaks 224 | padded-blocks : [2, 'never'] # no surround blank line in block 225 | quote-props : [2, 'consistent-as-needed'] # quote props in object 226 | quotes : [2, 'single', 'avoid-escape'] # use single quote without string: var s = 'a b'; 227 | id-match : 0 # require identifiers to match the provided regular expression 228 | semi-spacing : [2, {before: false, after: true}] # no space before semicolons 229 | semi : [1, 'always'] # unforce semicolon 230 | sort-vars : 0 # sort var: var a,b,c,d; 231 | space-before-blocks : [2, 'always'] # always space before block 232 | space-before-function-paren : [2, {anonymous: 'never', named: 'never'}] # require or disallow a space before function opening parenthesis 233 | space-in-parens : [2, 'never'] # always no space on parens 234 | space-infix-ops : 2 # always space in infix ops 235 | space-unary-ops : 2 # always space in unary words 236 | spaced-comment : [2, 'always'] # alwasy space before comment 237 | wrap-regex : 0 # wrap regexp: (/foo/).test('bar') 238 | 239 | 240 | # ECMAScript 6 241 | arrow-body-style : 0 # rquire braces in arrow function body 242 | arrow-parens : 0 # require parens in arrow function arguments 243 | arrow-spacing : [2, {before: true, after: true}] # require space before/after arrow function's arrow 244 | constructor-super : 2 # verify calls of super() in constructors 245 | generator-star-spacing : [2, {before: false, after: true}] # enforce spacing around the * in generator functions 246 | no-class-assign : 2 # disallow modifying variables of class declarations 247 | no-confusing-arrow : 2 # disallow arrow functions where a condition is expected 248 | no-const-assign : 2 # disallow modifying variables that are declared using const 249 | no-dupe-class-members : 2 # disallow duplicated class members 250 | # no-new-symbol 251 | no-this-before-super : 2 # disallow use of this/super before calling super() in constructors. 252 | no-useless-constructor : 2 # no empty or only super(..args) constractor 253 | no-var : 2 # require let or const instead of var 254 | # object-shorthand : [2, 'always'] # require method and property shorthand syntax for object literals 255 | prefer-arrow-callback : 2 # using allow function on callback 256 | prefer-const : 0 # suggest using const declaration for variables that are never modified after declared 257 | # prefer-reflect : TODO: use this if node supports 0 # suggest using Reflect methods where applicable 258 | # prefer-rest-params : TODO: use this if node supports 259 | prefer-spread : 2 # suggest using the spread operator instead of .apply(). 260 | # prefer-spread : TODO: use this if node supports 261 | prefer-template : 2 # suggest using template literals instead of strings concatenation 262 | require-yield : 2 # disallow generator functions that do not have yield 263 | template-curly-spacing : [2, "never"] # no space in `${here}` 264 | yield-star-spacing : [2, "after"] # space like `function* generator()` 265 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | 3 | ### Node.js ### 4 | 5 | /package-lock.json 6 | /node_modules/ 7 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 10.15.2 4 | before_script: 5 | - npm run build 6 | deploy: 7 | skip_cleanup: true 8 | provider: npm 9 | email: hideki@shiro.be 10 | api_key: 11 | secure: b7672QRwmjSAu/bcPt5Z7ykjp+Rm8cV7+wZDDDhI/yZRqcgNHmvoyIFUYPYJBxJMam/ZM7clbm/MDqDKSB0FuGGw+eAsZXMiitkMu40ewwxMML3w8y+ZiMnp0rYwvvIGUf/Xt1hp0Myzrv5Mm0/WFYkTQ76fOPk85KZBHxtCj7I= 12 | on: 13 | tags: true 14 | all_branches: true 15 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # CHANGELOG 2 | 3 | ## 3.1.5 4 | 5 | - Fix deployment script. 6 | 7 | ## ~~3.1.4~~ 8 | 9 | **This version had been failed to deploy. So do not use this version.** 10 | 11 | - Tested on Node.js v10.15.2 12 | - Update dependencies. 13 | - `opentype.js`: `0.7.3` -> `0.11.0` 14 | 15 | ## 3.1.3 16 | 17 | - Tested on Node.js v6.11.1 18 | - Update dependencies. 19 | - `opentype.js`: `0.7.1` -> `0.7.3` 20 | 21 | ## 3.1.2 22 | 23 | - Pin opentype.js version to `0.7.1`. (see #25) 24 | 25 | ## 3.1.1 26 | 27 | - Tested on Node.js v6.10.3 28 | - Update dependencies. 29 | - `opentype.js`: `0.6.6` -> `0.7.1` 30 | 31 | ## 3.1.0 32 | 33 | - Support letter-spacing option. 34 | - Support tracking option. 35 | 36 | ## 3.0.1 37 | 38 | - Fix #10 39 | 40 | ## 3.0.0 41 | 42 | - Simplify module layout 43 | - Please use `const TextToSVG = require('text-to-svg');`
instead of `const TextToSVG = require('text-to-svg').TextToSVG;` 44 | - Add `loadSync` method. 45 | - Please use `const textToSVG = TextToSVG.loadSync();`
instead of `const textToSVG = new TextToSVG();` 46 | - Add `load` method for asynchronous font loading. 47 | - Add `getMetrics` method instead of `getSize` method. 48 | - Correct vertical anchor option. 49 | - Correct `top` and `bottom`. 50 | - Add `baseline`. 51 | - Add `width` and `height` attribute to SVG element. 52 | 53 | ## 2.2.2 54 | 55 | - Tested on Node.js v5.3.0 56 | - Update dependencies. 57 | - `opentype.js`: `0.5.0` -> `0.6.0` 58 | 59 | ## 2.2.1 60 | 61 | - Tested on Node.js v4.2.1 62 | - Update dependencies. 63 | - Command line tool shows help when args are not provided. 64 | - Fix API document. 65 | 66 | ## 2.2.0 67 | 68 | - Add `getSize` method. 69 | - Add `anchor` option. 70 | - `left`, `center` , `right`, `top`, `middle`, `bottom` 71 | - Add command line tool. 72 | 73 | ## 2.1.0 74 | 75 | - Add `anchor` option. 76 | 77 | ## 2.0.2 78 | 79 | - Fix index.js 80 | 81 | ## 2.0.1 82 | 83 | - Include index.js to npm files. 84 | 85 | ## 2.0.0 86 | 87 | - Reform the API. 88 | - Include default font. 89 | - Remove the command line tool. 90 | 91 | ## 1.1.0 92 | 93 | - Add TextToSVG.getD(text, x, y, fontSize, options); 94 | 95 | ## 1.0.0 96 | 97 | initial release 98 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016 Hideki Shiro 2 | http://shiro.be/ 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a 5 | copy of this software and associated documentation files (the 6 | "Software"), to deal in the Software without restriction, including 7 | without limitation the rights to use, copy, modify, merge, publish, 8 | distribute, sublicense, and/or sell copies of the Software, and to 9 | permit persons to whom the Software is furnished to do so, subject to 10 | the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be 13 | included in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 17 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 19 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 20 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 21 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # text-to-svg 2 | 3 | [![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url] 4 | 5 | Convert text to SVG path without native dependence. 6 | 7 | ```js 8 | const TextToSVG = require('text-to-svg'); 9 | const textToSVG = TextToSVG.loadSync(); 10 | 11 | const attributes = {fill: 'red', stroke: 'black'}; 12 | const options = {x: 0, y: 0, fontSize: 72, anchor: 'top', attributes: attributes}; 13 | 14 | const svg = textToSVG.getSVG('hello', options); 15 | 16 | console.log(svg); 17 | ``` 18 | 19 | ```xml 20 | 21 | 22 | 23 | ``` 24 | 25 | ## Installation 26 | 27 | ``` 28 | $ npm install --save text-to-svg 29 | ``` 30 | 31 | ## Constructor 32 | 33 | An example for loading default font synchronously. The default font is [IPA font](http://ipafont.ipa.go.jp/). **This method only works on Node.js.** 34 | 35 | ```js 36 | const textToSVG = TextToSVG.loadSync(); 37 | const svg = textToSVG.getSVG('hello'); 38 | console.log(svg); 39 | ``` 40 | 41 | An example for loading font synchronously. **This method only works on Node.js.** 42 | 43 | ```js 44 | // Argument is file path (NOT URL) 45 | const textToSVG = TextToSVG.loadSync('/fonts/Noto-Sans.otf'); 46 | const svg = textToSVG.getSVG('hello'); 47 | console.log(svg); 48 | ``` 49 | 50 | An example for loading font asynchronously. 51 | 52 | ```js 53 | // First argument is URL on web browsers, but it is file path on Node.js. 54 | TextToSVG.load('/fonts/Noto-Sans.otf', function(err, textToSVG) { 55 | const svg = textToSVG.getSVG('hello'); 56 | console.log(svg); 57 | }); 58 | ``` 59 | 60 | ## API 61 | 62 | ### `TextToSVG.getD(text, options = {})` 63 | 64 | Get the path data for `d` attribute of `path`. 65 | 66 | - `text`: Text to convert to SVG path. 67 | 68 | Options is an optional object containing: 69 | 70 | - `x`: Horizontal position of the beginning of the text. (default: `0`) 71 | - `y`: Vertical position of the baseline of the text. (default: `0`) 72 | - `fontSize`: Size of the text (default: `72`). 73 | - `kerning`: if `true` takes kerning information into account (default: `true`) 74 | - `letterSpacing`: letter-spacing value in `em`. 75 | - `tracking`: tracking value. (em / 1000) 76 | - `anchor`: Anchor of object in coordinate. (default: `'left baseline'`) 77 | - (`left`, `center`, `right`) + (`baseline`, `top`, `middle`, `bottom`) 78 | 79 | Return value example 80 | 81 | ``` 82 | M5.27-54.07L10.62-54.07L10.62-34.00Q15.86-39.23 21.02-39.23Q26.89-39.23 29.60-34.07Q31.11-31.15 31.11-27L31.11-3.66L25.77-3.66L25.77-25.42Q25.77-34.14 20.18-34.14Q16.42-34.14 13.57-31.39Q10.62-28.44 10.62-24.64L10.62-3.66L5.27-3.66L5.27-54.07ZM67.68-14.27Q64.55-2.25 54.07-2.25Q47.57-2.25 43.77-7.66Q40.32-12.62 40.32-20.74Q40.32-28.51 43.56-33.47Q47.36-39.23 54-39.23Q66.97-39.23 67.82-19.65L45.74-19.65Q46.16-7.07 54.14-7.07Q60.47-7.07 62.05-14.27L67.68-14.27M62.05-24.26Q60.89-34.42 54-34.42Q47.36-34.42 45.95-24.26L62.05-24.26ZM92.81-11.53Q92.81-8.44 95.77-8.44Q98.19-8.44 101.07-9L101.07-3.62Q96.82-3.02 94.82-3.02Q87.19-3.02 87.19-10.51L87.19-54.07L92.81-54.07L92.81-11.53ZM128.81-11.53Q128.81-8.44 131.77-8.44Q134.19-8.44 137.07-9L137.07-3.62Q132.82-3.02 130.82-3.02Q123.19-3.02 123.19-10.51L123.19-54.07L128.81-54.07L128.81-11.53ZM162.07-39.23Q168.68-39.23 172.44-33.40Q175.68-28.55 175.68-20.74Q175.68-14.87 173.74-10.44Q170.16-2.21 161.93-2.21Q155.57-2.21 151.77-7.63Q148.32-12.59 148.32-20.74Q148.32-29.53 152.30-34.56Q156.09-39.23 162.07-39.23M161.93-34.21Q158.06-34.21 155.88-30.16Q153.95-26.61 153.95-20.74Q153.95-15.33 155.53-11.92Q157.71-7.24 162-7.24Q165.94-7.24 168.12-11.29Q170.05-14.84 170.05-20.67Q170.05-26.75 168.05-30.23Q165.90-34.21 161.93-34.21Z 83 | ``` 84 | 85 | ### `TextToSVG.getPath(text, options = {})` 86 | 87 | Get the `path` element of SVG. 88 | 89 | - `text`: Text to convert to SVG path. 90 | 91 | Options is an optional object containing: 92 | 93 | - `x`: Horizontal position of the beginning of the text. (default: `0`) 94 | - `y`: Vertical position of the baseline of the text. (default: `0`) 95 | - `fontSize`: Size of the text (default: `72`). 96 | - `kerning`: if `true` takes kerning information into account (default: `true`) 97 | - `letterSpacing`: letter-spacing value in `em`. 98 | - `tracking`: tracking value. (em / 1000) 99 | - `anchor`: Anchor of object in coordinate. (default: `'left baseline'`) 100 | - (`left`, `center`, `right`) + (`baseline`, `top`, `middle`, `bottom`) 101 | - `attributes`: Key-Value pairs of attributes of `path` element. 102 | 103 | Return value example 104 | 105 | ```xml 106 | 107 | ``` 108 | 109 | ### `TextToSVG.getSVG(text, options = {})` 110 | 111 | Get the SVG. 112 | 113 | - `text`: Text to convert to SVG path. 114 | 115 | Options is an optional object containing: 116 | 117 | - `x`: Horizontal position of the beginning of the text. (default: `0`) 118 | - `y`: Vertical position of the baseline of the text. (default: `0`) 119 | - `fontSize`: Size of the text (default: `72`). 120 | - `kerning`: if `true` takes kerning information into account (default: `true`) 121 | - `letterSpacing`: letter-spacing value in `em`. 122 | - `tracking`: tracking value. (em / 1000) 123 | - `anchor`: Anchor of object in coordinate. (default: `'left baseline'`) 124 | - (`left`, `center`, `right`) + (`baseline`, `top`, `middle`, `bottom`) 125 | - `attributes`: Key-Value pairs of attributes of `path` element. 126 | 127 | Return value example 128 | 129 | ```xml 130 | 131 | ``` 132 | 133 | ### `TextToSVG.getMetrics(text, option = {})` 134 | 135 | Measure text size. 136 | 137 | - `text`: Text to measure size. 138 | 139 | Options is an optional object containing: 140 | 141 | - `x`: Horizontal position of the beginning of the text. (default: `0`) 142 | - `y`: Vertical position of the baseline of the text. (default: `0`) 143 | - `fontSize`: Size of the text (default: `72`). 144 | - `kerning`: if `true` takes kerning information into account (default: `true`) 145 | - `letterSpacing`: letter-spacing value in `em`. 146 | - `tracking`: tracking value. (em / 1000) 147 | - `anchor`: Anchor of object in coordinate. (default: `'left baseline'`) 148 | 149 | An example of return value. 150 | 151 | ```json 152 | { 153 | "x": 0, 154 | "y": -63.3515625, 155 | "baseline": 0, 156 | "width": 180, 157 | "height": 72, 158 | "ascender": 63.3515625, 159 | "descender": -8.6484375 160 | } 161 | ``` 162 | 163 | ## License 164 | 165 | MIT 166 | 167 | ## Credits 168 | 169 | text-to-svg depends on the following softwares. I thank great authors a lot. 170 | 171 | - [opentype.js](https://github.com/nodebox/opentype.js): Copyright (c) 2015 Frederik De Bleser 172 | - [commander](https://github.com/tj/commander.js): Copyright (c) 2011 TJ Holowaychuk 173 | 174 | These are released under the [MIT license](https://opensource.org/licenses/MIT) 175 | 176 | [npm-url]: https://npmjs.org/package/text-to-svg 177 | [npm-image]: https://badge.fury.io/js/text-to-svg.svg 178 | [travis-url]: https://travis-ci.org/shrhdk/text-to-svg 179 | [travis-image]: https://travis-ci.org/shrhdk/text-to-svg.svg?branch=master 180 | [gitter-url]: https://gitter.im/shrhdk/text-to-svg 181 | [gitter-image]: https://badges.gitter.im/Join%20Chat.svg 182 | -------------------------------------------------------------------------------- /bin/text-to-svg: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | /** 4 | * Copyright (c) 2016 Hideki Shiro 5 | */ 6 | 7 | const package = require('../package'); 8 | 9 | const program = require('commander') 10 | .version(package.version) 11 | .usage('[options] text') 12 | .option('-x, --x ', 'horizontal offset', parseFloat) 13 | .option('-y, --y ', 'vertical offset', parseFloat) 14 | .option('-s, --font-size ', 'font size', parseFloat) 15 | .option('-k, --kerning', 'kerning') 16 | .option('-a, --anchor [value]', 'anchor point') 17 | .option('-d, --debug', 'debug') 18 | .parse(process.argv); 19 | 20 | if(program.args.length < 1) { 21 | program.outputHelp(); 22 | process.exit(); 23 | } 24 | 25 | const text = program.args[0]; 26 | const options = { 27 | x: program.x || 0, 28 | y: program.y || 0, 29 | fontSize: program.fontSize || 72, 30 | kerning: program.kerning, 31 | anchor: program.anchor || '' 32 | }; 33 | 34 | const TextToSVG = require('../build/src'); 35 | const textToSVG = TextToSVG.loadSync(); 36 | 37 | var svg; 38 | if (!program.debug) { 39 | svg = textToSVG.getSVG(text, options); 40 | } else { 41 | svg = textToSVG.getDebugSVG(text, options); 42 | } 43 | 44 | console.log(svg); 45 | -------------------------------------------------------------------------------- /fonts/ipa_font_license_v1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | IPAフォントライセンスv1.0/IPA Font License Agreement v1.0 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 21 | 22 | 23 | 24 |

IPA Font License Agreement v1.0 日本語/Japanese English

25 | 26 |

IPAフォントライセンスv1.0

27 |

許諾者は、この使用許諾(以下「本契約」といいます。)に定める条件の下で、許諾プログラム(1条に定義するところによります。)を提供します。受領者(1条に定義するところによります。)が、許諾プログラムを使用し、複製し、または頒布する行為、その他、本契約に定める権利の利用を行った場合、受領者は本契約に同意したものと見なします。

28 | 29 |

第1条 用語の定義

30 |

本契約において、次の各号に掲げる用語は、当該各号に定めるところによります。

31 |
    32 |
  1. 「デジタル・フォント・プログラム」とは、フォントを含み、レンダリングしまたは表示するために用いられるコンピュータ・プログラムをいいます。
  2. 33 |
  3. 「許諾プログラム」とは、許諾者が本契約の下で許諾するデジタル・フォント・プログラムをいいます。
  4. 34 |
  5. 「派生プログラム」とは、許諾プログラムの一部または全部を、改変し、加除修正等し、入れ替え、その他翻案したデジタル・フォント・プログラムをいい、許諾プログラムの一部もしくは全部から文字情報を取り出し、またはデジタル・ドキュメント・ファイルからエンベッドされたフォントを取り出し、取り出された文字情報をそのまま、または改変をなして新たなデジタル・フォント・プログラムとして製作されたものを含みます。
  6. 35 |
  7. 「デジタル・コンテンツ」とは、デジタル・データ形式によってエンド・ユーザに提供される制作物のことをいい、動画・静止画等の映像コンテンツおよびテレビ番組等の放送コンテンツ、ならびに文字テキスト、画像、図形等を含んで構成された制作物を含みます。
  8. 36 |
  9. 「デジタル・ドキュメント・ファイル」とは、PDFファイルその他、各種ソフトウェア・プログラムによって製作されたデジタル・コンテンツであって、その中にフォントを表示するために許諾プログラムの全部または一部が埋め込まれた(エンベッドされた)ものをいいます。フォントが「エンベッドされた」とは、当該フォントが埋め込まれた特定の「デジタル・ドキュメント・ファイル」においてのみ表示されるために使用されている状態を指し、その特定の「デジタル・ドキュメント・ファイル」以外でフォントを表示するために使用できるデジタル・フォント・プログラムに含まれている場合と区別されます。
  10. 37 |
  11. 「コンピュータ」とは、本契約においては、サーバを含みます。
  12. 38 |
  13. 「複製その他の利用」とは、複製、譲渡、頒布、貸与、公衆送信、上映、展示、翻案その他の利用をいいます。
  14. 39 |
  15. 「受領者」とは、許諾プログラムを本契約の下で受領した人をいい、受領者から許諾プログラムを受領した人を含みます。
  16. 40 |
41 |

第2条 使用許諾の付与

42 |

許諾者は受領者に対し、本契約の条項に従い、すべての国で、許諾プログラムを使用することを許諾します。ただし、許諾プログラムに存在する一切の権利はすべて許諾者が保有しています。本契約は、本契約で明示的に定められている場合を除き、いかなる意味においても、許諾者が保有する許諾プログラムに関する一切の権利および、いかなる商標、商号、もしくはサービス・マークに関する権利をも受領者に移転するものではありません。

43 |
    44 |
  1. 受領者は本契約に定める条件に従い、許諾プログラムを任意の数のコンピュータにインストールし、当該コンピュータで使用することができます。
  2. 45 |
  3. 受領者はコンピュータにインストールされた許諾プログラムをそのまま、または改変を行ったうえで、印刷物およびデジタル・コンテンツにおいて、文字テキスト表現等として使用することができます。
  4. 46 |
  5. 受領者は前項の定めに従い作成した印刷物およびデジタル・コンテンツにつき、その商用・非商用の別、および放送、通信、各種記録メディアなどの媒体の形式を問わず、複製その他の利用をすることができます。
  6. 47 |
  7. 受領者がデジタル・ドキュメント・ファイルからエンベッドされたフォントを取り出して派生プログラムを作成した場合には、かかる派生プログラムは本契約に定める条件に従う必要があります。
  8. 48 |
  9. 許諾プログラムのエンベッドされたフォントがデジタル・ドキュメント・ファイル内のデジタル・コンテンツをレンダリングするためにのみ使用される場合において、受領者が当該デジタル・ドキュメント・ファイルを複製その他の利用をする場合には、受領者はかかる行為に関しては本契約の下ではいかなる義務をも負いません。
  10. 49 |
  11. 受領者は、3条2項の定めに従い、商用・非商用を問わず、許諾プログラムをそのままの状態で改変することなく複製して第三者への譲渡し、公衆送信し、その他の方法で再配布することができます(以下、「再配布」といいます。)。
  12. 50 |
  13. 受領者は、上記の許諾プログラムについて定められた条件と同様の条件に従って、派生プログラムを作成し、使用し、複製し、再配布することができます。ただし、受領者が派生プログラムを再配布する場合には、3条1項の定めに従うものとします。
  14. 51 |
52 | 53 |

第3条 制限

54 |

前条により付与された使用許諾は、以下の制限に服します。

55 |
    56 |
  1. 派生プログラムが前条4項及び7項に基づき再配布される場合には、以下の全ての条件を満たさなければなりません。 57 |
      58 |
    • (1) 派生プログラムを再配布する際には、下記もまた、当該派生プログラムと一緒に再配布され、オンラインで提供され、または、郵送費・媒体及び取扱手数料の合計を超えない実費と引き換えに媒体を郵送する方法により提供されなければなりません。 59 |
        60 |
      • (a) 派生プログラムの写し; および
      • 61 |
      • (b) 派生プログラムを作成する過程でフォント開発プログラムによって作成された追加のファイルであって派生プログラムをさらに加工するにあたって利用できるファイルが存在すれば、当該ファイル
      • 62 |
      63 |
    • 64 | 65 |
    • (2) 派生プログラムの受領者が、派生プログラムを、このライセンスの下で最初にリリースされた許諾プログラム(以下、「オリジナル・プログラム」といいます。)に置き換えることができる方法を再配布するものとします。かかる方法は、オリジナル・ファイルからの差分ファイルの提供、または、派生プログラムをオリジナル・プログラムに置き換える方法を示す指示の提供などが考えられます。
    • 66 |
    • (3) 派生プログラムを、本契約書に定められた条件の下でライセンスしなければなりません。
    • 67 |
    • (4) 派生プログラムのプログラム名、フォント名またはファイル名として、許諾プログラムが用いているのと同一の名称、またはこれを含む名称を使用してはなりません。
    • 68 |
    • (5) 本項の要件を満たすためにオンラインで提供し、または媒体を郵送する方法で提供されるものは、その提供を希望するいかなる者によっても提供が可能です。
    • 69 |
    70 |
  2. 71 |
  3. 受領者が前条6項に基づき許諾プログラムを再配布する場合には、以下の全ての条件を満たさなければなりません。 72 |
      73 |
    • (1) 許諾プログラムの名称を変更してはなりません。
    • 74 |
    • (2) 許諾プログラムに加工その他の改変を加えてはなりません。
    • 75 |
    • (3) 本契約の写しを許諾プログラムに添付しなければなりません。
    • 76 |
    77 |
  4. 78 |
  5. 許諾プログラムは、現状有姿で提供されており、許諾プログラムまたは派生プログラムについて、許諾者は一切の明示または黙示の保証(権利の所在、非侵害、商品性、特定目的への適合性を含むがこれに限られません)を行いません。いかなる場合にも、その原因を問わず、契約上の責任か厳格責任か過失その他の不法行為責任かにかかわらず、また事前に通知されたか否かにかかわらず、許諾者は、許諾プログラムまたは派生プログラムのインストール、使用、複製その他の利用または本契約上の権利の行使によって生じた一切の損害(直接・間接・付随的・特別・拡大・懲罰的または結果的損害)(商品またはサービスの代替品の調達、システム障害から生じた損害、現存するデータまたはプログラムの紛失または破損、逸失利益を含むがこれに限られません)について責任を負いません。
  6. 79 |
  7. 許諾プログラムまたは派生プログラムのインストール、使用、複製その他の利用に関して、許諾者は技術的な質問や問い合わせ等に対する対応その他、いかなるユーザ・サポートをも行う義務を負いません。
  8. 80 |
81 | 82 |

第4条 契約の終了

83 |
    84 |
  1. 本契約の有効期間は、受領者が許諾プログラムを受領した時に開始し、受領者が許諾プログラムを何らかの方法で保持する限り続くものとします。
  2. 85 |
  3. 前項の定めにかかわらず、受領者が本契約に定める各条項に違反したときは、本契約は、何らの催告を要することなく、自動的に終了し、当該受領者はそれ以後、許諾プログラムおよび派生プログラムを一切使用しまたは複製その他の利用をすることができないものとします。ただし、かかる契約の終了は、当該違反した受領者から許諾プログラムまたは派生プログラムの配布を受けた受領者の権利に影響を及ぼすものではありません。
  4. 86 |
87 | 88 |

第5条 準拠法

89 |
    90 |
  1. IPAは、本契約の変更バージョンまたは新しいバージョンを公表することができます。その場合には、受領者は、許諾プログラムまたは派生プログラムの使用、複製その他の利用または再配布にあたり、本契約または変更後の契約のいずれかを選択することができます。その他、上記に記載されていない条項に関しては日本の著作権法および関連法規に従うものとします。
  2. 91 |
  3. 本契約は、日本法に基づき解釈されます。
  4. 92 |
93 |

TOP

94 | 95 |
96 |

IPA Font License Agreement v1.0

97 |

The Licensor provides the Licensed Program (as defined in Article 1 below) under the terms of this license agreement (“Agreement”).  Any use, reproduction or distribution of the Licensed Program, or any exercise of rights under this Agreement by a Recipient (as defined in Article 1 below) constitutes the Recipient’s acceptance of this Agreement.

98 | 99 |

Article 1 (Definitions)

100 |
    101 |
  1. “Digital Font Program” shall mean 102 | a computer program containing, or used to render or display fonts.
  2. 103 |
  3. “Licensed Program” shall mean a 104 | Digital Font Program licensed by the Licensor under this Agreement.
  4. 105 |
  5. “Derived Program” shall mean a Digital Font Program created as a result of a modification, addition, deletion, replacement or any other adaptation to or of a part or all of the Licensed Program, and includes a case where a Digital Font Program newly created by retrieving font information from a part or all of the Licensed Program or Embedded Fonts from a Digital Document File with or without modification of the retrieved font information.
  6. 106 |
  7. “Digital Content” shall mean products provided to end users in the form of digital data, including video content, motion and/or still pictures, TV programs or other broadcasting content and products consisting of character text, pictures, photographic images, graphic symbols and/or the like.
  8. 107 |
  9. “Digital Document File” shall mean a PDF file or other Digital Content created by various software programs in which a part or all of the Licensed Program becomes embedded or contained in the file for the display of the font (“Embedded Fonts”). Embedded Fonts are used only in the display of characters in the particular Digital Document File within which they are embedded, and shall be distinguished from those in any Digital Font Program, which may be used for display of characters outside that particular Digital Document File.
  10. 108 |
  11. “Computer” shall include a server in this Agreement.
  12. 109 |
  13. “Reproduction and Other Exploitation” shall mean reproduction, transfer, distribution, lease, public transmission, presentation, exhibition, adaptation and any other exploitation.
  14. 110 |
  15. “Recipient” shall mean anyone who receives the Licensed Program under this Agreement, including one that receives the Licensed Program from a Recipient.
  16. 111 |
112 | 113 |

Article 2 (Grant of License)

114 |

The Licensor grants to the Recipient a license to use the Licensed Program in any and all countries in accordance with each of the provisions set forth in this Agreement. However, any and all rights underlying in the Licensed Program shall be held by the Licensor. In no sense is this Agreement intended to transfer any right relating to the Licensed Program held by the Licensor except as specifically set forth herein or any right relating to any trademark, trade name, or service mark to the Recipient.

115 |
    116 |
  1. The Recipient may install the Licensed Program on any number of Computers and use the same in accordance with the provisions set forth in this Agreement.
  2. 117 |
  3. The Recipient may use the Licensed Program, with or without modification in printed materials or in Digital Content as an expression of character texts or the like.
  4. 118 |
  5. The Recipient may conduct Reproduction and Other Exploitation of the printed materials and Digital Content created in accordance with the preceding Paragraph, for commercial or non-commercial purposes and in any form of media including but not limited to broadcasting, communication and various recording media.
  6. 119 |
  7. If any Recipient extracts Embedded Fonts from a Digital Document File to create a Derived Program, such Derived Program shall be subject to the terms of this agreement.
  8. 120 |
  9. If any Recipient performs Reproduction or Other Exploitation of a Digital Document File in which Embedded Fonts of the Licensed Program are used only for rendering the Digital Content within such Digital Document File then such Recipient shall have no further obligations under this Agreement in relation to such actions.
  10. 121 |
  11. The Recipient may reproduce the Licensed Program as is without modification and transfer such copies, publicly transmit or otherwise redistribute the Licensed Program to a third party for commercial or non-commercial purposes (“Redistribute”), in accordance with the provisions set forth in Article 3 Paragraph 2.
  12. 122 |
  13. The Recipient may create, use, reproduce and/or Redistribute a Derived Program under the terms stated above for the Licensed Program: provided, that the Recipient shall follow the provisions set forth in Article 3 Paragraph 1 when Redistributing the Derived Program.
  14. 123 |
124 | 125 |

Article 3 (Restriction)

126 |

The license granted in the preceding Article shall be subject to the following restrictions:

127 |
    128 |
  1. If a Derived Program is Redistributed pursuant to Paragraph 4 and 7 of the preceding Article, the following conditions must be met : 129 |
      130 |
    • (1)The following must be also Redistributed together with the Derived Program, or be made available online or by means of mailing mechanisms in exchange for a cost which does not exceed the total costs of postage, storage medium and handling fees: 131 |
        132 |
      • (a)a copy of the Derived Program; and
      • 133 |
      • (b)any additional file created by the font developing program in the course of creating the Derived Program that can be used for further modification of the Derived Program, if any.
      • 134 |
      135 |
    • 136 |
    • (2)It is required to also Redistribute means to enable recipients of the Derived Program to replace the Derived Program with the Licensed Program first released under this License (the “Original Program”). Such means may be to provide a difference file from the Original Program, or instructions setting out a method to replace the Derived Program with the Original Program.
    • 137 |
    • (3)The Recipient must license the Derived Program under the terms and conditions of this Agreement.
    • 138 |
    • (4)No one may use or include the name of the Licensed Program as a program name, font name or file name of the Derived Program.
    • 139 |
    • (5) Any material to be made available online or by means of mailing a medium to satisfy the requirements of this paragraph may be provided, verbatim, by any party wishing to do so.
    • 140 |
    141 |
  2. 142 |
  3. If the Recipient Redistributes the Licensed Program pursuant to Paragraph 6 of the preceding Article, the Recipient shall meet all of the following conditions: 143 |
      144 |
    • (1)The Recipient may not change the name of the Licensed Program.
    • 145 |
    • (2)The Recipient may not alter or otherwise modify the Licensed Program.
    • 146 |
    • (3)The Recipient must attach a copy of this Agreement to the Licensed Program.
    • 147 |
    148 |
  4. 149 |
  5. THIS LICENSED PROGRAM IS PROVIDED BY THE LICENSOR “AS IS” AND ANY EXPRESSED OR IMPLIED WARRANTY AS TO THE LICENSED PROGRAM OR ANY DERIVED PROGRAM, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. IN NO EVENT SHALL THE LICENSOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXTENDED, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO; PROCUREMENT OF SUBSTITUTED GOODS OR SERVICE; DAMAGES ARISING FROM SYSTEM FAILURE; LOSS OR CORRUPTION OF EXISTING DATA OR PROGRAM; LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE INSTALLATION, USE, THE REPRODUCTION OR OTHER EXPLOITATION OF THE LICENSED PROGRAM OR ANY DERIVED PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  6. 150 |
  7. The Licensor is under no obligation to respond to any technical questions or inquiries, or provide any other user support in connection with the installation, use or the Reproduction and Other Exploitation of the Licensed Program or Derived Programs thereof.
  8. 151 |
152 | 153 |

Article 4 (Termination of Agreement)

154 |
    155 |
  1. The term of this Agreement shall begin from the time of receipt of the Licensed Program by the Recipient and shall continue as long as the Recipient retains any such Licensed Program in any way.
  2. 156 |
  3. Notwithstanding the provision set forth in the preceding Paragraph, in the event of the breach of any of the provisions set forth in this Agreement by the Recipient, this Agreement shall automatically terminate without any notice. In the case of such termination, the Recipient may not use or conduct Reproduction and Other Exploitation of the Licensed Program or a Derived Program: provided that such termination shall not affect any rights of any other Recipient receiving the Licensed Program or the Derived Program from such Recipient who breached this Agreement.
  4. 157 |
158 | 159 |

Article 5 (Governing Law)

160 |
    161 |
  1. IPA may publish revised and/or new versions of this License. In such an event, the Recipient may select either this Agreement or any subsequent version of the Agreement in using, conducting the Reproduction and Other Exploitation of, or Redistributing the Licensed Program or a Derived Program. Other matters not specified above shall be subject to the Copyright Law of Japan and other related laws and regulations of Japan.
  2. 162 |
  3. This Agreement shall be construed under the laws of Japan.
  4. 163 |
164 |

TOP

165 | 166 | 167 | 168 | -------------------------------------------------------------------------------- /fonts/ipag.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shrhdk/text-to-svg/ed0692882908511bcc377069e55853492d5e1429/fonts/ipag.ttf -------------------------------------------------------------------------------- /gulpfile.babel.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2016 Hideki Shiro 3 | */ 4 | 5 | /* eslint-disable no-process-env, global-require */ 6 | 7 | import path from 'path'; 8 | import assert from 'assert'; 9 | import gulp from 'gulp'; 10 | import del from 'del'; 11 | import babel from 'gulp-babel'; 12 | import mocha from 'gulp-mocha'; 13 | import eslint from 'gulp-eslint'; 14 | import browserify from 'browserify'; 15 | import source from 'vinyl-source-stream'; 16 | 17 | // Clean 18 | 19 | gulp.task('clean', done => { 20 | return del(['build', 'npm-debug.log', '!*/.gitkeep'], done); 21 | }); 22 | 23 | // Lint 24 | 25 | gulp.task('lint', () => { 26 | return gulp.src(['src/**/*.js', 'test/**/*.js', 'gulpfile.babel.js']) 27 | .pipe(eslint()) 28 | .pipe(eslint.format()) 29 | .pipe(eslint.failOnError()); 30 | }); 31 | 32 | // Build 33 | 34 | gulp.task('build:src', () => { 35 | return gulp.src('src/**/*.js') 36 | .pipe(babel()) 37 | .pipe(gulp.dest('build/src/')); 38 | }); 39 | 40 | gulp.task('build:res', () => { 41 | return gulp.src('fonts/**/*') 42 | .pipe(gulp.dest('build/fonts/')); 43 | }); 44 | 45 | gulp.task('build:test:src', () => { 46 | return gulp.src('test/**/*.js') 47 | .pipe(babel()) 48 | .pipe(gulp.dest('build/test/')); 49 | }); 50 | 51 | gulp.task('build:test:browser', () => { 52 | return browserify('./build/test/browser.js') 53 | .bundle() 54 | .pipe(source('browser.js')) 55 | .pipe(gulp.dest('build/test')); 56 | }); 57 | 58 | gulp.task('build', gulp.series('build:src', 'build:res', 'build:test:src', 'build:test:browser')); 59 | 60 | // Test 61 | 62 | gulp.task('version-check', done => { 63 | const packageVer = require('./package.json').version; 64 | const tagVer = process.env.TRAVIS_TAG; 65 | if (tagVer) { 66 | assert.equal(packageVer, tagVer, `Package version and tagged version are mismatched. Package version is ${packageVer}, but tagged version is ${tagVer}`); 67 | } 68 | done(); 69 | }); 70 | 71 | gulp.task('test', gulp.series(gulp.parallel('build', 'lint', 'version-check'), () => { 72 | return gulp.src('build/test/index.js') 73 | .pipe(mocha()); 74 | })); 75 | 76 | gulp.task('test:html', gulp.series(gulp.parallel('build', 'lint', 'version-check'), () => { 77 | const reporter = path.join(__dirname, './build/test/html-reporter.js'); 78 | const dest = path.join(__dirname, './build/test/result.html'); 79 | return gulp.src('build/test/index.js') 80 | .pipe(mocha({ reporter, reporterOptions: { dest } })); 81 | })); 82 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2016 Hideki Shiro 3 | */ 4 | 5 | module.exports = require('./build/src/index.js'); 6 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "text-to-svg", 3 | "version": "3.1.5", 4 | "description": "Convert text to SVG path without native dependence.", 5 | "main": "index.js", 6 | "files": [ 7 | ".gitignore", 8 | "CHANGELOG.md", 9 | "README.md", 10 | "package.json", 11 | "node_modules", 12 | "gulpfile.js", 13 | "index.js", 14 | "build", 15 | "src", 16 | "test", 17 | "fonts", 18 | "bin" 19 | ], 20 | "bin": { 21 | "text-to-svg": "bin/text-to-svg" 22 | }, 23 | "scripts": { 24 | "test": "gulp test", 25 | "test:html": "gulp test:html", 26 | "clean": "gulp clean", 27 | "lint": "gulp lint", 28 | "build": "gulp build", 29 | "prepack": "npm run build" 30 | }, 31 | "repository": { 32 | "type": "git", 33 | "url": "https://github.com/shrhdk/text-to-svg" 34 | }, 35 | "keywords": [ 36 | "fonts", 37 | "glyph", 38 | "graphics", 39 | "SVG", 40 | "text", 41 | "vector" 42 | ], 43 | "author": "Hideki Shiro", 44 | "license": "MIT", 45 | "bugs": { 46 | "url": "https://github.com/shrhdk/text-to-svg/issues" 47 | }, 48 | "homepage": "https://github.com/shrhdk/text-to-svg", 49 | "dependencies": { 50 | "commander": "^2.11.0", 51 | "opentype.js": "1.3.4" 52 | }, 53 | "devDependencies": { 54 | "@babel/core": "^7.3.4", 55 | "@babel/preset-env": "^7.3.4", 56 | "@babel/register": "^7.0.0", 57 | "browserify": "^16.2.3", 58 | "del": "^3.0.0", 59 | "eslint-plugin-arrow-function": "^2.0.0", 60 | "eslint-plugin-classes": "^0.1.1", 61 | "eslint-plugin-template-string": "^1.0.0", 62 | "gulp": "^4.0.0", 63 | "gulp-babel": "^8.0.0", 64 | "gulp-eslint": "^5.0.0", 65 | "gulp-mocha": "^6.0.0", 66 | "vinyl-source-stream": "^2.0.0" 67 | }, 68 | "babel": { 69 | "presets": [ 70 | "@babel/preset-env" 71 | ] 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2016 Hideki Shiro 3 | */ 4 | 5 | import * as opentype from 'opentype.js'; 6 | 7 | const DEFAULT_FONT = require('path').join(__dirname, '../fonts/ipag.ttf'); 8 | 9 | // Private method 10 | 11 | function parseAnchorOption(anchor) { 12 | let horizontal = anchor.match(/left|center|right/gi) || []; 13 | horizontal = horizontal.length === 0 ? 'left' : horizontal[0]; 14 | 15 | let vertical = anchor.match(/baseline|top|bottom|middle/gi) || []; 16 | vertical = vertical.length === 0 ? 'baseline' : vertical[0]; 17 | 18 | return { horizontal, vertical }; 19 | } 20 | 21 | export default class TextToSVG { 22 | constructor(font) { 23 | this.font = font; 24 | } 25 | 26 | static loadSync(file = DEFAULT_FONT) { 27 | return new TextToSVG(opentype.loadSync(file)); 28 | } 29 | 30 | static load(url, cb) { 31 | opentype.load(url, (err, font) => { 32 | if (err !== null) { 33 | return cb(err, null); 34 | } 35 | 36 | return cb(null, new TextToSVG(font)); 37 | }); 38 | } 39 | 40 | getWidth(text, options) { 41 | const fontSize = options.fontSize || 72; 42 | const kerning = 'kerning' in options ? options.kerning : true; 43 | const fontScale = 1 / this.font.unitsPerEm * fontSize; 44 | 45 | let width = 0; 46 | const glyphs = this.font.stringToGlyphs(text); 47 | for (let i = 0; i < glyphs.length; i++) { 48 | const glyph = glyphs[i]; 49 | 50 | if (glyph.advanceWidth) { 51 | width += glyph.advanceWidth * fontScale; 52 | } 53 | 54 | if (kerning && i < glyphs.length - 1) { 55 | const kerningValue = this.font.getKerningValue(glyph, glyphs[i + 1]); 56 | width += kerningValue * fontScale; 57 | } 58 | 59 | if (options.letterSpacing) { 60 | width += options.letterSpacing * fontSize; 61 | } else if (options.tracking) { 62 | width += (options.tracking / 1000) * fontSize; 63 | } 64 | } 65 | return width; 66 | } 67 | 68 | getHeight(fontSize) { 69 | const fontScale = 1 / this.font.unitsPerEm * fontSize; 70 | return (this.font.ascender - this.font.descender) * fontScale; 71 | } 72 | 73 | getMetrics(text, options = {}) { 74 | const fontSize = options.fontSize || 72; 75 | const anchor = parseAnchorOption(options.anchor || ''); 76 | 77 | const width = this.getWidth(text, options); 78 | const height = this.getHeight(fontSize); 79 | 80 | const fontScale = 1 / this.font.unitsPerEm * fontSize; 81 | const ascender = this.font.ascender * fontScale; 82 | const descender = this.font.descender * fontScale; 83 | 84 | let x = options.x || 0; 85 | switch (anchor.horizontal) { 86 | case 'left': 87 | x -= 0; 88 | break; 89 | case 'center': 90 | x -= width / 2; 91 | break; 92 | case 'right': 93 | x -= width; 94 | break; 95 | default: 96 | throw new Error(`Unknown anchor option: ${anchor.horizontal}`); 97 | } 98 | 99 | let y = options.y || 0; 100 | switch (anchor.vertical) { 101 | case 'baseline': 102 | y -= ascender; 103 | break; 104 | case 'top': 105 | y -= 0; 106 | break; 107 | case 'middle': 108 | y -= height / 2; 109 | break; 110 | case 'bottom': 111 | y -= height; 112 | break; 113 | default: 114 | throw new Error(`Unknown anchor option: ${anchor.vertical}`); 115 | } 116 | 117 | const baseline = y + ascender; 118 | 119 | return { 120 | x, 121 | y, 122 | baseline, 123 | width, 124 | height, 125 | ascender, 126 | descender, 127 | }; 128 | } 129 | 130 | getD(text, options = {}) { 131 | const fontSize = options.fontSize || 72; 132 | const kerning = 'kerning' in options ? options.kerning : true; 133 | const letterSpacing = 'letterSpacing' in options ? options.letterSpacing : false; 134 | const tracking = 'tracking' in options ? options.tracking : false; 135 | const metrics = this.getMetrics(text, options); 136 | const path = this.font.getPath(text, metrics.x, metrics.baseline, fontSize, { kerning, letterSpacing, tracking }); 137 | 138 | return path.toPathData(); 139 | } 140 | 141 | getPath(text, options = {}) { 142 | const attributes = Object.keys(options.attributes || {}) 143 | .map(key => `${key}="${options.attributes[key]}"`) 144 | .join(' '); 145 | const d = this.getD(text, options); 146 | 147 | if (attributes) { 148 | return ``; 149 | } 150 | 151 | return ``; 152 | } 153 | 154 | getSVG(text, options = {}) { 155 | const metrics = this.getMetrics(text, options); 156 | let svg = ``; 157 | svg += this.getPath(text, options); 158 | svg += ''; 159 | 160 | return svg; 161 | } 162 | 163 | getDebugSVG(text, options = {}) { 164 | options = JSON.parse(JSON.stringify(options)); 165 | 166 | options.x = options.x || 0; 167 | options.y = options.y || 0; 168 | const metrics = this.getMetrics(text, options); 169 | const box = { 170 | width: Math.max(metrics.x + metrics.width, 0) - Math.min(metrics.x, 0), 171 | height: Math.max(metrics.y + metrics.height, 0) - Math.min(metrics.y, 0), 172 | }; 173 | const origin = { 174 | x: box.width - Math.max(metrics.x + metrics.width, 0), 175 | y: box.height - Math.max(metrics.y + metrics.height, 0), 176 | }; 177 | 178 | // Shift text based on origin 179 | options.x += origin.x; 180 | options.y += origin.y; 181 | 182 | let svg = ``; 183 | svg += ``; // X Axis 184 | svg += ``; // Y Axis 185 | svg += this.getPath(text, options); 186 | svg += ''; 187 | 188 | return svg; 189 | } 190 | } 191 | 192 | module.exports = exports.default; 193 | -------------------------------------------------------------------------------- /test/browser.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | text-to-svg 6 | 7 | 8 | 9 |

text-to-svg

10 |

Loader

11 | 12 | 13 |
14 |

Parameters

15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |
41 |

Result

42 | 43 | 44 |
45 | 46 | 47 | -------------------------------------------------------------------------------- /test/browser.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2016 Hideki Shiro 3 | */ 4 | 5 | /* eslint-disable no-undef */ 6 | 7 | import TextToSVG from '../src'; 8 | 9 | window.addEventListener('load', () => { 10 | const fontURLInput = document.querySelector('#font-url-input'); 11 | const loadButton = document.querySelector('#load-button'); 12 | const loadStatus = document.querySelector('#load-status'); 13 | const textInput = document.querySelector('#text-input'); 14 | const xInput = document.querySelector('#x-input'); 15 | const yInput = document.querySelector('#y-input'); 16 | const fontSizeInput = document.querySelector('#font-size-input'); 17 | const kerningInput = document.querySelector('#kerning-input'); 18 | const anchorInput = document.querySelector('#anchor-input'); 19 | const getSVGButton = document.querySelector('#get-svg-button'); 20 | const debugInput = document.querySelector('#debug-input'); 21 | const result = document.querySelector('#result'); 22 | 23 | let textToSVG; 24 | 25 | loadButton.onclick = () => { 26 | loadStatus.textContent = 'loading...'; 27 | const url = fontURLInput.value; 28 | TextToSVG.load(url, (err, t2s) => { 29 | if (err) { 30 | loadStatus.textContent = err; 31 | return; 32 | } 33 | 34 | loadStatus.textContent = 'success!'; 35 | textToSVG = t2s; 36 | }); 37 | }; 38 | 39 | getSVGButton.onclick = () => { 40 | if (textToSVG === null) { 41 | alert('load font first'); 42 | return; 43 | } 44 | 45 | const text = textInput.value || ''; 46 | const x = Number(xInput.value || 0); 47 | const y = Number(yInput.value || 0); 48 | const fontSize = Number(fontSizeInput.value || 72); 49 | const kerning = kerningInput.checked; 50 | const anchor = anchorInput.value || ''; 51 | 52 | let svg; 53 | if (debugInput.checked) { 54 | svg = textToSVG.getDebugSVG(text, { x, y, fontSize, kerning, anchor }); 55 | } else { 56 | svg = textToSVG.getSVG(text, { x, y, fontSize, kerning, anchor }); 57 | } 58 | 59 | result.innerHTML = svg; 60 | }; 61 | }); 62 | -------------------------------------------------------------------------------- /test/html-reporter.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2016 Hideki Shiro 3 | */ 4 | 5 | /* eslint-disable no-console, */ 6 | 7 | import fs from 'fs'; 8 | import TextToSVG from '../src'; 9 | const textToSVG = TextToSVG.loadSync(); 10 | 11 | const STYLE = ` 12 | table { 13 | border-collapse: collapse; 14 | } 15 | 16 | tr.pass { 17 | background-color: #90EE90; 18 | } 19 | 20 | tr.fail { 21 | background-color: #FFC0CB; 22 | } 23 | 24 | th, td { 25 | padding: 3px; 26 | border: 1px solid #b9b9b9; 27 | } 28 | `; 29 | 30 | export default function(runner, mochaOptions) { 31 | let failures = 0; 32 | const stack = []; // 0:'TextToSVG' <- 1:'method' <- 2:'text' = [SP] 33 | 34 | const dest = mochaOptions.reporterOptions.dest; 35 | console.log(`write test report to ${dest}`); 36 | fs.writeFileSync(dest, ''); 37 | 38 | function write(str) { 39 | fs.appendFileSync(dest, str); 40 | } 41 | 42 | function ontest(test, err) { 43 | const text = stack[2]; 44 | const options = JSON.parse(test.title); 45 | const metrics = textToSVG.getMetrics(text, options); 46 | const d = textToSVG.getD(text, options); 47 | const svg = textToSVG.getDebugSVG(text, options); 48 | 49 | if (err) { 50 | failures++; 51 | } 52 | 53 | write(``); 54 | write(`
${JSON.stringify(options, null, 2)}
`); 55 | write(`${svg}`); 56 | write(`
${JSON.stringify(metrics, null, 2)}
`); 57 | write(`
${d}
`); 58 | write(''); 59 | } 60 | 61 | runner.on('start', () => { 62 | write(''); 63 | write(''); 64 | write(''); 65 | write('TextToSVG'); 66 | write(''); 67 | write(''); 68 | write(``); 69 | }); 70 | 71 | runner.on('suite', suite => { 72 | if (suite.root) { 73 | return; 74 | } 75 | 76 | stack.push(suite.title); 77 | switch (stack.length - 1) { 78 | case 0: // TextToSVG 79 | write(`

${suite.title}

`); 80 | break; 81 | case 1: // method 82 | write(`

${suite.title}

`); 83 | break; 84 | case 2: // text 85 | write(`

${suite.title}

`); 86 | write(''); 87 | write(''); 88 | write(''); 89 | write(''); 90 | write(''); 91 | write(''); 92 | write(''); 93 | break; 94 | default: 95 | throw new Error('Unknown Depth'); 96 | } 97 | }); 98 | 99 | runner.on('suite end', suite => { 100 | if (stack.length === 3) { 101 | write('
optionssvggetMetricsgetD
'); 102 | } 103 | stack.pop(suite.title); 104 | }); 105 | 106 | runner.on('pass', (test) => { 107 | ontest(test, null); 108 | }); 109 | 110 | runner.on('fail', (test, err) => { 111 | ontest(test, err); 112 | }); 113 | 114 | runner.on('end', () => { 115 | write(''); 116 | process.exit(failures); 117 | }); 118 | } 119 | 120 | module.exports = exports.default; 121 | -------------------------------------------------------------------------------- /test/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2016 Hideki Shiro 3 | */ 4 | 5 | import assert from 'assert'; 6 | import TextToSVG from '../src'; 7 | 8 | function assertAlmostEqual(a, b, epsilon) { 9 | assert.strictEqual(Math.abs(a - b) < epsilon, true); 10 | } 11 | 12 | class TextToSVGTest { 13 | constructor(text) { 14 | this.textToSVG = TextToSVG.loadSync(); 15 | this.text = text; 16 | } 17 | 18 | getMetrics(options, expected) { 19 | const epsilon = 0.001; 20 | const title = JSON.stringify(options); 21 | const actual = this.textToSVG.getMetrics(this.text, options); 22 | 23 | it(title, () => { 24 | assertAlmostEqual(actual.width, expected.width, epsilon); 25 | assertAlmostEqual(actual.height, expected.height, epsilon); 26 | }); 27 | } 28 | 29 | getD(options, expected) { 30 | const title = JSON.stringify(options); 31 | const actual = this.textToSVG.getD(this.text, options); 32 | 33 | it(title, () => { 34 | assert.strictEqual(actual, expected); 35 | }); 36 | } 37 | 38 | getPath(options, expected) { 39 | const title = JSON.stringify(options); 40 | const actual = this.textToSVG.getPath(this.text, options); 41 | 42 | it(title, () => { 43 | assert.strictEqual(actual, expected); 44 | }); 45 | } 46 | 47 | getSVG(options, expected) { 48 | const title = JSON.stringify(options); 49 | const actual = this.textToSVG.getSVG(this.text, options); 50 | 51 | it(title, () => { 52 | assert.strictEqual(actual, expected); 53 | }); 54 | } 55 | } 56 | 57 | describe('TextToSVG', () => { 58 | describe('getMetrics', () => { 59 | describe('hello', () => { 60 | const hello = new TextToSVGTest('hello'); 61 | 62 | hello.getMetrics({}, { x: 0, y: -63.3515625, baseline: 0, width: 180, height: 72, ascender: 63.3515625, descender: -8.6484375 }); 63 | 64 | hello.getMetrics({ fontSize: 10 }, { x: 0, y: -8.798828125, baseline: 0, width: 25, height: 10, ascender: 8.798828125, descender: -1.201171875 }); 65 | hello.getMetrics({ fontSize: 100 }, { x: 0, y: -87.98828125, baseline: 0, width: 250, height: 100, ascender: 87.98828125, descender: -12.01171875 }); 66 | 67 | hello.getMetrics({ kerning: false }, { x: 0, y: -63.3515625, baseline: 0, width: 180, height: 72, ascender: 63.3515625, descender: -8.6484375 }); 68 | hello.getMetrics({ kerning: true }, { x: 0, y: -63.3515625, baseline: 0, width: 180, height: 72, ascender: 63.3515625, descender: -8.6484375 }); 69 | hello.getMetrics({ letterSpacing: 0.2 }, { x: 0, y: -63.3515625, baseline: 0, width: 252.00000000000003, height: 72, ascender: 63.3515625, descender: -8.6484375 }); 70 | hello.getMetrics({ tracking: 200 }, { x: 0, y: -63.3515625, baseline: 0, width: 252.00000000000003, height: 72, ascender: 63.3515625, descender: -8.6484375 }); 71 | }); 72 | 73 | describe('宇治', () => { 74 | const uji = new TextToSVGTest('宇治'); 75 | 76 | uji.getMetrics({}, { x: 0, y: -63.3515625, baseline: 0, width: 144, height: 72, ascender: 63.3515625, descender: -8.6484375 }); 77 | 78 | uji.getMetrics({ fontSize: 10 }, { x: 0, y: -8.798828125, baseline: 0, width: 20, height: 10, ascender: 8.798828125, descender: -1.201171875 }); 79 | uji.getMetrics({ fontSize: 100 }, { x: 0, y: -87.98828125, baseline: 0, width: 200, height: 100, ascender: 87.98828125, descender: -12.01171875 }); 80 | 81 | uji.getMetrics({ kerning: false }, { x: 0, y: -63.3515625, baseline: 0, width: 144, height: 72, ascender: 63.3515625, descender: -8.6484375 }); 82 | uji.getMetrics({ kerning: true }, { x: 0, y: -63.3515625, baseline: 0, width: 144, height: 72, ascender: 63.3515625, descender: -8.6484375 }); 83 | uji.getMetrics({ letterSpacing: 0.2 }, { x: 0, y: -63.3515625, baseline: 0, width: 172.8, height: 72, ascender: 63.3515625, descender: -8.6484375 }); 84 | uji.getMetrics({ tracking: 200 }, { x: 0, y: -63.3515625, baseline: 0, width: 172.8, height: 72, ascender: 63.3515625, descender: -8.6484375 }); 85 | }); 86 | }); 87 | 88 | describe('getD', () => { 89 | describe('hello', () => { 90 | const hello = new TextToSVGTest('hello'); 91 | 92 | hello.getD({}, 'M5.27-3.66L5.27-54.07L10.62-54.07L10.62-34.00Q15.86-39.23 21.02-39.23L21.02-39.23Q26.89-39.23 29.60-34.07L29.60-34.07Q31.11-31.15 31.11-27L31.11-27L31.11-3.66L25.77-3.66L25.77-25.42Q25.77-34.14 20.18-34.14L20.18-34.14Q16.42-34.14 13.57-31.39L13.57-31.39Q10.62-28.44 10.62-24.64L10.62-24.64L10.62-3.66L5.27-3.66ZM62.05-14.27L67.68-14.27Q64.55-2.25 54.07-2.25L54.07-2.25Q47.57-2.25 43.77-7.66L43.77-7.66Q40.32-12.62 40.32-20.74L40.32-20.74Q40.32-28.51 43.56-33.47L43.56-33.47Q47.36-39.23 54-39.23L54-39.23Q66.97-39.23 67.82-19.65L67.82-19.65L45.74-19.65Q46.16-7.07 54.14-7.07L54.14-7.07Q60.47-7.07 62.05-14.27L62.05-14.27ZM45.95-24.26L62.05-24.26Q60.89-34.42 54-34.42L54-34.42Q47.36-34.42 45.95-24.26L45.95-24.26ZM92.81-54.07L92.81-11.53Q92.81-8.44 95.77-8.44L95.77-8.44Q98.19-8.44 101.07-9L101.07-9L101.07-3.62Q96.82-3.02 94.82-3.02L94.82-3.02Q87.19-3.02 87.19-10.51L87.19-10.51L87.19-54.07L92.81-54.07ZM128.81-54.07L128.81-11.53Q128.81-8.44 131.77-8.44L131.77-8.44Q134.19-8.44 137.07-9L137.07-9L137.07-3.62Q132.82-3.02 130.82-3.02L130.82-3.02Q123.19-3.02 123.19-10.51L123.19-10.51L123.19-54.07L128.81-54.07ZM162.07-39.23L162.07-39.23Q168.68-39.23 172.44-33.40L172.44-33.40Q175.68-28.55 175.68-20.74L175.68-20.74Q175.68-14.87 173.74-10.44L173.74-10.44Q170.16-2.21 161.93-2.21L161.93-2.21Q155.57-2.21 151.77-7.63L151.77-7.63Q148.32-12.59 148.32-20.74L148.32-20.74Q148.32-29.53 152.30-34.56L152.30-34.56Q156.09-39.23 162.07-39.23ZM161.93-34.21L161.93-34.21Q158.06-34.21 155.88-30.16L155.88-30.16Q153.95-26.61 153.95-20.74L153.95-20.74Q153.95-15.33 155.53-11.92L155.53-11.92Q157.71-7.24 162-7.24L162-7.24Q165.94-7.24 168.12-11.29L168.12-11.29Q170.05-14.84 170.05-20.67L170.05-20.67Q170.05-26.75 168.05-30.23L168.05-30.23Q165.90-34.21 161.93-34.21Z'); 93 | 94 | hello.getD({ x: -30 }, 'M-24.73-3.66L-24.73-54.07L-19.38-54.07L-19.38-34.00Q-14.14-39.23-8.98-39.23L-8.98-39.23Q-3.11-39.23-0.40-34.07L-0.40-34.07Q1.11-31.15 1.11-27L1.11-27L1.11-3.66L-4.23-3.66L-4.23-25.42Q-4.23-34.14-9.82-34.14L-9.82-34.14Q-13.58-34.14-16.43-31.39L-16.43-31.39Q-19.38-28.44-19.38-24.64L-19.38-24.64L-19.38-3.66L-24.73-3.66ZM32.05-14.27L37.68-14.27Q34.55-2.25 24.07-2.25L24.07-2.25Q17.57-2.25 13.77-7.66L13.77-7.66Q10.32-12.62 10.32-20.74L10.32-20.74Q10.32-28.51 13.56-33.47L13.56-33.47Q17.36-39.23 24-39.23L24-39.23Q36.97-39.23 37.82-19.65L37.82-19.65L15.74-19.65Q16.16-7.07 24.14-7.07L24.14-7.07Q30.47-7.07 32.05-14.27L32.05-14.27ZM15.95-24.26L32.05-24.26Q30.89-34.42 24-34.42L24-34.42Q17.36-34.42 15.95-24.26L15.95-24.26ZM62.81-54.07L62.81-11.53Q62.81-8.44 65.77-8.44L65.77-8.44Q68.19-8.44 71.07-9L71.07-9L71.07-3.62Q66.82-3.02 64.82-3.02L64.82-3.02Q57.19-3.02 57.19-10.51L57.19-10.51L57.19-54.07L62.81-54.07ZM98.81-54.07L98.81-11.53Q98.81-8.44 101.77-8.44L101.77-8.44Q104.19-8.44 107.07-9L107.07-9L107.07-3.62Q102.82-3.02 100.82-3.02L100.82-3.02Q93.19-3.02 93.19-10.51L93.19-10.51L93.19-54.07L98.81-54.07ZM132.07-39.23L132.07-39.23Q138.68-39.23 142.44-33.40L142.44-33.40Q145.68-28.55 145.68-20.74L145.68-20.74Q145.68-14.87 143.74-10.44L143.74-10.44Q140.16-2.21 131.93-2.21L131.93-2.21Q125.57-2.21 121.77-7.63L121.77-7.63Q118.32-12.59 118.32-20.74L118.32-20.74Q118.32-29.53 122.30-34.56L122.30-34.56Q126.09-39.23 132.07-39.23ZM131.93-34.21L131.93-34.21Q128.06-34.21 125.88-30.16L125.88-30.16Q123.95-26.61 123.95-20.74L123.95-20.74Q123.95-15.33 125.53-11.92L125.53-11.92Q127.71-7.24 132-7.24L132-7.24Q135.94-7.24 138.12-11.29L138.12-11.29Q140.05-14.84 140.05-20.67L140.05-20.67Q140.05-26.75 138.05-30.23L138.05-30.23Q135.90-34.21 131.93-34.21Z'); 95 | hello.getD({ x: 0 }, 'M5.27-3.66L5.27-54.07L10.62-54.07L10.62-34.00Q15.86-39.23 21.02-39.23L21.02-39.23Q26.89-39.23 29.60-34.07L29.60-34.07Q31.11-31.15 31.11-27L31.11-27L31.11-3.66L25.77-3.66L25.77-25.42Q25.77-34.14 20.18-34.14L20.18-34.14Q16.42-34.14 13.57-31.39L13.57-31.39Q10.62-28.44 10.62-24.64L10.62-24.64L10.62-3.66L5.27-3.66ZM62.05-14.27L67.68-14.27Q64.55-2.25 54.07-2.25L54.07-2.25Q47.57-2.25 43.77-7.66L43.77-7.66Q40.32-12.62 40.32-20.74L40.32-20.74Q40.32-28.51 43.56-33.47L43.56-33.47Q47.36-39.23 54-39.23L54-39.23Q66.97-39.23 67.82-19.65L67.82-19.65L45.74-19.65Q46.16-7.07 54.14-7.07L54.14-7.07Q60.47-7.07 62.05-14.27L62.05-14.27ZM45.95-24.26L62.05-24.26Q60.89-34.42 54-34.42L54-34.42Q47.36-34.42 45.95-24.26L45.95-24.26ZM92.81-54.07L92.81-11.53Q92.81-8.44 95.77-8.44L95.77-8.44Q98.19-8.44 101.07-9L101.07-9L101.07-3.62Q96.82-3.02 94.82-3.02L94.82-3.02Q87.19-3.02 87.19-10.51L87.19-10.51L87.19-54.07L92.81-54.07ZM128.81-54.07L128.81-11.53Q128.81-8.44 131.77-8.44L131.77-8.44Q134.19-8.44 137.07-9L137.07-9L137.07-3.62Q132.82-3.02 130.82-3.02L130.82-3.02Q123.19-3.02 123.19-10.51L123.19-10.51L123.19-54.07L128.81-54.07ZM162.07-39.23L162.07-39.23Q168.68-39.23 172.44-33.40L172.44-33.40Q175.68-28.55 175.68-20.74L175.68-20.74Q175.68-14.87 173.74-10.44L173.74-10.44Q170.16-2.21 161.93-2.21L161.93-2.21Q155.57-2.21 151.77-7.63L151.77-7.63Q148.32-12.59 148.32-20.74L148.32-20.74Q148.32-29.53 152.30-34.56L152.30-34.56Q156.09-39.23 162.07-39.23ZM161.93-34.21L161.93-34.21Q158.06-34.21 155.88-30.16L155.88-30.16Q153.95-26.61 153.95-20.74L153.95-20.74Q153.95-15.33 155.53-11.92L155.53-11.92Q157.71-7.24 162-7.24L162-7.24Q165.94-7.24 168.12-11.29L168.12-11.29Q170.05-14.84 170.05-20.67L170.05-20.67Q170.05-26.75 168.05-30.23L168.05-30.23Q165.90-34.21 161.93-34.21Z'); 96 | hello.getD({ x: 30 }, 'M35.27-3.66L35.27-54.07L40.62-54.07L40.62-34.00Q45.86-39.23 51.02-39.23L51.02-39.23Q56.89-39.23 59.60-34.07L59.60-34.07Q61.11-31.15 61.11-27L61.11-27L61.11-3.66L55.77-3.66L55.77-25.42Q55.77-34.14 50.18-34.14L50.18-34.14Q46.42-34.14 43.57-31.39L43.57-31.39Q40.62-28.44 40.62-24.64L40.62-24.64L40.62-3.66L35.27-3.66ZM92.05-14.27L97.68-14.27Q94.55-2.25 84.07-2.25L84.07-2.25Q77.57-2.25 73.77-7.66L73.77-7.66Q70.32-12.62 70.32-20.74L70.32-20.74Q70.32-28.51 73.56-33.47L73.56-33.47Q77.36-39.23 84-39.23L84-39.23Q96.97-39.23 97.82-19.65L97.82-19.65L75.74-19.65Q76.16-7.07 84.14-7.07L84.14-7.07Q90.47-7.07 92.05-14.27L92.05-14.27ZM75.95-24.26L92.05-24.26Q90.89-34.42 84-34.42L84-34.42Q77.36-34.42 75.95-24.26L75.95-24.26ZM122.81-54.07L122.81-11.53Q122.81-8.44 125.77-8.44L125.77-8.44Q128.19-8.44 131.07-9L131.07-9L131.07-3.62Q126.82-3.02 124.82-3.02L124.82-3.02Q117.19-3.02 117.19-10.51L117.19-10.51L117.19-54.07L122.81-54.07ZM158.81-54.07L158.81-11.53Q158.81-8.44 161.77-8.44L161.77-8.44Q164.19-8.44 167.07-9L167.07-9L167.07-3.62Q162.82-3.02 160.82-3.02L160.82-3.02Q153.19-3.02 153.19-10.51L153.19-10.51L153.19-54.07L158.81-54.07ZM192.07-39.23L192.07-39.23Q198.68-39.23 202.44-33.40L202.44-33.40Q205.68-28.55 205.68-20.74L205.68-20.74Q205.68-14.87 203.74-10.44L203.74-10.44Q200.16-2.21 191.93-2.21L191.93-2.21Q185.57-2.21 181.77-7.63L181.77-7.63Q178.32-12.59 178.32-20.74L178.32-20.74Q178.32-29.53 182.30-34.56L182.30-34.56Q186.09-39.23 192.07-39.23ZM191.93-34.21L191.93-34.21Q188.06-34.21 185.88-30.16L185.88-30.16Q183.95-26.61 183.95-20.74L183.95-20.74Q183.95-15.33 185.53-11.92L185.53-11.92Q187.71-7.24 192-7.24L192-7.24Q195.94-7.24 198.12-11.29L198.12-11.29Q200.05-14.84 200.05-20.67L200.05-20.67Q200.05-26.75 198.05-30.23L198.05-30.23Q195.90-34.21 191.93-34.21Z'); 97 | 98 | hello.getD({ y: -30 }, 'M5.27-33.66L5.27-84.07L10.62-84.07L10.62-64.00Q15.86-69.23 21.02-69.23L21.02-69.23Q26.89-69.23 29.60-64.07L29.60-64.07Q31.11-61.15 31.11-57L31.11-57L31.11-33.66L25.77-33.66L25.77-55.42Q25.77-64.14 20.18-64.14L20.18-64.14Q16.42-64.14 13.57-61.39L13.57-61.39Q10.62-58.44 10.62-54.64L10.62-54.64L10.62-33.66L5.27-33.66ZM62.05-44.27L67.68-44.27Q64.55-32.25 54.07-32.25L54.07-32.25Q47.57-32.25 43.77-37.66L43.77-37.66Q40.32-42.62 40.32-50.74L40.32-50.74Q40.32-58.51 43.56-63.47L43.56-63.47Q47.36-69.23 54-69.23L54-69.23Q66.97-69.23 67.82-49.65L67.82-49.65L45.74-49.65Q46.16-37.07 54.14-37.07L54.14-37.07Q60.47-37.07 62.05-44.27L62.05-44.27ZM45.95-54.26L62.05-54.26Q60.89-64.42 54-64.42L54-64.42Q47.36-64.42 45.95-54.26L45.95-54.26ZM92.81-84.07L92.81-41.53Q92.81-38.44 95.77-38.44L95.77-38.44Q98.19-38.44 101.07-39L101.07-39L101.07-33.62Q96.82-33.02 94.82-33.02L94.82-33.02Q87.19-33.02 87.19-40.51L87.19-40.51L87.19-84.07L92.81-84.07ZM128.81-84.07L128.81-41.53Q128.81-38.44 131.77-38.44L131.77-38.44Q134.19-38.44 137.07-39L137.07-39L137.07-33.62Q132.82-33.02 130.82-33.02L130.82-33.02Q123.19-33.02 123.19-40.51L123.19-40.51L123.19-84.07L128.81-84.07ZM162.07-69.23L162.07-69.23Q168.68-69.23 172.44-63.40L172.44-63.40Q175.68-58.55 175.68-50.74L175.68-50.74Q175.68-44.87 173.74-40.44L173.74-40.44Q170.16-32.21 161.93-32.21L161.93-32.21Q155.57-32.21 151.77-37.63L151.77-37.63Q148.32-42.59 148.32-50.74L148.32-50.74Q148.32-59.53 152.30-64.56L152.30-64.56Q156.09-69.23 162.07-69.23ZM161.93-64.21L161.93-64.21Q158.06-64.21 155.88-60.16L155.88-60.16Q153.95-56.61 153.95-50.74L153.95-50.74Q153.95-45.33 155.53-41.92L155.53-41.92Q157.71-37.24 162-37.24L162-37.24Q165.94-37.24 168.12-41.29L168.12-41.29Q170.05-44.84 170.05-50.67L170.05-50.67Q170.05-56.75 168.05-60.23L168.05-60.23Q165.90-64.21 161.93-64.21Z'); 99 | hello.getD({ y: 0 }, 'M5.27-3.66L5.27-54.07L10.62-54.07L10.62-34.00Q15.86-39.23 21.02-39.23L21.02-39.23Q26.89-39.23 29.60-34.07L29.60-34.07Q31.11-31.15 31.11-27L31.11-27L31.11-3.66L25.77-3.66L25.77-25.42Q25.77-34.14 20.18-34.14L20.18-34.14Q16.42-34.14 13.57-31.39L13.57-31.39Q10.62-28.44 10.62-24.64L10.62-24.64L10.62-3.66L5.27-3.66ZM62.05-14.27L67.68-14.27Q64.55-2.25 54.07-2.25L54.07-2.25Q47.57-2.25 43.77-7.66L43.77-7.66Q40.32-12.62 40.32-20.74L40.32-20.74Q40.32-28.51 43.56-33.47L43.56-33.47Q47.36-39.23 54-39.23L54-39.23Q66.97-39.23 67.82-19.65L67.82-19.65L45.74-19.65Q46.16-7.07 54.14-7.07L54.14-7.07Q60.47-7.07 62.05-14.27L62.05-14.27ZM45.95-24.26L62.05-24.26Q60.89-34.42 54-34.42L54-34.42Q47.36-34.42 45.95-24.26L45.95-24.26ZM92.81-54.07L92.81-11.53Q92.81-8.44 95.77-8.44L95.77-8.44Q98.19-8.44 101.07-9L101.07-9L101.07-3.62Q96.82-3.02 94.82-3.02L94.82-3.02Q87.19-3.02 87.19-10.51L87.19-10.51L87.19-54.07L92.81-54.07ZM128.81-54.07L128.81-11.53Q128.81-8.44 131.77-8.44L131.77-8.44Q134.19-8.44 137.07-9L137.07-9L137.07-3.62Q132.82-3.02 130.82-3.02L130.82-3.02Q123.19-3.02 123.19-10.51L123.19-10.51L123.19-54.07L128.81-54.07ZM162.07-39.23L162.07-39.23Q168.68-39.23 172.44-33.40L172.44-33.40Q175.68-28.55 175.68-20.74L175.68-20.74Q175.68-14.87 173.74-10.44L173.74-10.44Q170.16-2.21 161.93-2.21L161.93-2.21Q155.57-2.21 151.77-7.63L151.77-7.63Q148.32-12.59 148.32-20.74L148.32-20.74Q148.32-29.53 152.30-34.56L152.30-34.56Q156.09-39.23 162.07-39.23ZM161.93-34.21L161.93-34.21Q158.06-34.21 155.88-30.16L155.88-30.16Q153.95-26.61 153.95-20.74L153.95-20.74Q153.95-15.33 155.53-11.92L155.53-11.92Q157.71-7.24 162-7.24L162-7.24Q165.94-7.24 168.12-11.29L168.12-11.29Q170.05-14.84 170.05-20.67L170.05-20.67Q170.05-26.75 168.05-30.23L168.05-30.23Q165.90-34.21 161.93-34.21Z'); 100 | hello.getD({ y: 30 }, 'M5.27 26.34L5.27-24.07L10.62-24.07L10.62-4.00Q15.86-9.23 21.02-9.23L21.02-9.23Q26.89-9.23 29.60-4.07L29.60-4.07Q31.11-1.15 31.11 3L31.11 3L31.11 26.34L25.77 26.34L25.77 4.58Q25.77-4.14 20.18-4.14L20.18-4.14Q16.42-4.14 13.57-1.39L13.57-1.39Q10.62 1.56 10.62 5.36L10.62 5.36L10.62 26.34L5.27 26.34ZM62.05 15.73L67.68 15.73Q64.55 27.75 54.07 27.75L54.07 27.75Q47.57 27.75 43.77 22.34L43.77 22.34Q40.32 17.38 40.32 9.26L40.32 9.26Q40.32 1.49 43.56-3.47L43.56-3.47Q47.36-9.23 54-9.23L54-9.23Q66.97-9.23 67.82 10.35L67.82 10.35L45.74 10.35Q46.16 22.93 54.14 22.93L54.14 22.93Q60.47 22.93 62.05 15.73L62.05 15.73ZM45.95 5.74L62.05 5.74Q60.89-4.42 54-4.42L54-4.42Q47.36-4.42 45.95 5.74L45.95 5.74ZM92.81-24.07L92.81 18.47Q92.81 21.56 95.77 21.56L95.77 21.56Q98.19 21.56 101.07 21L101.07 21L101.07 26.38Q96.82 26.98 94.82 26.98L94.82 26.98Q87.19 26.98 87.19 19.49L87.19 19.49L87.19-24.07L92.81-24.07ZM128.81-24.07L128.81 18.47Q128.81 21.56 131.77 21.56L131.77 21.56Q134.19 21.56 137.07 21L137.07 21L137.07 26.38Q132.82 26.98 130.82 26.98L130.82 26.98Q123.19 26.98 123.19 19.49L123.19 19.49L123.19-24.07L128.81-24.07ZM162.07-9.23L162.07-9.23Q168.68-9.23 172.44-3.40L172.44-3.40Q175.68 1.45 175.68 9.26L175.68 9.26Q175.68 15.13 173.74 19.56L173.74 19.56Q170.16 27.79 161.93 27.79L161.93 27.79Q155.57 27.79 151.77 22.37L151.77 22.37Q148.32 17.41 148.32 9.26L148.32 9.26Q148.32 0.47 152.30-4.56L152.30-4.56Q156.09-9.23 162.07-9.23ZM161.93-4.21L161.93-4.21Q158.06-4.21 155.88-0.16L155.88-0.16Q153.95 3.39 153.95 9.26L153.95 9.26Q153.95 14.67 155.53 18.08L155.53 18.08Q157.71 22.76 162 22.76L162 22.76Q165.94 22.76 168.12 18.71L168.12 18.71Q170.05 15.16 170.05 9.33L170.05 9.33Q170.05 3.25 168.05-0.23L168.05-0.23Q165.90-4.21 161.93-4.21Z'); 101 | 102 | hello.getD({ fontSize: 10 }, 'M0.73-0.51L0.73-7.51L1.47-7.51L1.47-4.72Q2.20-5.45 2.92-5.45L2.92-5.45Q3.74-5.45 4.11-4.73L4.11-4.73Q4.32-4.33 4.32-3.75L4.32-3.75L4.32-0.51L3.58-0.51L3.58-3.53Q3.58-4.74 2.80-4.74L2.80-4.74Q2.28-4.74 1.88-4.36L1.88-4.36Q1.47-3.95 1.47-3.42L1.47-3.42L1.47-0.51L0.73-0.51ZM8.62-1.98L9.40-1.98Q8.96-0.31 7.51-0.31L7.51-0.31Q6.61-0.31 6.08-1.06L6.08-1.06Q5.60-1.75 5.60-2.88L5.60-2.88Q5.60-3.96 6.05-4.65L6.05-4.65Q6.58-5.45 7.50-5.45L7.50-5.45Q9.30-5.45 9.42-2.73L9.42-2.73L6.35-2.73Q6.41-0.98 7.52-0.98L7.52-0.98Q8.40-0.98 8.62-1.98L8.62-1.98ZM6.38-3.37L8.62-3.37Q8.46-4.78 7.50-4.78L7.50-4.78Q6.58-4.78 6.38-3.37L6.38-3.37ZM12.89-7.51L12.89-1.60Q12.89-1.17 13.30-1.17L13.30-1.17Q13.64-1.17 14.04-1.25L14.04-1.25L14.04-0.50Q13.45-0.42 13.17-0.42L13.17-0.42Q12.11-0.42 12.11-1.46L12.11-1.46L12.11-7.51L12.89-7.51ZM17.89-7.51L17.89-1.60Q17.89-1.17 18.30-1.17L18.30-1.17Q18.64-1.17 19.04-1.25L19.04-1.25L19.04-0.50Q18.45-0.42 18.17-0.42L18.17-0.42Q17.11-0.42 17.11-1.46L17.11-1.46L17.11-7.51L17.89-7.51ZM22.51-5.45L22.51-5.45Q23.43-5.45 23.95-4.64L23.95-4.64Q24.40-3.96 24.40-2.88L24.40-2.88Q24.40-2.07 24.13-1.45L24.13-1.45Q23.63-0.31 22.49-0.31L22.49-0.31Q21.61-0.31 21.08-1.06L21.08-1.06Q20.60-1.75 20.60-2.88L20.60-2.88Q20.60-4.10 21.15-4.80L21.15-4.80Q21.68-5.45 22.51-5.45ZM22.49-4.75L22.49-4.75Q21.95-4.75 21.65-4.19L21.65-4.19Q21.38-3.70 21.38-2.88L21.38-2.88Q21.38-2.13 21.60-1.66L21.60-1.66Q21.90-1.01 22.50-1.01L22.50-1.01Q23.05-1.01 23.35-1.57L23.35-1.57Q23.62-2.06 23.62-2.87L23.62-2.87Q23.62-3.72 23.34-4.20L23.34-4.20Q23.04-4.75 22.49-4.75Z'); 103 | hello.getD({ fontSize: 30 }, 'M2.20-1.52L2.20-22.53L4.42-22.53L4.42-14.17Q6.61-16.35 8.76-16.35L8.76-16.35Q11.21-16.35 12.33-14.19L12.33-14.19Q12.96-12.98 12.96-11.25L12.96-11.25L12.96-1.52L10.74-1.52L10.74-10.59Q10.74-14.22 8.41-14.22L8.41-14.22Q6.84-14.22 5.65-13.08L5.65-13.08Q4.42-11.85 4.42-10.27L4.42-10.27L4.42-1.52L2.20-1.52ZM25.85-5.95L28.20-5.95Q26.89-0.94 22.53-0.94L22.53-0.94Q19.82-0.94 18.24-3.19L18.24-3.19Q16.80-5.26 16.80-8.64L16.80-8.64Q16.80-11.88 18.15-13.95L18.15-13.95Q19.73-16.35 22.50-16.35L22.50-16.35Q27.91-16.35 28.26-8.19L28.26-8.19L19.06-8.19Q19.23-2.94 22.56-2.94L22.56-2.94Q25.20-2.94 25.85-5.95L25.85-5.95ZM19.15-10.11L25.85-10.11Q25.37-14.34 22.50-14.34L22.50-14.34Q19.73-14.34 19.15-10.11L19.15-10.11ZM38.67-22.53L38.67-4.80Q38.67-3.52 39.90-3.52L39.90-3.52Q40.91-3.52 42.11-3.75L42.11-3.75L42.11-1.51Q40.34-1.26 39.51-1.26L39.51-1.26Q36.33-1.26 36.33-4.38L36.33-4.38L36.33-22.53L38.67-22.53ZM53.67-22.53L53.67-4.80Q53.67-3.52 54.90-3.52L54.90-3.52Q55.91-3.52 57.11-3.75L57.11-3.75L57.11-1.51Q55.34-1.26 54.51-1.26L54.51-1.26Q51.33-1.26 51.33-4.38L51.33-4.38L51.33-22.53L53.67-22.53ZM67.53-16.35L67.53-16.35Q70.28-16.35 71.85-13.92L71.85-13.92Q73.20-11.89 73.20-8.64L73.20-8.64Q73.20-6.20 72.39-4.35L72.39-4.35Q70.90-0.92 67.47-0.92L67.47-0.92Q64.82-0.92 63.24-3.18L63.24-3.18Q61.80-5.24 61.80-8.64L61.80-8.64Q61.80-12.30 63.46-14.40L63.46-14.40Q65.04-16.35 67.53-16.35ZM67.47-14.25L67.47-14.25Q65.86-14.25 64.95-12.57L64.95-12.57Q64.15-11.09 64.15-8.64L64.15-8.64Q64.15-6.39 64.80-4.97L64.80-4.97Q65.71-3.02 67.50-3.02L67.50-3.02Q69.14-3.02 70.05-4.70L70.05-4.70Q70.85-6.18 70.85-8.61L70.85-8.61Q70.85-11.15 70.02-12.60L70.02-12.60Q69.13-14.25 67.47-14.25Z'); 104 | 105 | hello.getD({ kerning: false }, 'M5.27-3.66L5.27-54.07L10.62-54.07L10.62-34.00Q15.86-39.23 21.02-39.23L21.02-39.23Q26.89-39.23 29.60-34.07L29.60-34.07Q31.11-31.15 31.11-27L31.11-27L31.11-3.66L25.77-3.66L25.77-25.42Q25.77-34.14 20.18-34.14L20.18-34.14Q16.42-34.14 13.57-31.39L13.57-31.39Q10.62-28.44 10.62-24.64L10.62-24.64L10.62-3.66L5.27-3.66ZM62.05-14.27L67.68-14.27Q64.55-2.25 54.07-2.25L54.07-2.25Q47.57-2.25 43.77-7.66L43.77-7.66Q40.32-12.62 40.32-20.74L40.32-20.74Q40.32-28.51 43.56-33.47L43.56-33.47Q47.36-39.23 54-39.23L54-39.23Q66.97-39.23 67.82-19.65L67.82-19.65L45.74-19.65Q46.16-7.07 54.14-7.07L54.14-7.07Q60.47-7.07 62.05-14.27L62.05-14.27ZM45.95-24.26L62.05-24.26Q60.89-34.42 54-34.42L54-34.42Q47.36-34.42 45.95-24.26L45.95-24.26ZM92.81-54.07L92.81-11.53Q92.81-8.44 95.77-8.44L95.77-8.44Q98.19-8.44 101.07-9L101.07-9L101.07-3.62Q96.82-3.02 94.82-3.02L94.82-3.02Q87.19-3.02 87.19-10.51L87.19-10.51L87.19-54.07L92.81-54.07ZM128.81-54.07L128.81-11.53Q128.81-8.44 131.77-8.44L131.77-8.44Q134.19-8.44 137.07-9L137.07-9L137.07-3.62Q132.82-3.02 130.82-3.02L130.82-3.02Q123.19-3.02 123.19-10.51L123.19-10.51L123.19-54.07L128.81-54.07ZM162.07-39.23L162.07-39.23Q168.68-39.23 172.44-33.40L172.44-33.40Q175.68-28.55 175.68-20.74L175.68-20.74Q175.68-14.87 173.74-10.44L173.74-10.44Q170.16-2.21 161.93-2.21L161.93-2.21Q155.57-2.21 151.77-7.63L151.77-7.63Q148.32-12.59 148.32-20.74L148.32-20.74Q148.32-29.53 152.30-34.56L152.30-34.56Q156.09-39.23 162.07-39.23ZM161.93-34.21L161.93-34.21Q158.06-34.21 155.88-30.16L155.88-30.16Q153.95-26.61 153.95-20.74L153.95-20.74Q153.95-15.33 155.53-11.92L155.53-11.92Q157.71-7.24 162-7.24L162-7.24Q165.94-7.24 168.12-11.29L168.12-11.29Q170.05-14.84 170.05-20.67L170.05-20.67Q170.05-26.75 168.05-30.23L168.05-30.23Q165.90-34.21 161.93-34.21Z'); 106 | hello.getD({ kerning: true }, 'M5.27-3.66L5.27-54.07L10.62-54.07L10.62-34.00Q15.86-39.23 21.02-39.23L21.02-39.23Q26.89-39.23 29.60-34.07L29.60-34.07Q31.11-31.15 31.11-27L31.11-27L31.11-3.66L25.77-3.66L25.77-25.42Q25.77-34.14 20.18-34.14L20.18-34.14Q16.42-34.14 13.57-31.39L13.57-31.39Q10.62-28.44 10.62-24.64L10.62-24.64L10.62-3.66L5.27-3.66ZM62.05-14.27L67.68-14.27Q64.55-2.25 54.07-2.25L54.07-2.25Q47.57-2.25 43.77-7.66L43.77-7.66Q40.32-12.62 40.32-20.74L40.32-20.74Q40.32-28.51 43.56-33.47L43.56-33.47Q47.36-39.23 54-39.23L54-39.23Q66.97-39.23 67.82-19.65L67.82-19.65L45.74-19.65Q46.16-7.07 54.14-7.07L54.14-7.07Q60.47-7.07 62.05-14.27L62.05-14.27ZM45.95-24.26L62.05-24.26Q60.89-34.42 54-34.42L54-34.42Q47.36-34.42 45.95-24.26L45.95-24.26ZM92.81-54.07L92.81-11.53Q92.81-8.44 95.77-8.44L95.77-8.44Q98.19-8.44 101.07-9L101.07-9L101.07-3.62Q96.82-3.02 94.82-3.02L94.82-3.02Q87.19-3.02 87.19-10.51L87.19-10.51L87.19-54.07L92.81-54.07ZM128.81-54.07L128.81-11.53Q128.81-8.44 131.77-8.44L131.77-8.44Q134.19-8.44 137.07-9L137.07-9L137.07-3.62Q132.82-3.02 130.82-3.02L130.82-3.02Q123.19-3.02 123.19-10.51L123.19-10.51L123.19-54.07L128.81-54.07ZM162.07-39.23L162.07-39.23Q168.68-39.23 172.44-33.40L172.44-33.40Q175.68-28.55 175.68-20.74L175.68-20.74Q175.68-14.87 173.74-10.44L173.74-10.44Q170.16-2.21 161.93-2.21L161.93-2.21Q155.57-2.21 151.77-7.63L151.77-7.63Q148.32-12.59 148.32-20.74L148.32-20.74Q148.32-29.53 152.30-34.56L152.30-34.56Q156.09-39.23 162.07-39.23ZM161.93-34.21L161.93-34.21Q158.06-34.21 155.88-30.16L155.88-30.16Q153.95-26.61 153.95-20.74L153.95-20.74Q153.95-15.33 155.53-11.92L155.53-11.92Q157.71-7.24 162-7.24L162-7.24Q165.94-7.24 168.12-11.29L168.12-11.29Q170.05-14.84 170.05-20.67L170.05-20.67Q170.05-26.75 168.05-30.23L168.05-30.23Q165.90-34.21 161.93-34.21Z'); 107 | hello.getD({ letterSpacing: 0.2 }, 'M5.27-3.66L5.27-54.07L10.62-54.07L10.62-34.00Q15.86-39.23 21.02-39.23L21.02-39.23Q26.89-39.23 29.60-34.07L29.60-34.07Q31.11-31.15 31.11-27L31.11-27L31.11-3.66L25.77-3.66L25.77-25.42Q25.77-34.14 20.18-34.14L20.18-34.14Q16.42-34.14 13.57-31.39L13.57-31.39Q10.62-28.44 10.62-24.64L10.62-24.64L10.62-3.66L5.27-3.66ZM76.45-14.27L82.08-14.27Q78.95-2.25 68.47-2.25L68.47-2.25Q61.97-2.25 58.17-7.66L58.17-7.66Q54.72-12.62 54.72-20.74L54.72-20.74Q54.72-28.51 57.96-33.47L57.96-33.47Q61.76-39.23 68.40-39.23L68.40-39.23Q81.37-39.23 82.22-19.65L82.22-19.65L60.14-19.65Q60.56-7.07 68.54-7.07L68.54-7.07Q74.87-7.07 76.45-14.27L76.45-14.27ZM60.35-24.26L76.45-24.26Q75.29-34.42 68.40-34.42L68.40-34.42Q61.76-34.42 60.35-24.26L60.35-24.26ZM121.61-54.07L121.61-11.53Q121.61-8.44 124.57-8.44L124.57-8.44Q126.99-8.44 129.87-9L129.87-9L129.87-3.62Q125.62-3.02 123.62-3.02L123.62-3.02Q115.99-3.02 115.99-10.51L115.99-10.51L115.99-54.07L121.61-54.07ZM172.01-54.07L172.01-11.53Q172.01-8.44 174.97-8.44L174.97-8.44Q177.39-8.44 180.27-9L180.27-9L180.27-3.62Q176.02-3.02 174.02-3.02L174.02-3.02Q166.39-3.02 166.39-10.51L166.39-10.51L166.39-54.07L172.01-54.07ZM219.67-39.23L219.67-39.23Q226.28-39.23 230.04-33.40L230.04-33.40Q233.28-28.55 233.28-20.74L233.28-20.74Q233.28-14.87 231.34-10.44L231.34-10.44Q227.76-2.21 219.53-2.21L219.53-2.21Q213.17-2.21 209.37-7.63L209.37-7.63Q205.92-12.59 205.92-20.74L205.92-20.74Q205.92-29.53 209.90-34.56L209.90-34.56Q213.69-39.23 219.67-39.23ZM219.53-34.21L219.53-34.21Q215.66-34.21 213.48-30.16L213.48-30.16Q211.55-26.61 211.55-20.74L211.55-20.74Q211.55-15.33 213.13-11.92L213.13-11.92Q215.31-7.24 219.60-7.24L219.60-7.24Q223.54-7.24 225.72-11.29L225.72-11.29Q227.65-14.84 227.65-20.67L227.65-20.67Q227.65-26.75 225.65-30.23L225.65-30.23Q223.50-34.21 219.53-34.21Z'); 108 | hello.getD({ tracking: 200 }, 'M5.27-3.66L5.27-54.07L10.62-54.07L10.62-34.00Q15.86-39.23 21.02-39.23L21.02-39.23Q26.89-39.23 29.60-34.07L29.60-34.07Q31.11-31.15 31.11-27L31.11-27L31.11-3.66L25.77-3.66L25.77-25.42Q25.77-34.14 20.18-34.14L20.18-34.14Q16.42-34.14 13.57-31.39L13.57-31.39Q10.62-28.44 10.62-24.64L10.62-24.64L10.62-3.66L5.27-3.66ZM76.45-14.27L82.08-14.27Q78.95-2.25 68.47-2.25L68.47-2.25Q61.97-2.25 58.17-7.66L58.17-7.66Q54.72-12.62 54.72-20.74L54.72-20.74Q54.72-28.51 57.96-33.47L57.96-33.47Q61.76-39.23 68.40-39.23L68.40-39.23Q81.37-39.23 82.22-19.65L82.22-19.65L60.14-19.65Q60.56-7.07 68.54-7.07L68.54-7.07Q74.87-7.07 76.45-14.27L76.45-14.27ZM60.35-24.26L76.45-24.26Q75.29-34.42 68.40-34.42L68.40-34.42Q61.76-34.42 60.35-24.26L60.35-24.26ZM121.61-54.07L121.61-11.53Q121.61-8.44 124.57-8.44L124.57-8.44Q126.99-8.44 129.87-9L129.87-9L129.87-3.62Q125.62-3.02 123.62-3.02L123.62-3.02Q115.99-3.02 115.99-10.51L115.99-10.51L115.99-54.07L121.61-54.07ZM172.01-54.07L172.01-11.53Q172.01-8.44 174.97-8.44L174.97-8.44Q177.39-8.44 180.27-9L180.27-9L180.27-3.62Q176.02-3.02 174.02-3.02L174.02-3.02Q166.39-3.02 166.39-10.51L166.39-10.51L166.39-54.07L172.01-54.07ZM219.67-39.23L219.67-39.23Q226.28-39.23 230.04-33.40L230.04-33.40Q233.28-28.55 233.28-20.74L233.28-20.74Q233.28-14.87 231.34-10.44L231.34-10.44Q227.76-2.21 219.53-2.21L219.53-2.21Q213.17-2.21 209.37-7.63L209.37-7.63Q205.92-12.59 205.92-20.74L205.92-20.74Q205.92-29.53 209.90-34.56L209.90-34.56Q213.69-39.23 219.67-39.23ZM219.53-34.21L219.53-34.21Q215.66-34.21 213.48-30.16L213.48-30.16Q211.55-26.61 211.55-20.74L211.55-20.74Q211.55-15.33 213.13-11.92L213.13-11.92Q215.31-7.24 219.60-7.24L219.60-7.24Q223.54-7.24 225.72-11.29L225.72-11.29Q227.65-14.84 227.65-20.67L227.65-20.67Q227.65-26.75 225.65-30.23L225.65-30.23Q223.50-34.21 219.53-34.21Z'); 109 | hello.getD({ anchor: 'left' }, 'M5.27-3.66L5.27-54.07L10.62-54.07L10.62-34.00Q15.86-39.23 21.02-39.23L21.02-39.23Q26.89-39.23 29.60-34.07L29.60-34.07Q31.11-31.15 31.11-27L31.11-27L31.11-3.66L25.77-3.66L25.77-25.42Q25.77-34.14 20.18-34.14L20.18-34.14Q16.42-34.14 13.57-31.39L13.57-31.39Q10.62-28.44 10.62-24.64L10.62-24.64L10.62-3.66L5.27-3.66ZM62.05-14.27L67.68-14.27Q64.55-2.25 54.07-2.25L54.07-2.25Q47.57-2.25 43.77-7.66L43.77-7.66Q40.32-12.62 40.32-20.74L40.32-20.74Q40.32-28.51 43.56-33.47L43.56-33.47Q47.36-39.23 54-39.23L54-39.23Q66.97-39.23 67.82-19.65L67.82-19.65L45.74-19.65Q46.16-7.07 54.14-7.07L54.14-7.07Q60.47-7.07 62.05-14.27L62.05-14.27ZM45.95-24.26L62.05-24.26Q60.89-34.42 54-34.42L54-34.42Q47.36-34.42 45.95-24.26L45.95-24.26ZM92.81-54.07L92.81-11.53Q92.81-8.44 95.77-8.44L95.77-8.44Q98.19-8.44 101.07-9L101.07-9L101.07-3.62Q96.82-3.02 94.82-3.02L94.82-3.02Q87.19-3.02 87.19-10.51L87.19-10.51L87.19-54.07L92.81-54.07ZM128.81-54.07L128.81-11.53Q128.81-8.44 131.77-8.44L131.77-8.44Q134.19-8.44 137.07-9L137.07-9L137.07-3.62Q132.82-3.02 130.82-3.02L130.82-3.02Q123.19-3.02 123.19-10.51L123.19-10.51L123.19-54.07L128.81-54.07ZM162.07-39.23L162.07-39.23Q168.68-39.23 172.44-33.40L172.44-33.40Q175.68-28.55 175.68-20.74L175.68-20.74Q175.68-14.87 173.74-10.44L173.74-10.44Q170.16-2.21 161.93-2.21L161.93-2.21Q155.57-2.21 151.77-7.63L151.77-7.63Q148.32-12.59 148.32-20.74L148.32-20.74Q148.32-29.53 152.30-34.56L152.30-34.56Q156.09-39.23 162.07-39.23ZM161.93-34.21L161.93-34.21Q158.06-34.21 155.88-30.16L155.88-30.16Q153.95-26.61 153.95-20.74L153.95-20.74Q153.95-15.33 155.53-11.92L155.53-11.92Q157.71-7.24 162-7.24L162-7.24Q165.94-7.24 168.12-11.29L168.12-11.29Q170.05-14.84 170.05-20.67L170.05-20.67Q170.05-26.75 168.05-30.23L168.05-30.23Q165.90-34.21 161.93-34.21Z'); 110 | hello.getD({ anchor: 'center' }, 'M-84.73-3.66L-84.73-54.07L-79.38-54.07L-79.38-34.00Q-74.14-39.23-68.98-39.23L-68.98-39.23Q-63.11-39.23-60.40-34.07L-60.40-34.07Q-58.89-31.15-58.89-27L-58.89-27L-58.89-3.66L-64.23-3.66L-64.23-25.42Q-64.23-34.14-69.82-34.14L-69.82-34.14Q-73.58-34.14-76.43-31.39L-76.43-31.39Q-79.38-28.44-79.38-24.64L-79.38-24.64L-79.38-3.66L-84.73-3.66ZM-27.95-14.27L-22.32-14.27Q-25.45-2.25-35.93-2.25L-35.93-2.25Q-42.43-2.25-46.23-7.66L-46.23-7.66Q-49.68-12.62-49.68-20.74L-49.68-20.74Q-49.68-28.51-46.44-33.47L-46.44-33.47Q-42.64-39.23-36-39.23L-36-39.23Q-23.03-39.23-22.18-19.65L-22.18-19.65L-44.26-19.65Q-43.84-7.07-35.86-7.07L-35.86-7.07Q-29.53-7.07-27.95-14.27L-27.95-14.27ZM-44.05-24.26L-27.95-24.26Q-29.11-34.42-36-34.42L-36-34.42Q-42.64-34.42-44.05-24.26L-44.05-24.26ZM2.81-54.07L2.81-11.53Q2.81-8.44 5.77-8.44L5.77-8.44Q8.19-8.44 11.07-9L11.07-9L11.07-3.62Q6.82-3.02 4.82-3.02L4.82-3.02Q-2.81-3.02-2.81-10.51L-2.81-10.51L-2.81-54.07L2.81-54.07ZM38.81-54.07L38.81-11.53Q38.81-8.44 41.77-8.44L41.77-8.44Q44.19-8.44 47.07-9L47.07-9L47.07-3.62Q42.82-3.02 40.82-3.02L40.82-3.02Q33.19-3.02 33.19-10.51L33.19-10.51L33.19-54.07L38.81-54.07ZM72.07-39.23L72.07-39.23Q78.68-39.23 82.44-33.40L82.44-33.40Q85.68-28.55 85.68-20.74L85.68-20.74Q85.68-14.87 83.74-10.44L83.74-10.44Q80.16-2.21 71.93-2.21L71.93-2.21Q65.57-2.21 61.77-7.63L61.77-7.63Q58.32-12.59 58.32-20.74L58.32-20.74Q58.32-29.53 62.30-34.56L62.30-34.56Q66.09-39.23 72.07-39.23ZM71.93-34.21L71.93-34.21Q68.06-34.21 65.88-30.16L65.88-30.16Q63.95-26.61 63.95-20.74L63.95-20.74Q63.95-15.33 65.53-11.92L65.53-11.92Q67.71-7.24 72-7.24L72-7.24Q75.94-7.24 78.12-11.29L78.12-11.29Q80.05-14.84 80.05-20.67L80.05-20.67Q80.05-26.75 78.05-30.23L78.05-30.23Q75.90-34.21 71.93-34.21Z'); 111 | hello.getD({ anchor: 'right' }, 'M-174.73-3.66L-174.73-54.07L-169.38-54.07L-169.38-34.00Q-164.14-39.23-158.98-39.23L-158.98-39.23Q-153.11-39.23-150.40-34.07L-150.40-34.07Q-148.89-31.15-148.89-27L-148.89-27L-148.89-3.66L-154.23-3.66L-154.23-25.42Q-154.23-34.14-159.82-34.14L-159.82-34.14Q-163.58-34.14-166.43-31.39L-166.43-31.39Q-169.38-28.44-169.38-24.64L-169.38-24.64L-169.38-3.66L-174.73-3.66ZM-117.95-14.27L-112.32-14.27Q-115.45-2.25-125.93-2.25L-125.93-2.25Q-132.43-2.25-136.23-7.66L-136.23-7.66Q-139.68-12.62-139.68-20.74L-139.68-20.74Q-139.68-28.51-136.44-33.47L-136.44-33.47Q-132.64-39.23-126-39.23L-126-39.23Q-113.03-39.23-112.18-19.65L-112.18-19.65L-134.26-19.65Q-133.84-7.07-125.86-7.07L-125.86-7.07Q-119.53-7.07-117.95-14.27L-117.95-14.27ZM-134.05-24.26L-117.95-24.26Q-119.11-34.42-126-34.42L-126-34.42Q-132.64-34.42-134.05-24.26L-134.05-24.26ZM-87.19-54.07L-87.19-11.53Q-87.19-8.44-84.23-8.44L-84.23-8.44Q-81.81-8.44-78.93-9L-78.93-9L-78.93-3.62Q-83.18-3.02-85.18-3.02L-85.18-3.02Q-92.81-3.02-92.81-10.51L-92.81-10.51L-92.81-54.07L-87.19-54.07ZM-51.19-54.07L-51.19-11.53Q-51.19-8.44-48.23-8.44L-48.23-8.44Q-45.81-8.44-42.93-9L-42.93-9L-42.93-3.62Q-47.18-3.02-49.18-3.02L-49.18-3.02Q-56.81-3.02-56.81-10.51L-56.81-10.51L-56.81-54.07L-51.19-54.07ZM-17.93-39.23L-17.93-39.23Q-11.32-39.23-7.56-33.40L-7.56-33.40Q-4.32-28.55-4.32-20.74L-4.32-20.74Q-4.32-14.87-6.26-10.44L-6.26-10.44Q-9.84-2.21-18.07-2.21L-18.07-2.21Q-24.43-2.21-28.23-7.63L-28.23-7.63Q-31.68-12.59-31.68-20.74L-31.68-20.74Q-31.68-29.53-27.70-34.56L-27.70-34.56Q-23.91-39.23-17.93-39.23ZM-18.07-34.21L-18.07-34.21Q-21.94-34.21-24.12-30.16L-24.12-30.16Q-26.05-26.61-26.05-20.74L-26.05-20.74Q-26.05-15.33-24.47-11.92L-24.47-11.92Q-22.29-7.24-18-7.24L-18-7.24Q-14.06-7.24-11.88-11.29L-11.88-11.29Q-9.95-14.84-9.95-20.67L-9.95-20.67Q-9.95-26.75-11.95-30.23L-11.95-30.23Q-14.10-34.21-18.07-34.21Z'); 112 | hello.getD({ anchor: 'top' }, 'M5.27 59.70L5.27 9.28L10.62 9.28L10.62 29.36Q15.86 24.12 21.02 24.12L21.02 24.12Q26.89 24.12 29.60 29.29L29.60 29.29Q31.11 32.20 31.11 36.35L31.11 36.35L31.11 59.70L25.77 59.70L25.77 37.93Q25.77 29.21 20.18 29.21L20.18 29.21Q16.42 29.21 13.57 31.96L13.57 31.96Q10.62 34.91 10.62 38.71L10.62 38.71L10.62 59.70L5.27 59.70ZM62.05 49.08L67.68 49.08Q64.55 61.10 54.07 61.10L54.07 61.10Q47.57 61.10 43.77 55.69L43.77 55.69Q40.32 50.73 40.32 42.61L40.32 42.61Q40.32 34.84 43.56 29.88L43.56 29.88Q47.36 24.12 54 24.12L54 24.12Q66.97 24.12 67.82 43.70L67.82 43.70L45.74 43.70Q46.16 56.29 54.14 56.29L54.14 56.29Q60.47 56.29 62.05 49.08L62.05 49.08ZM45.95 39.09L62.05 39.09Q60.89 28.93 54 28.93L54 28.93Q47.36 28.93 45.95 39.09L45.95 39.09ZM92.81 9.28L92.81 51.82Q92.81 54.91 95.77 54.91L95.77 54.91Q98.19 54.91 101.07 54.35L101.07 54.35L101.07 59.73Q96.82 60.33 94.82 60.33L94.82 60.33Q87.19 60.33 87.19 52.84L87.19 52.84L87.19 9.28L92.81 9.28ZM128.81 9.28L128.81 51.82Q128.81 54.91 131.77 54.91L131.77 54.91Q134.19 54.91 137.07 54.35L137.07 54.35L137.07 59.73Q132.82 60.33 130.82 60.33L130.82 60.33Q123.19 60.33 123.19 52.84L123.19 52.84L123.19 9.28L128.81 9.28ZM162.07 24.12L162.07 24.12Q168.68 24.12 172.44 29.95L172.44 29.95Q175.68 34.80 175.68 42.61L175.68 42.61Q175.68 48.48 173.74 52.91L173.74 52.91Q170.16 61.14 161.93 61.14L161.93 61.14Q155.57 61.14 151.77 55.72L151.77 55.72Q148.32 50.77 148.32 42.61L148.32 42.61Q148.32 33.82 152.30 28.79L152.30 28.79Q156.09 24.12 162.07 24.12ZM161.93 29.14L161.93 29.14Q158.06 29.14 155.88 33.19L155.88 33.19Q153.95 36.74 153.95 42.61L153.95 42.61Q153.95 48.02 155.53 51.43L155.53 51.43Q157.71 56.11 162 56.11L162 56.11Q165.94 56.11 168.12 52.07L168.12 52.07Q170.05 48.52 170.05 42.68L170.05 42.68Q170.05 36.60 168.05 33.12L168.05 33.12Q165.90 29.14 161.93 29.14Z'); 113 | hello.getD({ anchor: 'middle' }, 'M5.27 23.70L5.27-26.72L10.62-26.72L10.62-6.64Q15.86-11.88 21.02-11.88L21.02-11.88Q26.89-11.88 29.60-6.71L29.60-6.71Q31.11-3.80 31.11 0.35L31.11 0.35L31.11 23.70L25.77 23.70L25.77 1.93Q25.77-6.79 20.18-6.79L20.18-6.79Q16.42-6.79 13.57-4.04L13.57-4.04Q10.62-1.09 10.62 2.71L10.62 2.71L10.62 23.70L5.27 23.70ZM62.05 13.08L67.68 13.08Q64.55 25.10 54.07 25.10L54.07 25.10Q47.57 25.10 43.77 19.69L43.77 19.69Q40.32 14.73 40.32 6.61L40.32 6.61Q40.32-1.16 43.56-6.12L43.56-6.12Q47.36-11.88 54-11.88L54-11.88Q66.97-11.88 67.82 7.70L67.82 7.70L45.74 7.70Q46.16 20.29 54.14 20.29L54.14 20.29Q60.47 20.29 62.05 13.08L62.05 13.08ZM45.95 3.09L62.05 3.09Q60.89-7.07 54-7.07L54-7.07Q47.36-7.07 45.95 3.09L45.95 3.09ZM92.81-26.72L92.81 15.82Q92.81 18.91 95.77 18.91L95.77 18.91Q98.19 18.91 101.07 18.35L101.07 18.35L101.07 23.73Q96.82 24.33 94.82 24.33L94.82 24.33Q87.19 24.33 87.19 16.84L87.19 16.84L87.19-26.72L92.81-26.72ZM128.81-26.72L128.81 15.82Q128.81 18.91 131.77 18.91L131.77 18.91Q134.19 18.91 137.07 18.35L137.07 18.35L137.07 23.73Q132.82 24.33 130.82 24.33L130.82 24.33Q123.19 24.33 123.19 16.84L123.19 16.84L123.19-26.72L128.81-26.72ZM162.07-11.88L162.07-11.88Q168.68-11.88 172.44-6.05L172.44-6.05Q175.68-1.20 175.68 6.61L175.68 6.61Q175.68 12.48 173.74 16.91L173.74 16.91Q170.16 25.14 161.93 25.14L161.93 25.14Q155.57 25.14 151.77 19.72L151.77 19.72Q148.32 14.77 148.32 6.61L148.32 6.61Q148.32-2.18 152.30-7.21L152.30-7.21Q156.09-11.88 162.07-11.88ZM161.93-6.86L161.93-6.86Q158.06-6.86 155.88-2.81L155.88-2.81Q153.95 0.74 153.95 6.61L153.95 6.61Q153.95 12.02 155.53 15.43L155.53 15.43Q157.71 20.11 162 20.11L162 20.11Q165.94 20.11 168.12 16.07L168.12 16.07Q170.05 12.52 170.05 6.68L170.05 6.68Q170.05 0.60 168.05-2.88L168.05-2.88Q165.90-6.86 161.93-6.86Z'); 114 | hello.getD({ anchor: 'bottom' }, 'M5.27-12.30L5.27-62.72L10.62-62.72L10.62-42.64Q15.86-47.88 21.02-47.88L21.02-47.88Q26.89-47.88 29.60-42.71L29.60-42.71Q31.11-39.80 31.11-35.65L31.11-35.65L31.11-12.30L25.77-12.30L25.77-34.07Q25.77-42.79 20.18-42.79L20.18-42.79Q16.42-42.79 13.57-40.04L13.57-40.04Q10.62-37.09 10.62-33.29L10.62-33.29L10.62-12.30L5.27-12.30ZM62.05-22.92L67.68-22.92Q64.55-10.90 54.07-10.90L54.07-10.90Q47.57-10.90 43.77-16.31L43.77-16.31Q40.32-21.27 40.32-29.39L40.32-29.39Q40.32-37.16 43.56-42.12L43.56-42.12Q47.36-47.88 54-47.88L54-47.88Q66.97-47.88 67.82-28.30L67.82-28.30L45.74-28.30Q46.16-15.71 54.14-15.71L54.14-15.71Q60.47-15.71 62.05-22.92L62.05-22.92ZM45.95-32.91L62.05-32.91Q60.89-43.07 54-43.07L54-43.07Q47.36-43.07 45.95-32.91L45.95-32.91ZM92.81-62.72L92.81-20.18Q92.81-17.09 95.77-17.09L95.77-17.09Q98.19-17.09 101.07-17.65L101.07-17.65L101.07-12.27Q96.82-11.67 94.82-11.67L94.82-11.67Q87.19-11.67 87.19-19.16L87.19-19.16L87.19-62.72L92.81-62.72ZM128.81-62.72L128.81-20.18Q128.81-17.09 131.77-17.09L131.77-17.09Q134.19-17.09 137.07-17.65L137.07-17.65L137.07-12.27Q132.82-11.67 130.82-11.67L130.82-11.67Q123.19-11.67 123.19-19.16L123.19-19.16L123.19-62.72L128.81-62.72ZM162.07-47.88L162.07-47.88Q168.68-47.88 172.44-42.05L172.44-42.05Q175.68-37.20 175.68-29.39L175.68-29.39Q175.68-23.52 173.74-19.09L173.74-19.09Q170.16-10.86 161.93-10.86L161.93-10.86Q155.57-10.86 151.77-16.28L151.77-16.28Q148.32-21.23 148.32-29.39L148.32-29.39Q148.32-38.18 152.30-43.21L152.30-43.21Q156.09-47.88 162.07-47.88ZM161.93-42.86L161.93-42.86Q158.06-42.86 155.88-38.81L155.88-38.81Q153.95-35.26 153.95-29.39L153.95-29.39Q153.95-23.98 155.53-20.57L155.53-20.57Q157.71-15.89 162-15.89L162-15.89Q165.94-15.89 168.12-19.93L168.12-19.93Q170.05-23.48 170.05-29.32L170.05-29.32Q170.05-35.40 168.05-38.88L168.05-38.88Q165.90-42.86 161.93-42.86Z'); 115 | hello.getD({ anchor: 'left top' }, 'M5.27 59.70L5.27 9.28L10.62 9.28L10.62 29.36Q15.86 24.12 21.02 24.12L21.02 24.12Q26.89 24.12 29.60 29.29L29.60 29.29Q31.11 32.20 31.11 36.35L31.11 36.35L31.11 59.70L25.77 59.70L25.77 37.93Q25.77 29.21 20.18 29.21L20.18 29.21Q16.42 29.21 13.57 31.96L13.57 31.96Q10.62 34.91 10.62 38.71L10.62 38.71L10.62 59.70L5.27 59.70ZM62.05 49.08L67.68 49.08Q64.55 61.10 54.07 61.10L54.07 61.10Q47.57 61.10 43.77 55.69L43.77 55.69Q40.32 50.73 40.32 42.61L40.32 42.61Q40.32 34.84 43.56 29.88L43.56 29.88Q47.36 24.12 54 24.12L54 24.12Q66.97 24.12 67.82 43.70L67.82 43.70L45.74 43.70Q46.16 56.29 54.14 56.29L54.14 56.29Q60.47 56.29 62.05 49.08L62.05 49.08ZM45.95 39.09L62.05 39.09Q60.89 28.93 54 28.93L54 28.93Q47.36 28.93 45.95 39.09L45.95 39.09ZM92.81 9.28L92.81 51.82Q92.81 54.91 95.77 54.91L95.77 54.91Q98.19 54.91 101.07 54.35L101.07 54.35L101.07 59.73Q96.82 60.33 94.82 60.33L94.82 60.33Q87.19 60.33 87.19 52.84L87.19 52.84L87.19 9.28L92.81 9.28ZM128.81 9.28L128.81 51.82Q128.81 54.91 131.77 54.91L131.77 54.91Q134.19 54.91 137.07 54.35L137.07 54.35L137.07 59.73Q132.82 60.33 130.82 60.33L130.82 60.33Q123.19 60.33 123.19 52.84L123.19 52.84L123.19 9.28L128.81 9.28ZM162.07 24.12L162.07 24.12Q168.68 24.12 172.44 29.95L172.44 29.95Q175.68 34.80 175.68 42.61L175.68 42.61Q175.68 48.48 173.74 52.91L173.74 52.91Q170.16 61.14 161.93 61.14L161.93 61.14Q155.57 61.14 151.77 55.72L151.77 55.72Q148.32 50.77 148.32 42.61L148.32 42.61Q148.32 33.82 152.30 28.79L152.30 28.79Q156.09 24.12 162.07 24.12ZM161.93 29.14L161.93 29.14Q158.06 29.14 155.88 33.19L155.88 33.19Q153.95 36.74 153.95 42.61L153.95 42.61Q153.95 48.02 155.53 51.43L155.53 51.43Q157.71 56.11 162 56.11L162 56.11Q165.94 56.11 168.12 52.07L168.12 52.07Q170.05 48.52 170.05 42.68L170.05 42.68Q170.05 36.60 168.05 33.12L168.05 33.12Q165.90 29.14 161.93 29.14Z'); 116 | hello.getD({ anchor: 'left middle' }, 'M5.27 23.70L5.27-26.72L10.62-26.72L10.62-6.64Q15.86-11.88 21.02-11.88L21.02-11.88Q26.89-11.88 29.60-6.71L29.60-6.71Q31.11-3.80 31.11 0.35L31.11 0.35L31.11 23.70L25.77 23.70L25.77 1.93Q25.77-6.79 20.18-6.79L20.18-6.79Q16.42-6.79 13.57-4.04L13.57-4.04Q10.62-1.09 10.62 2.71L10.62 2.71L10.62 23.70L5.27 23.70ZM62.05 13.08L67.68 13.08Q64.55 25.10 54.07 25.10L54.07 25.10Q47.57 25.10 43.77 19.69L43.77 19.69Q40.32 14.73 40.32 6.61L40.32 6.61Q40.32-1.16 43.56-6.12L43.56-6.12Q47.36-11.88 54-11.88L54-11.88Q66.97-11.88 67.82 7.70L67.82 7.70L45.74 7.70Q46.16 20.29 54.14 20.29L54.14 20.29Q60.47 20.29 62.05 13.08L62.05 13.08ZM45.95 3.09L62.05 3.09Q60.89-7.07 54-7.07L54-7.07Q47.36-7.07 45.95 3.09L45.95 3.09ZM92.81-26.72L92.81 15.82Q92.81 18.91 95.77 18.91L95.77 18.91Q98.19 18.91 101.07 18.35L101.07 18.35L101.07 23.73Q96.82 24.33 94.82 24.33L94.82 24.33Q87.19 24.33 87.19 16.84L87.19 16.84L87.19-26.72L92.81-26.72ZM128.81-26.72L128.81 15.82Q128.81 18.91 131.77 18.91L131.77 18.91Q134.19 18.91 137.07 18.35L137.07 18.35L137.07 23.73Q132.82 24.33 130.82 24.33L130.82 24.33Q123.19 24.33 123.19 16.84L123.19 16.84L123.19-26.72L128.81-26.72ZM162.07-11.88L162.07-11.88Q168.68-11.88 172.44-6.05L172.44-6.05Q175.68-1.20 175.68 6.61L175.68 6.61Q175.68 12.48 173.74 16.91L173.74 16.91Q170.16 25.14 161.93 25.14L161.93 25.14Q155.57 25.14 151.77 19.72L151.77 19.72Q148.32 14.77 148.32 6.61L148.32 6.61Q148.32-2.18 152.30-7.21L152.30-7.21Q156.09-11.88 162.07-11.88ZM161.93-6.86L161.93-6.86Q158.06-6.86 155.88-2.81L155.88-2.81Q153.95 0.74 153.95 6.61L153.95 6.61Q153.95 12.02 155.53 15.43L155.53 15.43Q157.71 20.11 162 20.11L162 20.11Q165.94 20.11 168.12 16.07L168.12 16.07Q170.05 12.52 170.05 6.68L170.05 6.68Q170.05 0.60 168.05-2.88L168.05-2.88Q165.90-6.86 161.93-6.86Z'); 117 | hello.getD({ anchor: 'left bottom' }, 'M5.27-12.30L5.27-62.72L10.62-62.72L10.62-42.64Q15.86-47.88 21.02-47.88L21.02-47.88Q26.89-47.88 29.60-42.71L29.60-42.71Q31.11-39.80 31.11-35.65L31.11-35.65L31.11-12.30L25.77-12.30L25.77-34.07Q25.77-42.79 20.18-42.79L20.18-42.79Q16.42-42.79 13.57-40.04L13.57-40.04Q10.62-37.09 10.62-33.29L10.62-33.29L10.62-12.30L5.27-12.30ZM62.05-22.92L67.68-22.92Q64.55-10.90 54.07-10.90L54.07-10.90Q47.57-10.90 43.77-16.31L43.77-16.31Q40.32-21.27 40.32-29.39L40.32-29.39Q40.32-37.16 43.56-42.12L43.56-42.12Q47.36-47.88 54-47.88L54-47.88Q66.97-47.88 67.82-28.30L67.82-28.30L45.74-28.30Q46.16-15.71 54.14-15.71L54.14-15.71Q60.47-15.71 62.05-22.92L62.05-22.92ZM45.95-32.91L62.05-32.91Q60.89-43.07 54-43.07L54-43.07Q47.36-43.07 45.95-32.91L45.95-32.91ZM92.81-62.72L92.81-20.18Q92.81-17.09 95.77-17.09L95.77-17.09Q98.19-17.09 101.07-17.65L101.07-17.65L101.07-12.27Q96.82-11.67 94.82-11.67L94.82-11.67Q87.19-11.67 87.19-19.16L87.19-19.16L87.19-62.72L92.81-62.72ZM128.81-62.72L128.81-20.18Q128.81-17.09 131.77-17.09L131.77-17.09Q134.19-17.09 137.07-17.65L137.07-17.65L137.07-12.27Q132.82-11.67 130.82-11.67L130.82-11.67Q123.19-11.67 123.19-19.16L123.19-19.16L123.19-62.72L128.81-62.72ZM162.07-47.88L162.07-47.88Q168.68-47.88 172.44-42.05L172.44-42.05Q175.68-37.20 175.68-29.39L175.68-29.39Q175.68-23.52 173.74-19.09L173.74-19.09Q170.16-10.86 161.93-10.86L161.93-10.86Q155.57-10.86 151.77-16.28L151.77-16.28Q148.32-21.23 148.32-29.39L148.32-29.39Q148.32-38.18 152.30-43.21L152.30-43.21Q156.09-47.88 162.07-47.88ZM161.93-42.86L161.93-42.86Q158.06-42.86 155.88-38.81L155.88-38.81Q153.95-35.26 153.95-29.39L153.95-29.39Q153.95-23.98 155.53-20.57L155.53-20.57Q157.71-15.89 162-15.89L162-15.89Q165.94-15.89 168.12-19.93L168.12-19.93Q170.05-23.48 170.05-29.32L170.05-29.32Q170.05-35.40 168.05-38.88L168.05-38.88Q165.90-42.86 161.93-42.86Z'); 118 | hello.getD({ anchor: 'center top' }, 'M-84.73 59.70L-84.73 9.28L-79.38 9.28L-79.38 29.36Q-74.14 24.12-68.98 24.12L-68.98 24.12Q-63.11 24.12-60.40 29.29L-60.40 29.29Q-58.89 32.20-58.89 36.35L-58.89 36.35L-58.89 59.70L-64.23 59.70L-64.23 37.93Q-64.23 29.21-69.82 29.21L-69.82 29.21Q-73.58 29.21-76.43 31.96L-76.43 31.96Q-79.38 34.91-79.38 38.71L-79.38 38.71L-79.38 59.70L-84.73 59.70ZM-27.95 49.08L-22.32 49.08Q-25.45 61.10-35.93 61.10L-35.93 61.10Q-42.43 61.10-46.23 55.69L-46.23 55.69Q-49.68 50.73-49.68 42.61L-49.68 42.61Q-49.68 34.84-46.44 29.88L-46.44 29.88Q-42.64 24.12-36 24.12L-36 24.12Q-23.03 24.12-22.18 43.70L-22.18 43.70L-44.26 43.70Q-43.84 56.29-35.86 56.29L-35.86 56.29Q-29.53 56.29-27.95 49.08L-27.95 49.08ZM-44.05 39.09L-27.95 39.09Q-29.11 28.93-36 28.93L-36 28.93Q-42.64 28.93-44.05 39.09L-44.05 39.09ZM2.81 9.28L2.81 51.82Q2.81 54.91 5.77 54.91L5.77 54.91Q8.19 54.91 11.07 54.35L11.07 54.35L11.07 59.73Q6.82 60.33 4.82 60.33L4.82 60.33Q-2.81 60.33-2.81 52.84L-2.81 52.84L-2.81 9.28L2.81 9.28ZM38.81 9.28L38.81 51.82Q38.81 54.91 41.77 54.91L41.77 54.91Q44.19 54.91 47.07 54.35L47.07 54.35L47.07 59.73Q42.82 60.33 40.82 60.33L40.82 60.33Q33.19 60.33 33.19 52.84L33.19 52.84L33.19 9.28L38.81 9.28ZM72.07 24.12L72.07 24.12Q78.68 24.12 82.44 29.95L82.44 29.95Q85.68 34.80 85.68 42.61L85.68 42.61Q85.68 48.48 83.74 52.91L83.74 52.91Q80.16 61.14 71.93 61.14L71.93 61.14Q65.57 61.14 61.77 55.72L61.77 55.72Q58.32 50.77 58.32 42.61L58.32 42.61Q58.32 33.82 62.30 28.79L62.30 28.79Q66.09 24.12 72.07 24.12ZM71.93 29.14L71.93 29.14Q68.06 29.14 65.88 33.19L65.88 33.19Q63.95 36.74 63.95 42.61L63.95 42.61Q63.95 48.02 65.53 51.43L65.53 51.43Q67.71 56.11 72 56.11L72 56.11Q75.94 56.11 78.12 52.07L78.12 52.07Q80.05 48.52 80.05 42.68L80.05 42.68Q80.05 36.60 78.05 33.12L78.05 33.12Q75.90 29.14 71.93 29.14Z'); 119 | hello.getD({ anchor: 'center middle' }, 'M-84.73 23.70L-84.73-26.72L-79.38-26.72L-79.38-6.64Q-74.14-11.88-68.98-11.88L-68.98-11.88Q-63.11-11.88-60.40-6.71L-60.40-6.71Q-58.89-3.80-58.89 0.35L-58.89 0.35L-58.89 23.70L-64.23 23.70L-64.23 1.93Q-64.23-6.79-69.82-6.79L-69.82-6.79Q-73.58-6.79-76.43-4.04L-76.43-4.04Q-79.38-1.09-79.38 2.71L-79.38 2.71L-79.38 23.70L-84.73 23.70ZM-27.95 13.08L-22.32 13.08Q-25.45 25.10-35.93 25.10L-35.93 25.10Q-42.43 25.10-46.23 19.69L-46.23 19.69Q-49.68 14.73-49.68 6.61L-49.68 6.61Q-49.68-1.16-46.44-6.12L-46.44-6.12Q-42.64-11.88-36-11.88L-36-11.88Q-23.03-11.88-22.18 7.70L-22.18 7.70L-44.26 7.70Q-43.84 20.29-35.86 20.29L-35.86 20.29Q-29.53 20.29-27.95 13.08L-27.95 13.08ZM-44.05 3.09L-27.95 3.09Q-29.11-7.07-36-7.07L-36-7.07Q-42.64-7.07-44.05 3.09L-44.05 3.09ZM2.81-26.72L2.81 15.82Q2.81 18.91 5.77 18.91L5.77 18.91Q8.19 18.91 11.07 18.35L11.07 18.35L11.07 23.73Q6.82 24.33 4.82 24.33L4.82 24.33Q-2.81 24.33-2.81 16.84L-2.81 16.84L-2.81-26.72L2.81-26.72ZM38.81-26.72L38.81 15.82Q38.81 18.91 41.77 18.91L41.77 18.91Q44.19 18.91 47.07 18.35L47.07 18.35L47.07 23.73Q42.82 24.33 40.82 24.33L40.82 24.33Q33.19 24.33 33.19 16.84L33.19 16.84L33.19-26.72L38.81-26.72ZM72.07-11.88L72.07-11.88Q78.68-11.88 82.44-6.05L82.44-6.05Q85.68-1.20 85.68 6.61L85.68 6.61Q85.68 12.48 83.74 16.91L83.74 16.91Q80.16 25.14 71.93 25.14L71.93 25.14Q65.57 25.14 61.77 19.72L61.77 19.72Q58.32 14.77 58.32 6.61L58.32 6.61Q58.32-2.18 62.30-7.21L62.30-7.21Q66.09-11.88 72.07-11.88ZM71.93-6.86L71.93-6.86Q68.06-6.86 65.88-2.81L65.88-2.81Q63.95 0.74 63.95 6.61L63.95 6.61Q63.95 12.02 65.53 15.43L65.53 15.43Q67.71 20.11 72 20.11L72 20.11Q75.94 20.11 78.12 16.07L78.12 16.07Q80.05 12.52 80.05 6.68L80.05 6.68Q80.05 0.60 78.05-2.88L78.05-2.88Q75.90-6.86 71.93-6.86Z'); 120 | hello.getD({ anchor: 'center bottom' }, 'M-84.73-12.30L-84.73-62.72L-79.38-62.72L-79.38-42.64Q-74.14-47.88-68.98-47.88L-68.98-47.88Q-63.11-47.88-60.40-42.71L-60.40-42.71Q-58.89-39.80-58.89-35.65L-58.89-35.65L-58.89-12.30L-64.23-12.30L-64.23-34.07Q-64.23-42.79-69.82-42.79L-69.82-42.79Q-73.58-42.79-76.43-40.04L-76.43-40.04Q-79.38-37.09-79.38-33.29L-79.38-33.29L-79.38-12.30L-84.73-12.30ZM-27.95-22.92L-22.32-22.92Q-25.45-10.90-35.93-10.90L-35.93-10.90Q-42.43-10.90-46.23-16.31L-46.23-16.31Q-49.68-21.27-49.68-29.39L-49.68-29.39Q-49.68-37.16-46.44-42.12L-46.44-42.12Q-42.64-47.88-36-47.88L-36-47.88Q-23.03-47.88-22.18-28.30L-22.18-28.30L-44.26-28.30Q-43.84-15.71-35.86-15.71L-35.86-15.71Q-29.53-15.71-27.95-22.92L-27.95-22.92ZM-44.05-32.91L-27.95-32.91Q-29.11-43.07-36-43.07L-36-43.07Q-42.64-43.07-44.05-32.91L-44.05-32.91ZM2.81-62.72L2.81-20.18Q2.81-17.09 5.77-17.09L5.77-17.09Q8.19-17.09 11.07-17.65L11.07-17.65L11.07-12.27Q6.82-11.67 4.82-11.67L4.82-11.67Q-2.81-11.67-2.81-19.16L-2.81-19.16L-2.81-62.72L2.81-62.72ZM38.81-62.72L38.81-20.18Q38.81-17.09 41.77-17.09L41.77-17.09Q44.19-17.09 47.07-17.65L47.07-17.65L47.07-12.27Q42.82-11.67 40.82-11.67L40.82-11.67Q33.19-11.67 33.19-19.16L33.19-19.16L33.19-62.72L38.81-62.72ZM72.07-47.88L72.07-47.88Q78.68-47.88 82.44-42.05L82.44-42.05Q85.68-37.20 85.68-29.39L85.68-29.39Q85.68-23.52 83.74-19.09L83.74-19.09Q80.16-10.86 71.93-10.86L71.93-10.86Q65.57-10.86 61.77-16.28L61.77-16.28Q58.32-21.23 58.32-29.39L58.32-29.39Q58.32-38.18 62.30-43.21L62.30-43.21Q66.09-47.88 72.07-47.88ZM71.93-42.86L71.93-42.86Q68.06-42.86 65.88-38.81L65.88-38.81Q63.95-35.26 63.95-29.39L63.95-29.39Q63.95-23.98 65.53-20.57L65.53-20.57Q67.71-15.89 72-15.89L72-15.89Q75.94-15.89 78.12-19.93L78.12-19.93Q80.05-23.48 80.05-29.32L80.05-29.32Q80.05-35.40 78.05-38.88L78.05-38.88Q75.90-42.86 71.93-42.86Z'); 121 | hello.getD({ anchor: 'right top' }, 'M-174.73 59.70L-174.73 9.28L-169.38 9.28L-169.38 29.36Q-164.14 24.12-158.98 24.12L-158.98 24.12Q-153.11 24.12-150.40 29.29L-150.40 29.29Q-148.89 32.20-148.89 36.35L-148.89 36.35L-148.89 59.70L-154.23 59.70L-154.23 37.93Q-154.23 29.21-159.82 29.21L-159.82 29.21Q-163.58 29.21-166.43 31.96L-166.43 31.96Q-169.38 34.91-169.38 38.71L-169.38 38.71L-169.38 59.70L-174.73 59.70ZM-117.95 49.08L-112.32 49.08Q-115.45 61.10-125.93 61.10L-125.93 61.10Q-132.43 61.10-136.23 55.69L-136.23 55.69Q-139.68 50.73-139.68 42.61L-139.68 42.61Q-139.68 34.84-136.44 29.88L-136.44 29.88Q-132.64 24.12-126 24.12L-126 24.12Q-113.03 24.12-112.18 43.70L-112.18 43.70L-134.26 43.70Q-133.84 56.29-125.86 56.29L-125.86 56.29Q-119.53 56.29-117.95 49.08L-117.95 49.08ZM-134.05 39.09L-117.95 39.09Q-119.11 28.93-126 28.93L-126 28.93Q-132.64 28.93-134.05 39.09L-134.05 39.09ZM-87.19 9.28L-87.19 51.82Q-87.19 54.91-84.23 54.91L-84.23 54.91Q-81.81 54.91-78.93 54.35L-78.93 54.35L-78.93 59.73Q-83.18 60.33-85.18 60.33L-85.18 60.33Q-92.81 60.33-92.81 52.84L-92.81 52.84L-92.81 9.28L-87.19 9.28ZM-51.19 9.28L-51.19 51.82Q-51.19 54.91-48.23 54.91L-48.23 54.91Q-45.81 54.91-42.93 54.35L-42.93 54.35L-42.93 59.73Q-47.18 60.33-49.18 60.33L-49.18 60.33Q-56.81 60.33-56.81 52.84L-56.81 52.84L-56.81 9.28L-51.19 9.28ZM-17.93 24.12L-17.93 24.12Q-11.32 24.12-7.56 29.95L-7.56 29.95Q-4.32 34.80-4.32 42.61L-4.32 42.61Q-4.32 48.48-6.26 52.91L-6.26 52.91Q-9.84 61.14-18.07 61.14L-18.07 61.14Q-24.43 61.14-28.23 55.72L-28.23 55.72Q-31.68 50.77-31.68 42.61L-31.68 42.61Q-31.68 33.82-27.70 28.79L-27.70 28.79Q-23.91 24.12-17.93 24.12ZM-18.07 29.14L-18.07 29.14Q-21.94 29.14-24.12 33.19L-24.12 33.19Q-26.05 36.74-26.05 42.61L-26.05 42.61Q-26.05 48.02-24.47 51.43L-24.47 51.43Q-22.29 56.11-18 56.11L-18 56.11Q-14.06 56.11-11.88 52.07L-11.88 52.07Q-9.95 48.52-9.95 42.68L-9.95 42.68Q-9.95 36.60-11.95 33.12L-11.95 33.12Q-14.10 29.14-18.07 29.14Z'); 122 | hello.getD({ anchor: 'right middle' }, 'M-174.73 23.70L-174.73-26.72L-169.38-26.72L-169.38-6.64Q-164.14-11.88-158.98-11.88L-158.98-11.88Q-153.11-11.88-150.40-6.71L-150.40-6.71Q-148.89-3.80-148.89 0.35L-148.89 0.35L-148.89 23.70L-154.23 23.70L-154.23 1.93Q-154.23-6.79-159.82-6.79L-159.82-6.79Q-163.58-6.79-166.43-4.04L-166.43-4.04Q-169.38-1.09-169.38 2.71L-169.38 2.71L-169.38 23.70L-174.73 23.70ZM-117.95 13.08L-112.32 13.08Q-115.45 25.10-125.93 25.10L-125.93 25.10Q-132.43 25.10-136.23 19.69L-136.23 19.69Q-139.68 14.73-139.68 6.61L-139.68 6.61Q-139.68-1.16-136.44-6.12L-136.44-6.12Q-132.64-11.88-126-11.88L-126-11.88Q-113.03-11.88-112.18 7.70L-112.18 7.70L-134.26 7.70Q-133.84 20.29-125.86 20.29L-125.86 20.29Q-119.53 20.29-117.95 13.08L-117.95 13.08ZM-134.05 3.09L-117.95 3.09Q-119.11-7.07-126-7.07L-126-7.07Q-132.64-7.07-134.05 3.09L-134.05 3.09ZM-87.19-26.72L-87.19 15.82Q-87.19 18.91-84.23 18.91L-84.23 18.91Q-81.81 18.91-78.93 18.35L-78.93 18.35L-78.93 23.73Q-83.18 24.33-85.18 24.33L-85.18 24.33Q-92.81 24.33-92.81 16.84L-92.81 16.84L-92.81-26.72L-87.19-26.72ZM-51.19-26.72L-51.19 15.82Q-51.19 18.91-48.23 18.91L-48.23 18.91Q-45.81 18.91-42.93 18.35L-42.93 18.35L-42.93 23.73Q-47.18 24.33-49.18 24.33L-49.18 24.33Q-56.81 24.33-56.81 16.84L-56.81 16.84L-56.81-26.72L-51.19-26.72ZM-17.93-11.88L-17.93-11.88Q-11.32-11.88-7.56-6.05L-7.56-6.05Q-4.32-1.20-4.32 6.61L-4.32 6.61Q-4.32 12.48-6.26 16.91L-6.26 16.91Q-9.84 25.14-18.07 25.14L-18.07 25.14Q-24.43 25.14-28.23 19.72L-28.23 19.72Q-31.68 14.77-31.68 6.61L-31.68 6.61Q-31.68-2.18-27.70-7.21L-27.70-7.21Q-23.91-11.88-17.93-11.88ZM-18.07-6.86L-18.07-6.86Q-21.94-6.86-24.12-2.81L-24.12-2.81Q-26.05 0.74-26.05 6.61L-26.05 6.61Q-26.05 12.02-24.47 15.43L-24.47 15.43Q-22.29 20.11-18 20.11L-18 20.11Q-14.06 20.11-11.88 16.07L-11.88 16.07Q-9.95 12.52-9.95 6.68L-9.95 6.68Q-9.95 0.60-11.95-2.88L-11.95-2.88Q-14.10-6.86-18.07-6.86Z'); 123 | hello.getD({ anchor: 'right bottom' }, 'M-174.73-12.30L-174.73-62.72L-169.38-62.72L-169.38-42.64Q-164.14-47.88-158.98-47.88L-158.98-47.88Q-153.11-47.88-150.40-42.71L-150.40-42.71Q-148.89-39.80-148.89-35.65L-148.89-35.65L-148.89-12.30L-154.23-12.30L-154.23-34.07Q-154.23-42.79-159.82-42.79L-159.82-42.79Q-163.58-42.79-166.43-40.04L-166.43-40.04Q-169.38-37.09-169.38-33.29L-169.38-33.29L-169.38-12.30L-174.73-12.30ZM-117.95-22.92L-112.32-22.92Q-115.45-10.90-125.93-10.90L-125.93-10.90Q-132.43-10.90-136.23-16.31L-136.23-16.31Q-139.68-21.27-139.68-29.39L-139.68-29.39Q-139.68-37.16-136.44-42.12L-136.44-42.12Q-132.64-47.88-126-47.88L-126-47.88Q-113.03-47.88-112.18-28.30L-112.18-28.30L-134.26-28.30Q-133.84-15.71-125.86-15.71L-125.86-15.71Q-119.53-15.71-117.95-22.92L-117.95-22.92ZM-134.05-32.91L-117.95-32.91Q-119.11-43.07-126-43.07L-126-43.07Q-132.64-43.07-134.05-32.91L-134.05-32.91ZM-87.19-62.72L-87.19-20.18Q-87.19-17.09-84.23-17.09L-84.23-17.09Q-81.81-17.09-78.93-17.65L-78.93-17.65L-78.93-12.27Q-83.18-11.67-85.18-11.67L-85.18-11.67Q-92.81-11.67-92.81-19.16L-92.81-19.16L-92.81-62.72L-87.19-62.72ZM-51.19-62.72L-51.19-20.18Q-51.19-17.09-48.23-17.09L-48.23-17.09Q-45.81-17.09-42.93-17.65L-42.93-17.65L-42.93-12.27Q-47.18-11.67-49.18-11.67L-49.18-11.67Q-56.81-11.67-56.81-19.16L-56.81-19.16L-56.81-62.72L-51.19-62.72ZM-17.93-47.88L-17.93-47.88Q-11.32-47.88-7.56-42.05L-7.56-42.05Q-4.32-37.20-4.32-29.39L-4.32-29.39Q-4.32-23.52-6.26-19.09L-6.26-19.09Q-9.84-10.86-18.07-10.86L-18.07-10.86Q-24.43-10.86-28.23-16.28L-28.23-16.28Q-31.68-21.23-31.68-29.39L-31.68-29.39Q-31.68-38.18-27.70-43.21L-27.70-43.21Q-23.91-47.88-17.93-47.88ZM-18.07-42.86L-18.07-42.86Q-21.94-42.86-24.12-38.81L-24.12-38.81Q-26.05-35.26-26.05-29.39L-26.05-29.39Q-26.05-23.98-24.47-20.57L-24.47-20.57Q-22.29-15.89-18-15.89L-18-15.89Q-14.06-15.89-11.88-19.93L-11.88-19.93Q-9.95-23.48-9.95-29.32L-9.95-29.32Q-9.95-35.40-11.95-38.88L-11.95-38.88Q-14.10-42.86-18.07-42.86Z'); 124 | 125 | hello.getPath({ x: 0, y: 0, fontSize: 72, anchor: 'top', attributes: { fill: 'red', stroke: 'black' } }, ''); 126 | hello.getSVG({ x: 0, y: 0, fontSize: 72, anchor: 'top', attributes: { fill: 'red', stroke: 'black' } }, ''); 127 | }); 128 | 129 | describe('宇治', () => { 130 | const uji = new TextToSVGTest('宇治'); 131 | 132 | uji.getD({}, 'M38.46-59.77L38.46-49.82L65.00-49.82L65.00-35.37L59.59-35.37L59.59-45.28L12.27-45.28L12.27-35.37L6.93-35.37L6.93-49.82L32.98-49.82L32.98-59.77L38.46-59.77ZM56.46-32.63L39.13-32.63L39.13-21.83L67.68-21.83L67.68-17.16L39.13-17.16L39.13 0Q39.13 3.06 37.62 4.22L37.62 4.22Q36.35 5.17 32.98 5.17L32.98 5.17Q28.44 5.17 22.82 4.54L22.82 4.54L22.04-0.81Q28.41 0.07 31.68 0.07L31.68 0.07Q33.79 0.07 33.79-1.72L33.79-1.72L33.79-17.16L4.39-17.16L4.39-21.83L33.79-21.83L33.79-32.63L15.47-32.63L15.47-37.30L56.46-37.30L56.46-32.63ZM101.57-34.07L101.57-34.07L102.23-35.12Q108.14-45.88 112.18-58.39L112.18-58.39L117.77-56.74Q112.96-44.19 107.47-34.77L107.47-34.77L107.19-34.28L107.93-34.28Q114.79-34.56 122.45-35.30L122.45-35.30L128.88-35.79Q125.30-40.75 120.87-45.28L120.87-45.28L125.12-47.81Q133.59-38.64 139.25-30.45L139.25-30.45L134.86-26.93Q132.47-30.59 131.77-31.68L131.77-31.68L129.80-31.46Q117.18-29.85 95.91-28.65L95.91-28.65L93.87-33.86Q99.67-33.96 101.57-34.07ZM99.91-23.70L133.49-23.70L133.49 5.03L128.39 5.03L128.39 1.16L105.01 1.16L105.01 5.03L99.91 5.03L99.91-23.70ZM128.39-19.30L105.01-19.30L105.01-3.30L128.39-3.30L128.39-19.30ZM95.70-46.51L91.79-42.19Q86.80-48.27 80.86-52.70L80.86-52.70L84.52-56.74Q90.14-52.70 95.70-46.51L95.70-46.51ZM92.00-29.88L88.10-25.56Q82.93-31.39 76.89-35.86L76.89-35.86L80.54-39.90Q87.01-35.30 92.00-29.88L92.00-29.88ZM81.42 4.46L77.17-0.14Q85.04-9.42 91.23-21.73L91.23-21.73L95.03-18.14Q88.63-4.89 81.42 4.46L81.42 4.46Z'); 133 | 134 | uji.getD({ x: -30 }, 'M8.46-59.77L8.46-49.82L35.00-49.82L35.00-35.37L29.59-35.37L29.59-45.28L-17.73-45.28L-17.73-35.37L-23.07-35.37L-23.07-49.82L2.98-49.82L2.98-59.77L8.46-59.77ZM26.46-32.63L9.13-32.63L9.13-21.83L37.68-21.83L37.68-17.16L9.13-17.16L9.13 0Q9.13 3.06 7.62 4.22L7.62 4.22Q6.35 5.17 2.98 5.17L2.98 5.17Q-1.56 5.17-7.18 4.54L-7.18 4.54L-7.96-0.81Q-1.59 0.07 1.68 0.07L1.68 0.07Q3.79 0.07 3.79-1.72L3.79-1.72L3.79-17.16L-25.61-17.16L-25.61-21.83L3.79-21.83L3.79-32.63L-14.53-32.63L-14.53-37.30L26.46-37.30L26.46-32.63ZM71.57-34.07L71.57-34.07L72.23-35.12Q78.14-45.88 82.18-58.39L82.18-58.39L87.77-56.74Q82.96-44.19 77.47-34.77L77.47-34.77L77.19-34.28L77.93-34.28Q84.79-34.56 92.45-35.30L92.45-35.30L98.88-35.79Q95.30-40.75 90.87-45.28L90.87-45.28L95.12-47.81Q103.59-38.64 109.25-30.45L109.25-30.45L104.86-26.93Q102.47-30.59 101.77-31.68L101.77-31.68L99.80-31.46Q87.18-29.85 65.91-28.65L65.91-28.65L63.87-33.86Q69.67-33.96 71.57-34.07ZM69.91-23.70L103.49-23.70L103.49 5.03L98.39 5.03L98.39 1.16L75.01 1.16L75.01 5.03L69.91 5.03L69.91-23.70ZM98.39-19.30L75.01-19.30L75.01-3.30L98.39-3.30L98.39-19.30ZM65.70-46.51L61.79-42.19Q56.80-48.27 50.86-52.70L50.86-52.70L54.52-56.74Q60.14-52.70 65.70-46.51L65.70-46.51ZM62.00-29.88L58.10-25.56Q52.93-31.39 46.89-35.86L46.89-35.86L50.54-39.90Q57.01-35.30 62.00-29.88L62.00-29.88ZM51.42 4.46L47.17-0.14Q55.04-9.42 61.23-21.73L61.23-21.73L65.03-18.14Q58.63-4.89 51.42 4.46L51.42 4.46Z'); 135 | uji.getD({ x: 0 }, 'M38.46-59.77L38.46-49.82L65.00-49.82L65.00-35.37L59.59-35.37L59.59-45.28L12.27-45.28L12.27-35.37L6.93-35.37L6.93-49.82L32.98-49.82L32.98-59.77L38.46-59.77ZM56.46-32.63L39.13-32.63L39.13-21.83L67.68-21.83L67.68-17.16L39.13-17.16L39.13 0Q39.13 3.06 37.62 4.22L37.62 4.22Q36.35 5.17 32.98 5.17L32.98 5.17Q28.44 5.17 22.82 4.54L22.82 4.54L22.04-0.81Q28.41 0.07 31.68 0.07L31.68 0.07Q33.79 0.07 33.79-1.72L33.79-1.72L33.79-17.16L4.39-17.16L4.39-21.83L33.79-21.83L33.79-32.63L15.47-32.63L15.47-37.30L56.46-37.30L56.46-32.63ZM101.57-34.07L101.57-34.07L102.23-35.12Q108.14-45.88 112.18-58.39L112.18-58.39L117.77-56.74Q112.96-44.19 107.47-34.77L107.47-34.77L107.19-34.28L107.93-34.28Q114.79-34.56 122.45-35.30L122.45-35.30L128.88-35.79Q125.30-40.75 120.87-45.28L120.87-45.28L125.12-47.81Q133.59-38.64 139.25-30.45L139.25-30.45L134.86-26.93Q132.47-30.59 131.77-31.68L131.77-31.68L129.80-31.46Q117.18-29.85 95.91-28.65L95.91-28.65L93.87-33.86Q99.67-33.96 101.57-34.07ZM99.91-23.70L133.49-23.70L133.49 5.03L128.39 5.03L128.39 1.16L105.01 1.16L105.01 5.03L99.91 5.03L99.91-23.70ZM128.39-19.30L105.01-19.30L105.01-3.30L128.39-3.30L128.39-19.30ZM95.70-46.51L91.79-42.19Q86.80-48.27 80.86-52.70L80.86-52.70L84.52-56.74Q90.14-52.70 95.70-46.51L95.70-46.51ZM92.00-29.88L88.10-25.56Q82.93-31.39 76.89-35.86L76.89-35.86L80.54-39.90Q87.01-35.30 92.00-29.88L92.00-29.88ZM81.42 4.46L77.17-0.14Q85.04-9.42 91.23-21.73L91.23-21.73L95.03-18.14Q88.63-4.89 81.42 4.46L81.42 4.46Z'); 136 | uji.getD({ x: 30 }, 'M68.46-59.77L68.46-49.82L95.00-49.82L95.00-35.37L89.59-35.37L89.59-45.28L42.27-45.28L42.27-35.37L36.93-35.37L36.93-49.82L62.98-49.82L62.98-59.77L68.46-59.77ZM86.46-32.63L69.13-32.63L69.13-21.83L97.68-21.83L97.68-17.16L69.13-17.16L69.13 0Q69.13 3.06 67.62 4.22L67.62 4.22Q66.35 5.17 62.98 5.17L62.98 5.17Q58.44 5.17 52.82 4.54L52.82 4.54L52.04-0.81Q58.41 0.07 61.68 0.07L61.68 0.07Q63.79 0.07 63.79-1.72L63.79-1.72L63.79-17.16L34.39-17.16L34.39-21.83L63.79-21.83L63.79-32.63L45.47-32.63L45.47-37.30L86.46-37.30L86.46-32.63ZM131.57-34.07L131.57-34.07L132.23-35.12Q138.14-45.88 142.18-58.39L142.18-58.39L147.77-56.74Q142.96-44.19 137.47-34.77L137.47-34.77L137.19-34.28L137.93-34.28Q144.79-34.56 152.45-35.30L152.45-35.30L158.88-35.79Q155.30-40.75 150.87-45.28L150.87-45.28L155.12-47.81Q163.59-38.64 169.25-30.45L169.25-30.45L164.86-26.93Q162.47-30.59 161.77-31.68L161.77-31.68L159.80-31.46Q147.18-29.85 125.91-28.65L125.91-28.65L123.87-33.86Q129.67-33.96 131.57-34.07ZM129.91-23.70L163.49-23.70L163.49 5.03L158.39 5.03L158.39 1.16L135.01 1.16L135.01 5.03L129.91 5.03L129.91-23.70ZM158.39-19.30L135.01-19.30L135.01-3.30L158.39-3.30L158.39-19.30ZM125.70-46.51L121.79-42.19Q116.80-48.27 110.86-52.70L110.86-52.70L114.52-56.74Q120.14-52.70 125.70-46.51L125.70-46.51ZM122.00-29.88L118.10-25.56Q112.93-31.39 106.89-35.86L106.89-35.86L110.54-39.90Q117.01-35.30 122.00-29.88L122.00-29.88ZM111.42 4.46L107.17-0.14Q115.04-9.42 121.23-21.73L121.23-21.73L125.03-18.14Q118.63-4.89 111.42 4.46L111.42 4.46Z'); 137 | 138 | uji.getD({ y: -30 }, 'M38.46-89.77L38.46-79.82L65.00-79.82L65.00-65.37L59.59-65.37L59.59-75.28L12.27-75.28L12.27-65.37L6.93-65.37L6.93-79.82L32.98-79.82L32.98-89.77L38.46-89.77ZM56.46-62.63L39.13-62.63L39.13-51.83L67.68-51.83L67.68-47.16L39.13-47.16L39.13-30Q39.13-26.94 37.62-25.78L37.62-25.78Q36.35-24.83 32.98-24.83L32.98-24.83Q28.44-24.83 22.82-25.46L22.82-25.46L22.04-30.81Q28.41-29.93 31.68-29.93L31.68-29.93Q33.79-29.93 33.79-31.72L33.79-31.72L33.79-47.16L4.39-47.16L4.39-51.83L33.79-51.83L33.79-62.63L15.47-62.63L15.47-67.30L56.46-67.30L56.46-62.63ZM101.57-64.07L101.57-64.07L102.23-65.12Q108.14-75.88 112.18-88.39L112.18-88.39L117.77-86.74Q112.96-74.19 107.47-64.77L107.47-64.77L107.19-64.28L107.93-64.28Q114.79-64.56 122.45-65.30L122.45-65.30L128.88-65.79Q125.30-70.75 120.87-75.28L120.87-75.28L125.12-77.81Q133.59-68.64 139.25-60.45L139.25-60.45L134.86-56.93Q132.47-60.59 131.77-61.68L131.77-61.68L129.80-61.46Q117.18-59.85 95.91-58.65L95.91-58.65L93.87-63.86Q99.67-63.96 101.57-64.07ZM99.91-53.70L133.49-53.70L133.49-24.97L128.39-24.97L128.39-28.84L105.01-28.84L105.01-24.97L99.91-24.97L99.91-53.70ZM128.39-49.30L105.01-49.30L105.01-33.30L128.39-33.30L128.39-49.30ZM95.70-76.51L91.79-72.19Q86.80-78.27 80.86-82.70L80.86-82.70L84.52-86.74Q90.14-82.70 95.70-76.51L95.70-76.51ZM92.00-59.88L88.10-55.56Q82.93-61.39 76.89-65.86L76.89-65.86L80.54-69.90Q87.01-65.30 92.00-59.88L92.00-59.88ZM81.42-25.54L77.17-30.14Q85.04-39.42 91.23-51.73L91.23-51.73L95.03-48.14Q88.63-34.89 81.42-25.54L81.42-25.54Z'); 139 | uji.getD({ y: 0 }, 'M38.46-59.77L38.46-49.82L65.00-49.82L65.00-35.37L59.59-35.37L59.59-45.28L12.27-45.28L12.27-35.37L6.93-35.37L6.93-49.82L32.98-49.82L32.98-59.77L38.46-59.77ZM56.46-32.63L39.13-32.63L39.13-21.83L67.68-21.83L67.68-17.16L39.13-17.16L39.13 0Q39.13 3.06 37.62 4.22L37.62 4.22Q36.35 5.17 32.98 5.17L32.98 5.17Q28.44 5.17 22.82 4.54L22.82 4.54L22.04-0.81Q28.41 0.07 31.68 0.07L31.68 0.07Q33.79 0.07 33.79-1.72L33.79-1.72L33.79-17.16L4.39-17.16L4.39-21.83L33.79-21.83L33.79-32.63L15.47-32.63L15.47-37.30L56.46-37.30L56.46-32.63ZM101.57-34.07L101.57-34.07L102.23-35.12Q108.14-45.88 112.18-58.39L112.18-58.39L117.77-56.74Q112.96-44.19 107.47-34.77L107.47-34.77L107.19-34.28L107.93-34.28Q114.79-34.56 122.45-35.30L122.45-35.30L128.88-35.79Q125.30-40.75 120.87-45.28L120.87-45.28L125.12-47.81Q133.59-38.64 139.25-30.45L139.25-30.45L134.86-26.93Q132.47-30.59 131.77-31.68L131.77-31.68L129.80-31.46Q117.18-29.85 95.91-28.65L95.91-28.65L93.87-33.86Q99.67-33.96 101.57-34.07ZM99.91-23.70L133.49-23.70L133.49 5.03L128.39 5.03L128.39 1.16L105.01 1.16L105.01 5.03L99.91 5.03L99.91-23.70ZM128.39-19.30L105.01-19.30L105.01-3.30L128.39-3.30L128.39-19.30ZM95.70-46.51L91.79-42.19Q86.80-48.27 80.86-52.70L80.86-52.70L84.52-56.74Q90.14-52.70 95.70-46.51L95.70-46.51ZM92.00-29.88L88.10-25.56Q82.93-31.39 76.89-35.86L76.89-35.86L80.54-39.90Q87.01-35.30 92.00-29.88L92.00-29.88ZM81.42 4.46L77.17-0.14Q85.04-9.42 91.23-21.73L91.23-21.73L95.03-18.14Q88.63-4.89 81.42 4.46L81.42 4.46Z'); 140 | uji.getD({ y: 30 }, 'M38.46-29.77L38.46-19.82L65.00-19.82L65.00-5.37L59.59-5.37L59.59-15.28L12.27-15.28L12.27-5.37L6.93-5.37L6.93-19.82L32.98-19.82L32.98-29.77L38.46-29.77ZM56.46-2.63L39.13-2.63L39.13 8.17L67.68 8.17L67.68 12.84L39.13 12.84L39.13 30Q39.13 33.06 37.62 34.22L37.62 34.22Q36.35 35.17 32.98 35.17L32.98 35.17Q28.44 35.17 22.82 34.54L22.82 34.54L22.04 29.19Q28.41 30.07 31.68 30.07L31.68 30.07Q33.79 30.07 33.79 28.28L33.79 28.28L33.79 12.84L4.39 12.84L4.39 8.17L33.79 8.17L33.79-2.63L15.47-2.63L15.47-7.30L56.46-7.30L56.46-2.63ZM101.57-4.07L101.57-4.07L102.23-5.12Q108.14-15.88 112.18-28.39L112.18-28.39L117.77-26.74Q112.96-14.19 107.47-4.77L107.47-4.77L107.19-4.28L107.93-4.28Q114.79-4.56 122.45-5.30L122.45-5.30L128.88-5.79Q125.30-10.75 120.87-15.28L120.87-15.28L125.12-17.81Q133.59-8.64 139.25-0.45L139.25-0.45L134.86 3.07Q132.47-0.59 131.77-1.68L131.77-1.68L129.80-1.46Q117.18 0.15 95.91 1.35L95.91 1.35L93.87-3.86Q99.67-3.96 101.57-4.07ZM99.91 6.30L133.49 6.30L133.49 35.03L128.39 35.03L128.39 31.16L105.01 31.16L105.01 35.03L99.91 35.03L99.91 6.30ZM128.39 10.70L105.01 10.70L105.01 26.70L128.39 26.70L128.39 10.70ZM95.70-16.51L91.79-12.19Q86.80-18.27 80.86-22.70L80.86-22.70L84.52-26.74Q90.14-22.70 95.70-16.51L95.70-16.51ZM92.00 0.12L88.10 4.44Q82.93-1.39 76.89-5.86L76.89-5.86L80.54-9.90Q87.01-5.30 92.00 0.12L92.00 0.12ZM81.42 34.46L77.17 29.86Q85.04 20.58 91.23 8.27L91.23 8.27L95.03 11.86Q88.63 25.11 81.42 34.46L81.42 34.46Z'); 141 | 142 | uji.getD({ fontSize: 10 }, 'M5.34-8.30L5.34-6.92L9.03-6.92L9.03-4.91L8.28-4.91L8.28-6.29L1.70-6.29L1.70-4.91L0.96-4.91L0.96-6.92L4.58-6.92L4.58-8.30L5.34-8.30ZM7.84-4.53L5.43-4.53L5.43-3.03L9.40-3.03L9.40-2.38L5.43-2.38L5.43 0Q5.43 0.42 5.22 0.59L5.22 0.59Q5.05 0.72 4.58 0.72L4.58 0.72Q3.95 0.72 3.17 0.63L3.17 0.63L3.06-0.11Q3.95 0.01 4.40 0.01L4.40 0.01Q4.69 0.01 4.69-0.24L4.69-0.24L4.69-2.38L0.61-2.38L0.61-3.03L4.69-3.03L4.69-4.53L2.15-4.53L2.15-5.18L7.84-5.18L7.84-4.53ZM14.11-4.73L14.11-4.73L14.20-4.88Q15.02-6.37 15.58-8.11L15.58-8.11L16.36-7.88Q15.69-6.14 14.93-4.83L14.93-4.83L14.89-4.76L14.99-4.76Q15.94-4.80 17.01-4.90L17.01-4.90L17.90-4.97Q17.40-5.66 16.79-6.29L16.79-6.29L17.38-6.64Q18.55-5.37 19.34-4.23L19.34-4.23L18.73-3.74Q18.40-4.25 18.30-4.40L18.30-4.40L18.03-4.37Q16.27-4.15 13.32-3.98L13.32-3.98L13.04-4.70Q13.84-4.72 14.11-4.73ZM13.88-3.29L18.54-3.29L18.54 0.70L17.83 0.70L17.83 0.16L14.58 0.16L14.58 0.70L13.88 0.70L13.88-3.29ZM17.83-2.68L14.58-2.68L14.58-0.46L17.83-0.46L17.83-2.68ZM13.29-6.46L12.75-5.86Q12.06-6.70 11.23-7.32L11.23-7.32L11.74-7.88Q12.52-7.32 13.29-6.46L13.29-6.46ZM12.78-4.15L12.24-3.55Q11.52-4.36 10.68-4.98L10.68-4.98L11.19-5.54Q12.08-4.90 12.78-4.15L12.78-4.15ZM11.31 0.62L10.72-0.02Q11.81-1.31 12.67-3.02L12.67-3.02L13.20-2.52Q12.31-0.68 11.31 0.62L11.31 0.62Z'); 143 | uji.getD({ fontSize: 30 }, 'M16.03-24.90L16.03-20.76L27.08-20.76L27.08-14.74L24.83-14.74L24.83-18.87L5.11-18.87L5.11-14.74L2.89-14.74L2.89-20.76L13.74-20.76L13.74-24.90L16.03-24.90ZM23.53-13.59L16.30-13.59L16.30-9.10L28.20-9.10L28.20-7.15L16.30-7.15L16.30 0Q16.30 1.27 15.67 1.76L15.67 1.76Q15.15 2.15 13.74 2.15L13.74 2.15Q11.85 2.15 9.51 1.89L9.51 1.89L9.18-0.34Q11.84 0.03 13.20 0.03L13.20 0.03Q14.08 0.03 14.08-0.72L14.08-0.72L14.08-7.15L1.83-7.15L1.83-9.10L14.08-9.10L14.08-13.59L6.45-13.59L6.45-15.54L23.53-15.54L23.53-13.59ZM42.32-14.19L42.32-14.19L42.60-14.63Q45.06-19.12 46.74-24.33L46.74-24.33L49.07-23.64Q47.07-18.41 44.78-14.49L44.78-14.49L44.66-14.28L44.97-14.28Q47.83-14.40 51.02-14.71L51.02-14.71L53.70-14.91Q52.21-16.98 50.36-18.87L50.36-18.87L52.13-19.92Q55.66-16.10 58.02-12.69L58.02-12.69L56.19-11.22Q55.20-12.74 54.90-13.20L54.90-13.20L54.08-13.11Q48.82-12.44 39.96-11.94L39.96-11.94L39.11-14.11Q41.53-14.15 42.32-14.19ZM41.63-9.87L55.62-9.87L55.62 2.09L53.50 2.09L53.50 0.48L43.75 0.48L43.75 2.09L41.63 2.09L41.63-9.87ZM53.50-8.04L43.75-8.04L43.75-1.38L53.50-1.38L53.50-8.04ZM39.87-19.38L38.25-17.58Q36.17-20.11 33.69-21.96L33.69-21.96L35.21-23.64Q37.56-21.96 39.87-19.38L39.87-19.38ZM38.33-12.45L36.71-10.65Q34.56-13.08 32.04-14.94L32.04-14.94L33.56-16.63Q36.25-14.71 38.33-12.45L38.33-12.45ZM33.93 1.86L32.15-0.06Q35.43-3.93 38.01-9.05L38.01-9.05L39.59-7.56Q36.93-2.04 33.93 1.86L33.93 1.86Z'); 144 | 145 | uji.getD({ kerning: false }, 'M38.46-59.77L38.46-49.82L65.00-49.82L65.00-35.37L59.59-35.37L59.59-45.28L12.27-45.28L12.27-35.37L6.93-35.37L6.93-49.82L32.98-49.82L32.98-59.77L38.46-59.77ZM56.46-32.63L39.13-32.63L39.13-21.83L67.68-21.83L67.68-17.16L39.13-17.16L39.13 0Q39.13 3.06 37.62 4.22L37.62 4.22Q36.35 5.17 32.98 5.17L32.98 5.17Q28.44 5.17 22.82 4.54L22.82 4.54L22.04-0.81Q28.41 0.07 31.68 0.07L31.68 0.07Q33.79 0.07 33.79-1.72L33.79-1.72L33.79-17.16L4.39-17.16L4.39-21.83L33.79-21.83L33.79-32.63L15.47-32.63L15.47-37.30L56.46-37.30L56.46-32.63ZM101.57-34.07L101.57-34.07L102.23-35.12Q108.14-45.88 112.18-58.39L112.18-58.39L117.77-56.74Q112.96-44.19 107.47-34.77L107.47-34.77L107.19-34.28L107.93-34.28Q114.79-34.56 122.45-35.30L122.45-35.30L128.88-35.79Q125.30-40.75 120.87-45.28L120.87-45.28L125.12-47.81Q133.59-38.64 139.25-30.45L139.25-30.45L134.86-26.93Q132.47-30.59 131.77-31.68L131.77-31.68L129.80-31.46Q117.18-29.85 95.91-28.65L95.91-28.65L93.87-33.86Q99.67-33.96 101.57-34.07ZM99.91-23.70L133.49-23.70L133.49 5.03L128.39 5.03L128.39 1.16L105.01 1.16L105.01 5.03L99.91 5.03L99.91-23.70ZM128.39-19.30L105.01-19.30L105.01-3.30L128.39-3.30L128.39-19.30ZM95.70-46.51L91.79-42.19Q86.80-48.27 80.86-52.70L80.86-52.70L84.52-56.74Q90.14-52.70 95.70-46.51L95.70-46.51ZM92.00-29.88L88.10-25.56Q82.93-31.39 76.89-35.86L76.89-35.86L80.54-39.90Q87.01-35.30 92.00-29.88L92.00-29.88ZM81.42 4.46L77.17-0.14Q85.04-9.42 91.23-21.73L91.23-21.73L95.03-18.14Q88.63-4.89 81.42 4.46L81.42 4.46Z'); 146 | uji.getD({ kerning: true }, 'M38.46-59.77L38.46-49.82L65.00-49.82L65.00-35.37L59.59-35.37L59.59-45.28L12.27-45.28L12.27-35.37L6.93-35.37L6.93-49.82L32.98-49.82L32.98-59.77L38.46-59.77ZM56.46-32.63L39.13-32.63L39.13-21.83L67.68-21.83L67.68-17.16L39.13-17.16L39.13 0Q39.13 3.06 37.62 4.22L37.62 4.22Q36.35 5.17 32.98 5.17L32.98 5.17Q28.44 5.17 22.82 4.54L22.82 4.54L22.04-0.81Q28.41 0.07 31.68 0.07L31.68 0.07Q33.79 0.07 33.79-1.72L33.79-1.72L33.79-17.16L4.39-17.16L4.39-21.83L33.79-21.83L33.79-32.63L15.47-32.63L15.47-37.30L56.46-37.30L56.46-32.63ZM101.57-34.07L101.57-34.07L102.23-35.12Q108.14-45.88 112.18-58.39L112.18-58.39L117.77-56.74Q112.96-44.19 107.47-34.77L107.47-34.77L107.19-34.28L107.93-34.28Q114.79-34.56 122.45-35.30L122.45-35.30L128.88-35.79Q125.30-40.75 120.87-45.28L120.87-45.28L125.12-47.81Q133.59-38.64 139.25-30.45L139.25-30.45L134.86-26.93Q132.47-30.59 131.77-31.68L131.77-31.68L129.80-31.46Q117.18-29.85 95.91-28.65L95.91-28.65L93.87-33.86Q99.67-33.96 101.57-34.07ZM99.91-23.70L133.49-23.70L133.49 5.03L128.39 5.03L128.39 1.16L105.01 1.16L105.01 5.03L99.91 5.03L99.91-23.70ZM128.39-19.30L105.01-19.30L105.01-3.30L128.39-3.30L128.39-19.30ZM95.70-46.51L91.79-42.19Q86.80-48.27 80.86-52.70L80.86-52.70L84.52-56.74Q90.14-52.70 95.70-46.51L95.70-46.51ZM92.00-29.88L88.10-25.56Q82.93-31.39 76.89-35.86L76.89-35.86L80.54-39.90Q87.01-35.30 92.00-29.88L92.00-29.88ZM81.42 4.46L77.17-0.14Q85.04-9.42 91.23-21.73L91.23-21.73L95.03-18.14Q88.63-4.89 81.42 4.46L81.42 4.46Z'); 147 | uji.getD({ letterSpacing: 0.2 }, 'M38.46-59.77L38.46-49.82L65.00-49.82L65.00-35.37L59.59-35.37L59.59-45.28L12.27-45.28L12.27-35.37L6.93-35.37L6.93-49.82L32.98-49.82L32.98-59.77L38.46-59.77ZM56.46-32.63L39.13-32.63L39.13-21.83L67.68-21.83L67.68-17.16L39.13-17.16L39.13 0Q39.13 3.06 37.62 4.22L37.62 4.22Q36.35 5.17 32.98 5.17L32.98 5.17Q28.44 5.17 22.82 4.54L22.82 4.54L22.04-0.81Q28.41 0.07 31.68 0.07L31.68 0.07Q33.79 0.07 33.79-1.72L33.79-1.72L33.79-17.16L4.39-17.16L4.39-21.83L33.79-21.83L33.79-32.63L15.47-32.63L15.47-37.30L56.46-37.30L56.46-32.63ZM115.97-34.07L115.97-34.07L116.63-35.12Q122.54-45.88 126.58-58.39L126.58-58.39L132.17-56.74Q127.36-44.19 121.87-34.77L121.87-34.77L121.59-34.28L122.33-34.28Q129.19-34.56 136.85-35.30L136.85-35.30L143.28-35.79Q139.70-40.75 135.27-45.28L135.27-45.28L139.52-47.81Q147.99-38.64 153.65-30.45L153.65-30.45L149.26-26.93Q146.87-30.59 146.17-31.68L146.17-31.68L144.20-31.46Q131.58-29.85 110.31-28.65L110.31-28.65L108.27-33.86Q114.07-33.96 115.97-34.07ZM114.31-23.70L147.89-23.70L147.89 5.03L142.79 5.03L142.79 1.16L119.41 1.16L119.41 5.03L114.31 5.03L114.31-23.70ZM142.79-19.30L119.41-19.30L119.41-3.30L142.79-3.30L142.79-19.30ZM110.10-46.51L106.19-42.19Q101.20-48.27 95.26-52.70L95.26-52.70L98.92-56.74Q104.54-52.70 110.10-46.51L110.10-46.51ZM106.40-29.88L102.50-25.56Q97.33-31.39 91.29-35.86L91.29-35.86L94.94-39.90Q101.41-35.30 106.40-29.88L106.40-29.88ZM95.82 4.46L91.57-0.14Q99.44-9.42 105.63-21.73L105.63-21.73L109.43-18.14Q103.03-4.89 95.82 4.46L95.82 4.46Z'); 148 | uji.getD({ tracking: 200 }, 'M38.46-59.77L38.46-49.82L65.00-49.82L65.00-35.37L59.59-35.37L59.59-45.28L12.27-45.28L12.27-35.37L6.93-35.37L6.93-49.82L32.98-49.82L32.98-59.77L38.46-59.77ZM56.46-32.63L39.13-32.63L39.13-21.83L67.68-21.83L67.68-17.16L39.13-17.16L39.13 0Q39.13 3.06 37.62 4.22L37.62 4.22Q36.35 5.17 32.98 5.17L32.98 5.17Q28.44 5.17 22.82 4.54L22.82 4.54L22.04-0.81Q28.41 0.07 31.68 0.07L31.68 0.07Q33.79 0.07 33.79-1.72L33.79-1.72L33.79-17.16L4.39-17.16L4.39-21.83L33.79-21.83L33.79-32.63L15.47-32.63L15.47-37.30L56.46-37.30L56.46-32.63ZM115.97-34.07L115.97-34.07L116.63-35.12Q122.54-45.88 126.58-58.39L126.58-58.39L132.17-56.74Q127.36-44.19 121.87-34.77L121.87-34.77L121.59-34.28L122.33-34.28Q129.19-34.56 136.85-35.30L136.85-35.30L143.28-35.79Q139.70-40.75 135.27-45.28L135.27-45.28L139.52-47.81Q147.99-38.64 153.65-30.45L153.65-30.45L149.26-26.93Q146.87-30.59 146.17-31.68L146.17-31.68L144.20-31.46Q131.58-29.85 110.31-28.65L110.31-28.65L108.27-33.86Q114.07-33.96 115.97-34.07ZM114.31-23.70L147.89-23.70L147.89 5.03L142.79 5.03L142.79 1.16L119.41 1.16L119.41 5.03L114.31 5.03L114.31-23.70ZM142.79-19.30L119.41-19.30L119.41-3.30L142.79-3.30L142.79-19.30ZM110.10-46.51L106.19-42.19Q101.20-48.27 95.26-52.70L95.26-52.70L98.92-56.74Q104.54-52.70 110.10-46.51L110.10-46.51ZM106.40-29.88L102.50-25.56Q97.33-31.39 91.29-35.86L91.29-35.86L94.94-39.90Q101.41-35.30 106.40-29.88L106.40-29.88ZM95.82 4.46L91.57-0.14Q99.44-9.42 105.63-21.73L105.63-21.73L109.43-18.14Q103.03-4.89 95.82 4.46L95.82 4.46Z'); 149 | uji.getD({ anchor: 'left' }, 'M38.46-59.77L38.46-49.82L65.00-49.82L65.00-35.37L59.59-35.37L59.59-45.28L12.27-45.28L12.27-35.37L6.93-35.37L6.93-49.82L32.98-49.82L32.98-59.77L38.46-59.77ZM56.46-32.63L39.13-32.63L39.13-21.83L67.68-21.83L67.68-17.16L39.13-17.16L39.13 0Q39.13 3.06 37.62 4.22L37.62 4.22Q36.35 5.17 32.98 5.17L32.98 5.17Q28.44 5.17 22.82 4.54L22.82 4.54L22.04-0.81Q28.41 0.07 31.68 0.07L31.68 0.07Q33.79 0.07 33.79-1.72L33.79-1.72L33.79-17.16L4.39-17.16L4.39-21.83L33.79-21.83L33.79-32.63L15.47-32.63L15.47-37.30L56.46-37.30L56.46-32.63ZM101.57-34.07L101.57-34.07L102.23-35.12Q108.14-45.88 112.18-58.39L112.18-58.39L117.77-56.74Q112.96-44.19 107.47-34.77L107.47-34.77L107.19-34.28L107.93-34.28Q114.79-34.56 122.45-35.30L122.45-35.30L128.88-35.79Q125.30-40.75 120.87-45.28L120.87-45.28L125.12-47.81Q133.59-38.64 139.25-30.45L139.25-30.45L134.86-26.93Q132.47-30.59 131.77-31.68L131.77-31.68L129.80-31.46Q117.18-29.85 95.91-28.65L95.91-28.65L93.87-33.86Q99.67-33.96 101.57-34.07ZM99.91-23.70L133.49-23.70L133.49 5.03L128.39 5.03L128.39 1.16L105.01 1.16L105.01 5.03L99.91 5.03L99.91-23.70ZM128.39-19.30L105.01-19.30L105.01-3.30L128.39-3.30L128.39-19.30ZM95.70-46.51L91.79-42.19Q86.80-48.27 80.86-52.70L80.86-52.70L84.52-56.74Q90.14-52.70 95.70-46.51L95.70-46.51ZM92.00-29.88L88.10-25.56Q82.93-31.39 76.89-35.86L76.89-35.86L80.54-39.90Q87.01-35.30 92.00-29.88L92.00-29.88ZM81.42 4.46L77.17-0.14Q85.04-9.42 91.23-21.73L91.23-21.73L95.03-18.14Q88.63-4.89 81.42 4.46L81.42 4.46Z'); 150 | uji.getD({ anchor: 'center' }, 'M-33.54-59.77L-33.54-49.82L-7.00-49.82L-7.00-35.37L-12.41-35.37L-12.41-45.28L-59.73-45.28L-59.73-35.37L-65.07-35.37L-65.07-49.82L-39.02-49.82L-39.02-59.77L-33.54-59.77ZM-15.54-32.63L-32.87-32.63L-32.87-21.83L-4.32-21.83L-4.32-17.16L-32.87-17.16L-32.87 0Q-32.87 3.06-34.38 4.22L-34.38 4.22Q-35.65 5.17-39.02 5.17L-39.02 5.17Q-43.56 5.17-49.18 4.54L-49.18 4.54L-49.96-0.81Q-43.59 0.07-40.32 0.07L-40.32 0.07Q-38.21 0.07-38.21-1.72L-38.21-1.72L-38.21-17.16L-67.61-17.16L-67.61-21.83L-38.21-21.83L-38.21-32.63L-56.53-32.63L-56.53-37.30L-15.54-37.30L-15.54-32.63ZM29.57-34.07L29.57-34.07L30.23-35.12Q36.14-45.88 40.18-58.39L40.18-58.39L45.77-56.74Q40.96-44.19 35.47-34.77L35.47-34.77L35.19-34.28L35.93-34.28Q42.79-34.56 50.45-35.30L50.45-35.30L56.88-35.79Q53.30-40.75 48.87-45.28L48.87-45.28L53.12-47.81Q61.59-38.64 67.25-30.45L67.25-30.45L62.86-26.93Q60.47-30.59 59.77-31.68L59.77-31.68L57.80-31.46Q45.18-29.85 23.91-28.65L23.91-28.65L21.87-33.86Q27.67-33.96 29.57-34.07ZM27.91-23.70L61.49-23.70L61.49 5.03L56.39 5.03L56.39 1.16L33.01 1.16L33.01 5.03L27.91 5.03L27.91-23.70ZM56.39-19.30L33.01-19.30L33.01-3.30L56.39-3.30L56.39-19.30ZM23.70-46.51L19.79-42.19Q14.80-48.27 8.86-52.70L8.86-52.70L12.52-56.74Q18.14-52.70 23.70-46.51L23.70-46.51ZM20.00-29.88L16.10-25.56Q10.93-31.39 4.89-35.86L4.89-35.86L8.54-39.90Q15.01-35.30 20.00-29.88L20.00-29.88ZM9.42 4.46L5.17-0.14Q13.04-9.42 19.23-21.73L19.23-21.73L23.03-18.14Q16.63-4.89 9.42 4.46L9.42 4.46Z'); 151 | uji.getD({ anchor: 'right' }, 'M-105.54-59.77L-105.54-49.82L-79.00-49.82L-79.00-35.37L-84.41-35.37L-84.41-45.28L-131.73-45.28L-131.73-35.37L-137.07-35.37L-137.07-49.82L-111.02-49.82L-111.02-59.77L-105.54-59.77ZM-87.54-32.63L-104.87-32.63L-104.87-21.83L-76.32-21.83L-76.32-17.16L-104.87-17.16L-104.87 0Q-104.87 3.06-106.38 4.22L-106.38 4.22Q-107.65 5.17-111.02 5.17L-111.02 5.17Q-115.56 5.17-121.18 4.54L-121.18 4.54L-121.96-0.81Q-115.59 0.07-112.32 0.07L-112.32 0.07Q-110.21 0.07-110.21-1.72L-110.21-1.72L-110.21-17.16L-139.61-17.16L-139.61-21.83L-110.21-21.83L-110.21-32.63L-128.53-32.63L-128.53-37.30L-87.54-37.30L-87.54-32.63ZM-42.43-34.07L-42.43-34.07L-41.77-35.12Q-35.86-45.88-31.82-58.39L-31.82-58.39L-26.23-56.74Q-31.04-44.19-36.53-34.77L-36.53-34.77L-36.81-34.28L-36.07-34.28Q-29.21-34.56-21.55-35.30L-21.55-35.30L-15.12-35.79Q-18.70-40.75-23.13-45.28L-23.13-45.28L-18.88-47.81Q-10.41-38.64-4.75-30.45L-4.75-30.45L-9.14-26.93Q-11.53-30.59-12.23-31.68L-12.23-31.68L-14.20-31.46Q-26.82-29.85-48.09-28.65L-48.09-28.65L-50.13-33.86Q-44.33-33.96-42.43-34.07ZM-44.09-23.70L-10.51-23.70L-10.51 5.03L-15.61 5.03L-15.61 1.16L-38.99 1.16L-38.99 5.03L-44.09 5.03L-44.09-23.70ZM-15.61-19.30L-38.99-19.30L-38.99-3.30L-15.61-3.30L-15.61-19.30ZM-48.30-46.51L-52.21-42.19Q-57.20-48.27-63.14-52.70L-63.14-52.70L-59.48-56.74Q-53.86-52.70-48.30-46.51L-48.30-46.51ZM-52.00-29.88L-55.90-25.56Q-61.07-31.39-67.11-35.86L-67.11-35.86L-63.46-39.90Q-56.99-35.30-52.00-29.88L-52.00-29.88ZM-62.58 4.46L-66.83-0.14Q-58.96-9.42-52.77-21.73L-52.77-21.73L-48.97-18.14Q-55.37-4.89-62.58 4.46L-62.58 4.46Z'); 152 | uji.getD({ anchor: 'top' }, 'M38.46 3.59L38.46 13.54L65.00 13.54L65.00 27.98L59.59 27.98L59.59 18.07L12.27 18.07L12.27 27.98L6.93 27.98L6.93 13.54L32.98 13.54L32.98 3.59L38.46 3.59ZM56.46 30.73L39.13 30.73L39.13 41.52L67.68 41.52L67.68 46.20L39.13 46.20L39.13 63.35Q39.13 66.41 37.62 67.57L37.62 67.57Q36.35 68.52 32.98 68.52L32.98 68.52Q28.44 68.52 22.82 67.89L22.82 67.89L22.04 62.54Q28.41 63.42 31.68 63.42L31.68 63.42Q33.79 63.42 33.79 61.63L33.79 61.63L33.79 46.20L4.39 46.20L4.39 41.52L33.79 41.52L33.79 30.73L15.47 30.73L15.47 26.05L56.46 26.05L56.46 30.73ZM101.57 29.29L101.57 29.29L102.23 28.23Q108.14 17.47 112.18 4.96L112.18 4.96L117.77 6.61Q112.96 19.16 107.47 28.58L107.47 28.58L107.19 29.07L107.93 29.07Q114.79 28.79 122.45 28.05L122.45 28.05L128.88 27.56Q125.30 22.61 120.87 18.07L120.87 18.07L125.12 15.54Q133.59 24.71 139.25 32.91L139.25 32.91L134.86 36.42Q132.47 32.77 131.77 31.68L131.77 31.68L129.80 31.89Q117.18 33.50 95.91 34.70L95.91 34.70L93.87 29.50Q99.67 29.39 101.57 29.29ZM99.91 39.66L133.49 39.66L133.49 68.38L128.39 68.38L128.39 64.51L105.01 64.51L105.01 68.38L99.91 68.38L99.91 39.66ZM128.39 44.05L105.01 44.05L105.01 60.05L128.39 60.05L128.39 44.05ZM95.70 16.84L91.79 21.16Q86.80 15.08 80.86 10.65L80.86 10.65L84.52 6.61Q90.14 10.65 95.70 16.84L95.70 16.84ZM92.00 33.47L88.10 37.79Q82.93 31.96 76.89 27.49L76.89 27.49L80.54 23.45Q87.01 28.05 92.00 33.47L92.00 33.47ZM81.42 67.82L77.17 63.21Q85.04 53.93 91.23 41.63L91.23 41.63L95.03 45.21Q88.63 58.46 81.42 67.82L81.42 67.82Z'); 153 | uji.getD({ anchor: 'middle' }, 'M38.46-32.41L38.46-22.46L65.00-22.46L65.00-8.02L59.59-8.02L59.59-17.93L12.27-17.93L12.27-8.02L6.93-8.02L6.93-22.46L32.98-22.46L32.98-32.41L38.46-32.41ZM56.46-5.27L39.13-5.27L39.13 5.52L67.68 5.52L67.68 10.20L39.13 10.20L39.13 27.35Q39.13 30.41 37.62 31.57L37.62 31.57Q36.35 32.52 32.98 32.52L32.98 32.52Q28.44 32.52 22.82 31.89L22.82 31.89L22.04 26.54Q28.41 27.42 31.68 27.42L31.68 27.42Q33.79 27.42 33.79 25.63L33.79 25.63L33.79 10.20L4.39 10.20L4.39 5.52L33.79 5.52L33.79-5.27L15.47-5.27L15.47-9.95L56.46-9.95L56.46-5.27ZM101.57-6.71L101.57-6.71L102.23-7.77Q108.14-18.53 112.18-31.04L112.18-31.04L117.77-29.39Q112.96-16.84 107.47-7.42L107.47-7.42L107.19-6.93L107.93-6.93Q114.79-7.21 122.45-7.95L122.45-7.95L128.88-8.44Q125.30-13.39 120.87-17.93L120.87-17.93L125.12-20.46Q133.59-11.29 139.25-3.09L139.25-3.09L134.86 0.42Q132.47-3.23 131.77-4.32L131.77-4.32L129.80-4.11Q117.18-2.50 95.91-1.30L95.91-1.30L93.87-6.50Q99.67-6.61 101.57-6.71ZM99.91 3.66L133.49 3.66L133.49 32.38L128.39 32.38L128.39 28.51L105.01 28.51L105.01 32.38L99.91 32.38L99.91 3.66ZM128.39 8.05L105.01 8.05L105.01 24.05L128.39 24.05L128.39 8.05ZM95.70-19.16L91.79-14.84Q86.80-20.92 80.86-25.35L80.86-25.35L84.52-29.39Q90.14-25.35 95.70-19.16L95.70-19.16ZM92.00-2.53L88.10 1.79Q82.93-4.04 76.89-8.51L76.89-8.51L80.54-12.55Q87.01-7.95 92.00-2.53L92.00-2.53ZM81.42 31.82L77.17 27.21Q85.04 17.93 91.23 5.63L91.23 5.63L95.03 9.21Q88.63 22.46 81.42 31.82L81.42 31.82Z'); 154 | uji.getD({ anchor: 'bottom' }, 'M38.46-68.41L38.46-58.46L65.00-58.46L65.00-44.02L59.59-44.02L59.59-53.93L12.27-53.93L12.27-44.02L6.93-44.02L6.93-58.46L32.98-58.46L32.98-68.41L38.46-68.41ZM56.46-41.27L39.13-41.27L39.13-30.48L67.68-30.48L67.68-25.80L39.13-25.80L39.13-8.65Q39.13-5.59 37.62-4.43L37.62-4.43Q36.35-3.48 32.98-3.48L32.98-3.48Q28.44-3.48 22.82-4.11L22.82-4.11L22.04-9.46Q28.41-8.58 31.68-8.58L31.68-8.58Q33.79-8.58 33.79-10.37L33.79-10.37L33.79-25.80L4.39-25.80L4.39-30.48L33.79-30.48L33.79-41.27L15.47-41.27L15.47-45.95L56.46-45.95L56.46-41.27ZM101.57-42.71L101.57-42.71L102.23-43.77Q108.14-54.53 112.18-67.04L112.18-67.04L117.77-65.39Q112.96-52.84 107.47-43.42L107.47-43.42L107.19-42.93L107.93-42.93Q114.79-43.21 122.45-43.95L122.45-43.95L128.88-44.44Q125.30-49.39 120.87-53.93L120.87-53.93L125.12-56.46Q133.59-47.29 139.25-39.09L139.25-39.09L134.86-35.58Q132.47-39.23 131.77-40.32L131.77-40.32L129.80-40.11Q117.18-38.50 95.91-37.30L95.91-37.30L93.87-42.50Q99.67-42.61 101.57-42.71ZM99.91-32.34L133.49-32.34L133.49-3.62L128.39-3.62L128.39-7.49L105.01-7.49L105.01-3.62L99.91-3.62L99.91-32.34ZM128.39-27.95L105.01-27.95L105.01-11.95L128.39-11.95L128.39-27.95ZM95.70-55.16L91.79-50.84Q86.80-56.92 80.86-61.35L80.86-61.35L84.52-65.39Q90.14-61.35 95.70-55.16L95.70-55.16ZM92.00-38.53L88.10-34.21Q82.93-40.04 76.89-44.51L76.89-44.51L80.54-48.55Q87.01-43.95 92.00-38.53L92.00-38.53ZM81.42-4.18L77.17-8.79Q85.04-18.07 91.23-30.38L91.23-30.38L95.03-26.79Q88.63-13.54 81.42-4.18L81.42-4.18Z'); 155 | uji.getD({ anchor: 'left top' }, 'M38.46 3.59L38.46 13.54L65.00 13.54L65.00 27.98L59.59 27.98L59.59 18.07L12.27 18.07L12.27 27.98L6.93 27.98L6.93 13.54L32.98 13.54L32.98 3.59L38.46 3.59ZM56.46 30.73L39.13 30.73L39.13 41.52L67.68 41.52L67.68 46.20L39.13 46.20L39.13 63.35Q39.13 66.41 37.62 67.57L37.62 67.57Q36.35 68.52 32.98 68.52L32.98 68.52Q28.44 68.52 22.82 67.89L22.82 67.89L22.04 62.54Q28.41 63.42 31.68 63.42L31.68 63.42Q33.79 63.42 33.79 61.63L33.79 61.63L33.79 46.20L4.39 46.20L4.39 41.52L33.79 41.52L33.79 30.73L15.47 30.73L15.47 26.05L56.46 26.05L56.46 30.73ZM101.57 29.29L101.57 29.29L102.23 28.23Q108.14 17.47 112.18 4.96L112.18 4.96L117.77 6.61Q112.96 19.16 107.47 28.58L107.47 28.58L107.19 29.07L107.93 29.07Q114.79 28.79 122.45 28.05L122.45 28.05L128.88 27.56Q125.30 22.61 120.87 18.07L120.87 18.07L125.12 15.54Q133.59 24.71 139.25 32.91L139.25 32.91L134.86 36.42Q132.47 32.77 131.77 31.68L131.77 31.68L129.80 31.89Q117.18 33.50 95.91 34.70L95.91 34.70L93.87 29.50Q99.67 29.39 101.57 29.29ZM99.91 39.66L133.49 39.66L133.49 68.38L128.39 68.38L128.39 64.51L105.01 64.51L105.01 68.38L99.91 68.38L99.91 39.66ZM128.39 44.05L105.01 44.05L105.01 60.05L128.39 60.05L128.39 44.05ZM95.70 16.84L91.79 21.16Q86.80 15.08 80.86 10.65L80.86 10.65L84.52 6.61Q90.14 10.65 95.70 16.84L95.70 16.84ZM92.00 33.47L88.10 37.79Q82.93 31.96 76.89 27.49L76.89 27.49L80.54 23.45Q87.01 28.05 92.00 33.47L92.00 33.47ZM81.42 67.82L77.17 63.21Q85.04 53.93 91.23 41.63L91.23 41.63L95.03 45.21Q88.63 58.46 81.42 67.82L81.42 67.82Z'); 156 | uji.getD({ anchor: 'left middle' }, 'M38.46-32.41L38.46-22.46L65.00-22.46L65.00-8.02L59.59-8.02L59.59-17.93L12.27-17.93L12.27-8.02L6.93-8.02L6.93-22.46L32.98-22.46L32.98-32.41L38.46-32.41ZM56.46-5.27L39.13-5.27L39.13 5.52L67.68 5.52L67.68 10.20L39.13 10.20L39.13 27.35Q39.13 30.41 37.62 31.57L37.62 31.57Q36.35 32.52 32.98 32.52L32.98 32.52Q28.44 32.52 22.82 31.89L22.82 31.89L22.04 26.54Q28.41 27.42 31.68 27.42L31.68 27.42Q33.79 27.42 33.79 25.63L33.79 25.63L33.79 10.20L4.39 10.20L4.39 5.52L33.79 5.52L33.79-5.27L15.47-5.27L15.47-9.95L56.46-9.95L56.46-5.27ZM101.57-6.71L101.57-6.71L102.23-7.77Q108.14-18.53 112.18-31.04L112.18-31.04L117.77-29.39Q112.96-16.84 107.47-7.42L107.47-7.42L107.19-6.93L107.93-6.93Q114.79-7.21 122.45-7.95L122.45-7.95L128.88-8.44Q125.30-13.39 120.87-17.93L120.87-17.93L125.12-20.46Q133.59-11.29 139.25-3.09L139.25-3.09L134.86 0.42Q132.47-3.23 131.77-4.32L131.77-4.32L129.80-4.11Q117.18-2.50 95.91-1.30L95.91-1.30L93.87-6.50Q99.67-6.61 101.57-6.71ZM99.91 3.66L133.49 3.66L133.49 32.38L128.39 32.38L128.39 28.51L105.01 28.51L105.01 32.38L99.91 32.38L99.91 3.66ZM128.39 8.05L105.01 8.05L105.01 24.05L128.39 24.05L128.39 8.05ZM95.70-19.16L91.79-14.84Q86.80-20.92 80.86-25.35L80.86-25.35L84.52-29.39Q90.14-25.35 95.70-19.16L95.70-19.16ZM92.00-2.53L88.10 1.79Q82.93-4.04 76.89-8.51L76.89-8.51L80.54-12.55Q87.01-7.95 92.00-2.53L92.00-2.53ZM81.42 31.82L77.17 27.21Q85.04 17.93 91.23 5.63L91.23 5.63L95.03 9.21Q88.63 22.46 81.42 31.82L81.42 31.82Z'); 157 | uji.getD({ anchor: 'left bottom' }, 'M38.46-68.41L38.46-58.46L65.00-58.46L65.00-44.02L59.59-44.02L59.59-53.93L12.27-53.93L12.27-44.02L6.93-44.02L6.93-58.46L32.98-58.46L32.98-68.41L38.46-68.41ZM56.46-41.27L39.13-41.27L39.13-30.48L67.68-30.48L67.68-25.80L39.13-25.80L39.13-8.65Q39.13-5.59 37.62-4.43L37.62-4.43Q36.35-3.48 32.98-3.48L32.98-3.48Q28.44-3.48 22.82-4.11L22.82-4.11L22.04-9.46Q28.41-8.58 31.68-8.58L31.68-8.58Q33.79-8.58 33.79-10.37L33.79-10.37L33.79-25.80L4.39-25.80L4.39-30.48L33.79-30.48L33.79-41.27L15.47-41.27L15.47-45.95L56.46-45.95L56.46-41.27ZM101.57-42.71L101.57-42.71L102.23-43.77Q108.14-54.53 112.18-67.04L112.18-67.04L117.77-65.39Q112.96-52.84 107.47-43.42L107.47-43.42L107.19-42.93L107.93-42.93Q114.79-43.21 122.45-43.95L122.45-43.95L128.88-44.44Q125.30-49.39 120.87-53.93L120.87-53.93L125.12-56.46Q133.59-47.29 139.25-39.09L139.25-39.09L134.86-35.58Q132.47-39.23 131.77-40.32L131.77-40.32L129.80-40.11Q117.18-38.50 95.91-37.30L95.91-37.30L93.87-42.50Q99.67-42.61 101.57-42.71ZM99.91-32.34L133.49-32.34L133.49-3.62L128.39-3.62L128.39-7.49L105.01-7.49L105.01-3.62L99.91-3.62L99.91-32.34ZM128.39-27.95L105.01-27.95L105.01-11.95L128.39-11.95L128.39-27.95ZM95.70-55.16L91.79-50.84Q86.80-56.92 80.86-61.35L80.86-61.35L84.52-65.39Q90.14-61.35 95.70-55.16L95.70-55.16ZM92.00-38.53L88.10-34.21Q82.93-40.04 76.89-44.51L76.89-44.51L80.54-48.55Q87.01-43.95 92.00-38.53L92.00-38.53ZM81.42-4.18L77.17-8.79Q85.04-18.07 91.23-30.38L91.23-30.38L95.03-26.79Q88.63-13.54 81.42-4.18L81.42-4.18Z'); 158 | uji.getD({ anchor: 'center top' }, 'M-33.54 3.59L-33.54 13.54L-7.00 13.54L-7.00 27.98L-12.41 27.98L-12.41 18.07L-59.73 18.07L-59.73 27.98L-65.07 27.98L-65.07 13.54L-39.02 13.54L-39.02 3.59L-33.54 3.59ZM-15.54 30.73L-32.87 30.73L-32.87 41.52L-4.32 41.52L-4.32 46.20L-32.87 46.20L-32.87 63.35Q-32.87 66.41-34.38 67.57L-34.38 67.57Q-35.65 68.52-39.02 68.52L-39.02 68.52Q-43.56 68.52-49.18 67.89L-49.18 67.89L-49.96 62.54Q-43.59 63.42-40.32 63.42L-40.32 63.42Q-38.21 63.42-38.21 61.63L-38.21 61.63L-38.21 46.20L-67.61 46.20L-67.61 41.52L-38.21 41.52L-38.21 30.73L-56.53 30.73L-56.53 26.05L-15.54 26.05L-15.54 30.73ZM29.57 29.29L29.57 29.29L30.23 28.23Q36.14 17.47 40.18 4.96L40.18 4.96L45.77 6.61Q40.96 19.16 35.47 28.58L35.47 28.58L35.19 29.07L35.93 29.07Q42.79 28.79 50.45 28.05L50.45 28.05L56.88 27.56Q53.30 22.61 48.87 18.07L48.87 18.07L53.12 15.54Q61.59 24.71 67.25 32.91L67.25 32.91L62.86 36.42Q60.47 32.77 59.77 31.68L59.77 31.68L57.80 31.89Q45.18 33.50 23.91 34.70L23.91 34.70L21.87 29.50Q27.67 29.39 29.57 29.29ZM27.91 39.66L61.49 39.66L61.49 68.38L56.39 68.38L56.39 64.51L33.01 64.51L33.01 68.38L27.91 68.38L27.91 39.66ZM56.39 44.05L33.01 44.05L33.01 60.05L56.39 60.05L56.39 44.05ZM23.70 16.84L19.79 21.16Q14.80 15.08 8.86 10.65L8.86 10.65L12.52 6.61Q18.14 10.65 23.70 16.84L23.70 16.84ZM20.00 33.47L16.10 37.79Q10.93 31.96 4.89 27.49L4.89 27.49L8.54 23.45Q15.01 28.05 20.00 33.47L20.00 33.47ZM9.42 67.82L5.17 63.21Q13.04 53.93 19.23 41.63L19.23 41.63L23.03 45.21Q16.63 58.46 9.42 67.82L9.42 67.82Z'); 159 | uji.getD({ anchor: 'center middle' }, 'M-33.54-32.41L-33.54-22.46L-7.00-22.46L-7.00-8.02L-12.41-8.02L-12.41-17.93L-59.73-17.93L-59.73-8.02L-65.07-8.02L-65.07-22.46L-39.02-22.46L-39.02-32.41L-33.54-32.41ZM-15.54-5.27L-32.87-5.27L-32.87 5.52L-4.32 5.52L-4.32 10.20L-32.87 10.20L-32.87 27.35Q-32.87 30.41-34.38 31.57L-34.38 31.57Q-35.65 32.52-39.02 32.52L-39.02 32.52Q-43.56 32.52-49.18 31.89L-49.18 31.89L-49.96 26.54Q-43.59 27.42-40.32 27.42L-40.32 27.42Q-38.21 27.42-38.21 25.63L-38.21 25.63L-38.21 10.20L-67.61 10.20L-67.61 5.52L-38.21 5.52L-38.21-5.27L-56.53-5.27L-56.53-9.95L-15.54-9.95L-15.54-5.27ZM29.57-6.71L29.57-6.71L30.23-7.77Q36.14-18.53 40.18-31.04L40.18-31.04L45.77-29.39Q40.96-16.84 35.47-7.42L35.47-7.42L35.19-6.93L35.93-6.93Q42.79-7.21 50.45-7.95L50.45-7.95L56.88-8.44Q53.30-13.39 48.87-17.93L48.87-17.93L53.12-20.46Q61.59-11.29 67.25-3.09L67.25-3.09L62.86 0.42Q60.47-3.23 59.77-4.32L59.77-4.32L57.80-4.11Q45.18-2.50 23.91-1.30L23.91-1.30L21.87-6.50Q27.67-6.61 29.57-6.71ZM27.91 3.66L61.49 3.66L61.49 32.38L56.39 32.38L56.39 28.51L33.01 28.51L33.01 32.38L27.91 32.38L27.91 3.66ZM56.39 8.05L33.01 8.05L33.01 24.05L56.39 24.05L56.39 8.05ZM23.70-19.16L19.79-14.84Q14.80-20.92 8.86-25.35L8.86-25.35L12.52-29.39Q18.14-25.35 23.70-19.16L23.70-19.16ZM20.00-2.53L16.10 1.79Q10.93-4.04 4.89-8.51L4.89-8.51L8.54-12.55Q15.01-7.95 20.00-2.53L20.00-2.53ZM9.42 31.82L5.17 27.21Q13.04 17.93 19.23 5.63L19.23 5.63L23.03 9.21Q16.63 22.46 9.42 31.82L9.42 31.82Z'); 160 | uji.getD({ anchor: 'center bottom' }, 'M-33.54-68.41L-33.54-58.46L-7.00-58.46L-7.00-44.02L-12.41-44.02L-12.41-53.93L-59.73-53.93L-59.73-44.02L-65.07-44.02L-65.07-58.46L-39.02-58.46L-39.02-68.41L-33.54-68.41ZM-15.54-41.27L-32.87-41.27L-32.87-30.48L-4.32-30.48L-4.32-25.80L-32.87-25.80L-32.87-8.65Q-32.87-5.59-34.38-4.43L-34.38-4.43Q-35.65-3.48-39.02-3.48L-39.02-3.48Q-43.56-3.48-49.18-4.11L-49.18-4.11L-49.96-9.46Q-43.59-8.58-40.32-8.58L-40.32-8.58Q-38.21-8.58-38.21-10.37L-38.21-10.37L-38.21-25.80L-67.61-25.80L-67.61-30.48L-38.21-30.48L-38.21-41.27L-56.53-41.27L-56.53-45.95L-15.54-45.95L-15.54-41.27ZM29.57-42.71L29.57-42.71L30.23-43.77Q36.14-54.53 40.18-67.04L40.18-67.04L45.77-65.39Q40.96-52.84 35.47-43.42L35.47-43.42L35.19-42.93L35.93-42.93Q42.79-43.21 50.45-43.95L50.45-43.95L56.88-44.44Q53.30-49.39 48.87-53.93L48.87-53.93L53.12-56.46Q61.59-47.29 67.25-39.09L67.25-39.09L62.86-35.58Q60.47-39.23 59.77-40.32L59.77-40.32L57.80-40.11Q45.18-38.50 23.91-37.30L23.91-37.30L21.87-42.50Q27.67-42.61 29.57-42.71ZM27.91-32.34L61.49-32.34L61.49-3.62L56.39-3.62L56.39-7.49L33.01-7.49L33.01-3.62L27.91-3.62L27.91-32.34ZM56.39-27.95L33.01-27.95L33.01-11.95L56.39-11.95L56.39-27.95ZM23.70-55.16L19.79-50.84Q14.80-56.92 8.86-61.35L8.86-61.35L12.52-65.39Q18.14-61.35 23.70-55.16L23.70-55.16ZM20.00-38.53L16.10-34.21Q10.93-40.04 4.89-44.51L4.89-44.51L8.54-48.55Q15.01-43.95 20.00-38.53L20.00-38.53ZM9.42-4.18L5.17-8.79Q13.04-18.07 19.23-30.38L19.23-30.38L23.03-26.79Q16.63-13.54 9.42-4.18L9.42-4.18Z'); 161 | uji.getD({ anchor: 'right top' }, 'M-105.54 3.59L-105.54 13.54L-79.00 13.54L-79.00 27.98L-84.41 27.98L-84.41 18.07L-131.73 18.07L-131.73 27.98L-137.07 27.98L-137.07 13.54L-111.02 13.54L-111.02 3.59L-105.54 3.59ZM-87.54 30.73L-104.87 30.73L-104.87 41.52L-76.32 41.52L-76.32 46.20L-104.87 46.20L-104.87 63.35Q-104.87 66.41-106.38 67.57L-106.38 67.57Q-107.65 68.52-111.02 68.52L-111.02 68.52Q-115.56 68.52-121.18 67.89L-121.18 67.89L-121.96 62.54Q-115.59 63.42-112.32 63.42L-112.32 63.42Q-110.21 63.42-110.21 61.63L-110.21 61.63L-110.21 46.20L-139.61 46.20L-139.61 41.52L-110.21 41.52L-110.21 30.73L-128.53 30.73L-128.53 26.05L-87.54 26.05L-87.54 30.73ZM-42.43 29.29L-42.43 29.29L-41.77 28.23Q-35.86 17.47-31.82 4.96L-31.82 4.96L-26.23 6.61Q-31.04 19.16-36.53 28.58L-36.53 28.58L-36.81 29.07L-36.07 29.07Q-29.21 28.79-21.55 28.05L-21.55 28.05L-15.12 27.56Q-18.70 22.61-23.13 18.07L-23.13 18.07L-18.88 15.54Q-10.41 24.71-4.75 32.91L-4.75 32.91L-9.14 36.42Q-11.53 32.77-12.23 31.68L-12.23 31.68L-14.20 31.89Q-26.82 33.50-48.09 34.70L-48.09 34.70L-50.13 29.50Q-44.33 29.39-42.43 29.29ZM-44.09 39.66L-10.51 39.66L-10.51 68.38L-15.61 68.38L-15.61 64.51L-38.99 64.51L-38.99 68.38L-44.09 68.38L-44.09 39.66ZM-15.61 44.05L-38.99 44.05L-38.99 60.05L-15.61 60.05L-15.61 44.05ZM-48.30 16.84L-52.21 21.16Q-57.20 15.08-63.14 10.65L-63.14 10.65L-59.48 6.61Q-53.86 10.65-48.30 16.84L-48.30 16.84ZM-52.00 33.47L-55.90 37.79Q-61.07 31.96-67.11 27.49L-67.11 27.49L-63.46 23.45Q-56.99 28.05-52.00 33.47L-52.00 33.47ZM-62.58 67.82L-66.83 63.21Q-58.96 53.93-52.77 41.63L-52.77 41.63L-48.97 45.21Q-55.37 58.46-62.58 67.82L-62.58 67.82Z'); 162 | uji.getD({ anchor: 'right middle' }, 'M-105.54-32.41L-105.54-22.46L-79.00-22.46L-79.00-8.02L-84.41-8.02L-84.41-17.93L-131.73-17.93L-131.73-8.02L-137.07-8.02L-137.07-22.46L-111.02-22.46L-111.02-32.41L-105.54-32.41ZM-87.54-5.27L-104.87-5.27L-104.87 5.52L-76.32 5.52L-76.32 10.20L-104.87 10.20L-104.87 27.35Q-104.87 30.41-106.38 31.57L-106.38 31.57Q-107.65 32.52-111.02 32.52L-111.02 32.52Q-115.56 32.52-121.18 31.89L-121.18 31.89L-121.96 26.54Q-115.59 27.42-112.32 27.42L-112.32 27.42Q-110.21 27.42-110.21 25.63L-110.21 25.63L-110.21 10.20L-139.61 10.20L-139.61 5.52L-110.21 5.52L-110.21-5.27L-128.53-5.27L-128.53-9.95L-87.54-9.95L-87.54-5.27ZM-42.43-6.71L-42.43-6.71L-41.77-7.77Q-35.86-18.53-31.82-31.04L-31.82-31.04L-26.23-29.39Q-31.04-16.84-36.53-7.42L-36.53-7.42L-36.81-6.93L-36.07-6.93Q-29.21-7.21-21.55-7.95L-21.55-7.95L-15.12-8.44Q-18.70-13.39-23.13-17.93L-23.13-17.93L-18.88-20.46Q-10.41-11.29-4.75-3.09L-4.75-3.09L-9.14 0.42Q-11.53-3.23-12.23-4.32L-12.23-4.32L-14.20-4.11Q-26.82-2.50-48.09-1.30L-48.09-1.30L-50.13-6.50Q-44.33-6.61-42.43-6.71ZM-44.09 3.66L-10.51 3.66L-10.51 32.38L-15.61 32.38L-15.61 28.51L-38.99 28.51L-38.99 32.38L-44.09 32.38L-44.09 3.66ZM-15.61 8.05L-38.99 8.05L-38.99 24.05L-15.61 24.05L-15.61 8.05ZM-48.30-19.16L-52.21-14.84Q-57.20-20.92-63.14-25.35L-63.14-25.35L-59.48-29.39Q-53.86-25.35-48.30-19.16L-48.30-19.16ZM-52.00-2.53L-55.90 1.79Q-61.07-4.04-67.11-8.51L-67.11-8.51L-63.46-12.55Q-56.99-7.95-52.00-2.53L-52.00-2.53ZM-62.58 31.82L-66.83 27.21Q-58.96 17.93-52.77 5.63L-52.77 5.63L-48.97 9.21Q-55.37 22.46-62.58 31.82L-62.58 31.82Z'); 163 | uji.getD({ anchor: 'right bottom' }, 'M-105.54-68.41L-105.54-58.46L-79.00-58.46L-79.00-44.02L-84.41-44.02L-84.41-53.93L-131.73-53.93L-131.73-44.02L-137.07-44.02L-137.07-58.46L-111.02-58.46L-111.02-68.41L-105.54-68.41ZM-87.54-41.27L-104.87-41.27L-104.87-30.48L-76.32-30.48L-76.32-25.80L-104.87-25.80L-104.87-8.65Q-104.87-5.59-106.38-4.43L-106.38-4.43Q-107.65-3.48-111.02-3.48L-111.02-3.48Q-115.56-3.48-121.18-4.11L-121.18-4.11L-121.96-9.46Q-115.59-8.58-112.32-8.58L-112.32-8.58Q-110.21-8.58-110.21-10.37L-110.21-10.37L-110.21-25.80L-139.61-25.80L-139.61-30.48L-110.21-30.48L-110.21-41.27L-128.53-41.27L-128.53-45.95L-87.54-45.95L-87.54-41.27ZM-42.43-42.71L-42.43-42.71L-41.77-43.77Q-35.86-54.53-31.82-67.04L-31.82-67.04L-26.23-65.39Q-31.04-52.84-36.53-43.42L-36.53-43.42L-36.81-42.93L-36.07-42.93Q-29.21-43.21-21.55-43.95L-21.55-43.95L-15.12-44.44Q-18.70-49.39-23.13-53.93L-23.13-53.93L-18.88-56.46Q-10.41-47.29-4.75-39.09L-4.75-39.09L-9.14-35.58Q-11.53-39.23-12.23-40.32L-12.23-40.32L-14.20-40.11Q-26.82-38.50-48.09-37.30L-48.09-37.30L-50.13-42.50Q-44.33-42.61-42.43-42.71ZM-44.09-32.34L-10.51-32.34L-10.51-3.62L-15.61-3.62L-15.61-7.49L-38.99-7.49L-38.99-3.62L-44.09-3.62L-44.09-32.34ZM-15.61-27.95L-38.99-27.95L-38.99-11.95L-15.61-11.95L-15.61-27.95ZM-48.30-55.16L-52.21-50.84Q-57.20-56.92-63.14-61.35L-63.14-61.35L-59.48-65.39Q-53.86-61.35-48.30-55.16L-48.30-55.16ZM-52.00-38.53L-55.90-34.21Q-61.07-40.04-67.11-44.51L-67.11-44.51L-63.46-48.55Q-56.99-43.95-52.00-38.53L-52.00-38.53ZM-62.58-4.18L-66.83-8.79Q-58.96-18.07-52.77-30.38L-52.77-30.38L-48.97-26.79Q-55.37-13.54-62.58-4.18L-62.58-4.18Z'); 164 | }); 165 | }); 166 | }); 167 | --------------------------------------------------------------------------------