base.svg 54 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229
  1. <?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2. <svg
  3. xmlns:dc="http://purl.org/dc/elements/1.1/"
  4. xmlns:cc="http://creativecommons.org/ns#"
  5. xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  6. xmlns:svg="http://www.w3.org/2000/svg"
  7. xmlns="http://www.w3.org/2000/svg"
  8. xmlns:xlink="http://www.w3.org/1999/xlink"
  9. xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
  10. xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
  11. width="160mm"
  12. height="90mm"
  13. viewBox="0 0 160 90"
  14. version="1.1"
  15. id="svg8"
  16. inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
  17. sodipodi:docname="base.svg"
  18. inkscape:export-filename="C:\Users\bad-p\Desktop\Work Folder\VS CODE\Qwixx\frontend\inkScape\baseEndScreen.png"
  19. inkscape:export-xdpi="200"
  20. inkscape:export-ydpi="200">
  21. <defs
  22. id="defs2">
  23. <linearGradient
  24. inkscape:collect="always"
  25. id="linearGradient1460">
  26. <stop
  27. style="stop-color:#000000;stop-opacity:1;"
  28. offset="0"
  29. id="stop1456" />
  30. <stop
  31. style="stop-color:#000000;stop-opacity:0;"
  32. offset="1"
  33. id="stop1458" />
  34. </linearGradient>
  35. <linearGradient
  36. inkscape:collect="always"
  37. id="linearGradient1452">
  38. <stop
  39. style="stop-color:#000000;stop-opacity:1;"
  40. offset="0"
  41. id="stop1448" />
  42. <stop
  43. style="stop-color:#000000;stop-opacity:0;"
  44. offset="1"
  45. id="stop1450" />
  46. </linearGradient>
  47. <meshgradient
  48. inkscape:collect="always"
  49. id="meshgradient1343"
  50. gradientUnits="userSpaceOnUse"
  51. x="-39.745533"
  52. y="-109.25595"
  53. gradientTransform="translate(-132.85864,97.51786)">
  54. <meshrow
  55. id="meshrow1345">
  56. <meshpatch
  57. id="meshpatch1347">
  58. <stop
  59. path="c 53.3333,0 106.667,0 160,0"
  60. style="stop-color:#000000;stop-opacity:1"
  61. id="stop1349" />
  62. <stop
  63. path="c 0,30 0,60 0,90"
  64. style="stop-color:#ffffff;stop-opacity:1"
  65. id="stop1351" />
  66. <stop
  67. path="c -53.3333,0 -106.667,0 -160,0"
  68. style="stop-color:#000000;stop-opacity:1"
  69. id="stop1353" />
  70. <stop
  71. path="c 0,-30 0,-60 0,-90"
  72. style="stop-color:#ffffff;stop-opacity:1"
  73. id="stop1355" />
  74. </meshpatch>
  75. </meshrow>
  76. </meshgradient>
  77. <mask
  78. maskUnits="userSpaceOnUse"
  79. id="mask1357">
  80. <rect
  81. style="opacity:1;fill:#50514f;fill-opacity:1;stroke-width:1.24905"
  82. id="rect1359"
  83. width="160"
  84. height="90"
  85. x="-172.60417"
  86. y="-11.738093" />
  87. </mask>
  88. <linearGradient
  89. inkscape:collect="always"
  90. xlink:href="#linearGradient1452"
  91. id="linearGradient1454"
  92. x1="335.54587"
  93. y1="68.617458"
  94. x2="413.90302"
  95. y2="68.617455"
  96. gradientUnits="userSpaceOnUse"
  97. gradientTransform="translate(-335.54587,-23.617584)" />
  98. <linearGradient
  99. inkscape:collect="always"
  100. xlink:href="#linearGradient1460"
  101. id="linearGradient1462"
  102. x1="335.01788"
  103. y1="191.25595"
  104. x2="413.37503"
  105. y2="191.25595"
  106. gradientUnits="userSpaceOnUse"
  107. gradientTransform="translate(-495.01789,-146.25607)" />
  108. <clipPath
  109. clipPathUnits="userSpaceOnUse"
  110. id="clipPath3669">
  111. <rect
  112. style="opacity:1;fill:#000000;fill-opacity:1;stroke-width:0.399828"
  113. id="rect3671"
  114. width="10"
  115. height="10"
  116. x="79.186996"
  117. y="8.1596689" />
  118. </clipPath>
  119. <meshgradient
  120. inkscape:collect="always"
  121. id="meshgradient3725"
  122. gradientUnits="userSpaceOnUse"
  123. x="49.712132"
  124. y="-34.344131"
  125. gradientTransform="translate(-8.0561596,66.157994)">
  126. <meshrow
  127. id="meshrow3727">
  128. <meshpatch
  129. id="meshpatch3729">
  130. <stop
  131. path="c 3.33333,0 6.66667,0 10,0"
  132. style="stop-color:#ffffff;stop-opacity:1"
  133. id="stop3731" />
  134. <stop
  135. path="c 0,3.33333 0,6.66667 0,10"
  136. style="stop-color:#247ba0;stop-opacity:1"
  137. id="stop3733" />
  138. <stop
  139. path="c -3.33333,0 -6.66667,0 -10,0"
  140. style="stop-color:#ffffff;stop-opacity:1"
  141. id="stop3735" />
  142. <stop
  143. path="c 0,-3.33333 0,-6.66667 0,-10"
  144. style="stop-color:#247ba0;stop-opacity:1"
  145. id="stop3737" />
  146. </meshpatch>
  147. </meshrow>
  148. </meshgradient>
  149. <meshgradient
  150. inkscape:collect="always"
  151. id="meshgradient3772"
  152. gradientUnits="userSpaceOnUse"
  153. gradientTransform="translate(32.069302,98.540925)"
  154. x="49.712132"
  155. y="-34.344131">
  156. <meshrow
  157. id="meshrow3784">
  158. <meshpatch
  159. id="meshpatch3782">
  160. <stop
  161. path="c 3.33333,0 6.66667,0 10,0"
  162. style="stop-color:#ffffff;stop-opacity:1"
  163. id="stop3774" />
  164. <stop
  165. path="c 0,3.33333 0,6.66667 0,10"
  166. style="stop-color:#247ba0;stop-opacity:1"
  167. id="stop3776" />
  168. <stop
  169. path="c -3.33333,0 -6.66667,0 -10,0"
  170. style="stop-color:#ffffff;stop-opacity:1"
  171. id="stop3778" />
  172. <stop
  173. path="c 0,-3.33333 0,-6.66667 0,-10"
  174. style="stop-color:#247ba0;stop-opacity:1"
  175. id="stop3780" />
  176. </meshpatch>
  177. </meshrow>
  178. </meshgradient>
  179. <meshgradient
  180. inkscape:collect="always"
  181. id="meshgradient3790"
  182. gradientUnits="userSpaceOnUse"
  183. gradientTransform="translate(24.707708,21.892531)"
  184. x="49.712132"
  185. y="-34.344131">
  186. <meshrow
  187. id="meshrow3802">
  188. <meshpatch
  189. id="meshpatch3800">
  190. <stop
  191. path="c 3.33333,0 6.66667,0 10,0"
  192. style="stop-color:#ffffff;stop-opacity:1"
  193. id="stop3792" />
  194. <stop
  195. path="c 0,3.33333 0,6.66667 0,10"
  196. style="stop-color:#247ba0;stop-opacity:1"
  197. id="stop3794" />
  198. <stop
  199. path="c -3.33333,0 -6.66667,0 -10,0"
  200. style="stop-color:#ffffff;stop-opacity:1"
  201. id="stop3796" />
  202. <stop
  203. path="c 0,-3.33333 0,-6.66667 0,-10"
  204. style="stop-color:#247ba0;stop-opacity:1"
  205. id="stop3798" />
  206. </meshpatch>
  207. </meshrow>
  208. </meshgradient>
  209. <meshgradient
  210. inkscape:collect="always"
  211. id="meshgradient3826"
  212. gradientUnits="userSpaceOnUse"
  213. gradientTransform="translate(-43.917751,133.63232)"
  214. x="49.712132"
  215. y="-34.344131">
  216. <meshrow
  217. id="meshrow3838">
  218. <meshpatch
  219. id="meshpatch3836">
  220. <stop
  221. path="c 3.33333,0 6.66667,0 10,0"
  222. style="stop-color:#ffffff;stop-opacity:1"
  223. id="stop3828" />
  224. <stop
  225. path="c 0,3.33333 0,6.66667 0,10"
  226. style="stop-color:#247ba0;stop-opacity:1"
  227. id="stop3830" />
  228. <stop
  229. path="c -3.33333,0 -6.66667,0 -10,0"
  230. style="stop-color:#ffffff;stop-opacity:1"
  231. id="stop3832" />
  232. <stop
  233. path="c 0,-3.33333 0,-6.66667 0,-10"
  234. style="stop-color:#247ba0;stop-opacity:1"
  235. id="stop3834" />
  236. </meshpatch>
  237. </meshrow>
  238. </meshgradient>
  239. <meshgradient
  240. inkscape:collect="always"
  241. id="meshgradient3844"
  242. gradientUnits="userSpaceOnUse"
  243. gradientTransform="translate(84.224422,-7.8728267)"
  244. x="49.712132"
  245. y="-34.344131">
  246. <meshrow
  247. id="meshrow3856">
  248. <meshpatch
  249. id="meshpatch3854">
  250. <stop
  251. path="c 3.33333,0 6.66667,0 10,0"
  252. style="stop-color:#ffffff;stop-opacity:1"
  253. id="stop3846" />
  254. <stop
  255. path="c 0,3.33333 0,6.66667 0,10"
  256. style="stop-color:#247ba0;stop-opacity:1"
  257. id="stop3848" />
  258. <stop
  259. path="c -3.33333,0 -6.66667,0 -10,0"
  260. style="stop-color:#ffffff;stop-opacity:1"
  261. id="stop3850" />
  262. <stop
  263. path="c 0,-3.33333 0,-6.66667 0,-10"
  264. style="stop-color:#247ba0;stop-opacity:1"
  265. id="stop3852" />
  266. </meshpatch>
  267. </meshrow>
  268. </meshgradient>
  269. <meshgradient
  270. inkscape:collect="always"
  271. id="meshgradient3863"
  272. gradientUnits="userSpaceOnUse"
  273. gradientTransform="matrix(0.53989179,0,0,0.53989179,43.867728,71.611564)"
  274. x="49.712132"
  275. y="-34.344131">
  276. <meshrow
  277. id="meshrow3875">
  278. <meshpatch
  279. id="meshpatch3873">
  280. <stop
  281. path="c 3.33333,0 6.66667,0 10,0"
  282. style="stop-color:#ffffff;stop-opacity:1"
  283. id="stop3865" />
  284. <stop
  285. path="c 0,3.33333 0,6.66667 0,10"
  286. style="stop-color:#247ba0;stop-opacity:1"
  287. id="stop3867" />
  288. <stop
  289. path="c -3.33333,0 -6.66667,0 -10,0"
  290. style="stop-color:#ffffff;stop-opacity:1"
  291. id="stop3869" />
  292. <stop
  293. path="c 0,-3.33333 0,-6.66667 0,-10"
  294. style="stop-color:#247ba0;stop-opacity:1"
  295. id="stop3871" />
  296. </meshpatch>
  297. </meshrow>
  298. </meshgradient>
  299. <meshgradient
  300. inkscape:collect="always"
  301. id="meshgradient3881"
  302. gradientUnits="userSpaceOnUse"
  303. gradientTransform="matrix(0.53989179,0,0,0.53989179,77.481917,117.36185)"
  304. x="49.712132"
  305. y="-34.344131">
  306. <meshrow
  307. id="meshrow3893">
  308. <meshpatch
  309. id="meshpatch3891">
  310. <stop
  311. path="c 3.33333,0 6.66667,0 10,0"
  312. style="stop-color:#ffffff;stop-opacity:1"
  313. id="stop3883" />
  314. <stop
  315. path="c 0,3.33333 0,6.66667 0,10"
  316. style="stop-color:#247ba0;stop-opacity:1"
  317. id="stop3885" />
  318. <stop
  319. path="c -3.33333,0 -6.66667,0 -10,0"
  320. style="stop-color:#ffffff;stop-opacity:1"
  321. id="stop3887" />
  322. <stop
  323. path="c 0,-3.33333 0,-6.66667 0,-10"
  324. style="stop-color:#247ba0;stop-opacity:1"
  325. id="stop3889" />
  326. </meshpatch>
  327. </meshrow>
  328. </meshgradient>
  329. <meshgradient
  330. inkscape:collect="always"
  331. id="meshgradient3899"
  332. gradientUnits="userSpaceOnUse"
  333. gradientTransform="matrix(0.53989179,0,0,0.53989179,1.9097488,58.678891)"
  334. x="49.712132"
  335. y="-34.344131">
  336. <meshrow
  337. id="meshrow3911">
  338. <meshpatch
  339. id="meshpatch3909">
  340. <stop
  341. path="c 3.33333,0 6.66667,0 10,0"
  342. style="stop-color:#ffffff;stop-opacity:1"
  343. id="stop3901" />
  344. <stop
  345. path="c 0,3.33333 0,6.66667 0,10"
  346. style="stop-color:#247ba0;stop-opacity:1"
  347. id="stop3903" />
  348. <stop
  349. path="c -3.33333,0 -6.66667,0 -10,0"
  350. style="stop-color:#ffffff;stop-opacity:1"
  351. id="stop3905" />
  352. <stop
  353. path="c 0,-3.33333 0,-6.66667 0,-10"
  354. style="stop-color:#247ba0;stop-opacity:1"
  355. id="stop3907" />
  356. </meshpatch>
  357. </meshrow>
  358. </meshgradient>
  359. <clipPath
  360. clipPathUnits="userSpaceOnUse"
  361. id="clipPath3936">
  362. <rect
  363. style="opacity:1;fill:#ff00ff;fill-opacity:1;stroke-width:1.82643"
  364. id="rect3938"
  365. width="160"
  366. height="90"
  367. x="1.7763568e-15"
  368. y="9.8607613e-32"
  369. transform="rotate(75.492757)" />
  370. </clipPath>
  371. <clipPath
  372. clipPathUnits="userSpaceOnUse"
  373. id="clipPath3940">
  374. <rect
  375. style="opacity:1;fill:#ff00ff;fill-opacity:1;stroke-width:1.82643"
  376. id="rect3942"
  377. width="160"
  378. height="90"
  379. x="1.7763568e-15"
  380. y="0"
  381. transform="rotate(-16.346547)" />
  382. </clipPath>
  383. <clipPath
  384. clipPathUnits="userSpaceOnUse"
  385. id="clipPath3944">
  386. <rect
  387. style="opacity:1;fill:#ff00ff;fill-opacity:1;stroke-width:1.82643"
  388. id="rect3946"
  389. width="160"
  390. height="90"
  391. x="1.7763568e-15"
  392. y="9.8607613e-32"
  393. transform="rotate(-42.583221)" />
  394. </clipPath>
  395. <clipPath
  396. clipPathUnits="userSpaceOnUse"
  397. id="clipPath3948">
  398. <rect
  399. style="opacity:1;fill:#ff00ff;fill-opacity:1;stroke-width:1.82643"
  400. id="rect3950"
  401. width="160"
  402. height="90"
  403. x="1.7763568e-15"
  404. y="0"
  405. transform="rotate(-16.346547)" />
  406. </clipPath>
  407. <clipPath
  408. clipPathUnits="userSpaceOnUse"
  409. id="clipPath3952">
  410. <rect
  411. style="opacity:1;fill:#ff00ff;fill-opacity:1;stroke-width:1.82643"
  412. id="rect3954"
  413. width="160"
  414. height="90"
  415. x="1.7763568e-15"
  416. y="0"
  417. transform="rotate(34.026606)" />
  418. </clipPath>
  419. <clipPath
  420. clipPathUnits="userSpaceOnUse"
  421. id="clipPath3956">
  422. <rect
  423. style="opacity:1;fill:#ff00ff;fill-opacity:1;stroke-width:1.82643"
  424. id="rect3958"
  425. width="160"
  426. height="90"
  427. x="1.7763568e-15"
  428. y="2.9582284e-31"
  429. transform="rotate(35.93234)" />
  430. </clipPath>
  431. <clipPath
  432. clipPathUnits="userSpaceOnUse"
  433. id="clipPath3960">
  434. <rect
  435. style="opacity:1;fill:#ff00ff;fill-opacity:1;stroke-width:1.82643"
  436. id="rect3962"
  437. width="160"
  438. height="90"
  439. x="1.7763568e-15"
  440. y="2.9582284e-31"
  441. transform="rotate(35.93234)" />
  442. </clipPath>
  443. <clipPath
  444. clipPathUnits="userSpaceOnUse"
  445. id="clipPath3964">
  446. <rect
  447. style="opacity:1;fill:#ff00ff;fill-opacity:1;stroke-width:1.82643"
  448. id="rect3966"
  449. width="160"
  450. height="90"
  451. x="1.7763568e-15"
  452. y="2.9582284e-31"
  453. transform="rotate(35.93234)" />
  454. </clipPath>
  455. <clipPath
  456. clipPathUnits="userSpaceOnUse"
  457. id="clipPath3968">
  458. <rect
  459. style="opacity:1;fill:#ff00ff;fill-opacity:1;stroke-width:1.82643"
  460. id="rect3970"
  461. width="160"
  462. height="90"
  463. x="1.7763568e-15"
  464. y="2.9582284e-31"
  465. transform="rotate(35.93234)" />
  466. </clipPath>
  467. <clipPath
  468. clipPathUnits="userSpaceOnUse"
  469. id="clipPath3972">
  470. <rect
  471. style="opacity:1;fill:#ff00ff;fill-opacity:1;stroke-width:1.82643"
  472. id="rect3974"
  473. width="160"
  474. height="90"
  475. x="1.7763568e-15"
  476. y="0" />
  477. </clipPath>
  478. <meshgradient
  479. inkscape:collect="always"
  480. id="meshgradient3976"
  481. gradientUnits="userSpaceOnUse"
  482. gradientTransform="translate(52.031922,-47.594374)"
  483. x="49.712132"
  484. y="-34.344131">
  485. <meshrow
  486. id="meshrow3988">
  487. <meshpatch
  488. id="meshpatch3986">
  489. <stop
  490. path="c 3.33333,0 6.66667,0 10,0"
  491. style="stop-color:#ffffff;stop-opacity:1"
  492. id="stop3978" />
  493. <stop
  494. path="c 0,3.33333 0,6.66667 0,10"
  495. style="stop-color:#247ba0;stop-opacity:1"
  496. id="stop3980" />
  497. <stop
  498. path="c -3.33333,0 -6.66667,0 -10,0"
  499. style="stop-color:#ffffff;stop-opacity:1"
  500. id="stop3982" />
  501. <stop
  502. path="c 0,-3.33333 0,-6.66667 0,-10"
  503. style="stop-color:#247ba0;stop-opacity:1"
  504. id="stop3984" />
  505. </meshpatch>
  506. </meshrow>
  507. </meshgradient>
  508. <clipPath
  509. clipPathUnits="userSpaceOnUse"
  510. id="clipPath4166">
  511. <rect
  512. style="opacity:1;fill:#ff00ff;fill-opacity:1;stroke-width:0.830842"
  513. id="rect4168"
  514. width="160"
  515. height="90"
  516. x="-2.4651903e-32"
  517. y="4.4408921e-16"
  518. transform="rotate(75.492757)" />
  519. </clipPath>
  520. <clipPath
  521. clipPathUnits="userSpaceOnUse"
  522. id="clipPath4170">
  523. <rect
  524. style="opacity:1;fill:#ff00ff;fill-opacity:1;stroke-width:0.830842"
  525. id="rect4172"
  526. width="160"
  527. height="90"
  528. x="-3.4745038"
  529. y="4.0090427"
  530. transform="rotate(-16.346547)" />
  531. </clipPath>
  532. <clipPath
  533. clipPathUnits="userSpaceOnUse"
  534. id="clipPath4174">
  535. <rect
  536. style="opacity:1;fill:#ff00ff;fill-opacity:1;stroke-width:0.830842"
  537. id="rect4176"
  538. width="160"
  539. height="90"
  540. x="0.13363476"
  541. y="2.80633"
  542. transform="rotate(-42.583221)" />
  543. </clipPath>
  544. <clipPath
  545. clipPathUnits="userSpaceOnUse"
  546. id="clipPath4178">
  547. <rect
  548. style="opacity:1;fill:#ff00ff;fill-opacity:1;stroke-width:0.830842"
  549. id="rect4180"
  550. width="160"
  551. height="90"
  552. x="0"
  553. y="4.4408921e-16"
  554. transform="rotate(-16.346547)" />
  555. </clipPath>
  556. <clipPath
  557. clipPathUnits="userSpaceOnUse"
  558. id="clipPath4182">
  559. <rect
  560. style="opacity:1;fill:#ff00ff;fill-opacity:1;stroke-width:0.830842"
  561. id="rect4184"
  562. width="160"
  563. height="90"
  564. x="-2.4651903e-32"
  565. y="4.4408921e-16"
  566. transform="rotate(34.026606)" />
  567. </clipPath>
  568. <clipPath
  569. clipPathUnits="userSpaceOnUse"
  570. id="clipPath4186">
  571. <rect
  572. style="opacity:1;fill:#ff00ff;fill-opacity:1;stroke-width:0.830842"
  573. id="rect4188"
  574. width="160"
  575. height="90"
  576. x="-0.26726955"
  577. y="-6.5481033"
  578. transform="rotate(35.93234)" />
  579. </clipPath>
  580. <clipPath
  581. clipPathUnits="userSpaceOnUse"
  582. id="clipPath4190">
  583. <rect
  584. style="opacity:1;fill:#ff00ff;fill-opacity:1;stroke-width:0.830842"
  585. id="rect4192"
  586. width="160"
  587. height="90"
  588. x="-0.26726955"
  589. y="-6.5481033"
  590. transform="rotate(35.93234)" />
  591. </clipPath>
  592. <clipPath
  593. clipPathUnits="userSpaceOnUse"
  594. id="clipPath4194">
  595. <rect
  596. style="opacity:1;fill:#ff00ff;fill-opacity:1;stroke-width:0.830842"
  597. id="rect4196"
  598. width="160"
  599. height="90"
  600. x="0.13363473"
  601. y="2.80633"
  602. transform="rotate(35.93234)" />
  603. </clipPath>
  604. <clipPath
  605. clipPathUnits="userSpaceOnUse"
  606. id="clipPath4198">
  607. <rect
  608. style="opacity:1;fill:#ff00ff;fill-opacity:1;stroke-width:0.830842"
  609. id="rect4200"
  610. width="160"
  611. height="90"
  612. x="0.13363473"
  613. y="2.80633"
  614. transform="rotate(35.93234)" />
  615. </clipPath>
  616. </defs>
  617. <sodipodi:namedview
  618. id="base"
  619. pagecolor="#ffffff"
  620. bordercolor="#666666"
  621. borderopacity="1.0"
  622. inkscape:pageopacity="0.0"
  623. inkscape:pageshadow="2"
  624. inkscape:zoom="1.4"
  625. inkscape:cx="252.00933"
  626. inkscape:cy="205.94901"
  627. inkscape:document-units="mm"
  628. inkscape:current-layer="layer32"
  629. inkscape:document-rotation="0"
  630. showgrid="false"
  631. borderlayer="false"
  632. inkscape:pagecheckerboard="true"
  633. inkscape:window-width="1920"
  634. inkscape:window-height="1017"
  635. inkscape:window-x="-8"
  636. inkscape:window-y="-8"
  637. inkscape:window-maximized="1" />
  638. <metadata
  639. id="metadata5">
  640. <rdf:RDF>
  641. <cc:Work
  642. rdf:about="">
  643. <dc:format>image/svg+xml</dc:format>
  644. <dc:type
  645. rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
  646. <dc:title />
  647. </cc:Work>
  648. </rdf:RDF>
  649. </metadata>
  650. <g
  651. inkscape:groupmode="layer"
  652. id="layer21"
  653. inkscape:label="background"
  654. sodipodi:insensitive="true">
  655. <g
  656. inkscape:groupmode="layer"
  657. id="layer30"
  658. inkscape:label="color">
  659. <rect
  660. style="opacity:1;fill:#ffffff;fill-opacity:1;stroke-width:1.30599"
  661. id="rect4203"
  662. width="160"
  663. height="90"
  664. x="0"
  665. y="0" />
  666. </g>
  667. <g
  668. inkscape:groupmode="layer"
  669. id="layer22"
  670. inkscape:label="mesh"
  671. sodipodi:insensitive="true"
  672. style="display:inline">
  673. <rect
  674. style="opacity:0.851613;fill:url(#meshgradient1343);fill-opacity:1;stroke-width:1.24905"
  675. id="rect1233-1"
  676. width="160"
  677. height="90"
  678. x="-172.60417"
  679. y="-11.738091"
  680. mask="url(#mask1357)"
  681. transform="translate(172.60418,11.738093)" />
  682. </g>
  683. <g
  684. inkscape:groupmode="layer"
  685. id="layer23"
  686. inkscape:label="gradientLeft"
  687. sodipodi:insensitive="true">
  688. <rect
  689. style="opacity:0.851613;fill:url(#linearGradient1462);fill-opacity:1;stroke-width:1.24905"
  690. id="rect1233-08"
  691. width="160"
  692. height="90"
  693. x="-160"
  694. y="-0.00012207031"
  695. transform="scale(-1,1)" />
  696. </g>
  697. <g
  698. inkscape:groupmode="layer"
  699. id="layer24"
  700. inkscape:label="gradientRight"
  701. sodipodi:insensitive="true">
  702. <rect
  703. style="opacity:0.851613;fill:url(#linearGradient1454);fill-opacity:1;stroke-width:1.24905"
  704. id="rect1233-0"
  705. width="160"
  706. height="90"
  707. x="-5.6843419e-14"
  708. y="-0.00012588501" />
  709. </g>
  710. <g
  711. inkscape:groupmode="layer"
  712. id="layer25"
  713. inkscape:label="meshBoxes"
  714. style="display:inline"
  715. sodipodi:insensitive="true">
  716. <g
  717. inkscape:groupmode="layer"
  718. id="layer28"
  719. inkscape:label="jello"
  720. sodipodi:insensitive="true">
  721. <rect
  722. style="opacity:1;fill:url(#meshgradient3772);fill-opacity:1;stroke-width:0.782936"
  723. id="rect3673"
  724. width="10"
  725. height="10"
  726. x="81.781441"
  727. y="64.196793"
  728. transform="rotate(-35.93234,-4.3940071,-1.1971084)"
  729. clip-path="url(#clipPath4198)" />
  730. <rect
  731. style="opacity:1;fill:url(#meshgradient3863);fill-opacity:1;stroke-width:0.422701"
  732. id="rect3859"
  733. width="5.3989177"
  734. height="5.3989177"
  735. x="70.706909"
  736. y="53.06945"
  737. transform="rotate(-35.93234,-4.3940071,-1.1971084)"
  738. clip-path="url(#clipPath4194)" />
  739. <rect
  740. style="opacity:1;fill:url(#meshgradient3899);fill-opacity:1;stroke-width:0.422701"
  741. id="rect3895"
  742. width="5.3989177"
  743. height="5.3989177"
  744. x="28.74893"
  745. y="40.136776"
  746. transform="rotate(-35.93234,10.230411,2.8619384)"
  747. clip-path="url(#clipPath4190)" />
  748. <rect
  749. style="opacity:1;fill:url(#meshgradient3881);fill-opacity:1;stroke-width:0.422701"
  750. id="rect3877"
  751. width="5.3989177"
  752. height="5.3989177"
  753. x="104.3211"
  754. y="98.819733"
  755. transform="rotate(-35.93234,10.230411,2.8619384)"
  756. clip-path="url(#clipPath4186)" />
  757. <rect
  758. style="opacity:1;fill:url(#meshgradient3725);fill-opacity:1;stroke-width:0.782936"
  759. id="rect3768"
  760. width="10"
  761. height="10"
  762. x="41.655979"
  763. y="31.813862"
  764. transform="rotate(-34.026606)"
  765. clip-path="url(#clipPath4182)" />
  766. <rect
  767. style="opacity:1;fill:url(#meshgradient3790);fill-opacity:1;stroke-width:0.782936"
  768. id="rect3786"
  769. width="10"
  770. height="10"
  771. x="74.419853"
  772. y="-12.4516"
  773. transform="rotate(16.346547)"
  774. clip-path="url(#clipPath4178)" />
  775. <rect
  776. style="opacity:1;fill:url(#meshgradient3976);fill-opacity:1;stroke-width:0.782936"
  777. id="rect3804"
  778. width="10"
  779. height="10"
  780. x="101.74406"
  781. y="-81.938499"
  782. transform="rotate(42.583221,3.5336724,-1.5746169)"
  783. clip-path="url(#clipPath4174)" />
  784. <rect
  785. style="opacity:1;fill:url(#meshgradient3844);fill-opacity:1;stroke-width:0.782936"
  786. id="rect3822"
  787. width="10"
  788. height="10"
  789. x="133.93654"
  790. y="-42.216953"
  791. transform="rotate(16.346547,15.69378,10.091136)"
  792. clip-path="url(#clipPath4170)" />
  793. <rect
  794. style="opacity:1;fill:url(#meshgradient3826);fill-opacity:1;stroke-width:0.782936"
  795. id="rect3840"
  796. width="10"
  797. height="10"
  798. x="5.794373"
  799. y="99.288177"
  800. transform="rotate(-75.492757)"
  801. clip-path="url(#clipPath4166)" />
  802. </g>
  803. </g>
  804. </g>
  805. <g
  806. inkscape:groupmode="layer"
  807. id="layer2"
  808. inkscape:label="a"
  809. style="display:inline"
  810. sodipodi:insensitive="true">
  811. <g
  812. inkscape:groupmode="layer"
  813. id="layer7"
  814. inkscape:label="highlight"
  815. style="display:none"
  816. sodipodi:insensitive="true">
  817. <rect
  818. style="fill:#aa8800;stroke-width:0.308702"
  819. id="rect11"
  820. width="140"
  821. height="60"
  822. x="10"
  823. y="20" />
  824. <text
  825. xml:space="preserve"
  826. style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
  827. x="61.799107"
  828. y="44.412205"
  829. id="text889"><tspan
  830. sodipodi:role="line"
  831. id="tspan887"
  832. x="61.799107"
  833. y="44.412205"
  834. style="stroke-width:0.264583">a</tspan></text>
  835. </g>
  836. <g
  837. inkscape:groupmode="layer"
  838. id="layer12"
  839. inkscape:label="lobby"
  840. style="display:none"
  841. sodipodi:insensitive="true">
  842. <image
  843. sodipodi:absref="C:\Users\bad-p\Desktop\Work Folder\VS CODE\Qwixx\frontend\inkScape\sectionA\lobby.svg"
  844. xlink:href="sectionA/lobby.svg"
  845. y="20"
  846. x="10"
  847. id="image2212"
  848. height="60.000092"
  849. width="140.00003"
  850. inkscape:svg-dpi="200"
  851. preserveAspectRatio="none" />
  852. </g>
  853. <g
  854. inkscape:groupmode="layer"
  855. id="layer13"
  856. inkscape:label="createGame"
  857. style="display:none"
  858. sodipodi:insensitive="true">
  859. <image
  860. sodipodi:absref="C:\Users\bad-p\Desktop\Work Folder\VS CODE\Qwixx\frontend\inkScape\sectionA\createGame.svg"
  861. xlink:href="sectionA/createGame.svg"
  862. y="20"
  863. x="10"
  864. id="image2000"
  865. height="60.000092"
  866. width="140.00003"
  867. inkscape:svg-dpi="200"
  868. preserveAspectRatio="none" />
  869. </g>
  870. <g
  871. inkscape:groupmode="layer"
  872. id="layer26"
  873. inkscape:label="options"
  874. style="display:none"
  875. sodipodi:insensitive="true">
  876. <image
  877. sodipodi:absref="C:\Users\bad-p\Desktop\Work Folder\VS CODE\Qwixx\frontend\inkScape\sectionA\options.svg"
  878. xlink:href="sectionA/options.svg"
  879. y="20"
  880. x="10"
  881. id="image1778"
  882. height="60.000092"
  883. width="140.00003"
  884. inkscape:svg-dpi="200"
  885. preserveAspectRatio="none" />
  886. </g>
  887. <g
  888. inkscape:groupmode="layer"
  889. id="layer14"
  890. inkscape:label="gameScreen"
  891. style="display:inline"
  892. sodipodi:insensitive="true">
  893. <image
  894. sodipodi:absref="C:\Users\bad-p\Desktop\Work Folder\VS CODE\Qwixx\frontend\inkScape\sectionA\gameScreen.svg"
  895. xlink:href="sectionA/gameScreen.svg"
  896. y="20"
  897. x="10"
  898. id="image1660"
  899. height="60.000092"
  900. width="140.00003"
  901. inkscape:svg-dpi="200"
  902. preserveAspectRatio="none" />
  903. </g>
  904. <g
  905. inkscape:groupmode="layer"
  906. id="layer16"
  907. inkscape:label="endGame"
  908. style="display:none"
  909. sodipodi:insensitive="true">
  910. <image
  911. sodipodi:absref="C:\Users\bad-p\Desktop\Work Folder\VS CODE\Qwixx\frontend\inkScape\sectionA\endScreen.svg"
  912. xlink:href="sectionA/endScreen.svg"
  913. y="20"
  914. x="10"
  915. id="image1384"
  916. height="60.000092"
  917. width="140.00003"
  918. inkscape:svg-dpi="200"
  919. preserveAspectRatio="none" />
  920. </g>
  921. </g>
  922. <g
  923. inkscape:groupmode="layer"
  924. id="layer3"
  925. inkscape:label="b"
  926. sodipodi:insensitive="true"
  927. style="display:inline">
  928. <g
  929. inkscape:groupmode="layer"
  930. id="layer8"
  931. inkscape:label="highlight 1"
  932. style="display:none"
  933. sodipodi:insensitive="true">
  934. <rect
  935. style="fill:#e9afaf;stroke-width:0.223407"
  936. id="rect14"
  937. width="40"
  938. height="20"
  939. x="10"
  940. y="0" />
  941. <text
  942. xml:space="preserve"
  943. style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
  944. x="16.252975"
  945. y="8.6934528"
  946. id="text893"><tspan
  947. sodipodi:role="line"
  948. id="tspan891"
  949. x="16.252975"
  950. y="8.6934528"
  951. style="stroke-width:0.264583">b</tspan></text>
  952. </g>
  953. <g
  954. inkscape:groupmode="layer"
  955. id="layer20"
  956. inkscape:label="bBoxArea"
  957. sodipodi:insensitive="true">
  958. <image
  959. sodipodi:absref="C:\Users\bad-p\Desktop\Work Folder\VS CODE\Qwixx\frontend\inkScape\sectionB\bArea.png"
  960. xlink:href="sectionB/bArea.png"
  961. y="0"
  962. x="9.9949989"
  963. id="image1241"
  964. preserveAspectRatio="none"
  965. height="19.939001"
  966. width="40.005001" />
  967. </g>
  968. </g>
  969. <g
  970. inkscape:groupmode="layer"
  971. id="layer4"
  972. inkscape:label="c"
  973. style="display:inline"
  974. sodipodi:insensitive="true">
  975. <g
  976. inkscape:groupmode="layer"
  977. id="layer9"
  978. inkscape:label="highlight 2"
  979. style="display:none">
  980. <rect
  981. style="fill:#ff6600;stroke-width:0.40715"
  982. id="rect17"
  983. width="100"
  984. height="20"
  985. x="50"
  986. y="0" />
  987. <text
  988. xml:space="preserve"
  989. style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#2b0000;fill-opacity:1;stroke:none;stroke-width:0.264583"
  990. x="86.934525"
  991. y="10.016369"
  992. id="text877"><tspan
  993. sodipodi:role="line"
  994. id="tspan875"
  995. x="86.934525"
  996. y="10.016369"
  997. style="fill:#2b0000;stroke-width:0.264583">c</tspan></text>
  998. </g>
  999. <g
  1000. inkscape:groupmode="layer"
  1001. id="layer17"
  1002. inkscape:label="mainScreen"
  1003. style="display:none"
  1004. sodipodi:insensitive="true">
  1005. <image
  1006. sodipodi:absref="C:\Users\bad-p\Desktop\Work Folder\VS CODE\Qwixx\frontend\inkScape\sectionC\cButton.svg"
  1007. xlink:href="sectionC/cButton.svg"
  1008. preserveAspectRatio="none"
  1009. inkscape:svg-dpi="200"
  1010. width="100.00007"
  1011. height="20.000013"
  1012. id="image1712"
  1013. x="50"
  1014. y="0" />
  1015. <image
  1016. sodipodi:absref="C:\Users\bad-p\Desktop\Work Folder\VS CODE\Qwixx\frontend\inkScape\sectionC\mainScreenButtons.png"
  1017. xlink:href="sectionC/mainScreenButtons.png"
  1018. y="-1.7763568e-15"
  1019. x="50"
  1020. id="image2535"
  1021. preserveAspectRatio="none"
  1022. height="19.939001"
  1023. width="99.949005" />
  1024. </g>
  1025. <g
  1026. inkscape:groupmode="layer"
  1027. id="layer27"
  1028. inkscape:label="gameScreen 1"
  1029. sodipodi:insensitive="true"
  1030. style="display:inline">
  1031. <image
  1032. sodipodi:absref="C:\Users\bad-p\Desktop\Work Folder\VS CODE\Qwixx\frontend\inkScape\sectionC\gameScreen.png"
  1033. xlink:href="sectionC/gameScreen.png"
  1034. y="-7.1054274e-15"
  1035. x="50"
  1036. id="image2549"
  1037. preserveAspectRatio="none"
  1038. height="19.939001"
  1039. width="99.949005" />
  1040. </g>
  1041. <g
  1042. inkscape:groupmode="layer"
  1043. id="layer29"
  1044. inkscape:label="endScreen"
  1045. sodipodi:insensitive="true"
  1046. style="display:none">
  1047. <image
  1048. sodipodi:absref="C:\Users\bad-p\Desktop\Work Folder\VS CODE\Qwixx\frontend\inkScape\sectionC\endScreenButtons.png"
  1049. xlink:href="sectionC/endScreenButtons.png"
  1050. y="0"
  1051. x="50"
  1052. id="image2563"
  1053. preserveAspectRatio="none"
  1054. height="19.939001"
  1055. width="99.949005" />
  1056. </g>
  1057. <g
  1058. inkscape:groupmode="layer"
  1059. id="layer31"
  1060. inkscape:label="options 1"
  1061. sodipodi:insensitive="true"
  1062. style="display:none">
  1063. <image
  1064. sodipodi:absref="C:\Users\bad-p\Desktop\Work Folder\VS CODE\Qwixx\frontend\inkScape\sectionC\createScreenButtons.png"
  1065. xlink:href="sectionC/createScreenButtons.png"
  1066. y="0"
  1067. x="50"
  1068. id="image2577"
  1069. preserveAspectRatio="none"
  1070. height="19.939001"
  1071. width="99.949005" />
  1072. </g>
  1073. <g
  1074. inkscape:groupmode="layer"
  1075. id="layer32"
  1076. inkscape:label="createGame 1"
  1077. sodipodi:insensitive="true"
  1078. style="display:none">
  1079. <image
  1080. sodipodi:absref="C:\Users\bad-p\Desktop\Work Folder\VS CODE\Qwixx\frontend\inkScape\sectionC\createScreenButtons.png"
  1081. xlink:href="sectionC/createScreenButtons.png"
  1082. y="0"
  1083. x="50"
  1084. id="image2591"
  1085. preserveAspectRatio="none"
  1086. height="19.939001"
  1087. width="99.949005" />
  1088. </g>
  1089. </g>
  1090. <g
  1091. inkscape:groupmode="layer"
  1092. id="layer5"
  1093. inkscape:label="d"
  1094. sodipodi:insensitive="true"
  1095. style="display:inline">
  1096. <g
  1097. inkscape:groupmode="layer"
  1098. id="layer10"
  1099. inkscape:label="highlight 3"
  1100. style="display:none">
  1101. <rect
  1102. style="fill:#0000ff;stroke-width:0.33977"
  1103. id="rect20"
  1104. width="10"
  1105. height="90"
  1106. x="0"
  1107. y="0" />
  1108. <rect
  1109. style="fill:#0000ff;stroke-width:0.33977"
  1110. id="rect20-4"
  1111. width="10"
  1112. height="90"
  1113. x="150"
  1114. y="0" />
  1115. <text
  1116. xml:space="preserve"
  1117. style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
  1118. x="2.8348217"
  1119. y="44.79018"
  1120. id="text881"><tspan
  1121. sodipodi:role="line"
  1122. id="tspan879"
  1123. x="2.8348217"
  1124. y="44.79018"
  1125. style="stroke-width:0.264583">d</tspan></text>
  1126. </g>
  1127. <g
  1128. inkscape:groupmode="layer"
  1129. id="layer1"
  1130. inkscape:label="dR"
  1131. style="display:inline">
  1132. <g
  1133. inkscape:groupmode="layer"
  1134. id="layer15"
  1135. inkscape:label="dL"
  1136. style="display:inline">
  1137. <image
  1138. sodipodi:absref="C:\Users\bad-p\Desktop\Work Folder\VS CODE\Qwixx\frontend\inkScape\sectionDecoration\decoration.svg"
  1139. xlink:href="sectionDecoration/decoration.svg"
  1140. preserveAspectRatio="none"
  1141. inkscape:svg-dpi="96"
  1142. width="10.000007"
  1143. height="89.999878"
  1144. id="image1369"
  1145. x="150"
  1146. y="0" />
  1147. </g>
  1148. <image
  1149. sodipodi:absref="C:\Users\bad-p\Desktop\Work Folder\VS CODE\Qwixx\frontend\inkScape\sectionDecoration\decoration.svg"
  1150. xlink:href="sectionDecoration/decoration.svg"
  1151. preserveAspectRatio="none"
  1152. inkscape:svg-dpi="96"
  1153. width="10.000007"
  1154. height="89.999878"
  1155. id="image1127"
  1156. x="0"
  1157. y="0" />
  1158. </g>
  1159. </g>
  1160. <g
  1161. inkscape:groupmode="layer"
  1162. id="layer6"
  1163. inkscape:label="e"
  1164. sodipodi:insensitive="true"
  1165. style="display:inline">
  1166. <g
  1167. inkscape:groupmode="layer"
  1168. id="layer11"
  1169. inkscape:label="highlight 4"
  1170. style="display:none"
  1171. sodipodi:insensitive="true">
  1172. <rect
  1173. style="fill:#280b0b;stroke-width:0.234253"
  1174. id="rect23"
  1175. width="140"
  1176. height="10"
  1177. x="10"
  1178. y="80" />
  1179. <text
  1180. xml:space="preserve"
  1181. style="font-style:normal;font-weight:normal;font-size:10.5833px;line-height:1.25;font-family:sans-serif;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
  1182. x="25.324404"
  1183. y="88.068451"
  1184. id="text885"><tspan
  1185. sodipodi:role="line"
  1186. id="tspan883"
  1187. x="25.324404"
  1188. y="88.068451"
  1189. style="fill:#00ff00;stroke-width:0.264583">e</tspan></text>
  1190. </g>
  1191. <g
  1192. inkscape:groupmode="layer"
  1193. id="layer18"
  1194. inkscape:label="chatBox"
  1195. sodipodi:insensitive="true"
  1196. style="display:none">
  1197. <image
  1198. sodipodi:absref="C:\Users\bad-p\Desktop\Work Folder\VS CODE\Qwixx\frontend\inkScape\sectionE\chatBox.png"
  1199. xlink:href="sectionE/chatBox.png"
  1200. width="139.95401"
  1201. height="10.032999"
  1202. preserveAspectRatio="none"
  1203. id="image1236"
  1204. x="10.04599"
  1205. y="79.966881" />
  1206. </g>
  1207. <g
  1208. inkscape:groupmode="layer"
  1209. id="layer19"
  1210. inkscape:label="chatBoxExpanded"
  1211. sodipodi:insensitive="true"
  1212. style="display:none">
  1213. <image
  1214. sodipodi:absref="C:\Users\bad-p\Desktop\Work Folder\VS CODE\Qwixx\frontend\inkScape\sectionE\chatBoxExpansion.png"
  1215. xlink:href="sectionE/chatBoxExpansion.png"
  1216. width="139.95401"
  1217. height="29.972"
  1218. preserveAspectRatio="none"
  1219. id="image1250"
  1220. x="10.000007"
  1221. y="60.027878" />
  1222. </g>
  1223. </g>
  1224. <script
  1225. id="mesh_polyfill"
  1226. type="text/javascript">
  1227. !function(){const t=&quot;http://www.w3.org/2000/svg&quot;,e=&quot;http://www.w3.org/1999/xlink&quot;,s=&quot;http://www.w3.org/1999/xhtml&quot;,r=2;if(document.createElementNS(t,&quot;meshgradient&quot;).x)return;const n=(t,e,s,r)=&gt;{let n=new x(.5*(e.x+s.x),.5*(e.y+s.y)),o=new x(.5*(t.x+e.x),.5*(t.y+e.y)),i=new x(.5*(s.x+r.x),.5*(s.y+r.y)),a=new x(.5*(n.x+o.x),.5*(n.y+o.y)),h=new x(.5*(n.x+i.x),.5*(n.y+i.y)),l=new x(.5*(a.x+h.x),.5*(a.y+h.y));return[[t,o,a,l],[l,h,i,r]]},o=t=&gt;{let e=t[0].distSquared(t[1]),s=t[2].distSquared(t[3]),r=.25*t[0].distSquared(t[2]),n=.25*t[1].distSquared(t[3]),o=e&gt;s?e:s,i=r&gt;n?r:n;return 18*(o&gt;i?o:i)},i=(t,e)=&gt;Math.sqrt(t.distSquared(e)),a=(t,e)=&gt;t.scale(2/3).add(e.scale(1/3)),h=t=&gt;{let e,s,r,n,o,i,a,h=new g;return t.match(/(\w+\(\s*[^)]+\))+/g).forEach(t=&gt;{let l=t.match(/[\w.-]+/g),d=l.shift();switch(d){case&quot;translate&quot;:2===l.length?e=new g(1,0,0,1,l[0],l[1]):(console.error(&quot;mesh.js: translate does not have 2 arguments!&quot;),e=new g(1,0,0,1,0,0)),h=h.append(e);break;case&quot;scale&quot;:1===l.length?s=new g(l[0],0,0,l[0],0,0):2===l.length?s=new g(l[0],0,0,l[1],0,0):(console.error(&quot;mesh.js: scale does not have 1 or 2 arguments!&quot;),s=new g(1,0,0,1,0,0)),h=h.append(s);break;case&quot;rotate&quot;:if(3===l.length&amp;&amp;(e=new g(1,0,0,1,l[1],l[2]),h=h.append(e)),l[0]){r=l[0]*Math.PI/180;let t=Math.cos(r),e=Math.sin(r);Math.abs(t)&lt;1e-16&amp;&amp;(t=0),Math.abs(e)&lt;1e-16&amp;&amp;(e=0),a=new g(t,e,-e,t,0,0),h=h.append(a)}else console.error(&quot;math.js: No argument to rotate transform!&quot;);3===l.length&amp;&amp;(e=new g(1,0,0,1,-l[1],-l[2]),h=h.append(e));break;case&quot;skewX&quot;:l[0]?(r=l[0]*Math.PI/180,n=Math.tan(r),o=new g(1,0,n,1,0,0),h=h.append(o)):console.error(&quot;math.js: No argument to skewX transform!&quot;);break;case&quot;skewY&quot;:l[0]?(r=l[0]*Math.PI/180,n=Math.tan(r),i=new g(1,n,0,1,0,0),h=h.append(i)):console.error(&quot;math.js: No argument to skewY transform!&quot;);break;case&quot;matrix&quot;:6===l.length?h=h.append(new g(...l)):console.error(&quot;math.js: Incorrect number of arguments for matrix!&quot;);break;default:console.error(&quot;mesh.js: Unhandled transform type: &quot;+d)}}),h},l=t=&gt;{let e=[],s=t.split(/[ ,]+/);for(let t=0,r=s.length-1;t&lt;r;t+=2)e.push(new x(parseFloat(s[t]),parseFloat(s[t+1])));return e},d=(t,e)=&gt;{for(let s in e)t.setAttribute(s,e[s])},c=(t,e,s,r,n)=&gt;{let o,i,a=[0,0,0,0];for(let h=0;h&lt;3;++h)e[h]&lt;t[h]&amp;&amp;e[h]&lt;s[h]||t[h]&lt;e[h]&amp;&amp;s[h]&lt;e[h]?a[h]=0:(a[h]=.5*((e[h]-t[h])/r+(s[h]-e[h])/n),o=Math.abs(3*(e[h]-t[h])/r),i=Math.abs(3*(s[h]-e[h])/n),a[h]&gt;o?a[h]=o:a[h]&gt;i&amp;&amp;(a[h]=i));return a},u=[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0],[-3,3,0,0,-2,-1,0,0,0,0,0,0,0,0,0,0],[2,-2,0,0,1,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0],[0,0,0,0,0,0,0,0,-3,3,0,0,-2,-1,0,0],[0,0,0,0,0,0,0,0,2,-2,0,0,1,1,0,0],[-3,0,3,0,0,0,0,0,-2,0,-1,0,0,0,0,0],[0,0,0,0,-3,0,3,0,0,0,0,0,-2,0,-1,0],[9,-9,-9,9,6,3,-6,-3,6,-6,3,-3,4,2,2,1],[-6,6,6,-6,-3,-3,3,3,-4,4,-2,2,-2,-2,-1,-1],[2,0,-2,0,0,0,0,0,1,0,1,0,0,0,0,0],[0,0,0,0,2,0,-2,0,0,0,0,0,1,0,1,0],[-6,6,6,-6,-4,-2,4,2,-3,3,-3,3,-2,-1,-2,-1],[4,-4,-4,4,2,2,-2,-2,2,-2,2,-2,1,1,1,1]],f=t=&gt;{let e=[];for(let s=0;s&lt;16;++s){e[s]=0;for(let r=0;r&lt;16;++r)e[s]+=u[s][r]*t[r]}return e},p=(t,e,s)=&gt;{const r=e*e,n=s*s,o=e*e*e,i=s*s*s;return t[0]+t[1]*e+t[2]*r+t[3]*o+t[4]*s+t[5]*s*e+t[6]*s*r+t[7]*s*o+t[8]*n+t[9]*n*e+t[10]*n*r+t[11]*n*o+t[12]*i+t[13]*i*e+t[14]*i*r+t[15]*i*o},y=t=&gt;{let e=[],s=[],r=[];for(let s=0;s&lt;4;++s)e[s]=[],e[s][0]=n(t[0][s],t[1][s],t[2][s],t[3][s]),e[s][1]=[],e[s][1].push(...n(...e[s][0][0])),e[s][1].push(...n(...e[s][0][1])),e[s][2]=[],e[s][2].push(...n(...e[s][1][0])),e[s][2].push(...n(...e[s][1][1])),e[s][2].push(...n(...e[s][1][2])),e[s][2].push(...n(...e[s][1][3]));for(let t=0;t&lt;8;++t){s[t]=[];for(let r=0;r&lt;4;++r)s[t][r]=[],s[t][r][0]=n(e[0][2][t][r],e[1][2][t][r],e[2][2][t][r],e[3][2][t][r]),s[t][r][1]=[],s[t][r][1].push(...n(...s[t][r][0][0])),s[t][r][1].push(...n(...s[t][r][0][1])),s[t][r][2]=[],s[t][r][2].push(...n(...s[t][r][1][0])),s[t][r][2].push(...n(...s[t][r][1][1])),s[t][r][2].push(...n(...s[t][r][1][2])),s[t][r][2].push(...n(...s[t][r][1][3]))}for(let t=0;t&lt;8;++t){r[t]=[];for(let e=0;e&lt;8;++e)r[t][e]=[],r[t][e][0]=s[t][0][2][e],r[t][e][1]=s[t][1][2][e],r[t][e][2]=s[t][2][2][e],r[t][e][3]=s[t][3][2][e]}return r};class x{constructor(t,e){this.x=t||0,this.y=e||0}toString(){return`(x=${this.x}, y=${this.y})`}clone(){return new x(this.x,this.y)}add(t){return new x(this.x+t.x,this.y+t.y)}scale(t){return void 0===t.x?new x(this.x*t,this.y*t):new x(this.x*t.x,this.y*t.y)}distSquared(t){let e=this.x-t.x,s=this.y-t.y;return e*e+s*s}transform(t){let e=this.x*t.a+this.y*t.c+t.e,s=this.x*t.b+this.y*t.d+t.f;return new x(e,s)}}class g{constructor(t,e,s,r,n,o){void 0===t?(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0):(this.a=t,this.b=e,this.c=s,this.d=r,this.e=n,this.f=o)}toString(){return`affine: ${this.a} ${this.c} ${this.e} \n ${this.b} ${this.d} ${this.f}`}append(t){t instanceof g||console.error(&quot;mesh.js: argument to Affine.append is not affine!&quot;);let e=this.a*t.a+this.c*t.b,s=this.b*t.a+this.d*t.b,r=this.a*t.c+this.c*t.d,n=this.b*t.c+this.d*t.d,o=this.a*t.e+this.c*t.f+this.e,i=this.b*t.e+this.d*t.f+this.f;return new g(e,s,r,n,o,i)}}class w{constructor(t,e){this.nodes=t,this.colors=e}paintCurve(t,e){if(o(this.nodes)&gt;r){const s=n(...this.nodes);let r=[[],[]],o=[[],[]];for(let t=0;t&lt;4;++t)r[0][t]=this.colors[0][t],r[1][t]=(this.colors[0][t]+this.colors[1][t])/2,o[0][t]=r[1][t],o[1][t]=this.colors[1][t];let i=new w(s[0],r),a=new w(s[1],o);i.paintCurve(t,e),a.paintCurve(t,e)}else{let s=Math.round(this.nodes[0].x);if(s&gt;=0&amp;&amp;s&lt;e){let r=4*(~~this.nodes[0].y*e+s);t[r]=Math.round(this.colors[0][0]),t[r+1]=Math.round(this.colors[0][1]),t[r+2]=Math.round(this.colors[0][2]),t[r+3]=Math.round(this.colors[0][3])}}}}class m{constructor(t,e){this.nodes=t,this.colors=e}split(){let t=[[],[],[],[]],e=[[],[],[],[]],s=[[[],[]],[[],[]]],r=[[[],[]],[[],[]]];for(let s=0;s&lt;4;++s){const r=n(this.nodes[0][s],this.nodes[1][s],this.nodes[2][s],this.nodes[3][s]);t[0][s]=r[0][0],t[1][s]=r[0][1],t[2][s]=r[0][2],t[3][s]=r[0][3],e[0][s]=r[1][0],e[1][s]=r[1][1],e[2][s]=r[1][2],e[3][s]=r[1][3]}for(let t=0;t&lt;4;++t)s[0][0][t]=this.colors[0][0][t],s[0][1][t]=this.colors[0][1][t],s[1][0][t]=(this.colors[0][0][t]+this.colors[1][0][t])/2,s[1][1][t]=(this.colors[0][1][t]+this.colors[1][1][t])/2,r[0][0][t]=s[1][0][t],r[0][1][t]=s[1][1][t],r[1][0][t]=this.colors[1][0][t],r[1][1][t]=this.colors[1][1][t];return[new m(t,s),new m(e,r)]}paint(t,e){let s,n=!1;for(let t=0;t&lt;4;++t)if((s=o([this.nodes[0][t],this.nodes[1][t],this.nodes[2][t],this.nodes[3][t]]))&gt;r){n=!0;break}if(n){let s=this.split();s[0].paint(t,e),s[1].paint(t,e)}else{new w([...this.nodes[0]],[...this.colors[0]]).paintCurve(t,e)}}}class b{constructor(t){this.readMesh(t),this.type=t.getAttribute(&quot;type&quot;)||&quot;bilinear&quot;}readMesh(t){let e=[[]],s=[[]],r=Number(t.getAttribute(&quot;x&quot;)),n=Number(t.getAttribute(&quot;y&quot;));e[0][0]=new x(r,n);let o=t.children;for(let t=0,r=o.length;t&lt;r;++t){e[3*t+1]=[],e[3*t+2]=[],e[3*t+3]=[],s[t+1]=[];let r=o[t].children;for(let n=0,o=r.length;n&lt;o;++n){let o=r[n].children;for(let r=0,i=o.length;r&lt;i;++r){let i=r;0!==t&amp;&amp;++i;let h,d=o[r].getAttribute(&quot;path&quot;),c=&quot;l&quot;;null!=d&amp;&amp;(c=(h=d.match(/\s*([lLcC])\s*(.*)/))[1]);let u=l(h[2]);switch(c){case&quot;l&quot;:0===i?(e[3*t][3*n+3]=u[0].add(e[3*t][3*n]),e[3*t][3*n+1]=a(e[3*t][3*n],e[3*t][3*n+3]),e[3*t][3*n+2]=a(e[3*t][3*n+3],e[3*t][3*n])):1===i?(e[3*t+3][3*n+3]=u[0].add(e[3*t][3*n+3]),e[3*t+1][3*n+3]=a(e[3*t][3*n+3],e[3*t+3][3*n+3]),e[3*t+2][3*n+3]=a(e[3*t+3][3*n+3],e[3*t][3*n+3])):2===i?(0===n&amp;&amp;(e[3*t+3][3*n+0]=u[0].add(e[3*t+3][3*n+3])),e[3*t+3][3*n+1]=a(e[3*t+3][3*n],e[3*t+3][3*n+3]),e[3*t+3][3*n+2]=a(e[3*t+3][3*n+3],e[3*t+3][3*n])):(e[3*t+1][3*n]=a(e[3*t][3*n],e[3*t+3][3*n]),e[3*t+2][3*n]=a(e[3*t+3][3*n],e[3*t][3*n]));break;case&quot;L&quot;:0===i?(e[3*t][3*n+3]=u[0],e[3*t][3*n+1]=a(e[3*t][3*n],e[3*t][3*n+3]),e[3*t][3*n+2]=a(e[3*t][3*n+3],e[3*t][3*n])):1===i?(e[3*t+3][3*n+3]=u[0],e[3*t+1][3*n+3]=a(e[3*t][3*n+3],e[3*t+3][3*n+3]),e[3*t+2][3*n+3]=a(e[3*t+3][3*n+3],e[3*t][3*n+3])):2===i?(0===n&amp;&amp;(e[3*t+3][3*n+0]=u[0]),e[3*t+3][3*n+1]=a(e[3*t+3][3*n],e[3*t+3][3*n+3]),e[3*t+3][3*n+2]=a(e[3*t+3][3*n+3],e[3*t+3][3*n])):(e[3*t+1][3*n]=a(e[3*t][3*n],e[3*t+3][3*n]),e[3*t+2][3*n]=a(e[3*t+3][3*n],e[3*t][3*n]));break;case&quot;c&quot;:0===i?(e[3*t][3*n+1]=u[0].add(e[3*t][3*n]),e[3*t][3*n+2]=u[1].add(e[3*t][3*n]),e[3*t][3*n+3]=u[2].add(e[3*t][3*n])):1===i?(e[3*t+1][3*n+3]=u[0].add(e[3*t][3*n+3]),e[3*t+2][3*n+3]=u[1].add(e[3*t][3*n+3]),e[3*t+3][3*n+3]=u[2].add(e[3*t][3*n+3])):2===i?(e[3*t+3][3*n+2]=u[0].add(e[3*t+3][3*n+3]),e[3*t+3][3*n+1]=u[1].add(e[3*t+3][3*n+3]),0===n&amp;&amp;(e[3*t+3][3*n+0]=u[2].add(e[3*t+3][3*n+3]))):(e[3*t+2][3*n]=u[0].add(e[3*t+3][3*n]),e[3*t+1][3*n]=u[1].add(e[3*t+3][3*n]));break;case&quot;C&quot;:0===i?(e[3*t][3*n+1]=u[0],e[3*t][3*n+2]=u[1],e[3*t][3*n+3]=u[2]):1===i?(e[3*t+1][3*n+3]=u[0],e[3*t+2][3*n+3]=u[1],e[3*t+3][3*n+3]=u[2]):2===i?(e[3*t+3][3*n+2]=u[0],e[3*t+3][3*n+1]=u[1],0===n&amp;&amp;(e[3*t+3][3*n+0]=u[2])):(e[3*t+2][3*n]=u[0],e[3*t+1][3*n]=u[1]);break;default:console.error(&quot;mesh.js: &quot;+c+&quot; invalid path type.&quot;)}if(0===t&amp;&amp;0===n||r&gt;0){let e=window.getComputedStyle(o[r]).stopColor.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i),a=window.getComputedStyle(o[r]).stopOpacity,h=255;a&amp;&amp;(h=Math.floor(255*a)),e&amp;&amp;(0===i?(s[t][n]=[],s[t][n][0]=Math.floor(e[1]),s[t][n][1]=Math.floor(e[2]),s[t][n][2]=Math.floor(e[3]),s[t][n][3]=h):1===i?(s[t][n+1]=[],s[t][n+1][0]=Math.floor(e[1]),s[t][n+1][1]=Math.floor(e[2]),s[t][n+1][2]=Math.floor(e[3]),s[t][n+1][3]=h):2===i?(s[t+1][n+1]=[],s[t+1][n+1][0]=Math.floor(e[1]),s[t+1][n+1][1]=Math.floor(e[2]),s[t+1][n+1][2]=Math.floor(e[3]),s[t+1][n+1][3]=h):3===i&amp;&amp;(s[t+1][n]=[],s[t+1][n][0]=Math.floor(e[1]),s[t+1][n][1]=Math.floor(e[2]),s[t+1][n][2]=Math.floor(e[3]),s[t+1][n][3]=h))}}e[3*t+1][3*n+1]=new x,e[3*t+1][3*n+2]=new x,e[3*t+2][3*n+1]=new x,e[3*t+2][3*n+2]=new x,e[3*t+1][3*n+1].x=(-4*e[3*t][3*n].x+6*(e[3*t][3*n+1].x+e[3*t+1][3*n].x)+-2*(e[3*t][3*n+3].x+e[3*t+3][3*n].x)+3*(e[3*t+3][3*n+1].x+e[3*t+1][3*n+3].x)+-1*e[3*t+3][3*n+3].x)/9,e[3*t+1][3*n+2].x=(-4*e[3*t][3*n+3].x+6*(e[3*t][3*n+2].x+e[3*t+1][3*n+3].x)+-2*(e[3*t][3*n].x+e[3*t+3][3*n+3].x)+3*(e[3*t+3][3*n+2].x+e[3*t+1][3*n].x)+-1*e[3*t+3][3*n].x)/9,e[3*t+2][3*n+1].x=(-4*e[3*t+3][3*n].x+6*(e[3*t+3][3*n+1].x+e[3*t+2][3*n].x)+-2*(e[3*t+3][3*n+3].x+e[3*t][3*n].x)+3*(e[3*t][3*n+1].x+e[3*t+2][3*n+3].x)+-1*e[3*t][3*n+3].x)/9,e[3*t+2][3*n+2].x=(-4*e[3*t+3][3*n+3].x+6*(e[3*t+3][3*n+2].x+e[3*t+2][3*n+3].x)+-2*(e[3*t+3][3*n].x+e[3*t][3*n+3].x)+3*(e[3*t][3*n+2].x+e[3*t+2][3*n].x)+-1*e[3*t][3*n].x)/9,e[3*t+1][3*n+1].y=(-4*e[3*t][3*n].y+6*(e[3*t][3*n+1].y+e[3*t+1][3*n].y)+-2*(e[3*t][3*n+3].y+e[3*t+3][3*n].y)+3*(e[3*t+3][3*n+1].y+e[3*t+1][3*n+3].y)+-1*e[3*t+3][3*n+3].y)/9,e[3*t+1][3*n+2].y=(-4*e[3*t][3*n+3].y+6*(e[3*t][3*n+2].y+e[3*t+1][3*n+3].y)+-2*(e[3*t][3*n].y+e[3*t+3][3*n+3].y)+3*(e[3*t+3][3*n+2].y+e[3*t+1][3*n].y)+-1*e[3*t+3][3*n].y)/9,e[3*t+2][3*n+1].y=(-4*e[3*t+3][3*n].y+6*(e[3*t+3][3*n+1].y+e[3*t+2][3*n].y)+-2*(e[3*t+3][3*n+3].y+e[3*t][3*n].y)+3*(e[3*t][3*n+1].y+e[3*t+2][3*n+3].y)+-1*e[3*t][3*n+3].y)/9,e[3*t+2][3*n+2].y=(-4*e[3*t+3][3*n+3].y+6*(e[3*t+3][3*n+2].y+e[3*t+2][3*n+3].y)+-2*(e[3*t+3][3*n].y+e[3*t][3*n+3].y)+3*(e[3*t][3*n+2].y+e[3*t+2][3*n].y)+-1*e[3*t][3*n].y)/9}}this.nodes=e,this.colors=s}paintMesh(t,e){let s=(this.nodes.length-1)/3,r=(this.nodes[0].length-1)/3;if(&quot;bilinear&quot;===this.type||s&lt;2||r&lt;2){let n;for(let o=0;o&lt;s;++o)for(let s=0;s&lt;r;++s){let r=[];for(let t=3*o,e=3*o+4;t&lt;e;++t)r.push(this.nodes[t].slice(3*s,3*s+4));let i=[];i.push(this.colors[o].slice(s,s+2)),i.push(this.colors[o+1].slice(s,s+2)),(n=new m(r,i)).paint(t,e)}}else{let n,o,a,h,l,d,u;const x=s,g=r;s++,r++;let w=new Array(s);for(let t=0;t&lt;s;++t){w[t]=new Array(r);for(let e=0;e&lt;r;++e)w[t][e]=[],w[t][e][0]=this.nodes[3*t][3*e],w[t][e][1]=this.colors[t][e]}for(let t=0;t&lt;s;++t)for(let e=0;e&lt;r;++e)0!==t&amp;&amp;t!==x&amp;&amp;(n=i(w[t-1][e][0],w[t][e][0]),o=i(w[t+1][e][0],w[t][e][0]),w[t][e][2]=c(w[t-1][e][1],w[t][e][1],w[t+1][e][1],n,o)),0!==e&amp;&amp;e!==g&amp;&amp;(n=i(w[t][e-1][0],w[t][e][0]),o=i(w[t][e+1][0],w[t][e][0]),w[t][e][3]=c(w[t][e-1][1],w[t][e][1],w[t][e+1][1],n,o));for(let t=0;t&lt;r;++t){w[0][t][2]=[],w[x][t][2]=[];for(let e=0;e&lt;4;++e)n=i(w[1][t][0],w[0][t][0]),o=i(w[x][t][0],w[x-1][t][0]),w[0][t][2][e]=n&gt;0?2*(w[1][t][1][e]-w[0][t][1][e])/n-w[1][t][2][e]:0,w[x][t][2][e]=o&gt;0?2*(w[x][t][1][e]-w[x-1][t][1][e])/o-w[x-1][t][2][e]:0}for(let t=0;t&lt;s;++t){w[t][0][3]=[],w[t][g][3]=[];for(let e=0;e&lt;4;++e)n=i(w[t][1][0],w[t][0][0]),o=i(w[t][g][0],w[t][g-1][0]),w[t][0][3][e]=n&gt;0?2*(w[t][1][1][e]-w[t][0][1][e])/n-w[t][1][3][e]:0,w[t][g][3][e]=o&gt;0?2*(w[t][g][1][e]-w[t][g-1][1][e])/o-w[t][g-1][3][e]:0}for(let s=0;s&lt;x;++s)for(let r=0;r&lt;g;++r){let n=i(w[s][r][0],w[s+1][r][0]),o=i(w[s][r+1][0],w[s+1][r+1][0]),c=i(w[s][r][0],w[s][r+1][0]),x=i(w[s+1][r][0],w[s+1][r+1][0]),g=[[],[],[],[]];for(let t=0;t&lt;4;++t){(d=[])[0]=w[s][r][1][t],d[1]=w[s+1][r][1][t],d[2]=w[s][r+1][1][t],d[3]=w[s+1][r+1][1][t],d[4]=w[s][r][2][t]*n,d[5]=w[s+1][r][2][t]*n,d[6]=w[s][r+1][2][t]*o,d[7]=w[s+1][r+1][2][t]*o,d[8]=w[s][r][3][t]*c,d[9]=w[s+1][r][3][t]*x,d[10]=w[s][r+1][3][t]*c,d[11]=w[s+1][r+1][3][t]*x,d[12]=0,d[13]=0,d[14]=0,d[15]=0,u=f(d);for(let e=0;e&lt;9;++e){g[t][e]=[];for(let s=0;s&lt;9;++s)g[t][e][s]=p(u,e/8,s/8),g[t][e][s]&gt;255?g[t][e][s]=255:g[t][e][s]&lt;0&amp;&amp;(g[t][e][s]=0)}}h=[];for(let t=3*s,e=3*s+4;t&lt;e;++t)h.push(this.nodes[t].slice(3*r,3*r+4));l=y(h);for(let s=0;s&lt;8;++s)for(let r=0;r&lt;8;++r)(a=new m(l[s][r],[[[g[0][s][r],g[1][s][r],g[2][s][r],g[3][s][r]],[g[0][s][r+1],g[1][s][r+1],g[2][s][r+1],g[3][s][r+1]]],[[g[0][s+1][r],g[1][s+1][r],g[2][s+1][r],g[3][s+1][r]],[g[0][s+1][r+1],g[1][s+1][r+1],g[2][s+1][r+1],g[3][s+1][r+1]]]])).paint(t,e)}}}transform(t){if(t instanceof x)for(let e=0,s=this.nodes.length;e&lt;s;++e)for(let s=0,r=this.nodes[0].length;s&lt;r;++s)this.nodes[e][s]=this.nodes[e][s].add(t);else if(t instanceof g)for(let e=0,s=this.nodes.length;e&lt;s;++e)for(let s=0,r=this.nodes[0].length;s&lt;r;++s)this.nodes[e][s]=this.nodes[e][s].transform(t)}scale(t){for(let e=0,s=this.nodes.length;e&lt;s;++e)for(let s=0,r=this.nodes[0].length;s&lt;r;++s)this.nodes[e][s]=this.nodes[e][s].scale(t)}}document.querySelectorAll(&quot;rect,circle,ellipse,path,text&quot;).forEach((r,n)=&gt;{let o=r.getAttribute(&quot;id&quot;);o||(o=&quot;patchjs_shape&quot;+n,r.setAttribute(&quot;id&quot;,o));const i=r.style.fill.match(/^url\(\s*&quot;?\s*#([^\s&quot;]+)&quot;?\s*\)/),a=r.style.stroke.match(/^url\(\s*&quot;?\s*#([^\s&quot;]+)&quot;?\s*\)/);if(i&amp;&amp;i[1]){const a=document.getElementById(i[1]);if(a&amp;&amp;&quot;meshgradient&quot;===a.nodeName){const i=r.getBBox();let l=document.createElementNS(s,&quot;canvas&quot;);d(l,{width:i.width,height:i.height});const c=l.getContext(&quot;2d&quot;);let u=c.createImageData(i.width,i.height);const f=new b(a);&quot;objectBoundingBox&quot;===a.getAttribute(&quot;gradientUnits&quot;)&amp;&amp;f.scale(new x(i.width,i.height));const p=a.getAttribute(&quot;gradientTransform&quot;);null!=p&amp;&amp;f.transform(h(p)),&quot;userSpaceOnUse&quot;===a.getAttribute(&quot;gradientUnits&quot;)&amp;&amp;f.transform(new x(-i.x,-i.y)),f.paintMesh(u.data,l.width),c.putImageData(u,0,0);const y=document.createElementNS(t,&quot;image&quot;);d(y,{width:i.width,height:i.height,x:i.x,y:i.y});let g=l.toDataURL();y.setAttributeNS(e,&quot;xlink:href&quot;,g),r.parentNode.insertBefore(y,r),r.style.fill=&quot;none&quot;;const w=document.createElementNS(t,&quot;use&quot;);w.setAttributeNS(e,&quot;xlink:href&quot;,&quot;#&quot;+o);const m=&quot;patchjs_clip&quot;+n,M=document.createElementNS(t,&quot;clipPath&quot;);M.setAttribute(&quot;id&quot;,m),M.appendChild(w),r.parentElement.insertBefore(M,r),y.setAttribute(&quot;clip-path&quot;,&quot;url(#&quot;+m+&quot;)&quot;),u=null,l=null,g=null}}if(a&amp;&amp;a[1]){const o=document.getElementById(a[1]);if(o&amp;&amp;&quot;meshgradient&quot;===o.nodeName){const i=parseFloat(r.style.strokeWidth.slice(0,-2))*(parseFloat(r.style.strokeMiterlimit)||parseFloat(r.getAttribute(&quot;stroke-miterlimit&quot;))||1),a=r.getBBox(),l=Math.trunc(a.width+i),c=Math.trunc(a.height+i),u=Math.trunc(a.x-i/2),f=Math.trunc(a.y-i/2);let p=document.createElementNS(s,&quot;canvas&quot;);d(p,{width:l,height:c});const y=p.getContext(&quot;2d&quot;);let g=y.createImageData(l,c);const w=new b(o);&quot;objectBoundingBox&quot;===o.getAttribute(&quot;gradientUnits&quot;)&amp;&amp;w.scale(new x(l,c));const m=o.getAttribute(&quot;gradientTransform&quot;);null!=m&amp;&amp;w.transform(h(m)),&quot;userSpaceOnUse&quot;===o.getAttribute(&quot;gradientUnits&quot;)&amp;&amp;w.transform(new x(-u,-f)),w.paintMesh(g.data,p.width),y.putImageData(g,0,0);const M=document.createElementNS(t,&quot;image&quot;);d(M,{width:l,height:c,x:0,y:0});let S=p.toDataURL();M.setAttributeNS(e,&quot;xlink:href&quot;,S);const k=&quot;pattern_clip&quot;+n,A=document.createElementNS(t,&quot;pattern&quot;);d(A,{id:k,patternUnits:&quot;userSpaceOnUse&quot;,width:l,height:c,x:u,y:f}),A.appendChild(M),o.parentNode.appendChild(A),r.style.stroke=&quot;url(#&quot;+k+&quot;)&quot;,g=null,p=null,S=null}}})}();
  1228. </script>
  1229. </svg>