pull/11/head
GeorgLegato 2023-03-12 20:03:08 +01:00
parent caf4ad5612
commit e83a8cd4fb
7 changed files with 959 additions and 39 deletions

1
.gitignore vendored
View File

@ -2,3 +2,4 @@ docs/assets/img/00098.jpg
**/__pycache__/*
scripts/__pycache__/*
scripts/__pycache__/panorama-3dviewer.cpython-310.pyc
scripts/__pycache__/panorama-3dviewer.cpython-310.pyc

38
javascript/pano_hints.js Normal file
View File

@ -0,0 +1,38 @@
// mouseover tooltips for various UI elements
pano_titles = {
"Pano 👀":"Send to Panorama Viewer Tab",
"Pano 🌐": "Switch between selected image and panorama view"
}
onUiUpdate(function(){
gradioApp().querySelectorAll('span, button, select, p').forEach(function(span){
tooltip = pano_titles[span.textContent];
if(!tooltip){
tooltip = pano_titles[span.value];
}
if(!tooltip){
for (const c of span.classList) {
if (c in pano_titles) {
tooltip = pano_titles[c];
break;
}
}
}
if(tooltip){
span.title = tooltip;
}
})
gradioApp().querySelectorAll('select').forEach(function(select){
if (select.onchange != null) return;
select.onchange = function(){
select.title = pano_titles[select.value] || "";
}
})
})

View File

@ -2,16 +2,76 @@ const openpanorama = {
frame: null
};
let galImageDisp
function panorama_here(phtml) {
return async () => {
try {
const tabContext = get_uiCurrentTab().innerText
let containerName
switch (tabContext) {
case "txt2img":
containerName = "#txt2img_gallery_container"
break;
case "img2img":
containerName = "#img2img_gallery_container"
break;
case "Extras":
containerName = "#extras_gallery_container"
break;
default:
console.warn ("PanoramaViewer: Unsupported gallery: " + tabContext)
return
}
let galviewer = gradioApp().querySelector("#panogalviewer-iframe"+tabContext)
let galImage = gradioApp().querySelector(containerName + " div > img")
if (galviewer) {
galviewer.parentElement.removeChild(galviewer)
if (galImage) galImage.style.display=galImageDisp
return
}
// select only single viewed gallery image, not the small icons in the overview
if (!galImage) return
let parent = galImage.parentElement
let iframe = document.createElement('iframe');
iframe.src = phtml
iframe.id = "panogalviewer-iframe"+tabContext
iframe.classList += "panogalviewer-iframe"
iframe.setAttribute("panoimage",galImage.src);
parent.appendChild(iframe);
galImageDisp = galImage.style.display
galImage.style.display="none"
}
catch
{ }
}
}
function panorama_send_image(dataURL, name = "Embed Resource") {
openpanorama.frame.contentWindow.postMessage({
type: "panoramaviewer/set-panorama",
image: {
dataURL,
dataURL: dataURL,
resourceName: name,
},
});
}
function panorama_change_container(name) {
openpanorama.frame.contentWindow.postMessage({
type: "panoramaviewer/set-container",
container: {
name
},
});
}
function panorama_gototab(tabname = "Panorama Viewer", tabsId = "tabs") {
Array.from(
gradioApp().querySelectorAll(`#${tabsId} > div:first-child button`)
@ -36,35 +96,34 @@ async function panorama_get_image_from_gallery() {
if (!button)
throw new Error("[panorama_viewer] No image available in the gallery");
/* only use file url, not data url
const canvas = document.createElement("canvas");
const image = document.createElement("img");
image.src = button.querySelector("img").src;
await image.decode();
canvas.width = image.width;
canvas.height = image.height;
canvas.getContext("2d").drawImage(image, 0, 0);
return canvas.toDataURL();
*/
/* only use file url, not data url
const canvas = document.createElement("canvas");
const image = document.createElement("img");
image.src = button.querySelector("img").src;
await image.decode();
canvas.width = image.width;
canvas.height = image.height;
canvas.getContext("2d").drawImage(image, 0, 0);
return canvas.toDataURL();
*/
return button.querySelector("img").src
}
function panorama_send_gallery(name = "Embed Resource") {
console.log("hello p360")
panorama_get_image_from_gallery()
panorama_get_image_from_gallery()
.then((dataURL) => {
// Send to panorama-viewer
console.info("[panorama viewer] Using URL: " + dataURL)
panorama_send_image(dataURL, name);
// Change Tab
panorama_gototab();
panorama_send_image(dataURL, name);
})
.catch((error) => {
console.warn("[panoramaviewer] No image selected to send to panorama viewer");

810
scripts/equilogo.svg Normal file
View File

@ -0,0 +1,810 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="512.104269pt" height="493.000000pt" viewBox="0 0 512.104269 493.000000"
preserveAspectRatio="xMidYMid meet">
<metadata>
Created by potrace 1.16, written by Peter Selinger 2001-2019
</metadata>
<g transform="translate(0.000000,505.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path fill="#000000" stroke="none" d="M0 2585 l0 -2465 2561 0 2560 0 -7 548
c-3 301 -8 575 -11 609 -3 35 -1 63 4 63 4 0 9 835 10 1855 l2 1855 -259 0
c-197 0 -260 -3 -263 -12 -4 -10 -6 -10 -6 -1 -1 10 -283 13 -1365 13 -751 0
-1379 -3 -1395 -6 -74 -15 -18 -24 147 -24 295 -1 412 -19 470 -72 21 -21 62
-130 62 -167 0 -16 -21 -18 -237 -25 -228 -6 -299 -10 -388 -21 -22 -3 -69 -7
-105 -10 -120 -11 -224 -25 -362 -51 l-136 -26 -144 26 c-190 34 -251 43 -393
56 -66 6 -138 13 -160 16 -22 2 -154 7 -293 11 l-253 6 6 41 c4 23 18 66 33
96 57 116 100 121 1029 123 370 1 673 5 673 8 0 11 -1264 17 -1277 6 -9 -6
-13 -6 -13 2 0 8 -71 11 -245 11 l-245 0 0 -2465z"/>
<path fill="#ffffff" stroke="none" d="M4880 5001 c107 -29 142 -66 165 -176
8 -38 13 -70 12 -71 -1 -1 -99 -4 -217 -7 -339 -10 -598 -35 -847 -83 l-131
-25 -159 31 c-246 48 -492 73 -848 86 -104 4 -193 9 -198 11 -13 8 36 84 80
123 54 47 140 76 285 94 137 17 88 14 428 25 409 12 1373 7 1430 -8z"/>
<path fill="#ffffff" stroke="none" d="M620 4704 c203 -16 360 -36 488 -61
l84 -16 -124 -47 c-132 -50 -179 -72 -272 -128 l-59 -35 -121 17 c-67 9 -197
22 -291 27 -93 6 -198 13 -232 15 l-63 6 0 101 c0 56 3 113 7 126 l6 23 196
-6 c108 -4 279 -14 381 -22z"/>
<path fill="#ffffff" stroke="none" d="M2481 4724 l36 -6 5 -117 c4 -81 2
-118 -6 -123 -6 -4 -56 -8 -111 -8 -126 0 -305 -15 -461 -36 l-121 -18 -61 38
c-92 56 -238 122 -325 147 -42 12 -76 23 -74 25 6 6 251 45 367 58 267 30 678
52 751 40z"/>
<path fill="#ffffff" stroke="none" d="M2895 4720 c317 -14 641 -47 775 -80
19 -4 49 -11 65 -15 27 -6 17 -11 -90 -49 -116 -41 -184 -73 -290 -134 l-50
-29 -125 18 c-161 23 -358 39 -482 39 -84 0 -98 2 -98 16 0 21 30 214 35 232
5 14 -9 14 260 2z"/>
<path fill="#ffffff" stroke="none" d="M5063 4644 c4 -42 7 -101 7 -131 l0
-53 -109 0 c-133 0 -328 -15 -473 -36 l-107 -16 -84 51 c-101 61 -194 104
-290 133 -86 26 -82 28 104 57 267 41 500 60 850 69 l96 3 6 -77z"/>
<path fill="#ffffff" stroke="none" d="M1405 4569 c97 -31 249 -98 317 -141
l38 -23 -107 -24 c-59 -12 -167 -42 -241 -66 l-134 -43 -131 43 c-73 23 -178
53 -234 66 -57 13 -103 27 -103 31 0 13 220 116 325 153 55 19 117 35 137 35
21 0 81 -14 133 -31z"/>
<path fill="#ffffff" stroke="none" d="M3988 4555 c108 -36 303 -131 309 -150
2 -6 -47 -23 -113 -39 -65 -15 -165 -43 -222 -62 -58 -19 -113 -34 -121 -34
-9 0 -62 16 -118 35 -57 19 -159 49 -228 66 l-126 32 33 20 c112 69 370 166
441 167 22 0 87 -16 145 -35z"/>
<path fill="#ffffff" stroke="none" d="M265 4435 c125 -5 364 -29 412 -41 22
-6 21 -8 -17 -38 -36 -28 -100 -99 -135 -149 -13 -18 -20 -18 -182 -3 -92 9
-203 16 -246 16 l-77 0 0 78 c0 42 3 94 6 114 l7 38 51 -5 c28 -2 109 -7 181
-10z"/>
<path fill="#ffffff" stroke="none" d="M2840 4435 c113 -6 418 -39 426 -47 1
-2 -23 -25 -54 -51 -31 -26 -75 -69 -97 -97 -47 -57 -39 -56 -235 -35 -74 8
-170 15 -212 15 l-78 0 0 78 c0 42 3 94 6 115 l7 38 56 -5 c31 -3 112 -8 181
-11z"/>
<path fill="#ffffff" stroke="none" d="M2530 4330 l0 -110 -77 0 c-71 0 -206
-10 -353 -24 l-55 -6 -59 71 c-32 39 -76 84 -98 100 -26 18 -36 30 -27 33 12
4 151 20 349 39 19 2 99 5 178 5 l142 2 0 -110z"/>
<path fill="#ffffff" stroke="none" d="M5074 4378 c3 -29 6 -76 6 -105 0 -51
-1 -52 -32 -57 -18 -3 -89 -7 -158 -10 -69 -3 -162 -11 -208 -17 l-83 -11 -21
28 c-12 16 -55 62 -95 103 -40 41 -73 75 -73 76 0 3 211 26 305 34 50 5 149 9
221 10 l131 1 7 -52z"/>
<path fill="#ffffff" stroke="none" d="M955 4339 c150 -38 275 -78 275 -88 0
-5 -25 -19 -56 -31 -30 -13 -92 -45 -135 -71 -44 -27 -86 -49 -92 -49 -7 0
-79 15 -162 34 -82 19 -167 37 -187 41 -21 3 -38 10 -38 15 0 4 44 49 97 99
l97 90 45 -6 c25 -3 96 -18 156 -34z"/>
<path fill="#ffffff" stroke="none" d="M1902 4282 l101 -99 -137 -27 c-75 -15
-158 -34 -184 -41 -26 -8 -54 -15 -63 -15 -9 0 -58 24 -109 54 -51 30 -112 63
-136 73 -24 10 -44 21 -44 25 0 16 389 125 453 127 10 1 63 -43 119 -97z"/>
<path fill="#ffffff" stroke="none" d="M3512 4336 c130 -34 283 -85 275 -92
-2 -2 -44 -24 -93 -48 -49 -24 -110 -57 -136 -73 l-47 -30 -138 33 c-75 18
-161 36 -190 40 -29 3 -55 10 -58 14 -3 5 39 49 92 99 114 108 104 106 295 57z"/>
<path fill="#ffffff" stroke="none" d="M4397 4332 c26 -21 71 -66 100 -99 l52
-60 -97 -17 c-53 -10 -141 -28 -194 -42 l-98 -24 -42 27 c-24 15 -87 50 -141
78 l-97 51 77 27 c87 30 336 95 370 96 11 1 43 -16 70 -37z"/>
<path fill="#ffffff" stroke="none" d="M1366 4191 c43 -21 105 -54 136 -73
l57 -34 -140 -56 -139 -55 -82 33 c-45 18 -108 41 -140 51 -32 10 -56 23 -55
28 4 11 255 144 273 145 5 0 46 -17 90 -39z"/>
<path fill="#ffffff" stroke="none" d="M3942 4174 c50 -25 109 -57 131 -71
l40 -25 -114 -45 c-63 -24 -125 -49 -139 -55 -20 -8 -37 -5 -90 17 -36 15
-100 40 -143 55 l-78 28 60 36 c76 46 201 105 224 106 9 0 59 -21 109 -46z"/>
<path fill="#ffffff" stroke="none" d="M353 4179 c70 -6 127 -15 127 -19 0 -5
-15 -31 -32 -58 -18 -28 -41 -64 -50 -81 l-16 -30 -109 5 c-59 3 -141 7 -180
10 l-73 6 0 88 c0 50 4 90 10 92 17 5 189 -2 323 -13z"/>
<path fill="#ffffff" stroke="none" d="M2530 4101 l0 -89 -107 -6 c-60 -4
-140 -9 -179 -12 l-71 -5 -49 83 c-27 46 -50 86 -52 89 -5 12 159 26 311 28
l147 1 0 -89z"/>
<path fill="#ffffff" stroke="none" d="M2895 4180 c50 -5 104 -12 121 -15 l32
-5 -44 -67 c-24 -37 -47 -75 -50 -86 -6 -20 -16 -20 -291 -1 l-83 6 0 89 0 89
113 0 c61 0 153 -5 202 -10z"/>
<path fill="#ffffff" stroke="none" d="M5075 4095 l0 -90 -130 -6 c-71 -3
-151 -9 -176 -13 l-46 -8 -33 59 c-18 32 -44 72 -56 90 l-24 31 63 7 c115 12
282 23 342 21 l60 -1 0 -90z"/>
<path fill="#ffffff" stroke="none" d="M2027 4138 c12 -13 39 -52 62 -88 l41
-65 -43 -7 c-23 -4 -94 -17 -158 -29 l-117 -22 -58 51 c-33 27 -72 62 -89 75
l-30 25 43 11 c35 10 305 68 323 70 3 1 15 -9 26 -21z"/>
<path fill="#ffffff" stroke="none" d="M710 4126 c147 -30 200 -45 200 -55 0
-5 -17 -20 -38 -34 -21 -15 -55 -45 -77 -67 -21 -22 -46 -40 -55 -40 -41 -1
-310 56 -310 65 0 11 33 64 77 123 30 40 47 40 203 8z"/>
<path fill="#ffffff" stroke="none" d="M3243 4129 c118 -24 209 -48 220 -59 4
-4 -5 -15 -20 -25 -15 -10 -53 -42 -83 -71 l-55 -53 -150 29 c-83 16 -156 29
-163 30 -16 0 -5 23 55 108 52 72 48 71 196 41z"/>
<path fill="#ffffff" stroke="none" d="M4588 4123 c39 -56 83 -136 77 -142 -4
-3 -72 -18 -153 -32 l-147 -27 -27 22 c-83 67 -147 126 -140 129 13 8 315 72
359 76 6 0 20 -11 31 -26z"/>
<path fill="#ffffff" stroke="none" d="M1102 4014 c49 -18 100 -40 115 -47
l27 -15 -45 -22 c-24 -12 -69 -38 -99 -56 l-55 -34 -132 38 -133 39 23 20 c12
11 51 44 87 72 74 59 70 59 212 5z"/>
<path fill="#ffffff" stroke="none" d="M1649 4018 c82 -61 122 -96 113 -102
-4 -2 -60 -20 -126 -40 l-119 -36 -31 19 c-17 10 -64 35 -104 56 -40 21 -71
40 -68 43 7 6 258 101 270 102 5 0 34 -19 65 -42z"/>
<path fill="#ffffff" stroke="none" d="M3665 4006 c114 -43 133 -53 124 -59
-24 -18 -189 -107 -198 -107 -12 0 -243 69 -249 74 -8 8 165 136 185 136 11 0
74 -20 138 -44z"/>
<path fill="#ffffff" stroke="none" d="M4230 3990 c43 -33 81 -64 85 -69 3 -5
-9 -14 -27 -19 -228 -69 -218 -67 -252 -48 -17 10 -63 36 -102 56 l-71 38 46
21 c68 31 203 79 224 80 10 1 54 -26 97 -59z"/>
<path fill="#ffffff" stroke="none" d="M2917 3966 c3 -3 -6 -38 -22 -77 l-28
-71 -45 6 c-25 3 -89 6 -144 6 -115 0 -114 -1 -104 93 l7 62 165 -6 c90 -4
167 -9 171 -13z"/>
<path fill="#ffffff" stroke="none" d="M326 3972 l42 -7 -28 -70 -28 -70 -118
3 c-183 5 -174 0 -174 83 l0 69 133 -1 c72 0 151 -4 173 -7z"/>
<path fill="#ffffff" stroke="none" d="M2540 3910 l0 -69 -62 -3 c-44 -2 -62
-7 -60 -15 3 -16 -14 -17 -24 -2 -5 8 -29 10 -76 5 l-69 -6 -30 65 c-16 35
-29 69 -29 74 0 14 38 18 203 20 l147 1 0 -70z"/>
<path fill="#ffffff" stroke="none" d="M5075 3900 l0 -75 -120 -2 c-66 -1
-128 -4 -138 -7 -15 -4 -26 10 -52 67 -18 40 -31 74 -29 76 8 9 149 18 244 17
l95 -1 0 -75z"/>
<path fill="#ffffff" stroke="none" d="M619 3930 c52 -11 96 -22 98 -23 2 -2
-23 -31 -54 -65 l-58 -61 -127 16 c-75 10 -128 21 -128 27 0 6 14 40 30 75
l30 64 58 -7 c31 -4 99 -16 151 -26z"/>
<path fill="#ffffff" stroke="none" d="M2174 3901 c34 -76 34 -91 -1 -91 -16
0 -73 -7 -128 -15 l-100 -15 -56 62 c-32 35 -55 65 -53 68 7 6 243 48 280 49
29 1 33 -4 58 -58z"/>
<path fill="#ffffff" stroke="none" d="M3168 3929 l112 -21 -51 -59 c-28 -33
-55 -61 -59 -64 -8 -5 -261 24 -268 30 -5 4 19 59 45 104 29 50 11 49 221 10z"/>
<path fill="#ffffff" stroke="none" d="M4727 3881 c18 -36 30 -68 27 -73 -3
-4 -24 -8 -46 -8 -22 0 -81 -5 -131 -12 l-90 -12 -24 30 c-14 16 -38 44 -54
63 -16 18 -28 35 -27 36 10 8 241 43 273 42 39 -2 41 -4 72 -66z"/>
<path fill="#ffffff" stroke="none" d="M1470 3830 c0 -4 -42 -25 -94 -48 l-95
-41 -102 42 c-117 47 -118 38 19 114 l76 42 98 -51 c54 -28 98 -54 98 -58z"/>
<path fill="#ffffff" stroke="none" d="M3908 3891 c42 -22 86 -46 97 -54 19
-14 17 -16 -40 -42 -131 -59 -127 -58 -213 -24 -42 17 -88 35 -101 40 -13 6
-22 11 -20 13 11 10 184 106 191 106 5 0 43 -18 86 -39z"/>
<path fill="#ffffff" stroke="none" d="M891 3865 c68 -20 124 -37 126 -39 2
-2 -29 -27 -69 -56 l-72 -53 -109 26 c-60 14 -112 28 -115 31 -5 6 97 123 110
125 3 0 62 -15 129 -34z"/>
<path fill="#ffffff" stroke="none" d="M1826 3863 c25 -20 54 -48 64 -63 l19
-27 -115 -28 -115 -27 -69 53 c-38 29 -68 55 -65 57 2 3 55 19 117 37 62 18
114 33 116 34 2 1 24 -15 48 -36z"/>
<path fill="#ffffff" stroke="none" d="M3449 3860 c58 -16 108 -33 113 -38 5
-5 -23 -30 -62 -56 l-71 -49 -80 18 c-44 9 -96 21 -115 27 l-36 9 54 59 c29
32 62 58 73 59 11 0 67 -12 124 -29z"/>
<path fill="#ffffff" stroke="none" d="M4405 3830 c41 -41 54 -61 44 -64 -8
-3 -61 -17 -118 -30 l-103 -25 -65 49 c-35 27 -64 52 -63 57 2 8 202 71 230
72 9 1 42 -26 75 -59z"/>
<path fill="#ffffff" stroke="none" d="M268 3794 l42 -5 0 -70 0 -69 -140 0
-140 0 0 73 c0 41 2 76 5 78 5 6 171 1 233 -7z"/>
<path fill="#ffffff" stroke="none" d="M1142 3774 c51 -19 97 -39 101 -43 8
-8 -121 -81 -144 -81 -30 0 -188 54 -183 62 5 8 125 98 130 98 1 0 44 -16 96
-36z"/>
<path fill="#ffffff" stroke="none" d="M1573 3764 c37 -25 67 -50 67 -54 0 -4
-40 -21 -89 -37 l-88 -30 -83 40 c-79 38 -82 41 -59 51 13 6 56 25 94 43 39
18 75 32 80 33 6 0 40 -21 78 -46z"/>
<path fill="#ffffff" stroke="none" d="M2848 3795 c8 -3 12 -27 12 -75 l0 -70
-122 0 c-173 0 -168 -2 -168 79 0 37 2 70 5 72 5 6 254 0 273 -6z"/>
<path fill="#ffffff" stroke="none" d="M3725 3760 c28 -10 58 -21 68 -25 14
-6 2 -17 -60 -50 l-78 -42 -90 24 c-49 14 -94 28 -98 33 -5 4 24 30 64 58 l72
51 36 -15 c20 -9 59 -24 86 -34z"/>
<path fill="#ffffff" stroke="none" d="M5075 3730 l0 -75 -137 -3 -138 -3 0
75 0 75 73 4 c39 2 101 3 137 3 l65 -1 0 -75z"/>
<path fill="#ffffff" stroke="none" d="M2538 3728 l-3 -73 -138 -5 -137 -5 0
62 c0 34 -3 68 -6 77 -5 14 11 16 140 16 l147 0 -3 -72z"/>
<path fill="#ffffff" stroke="none" d="M4129 3754 c35 -25 59 -49 55 -54 -5
-4 -45 -19 -90 -34 l-81 -27 -83 42 c-69 35 -80 44 -64 51 10 4 51 21 89 38
39 16 79 29 90 30 12 0 49 -21 84 -46z"/>
<path fill="#ffffff" stroke="none" d="M530 3766 l75 -11 3 -79 3 -78 -25 6
c-13 3 -60 11 -103 16 -154 20 -143 15 -143 64 0 24 3 58 6 75 l7 31 51 -6
c28 -4 85 -12 126 -18z"/>
<path fill="#ffffff" stroke="none" d="M2214 3759 c9 -48 7 -107 -4 -114 -12
-8 -240 -38 -245 -33 -10 9 -7 142 3 146 11 3 195 29 223 31 11 1 19 -10 23
-30z"/>
<path fill="#ffffff" stroke="none" d="M3020 3775 c147 -21 136 -12 132 -100
-3 -65 -6 -75 -20 -71 -9 3 -53 10 -97 16 -44 6 -95 13 -112 16 l-33 5 0 68
c0 63 4 81 19 81 3 0 53 -7 111 -15z"/>
<path fill="#ffffff" stroke="none" d="M4758 3713 l3 -72 -33 -5 c-57 -8 -202
-26 -215 -26 -9 0 -13 22 -13 75 0 53 4 75 13 76 6 0 57 6 112 14 55 7 107 12
115 11 11 -1 16 -18 18 -73z"/>
<path fill="#ffffff" stroke="none" d="M1928 3665 l-3 -69 -105 -22 c-58 -13
-111 -23 -117 -23 -9 -1 -13 20 -13 73 l0 73 113 25 c61 13 116 21 120 18 4
-4 7 -38 5 -75z"/>
<path fill="#ffffff" stroke="none" d="M4468 3673 l-3 -78 -105 -22 c-58 -12
-111 -22 -118 -23 -10 0 -12 18 -10 72 l3 73 110 26 c61 15 114 28 118 28 4 1
7 -34 5 -76z"/>
<path fill="#ffffff" stroke="none" d="M775 3717 l90 -22 3 -73 c3 -83 5 -82
-88 -58 -30 8 -74 17 -97 21 l-43 7 0 74 c0 87 -6 85 135 51z"/>
<path fill="#ffffff" stroke="none" d="M3315 3717 l90 -23 3 -76 3 -75 -113
26 -113 27 -3 72 c-3 86 -7 84 133 49z"/>
<path fill="#ffffff" stroke="none" d="M1360 3675 c39 -19 70 -39 70 -43 0 -4
-36 -20 -80 -34 l-79 -26 -66 27 c-36 14 -65 30 -66 35 -1 12 111 75 134 76
10 0 49 -16 87 -35z"/>
<path fill="#ffffff" stroke="none" d="M3909 3674 c39 -19 71 -39 71 -42 0 -4
-34 -20 -75 -36 l-75 -29 -48 18 c-26 10 -63 25 -82 33 l-35 14 75 39 c41 21
80 38 86 39 6 0 43 -16 83 -36z"/>
<path fill="#ffffff" stroke="none" d="M1670 3627 c0 -89 -1 -91 -101 -118
-103 -30 -105 -28 -94 65 l7 53 86 30 c48 17 90 29 95 26 4 -2 7 -28 7 -56z"/>
<path fill="#ffffff" stroke="none" d="M1006 3649 l74 -22 0 -74 c0 -40 -1
-73 -2 -73 -2 0 -25 7 -53 15 -27 9 -67 20 -87 26 l-38 10 0 75 c0 65 2 75 16
70 8 -3 49 -16 90 -27z"/>
<path fill="#ffffff" stroke="none" d="M3540 3651 l84 -28 1 -71 c0 -40 -3
-72 -6 -72 -3 0 -25 7 -50 15 -24 7 -63 19 -86 25 l-43 11 0 74 c0 41 3 75 8
75 4 -1 45 -13 92 -29z"/>
<path fill="#ffffff" stroke="none" d="M4208 3608 l-3 -71 -90 -28 c-49 -16
-91 -29 -92 -29 -2 0 -3 33 -3 73 l0 73 78 26 c117 40 113 41 110 -44z"/>
<path fill="#ffffff" stroke="none" d="M264 3624 l46 -7 0 -90 0 -90 -107 6
c-58 4 -121 7 -140 7 l-33 0 0 90 0 90 94 0 c51 0 114 -3 140 -6z"/>
<path fill="#ffffff" stroke="none" d="M2540 3540 l0 -90 -53 0 c-30 0 -94 -3
-144 -6 l-89 -7 1 64 c4 114 4 117 23 122 9 3 72 5 140 6 l122 1 0 -90z"/>
<path fill="#ffffff" stroke="none" d="M2829 3624 l31 -6 0 -91 0 -90 -97 6
c-54 4 -119 7 -145 7 l-48 0 0 90 0 90 114 0 c62 0 128 -3 145 -6z"/>
<path fill="#ffffff" stroke="none" d="M5080 3540 l0 -90 -48 0 c-27 0 -90 -3
-140 -6 l-92 -7 0 90 c0 49 3 93 7 96 3 4 66 7 140 7 l133 0 0 -90z"/>
<path fill="#ffffff" stroke="none" d="M558 3589 l52 -10 0 -90 0 -90 -42 6
c-24 4 -83 12 -133 18 l-90 12 -1 85 c-1 47 0 88 1 91 5 7 141 -7 213 -22z"/>
<path fill="#ffffff" stroke="none" d="M2218 3519 l-3 -84 -110 -12 c-60 -7
-118 -14 -128 -17 -16 -4 -17 4 -15 87 l3 92 48 8 c89 14 192 23 200 17 4 -4
7 -45 5 -91z"/>
<path fill="#ffffff" stroke="none" d="M3033 3600 c48 -6 94 -13 102 -16 12
-5 15 -26 15 -96 0 -88 0 -90 -22 -85 -13 3 -71 11 -130 18 l-108 13 0 93 0
93 28 -5 c15 -2 66 -9 115 -15z"/>
<path fill="#ffffff" stroke="none" d="M4758 3528 l-3 -93 -100 -12 c-55 -7
-113 -14 -128 -17 l-28 -6 3 92 3 93 48 8 c26 4 80 11 120 16 40 5 76 9 80 10
4 0 6 -41 5 -91z"/>
<path fill="#ffffff" stroke="none" d="M1262 3523 c5 -15 6 -46 4 -68 -4 -46
-8 -46 -96 -12 l-55 22 -3 59 c-5 88 -3 89 75 56 55 -23 69 -34 75 -57z"/>
<path fill="#ffffff" stroke="none" d="M1450 3541 l0 -69 -50 -21 c-27 -12
-64 -24 -80 -28 l-31 -6 3 68 3 67 70 28 c39 15 73 28 78 29 4 1 7 -30 7 -68z"/>
<path fill="#ffffff" stroke="none" d="M3802 3554 c4 -3 8 -37 8 -76 0 -52 -3
-69 -12 -65 -7 2 -41 14 -75 27 l-63 23 0 73 0 73 67 -25 c37 -14 71 -28 75
-30z"/>
<path fill="#ffffff" stroke="none" d="M4000 3546 c0 -39 -5 -67 -12 -73 -7
-6 -44 -22 -81 -36 l-68 -26 3 72 3 71 65 28 c36 15 71 28 78 28 8 0 12 -19
12 -64z"/>
<path fill="#ffffff" stroke="none" d="M775 3547 l90 -22 3 -89 c3 -88 3 -88
-20 -83 -13 3 -65 13 -115 23 l-93 17 0 88 c0 105 -8 101 135 66z"/>
<path fill="#ffffff" stroke="none" d="M1930 3486 c0 -97 12 -86 -120 -111
-47 -9 -93 -19 -102 -21 -16 -5 -18 4 -18 84 l0 89 93 21 c50 11 104 21 120
21 l27 1 0 -84z"/>
<path fill="#ffffff" stroke="none" d="M3315 3547 l90 -22 3 -88 3 -88 -33 6
c-18 4 -69 14 -113 23 l-80 17 -3 88 c-3 103 -11 99 133 64z"/>
<path fill="#ffffff" stroke="none" d="M4468 3483 l-3 -88 -85 -17 c-47 -9
-100 -19 -118 -23 l-33 -6 3 88 3 88 95 22 c151 34 141 39 138 -64z"/>
<path fill="#ffffff" stroke="none" d="M995 3487 l80 -23 3 -87 c1 -48 1 -87
-1 -87 -2 0 -17 4 -33 9 -16 5 -55 17 -86 26 l-58 16 0 84 c0 47 3 85 8 85 4
0 43 -11 87 -23z"/>
<path fill="#ffffff" stroke="none" d="M1670 3438 c0 -40 -4 -78 -8 -85 -4 -6
-43 -21 -87 -33 -43 -12 -82 -23 -86 -26 -13 -8 -21 80 -12 127 l9 44 74 22
c114 33 110 35 110 -49z"/>
<path fill="#ffffff" stroke="none" d="M3545 3482 l80 -27 3 -84 c2 -70 1 -83
-12 -78 -14 5 -32 11 -138 38 l-38 10 0 84 c0 62 3 85 13 84 6 0 48 -12 92
-27z"/>
<path fill="#ffffff" stroke="none" d="M4210 3426 c0 -83 0 -84 -27 -89 -16
-4 -59 -15 -96 -26 l-68 -20 3 87 3 86 75 22 c116 34 110 38 110 -60z"/>
<path fill="#ffffff" stroke="none" d="M1451 3395 c1 -30 1 -67 2 -82 1 -24
-5 -29 -72 -51 -40 -13 -74 -22 -77 -19 -6 6 -8 39 -6 103 l2 52 68 25 c37 13
70 25 75 26 4 0 7 -24 8 -54z"/>
<path fill="#ffffff" stroke="none" d="M3998 3368 l-3 -82 -45 -17 c-25 -9
-60 -20 -77 -24 l-33 -7 0 79 0 78 68 26 c98 39 93 41 90 -53z"/>
<path fill="#ffffff" stroke="none" d="M1195 3416 l60 -23 3 -76 c3 -88 6 -86
-83 -59 l-60 18 -3 82 c-3 94 -6 92 83 58z"/>
<path fill="#ffffff" stroke="none" d="M3745 3414 l65 -26 0 -74 c0 -41 -4
-74 -9 -74 -5 0 -39 9 -75 20 l-66 21 0 79 c0 46 4 80 10 80 5 0 39 -12 75
-26z"/>
<path fill="#ffffff" stroke="none" d="M258 3414 l52 -7 0 -110 c0 -109 0
-109 -22 -103 -13 3 -76 6 -140 6 l-118 0 0 110 0 110 88 0 c48 0 111 -3 140
-6z"/>
<path fill="#ffffff" stroke="none" d="M2540 3311 l0 -110 -137 -3 c-76 -2
-139 -3 -141 -2 -1 1 -4 48 -7 105 -3 74 -1 106 8 111 7 4 72 8 145 8 l132 0
0 -109z"/>
<path fill="#ffffff" stroke="none" d="M2848 3407 c8 -6 12 -39 12 -108 l0
-99 -145 0 -145 0 0 111 0 111 133 -4 c72 -2 138 -7 145 -11z"/>
<path fill="#ffffff" stroke="none" d="M5080 3310 l0 -110 -140 0 -140 0 0
104 c0 74 4 106 13 109 6 3 69 6 140 6 l127 1 0 -110z"/>
<path fill="#ffffff" stroke="none" d="M510 3389 c46 -6 88 -13 92 -15 4 -3 8
-52 8 -109 l0 -104 -27 4 c-30 5 -215 25 -233 25 -11 0 -13 68 -4 159 l7 62
36 -5 c20 -3 74 -11 121 -17z"/>
<path fill="#ffffff" stroke="none" d="M2220 3301 l0 -108 -57 -6 c-32 -4 -91
-9 -130 -13 l-73 -7 0 106 0 105 42 7 c36 6 151 20 201 24 15 1 17 -10 17
-108z"/>
<path fill="#ffffff" stroke="none" d="M3015 3395 c66 -8 123 -15 128 -15 4 0
7 -47 7 -105 0 -122 17 -112 -152 -93 l-108 11 0 109 c0 59 1 108 3 108 1 0
57 -7 122 -15z"/>
<path fill="#ffffff" stroke="none" d="M4760 3301 l0 -108 -57 -6 c-32 -4 -91
-9 -130 -13 l-73 -7 0 107 c0 58 3 106 8 107 4 0 54 6 112 14 58 7 113 13 123
14 15 1 17 -10 17 -108z"/>
<path fill="#ffffff" stroke="none" d="M784 3344 c37 -8 72 -17 77 -20 5 -3 9
-50 9 -105 0 -91 -2 -100 -17 -95 -10 2 -52 10 -93 16 -134 20 -120 5 -120
126 l0 105 38 -7 c20 -3 68 -13 106 -20z"/>
<path fill="#ffffff" stroke="none" d="M1930 3271 c0 -55 -4 -103 -10 -106
-11 -7 -175 -35 -207 -35 -22 0 -23 3 -23 99 l0 98 98 21 c155 32 142 39 142
-77z"/>
<path fill="#ffffff" stroke="none" d="M3295 3350 c53 -11 101 -22 106 -26 5
-3 9 -50 9 -105 0 -91 -2 -100 -17 -95 -10 3 -47 10 -83 16 -36 5 -80 13 -97
16 l-33 5 0 104 c0 58 4 105 9 105 5 0 52 -9 106 -20z"/>
<path fill="#ffffff" stroke="none" d="M4470 3266 l0 -105 -47 -6 c-27 -4 -78
-13 -115 -20 -37 -6 -70 -10 -73 -7 -10 10 -5 191 5 197 11 7 184 43 213 44
15 1 17 -10 17 -103z"/>
<path fill="#ffffff" stroke="none" d="M1028 3284 l52 -15 0 -94 c0 -52 -3
-95 -7 -94 -5 0 -44 8 -88 18 l-80 17 -3 101 -3 102 38 -10 c21 -6 62 -17 91
-25z"/>
<path fill="#ffffff" stroke="none" d="M1669 3225 c-1 -53 -6 -98 -11 -101
-16 -10 -172 -42 -180 -37 -5 2 -8 44 -8 93 l0 89 53 16 c49 14 123 32 140 34
4 1 7 -42 6 -94z"/>
<path fill="#ffffff" stroke="none" d="M3520 3300 c25 -6 59 -15 75 -21 l30
-9 0 -95 c0 -52 -1 -95 -2 -95 -6 0 -151 31 -165 36 -16 5 -18 19 -18 105 0
91 2 100 18 95 9 -3 37 -10 62 -16z"/>
<path fill="#ffffff" stroke="none" d="M4210 3221 l0 -100 -77 -16 c-43 -9
-86 -19 -96 -22 -16 -4 -18 3 -15 93 l3 97 80 23 c44 12 86 23 93 23 9 1 12
-25 12 -98z"/>
<path fill="#ffffff" stroke="none" d="M1263 3130 c-2 -46 -5 -85 -7 -88 -6
-5 -105 17 -129 30 -17 9 -19 20 -16 91 2 45 5 85 6 89 2 3 36 -4 76 -16 l72
-22 -2 -84z"/>
<path fill="#ffffff" stroke="none" d="M1450 3167 l0 -93 -71 -17 c-40 -10
-74 -15 -76 -13 -9 8 -5 158 4 167 10 10 111 47 131 48 9 1 12 -24 12 -92z"/>
<path fill="#ffffff" stroke="none" d="M3753 3233 l57 -16 0 -89 c0 -100 4
-97 -90 -71 l-60 16 0 95 c0 86 2 94 18 87 9 -3 43 -13 75 -22z"/>
<path fill="#ffffff" stroke="none" d="M3998 3168 l-3 -91 -65 -18 c-36 -10
-71 -18 -77 -19 -10 0 -13 24 -13 88 l0 88 68 21 c100 31 93 36 90 -69z"/>
<path fill="#ffffff" stroke="none" d="M258 3164 l52 -7 0 -118 0 -119 -140 0
-140 0 0 125 0 125 88 0 c48 0 111 -3 140 -6z"/>
<path fill="#ffffff" stroke="none" d="M2540 3045 l0 -126 -142 3 -143 3 -3
40 c-2 22 -1 77 3 123 l7 82 139 0 139 0 0 -125z"/>
<path fill="#ffffff" stroke="none" d="M2814 3164 l46 -7 0 -118 0 -119 -145
0 -145 0 0 125 0 125 99 0 c54 0 119 -3 145 -6z"/>
<path fill="#ffffff" stroke="none" d="M5080 3045 l0 -125 -140 0 -140 0 0
119 c0 141 -16 128 163 130 l117 1 0 -125z"/>
<path fill="#ffffff" stroke="none" d="M560 3141 l45 -6 3 -118 3 -117 -39 0
c-21 0 -80 3 -130 6 l-92 7 0 124 0 124 83 -7 c45 -4 102 -10 127 -13z"/>
<path fill="#ffffff" stroke="none" d="M2220 3041 c0 -66 -4 -122 -8 -125 -4
-2 -63 -8 -130 -11 l-122 -7 0 120 0 120 68 7 c37 3 76 7 87 9 11 2 39 4 63 5
l42 1 0 -119z"/>
<path fill="#ffffff" stroke="none" d="M3105 3141 l40 -6 3 -118 3 -117 -33 0
c-18 0 -77 3 -130 7 l-98 6 0 125 0 124 88 -7 c48 -4 105 -10 127 -14z"/>
<path fill="#ffffff" stroke="none" d="M4760 3035 l0 -125 -32 0 c-18 -1 -77
-3 -130 -6 l-98 -5 0 119 0 120 68 7 c37 3 76 7 87 9 11 2 39 4 63 5 l42 1 0
-125z"/>
<path fill="#ffffff" stroke="none" d="M808 3108 l62 -10 0 -109 0 -109 -32 0
c-18 0 -70 3 -115 7 l-83 6 0 119 0 120 53 -7 c28 -3 80 -11 115 -17z"/>
<path fill="#ffffff" stroke="none" d="M1927 3014 c-3 -64 -7 -117 -9 -119 -2
-2 -54 -6 -115 -10 l-113 -8 0 112 c0 107 1 111 23 116 34 8 148 22 186 24
l34 1 -6 -116z"/>
<path fill="#ffffff" stroke="none" d="M3348 3108 l62 -10 0 -112 0 -113 -57
5 c-32 2 -83 7 -113 11 l-55 6 -3 119 -3 118 53 -7 c29 -3 81 -11 116 -17z"/>
<path fill="#ffffff" stroke="none" d="M4470 3011 l0 -118 -82 -6 c-46 -4
-100 -7 -122 -7 l-39 0 5 105 c3 58 8 108 12 112 7 8 143 30 194 32 l32 1 0
-119z"/>
<path fill="#ffffff" stroke="none" d="M1028 3068 l52 -11 0 -105 0 -104 -52
6 c-29 4 -70 9 -90 12 l-38 6 0 110 0 110 38 -6 c20 -4 61 -12 90 -18z"/>
<path fill="#ffffff" stroke="none" d="M1668 2983 l-3 -108 -40 -6 c-22 -4
-65 -9 -95 -11 l-55 -3 2 98 c1 54 4 101 7 104 7 7 122 30 159 32 l28 1 -3
-107z"/>
<path fill="#ffffff" stroke="none" d="M3580 3066 l45 -11 3 -104 3 -104 -63
7 c-35 4 -78 9 -95 13 l-33 5 0 110 0 109 48 -7 c26 -4 67 -12 92 -18z"/>
<path fill="#ffffff" stroke="none" d="M4210 2981 l0 -109 -57 -6 c-32 -4 -75
-9 -95 -12 l-38 -6 0 105 0 105 73 15 c127 26 117 34 117 -92z"/>
<path fill="#ffffff" stroke="none" d="M1195 3032 l70 -18 3 -93 3 -93 -73 7
c-40 4 -76 9 -80 12 -5 2 -8 49 -8 104 0 54 3 99 8 99 4 0 39 -9 77 -18z"/>
<path fill="#ffffff" stroke="none" d="M1450 2951 c0 -112 6 -105 -92 -117
l-58 -6 0 95 0 95 63 15 c34 8 68 15 75 16 9 1 12 -25 12 -98z"/>
<path fill="#ffffff" stroke="none" d="M3760 3025 l45 -11 3 -94 3 -93 -53 6
c-29 4 -63 7 -75 7 -22 0 -23 3 -23 105 l0 105 28 -7 c15 -3 47 -12 72 -18z"/>
<path fill="#ffffff" stroke="none" d="M4000 2951 c0 -112 7 -104 -103 -117
l-58 -7 3 94 3 94 60 17 c100 28 95 32 95 -81z"/>
<path fill="#ffffff" stroke="none" d="M2518 2884 c21 -6 22 -10 22 -140 l0
-135 -142 3 -143 3 -2 132 -2 132 52 4 c95 6 192 7 215 1z"/>
<path fill="#ffffff" stroke="none" d="M5078 2747 l3 -137 -141 0 -140 0 0
135 0 134 83 4 c45 1 107 2 137 2 l55 -2 3 -136z"/>
<path fill="#ffffff" stroke="none" d="M310 2745 l0 -135 -140 0 -140 0 0 135
0 135 140 0 140 0 0 -135z"/>
<path fill="#ffffff" stroke="none" d="M598 2865 c9 -3 12 -38 12 -130 l0
-125 -130 0 -130 0 0 136 0 135 118 -6 c64 -4 123 -8 130 -10z"/>
<path fill="#ffffff" stroke="none" d="M2220 2745 l0 -135 -130 0 -130 0 0
130 0 129 63 4 c34 2 92 4 130 5 l67 2 0 -135z"/>
<path fill="#ffffff" stroke="none" d="M2855 2745 l0 -130 -142 -3 -143 -3 0
136 0 136 143 -3 142 -3 0 -130z"/>
<path fill="#ffffff" stroke="none" d="M3097 2870 l53 0 0 -130 0 -130 -130 0
-130 0 0 136 0 137 77 -7 c42 -3 100 -6 130 -6z"/>
<path fill="#ffffff" stroke="none" d="M4760 2745 l0 -135 -130 0 -131 0 3
128 3 127 70 6 c39 3 96 6 128 7 l57 2 0 -135z"/>
<path fill="#ffffff" stroke="none" d="M862 2844 c5 -3 8 -57 8 -120 l0 -114
-115 0 -115 0 0 126 0 127 107 -7 c59 -4 111 -10 115 -12z"/>
<path fill="#ffffff" stroke="none" d="M1930 2758 c0 -158 8 -148 -126 -148
l-114 0 0 119 0 120 43 4 c23 2 77 4 120 5 l77 2 0 -102z"/>
<path fill="#ffffff" stroke="none" d="M3333 2854 l77 -7 0 -119 0 -119 -112
3 -113 3 -3 123 -3 122 39 0 c22 0 73 -3 115 -6z"/>
<path fill="#ffffff" stroke="none" d="M4470 2735 l0 -126 -117 3 -118 3 0
115 0 115 45 6 c25 3 78 7 118 7 l72 2 0 -125z"/>
<path fill="#ffffff" stroke="none" d="M1072 2824 c5 -3 8 -52 8 -110 l0 -104
-90 0 -90 0 0 116 0 117 82 -8 c46 -4 86 -9 90 -11z"/>
<path fill="#ffffff" stroke="none" d="M1668 2728 l-3 -113 -92 -3 c-107 -3
-100 -12 -95 130 l3 87 37 4 c20 2 63 4 95 5 l58 2 -3 -112z"/>
<path fill="#ffffff" stroke="none" d="M3613 2824 c15 -5 17 -19 17 -110 l0
-104 -95 0 -95 0 0 116 0 116 78 -7 c42 -4 85 -9 95 -11z"/>
<path fill="#ffffff" stroke="none" d="M4210 2725 l0 -115 -95 0 -95 0 0 109
0 110 48 4 c26 2 68 4 95 5 l47 2 0 -115z"/>
<path fill="#ffffff" stroke="none" d="M1248 2803 c15 -4 21 -11 18 -20 -3 -8
-6 -50 -6 -94 l0 -79 -75 0 -75 0 0 106 0 106 58 -7 c31 -3 67 -9 80 -12z"/>
<path fill="#ffffff" stroke="none" d="M1452 2715 l3 -105 -40 0 c-22 0 -57
-3 -78 -6 l-38 -7 3 104 3 104 45 6 c25 3 57 7 72 7 l27 2 3 -105z"/>
<path fill="#ffffff" stroke="none" d="M3783 2804 l27 -6 0 -94 0 -94 -75 0
-75 0 0 106 0 106 48 -6 c26 -4 59 -9 75 -12z"/>
<path fill="#ffffff" stroke="none" d="M4000 2716 l0 -104 -72 -4 c-40 -2 -77
-1 -81 3 -4 3 -6 48 -5 100 l3 94 50 6 c28 3 62 7 78 7 l27 2 0 -104z"/>
<path fill="#ffffff" stroke="none" d="M310 2446 c0 -113 -2 -135 -16 -140 -9
-3 -72 -6 -140 -6 l-124 0 0 140 0 140 140 0 140 0 0 -134z"/>
<path fill="#ffffff" stroke="none" d="M610 2451 l0 -128 -52 -7 c-29 -3 -89
-6 -133 -6 l-80 0 3 135 3 135 130 0 129 0 0 -129z"/>
<path fill="#ffffff" stroke="none" d="M870 2461 l0 -119 -67 -6 c-38 -4 -89
-9 -115 -12 l-48 -5 0 131 0 130 115 0 115 0 0 -119z"/>
<path fill="#ffffff" stroke="none" d="M1080 2471 l0 -109 -82 -9 c-46 -5 -86
-7 -90 -5 -5 2 -8 55 -8 118 l0 114 90 0 90 0 0 -109z"/>
<path fill="#ffffff" stroke="none" d="M1260 2481 l0 -98 -31 -7 c-17 -3 -51
-6 -75 -6 l-44 0 0 105 0 105 75 0 75 0 0 -99z"/>
<path fill="#ffffff" stroke="none" d="M1452 2471 l-3 -109 -42 5 c-23 2 -57
6 -74 9 l-33 5 0 99 0 100 78 0 77 0 -3 -109z"/>
<path fill="#ffffff" stroke="none" d="M1668 2463 l-3 -118 -40 2 c-22 2 -64
6 -92 9 l-53 5 0 110 0 109 95 0 96 0 -3 -117z"/>
<path fill="#ffffff" stroke="none" d="M1925 2450 l0 -125 -55 2 c-30 2 -83 5
-117 9 l-63 6 0 119 0 120 118 -3 117 -3 0 -125z"/>
<path fill="#ffffff" stroke="none" d="M2220 2444 l0 -135 -97 2 c-54 1 -113
4 -130 6 l-33 5 0 129 0 129 130 0 130 0 0 -136z"/>
<path fill="#ffffff" stroke="none" d="M2540 2440 l0 -140 -134 0 c-88 0 -137
4 -142 11 -11 19 -17 134 -9 203 l7 66 139 0 139 0 0 -140z"/>
<path fill="#ffffff" stroke="none" d="M2858 2457 c4 -165 10 -158 -151 -155
l-132 3 -3 138 -3 138 143 -3 143 -3 3 -118z"/>
<path fill="#ffffff" stroke="none" d="M3150 2451 l0 -128 -37 -7 c-21 -3 -80
-6 -130 -6 l-93 0 0 135 0 135 130 0 130 0 0 -129z"/>
<path fill="#ffffff" stroke="none" d="M3410 2461 l0 -120 -52 -5 c-29 -3 -80
-7 -113 -8 l-60 -3 -1 128 -1 127 113 0 114 0 0 -119z"/>
<path fill="#ffffff" stroke="none" d="M3630 2471 l0 -109 -87 -9 c-49 -6 -91
-8 -95 -6 -5 2 -8 56 -8 119 l0 114 95 0 95 0 0 -109z"/>
<path fill="#ffffff" stroke="none" d="M3810 2481 l0 -98 -37 -7 c-21 -3 -55
-6 -75 -6 l-38 0 0 105 0 105 75 0 75 0 0 -99z"/>
<path fill="#ffffff" stroke="none" d="M3998 2473 l-3 -108 -50 3 c-27 2 -62
5 -77 8 l-28 6 0 99 0 99 80 0 81 0 -3 -107z"/>
<path fill="#ffffff" stroke="none" d="M4210 2460 l0 -119 -52 5 c-29 3 -72 7
-95 10 l-43 5 0 110 0 109 95 0 95 0 0 -120z"/>
<path fill="#ffffff" stroke="none" d="M4470 2450 l0 -130 -72 5 c-138 11
-157 15 -163 35 -3 11 -5 65 -3 120 l2 100 118 0 118 0 0 -130z"/>
<path fill="#ffffff" stroke="none" d="M4760 2445 l0 -135 -69 0 c-37 0 -96 3
-130 6 l-61 7 0 128 0 129 130 0 130 0 0 -135z"/>
<path fill="#ffffff" stroke="none" d="M5080 2440 l0 -140 -140 0 -140 0 0
140 0 140 140 0 140 0 0 -140z"/>
<path fill="#ffffff" stroke="none" d="M1269 2222 c1 -39 -2 -44 -31 -57 -18
-7 -54 -16 -80 -20 l-48 -7 0 95 c0 53 4 99 10 102 6 3 38 9 73 13 l62 7 7
-45 c3 -25 7 -64 7 -88z"/>
<path fill="#ffffff" stroke="none" d="M3808 2262 l3 -91 -43 -11 c-24 -6 -58
-15 -75 -20 l-33 -8 0 104 c0 99 1 104 23 109 26 6 98 12 112 10 6 -1 11 -42
13 -93z"/>
<path fill="#ffffff" stroke="none" d="M3948 2345 l52 -7 0 -104 c0 -57 -3
-104 -7 -104 -5 0 -39 9 -78 18 l-70 18 -3 98 -3 98 28 -6 c15 -3 52 -8 81
-11z"/>
<path fill="#ffffff" stroke="none" d="M1430 2341 c25 -7 25 -8 21 -106 -2
-55 -4 -101 -5 -102 -1 -1 -33 6 -71 16 l-70 17 -3 92 -3 92 53 -1 c29 -1 64
-4 78 -8z"/>
<path fill="#ffffff" stroke="none" d="M1078 2228 l-3 -102 -65 -13 c-36 -7
-75 -15 -87 -18 -23 -5 -23 -5 -23 109 l0 115 43 4 c23 2 64 4 90 5 l48 2 -3
-102z"/>
<path fill="#ffffff" stroke="none" d="M1663 2313 c8 -5 10 -223 1 -223 -3 0
-46 7 -94 16 -103 19 -100 15 -92 140 l5 86 86 -7 c47 -4 89 -9 94 -12z"/>
<path fill="#ffffff" stroke="none" d="M3630 2230 c0 -95 -1 -100 -22 -105
-124 -28 -154 -33 -161 -26 -4 4 -6 55 -5 112 l3 104 45 6 c25 3 66 7 93 7
l47 2 0 -100z"/>
<path fill="#ffffff" stroke="none" d="M4203 2313 c4 -2 7 -54 7 -115 0 -109
0 -110 -22 -105 -13 3 -56 11 -95 18 l-73 12 0 105 0 104 88 -7 c48 -4 90 -9
95 -12z"/>
<path fill="#ffffff" stroke="none" d="M868 2198 l-3 -113 -75 -12 c-41 -6
-92 -12 -113 -12 l-38 -1 3 118 3 117 80 6 c44 3 95 6 113 7 l33 2 -3 -112z"/>
<path fill="#ffffff" stroke="none" d="M1893 2294 l38 -6 -2 -114 c-1 -63 -4
-116 -8 -117 -3 -2 -55 3 -116 12 l-110 16 -3 114 -3 113 83 -6 c46 -4 100 -9
121 -12z"/>
<path fill="#ffffff" stroke="none" d="M3408 2198 l-3 -113 -65 -11 c-36 -7
-86 -12 -112 -13 l-48 -1 0 115 c0 131 -7 122 105 128 33 2 75 4 93 5 l33 2
-3 -112z"/>
<path fill="#ffffff" stroke="none" d="M4438 2294 l32 -5 0 -120 c0 -110 -2
-120 -17 -115 -10 2 -61 10 -113 17 -52 7 -98 17 -102 23 -9 14 -10 93 -1 164
l6 53 81 -6 c45 -3 96 -8 114 -11z"/>
<path fill="#ffffff" stroke="none" d="M610 2171 l0 -119 -32 -5 c-18 -3 -69
-9 -113 -12 -44 -4 -88 -9 -97 -11 -17 -5 -18 6 -18 125 l0 130 73 4 c39 1 98
4 130 5 l57 2 0 -119z"/>
<path fill="#ffffff" stroke="none" d="M2208 2275 c9 -3 12 -37 12 -126 l0
-122 -115 7 c-64 4 -122 9 -130 12 -12 5 -15 30 -15 124 l0 118 118 -5 c64 -2
123 -6 130 -8z"/>
<path fill="#ffffff" stroke="none" d="M3150 2171 c0 -139 14 -126 -152 -137
l-108 -7 0 126 0 126 108 4 c59 1 117 4 130 5 22 2 22 0 22 -117z"/>
<path fill="#ffffff" stroke="none" d="M4758 2275 c1 -1 1 -58 0 -126 l-3
-124 -125 10 -125 10 -3 123 -3 122 128 -6 c70 -4 129 -8 131 -9z"/>
<path fill="#ffffff" stroke="none" d="M2540 2144 l0 -124 -140 0 -140 0 -6
26 c-7 28 0 206 9 220 3 5 66 8 141 6 l136 -3 0 -125z"/>
<path fill="#ffffff" stroke="none" d="M310 2145 l0 -125 -140 0 -140 0 0 125
0 125 140 0 140 0 0 -125z"/>
<path fill="#ffffff" stroke="none" d="M2858 2148 l-3 -123 -125 -5 c-69 -3
-133 -3 -142 -1 -16 3 -18 17 -18 127 l0 124 145 0 146 0 -3 -122z"/>
<path fill="#ffffff" stroke="none" d="M5080 2145 l0 -125 -140 0 -140 0 0
125 0 125 140 0 140 0 0 -125z"/>
<path fill="#ffffff" stroke="none" d="M1256 1975 c-4 -11 -106 -45 -134 -45
-8 0 -12 27 -12 90 l0 89 43 11 c23 6 56 14 72 18 l30 8 3 -80 c2 -44 1 -85
-2 -91z"/>
<path fill="#ffffff" stroke="none" d="M3810 2056 c0 -82 -1 -84 -27 -94 -30
-12 -103 -32 -116 -32 -4 0 -6 41 -5 91 l3 92 65 16 c36 9 68 15 73 13 4 -2 7
-41 7 -86z"/>
<path fill="#ffffff" stroke="none" d="M1379 2124 l69 -15 5 -47 c5 -45 2
-130 -5 -138 -2 -1 -36 6 -75 18 -69 20 -71 22 -77 57 -10 58 -7 141 5 141 5
0 41 -7 78 -16z"/>
<path fill="#ffffff" stroke="none" d="M3928 2123 l72 -17 0 -93 c0 -51 -4
-93 -8 -93 -4 0 -39 11 -78 23 l-69 24 -3 86 c-1 48 1 87 5 87 4 0 41 -7 81
-17z"/>
<path fill="#ffffff" stroke="none" d="M1080 2005 l0 -95 -27 -6 c-16 -3 -53
-12 -84 -20 -31 -8 -60 -14 -63 -14 -3 0 -6 45 -6 100 l0 99 38 7 c20 3 53 10
72 14 73 17 70 20 70 -85z"/>
<path fill="#ffffff" stroke="none" d="M1605 2077 l60 -12 3 -103 3 -104 -23
8 c-13 4 -54 15 -92 25 -38 10 -72 23 -76 29 -4 6 -6 35 -4 63 2 29 3 67 4 85
0 37 -12 36 125 9z"/>
<path fill="#ffffff" stroke="none" d="M3630 2006 l0 -94 -85 -21 c-46 -11
-89 -21 -95 -21 -15 0 -13 187 2 196 11 7 123 30 161 33 15 1 17 -10 17 -93z"/>
<path fill="#ffffff" stroke="none" d="M4121 2084 l89 -17 0 -102 0 -103 -57
15 c-32 8 -75 19 -95 24 l-38 10 0 94 c0 52 3 95 6 95 3 0 46 -7 95 -16z"/>
<path fill="#ffffff" stroke="none" d="M870 1961 c0 -113 10 -101 -108 -126
-129 -27 -122 -32 -122 89 l0 105 58 6 c31 4 75 11 97 15 80 15 75 21 75 -89z"/>
<path fill="#ffffff" stroke="none" d="M1828 2039 c85 -11 93 -14 98 -36 7
-25 1 -180 -7 -187 -2 -2 -53 6 -114 17 l-110 22 -3 104 c-3 103 -3 103 20 98
13 -3 65 -11 116 -18z"/>
<path fill="#ffffff" stroke="none" d="M3408 1958 l-3 -103 -80 -17 c-44 -9
-95 -17 -112 -17 l-33 -1 0 100 c0 71 4 102 13 105 11 4 173 31 205 34 10 1
12 -23 10 -101z"/>
<path fill="#ffffff" stroke="none" d="M4373 2040 l97 -12 0 -110 c0 -100 -2
-109 -17 -104 -10 3 -61 13 -113 22 -52 9 -97 18 -99 20 -3 3 -6 50 -8 105 -2
100 -2 101 20 96 12 -3 66 -11 120 -17z"/>
<path fill="#ffffff" stroke="none" d="M610 1915 l0 -104 -32 -6 c-67 -11
-174 -25 -200 -25 l-28 0 0 109 0 109 103 9 c56 6 114 11 130 12 l27 1 0 -105z"/>
<path fill="#ffffff" stroke="none" d="M2105 2005 c124 -10 115 -1 115 -121 0
-121 17 -111 -152 -92 l-108 12 0 109 0 109 33 -5 c17 -3 68 -9 112 -12z"/>
<path fill="#ffffff" stroke="none" d="M3150 1915 c0 -120 14 -107 -129 -125
-144 -17 -131 -27 -131 99 l0 109 108 9 c59 6 117 11 130 11 21 2 22 0 22
-103z"/>
<path fill="#ffffff" stroke="none" d="M4695 2001 l60 -6 3 -107 3 -108 -43 1
c-24 0 -81 6 -128 12 l-85 12 -3 108 -3 108 68 -7 c37 -4 95 -9 128 -13z"/>
<path fill="#ffffff" stroke="none" d="M310 1880 l0 -110 -32 -1 c-18 0 -81
-3 -141 -5 l-107 -5 0 110 0 110 68 4 c37 2 100 4 140 5 l72 2 0 -110z"/>
<path fill="#ffffff" stroke="none" d="M2463 1984 l77 -7 0 -110 0 -109 -137
7 c-76 4 -139 8 -140 9 0 0 -3 49 -5 109 l-3 107 66 0 c36 0 100 -3 142 -6z"/>
<path fill="#ffffff" stroke="none" d="M2860 1886 c0 -58 -4 -107 -9 -110 -5
-3 -70 -8 -145 -11 l-136 -5 0 109 0 110 68 4 c37 2 102 4 145 5 l77 2 0 -104z"/>
<path fill="#ffffff" stroke="none" d="M5038 1980 l42 0 0 -112 0 -111 -107 6
c-58 4 -121 7 -140 7 l-33 0 0 112 0 111 98 -6 c53 -4 116 -7 140 -7z"/>
<path fill="#ffffff" stroke="none" d="M3810 1866 l0 -74 -75 -30 -76 -31 3
86 3 86 65 22 c36 12 68 20 73 18 4 -2 7 -37 7 -77z"/>
<path fill="#ffffff" stroke="none" d="M1262 1869 c2 -40 -1 -74 -7 -79 -12
-9 -122 -50 -136 -50 -6 0 -9 32 -7 82 l3 82 55 17 c90 28 88 29 92 -52z"/>
<path fill="#ffffff" stroke="none" d="M1381 1920 l69 -21 0 -84 0 -84 -75 26
-75 25 0 63 c0 35 -3 70 -6 79 -8 21 5 20 87 -4z"/>
<path fill="#ffffff" stroke="none" d="M3932 1918 l68 -22 0 -76 c0 -42 -3
-79 -6 -83 -3 -3 -39 7 -80 21 l-74 27 0 77 c0 53 4 78 12 78 6 0 42 -10 80
-22z"/>
<path fill="#ffffff" stroke="none" d="M1080 1805 l0 -84 -72 -21 c-40 -12
-81 -24 -91 -26 -16 -5 -18 2 -15 82 l3 88 80 22 c44 12 83 23 88 23 4 1 7
-37 7 -84z"/>
<path fill="#ffffff" stroke="none" d="M1536 1876 c27 -8 68 -20 92 -26 l42
-11 0 -84 c0 -68 -3 -85 -14 -85 -8 0 -51 11 -95 25 l-81 26 0 84 c0 47 1 85
3 85 2 0 26 -6 53 -14z"/>
<path fill="#ffffff" stroke="none" d="M3628 1808 l-3 -83 -60 -21 c-33 -12
-75 -25 -93 -29 l-33 -7 3 88 3 87 80 22 c115 32 106 37 103 -57z"/>
<path fill="#ffffff" stroke="none" d="M4135 1861 l70 -17 3 -92 3 -91 -28 9
c-15 4 -58 18 -95 30 l-68 22 0 84 c0 83 0 84 23 79 12 -3 54 -14 92 -24z"/>
<path fill="#ffffff" stroke="none" d="M870 1745 l0 -84 -37 -10 c-37 -10
-180 -41 -189 -41 -2 0 -4 40 -4 90 0 85 1 90 23 94 222 48 207 52 207 -49z"/>
<path fill="#ffffff" stroke="none" d="M1815 1809 c119 -20 115 -15 115 -114
0 -100 9 -96 -140 -62 l-95 22 -3 88 -3 89 28 -6 c15 -3 60 -11 98 -17z"/>
<path fill="#ffffff" stroke="none" d="M3410 1746 c0 -47 -4 -87 -9 -90 -9 -6
-195 -46 -212 -46 -5 0 -9 40 -9 89 l0 90 53 10 c28 5 72 14 97 19 84 18 80
22 80 -72z"/>
<path fill="#ffffff" stroke="none" d="M4360 1810 c58 -11 106 -20 107 -20 2
0 3 -42 3 -93 l0 -94 -112 24 c-62 13 -116 29 -120 36 -13 19 -7 167 6 167 6
0 58 -9 116 -20z"/>
<path fill="#ffffff" stroke="none" d="M610 1690 c0 -49 -3 -90 -7 -90 -5 -1
-62 -9 -128 -19 -66 -11 -122 -17 -124 -15 -8 7 -6 172 2 180 7 8 162 29 230
33 l27 1 0 -90z"/>
<path fill="#ffffff" stroke="none" d="M2085 1765 c65 -8 123 -15 127 -15 4 0
8 -43 8 -95 0 -52 -2 -95 -5 -95 -11 0 -212 30 -232 35 -22 5 -23 10 -23 95 0
50 1 90 3 90 1 0 56 -7 122 -15z"/>
<path fill="#ffffff" stroke="none" d="M3150 1690 l0 -89 -32 -6 c-98 -16
-167 -25 -195 -25 l-33 0 0 90 c0 50 1 90 3 91 7 2 206 26 230 28 l27 1 0 -90z"/>
<path fill="#ffffff" stroke="none" d="M4630 1765 c58 -8 111 -15 118 -15 9 0
12 -26 12 -95 0 -52 -2 -95 -5 -95 -11 0 -212 30 -232 35 -22 5 -23 10 -23 95
0 66 3 90 13 90 6 0 59 -7 117 -15z"/>
<path fill="#ffffff" stroke="none" d="M1269 1712 c-3 -84 -4 -87 -78 -110
-37 -12 -71 -22 -75 -22 -4 0 -6 30 -4 67 l3 68 70 26 c38 15 73 25 78 22 4
-2 7 -26 6 -51z"/>
<path fill="#ffffff" stroke="none" d="M3810 1701 l0 -69 -75 -30 -75 -31 0
72 0 72 68 27 c37 15 70 27 75 27 4 1 7 -30 7 -68z"/>
<path fill="#ffffff" stroke="none" d="M1385 1737 l60 -22 3 -72 3 -73 -73 27
c-40 14 -75 28 -77 29 -2 2 -5 33 -6 69 -2 76 -2 76 90 42z"/>
<path fill="#ffffff" stroke="none" d="M3947 1729 l55 -21 -4 -64 c-2 -35 -6
-66 -10 -69 -3 -3 -37 7 -77 22 l-71 28 0 69 c0 78 -5 76 107 35z"/>
<path fill="#ffffff" stroke="none" d="M308 1564 c-2 -1 -65 -6 -141 -10
l-137 -7 0 96 0 96 138 3 137 3 3 -89 c1 -49 1 -90 0 -92z"/>
<path fill="#ffffff" stroke="none" d="M2858 1653 l3 -90 -83 -6 c-46 -4 -111
-7 -146 -7 l-63 0 3 93 3 92 125 5 c69 3 132 5 140 4 12 -1 16 -19 18 -91z"/>
<path fill="#ffffff" stroke="none" d="M2518 1734 c21 -6 22 -11 22 -97 l0
-90 -136 6 c-75 3 -139 8 -141 11 -2 2 -6 43 -8 90 l-3 86 121 0 c67 0 132 -3
145 -6z"/>
<path fill="#ffffff" stroke="none" d="M5078 1643 l3 -93 -64 0 c-35 0 -98 3
-140 6 l-77 7 0 89 0 89 138 -3 137 -3 3 -92z"/>
<path fill="#ffffff" stroke="none" d="M1078 1628 l-3 -72 -75 -27 c-41 -15
-81 -28 -87 -28 -9 -1 -13 20 -13 74 l0 74 43 11 c23 6 60 17 82 25 22 7 44
14 48 14 4 1 7 -31 5 -71z"/>
<path fill="#ffffff" stroke="none" d="M1575 1672 l90 -28 0 -66 c0 -37 -3
-69 -7 -73 -3 -4 -45 6 -92 21 l-86 28 0 73 c0 40 1 73 3 73 1 0 43 -13 92
-28z"/>
<path fill="#ffffff" stroke="none" d="M3630 1631 l0 -70 -81 -31 c-45 -17
-87 -29 -94 -27 -17 7 -20 133 -3 144 11 7 150 50 171 52 4 1 7 -30 7 -68z"/>
<path fill="#ffffff" stroke="none" d="M4140 1665 l65 -22 3 -71 c3 -85 5 -84
-108 -44 l-75 27 -3 73 -3 73 28 -7 c15 -4 57 -17 93 -29z"/>
<path fill="#ffffff" stroke="none" d="M870 1561 l0 -68 -72 -21 c-40 -12 -92
-24 -115 -28 l-43 -7 0 75 0 75 93 20 c144 33 137 35 137 -46z"/>
<path fill="#ffffff" stroke="none" d="M1820 1607 l105 -23 0 -71 c0 -39 -2
-74 -5 -77 -3 -3 -55 7 -115 22 l-110 27 -3 73 c-2 54 0 72 10 72 7 0 60 -11
118 -23z"/>
<path fill="#ffffff" stroke="none" d="M3408 1558 l-3 -72 -102 -25 c-56 -14
-105 -22 -109 -19 -3 4 -9 36 -11 72 -7 76 -13 70 111 97 126 26 117 30 114
-53z"/>
<path fill="#ffffff" stroke="none" d="M4365 1607 l100 -22 3 -78 3 -78 -28 7
c-203 46 -213 50 -213 87 0 54 12 107 24 106 6 0 56 -10 111 -22z"/>
<path fill="#ffffff" stroke="none" d="M3938 1563 l43 -18 -79 -39 -80 -39
-82 40 c-65 32 -78 42 -63 48 10 4 47 18 82 30 69 25 72 25 179 -22z"/>
<path fill="#ffffff" stroke="none" d="M1373 1574 c38 -15 65 -30 60 -34 -4
-5 -40 -24 -79 -44 l-70 -35 -82 42 -81 43 67 26 c86 33 102 33 185 2z"/>
<path fill="#ffffff" stroke="none" d="M610 1506 c0 -86 12 -78 -153 -101
-125 -17 -129 -13 -109 100 l7 40 120 16 c66 9 123 17 128 18 4 0 7 -32 7 -73z"/>
<path fill="#ffffff" stroke="none" d="M2075 1560 c44 -6 95 -13 113 -16 l32
-5 0 -74 c0 -63 -3 -75 -16 -75 -47 0 -231 33 -241 43 -8 8 -10 34 -6 80 5 56
9 67 22 63 9 -3 52 -10 96 -16z"/>
<path fill="#ffffff" stroke="none" d="M3150 1505 c0 -69 -2 -75 -22 -80 -24
-6 -217 -35 -231 -35 -4 0 -7 35 -5 77 l3 78 115 16 c63 9 121 17 128 18 9 1
12 -20 12 -74z"/>
<path fill="#ffffff" stroke="none" d="M4753 1541 c4 -1 7 -35 7 -77 l0 -76
-62 7 c-35 4 -92 12 -128 18 l-65 12 -3 64 c-2 35 -1 69 1 75 4 9 36 7 123 -6
66 -9 122 -17 127 -17z"/>
<path fill="#ffffff" stroke="none" d="M310 1465 c0 -65 -2 -75 -17 -76 -10 0
-67 -4 -127 -8 -61 -5 -116 -7 -123 -4 -9 4 -13 27 -13 79 l0 73 98 4 c53 1
116 4 140 5 l42 2 0 -75z"/>
<path fill="#ffffff" stroke="none" d="M2453 1530 l87 0 0 -75 0 -75 -122 0
c-68 0 -133 3 -145 6 -25 7 -28 25 -16 109 l6 47 51 -6 c28 -3 90 -6 139 -6z"/>
<path fill="#ffffff" stroke="none" d="M2858 1464 c3 -81 1 -84 -90 -84 -37 0
-48 -4 -48 -16 0 -14 10 -15 70 -9 l70 7 34 -73 35 -74 -170 -9 c-94 -4 -173
-5 -177 -2 -3 4 -8 38 -10 76 l-4 69 68 3 c46 2 69 7 72 17 3 10 -10 12 -64
10 l-69 -4 -3 77 -3 77 93 4 c51 2 116 3 143 3 l50 -1 3 -71z"/>
<path fill="#ffffff" stroke="none" d="M4189 1473 c6 -4 -20 -23 -87 -64 -51
-31 -56 -32 -97 -21 -46 12 -155 60 -155 67 0 3 35 22 77 43 l77 39 90 -30
c50 -16 93 -31 95 -34z"/>
<path fill="#ffffff" stroke="none" d="M5008 1530 l72 0 0 -80 0 -79 -97 5
c-54 3 -117 7 -140 10 -47 6 -50 13 -44 103 l3 54 67 -7 c36 -3 99 -6 139 -6z"/>
<path fill="#ffffff" stroke="none" d="M1176 1496 c41 -19 74 -39 74 -44 0 -5
-43 -26 -95 -47 l-94 -38 -37 19 c-20 10 -52 33 -72 51 -28 24 -33 33 -22 37
37 14 156 55 163 55 5 1 42 -14 83 -33z"/>
<path fill="#ffffff" stroke="none" d="M1559 1505 c44 -14 83 -30 86 -34 2 -5
-26 -30 -63 -56 l-69 -46 -101 37 c-56 21 -102 40 -101 43 0 8 141 80 156 81
7 0 48 -11 92 -25z"/>
<path fill="#ffffff" stroke="none" d="M3721 1495 c38 -20 67 -39 65 -44 -7
-11 -157 -72 -182 -73 -24 -2 -156 84 -146 94 12 12 144 56 170 57 12 1 54
-15 93 -34z"/>
<path fill="#ffffff" stroke="none" d="M4340 1438 c47 -11 91 -23 97 -27 17
-9 -93 -121 -119 -121 -27 0 -148 35 -199 57 l-44 20 30 15 c17 9 50 32 75 52
26 21 51 34 60 30 8 -3 53 -15 100 -26z"/>
<path fill="#ffffff" stroke="none" d="M920 1432 c19 -16 50 -37 68 -47 17
-11 32 -23 32 -27 0 -7 -157 -60 -219 -73 -31 -7 -37 -4 -87 51 -30 33 -54 62
-54 66 0 4 26 12 58 18 31 6 77 18 102 25 62 19 61 19 100 -13z"/>
<path fill="#ffffff" stroke="none" d="M1811 1435 c56 -13 103 -26 105 -27 3
-4 -84 -98 -107 -116 -12 -9 -31 -7 -90 8 -94 26 -169 52 -169 59 1 10 134
101 147 101 6 0 58 -11 114 -25z"/>
<path fill="#ffffff" stroke="none" d="M3492 1413 c37 -26 65 -50 61 -54 -13
-12 -201 -69 -228 -69 -16 0 -38 16 -69 53 -25 28 -46 57 -48 62 -2 9 152 52
196 54 11 1 50 -20 88 -46z"/>
<path fill="#ffffff" stroke="none" d="M1398 1390 c45 -17 82 -35 82 -39 0 -3
-44 -30 -98 -58 l-97 -52 -98 51 c-53 28 -97 54 -97 57 0 3 42 24 93 47 63 28
98 39 112 34 11 -4 57 -22 103 -40z"/>
<path fill="#ffffff" stroke="none" d="M3920 1402 c52 -21 94 -42 93 -47 -2
-6 -45 -32 -96 -59 l-93 -50 -101 50 c-56 27 -102 51 -102 54 -1 6 179 88 194
89 6 0 53 -17 105 -37z"/>
<path fill="#ffffff" stroke="none" d="M678 1337 l63 -63 -48 -12 c-68 -17
-213 -42 -246 -42 -25 0 -32 8 -58 65 -17 35 -28 69 -24 75 3 5 27 10 53 11
37 0 116 12 192 28 3 0 34 -27 68 -62z"/>
<path fill="#ffffff" stroke="none" d="M2118 1378 c50 -7 92 -16 92 -21 0 -5
-14 -38 -31 -73 -19 -42 -36 -64 -47 -64 -16 0 -190 31 -259 46 -18 3 -33 9
-33 13 0 3 23 28 50 55 28 27 50 53 50 59 0 6 17 7 43 3 23 -3 84 -11 135 -18z"/>
<path fill="#ffffff" stroke="none" d="M3213 1344 c29 -31 53 -60 55 -64 3 -7
-141 -37 -263 -55 l-41 -6 -34 70 c-18 39 -32 72 -29 74 4 4 198 33 237 36 17
1 39 -15 75 -55z"/>
<path fill="#ffffff" stroke="none" d="M4617 1385 c59 -9 114 -18 121 -20 9
-3 4 -21 -17 -62 -47 -91 -35 -86 -147 -68 -90 15 -157 29 -192 40 -15 6 95
125 115 125 7 0 61 -7 120 -15z"/>
<path fill="#ffffff" stroke="none" d="M2471 1350 l70 0 -3 -72 -3 -73 -169 2
c-93 1 -170 4 -173 6 -2 2 9 37 24 76 l28 72 68 -2 c37 -1 70 1 74 5 4 4 9 2
11 -3 2 -7 33 -11 73 -11z"/>
<path fill="#ffffff" stroke="none" d="M5017 1350 l53 0 0 -76 0 -77 -172 7
c-95 4 -174 9 -176 11 -2 1 12 35 29 75 l33 73 89 -7 c50 -3 114 -6 144 -6z"/>
<path fill="#ffffff" stroke="none" d="M349 1292 c13 -31 25 -62 28 -68 6 -16
-45 -24 -204 -31 l-143 -6 0 76 0 76 68 4 c37 2 103 4 147 5 l80 2 24 -58z"/>
<path fill="#ffffff" stroke="none" d="M1146 1283 l107 -56 -59 -28 c-33 -15
-95 -39 -137 -54 l-77 -28 -38 26 c-45 29 -136 106 -140 118 -2 5 5 9 15 9 13
1 198 58 220 69 1 1 50 -25 109 -56z"/>
<path fill="#ffffff" stroke="none" d="M1653 1300 c64 -18 117 -37 117 -41 0
-3 -37 -36 -81 -73 -93 -75 -79 -74 -229 -19 -159 59 -156 55 -75 96 39 20 84
45 100 57 17 11 35 19 40 18 6 -2 63 -19 128 -38z"/>
<path fill="#ffffff" stroke="none" d="M3657 1302 c37 -21 83 -44 101 -52 18
-7 29 -16 25 -20 -14 -13 -242 -100 -262 -100 -10 0 -58 30 -105 68 l-87 67
63 18 c35 10 88 27 118 37 30 10 60 19 67 19 6 1 42 -16 80 -37z"/>
<path fill="#ffffff" stroke="none" d="M4194 1302 l119 -38 -84 -67 c-46 -37
-91 -67 -101 -67 -21 0 -162 49 -230 79 l-48 22 77 40 c42 22 86 47 97 55 28
19 36 18 170 -24z"/>
<path fill="#ffffff" stroke="none" d="M4514 1225 c77 -14 142 -27 144 -30 3
-2 -19 -41 -48 -85 -38 -58 -58 -80 -74 -80 -29 0 -323 67 -342 78 -13 7 -7
16 33 45 26 19 64 52 82 71 21 21 42 34 50 31 9 -2 79 -16 155 -30z"/>
<path fill="#ffffff" stroke="none" d="M813 1201 c31 -28 71 -60 89 -72 l31
-23 -36 -12 c-20 -7 -96 -24 -169 -39 -73 -14 -142 -28 -154 -30 -21 -5 -62
41 -112 126 -28 47 -28 49 11 50 17 0 84 11 147 24 63 12 120 23 125 24 6 0
36 -21 68 -48z"/>
<path fill="#ffffff" stroke="none" d="M1984 1224 c77 -15 143 -28 145 -30 6
-5 -76 -139 -94 -154 -13 -11 -30 -11 -88 -2 -100 15 -297 64 -297 73 0 4 21
23 48 42 26 20 60 49 76 66 17 17 38 31 49 31 11 0 83 -12 161 -26z"/>
<path fill="#ffffff" stroke="none" d="M3331 1224 c13 -14 50 -45 82 -69 l57
-44 -57 -16 c-71 -21 -281 -65 -308 -65 -14 0 -36 24 -73 80 -29 45 -50 85
-47 90 4 6 21 10 38 10 18 1 73 9 122 19 130 27 157 26 186 -5z"/>
<path fill="#ffffff" stroke="none" d="M1427 1154 c79 -31 141 -59 139 -63 -3
-3 -65 -38 -139 -76 l-135 -69 -137 70 c-75 38 -136 74 -134 79 1 6 41 24 88
41 47 17 104 40 126 52 22 12 42 21 44 22 3 0 69 -25 148 -56z"/>
<path fill="#ffffff" stroke="none" d="M3912 1177 c46 -19 107 -42 137 -52 44
-14 51 -19 40 -31 -21 -21 -247 -134 -267 -134 -20 0 -195 88 -250 125 l-34
23 54 16 c29 9 89 32 133 50 44 19 85 35 92 35 7 1 49 -14 95 -32z"/>
<path fill="#ffffff" stroke="none" d="M420 1148 c13 -24 36 -62 52 -85 15
-23 28 -44 28 -46 0 -6 -194 -25 -336 -33 l-121 -6 -7 87 c-6 68 -4 90 6 96 7
5 56 9 108 10 78 1 168 8 236 17 6 1 21 -17 34 -40z"/>
<path fill="#ffffff" stroke="none" d="M2369 1180 c109 -6 156 -12 162 -22 10
-16 12 -93 2 -138 l-6 -33 -151 7 c-167 8 -282 19 -291 28 -3 3 16 42 42 87
35 59 53 81 68 81 11 -1 89 -5 174 -10z"/>
<path fill="#ffffff" stroke="none" d="M2987 1108 l49 -83 -30 -7 c-40 -8
-296 -28 -369 -28 l-57 0 0 95 0 94 108 4 c59 1 139 4 179 5 l72 2 48 -82z"/>
<path fill="#ffffff" stroke="none" d="M5017 1174 l53 -6 -6 -87 c-4 -47 -8
-88 -10 -90 -5 -6 -381 18 -421 27 l-33 7 31 45 c16 25 39 62 50 84 l21 39
131 -7 c73 -3 156 -9 184 -12z"/>
<path fill="#ffffff" stroke="none" d="M3577 1042 c45 -27 106 -59 137 -72 31
-12 56 -26 56 -30 0 -16 -308 -110 -413 -125 -39 -6 -46 -3 -97 40 -30 25 -76
69 -102 97 l-46 52 136 28 c75 15 157 34 182 42 63 20 59 21 147 -32z"/>
<path fill="#ffffff" stroke="none" d="M4240 1066 c52 -14 133 -32 180 -41 47
-9 91 -18 99 -21 17 -5 -99 -127 -161 -171 l-38 -26 -97 23 c-93 21 -229 61
-318 93 l-39 14 99 51 c55 28 116 63 135 76 19 14 37 25 40 26 3 0 48 -11 100
-24z"/>
<path fill="#ffffff" stroke="none" d="M1030 1044 c33 -19 94 -51 135 -71 41
-19 75 -39 75 -43 0 -11 -194 -73 -332 -105 l-118 -28 -52 41 c-29 23 -80 68
-112 101 l-59 60 39 6 c71 13 269 55 299 64 49 15 61 13 125 -25z"/>
<path fill="#ffffff" stroke="none" d="M1830 1037 c90 -19 166 -39 167 -44 2
-6 -37 -49 -88 -97 -106 -100 -104 -99 -250 -62 -129 32 -319 90 -318 96 0 3
30 19 67 37 37 18 96 50 132 72 75 47 58 47 290 -2z"/>
<path fill="#ffffff" stroke="none" d="M3149 900 c55 -55 96 -102 91 -105 -25
-15 -624 -64 -637 -52 -7 8 -23 209 -17 216 1 2 74 7 161 12 130 8 289 22 301
28 1 0 47 -44 101 -99z"/>
<path fill="#ffffff" stroke="none" d="M4765 980 c83 -6 182 -13 222 -16 l71
-6 -5 -101 c-3 -56 -9 -106 -14 -111 -14 -15 -541 26 -636 50 -20 6 -18 9 26
44 27 21 73 66 102 99 33 38 59 59 69 57 8 -3 83 -10 165 -16z"/>
<path fill="#ffffff" stroke="none" d="M617 890 c71 -71 95 -101 84 -104 -53
-14 -342 -42 -523 -51 l-128 -5 0 57 c0 32 -3 81 -6 109 l-6 51 73 7 c41 3
118 9 173 12 54 4 121 10 150 14 28 4 58 8 67 9 9 0 61 -44 116 -99z"/>
<path fill="#ffffff" stroke="none" d="M2220 980 c58 -5 152 -12 210 -16 l105
-6 -3 -106 c-2 -59 -5 -109 -7 -111 -11 -11 -639 40 -652 53 -2 1 39 46 90 98
104 109 89 104 257 88z"/>
<path fill="#ffffff" stroke="none" d="M3934 880 c64 -22 169 -52 232 -67 63
-16 114 -31 114 -35 0 -16 -269 -139 -360 -164 -94 -27 -94 -27 -160 -10 -99
27 -246 87 -329 136 l-75 43 130 32 c96 24 324 96 329 104 1 1 54 -17 119 -39z"/>
<path fill="#ffffff" stroke="none" d="M1373 885 c62 -22 270 -79 360 -99 15
-4 25 -11 22 -17 -13 -19 -229 -121 -333 -156 l-105 -35 -66 17 c-100 25 -260
88 -351 138 l-81 44 88 17 c49 10 152 39 228 65 77 27 146 49 153 50 7 0 45
-10 85 -24z"/>
<path fill="#ffffff" stroke="none" d="M2000 745 c69 -8 215 -20 325 -26 110
-6 201 -12 203 -14 2 -2 0 -57 -4 -124 l-7 -121 -91 0 c-306 0 -864 54 -1010
97 -14 4 13 17 86 43 97 34 230 100 303 150 17 11 39 18 50 16 11 -3 76 -12
145 -21z"/>
<path fill="#ffffff" stroke="none" d="M3388 715 c97 -55 210 -104 296 -127
25 -7 46 -15 46 -19 0 -7 -177 -42 -300 -58 -184 -25 -334 -37 -596 -46 l-201
-8 -11 74 c-6 41 -14 97 -18 125 l-6 51 128 7 c139 8 378 31 459 45 91 16 103
13 203 -44z"/>
<path fill="#ffffff" stroke="none" d="M4440 760 c73 -14 320 -38 474 -46
l128 -6 -6 -67 c-4 -36 -12 -91 -19 -121 l-13 -55 -144 1 c-176 1 -433 18
-595 39 -149 19 -345 56 -345 65 0 4 33 16 73 28 71 21 264 111 322 151 34 24
51 25 125 11z"/>
<path fill="#ffffff" stroke="none" d="M891 692 c74 -38 176 -82 226 -98 51
-16 93 -32 93 -35 0 -15 -273 -57 -535 -84 -89 -9 -397 -25 -491 -25 l-91 0
-12 59 c-6 32 -14 88 -18 124 l-6 65 99 6 c206 12 392 28 469 41 125 19 124
20 266 -53z"/>
<path fill="#ffffff" stroke="none" d="M1595 485 c126 -20 384 -44 550 -50 77
-3 191 -8 253 -12 l114 -6 -7 -44 c-9 -59 -32 -123 -52 -145 -61 -68 -259 -82
-968 -68 -280 5 -571 10 -645 10 -342 2 -569 43 -651 117 -38 34 -79 98 -79
123 0 6 55 10 158 10 290 0 689 42 977 103 52 12 73 11 160 -5 55 -10 141 -25
190 -33z"/>
<path fill="#ffffff" stroke="none" d="M3922 525 c233 -49 520 -81 850 -94
115 -5 211 -11 214 -14 8 -8 -41 -100 -68 -124 -88 -83 -305 -119 -718 -122
-129 -1 -251 -4 -270 -7 -65 -10 -821 15 -925 30 -191 29 -278 72 -327 161
-15 28 -28 55 -28 61 0 7 71 13 218 17 306 10 685 50 852 92 74 18 115 18 202
0z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 50 KiB

View File

@ -5,17 +5,23 @@ from modules import script_callbacks, shared
import gradio as gr
usefulDirs = scripts.basedir().split(os.sep)[-2:]
iframesrc = "file="+usefulDirs[0]+"/"+usefulDirs[1]+"/scripts/viewer.html"
def add_tab():
with gr.Blocks(analytics_enabled=False) as ui:
gr.HTML(value=f"<iframe id=\"panoviewer-iframe\" class=\"border-2 border-gray-200\" src=\"file={usefulDirs[0]}/{usefulDirs[1]}/scripts/viewer.html\" title='description'></iframe>")
gr.HTML(value=f"<iframe id=\"panoviewer-iframe\" class=\"border-2 border-gray-200\" src=\"{iframesrc}\" title='description'></iframe>")
return [(ui, "Panorama Viewer", "panorama-3dviewer")]
def after_component(component, **kwargs):
# Add button to both txt2img and img2img tabs
if kwargs.get("elem_id") == "extras_tab":
basic_send_button = gr.Button("Send to PanoramaViewer", elem_id=f"sendto_panorama_button")
basic_send_button.click(None, [], None, _js="() => panorama_send_gallery('WebUI Resource')")
# with gr.Row(elem_id="pano_sendbox",variant="compact", css="justify-content: center; align-content: flex-end;"):
basic_send_button = gr.Button("Pano \U0001F440", elem_id=f"sendto_panorama_button") # 👀
view_gallery_button = gr.Button ("Pano \U0001F310") # 🌐
basic_send_button.click(None, [], None, _js="() => panorama_send_gallery('WebUI Resource')")
basic_send_button.__setattr__("class","gr-button")
view_gallery_button.click (None, [],None, _js="panorama_here(\""+iframesrc+"\")")
script_callbacks.on_ui_tabs(add_tab)
script_callbacks.on_after_component(after_component)

View File

@ -1,20 +1,21 @@
<head>
<!-- for optimal display on high DPI devices -->
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@photo-sphere-viewer/core/index.min.css" />
</head>
<script src="https://cdn.jsdelivr.net/npm/three/build/three.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@photo-sphere-viewer/core/index.min.js"></script>
<!-- the viewer container must have a defined size -->
<div id="panoramaviewer" ondrop="dropHandler(event);" ondragover="dragOverHandler(event);"> </div>>
<div id="panoramaviewer" ondrop="dropHandler(event);" ondragover="dragOverHandler(event);"> </div>
<script>
const startImage = window.frameElement.getAttribute("panoimage") ? window.frameElement.getAttribute("panoimage") : '../docs/assets/img/startimage.jpg'
const panoviewer = new PhotoSphereViewer.Viewer({
container: document.querySelector('#panoramaviewer'),
panorama: '../docs/assets/img/startimage.jpg',
});
panorama: startImage
})
window.addEventListener("message", ({ data, origin, source }) => {
console.log(data.type)
@ -24,17 +25,15 @@
panoviewer.setPanorama(data.image.dataURL)
//.then(() => /* update complete */);
document.querySelector('#panoramaviewer').focus()
break
}
}
)
})
function setPanoFromDroppedFile(file) {
reader = new FileReader();
reader.onload = function (event) {
//console.log(event.target.result);
panoviewer.setPanorama(event.target.result)
};
}
reader.readAsDataURL(file);
}
@ -69,8 +68,4 @@
ev.preventDefault();
}
</script>

View File

@ -1,4 +1,15 @@
.panogalviewer-iframe body {
overflow: hidden;
}
#panoviewer-iframe {
width:100vw;
height:100vh;
}
}
.panogalviewer-iframe {
z-index: inherit;
flex: auto;
width:100%;
height:100%;
}