diff options
Diffstat (limited to 'libimage')
-rw-r--r-- | libimage/Makefile | 51 | ||||
-rw-r--r-- | libimage/error.svg | 2167 | ||||
-rw-r--r-- | libimage/error.xpm | 454 | ||||
-rw-r--r-- | libimage/error_small.xpm | 183 | ||||
-rw-r--r-- | libimage/img1.xpm | 56 | ||||
-rw-r--r-- | libimage/img2.xpm | 56 | ||||
-rw-r--r-- | libimage/img3.xpm | 56 | ||||
-rw-r--r-- | libimage/img4.xpm | 56 | ||||
-rw-r--r-- | libimage/img5.xpm | 56 | ||||
-rw-r--r-- | libimage/img6.xpm | 56 | ||||
-rw-r--r-- | libimage/img7.xpm | 56 | ||||
-rw-r--r-- | libimage/img8.xpm | 56 | ||||
-rw-r--r-- | libimage/img9.xpm | 56 | ||||
-rw-r--r-- | libimage/pnm.c | 512 | ||||
-rw-r--r-- | libimage/pnm.h | 218 | ||||
-rw-r--r-- | libimage/xpm.c | 224 | ||||
-rw-r--r-- | libimage/xpm.h | 65 |
17 files changed, 4378 insertions, 0 deletions
diff --git a/libimage/Makefile b/libimage/Makefile new file mode 100644 index 0000000..e46bb0c --- /dev/null +++ b/libimage/Makefile @@ -0,0 +1,51 @@ +# +# Makefile for a Video Disk Recorder plugin +# +# $Id$ + +VDRDIR = ../../../.. + +### The C++ compiler and options: + +CXX ?= g++ +CXXFLAGS ?= -O0 -g -Wall -Woverloaded-virtual + +-include $(VDRDIR)/Make.config + +### The directory environment: + + +INCLUDES += -I$(VDRDIR)/include + +DEFINES += -D_GNU_SOURCE + +LIBS += + +### The object files (add further files here): + +OBJS = pnm.o xpm.o + +### Implicit rules: + +%.o: %.c + $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $< + +# Dependencies: + +MAKEDEP = $(CXX) -MM -MG +DEPFILE = .dependencies +$(DEPFILE): Makefile + @$(MAKEDEP) $(DEFINES) $(INCLUDES) $(OBJS:%.o=%.c) > $@ + +-include $(DEPFILE) + +### Targets: + +all: libimage.a + +libimage.a : $(OBJS) + $(AR) $(ARFLAGS) $@ $(OBJS) +# $(CXX) $(CXXFLAGS) -shared $(OBJS) $(LIBS) -o $@ + +clean: + @-rm -f $(OBJS) $(DEPFILE) *.a *.so *.tgz core* *~ diff --git a/libimage/error.svg b/libimage/error.svg new file mode 100644 index 0000000..b633739 --- /dev/null +++ b/libimage/error.svg @@ -0,0 +1,2167 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" +"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<!-- Created with Sodipodi ("http://www.sodipodi.com/") --> +<svg + width="704pt" + height="576pt" + viewBox="0 0 256 256" + style="overflow:visible;enable-background:new 0 0 256 256" + xml:space="preserve" + id="svg3469" + sodipodi:version="0.33" + sodipodi:docname="Image-Error.svg" + sodipodi:docbase="." + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xml="http://www.w3.org/XML/1998/namespace" + xmlns:xlink="http://www.w3.org/1999/xlink"> + <defs + id="defs3579"> + <linearGradient + id="XMLID_1_" + gradientUnits="userSpaceOnUse" + x1="128.9995" + y1="11" + x2="128.9995" + y2="245.0005"> + <stop + offset="0" + style="stop-color:#494949" + id="stop3476" /> + + + + + <stop + offset="1" + style="stop-color:#000000" + id="stop3477" /> + + + + + </linearGradient> + + + + + <linearGradient + id="XMLID_2_" + gradientUnits="userSpaceOnUse" + x1="29.0532" + y1="29.0532" + x2="226.9471" + y2="226.9471"> + <stop + offset="0" + style="stop-color:#FFFFFF" + id="stop3484" /> + + + + + <stop + offset="1" + style="stop-color:#DADADA" + id="stop3485" /> + + + + + </linearGradient> + + + + + </defs> + + + + <sodipodi:namedview + id="base"> + <sodipodi:guide + orientation="horizontal" + position="287.129913" + id="guide2108" /> + + <sodipodi:guide + orientation="vertical" + position="29.7764359" + id="guide2109" /> + + <sodipodi:guide + orientation="vertical" + position="676.350464" + id="guide2110" /> + + <sodipodi:guide + orientation="horizontal" + position="550.864075" + id="guide2111" /> + + <sodipodi:guide + orientation="horizontal" + position="31.9033241" + id="guide2112" /> + +</sodipodi:namedview> + + + + <path + style="font-size:12;fill:none;" + d="M 222.4303 159.0556 L 118.0510 159.0556 L 118.0510 34.51719 L 222.4303 34.51719 L 222.4303 159.0556 z " + id="path3490" /> + + + + <g + id="g3491" + style="font-size:12;stroke:#000000;" + transform="matrix(0.583057,0,0,0.695663,106.1162,4.982203)"> + <path + style="opacity:0.2;stroke:none;" + d="M72.626,58.727c-3.336,0-6.049,2.713-6.049,6.048v132.323c0,3.335,2.713,6.048,6.049,6.048h115.445 c3.335,0,6.049-2.713,6.049-6.048V64.774c0-3.335-2.714-6.048-6.049-6.048H72.626z" + id="path3492" /> + + + + + <path + style="opacity:0.2;stroke:none;" + d="M71.451,56.378c-3.335,0-6.048,2.713-6.048,6.049v132.322c0,3.335,2.713,6.048,6.048,6.048h115.445 c3.335,0,6.049-2.713,6.049-6.048V62.427c0-3.336-2.714-6.049-6.049-6.049H71.451z" + id="path3493" /> + + + + + <path + style="opacity:0.2;stroke:none;" + d="M69.103,55.203c-3.335,0-6.049,2.713-6.049,6.048v132.323c0,3.335,2.714,6.048,6.049,6.048h115.445 c3.335,0,6.049-2.713,6.049-6.048V61.251c0-3.335-2.714-6.048-6.049-6.048H69.103z" + id="path3494" /> + + + + + <linearGradient + id="XMLID_3_" + gradientUnits="userSpaceOnUse" + x1="61.8799" + y1="125.064" + x2="189.4219" + y2="125.064"> + <stop + offset="0" + style="stop-color:#616161" + id="stop3496" /> + + + + + <stop + offset="1" + style="stop-color:#464646" + id="stop3497" /> + + + + + </linearGradient> + + + + + <path + style="fill:url(#XMLID_3_);stroke:none;" + d="M67.928,52.854c-3.335,0-6.048,2.713-6.048,6.049v132.322c0,3.335,2.713,6.048,6.048,6.048h115.444 c3.336,0,6.05-2.713,6.05-6.048V58.903c0-3.336-2.714-6.049-6.05-6.049H67.928z" + id="path3501" /> + + + + + <path + style="fill:#FFFFFF;stroke:none;" + d="M184.725,191.226c0,0.747-0.606,1.351-1.353,1.351H67.928c-0.745,0-1.351-0.604-1.351-1.351V58.903 c0-0.746,0.605-1.352,1.351-1.352h115.444c0.746,0,1.353,0.605,1.353,1.352V191.226z" + id="path3502" /> + + + + + <linearGradient + id="XMLID_4_" + gradientUnits="userSpaceOnUse" + x1="233.4971" + y1="232.6162" + x2="51.0675" + y2="50.1867"> + <stop + offset="0" + style="stop-color:#CECEDB" + id="stop3504" /> + + + + + <stop + offset="0.691" + style="stop-color:#E9E9EF" + id="stop3505" /> + + + + + <stop + offset="1" + style="stop-color:#FFFFFF" + id="stop3506" /> + + + + + </linearGradient> + + + + + <path + style="fill:url(#XMLID_4_);stroke:none;" + d="M69.954,60.635c0,4.134,0,123.846,0,127.978c4.104,0,106.998,0,111.101,0c0-4.132,0-123.844,0-127.978 C176.952,60.635,74.058,60.635,69.954,60.635z" + id="path3512" /> + + + + + <linearGradient + id="XMLID_5_" + gradientUnits="userSpaceOnUse" + x1="-654.9922" + y1="23.1128" + x2="-520.0903" + y2="23.1128" + gradientTransform="matrix(0 1 -1 0 148.7637 686.498)"> + <stop + offset="0" + style="stop-color:#BDBDCF" + id="stop3514" /> + + + + + <stop + offset="0.1923" + style="stop-color:#CCCCDA" + id="stop3515" /> + + + + + <stop + offset="0.7201" + style="stop-color:#F1F1F5" + id="stop3516" /> + + + + + <stop + offset="1" + style="stop-color:#FFFFFF" + id="stop3517" /> + + + + + </linearGradient> + + + + + <path + style="fill:url(#XMLID_5_);stroke:none;" + d="M176.563,67.165c-3.289,0-98.536,0-101.823,0c0,3.266,0,85.131,0,88.396c3.287,0,98.534,0,101.823,0 C176.563,152.296,176.563,70.431,176.563,67.165z" + id="path3521" /> + + + + + <path + style="stroke:none;" + d="M78.46,70.886c0,6.529,0,74.425,0,80.955c6.646,0,87.734,0,94.381,0c0-6.53,0-74.426,0-80.955 C166.194,70.886,85.106,70.886,78.46,70.886z" + id="path3522" /> + + + + + <radialGradient + id="XMLID_6_" + cx="109.7783" + cy="116.7822" + r="66.1491" + fx="109.7783" + fy="116.7822" + gradientUnits="userSpaceOnUse"> + <stop + offset="0" + style="stop-color:#B1E1FF" + id="stop3524" /> + + + + + <stop + offset="0.1441" + style="stop-color:#AEDFFF" + id="stop3525" /> + + + + + <stop + offset="0.2661" + style="stop-color:#A3D9FF" + id="stop3526" /> + + + + + <stop + offset="0.38" + style="stop-color:#92CFFF" + id="stop3527" /> + + + + + <stop + offset="0.489" + style="stop-color:#79C1FF" + id="stop3528" /> + + + + + <stop + offset="0.5937" + style="stop-color:#5AAEFF" + id="stop3529" /> + + + + + <stop + offset="0.6011" + style="stop-color:#57ADFF" + id="stop3530" /> + + + + + <stop + offset="1" + style="stop-color:#0035ED" + id="stop3531" /> + + + + + </radialGradient> + + + + + <path + style="fill:url(#XMLID_6_);stroke:none;" + d="M80.94,73.367c0,4.515,0,71.477,0,75.993c4.577,0,84.844,0,89.42,0c0-4.517,0-71.479,0-75.993 C165.784,73.367,85.518,73.367,80.94,73.367z" + id="path3537" /> + + + + + <linearGradient + id="XMLID_7_" + gradientUnits="userSpaceOnUse" + x1="100.4385" + y1="122.5811" + x2="118.1257" + y2="104.8938"> + <stop + offset="0" + style="stop-color:#FFFFFF" + id="stop3539" /> + + + + + <stop + offset="1" + style="stop-color:#E9E9EF" + id="stop3540" /> + + + + + </linearGradient> + + + + + <path + style="fill:url(#XMLID_7_);stroke:none;" + d="M96.774,113.736c0,6.907,5.6,12.508,12.507,12.508s12.506-5.601,12.506-12.508 s-5.599-12.507-12.506-12.507S96.774,106.829,96.774,113.736z" + id="path3544" /> + + + + + <path + style="stroke:none;" + d="M78.46,137.866c0,1.127,0,12.845,0,13.975c6.646,0,87.734,0,94.381,0c0-1.13,0-12.848,0-13.975 C166.194,137.866,85.106,137.866,78.46,137.866z" + id="path3545" /> + + + + + <path + style="stroke:none;" + d="M100.665,117.415h-8.486v25.92h8.486V117.415z" + id="path3546" /> + + + + + <path + style="stroke:none;" + d="M108.007,127.737h-8.488v15.828h8.488V127.737z" + id="path3547" /> + + + + + <path + style="stroke:none;" + d="M118.099,144.023h-11.01v-10.78h11.01V144.023z" + id="path3548" /> + + + + + <path + style="stroke:none;" + d="M123.374,119.938h-6.65v19.499h6.65V119.938z" + id="path3549" /> + + + + + <path + style="stroke:none;" + d="M139.892,144.023h-17.205v-15.599h17.205V144.023z" + id="path3550" /> + + + + + <path + style="stroke:none;" + d="M145.396,108.927h-7.34v32.116h7.34V108.927z" + id="path3551" /> + + + + + <path + style="stroke:none;" + d="M80.708,144.023h11.699v-19.817H80.708V144.023z" + id="path3552" /> + + + + + <path + style="stroke:none;" + d="M154.571,143.104h-11.01v-23.396h11.01V143.104z" + id="path3553" /> + + + + + <path + style="stroke:none;" + d="M170.683,145.87h-12.664v-17.662h12.664V145.87z" + id="path3554" /> + + + + + <path + style="stroke:none;" + d="M169.024,142.416h-7.57v-25.003h7.57V142.416z" + id="path3555" /> + + + + + <path + style="stroke:none;" + d="M130.486,138.059h-7.569v-25.005h7.569V138.059z" + id="path3556" /> + + + + + <path + style="stroke:none;" + d="M80.938,144.482h88.086v-7.8H80.938V144.482z" + id="path3557" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M94.063,121.743h2.016v-2.016h-2.016V121.743z" + id="path3558" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M94.063,126.23h2.016v-2.016h-2.016V126.23z" + id="path3559" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M94.063,135.205h2.016v-2.016h-2.016V135.205z" + id="path3560" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M125.874,122.173h2.015v-2.016h-2.015V122.173z" + id="path3561" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M125.874,131.147h2.015v-2.016h-2.015V131.147z" + id="path3562" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M119.207,124.662h2.016v-2.015h-2.016V124.662z" + id="path3563" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M119.207,129.149h2.016v-2.016h-2.016V129.149z" + id="path3564" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M119.207,133.638h2.016v-2.016h-2.016V133.638z" + id="path3565" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M102.489,132.554h2.015v-2.018h-2.015V132.554z" + id="path3566" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M102.489,137.038h2.015v-2.015h-2.015V137.038z" + id="path3567" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M82.507,128.463h2.015v-2.016h-2.015V128.463z" + id="path3568" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M82.507,132.95h2.015v-2.017h-2.015V132.95z" + id="path3569" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M149.356,128.747h2.015v-2.016h-2.015V128.747z" + id="path3570" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M140.674,114.493h2.015v-2.017h-2.015V114.493z" + id="path3571" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M140.674,118.979h2.015v-2.016h-2.015V118.979z" + id="path3572" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M140.674,123.468h2.015v-2.016h-2.015V123.468z" + id="path3573" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M140.674,127.954h2.015v-2.016h-2.015V127.954z" + id="path3574" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M164.085,122.089h2.016v-2.016h-2.016V122.089z" + id="path3575" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M164.085,131.065h2.016v-2.016h-2.016V131.065z" + id="path3576" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M129.602,134.712v2.016h2.016v-2.016H129.602z" + id="path3577" /> + + + + + </g> + + + + <path + style="font-size:12;fill:none;" + d="M 226.0942 146.8087 L 135.6992 209.0778 L 83.50963 101.2246 L 173.9046 38.95533 L 226.0942 146.8087 z " + id="path1323" /> + + + + <g + id="g1324" + style="font-size:12;stroke:#000000;" + transform="matrix(0.504941,-0.347832,0.291527,0.602462,63.36050,88.66474)"> + <path + style="opacity:0.2;stroke:none;" + d="M72.626,58.727c-3.336,0-6.049,2.713-6.049,6.048v132.323c0,3.335,2.713,6.048,6.049,6.048h115.445 c3.335,0,6.049-2.713,6.049-6.048V64.774c0-3.335-2.714-6.048-6.049-6.048H72.626z" + id="path1325" /> + + + + + <path + style="opacity:0.2;stroke:none;" + d="M71.451,56.378c-3.335,0-6.048,2.713-6.048,6.049v132.322c0,3.335,2.713,6.048,6.048,6.048h115.445 c3.335,0,6.049-2.713,6.049-6.048V62.427c0-3.336-2.714-6.049-6.049-6.049H71.451z" + id="path1326" /> + + + + + <path + style="opacity:0.2;stroke:none;" + d="M69.103,55.203c-3.335,0-6.049,2.713-6.049,6.048v132.323c0,3.335,2.714,6.048,6.049,6.048h115.445 c3.335,0,6.049-2.713,6.049-6.048V61.251c0-3.335-2.714-6.048-6.049-6.048H69.103z" + id="path1327" /> + + + + + <linearGradient + id="linearGradient1328" + gradientUnits="userSpaceOnUse" + x1="61.8799" + y1="125.064" + x2="189.4219" + y2="125.064"> + <stop + offset="0" + style="stop-color:#616161" + id="stop1329" /> + + + + + <stop + offset="1" + style="stop-color:#464646" + id="stop1330" /> + + + + + </linearGradient> + + + + + <path + style="fill:url(#XMLID_3_);stroke:none;" + d="M67.928,52.854c-3.335,0-6.048,2.713-6.048,6.049v132.322c0,3.335,2.713,6.048,6.048,6.048h115.444 c3.336,0,6.05-2.713,6.05-6.048V58.903c0-3.336-2.714-6.049-6.05-6.049H67.928z" + id="path1331" /> + + + + + <path + style="fill:#FFFFFF;stroke:none;" + d="M184.725,191.226c0,0.747-0.606,1.351-1.353,1.351H67.928c-0.745,0-1.351-0.604-1.351-1.351V58.903 c0-0.746,0.605-1.352,1.351-1.352h115.444c0.746,0,1.353,0.605,1.353,1.352V191.226z" + id="path1332" /> + + + + + <linearGradient + id="linearGradient1333" + gradientUnits="userSpaceOnUse" + x1="233.4971" + y1="232.6162" + x2="51.0675" + y2="50.1867"> + <stop + offset="0" + style="stop-color:#CECEDB" + id="stop1334" /> + + + + + <stop + offset="0.691" + style="stop-color:#E9E9EF" + id="stop1335" /> + + + + + <stop + offset="1" + style="stop-color:#FFFFFF" + id="stop1336" /> + + + + + </linearGradient> + + + + + <path + style="fill:url(#XMLID_4_);stroke:none;" + d="M69.954,60.635c0,4.134,0,123.846,0,127.978c4.104,0,106.998,0,111.101,0c0-4.132,0-123.844,0-127.978 C176.952,60.635,74.058,60.635,69.954,60.635z" + id="path1337" /> + + + + + <linearGradient + id="linearGradient1338" + gradientUnits="userSpaceOnUse" + x1="-654.9922" + y1="23.1128" + x2="-520.0903" + y2="23.1128" + gradientTransform="matrix(0 1 -1 0 148.7637 686.498)"> + <stop + offset="0" + style="stop-color:#BDBDCF" + id="stop1339" /> + + + + + <stop + offset="0.1923" + style="stop-color:#CCCCDA" + id="stop1340" /> + + + + + <stop + offset="0.7201" + style="stop-color:#F1F1F5" + id="stop1341" /> + + + + + <stop + offset="1" + style="stop-color:#FFFFFF" + id="stop1342" /> + + + + + </linearGradient> + + + + + <path + style="fill:url(#XMLID_5_);stroke:none;" + d="M176.563,67.165c-3.289,0-98.536,0-101.823,0c0,3.266,0,85.131,0,88.396c3.287,0,98.534,0,101.823,0 C176.563,152.296,176.563,70.431,176.563,67.165z" + id="path1343" /> + + + + + <path + style="stroke:none;" + d="M78.46,70.886c0,6.529,0,74.425,0,80.955c6.646,0,87.734,0,94.381,0c0-6.53,0-74.426,0-80.955 C166.194,70.886,85.106,70.886,78.46,70.886z" + id="path1344" /> + + + + + <radialGradient + id="radialGradient1345" + cx="109.7783" + cy="116.7822" + r="66.1491" + fx="109.7783" + fy="116.7822" + gradientUnits="userSpaceOnUse"> + <stop + offset="0" + style="stop-color:#B1E1FF" + id="stop1346" /> + + + + + <stop + offset="0.1441" + style="stop-color:#AEDFFF" + id="stop1347" /> + + + + + <stop + offset="0.2661" + style="stop-color:#A3D9FF" + id="stop1348" /> + + + + + <stop + offset="0.38" + style="stop-color:#92CFFF" + id="stop1349" /> + + + + + <stop + offset="0.489" + style="stop-color:#79C1FF" + id="stop1350" /> + + + + + <stop + offset="0.5937" + style="stop-color:#5AAEFF" + id="stop1351" /> + + + + + <stop + offset="0.6011" + style="stop-color:#57ADFF" + id="stop1352" /> + + + + + <stop + offset="1" + style="stop-color:#0035ED" + id="stop1353" /> + + + + + </radialGradient> + + + + + <path + style="fill:url(#XMLID_6_);stroke:none;" + d="M80.94,73.367c0,4.515,0,71.477,0,75.993c4.577,0,84.844,0,89.42,0c0-4.517,0-71.479,0-75.993 C165.784,73.367,85.518,73.367,80.94,73.367z" + id="path1354" /> + + + + + <linearGradient + id="linearGradient1355" + gradientUnits="userSpaceOnUse" + x1="100.4385" + y1="122.5811" + x2="118.1257" + y2="104.8938"> + <stop + offset="0" + style="stop-color:#FFFFFF" + id="stop1356" /> + + + + + <stop + offset="1" + style="stop-color:#E9E9EF" + id="stop1357" /> + + + + + </linearGradient> + + + + + <path + style="fill:url(#XMLID_7_);stroke:none;" + d="M96.774,113.736c0,6.907,5.6,12.508,12.507,12.508s12.506-5.601,12.506-12.508 s-5.599-12.507-12.506-12.507S96.774,106.829,96.774,113.736z" + id="path1358" /> + + + + + <path + style="stroke:none;" + d="M78.46,137.866c0,1.127,0,12.845,0,13.975c6.646,0,87.734,0,94.381,0c0-1.13,0-12.848,0-13.975 C166.194,137.866,85.106,137.866,78.46,137.866z" + id="path1359" /> + + + + + <path + style="stroke:none;" + d="M100.665,117.415h-8.486v25.92h8.486V117.415z" + id="path1360" /> + + + + + <path + style="stroke:none;" + d="M108.007,127.737h-8.488v15.828h8.488V127.737z" + id="path1361" /> + + + + + <path + style="stroke:none;" + d="M118.099,144.023h-11.01v-10.78h11.01V144.023z" + id="path1362" /> + + + + + <path + style="stroke:none;" + d="M123.374,119.938h-6.65v19.499h6.65V119.938z" + id="path1363" /> + + + + + <path + style="stroke:none;" + d="M139.892,144.023h-17.205v-15.599h17.205V144.023z" + id="path1364" /> + + + + + <path + style="stroke:none;" + d="M145.396,108.927h-7.34v32.116h7.34V108.927z" + id="path1365" /> + + + + + <path + style="stroke:none;" + d="M80.708,144.023h11.699v-19.817H80.708V144.023z" + id="path1366" /> + + + + + <path + style="stroke:none;" + d="M154.571,143.104h-11.01v-23.396h11.01V143.104z" + id="path1367" /> + + + + + <path + style="stroke:none;" + d="M170.683,145.87h-12.664v-17.662h12.664V145.87z" + id="path1368" /> + + + + + <path + style="stroke:none;" + d="M169.024,142.416h-7.57v-25.003h7.57V142.416z" + id="path1369" /> + + + + + <path + style="stroke:none;" + d="M130.486,138.059h-7.569v-25.005h7.569V138.059z" + id="path1370" /> + + + + + <path + style="stroke:none;" + d="M80.938,144.482h88.086v-7.8H80.938V144.482z" + id="path1371" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M94.063,121.743h2.016v-2.016h-2.016V121.743z" + id="path1372" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M94.063,126.23h2.016v-2.016h-2.016V126.23z" + id="path1373" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M94.063,135.205h2.016v-2.016h-2.016V135.205z" + id="path1374" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M125.874,122.173h2.015v-2.016h-2.015V122.173z" + id="path1375" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M125.874,131.147h2.015v-2.016h-2.015V131.147z" + id="path1376" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M119.207,124.662h2.016v-2.015h-2.016V124.662z" + id="path1377" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M119.207,129.149h2.016v-2.016h-2.016V129.149z" + id="path1378" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M119.207,133.638h2.016v-2.016h-2.016V133.638z" + id="path1379" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M102.489,132.554h2.015v-2.018h-2.015V132.554z" + id="path1380" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M102.489,137.038h2.015v-2.015h-2.015V137.038z" + id="path1381" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M82.507,128.463h2.015v-2.016h-2.015V128.463z" + id="path1382" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M82.507,132.95h2.015v-2.017h-2.015V132.95z" + id="path1383" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M149.356,128.747h2.015v-2.016h-2.015V128.747z" + id="path1384" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M140.674,114.493h2.015v-2.017h-2.015V114.493z" + id="path1385" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M140.674,118.979h2.015v-2.016h-2.015V118.979z" + id="path1386" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M140.674,123.468h2.015v-2.016h-2.015V123.468z" + id="path1387" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M140.674,127.954h2.015v-2.016h-2.015V127.954z" + id="path1388" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M164.085,122.089h2.016v-2.016h-2.016V122.089z" + id="path1389" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M164.085,131.065h2.016v-2.016h-2.016V131.065z" + id="path1390" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M129.602,134.712v2.016h2.016v-2.016H129.602z" + id="path1391" /> + + + + + </g> + + + + <path + style="font-size:12;fill:none;" + d="M 223.0736 130.8574 L 170.8839 238.7107 L 80.48895 176.4417 L 132.6785 68.58834 L 223.0736 130.8574 z " + id="path1392" /> + + + + <g + id="g1393" + style="font-size:12;stroke:#000000;" + transform="matrix(0.291527,-0.602462,0.504941,0.347832,60.33992,183.4832)"> + <path + style="opacity:0.2;stroke:none;" + d="M72.626,58.727c-3.336,0-6.049,2.713-6.049,6.048v132.323c0,3.335,2.713,6.048,6.049,6.048h115.445 c3.335,0,6.049-2.713,6.049-6.048V64.774c0-3.335-2.714-6.048-6.049-6.048H72.626z" + id="path1394" /> + + + + + <path + style="opacity:0.2;stroke:none;" + d="M71.451,56.378c-3.335,0-6.048,2.713-6.048,6.049v132.322c0,3.335,2.713,6.048,6.048,6.048h115.445 c3.335,0,6.049-2.713,6.049-6.048V62.427c0-3.336-2.714-6.049-6.049-6.049H71.451z" + id="path1395" /> + + + + + <path + style="opacity:0.2;stroke:none;" + d="M69.103,55.203c-3.335,0-6.049,2.713-6.049,6.048v132.323c0,3.335,2.714,6.048,6.049,6.048h115.445 c3.335,0,6.049-2.713,6.049-6.048V61.251c0-3.335-2.714-6.048-6.049-6.048H69.103z" + id="path1396" /> + + + + + <linearGradient + id="linearGradient1397" + gradientUnits="userSpaceOnUse" + x1="61.8799" + y1="125.064" + x2="189.4219" + y2="125.064"> + <stop + offset="0" + style="stop-color:#616161" + id="stop1398" /> + + + + + <stop + offset="1" + style="stop-color:#464646" + id="stop1399" /> + + + + + </linearGradient> + + + + + <path + style="fill:url(#XMLID_3_);stroke:none;" + d="M67.928,52.854c-3.335,0-6.048,2.713-6.048,6.049v132.322c0,3.335,2.713,6.048,6.048,6.048h115.444 c3.336,0,6.05-2.713,6.05-6.048V58.903c0-3.336-2.714-6.049-6.05-6.049H67.928z" + id="path1400" /> + + + + + <path + style="fill:#FFFFFF;stroke:none;" + d="M184.725,191.226c0,0.747-0.606,1.351-1.353,1.351H67.928c-0.745,0-1.351-0.604-1.351-1.351V58.903 c0-0.746,0.605-1.352,1.351-1.352h115.444c0.746,0,1.353,0.605,1.353,1.352V191.226z" + id="path1401" /> + + + + + <linearGradient + id="linearGradient1402" + gradientUnits="userSpaceOnUse" + x1="233.4971" + y1="232.6162" + x2="51.0675" + y2="50.1867"> + <stop + offset="0" + style="stop-color:#CECEDB" + id="stop1403" /> + + + + + <stop + offset="0.691" + style="stop-color:#E9E9EF" + id="stop1404" /> + + + + + <stop + offset="1" + style="stop-color:#FFFFFF" + id="stop1405" /> + + + + + </linearGradient> + + + + + <path + style="fill:url(#XMLID_4_);stroke:none;" + d="M69.954,60.635c0,4.134,0,123.846,0,127.978c4.104,0,106.998,0,111.101,0c0-4.132,0-123.844,0-127.978 C176.952,60.635,74.058,60.635,69.954,60.635z" + id="path1406" /> + + + + + <linearGradient + id="linearGradient1407" + gradientUnits="userSpaceOnUse" + x1="-654.9922" + y1="23.1128" + x2="-520.0903" + y2="23.1128" + gradientTransform="matrix(0 1 -1 0 148.7637 686.498)"> + <stop + offset="0" + style="stop-color:#BDBDCF" + id="stop1408" /> + + + + + <stop + offset="0.1923" + style="stop-color:#CCCCDA" + id="stop1409" /> + + + + + <stop + offset="0.7201" + style="stop-color:#F1F1F5" + id="stop1410" /> + + + + + <stop + offset="1" + style="stop-color:#FFFFFF" + id="stop1411" /> + + + + + </linearGradient> + + + + + <path + style="fill:url(#XMLID_5_);stroke:none;" + d="M176.563,67.165c-3.289,0-98.536,0-101.823,0c0,3.266,0,85.131,0,88.396c3.287,0,98.534,0,101.823,0 C176.563,152.296,176.563,70.431,176.563,67.165z" + id="path1412" /> + + + + + <path + style="stroke:none;" + d="M78.46,70.886c0,6.529,0,74.425,0,80.955c6.646,0,87.734,0,94.381,0c0-6.53,0-74.426,0-80.955 C166.194,70.886,85.106,70.886,78.46,70.886z" + id="path1413" /> + + + + + <radialGradient + id="radialGradient1414" + cx="109.7783" + cy="116.7822" + r="66.1491" + fx="109.7783" + fy="116.7822" + gradientUnits="userSpaceOnUse"> + <stop + offset="0" + style="stop-color:#B1E1FF" + id="stop1415" /> + + + + + <stop + offset="0.1441" + style="stop-color:#AEDFFF" + id="stop1416" /> + + + + + <stop + offset="0.2661" + style="stop-color:#A3D9FF" + id="stop1417" /> + + + + + <stop + offset="0.38" + style="stop-color:#92CFFF" + id="stop1418" /> + + + + + <stop + offset="0.489" + style="stop-color:#79C1FF" + id="stop1419" /> + + + + + <stop + offset="0.5937" + style="stop-color:#5AAEFF" + id="stop1420" /> + + + + + <stop + offset="0.6011" + style="stop-color:#57ADFF" + id="stop1421" /> + + + + + <stop + offset="1" + style="stop-color:#0035ED" + id="stop1422" /> + + + + + </radialGradient> + + + + + <path + style="fill:url(#XMLID_6_);stroke:none;" + d="M80.94,73.367c0,4.515,0,71.477,0,75.993c4.577,0,84.844,0,89.42,0c0-4.517,0-71.479,0-75.993 C165.784,73.367,85.518,73.367,80.94,73.367z" + id="path1423" /> + + + + + <linearGradient + id="linearGradient1424" + gradientUnits="userSpaceOnUse" + x1="100.4385" + y1="122.5811" + x2="118.1257" + y2="104.8938"> + <stop + offset="0" + style="stop-color:#FFFFFF" + id="stop1425" /> + + + + + <stop + offset="1" + style="stop-color:#E9E9EF" + id="stop1426" /> + + + + + </linearGradient> + + + + + <path + style="fill:url(#XMLID_7_);stroke:none;" + d="M96.774,113.736c0,6.907,5.6,12.508,12.507,12.508s12.506-5.601,12.506-12.508 s-5.599-12.507-12.506-12.507S96.774,106.829,96.774,113.736z" + id="path1427" /> + + + + + <path + style="stroke:none;" + d="M78.46,137.866c0,1.127,0,12.845,0,13.975c6.646,0,87.734,0,94.381,0c0-1.13,0-12.848,0-13.975 C166.194,137.866,85.106,137.866,78.46,137.866z" + id="path1428" /> + + + + + <path + style="stroke:none;" + d="M100.665,117.415h-8.486v25.92h8.486V117.415z" + id="path1429" /> + + + + + <path + style="stroke:none;" + d="M108.007,127.737h-8.488v15.828h8.488V127.737z" + id="path1430" /> + + + + + <path + style="stroke:none;" + d="M118.099,144.023h-11.01v-10.78h11.01V144.023z" + id="path1431" /> + + + + + <path + style="stroke:none;" + d="M123.374,119.938h-6.65v19.499h6.65V119.938z" + id="path1432" /> + + + + + <path + style="stroke:none;" + d="M139.892,144.023h-17.205v-15.599h17.205V144.023z" + id="path1433" /> + + + + + <path + style="stroke:none;" + d="M145.396,108.927h-7.34v32.116h7.34V108.927z" + id="path1434" /> + + + + + <path + style="stroke:none;" + d="M80.708,144.023h11.699v-19.817H80.708V144.023z" + id="path1435" /> + + + + + <path + style="stroke:none;" + d="M154.571,143.104h-11.01v-23.396h11.01V143.104z" + id="path1436" /> + + + + + <path + style="stroke:none;" + d="M170.683,145.87h-12.664v-17.662h12.664V145.87z" + id="path1437" /> + + + + + <path + style="stroke:none;" + d="M169.024,142.416h-7.57v-25.003h7.57V142.416z" + id="path1438" /> + + + + + <path + style="stroke:none;" + d="M130.486,138.059h-7.569v-25.005h7.569V138.059z" + id="path1439" /> + + + + + <path + style="stroke:none;" + d="M80.938,144.482h88.086v-7.8H80.938V144.482z" + id="path1440" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M94.063,121.743h2.016v-2.016h-2.016V121.743z" + id="path1441" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M94.063,126.23h2.016v-2.016h-2.016V126.23z" + id="path1442" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M94.063,135.205h2.016v-2.016h-2.016V135.205z" + id="path1443" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M125.874,122.173h2.015v-2.016h-2.015V122.173z" + id="path1444" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M125.874,131.147h2.015v-2.016h-2.015V131.147z" + id="path1445" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M119.207,124.662h2.016v-2.015h-2.016V124.662z" + id="path1446" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M119.207,129.149h2.016v-2.016h-2.016V129.149z" + id="path1447" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M119.207,133.638h2.016v-2.016h-2.016V133.638z" + id="path1448" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M102.489,132.554h2.015v-2.018h-2.015V132.554z" + id="path1449" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M102.489,137.038h2.015v-2.015h-2.015V137.038z" + id="path1450" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M82.507,128.463h2.015v-2.016h-2.015V128.463z" + id="path1451" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M82.507,132.95h2.015v-2.017h-2.015V132.95z" + id="path1452" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M149.356,128.747h2.015v-2.016h-2.015V128.747z" + id="path1453" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M140.674,114.493h2.015v-2.017h-2.015V114.493z" + id="path1454" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M140.674,118.979h2.015v-2.016h-2.015V118.979z" + id="path1455" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M140.674,123.468h2.015v-2.016h-2.015V123.468z" + id="path1456" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M140.674,127.954h2.015v-2.016h-2.015V127.954z" + id="path1457" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M164.085,122.089h2.016v-2.016h-2.016V122.089z" + id="path1458" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M164.085,131.065h2.016v-2.016h-2.016V131.065z" + id="path1459" /> + + + + + <path + style="fill:#FFF030;stroke:none;" + d="M129.602,134.712v2.016h2.016v-2.016H129.602z" + id="path1460" /> + + + + + </g> + + + +<g + id="g2009" + transform="matrix(2.357251,0,0,2.832578,34.95087,61.80306)"> + <defs + id="defs232" /> + + + <sodipodi:namedview + id="namedview2013" /> + + + <g + id="Layer_1" + stroke="#000000"> + <path + id="path170" + fill="none" + stroke="none" + d="M3.621,36.109l11.775-25.814c0.321-0.971,3.194-2.688,4.462-2.461l22.103,1.858 c-0.26-0.156-0.566-0.274-0.91-0.335L19.46,7.218c-1.269-0.226-4.141,1.491-4.462,2.461L3.224,35.494 c-0.183,0.553-0.011,1.106,0.406,1.521C3.528,36.729,3.519,36.42,3.621,36.109z" /> + + + <g + id="Layer_2"> + <path + id="path241" + fill="none" + stroke="none" + d="M48,48H0V0h48V48z" /> + + + </g> + + + <g + id="g171" /> + + + <linearGradient + id="path205_1_" + gradientUnits="userSpaceOnUse" + x1="-235.5874" + y1="318.7158" + x2="-234.9869" + y2="318.1155" + gradientTransform="matrix(0.3069 0 0 -0.3101 81.6819 119.6117)"> + <stop + offset="0" + style="stop-color:#FFFFFF" + id="stop160" /> + + + <stop + offset="0.3726" + style="stop-color:#FDFDFD" + id="stop161" /> + + + <stop + offset="0.5069" + style="stop-color:#F6F6F6" + id="stop162" /> + + + <stop + offset="0.6026" + style="stop-color:#EBEBEB" + id="stop163" /> + + + <stop + offset="0.68" + style="stop-color:#DADADA" + id="stop164" /> + + + <stop + offset="0.7463" + style="stop-color:#C4C4C4" + id="stop165" /> + + + <stop + offset="0.805" + style="stop-color:#A8A8A8" + id="stop166" /> + + + <stop + offset="0.8581" + style="stop-color:#888888" + id="stop167" /> + + + <stop + offset="0.9069" + style="stop-color:#626262" + id="stop168" /> + + + <stop + offset="0.9523" + style="stop-color:#373737" + id="stop169" /> + + + <stop + offset="0.9926" + style="stop-color:#090909" + id="stop170" /> + + + <stop + offset="1" + style="stop-color:#000000" + id="stop171" /> + + + + + + + + + + + + + + + + + + + + + + + + + + </linearGradient> + + + <path + id="path205" + fill="url(#path205_1_)" + stroke="none" + d="M10.011,20.379c-0.109-0.062-0.233-0.1-0.367-0.1 c-0.421,0-0.763,0.346-0.763,0.771c0,0.115,0.027,0.223,0.072,0.321C9.106,20.878,9.509,20.498,10.011,20.379z" /> + + + <path + id="path206" + opacity="0.36" + fill="#999999" + stroke="#999999" + stroke-width="1.5343" + stroke-miterlimit="1.2275" + d=" M6.653,25.182c0,11.198,8.983,20.275,20.064,20.275c11.082,0,20.064-9.076,20.064-20.275c0-11.198-8.982-20.275-20.064-20.275 C15.636,4.906,6.653,13.984,6.653,25.182z" /> + + + <path + fill="#990000" + stroke="none" + d="M2.046,22.701c0,11.731,9.449,21.275,21.064,21.275c11.615,0,21.065-9.544,21.065-21.275 S34.726,1.425,23.11,1.425C11.496,1.426,2.046,10.97,2.046,22.701z" + id="path197" /> + + + <linearGradient + id="path213_1_" + gradientUnits="userSpaceOnUse" + x1="-232.3296" + y1="353.9814" + x2="-137.7065" + y2="259.358" + gradientTransform="matrix(0.3069 0 0 -0.3101 81.6819 119.6117)"> + <stop + offset="0" + style="stop-color:#FB7462" + id="stop199" /> + + + <stop + offset="1" + style="stop-color:#FC2829" + id="stop200" /> + + + + + + </linearGradient> + + + <path + id="path213" + fill="url(#path213_1_)" + stroke="none" + d="M3.046,22.701c0,11.198,8.983,20.275,20.064,20.275 c11.082,0,20.065-9.077,20.065-20.275S34.192,2.425,23.11,2.425C12.03,2.426,3.046,11.503,3.046,22.701z" /> + + + <radialGradient + id="path239_1_" + cx="-141.856" + cy="240.4365" + r="94.1356" + fx="-141.856" + fy="240.4365" + gradientTransform="matrix(0.3069 0 0 -0.3101 81.6819 119.6117)" + gradientUnits="userSpaceOnUse"> + <stop + offset="0" + style="stop-color:#000000" + id="stop206" /> + + + <stop + offset="1" + style="stop-color:#FF3333" + id="stop207" /> + + + + + + </radialGradient> + + + <path + id="path239" + opacity="0.4" + fill="url(#path239_1_)" + stroke="none" + d="M41.881,18.448c-2.748-1.396-5.852-2.184-9.139-2.184 c-3.571,0-6.928,0.929-9.846,2.561h15.301v0.446h0.387v8.345H14.529c-1.383,2.778-2.163,5.917-2.163,9.239 c0,1.053,0.079,2.086,0.229,3.097c2.839,1.556,6.093,2.439,9.549,2.439c11.082,0,20.065-9.078,20.065-20.276 C42.21,20.864,42.097,19.638,41.881,18.448z" /> + + + <g + id="g214"> + <path + id="path215" + fill="#B11C1D" + stroke="none" + d="M39.549,28.201H6.989v-8.344h32.56V28.201z" /> + + + <g + id="g216"> + <path + id="path217" + fill="#FB9A86" + stroke="none" + d="M39.162,27.812H6.672v-8.4h32.49V27.812z" /> + + + <path + id="path218" + fill="#FFFFFF" + stroke="none" + d="M39.162,27.812H7.059v-7.913h32.103V27.812z" /> + + + <linearGradient + id="path225_1_" + gradientUnits="userSpaceOnUse" + x1="-190.8691" + y1="300.7178" + x2="-190.8691" + y2="330.2731" + gradientTransform="matrix(0.3069 0 0 -0.3101 81.6819 119.6117)"> + <stop + offset="0" + style="stop-color:#FFFFFF" + id="stop218" /> + + + <stop + offset="1" + style="stop-color:#CCCCCC" + id="stop219" /> + + + + + + </linearGradient> + + + <path + id="path225" + fill="url(#path225_1_)" + stroke="none" + d="M7.385,22.834c0-1.293,1.038-2.342,2.318-2.342H38.28 c0.313,0,0.61,0.063,0.882,0.177v-0.771H7.059v7.913h0.326V22.834z" /> + + + </g> + + + </g> + + + <linearGradient + id="path232_1_" + gradientUnits="userSpaceOnUse" + x1="14.1377" + y1="12.6128" + x2="4.2627" + y2="2.7378"> + <stop + offset="0" + style="stop-color:#FB7462" + id="stop225" /> + + + <stop + offset="1" + style="stop-color:#FFFFFF" + id="stop226" /> + + + + + + </linearGradient> + + + <path + id="path232" + fill="url(#path232_1_)" + stroke="none" + d="M8.45,18.411c4.288-7.016,11.965-11.692,20.725-11.692 c2.281,0,4.488,0.318,6.582,0.911c-3.458-3.244-8.089-5.229-13.18-5.229C11.875,2.401,3.2,11.168,3.2,21.983 c0,2.837,0.598,5.53,1.671,7.965c0.094-1.738,0.369-3.429,0.802-5.052v-6.485H8.45z" /> + + + </g> + + +</g> + +</svg> diff --git a/libimage/error.xpm b/libimage/error.xpm new file mode 100644 index 0000000..f704a56 --- /dev/null +++ b/libimage/error.xpm @@ -0,0 +1,454 @@ +/* XPM */ +static char * error_xpm[] = { +"491 386 65 1", +" c None", +". c #5E605D", +"+ c #525350", +"@ c #454744", +"# c #717271", +"$ c #45586D", +"% c #8F908F", +"& c #9C9DA7", +"* c #CFD0DA", +"= c #C6C6C6", +"- c #AAAAAA", +"; c #FBABA0", +"> c #2F2F2C", +", c #F5F2F6", +"' c #FDFFFC", +") c #985053", +"! c #E9E7EB", +"~ c #DDDEE8", +"{ c #B1DFFE", +"] c #D8D9D8", +"^ c #0F1929", +"/ c #000100", +"( c #1A1B17", +"_ c #0C2154", +": c #266BF5", +"< c #2F79F6", +"[ c #3A8CFA", +"} c #4B78D3", +"| c #4BA1FD", +"1 c #3D6894", +"2 c #2E619E", +"3 c #5A90D1", +"4 c #135AF2", +"5 c #084BF1", +"6 c #003AEF", +"7 c #62B3FF", +"8 c #6490BD", +"9 c #84B1DB", +"0 c #9B0400", +"a c #C12625", +"b c #96292D", +"c c #C44842", +"d c #FC5F52", +"e c #DC7C7A", +"f c #FC9687", +"g c #FB8474", +"h c #FC705E", +"i c #80C6FF", +"j c #D5302D", +"k c #215EB9", +"l c #EF9C92", +"m c #8FADC7", +"n c #0A2B88", +"o c #EA3C38", +"p c #FC544A", +"q c #97BEDB", +"r c #9AD3FF", +"s c #5B5712", +"t c #736B15", +"u c #49460E", +"v c #FC4C45", +"w c #F4E52D", +"x c #A49A1B", +"y c #F93D39", +"z c #FD2B2C", +" .......................................+..+..+.+.+.+.++.++.++.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++@+++@++@++@++@+@+@+@+@@+@@+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ", +" ..................+...+...+.+.+.++.+++.+.+.+..+.+.+.++.+.++.++.++..+.+.++.+.++.++++++++++++++++++++++++++++++++++++++@++@++@+@+@+@+@+++@++@++@+@+@+@+@+@+@+@@+@@+++@++@++@+@+@+@+@@+@@@+@@@@@@@@@@@ ", +" ......................+...+........+...+...+.++...+.++.+.++.++.++.++++.++.++++.+++.++.+.++++++++++++++++++++++++@++@+++++++@++++++++++@+@+@++@+@+++@+@+@+@+@++@+@+@@@+@@@@@@@@@@@@@@@@@+@@@@@@@@@@@@@@ ", +" ....#$..$..$..$+.$..$+.$..$..$+.$+.$..$..$+.$..$++$.+$.+$+.$+.$+.$++$.+$++$.+$++$++$++$++$++$++$++$++$++$++$++$++$++$++$+@$++$+@$+@$@@$+@$+@$+@$+@$+@$+@$@+@$@@$@@$@@$@@$+@$+@$+@$+@$@@$@@+@$+@$@@$@@@@@ ", +" ......#+#............#+.............+.+.+...+.+...+.+.+..+.++.++.+.+++.+.++++.+++.+++++++++++++++++++++++++++++@++@++@++++@++@++@+++++@++@++@+@@@+@+@@@@@@$@@@@+@@+@+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ", +" .#$.......+#+#+#+#+....+#+.+..+.+.+.+.......+....+..+.+.++.+.++.++.++.+++++++++.++++++++++++++++++++++++++++@++++++++++++@+++++@++@+@+++@+++@+++++@+@++@++@+@++@+@+@@@@@+@@+@+@@@@@@@+@@@@$@@@@@@@@@@@@@@@@ ", +" ....#+#+#+#+.$.+.$..+$#+.$#+#$..$.#$.+$.+$+#$++$.+$.+$+.$+.$+.$+.$+.$+.$.+$.+$++$+.$++$.+$++$++$++$++$++$++$++$++$++$++$++$@+$++$@+$+@$++@+$@+$@@$@++$@+@@+@+@@$@@$@+$@@$@@$@@$@+$@@$@@@$@@@@@$@@@$@@@$@@@@ ", +" +#+#+.$+%&************=***=*=*=**==*=**=***=*=**=**=**=**=**=**=**=*==*==**=**=**=*==*==**=**=*==**==*============================*===*-**==*===*==**==*****=**=====*==**==*;**=-=====**==-**===*==%$@@@@@@@> ", +" ....#.##,,,,,'',,,,,,',,,,,,,,,,,,,,',,',,,,,',,',,',,'',,,'',','',',,'',''','',',,''''','''''''',',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,',,,,,,,,,,,,,,,,,,,,,,,-@@@@@@@> ", +" .#$+.++&''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',''''''',,,''''''''''''',,,,,,''''',,,,,',,,+>$@@@@> ", +" ...#.#+-'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',@@@@@$@> ", +" ..$)...-'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',@@@@@@@> ", +" ...$#+.-''''''',',,,,,,'',',',',',,',,',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,!,,,,,,,!,,!,,!,!,!,!,!,!,!!,!!,!!,!!,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!''''''@@@@@@@> ", +" #......-''''',,','''''',,',',',,,'','',,',',''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,!,,!,,!,!,!,!,!!!!!!!!!!,!!!!!!!!!!,!!!!,!!!,!!!!!,!!!,~,!!!,~,!,!!,!!,!!,!!,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!,'''',$>$@@@@> ", +" ....#+.&'''''',',,,,,',',,,',',,,,,,,,,,,,,,,,,''''''''''''''''!''!''!'!'!'!'!,!,!'!'!'!,!'!'!'!,,,'!','!,!,,!,!,!,!,!!,,!!,!,!!,!,~!,!,!!!~,~~,!~~~,~~,~~,~~,~~,~,~,~,~,~,~,~,~!~~~~~~~~~~,~!!''''',+@@@@$@> ", +" +#$....-''''''',''''',',',',',,',','''''',''',,!,!!,!!,!!!!,!!,,!',,!'!'!,!'!'!'!'!,!'!,!,!,!,!,!!!!!!!!,!,!,!,!!,!,!,~,~!,!!,~,~,~,~!,~,~,,~,~,~,,,~,~,~,~,~,~,~~,~~,~~!~!~!~!~!,,,,,,,,~!~!~!,''',,@@@@@@@> ", +" ...#+#+-'''',,',,,,',,,,',,,',',','!!,!,,'!,!',,',,,',,',',,',,,,!,,,,!,!'!,,,!'!!,,!,,'!,!'!!'~',,'!,!,!!'~'~'~'~!'~,!,,~'~'~,,,~,,,~,!~,~,,~,~,~~,~,~,~,~,~,~,~,~,~,~,~,~,~,~,~~~~~~~~~,~,~!!''''',@@@@@@@> ", +" ...$...-'''''',,''','',',',',,',,!',',',,,'!','~',,,,,,,,,,,!'!'!'!'!',',,,'!!'!,!'!'!!!'!!'~'~,!!!!!'~'~'~,!~'~!,!~'~,~'~,~,~,~,~,~!,~,~,~,~,~,~,~,~,~,~,~,~~,~,~,~,~,~,~,~,~!~!!!!!!,,~,~!~!~''''',>$@@@@@> ", +" .#+#...&''''''',,',,,',,'',,,','','!,,,,,',,,,,,,',,',,'~',,,,,,',~'!~,~'!,!'!,'!,!~'~'!!'!~,,~'~''!'~~'~,~'~'~'!~'~,~'~,~'~'~,~,,~'~,~,,~,~,~,~,~,~,~,~,~,~,!~!~,~!~,~,~,~!~,~,~~,~~~~~!~,~,~!''''''@@@@@$@> ", +" .......-''''',,'','',',',,,',',,,,,',''!',!'!',',,,'~,,',',,'~'~,',,'','!'~'~'~'!','~,!'~'~','~'!~'~,,,~'!,~'~,~'~'~,~'~'~,~,~,~,~,~,~,~,~,~,,~,~,~,~,~,~,~,~,~,~!~,~,~!~,~,~!~!,~~,!,!,~!~!!~!,'''',@@@@@@@> ", +" ...$#+.-'''''',',,,,',',','!,,',,',,~',,'~',,,~','~'',,,~'~',,,',~'~,~'~','~',~'~,~''~'~'~'~~'~'~,~'~'~,~'~,~'~'~,~'~,~'~'~'~,,,~'~,~,~,~,~,~~,~,~,~,~,~,~!~,~,~,~,~!~,~,~!~,~,~~,!~~~~~,~!~!!!''''',@@$>@@@> ", +" +#.....-''''',','',',',,',,','!',,,''!',''~',''~,,'~',',','~'~',,,,,',,,,~,'~''~'!'~'~,'~'~'~'!,'~'~,~'~',~'~'~~'~,~'~'~,~~,~,~,~,~,~,~,~,,~,~,~,~,~,~,~,~,~!~,~,~,~,~,~!~,~!~!,~!~,!,,~!~,~~~!,''',,@@@$@@+> ", +" ...#+..&''''',,,,',,!~~~~~~~~~~~~~~~~~~*~~~~~~~{~~~~~{~~~{~~~~~{~~~{~~~~{]~~~~~~~~~~~~~~~~~~~~~*~~~~~~{~~{~~*~~{~~~~~~~~~~~~~{~~~~~{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*~~~~**~~~!~,!!!''''',@@@@@@@> ", +" #+.+#..-'''''''',','~*************{*****{***{****{*****************************{********{*************************{********************{****{*************{*************************~***~,~~~!~''''',@@@@@@@> ", +" .$#+#+.-''''',,',','~~*{***{*{******{**********************{************~*{******{**{*****{***{**{*********{********{**{*{**~***{**~*****{*********{**************{************~*****{*~~!~,~!~''''',@@@@@$@> ", +" .)$....-'''''',,',,'~*************************~***************~**~***********************************~******~**~**************~****************{*************{*******{**{***~***********~,~!!!~''''',@$@@@@@> ", +" ...#...&''''',',',',~~***~****~****~*~*~*~**~***~*~*{*~*~*~*~*****~*{*~****~******~**~**~**~*~*~**~***~*~****~***~**~*~*~*~****~*~**~*****~**~**~**~*{*~*~*~**~*~**~**~**~*{**{**{*~**~*~!!~~,~''''',@>@@@@@> ", +" #...$..-'''''',',,,'~*~****~****~*************~****~**********~*{***~***~***~*~*~********~******~***~*****~****~************~*****~**~*~***~********~************~**********~***~***~**~~~!!!~~''''',@$@@@@@> ", +" ...#+#+-''''',,,',',,**~**&^>^>^>^>^>^>^>^>^>^>^>^^>^>^>^>^>^>^>>^>^>^>^>^>^^>^^>^>^>^>^^>^>^>^^>^>^>^^>^>^>^^>^>^>^>^>^>^>^>^>^>^>^^>^>^>^>^>^>^^>^^>^>^>^>^>^^>^>^>^>^>^>^^>^>^>~**~**~,~~!!~''''',@@@@@$@> ", +" #+.....-''','',,,,,,~~****&////////////^/////////////////////////////////////////////////////////////(/////(///////////////////////////////////(////////^////(///////////////////^****~~~,!!~,~''''',@@@@@@@> ", +" ..#+#+.-,'''',',',',,*{***&///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////~*****~~~,~~~''''',@@@@@@@> ", +" ...$...-''''',,,,',,~~****#//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////^**{~*~,~!~!!!'''',,$>$@@@@> ", +" ..#.#+.-,''''',',,,,~~*~*~&///_:<:<<<<<<<<<[<[[[[[[[[[[[[[[[[}|[}[[[|[|[|}|[||}|[|}11232[|[|[}|[[[[[[[[[[[<[[<[<[<<<<<<<<:<::::::::4:44444454545555556556666666666666666666666////~****~~!~,~~~''''''@@@@@$@> ", +" #+.+...-'''''',,',',~*****%///_<<<<<[<[[[[[[[[[[[[[[[|[|}||||[||||||||||||||||||1++++@+++1[|||[|||[|[}[[[[[}[[[[}<[[[<<<<<<<<<<:::::::::44444444455555565566666666666666666666///^**~*~*,~~~!~!,''',,@@@@@@@> ", +" ..#$#..-,'''',',,,,,,~****&///_<<<<<[<[<[[[[[[[[[[|}[|[|[|[|||||||||||||||||||3@@@@@@@@@@+$2|}|}|[||[|[|[|[[[[[[[[<[[<[<<<<<<<:<::::::4:4:444445455555556666666666666666666666////~***~*~~,!~!!''''',@@@@@@@> ", +" #+.....-''''',,'',,,~**~**%//(_<<[[<[<[[[[[[[[}[|[|[|[||||||[|||||||||||||||3$@@$@@@@@@@@@@@13}3}|[||[||[[|[[[[[[[[[[[<[[[<<<<<<<<:::::::4:44444445555565556666666666666666666///^*~*~*~!!~!!~!,''',,@@@@@@@> ", +" ..#+.$.-''''',,,',,,,~****&///_[<[<[[[[[[[[[[|[|[|||||[||[|||||||||||||7||3$@@@@@@@@@@@@$@@@@22323}|||[||[|[|[[[[[[<[[[<<<<<<<<:<::<:::::4:44444454555556566666666666666666666////*~***~~~~!~!!''''',@@$>$@+> ", +" $.+#...-''''',',,',,~**~**%//(_<[<[<[[[[[}[[|[[|[|[|[|||||||||||7||77|7|71+@+@@@@@@$@@@@@@@@@@122222}|||||[||[|[[[[[[[[[[[[[<<<<<<<:::::::4::444444445555555666666666666666666///^**~~~*!!~!!~!,''',,@@@@@@@> ", +" .#+#+..&''''',,,,,,,,~*~**#///_[[[[[[[[[[|[|[|||[||||||||7|7|7||7|7|7|78@@@@@@@@@@@@@@@@@@@@@@$211213}|[||[||[|[|[}[[[[[[<<[<[<<<<<<:<:::::4:444445454555566666666666666666666////~***~~~~,~~!!''''',@@@@@@$> ", +" #+#+#..-''''',',',,,~*~*~~%//(_[<[[[[[[[[[|[|[||||||||7|||7||7|777|778$@@+@$@@@$@@@@+$@@@@$>$@>12122223||||||[||[|[|[[[[[[[[[<[<<<<<<<:::::::::4444544555555566666666666666666///^*~*~*~!~~,~~!,''',,@@@@@@@> ", +" ...+#+.-''''',,,,,,,,~****&///_[[[[[}|[||||||||||||||||77|77777|7773$@@@@@@@@@@@@@$*,,&+@@@@@@@$11112233|||||||[|[|[[}[[[[[<[<[<<<<<<<<:::::444:444445455555656666666666666666////~*~**~~~~!~!!''''',@@@@@@@> ", +" +#$....-''''',','',,~*~~**%//(_[[[[[[[[|[[|[|||||||7|7|7|7|||777771@+@@+@@$@@+>$+-,',,,&@@@@@@>>1213112}3|||||||||[|[|[[[[[[[[<[[[<<<<<<<:::::::4:4444445555556666666666666666///^*~*~~~!!!!~~!,'''',>$@@@@@> ", +" ...#+#+&''''',,,,',,,~*~*~%///_|[[|[||[||||||||||7|7|7|777777|738@@@@@@@@@@@@$)%,,'''',,+@@@@@@@$111211333|||||[||||[|[|[[[[[[[<<<<<<<<:<::::::4:44444545455655666666666666666////~~***~~~~~!!!''''''@@@@@$@> ", +" #..$...-''''',',,,,,~*~~**%//(_[|[[|[|[||[||||7|7|7|7777|777778$@@@$+@$@+@@@@#!,'''''',,-$>$@@@@>$11321233||||||||[|||[|[|[[[[[[[[<[<<<<<<<:::::::4444444555555666666666666666///^**~~~~~,,~~~!,'''',@@@@@@@> ", +" ..#)$#+-''''',',,,,,,~*~*~%///$[[|[||||||||||||77|77|77777778$@@@@@@@@@@@@@#*,'''''''''',#@@@@@@@$1111213337|7||||||[|[|[[[}[[[[<[[<<<<<<<:<::::4:4:44454455555566666666666666////~~**~~~~~!!~!''''',@@@@@@@> ", +" .+.....-''''',,',,,,~~~*~*%///_[|[|[|[||||7|77|7|77777777731+@+@+@+@@@@$@+*,'''''''''''''*@$>$@@>>$11821233|7|7|||||||||||[|[[[[[<[[[[<<<<<<::::::4:44444445555556666666666666///^~*~~*~!!~!~!~'''',,$>$@@@@> ", +" .......-''''',,,',,,~~~*~*&///$[[|||||||7|||77|77|77777771++@@@@@@$@@@@)&,,''''''',,''''',%@@@@@@@>111111333777|7||||||[|[|[|[[[[[[<[<<<<<<:<::::::4:4444545555556666666666666////~*~~*~~~!~,~~''''',@@@@@$@> ", +" ..#$...-,'''''~,,,,,~~~~**%///_|||[|||||||77|77777777778++@@++@$+>)@$@%~,,'''''',~!!,'''',!+@@@@@@>$11311133||7|77||||||||[|[|[[[[[[[[[[<<<<<<<:::::4:444445455555666666666666///^~~*~~~~,~~~!~''''',@@@@@@@> ", +" .......-''''',',,,,,,~*~~*%///$[||||||7|77|7|77|777778$@@@@@@@@@@$>@#*,''''''',!!~!!,''''',-@@$@@@@>$111111337777|7||||||||[|[|[[}[[<[<<<<<<<:<:::::4:444444555555566666666666////*~~*~~~~,~,~~''''''@@@@@@@> ", +" #.+#...-''''''~',,,,~~~*~*%///_|||||7||77|7777777773$@@@++@$+@+@@+.*,'''''''',!!!!!~~,'''',,.@>$@@@$>111311333|7|7777|||||||||||[[[[[[[[[[<<<<:<::::::4:4444445555566666666666///^~*~~*~,~~~~!~'''',,@@@@@@@> ", +" ...$...&''''',',',,,,~~~~~%///$[|||||7|77777777777$.++@@@@@@@@$@+-,''''''',,~!!~!~!!!!''''''*@@@@@@@@$11118133777|7|7|7|||||[|[[|[[[[[[<<[<<<<<<:<:::4:4:445454555556666666666////~~~~~*~~,~~,~''''',@@$>$@@> ", +" +#.#...-''''''~',,,,~~*~**%///_||||7|7777|7|77778++@+@++$@+@@@+&,,''''''',!~!~,~,~!!!~,''''',%@@@@@@@>111111833777777|7|||||||||[|[[[[[[<}<[<<<<<::::::44444454555555666666666////~~*~~~,~~!~~!,''',,@@@@@@+> ", +" .+...$.-''''',,,,,,,,~~~~~%///$|7|7|7|7|7777778+@@+$@@@@@+@$@#!,''''''',!!~!!!~!~,~~!~!''''''!+@$>@@$@$1181113377|7|7|7|7|||||[||[|[}[[[[[<<<<<<:<<::::::4:4445455556566666666////~~~~~~~~,~,~~''''',@@@@@@@> ", +" #+#....-'''''',,',,,~~~~**%///_|||77|77777779$@++@@@@$+@+@@#*,''''''',,!~!,~~,~,~!!~,~!!''''',&@@@@@@>@$111811337777777|7||||||||[||[[[[<[[[[<<<<:<::4:::444445455555566666666///^~~*~~~,~~!~!!'''',,@@@@@@@> ", +" 0000000000000000 .......&''''',,'~',,,~~~~~&///$77|77|777777$++@@$@+@@@@+@)-,'''''''',~!!!~~,!~!~,~!!~!!~,''''',.@@@@@@@$$11818833777777777|7||[|[|[|[|[[[[[<<<<<<<<:<:::4:4:444545555656666666////*~~~*~~~!!~~~''''',@@@@$@@> ", +" 0000000000000000000000000000000000000 #$#+#..-''''',,',,,,~*~~~*%///$|7|77777778++@@++@+@++@@$&,'''''''',!~!,~!,~~,~,~,~~!~!!!!''''',*$@@@@@@@$11111138777777|7|7||7||||[|[|[[[[[[[[}<<<<<::::4::4444445555556666666////~~~~~~,~~!!!!,''',,@@$>@@@> ", +" 00000000000000000000000000000000000000000000000000 .+#+...-''''''~',,,,,~~*~~%///$||77|7778@@@+$@@+@+@+@$%!'''''''',~,~!!~,~~,!~!~!~,!~,~~!~,''''''#@@@$@@@@11181883377777777|7|||||||[|[|[[[[[<<<<<<<:<:::::4:444445455556566666////~~~~~~~!!~~!~''''',@@@@@@$> ", +" 000000000000000000000000000000000000000000000000000000000000 ..+#...-''''',,,,,,,,~~~~*%///_7777778$@+++@+@$+@@$@#!,''''''',,!!~,~,~!,~~,~,~,~~,~!!!!!!''''',!$@>@@@@@$$181118877777777|77|7|||||[|[[[[[[[[<}<<<<<<:::::4:44454555556666666////~~~*~~~~!!~!~'''',,@@@@@@@> ", +" 00000000000000000000000000000000000000000000000000000000000000000000 .#+$...&'''''',,,,,,~~~*~~%///$|7|73$+++@+@+@@@@+@)*,,'''''''!~!!!!~!~,~~,!~!~,~,~~!~~~~!~,''''''%@@@@$>@@111818838777777777|7|||||||[|[|[[[[[<<<<<<<:<::::4:44444545555566666////~~~~~~!!~!!~~''''',@@@@@@@> ", +" 0000000000000000000000000000000000000000000000000000000000000000000000000000 ...#...-'''''~'',,,,,~~~~*%///$7778++++@+@$@++@$+&,,''''''',!!,~,~,~,~!,~~,~,~!~**~!!,!!!~!,''''''$@@@@@@@@$1811183377777|77|777||||||[|}[[[[[[[}<<<<:<:::::4:4444455555565666////~~~~~~~!~~!~!,''',,@$@@@@+> ", +" 000000000000000000000000000a0aabaccccccccdcacaaa0000000000000000000000000000000000 ..+#+#+-''''',,,',,,~~~~~~%///_78@@+@$@++@+@+@+&,'''''''',~!!~!!~,~,~,~~,!~!~,~*~**~~~~~,~!!''''''=@@@@@@@@$118188837777777777||7|||||[|[|[[[[<[<<<<<<:<:::4:44445454555566666////~~~~~~!~,~!~!''''',@@@@@@@> ", +" 0000000000000000000000acccefegeefgggggggggggghghghghhghchdcaa000000000000000000000000000 #+#+...-'''''',,,,,,,~~~~*%///$$@++@++@$@++++#!,''''''',!!!,~,~,~!,~~!,~!~,~~******~~!!!~!!~,''''',#@@$@@@@@$$18118897i77777|77|7|||||||[|[[[[[[[<}<<<:<:::::::444445555555566////~~~~~~~!~~~!~,'''',>$>$@@@> ", +" 000000000000000000abcceefegffggfggggggggghghghhghghhhhhhghhghhhhghhcjaa00000000000000000000000 ..$#+#+-,'''',,,,,,,~~~~~~%//@@+@++@++@+@+@#*,,'''''',,!,~~~!~,~,~~,~!~,~!~~**~*****~~~~!~!!~''''''~@@@@@@@$$1181813877i7777777|7|||||[||[|[[[[<[[<<<<<<:::::444:5445455656666////~~~~~~!~~!~~!''''''@@@@@@$> ", +" 000000000000000000ceefffffffffgfgfgfgggggggggggghghghhghghhhhhhhhghhhhhghhhdcaa00000000000000000000 #......-'''''~',,,,,,~~~~~%>@+@++@$++@++@#&,,''''''',!!~!,,~,~,~!,~,~,~~~~**{****{*~~~,~!!!~!,''''',&@>$@@@@@$$11818887777777777777|||||[|[|[[[[<[<}<<<:k:::::4:44444555555556////~~~~~~~~,~~!~''''',+@@@@@@> ", +" 0000000000000000ceefffffffffgfffgfgfgggggggggghghghghghhhhhhghhhghhhhhghhhhhghhhhdcaa0000000000000000000 ...$#+.-,'''',~',,,,~~~~*&++++@++@+@+$@+&,,''''''',~!!~,~~,~,~~,~~,~,~,~*~*****~*****~~!~~!~~!,''''',+@@@@@@@$$1818138i7i777777|7|7|7||||[|[[|[[[[<<<<<<::<:::4:44445455556666////~~~~~~~!~~,~~''''',@@@@@@@> ", +" 000000000000000ceelfflfffffffffffgfgfgfggfgggggghgghghghhghghhhhghhghhhhhhhhghhhhghhhhhhdcaa00000000000000000 #$)....-'''''''~,,,,,~~&.@++@++$@+++@+%,,''''''',!!,~,~,,~!~!,~!,~,!~~*******~***~*~**~!!!!~!~!''''',=@@@@@@@@$$18188387i7i777777|7||||||[||[[[[[[[<}<<<:<:::::4:4445445555556////~~~~~~~,~~~!~'''',,@$@@@@@> ", +" 00000000000000celfffflfffffffefffffgfgfgfggggggghggghgghghhhhhhhhhhhhhhghghhghhhhhhhhghhhhhhhddca00000000000000000 ....#+.-,'''',,'','!,*#++$@++$@+@+@+#*,,'''''',,!!~,!,~,~,~,~,~,~!~~~**~***~***8&~**{~*~~~,~!!~,''''',#@$>@@@@$$$81188837777777777|77|||||[|[|[[[[<[<<<<<<:::::4:4444555555656///^~~~~~~!~~,~~~''''',@>@@@$@> ", +" 0000000000000bellflll;f;fllffffffgfgffgfggggggggggghghghghhhhghghhghhhhhhhhhhhhhhhghghhhhhghhhhhhdddaa0000000000000000 ...$...-'''''~'~,~!~#+@+@++@+@+++$+*,'''''''',!~,~,~~~,~~,~,~!~,~!~{***{*~**~&>/^*****~~,!~~!~!!''''''*@@@$@@@@$1$8118887i7i777777|7|7|||||[|[[[[[[[[[<<<<<:::::4:444445555556////~~~~~~~~~~~!~''''',@$@@@@@> ", +" 000000000000bcl;f;f;fff;fffffffffffefgfgggfgfggggghghghghhghghhhhhhhhhghhghhghhghghhhhhhhghhhhghhhghhhhdda0000000000000000 ...#...-,'''','',~&++$++++++++@++&,,''''''',!!!,~,~,,!,~,~,~,~,~~**********m$////&**~***~!~,~~!~,''''',%@@@@@@@@$1$881888i7777777777|7|||||[|[|[[[[<<<<<<<:<:::4:4444445555656////,~!~~~,~~,~!~''''',@@@@@@@> ", +" 00000000000bcf;;;;;f;;;fflfff;effffgfgeggefggggggghgghgghgghhhghhhhghghhghhhhhghhhhhhhhhhhhhhhhhhghhhhghhghddda000000000000000 #......-''''',,~-.++@++@$+@$@++&,'''''''',,~,~,~,~,~,~,~,~,~,~~****~**~***.//////^***~*~~!~~!!~!]'''''',+@@@@@@@.1$1818387i7i77777|77|7|||||[|[[[[[[[<}<<<:<::::::444445555565////~~~,~~~~!~~~!,'''',@@@@@@@> ", +" 00000000000bg;;;;f;f;f;ff;ffffffffffffgfgfgggggggggggggghhghhghhhhgchhhhhhhhghchhhhghghghghghhghhhhhhghhhhhhhhhdddca00000000000000 ..$#+..-,'''',=#++@+++@+@++++#~,,'''''',!!!!~,~,~~,~,~,~,~!~~~*{********1^////////$~****~~!~!~!~~,''''',-@$@@@@@@$1$8188887i77i77777|7|7|||||[|[[[[[[<<<<<<:<:::4:444444555556///(~~~~~~,~!~!~!''''',@@@@$@@> ", +" 00000000000ce;;;f;;;;f;ff;ff;flfffffffgfgfgfgegggggggghghgghghhhhhhhghhghhghhhghhhghhchhhhhhhhhhhghghhhhhhhhhhhghghdddja00000000000000 ..+#$..-'''']#$@+++$++++++@#*,,''''''',!,~,,~,~,~,~,~~'~~,~~****~**~**&>//////^////m*~*~**!~!!!!~~,''''',.@@@@$@@.1$81818897i7777777777||||||[||[[[[[[<}<<<<:::::4:44545455555////!~~~~~~~!~!~!,''',,$@@@@@@> ", +" 0000000000bl;;;;;;f;ff;f;f;ffffffffeffgffgfgfgggfgggghgghghghghhghghhhhghhhcghhhhghhhghhhghhgcghhhhhhhghghghghghhhhhhhhddda0000000000000 .#+.#+.-,'!%+++++$@+@+$@++&,,'''''',,!!!~,~,~,~,~,~,~,~~,~*{********m^//////^56^///@*~**~~~~!~!~!!!''''''*@@@@@@@@$$18181387i7i77777|7|7||||||[[[[[[[<[<<<<<:<::::44:444555565////~~,~,~~~!~!~!''''',@@@@@$@> ", +" 0000000000cl;;;;;f;;;;;;f;fflf;fffffgffegfgfgggggggggggghghghghhghhhhhghhhhghhhhghhhhhhhghhhhhhhhghghhghhhhhhhhhhhhhhghghhhddda0000000000000 #+#....-'-.++++@++++++++&,'''''''''!,~,,~,~,~,~,~,~,~,~~****~**~***#//////^n6665////&**~**~~!~!!!~~,''''',&@@@@@@@+$$1818883i77i777777|77||||||||[[[[[<}<<<<<::::::44444445556///(~~~~~!~!!~!~~,''',,@@@@@@@> ", +" 0000000000cl;;;;;;;;;fff;f;f;fffffffffffgffgfgfgfggggggghggghghhghhhhghhhhhhhghhgdhhghhghhhhghhghhhhhhhhchhhghhhghgchghhhhhhhhhddda0000000000000 ..+#+#+%.++++++++++@+@&!,''''''',!!!!!,~,~,~,~,~,~,~,~***********$^//////n666666_///^**~~*~~~!~!~!~~''''',!@@@@@@@@$$$8181887i777777777||||||}|[[[[[[[<[<<<<:<:::4:44444545555////,~!~!~~!~!~~!''''',@@@@@@@> ", +" 00000000bc;;;;;;;;;;f;;;f;fff;ffffffefffffgfgfggggggggggghghghghhhgchhhhghhghhhhhhghdghhdghhhhhhhhghhhghhghhhcghhhhhhhhhhhhghhghhdddda000000000000 #...$++++++@+$+$@+++#*,''''''',,,~,~,~,~,~,~,~,~,~,~***{~***~**&^//////_666666666////$~**~*~~!~!~!!!!''''',&@$@@@@@+$1$8188887i7i777|77777||||||||[[[[[<}<<<<<::::::4444455555///(~~~~,~!~!~!~~''''',>$@@@@@> ", +" 000000000bf;;;;;;;;f;;;f;f;f;f;ff;fffffffgggfgfggggggggghghgghghghhhhhghhhhhhhhhghhhhhhhhghhhghghhghhhghhhhhghghhhhghghghghhhhhhhhghhdddda000000000000 ..$..++$++$++@++++$*,,,'''''',!!~,,,~,~,,,~,~,~,~~~*~*****~**&^//////_56666666666n////**~*~*~~!!~!~~!,''''',.@@@@$@@+1$818188i77i777777|7|||||[|[[[[[[<[<<<<<:<:::4:4444445555////~,~!~~!~~~~!~''''''@@@@@$@> ", +" 0000000000e;;;;;;;;;;;f;f;f;ff;fffffefffgffffgfggfgfgggggghgghghgdghhghhghchghhghhhghghhghhhghhhhhhhhghhhhhghhhhhghhhhhhhhhhhghghghhhhhghdddoa00000000000 $)+++++++++++++++-,,''''''',!!,,,~,~,,~,~~'~,~,~~**{****~*~&$//////^n6666666666666^///$~*~*~~~~!!~~!~!''''''*@@@@@@@@$1$818883977i7777777|7||||||[|[[[[[<}<<<:<::::4:444454555///(!~~!~!~,~~!~~,'''',@@@@@@@> ", +" 000000000c;;;;;;;;;;;f;;;;f;ff;fflffffffffegfggfgeggggggghgghghghhhhhhhhhhhhgdhgdhgdhhhhgdhgchhghcghhhhhghghhhhhhhhhghhhghhhhhhhhhhchghhhhhhdddj000000000000 .++++++++++++++&!,''''''',!,!!~,~,~'~~,~'~,~,~~~~****~****$^//////n666666666666666n////&*~*~~~~!~~,~~!,''''',#$@@@@@@@$18118887i777777|777|||||[|[[[[[[[<<<<<<:<::::4444455555////~~,~,~~~~!~!~''''',@@$>@@@> ", +" 00000000bl;;;;;;;;;;;;f;f;f;f;f;fffffffeffgfgfgfggggggggggghghghghghghghhghhhghdghhhghghhghhhhhhhhhhhghhchhhhghhghhhhghhhhhhgcghhghhghhhhhghhgdddda00000000000 +++$+++$++$+++#~,'''''''',!,~,,,~,,,~'~,~,~,~~*{*********&///////n666666666666666666_///^~*~~*~~~,~~~!~~''''''!@@@@@@@@$$$8181883i7i77777|7|7|||||||[[[[[[[<<<<<::::::444444555///(,~~~~~!~~!~~~'''',,@@@$@@+> ", +" 000000000e;;;;;;;;;;;;f;;f;f;ff;fef;fffffffgfgfegggfgggggghghggghhghhhhhhhhhhghhhghhhgdchhhhhghghhghhghhhghhhhhhhghhghhhhhghghhhhhhhhhhhghhhhhhhhhdddda00000000000 +++++++$++@+@+#*,,'''''',,!!,!'~,~,~~,~,~'~,~~~~****~*~**8^//////_666666666666666666666////#~*~*~~~!~,~,~~,''''',-@@@$@@@@$$8181883i777777777||||||[[[|[[[<[<[<<<:<:::4:444454555////~!~,!!~~~~!!~''''',@@@@@@@> ", +" 00000000e;;;;!;;;;;;;;;;;;f;f;ff;fffffffffffgfgfggfggggggggggghhghghhghhghhghhhhhgdghhhhghghhhhhhhhghhhhhhhghghghhhhhhchghhhhhghhghhghghhhghhghhghghdppdj00000000000 +++++++++++++++-,,''''''',!,~,~,~'~'~'~'~,~~,~~*********~&@//////_n6666666666666666666666n////*~~~*~~~~!~!~!~,''''',$@@@@@@@$$$1818887i7i7777777|7||||[|[[[[[<[<<<<<::::4::44445455///(~,~~~,~!~~~~~,''',,@@@@@@@> ", +" 00000000e;;;;;;;;;;;;;f;f;f;f;f;fffffeffffgfgfgfgfgggggggghghghghhgdgdhhhhhgdhghghhchhhghhhhhghhghhhhhghhhhhhhhhhhghghghhhhghhhhhghhhhhhhhhhhghhhhhhhhhddpda0000000000 ++++$+++++++++&,,''''''',!,!,,,~'~,~,{,~'~'~,~~*{**~*~*~q$///////n6666666666666666666666666^///$*~~*~~~~~~!!~!!''''''=@@@@@@@@$$81818887777777|77|||||||[|[[[[[<<}<:<<::::4444445455////~~,~!~~~~,~!~''''',@@@@@$@> ", +" 00000000b;;;;;;;;;;;;;;;;;f;;f;fffff;fffeffgfefggfgggggggghgghghghghhhghghghdghhhhhhghhhghhhghhhhhhhghhhhhghhghhhgchhhhhhhghhhhhhhhhhghhhhghghhhhhhhhhhghhddpdj00000000000 ++++++++$++++@&!,'''''''',!,~,~,~'~,!,,,,,~,~~{**********#///////n566666666666666666666666666n////&*~~~~~,~~!~!!~,''''',#@@$@@@@+$$81818397i777777777|||||[|[[[[}[<<<<<:<::::::4444555///(~!~!~,!~~~!~~'''',,@$@@@@@> ", +" 00000000e;;;*;;;;;;;;;;f;f;;ff;flf;fffffffffgfgfgfggfggggggggghghghghhhchhhhhghhhghhhhghhhhhhhhghhghhhhhgchghhhhghhhhhhhghhhhghghghhhhhhghhhhhhgchghhhghhhhhhdddda0000000000 ++++$+++++++$+#*,,'''''',,!!,!'~'~,~'~'~!~~'~~~****~*~**~&^//////_556556666666666666666666666666_///>*~~~~~~~,~!~!~!''''''!@@@@@@$@$$1818188777i77|7||7||||[|[[[[[<[<[<<<:<:::4444444455////,~,~!~~~,~~!~''''',@>@@@@@> ", +" 0000000ae;;;;;;;;;;;;;;;;f;f;f;ff;effffffffgffgfggfgggggggghghghghghhhghghhghhcghhhhghhhhhghghcghhhhhhghhhhhhhghhhhhghghhhhghchhhhhhghghhcghghhhhghhghhhhhhghhhdpppa0000000000 +++++++++++++++=,'''''''',!,~'!~'~,~'~'~,~,'~~~***~*****~&^//////_n55556555566666666666666666666665////#~*~*~~~~~!!~!~!''''',&@@@@@@@@$$1818883i7777777|7||||[|||[[[[[<[<<<<:::::::4454545////!~!~!,~~~!~~~,'''',@$@@@@@> ", +" 0000000b;;;*;;;;;;;;;;;;f;;f;f;f;fff;fffefffgfgfgfggegggggggghgghhhghhgdhhhhhhghhhhgdhhghhhhhhhhhhhgchghhghghhhhhghhgdhhhghhhhghhghhchhhhghhhhhhghhhhhghhghhhhhhhddpdj0000000000 ++++++$+++$++++&,,''''''',,!,,!~'~,~'{'~!!,~,~~~**~****~*m$//////^n5555555565565666666666666666666666n////*~~~~~~!!~!~!!~,''''',+@$@@@@@$$$81188377777777|7|||||[[[[[[[<[<<<<<:<::4:44444545///(~,~,~~~!~~!~!''''',@@@@@$@> ", +" 00000000e;;;;;;;;;;;;;;f;;;f;;f;fff;ffffffffffgfgegfggggggggghggghghghhhhhghhghhhhhhhhghdghhghhghhghdghhhhhhhhhghhhhhdghghhhghhhhhhdghhghhhhghhghhhhghhhhhhhhghhhhghhpdpda000000000 +++$.+++++++++&,'''''''',,!,~'~,,~'!,!,~'~,,~~***{***~***#///////n5555555555555555566666666666666666666^///$*~~~~~~!~!!~!~!''''''-@@@@@@@@$$$$$$1$1187777|7|7|||||||[[[[<[[<<<<::::::4:445455////!~!~,!~~!~~~~''''',@@@@@@@> ", +" 0000000be;;!;;;;;;;;;;;;;;f;f;f;ff;ffffffffgfgfegfgfgggggggghgghhghghhhghhhhhhhhhghhghhhhhhhgdhhhhhhghhhghhhghhhhhhchhhddddddddddddddddddddddddddhhhhhhgcghhgchghhhhhhhpdppa000000000 +++.++++.+++++#~,,'''''',,!,!,!,!!'~~'!!,!,~'{~~********r&^//////_444444554555555555655666666666666666666n////&~~~~~~~!~!!~!~,''''''#@@@$@@@>//////////777777|7||||[|[|[[[[<<[<<<<::::4:4444455///(~,~!~~~!~!~~~''''',@@@@@@@> ", +" 0000000a;;;;;;;;;;;;;;;;;;f;;f;ff;effffffeffffgfggfgggfgggggghgghghghghhhhghghghgdghhdghghghhhghghghhhghhhhhdddcddddddddddddddddddddddddddddddddddddddddddhhhhhhhghhghhghdppdo0000000000 ++.++++++$++$+#*,'''''''',!',~,~'~'~~'~,~,~,!!**{*~***~*~&(//////_444454544544545555555555556666666666666666_///>~*~~~~~!!~!~!~!''''',~@@@@@@@@(/////////77777|7|7|||[|[[[[[[[<<<<<:<::::4:444545///(~!~,,,~~~!~!~,''',,$>$@@@@> ", +" 0000000b;;;;;;;!;;;;;;;;;f;f;f;f;fff;ffffffgfgfgfgfggfggggggghghghghhchhghhhhhhhhhhhghgdhhhhhhgdhhhhhhhdhdddhdddhddddddhdhddddddddddddddddddddddddpdddpddddpddddhdhhhhhhhhhdpdpda000000000 +++++$++++++++#&,,''''''',,,!!,'~'~,~'~'~'~,,~~*******~**m$//////^n44444444444544454555555555655666666666666666////&*~~~~~~!~!~!~~,''''',%@@@@@@@@////////(7777777|||||||[|[[[<[[<<<<<:::::44444454////,~!~~~~!~~~~!''''''@@@@@$@> ", +" 0000000c;!;;!;;;;;;;;;;f;;f;;;f;ff;fffffffffegffgfgfgggggggghggghghghhghhdghhcghhhghhhhhghhhcghhhghhdhddddhdhdhdhdddhdhddddddddddddddddddddddddppdddpdddddpddpdppdddddhdhhhghdpppoa000000000 ++.+++.++$.+++&,'''''''''!,!!'~'~,~'~,~,~'~,~~**~****~***+///////n4:4:444444444445445445455555555556666666666666n////**~~~~~~,~~~!~~,''''',$@@@@$@@>////////377777|77|||[|[|[[[[<[<<<<<::::4::444455////,~!,,,~~~!~~~'''',,@@@@@@@> ", +" 0000000b;;;;;;;;;;;;;;;;;;f;f;fff;fff;fefffffgfgfggfggggggghgghghghhghhhghhhhghhhhhhchghhcghhhhhhdddhdhdhddddddddddddddddhddddddddddddddddddddddddpddodddppppdpdpdpdoddpdddddhhdppppa000000000 ++.+$+.++.++++&!,''''''',,,!,,!,!~'~,~','~,~'~{~*********1///////_:::4:4::4:444444444444545455555556565666666666666////#*~~~~~~~!~!~!!!''''''-@@@@@@@@////////3777|77|||||||[[}[[[[<[<<<:<::::44444455///(~,~~~,~~~!~~~''''',@@@@@@@> ", +" 0000000g!;;;;;;;;;;;;;;;;;f;;f;f;fff;ffffffgfffgfgfgggggggggghggghghhhghhhhghhhghhhghhhhhhhhhhhdhdhcdddddhdhdhdhhdhdhdhddddddhdddddhdddddddddddodddddddpdpddddppdpdpdpdodppdpdddddppppa000000000 ++.++++$++++++#*,,''''''',,!!'!!'!''~'~'!~,~,~******~*~**&>//////_::4:::4::4:4:4:4:4444444444454455555555556666666666n////*~~~~~~!~~!~!~~,'''',,#@@@@@@@@stu///(337777|77||||||[|[<[[[<<<<<<::::::444445///(~,,,~,~~~~!~~,''',,@@@@@@@> ", +" 0000000e;;;!;;;;;;;;;;;;;f;f;f;f;f;effffffeffggfgfgggfgggggghgghghhghghhhhghhhhhhhghhhghghhhhdhdddddhdhhddddhcddddddddddhddddddddhddddddddddddddddoddpddpddpppdpdpdppdpdpdpppdopdpppppppa000000000 ++.++$+.+++$+.#*,,''''''',,,'!~,~'~!~,~'~'~'~!~~*~*******m^//////^k::::::::::4:::4:44:4444444454454545555555655666666666^///>~~~~~~~~~~~!~!~''''''*@@@@$@@@sts////8377777|||||[|[[|[[[<[<<<<:::::444444545////!~~,~,~~!~~~!''''',@@$>$@+> ", +" 000000be;;;;;;;!;;;;;;;;;;f;f;f;fffff;ffffffgeffgegfgggggggggggghghghhhhhhhdghhghhhhghhhdhhddddhdhhdhdhdddhdddddddddhddddddddddddddddddddddddddddddddpddddppdpddpdodpdpdpppdodpppppppdppppj000000000 ++.+++.+.++.+.+&,,''''''',,!!!!','~!','~'~,~'~~*{*****~***+//////^n:::::::::::::::::::4:::4:4444444445445455556555656666665////&~~~~~~~,~~~!~!,''''',&@@@@@@@+tu////383777|77||||||[[[[[[<[<<<<<::::::444445////,,~,~!~~~!~~~'''',,@@@@@@@> ", +" 0000000e;;!;;;;;;;;;;;;;f;f;f;f;f;f;ffffffffffgfgggfggggggghghghghhghhghghghgdhgdghhhhhhhddhhdhddddhddddhddhddhdhdhdddhdhdhdddddcdddddddddddddddddddddddppddpdpdpddpdppdodppdpppppppdppoppdpj000000000 +.++$.++++++++&,,,'''''',,,,'!,,~~',~'~,~'~'~~~******~*r*$^//////_<<:<<<:::::::::::::::::44:4:4:4444444544554555555556566666_///(*~~~~~~~~,~!~~!''''',!@@@@@@@@@(////1337|77||||||[|[|[[[[<[<<<<:<:::44444454////,~,~,,~~~~!~~''''',@@@@@@$> ", +" 000000b;;;;;;!;;;;;;;;;f;;;;;;f;fffffffeffefgffgffgfgggggggggghghggcghhhhhchhhghhhhghdhdddhhdhdhdhhdhdhhdhddhdddhddddddddddddhddddddddddddjdddoddoddddddpddpppddpdppdodpddpdpdppdpvpppppppppddo000000000 .+.++.+++.+.$.#!,'''''''',',!!!'!''~,!'~'~'~,~~******~***&(//////_<<:<<:<:<<<<<::<::::::::::::::4:4:444444444545455555565656665////#~~!~~~~~~!~~!~!''''',&@@@@@@@@(////818377777||||[|[[[[[[<[<<<<<::::::444445///(~,~,~!~!~~~~~,''',,@@@@@@@> ", +" 0000000e;;;;;;;;;;;;;;;;;f;fff;ff;f;fffffffgffgfggfgggggggggghggghgdghhhghhghhhhghchdhdhhhddddhdhddcddddddhdddhdhddhdhdddhdddddddddddddddddddddddpdddjdddoddddppdpdpdpdpppdodoppppppdoppppppppdpp00000000b ++.+$.++.$+.++#*,,'''''',,!,!'!,!,~,~'~'~'~,,~{**{**~****&^//////_k<<<<<<<<<<<:<<<<:<:<:<::::::::4:::4:4:444444454555555555656666n////*~~~~~,~~!~~!~!,''''',#@@$@@@@>////138337|7||||||[|[[[[[[<<<<:<::::4:444545////,~'~'~~!~~!~~''''',@@@@@@@> ", +" 0000000e;!;!;;;;;;;;;;;;;;f;;f;f;fef;fffffffffgfgfgggegggggghgghghghhghhhhhhhhghhhdhdhdhddhhhdhdhdhdhdhdhdddddhddddddddhdddddddddddhddddddddddpdpdddppddpdddppdpdpdodpdppppddpdpppppdppppppppppppdj00000000b .+.++.+$.+++++#-,''''''''',,'!,,,'~',,'~'~'~,!~**~******~&$//////^k<<<<<<<<<<<<<<<:<<<<<<:<:<:::::::::::4:4:444444444445555555565666^///@~~~~~~~~~!~~~~!'''',,*@@@@@@@@(///111337|77|||||[|[[[[<[[<<<<<::::4:444445////,,~,!,~~!~~!~''''',>$@@@@@> ", +" 0000000e;;;;;;;;;;;;;;;;f;f;;f;f;fffffffffegfgfgfgfggggggggghgghghgdghhhhghghhhhdhhdhhhdcdhddhdddhdhdddhddhdhddcdddhddddcddhddddhdddddddddddddddddpdpddddpdpdppdppddppdpdpdopdppppppppppppppppoppoppo00000000b #.++.+++.++.+.$&,,''''''',,,,!,!,!~'~'~~'~'!'~~{******~*~q$///////2<<[<[<[<<<<<<<<<<<<<<<:<<<:<<:<:::::::4::4:4:4444445455555555556556n////&~!~!~~!~!!!!~~,'''',,%@@@@@@@@///1313337||7||[||[|[[[[<<<<<<:<:::4:444545////,~,,~,~~~~~!~,'''''@@@@@$@> ", +" 000000e;;;;;;!;;;;;;;;;;;;;f;f;ff;f;ffffffffegfgfgggfgggggggghghghghghhhhhhhghchhdhhdhdhhdhdhdhdhdhddhdhddcddhdddddddhdddddddddddddddddddddddpddoddddddpddppddpdpdppdppdodddpppppppppppppppoppdpppppdj00000000b%####.$+.+.+$++%!,'''''''',,'!,!''~','~','~'~!~~**~***~***&(//////_<[<[<[<[<<[[<[<[<[<[<<<<<<<<<<<:<:<::::::::4::4:4444444444455555556666_///>~~~~~~!~!~~~~~!'''',,~+@@$@@@@>//11113377|||||[|[[[[[[[[<<k///////////^54///^,~,~,~!~!~~~~''''',@@@@@@@> ", +" 000000c;;!;;;;;;;;;;;;;f;f;f;fff;ffffffffffffgfggfggggggggghghgghghhhhhghhhhhddhdhhdhdhddhdhdhddhdcdhddddddhddhdhdhdddddhddddddhdddddddddddddddddddpdpdpppdpdpdpdopdppdpdppppppppppdppppppppppppopvppppa00000000)####..+.++).#*,,'''''',,,,!,!'~,~'~'~'~'~,,~~******~***&^//////_}[[[<[<[<[[[<[<[<[<[<<<<[<<<<<<<<<<<:<<:<::::::4::4:444444454555555556565////#~~~,~~~!~!!!~~!'''',,&@@@@@@@$//1811333|7|||||[|}[[[<<[<<k///////////^55////,~,,,~!~~~!~~,'''',@@@@@@@> ", +" 000000c*;;;;;;;;;;;;;;;f;;f;f;f;ff;ffffffefgffgfgfggfgggggggggghghghghhhghghhdhhhddhdhhdhdhddchddhddhddhdhdhddddddddddhdddddddddddddddddjddddddpddddpdddddpddodpdpdpdpdppdpdpppppppppppppppppppvpppvpppppa00000000+#####$+.$#-,'''''''',',,,,',,','!'~'!,~'~~**~***~**~&>//////^k[[[<[[[[[[[<[[[[<[[[<[[[<[<[<<<<<<<<<<<<:<:<:::::::::4:4444445445555555655n////*~~!~~!~!~~~~~~,'''',,+@@@@@@@@/111113337||||[|[|[[[[<[<<k///////////^45///(,,~,~,~~!~~~~'''',,$>$@@@@> ", +" 000000b;;;;;;!;;;;;;;;;;;;f;f;f;ffffffffefgffgfgfggggggggghghghhghhhhhhhhhcdhhdhdhhhdhdhdhdhdhdhdhdhdhddhddddhdhddhdhddddhddddcddddhdddddddddddodddpdddodpdppdpdpddpppdodpdopppppppdoppoppopppppppvpppppvppj00000000######+.&,''''''''',!,!'!!!!'~!,~'~'!'~{~*{***~***q$//////^2[[[[[[[[[[[[[[[[[[[<[[[<[[<[<[<}<<}<<<<<<<<:<<:<:::::4::4:4444444445555555656^///+~~~~,~!~!~!~!~!''''',*@@@$>@@@^^$$$^1_11122122[[[[[[<[<<k///////////^54////~'~,,,~~!~~~~,'''',@@@@@$@> ", +" 000000c;;;!;;;;;;;;;;;f;f;;f;f;f;f;fffffffffgfgfggefggggggggghgghghghhghgdhdhdhhdhdhdhdhdhhdhdhddhdhdddddhddhddhddddddddhddddddddddddddddddddddddddddodddpdpddddodpppdppdpppdpddppppppdppdppppppoppppvopvvvpoa0000000b#####%!'''''''',,!',,,!''~'~',',,,!,~~*********&.///////_}[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[<[<[<<}<<<<<<<<:<<:::::::4::4:4444544455555556n////&,~~~~!~!~!~~!~,'''',,#@@@@$@@@//////////////$[|[[[[<[<<k////www(///^55///^'~,!!!~~~~~~~''''',@@@@@@@> ", +" 000000bl;;;;;;;;;;;;;;;;;f;f;f;ffffffffffffgfgfgfgggggggggghghghghhghhhhhhdgdhdhdhdhhdhhdhddhdhdhdhdhdhdhdhddhddddhdhdcddddddddddddddddddddddjddddpdddddpdpdpdoddppddpddppdpdppodpppppvppvpppppppppopppppvppvpoa0000000b$#%=*],'''''',,,,,!',,,,,,'~,~'~'~~****~***m&$^//////^k}}}[[[[[[[[[[[[[[[[[[[[[[[[[[[[<[[[[<[[<<<}<<<<<<<<:<:<::::::4:4:4444454455555556_///>~~~,~!~!~~!~~~~''''',~@@@@@@@@>/////////////^[[[[[<[<<<k////www(///^55////!!,~'!~~~~~~~,'''''@@@@@@@> ", +" 000000l;;;;;;;;;;;;;;;f;;f;f;f;ff;fffffefgfffgfgfgfggggggggggghghghhghhhdhdhdhdhhdhdhcdhdhdhdddhddhddddhddddhdddcddddhdddhdddhdddddddddpddddddpdddodddpddpdpdpdppddppoppdodpppppppppppppppppppopvpppvvvpvvpvvvpp00000000)-*]]]]'''',!'',,'~'!,!'~,,,'~'~~****&#$+$++>//////^2222k}}}[|[|[|[|[|[|[|[|[[[[[[[[[[[[[[[<[[[[<[<<}<<<<<<<<:<:::::::4::4444454445555555////%~~~!~!~!~!~!~~!'''',,&@@@@@@@@////////////(_|[[[[[<[<<k///(www(///^45////,,,,~,~~!~~~~'''',,@@@@@@@> ", +" 000000c;;!;;;;;;;;;;;;;;;f;f;f;ffffffffffffgfgfggggggggggghghghgdghhhhhchdgdhhhdhdhdhdhdhdhdhdhddhddhdddddhdddhdhdddddddddddddddddddddjdddddddddpdddddpdpdpddpdddpppddddpdpppppppppppppppdodppppppvpvpvppvppvvvovo00000000=!]!]]],',,,!,!,'!'~'!''!'~'~~**{*&@@@@@@@$@>(///_2k222223}}}|[[|[|[|[|[|[|[|[|[}[[}[[[[[[[[[<[[<[<<<}<<<<<:<:<:::::::4:4:44444545555555n////~!~~!~~~~~!~!~~,'''',,+@@@@@@@>////////////$[[[[[<[<<<k////sss////^55////,~,~'~~~~~~!~''''',@@$>$@@> ", +" 000000c;;;;;;!;;;;;;;;;f;f;f;ff;f;ffffffffgefgfgfgfgggggghggghghghghghdhhhhhdchdhhhdhhdhdhcddhdhddgddhddhhddhdhdddhdddhddddddddhdddddddddddpdpddpdpdddddpddpppdpppdodpppppdpppdpppppppppppppppppopppvppppvvpvvppvppj0000000c=]]]]*]~',,,','~,,,'~'~'~,~~****+@@@@@@@@@+@+>^22222222222}3}||||[|[|[|[|[||[|[|[|[|[[[[[[[[[[[[[[[<<<}<:}<<:<<<::::::::4:44444544555555////.~,~~!!,~!~~!~!!'''',,*@$@@@@@@(///////////_|[[[[<[<<<k///////////^45///(~',,,,~~~~~~~,''',,@@@@@@+> ", +" 000000bl;;;;;;;;;;;;;;f;;f;f;ff;feffffefffgfgfggfgggggggggghghghgdghhdhdhddhhhdhdhdhhdddhhddhdhdcdddcdhdddddddddddddhdddhddddddddddddddddddddddpddddppdoddpdddpdpdpdpdddodppdopppppppppppopppppppppoppopvvpvppvvvvvvvj0000000)]]]]=]=~'!'~,,''~'~'~',~{*****.$@@@$@@@@@@@@$@$_2_222222222}3}||||||||||[||[|[|[|[|[|[|[}[[[[[[[<[[[<<[<<<<<<:<:<::::4::4:4444445455555n////&,~,~~~~!~!~~~~,'''',,#@@@$@@@>///////////^|[[[[[<[<<k///////////^55////,~~,~'~~~~~~~''''',@@@@@@@> ", +" 000000e!;;!;;;;;;;;;;;f;f;f;f;ff;ffffffgefffgfgeggggggggghgghgghghhhhdhhdgdhddgdhdhdhhdhdhddgdddhhdddhddhdhdcdhdddddddddddddhddddddddddddddpdpdddpdddddpddppdodpdpdpdoppddpppdppppppppppdpppppoppvpvvpppvpvvovvpppvvooa0000000l==]]*]]~,,'~'~,,,,,,!*~**{*~#@@@@@@@@@@@@@@@@@@$222222222222}3}|||||[||||||||||[|[|[|[|[[}[[[[[[[<[[<[<<}<<<<<<<::::::4::44444445455565_///>!~!~,~~~~~!~!~~''''',*@@>@@$@@>/////////(_[[[[[<[<<<k///////////^45////''~'~,~~!~~~~'''',,@@@@@@@> ", +" 000000c;;;;;;;;;;;;;;f;;;f;f;ffffffffffffgfgfgfggfggggggggggdghgdghcdhhdgdhdhhddhhdhddhddhdhdddhdddhdhdddhdddddddhddhddhddddddddddddddpddddddddjddddjdddpdpdpdddodpdppddpppdppppppppppodoppppopppvpppvpvpvppvppvvvvvvvvo0000000b-==]*=*]~'~',''~'~'~*******&$@@@@@@@@@@@@@@@@@@@>$221222221223}3}|||||||||||||||||[|[|[|[|[[[}[[[[[[[<[<<<<}:<:<<:<:::::4::4444445454554////&~!~!~,!~!~!~!~,''''',&@@@@@@@@//////////^|[[[<[<<<<k///////////_55////~'~',,~~~~!!~''''',@@@@$@@> ", +" 000000c;;;;;;;;;;;;;;;f;f;f;f;ff;ffefffffffgfgfgggggggggghghggghhgdhhdhdhdhdhdhdhdhdhhhdhhhddhddgdhddhdddhddhdhddddddddddddhdddddddddddddddddpddddpdddpddpppdpdppdpppddodppopppppppppppdppppppppvvvvvppvvvpvpvvvvvvvvpvvvj0000000b=*=]]]*]!,,,~,',~*{**~**~*#@@@@@@@@$>$@@@@@@@@@>@^$111212321223333|||||||||||||||||||[||[|[|[[[[[[[[[[[[[<<<<<<<:<::::::4::444444455555_////~!~,~~!~!~~~~~~,'''',,+@@@@@@@>////////(_[[[[[<[<<<k///////////^44///^,,,,~,~~~~~~~,''',,@@$>@@@> ", +" 000000bl;;;;;;;;;;;;;f;;f;f;fff;fffffffegffgfgfgfgggggggggghghhgdhdhhhhhhhhhhdhhhdhhdcddhdddhdhddddhddhdddhddhddhdhdhdhdddhddddhdddddddddddjddddddddpddpdpddpdodppdpdpppdpddpdpppppppppopppppoppppppppppppvpopvvvvpvvvvpvvvj0000000)===]=*]*!'!'~~*********~&@@@$@@$>)*&+@@@@@@@@@$@@@$121121213223}33||7|||||||||||||[|||[|[|[|[|[[[[[[<[<[<<}<<<<<<<:<::::4:4:44444455555////.~!~,!~~~!~!~~~!''''',-@@@@@@@@/////////$[[[[[<[<<<k///////////_55////'~'~',~~~~~~~''''',@@@@@@$> ", +" 000000l;;!;;;;;;;;;;;;;f;f;f;ff;ffffffffffgfgfgggggggggghgghghghghdhdhdhdhddhhdhdhdhhhdhdhddhddhdhddhdddhcddhdddddddddddddddddddddddddddddddddpdpdpddpddpdppdddpdppdodpdppppppppppppppdpppppppvvoppppvvovvpvpvppopvvvpvvvvooa0000000-==*]]=]~~'~~~*****~***&@@+>@@@@#,,,,&$>$@@@@@@@@>>>$1111211211233337|7|||||||||||||||||||[|[|}[[[[[[[[[[[<}<<<<<:<:<:::::4:44444445455n////*,~~,!,~!~!~!!~,'''',,#>$@@@@@@(uu(////^[[[[<[<<<<k///////////^45////!'!,!,~~!~~!~,''',,@@@@@@@> ", +" 000000c;;;;;;;;;;;;;f;f;f;f;fff;fffffffffgfgfeggfggggggghgghghgdddhhhhhdhhdgdhdhdhdhddhdhhdhddhcddhddhdhdddddddhdhddhdhddddddddddddddjhpddddpdpdddddpdpdpdpddpppdpdppdpdodpppppppppppopppppppppppvpoppppppvpvvpopvvvvvvvvpvvvo0000000b===*]=]=*~**{***~***&^^@@@$@@@+~'',,,,%>@@@@@@@@@@@>>11112112121233337|77|7||7|||||||||[||[|[|[|[}[[[[[<[<<[<<<<<<<:<:::::4:44444454555^///>~,~!~~~~!~~~~~!''''''~@@@@@$@@utxs////^[[[[[<<<<<n///////////^55///(~,~'~,~~!]~!~''''',@@@@@@@> ", +" 000000;;;;;;;;;;;;;f;;f;ff;f;ffffefffgfgfgfggfgggggggggghgghghhhhhdhdhhhhdcdhdhdhhdhdhdhddhdhdhdhddhddddhdhddhdddddddddddddddddddddddddphoddddddjddppdddodppppdppppdppdppppppppppdodpdpppppppvppppvpopvvvpvvvpvvvvvvvvvvvvvvvoo0000000%-===]=*-****~*****$//+@@@@@@@%,''',,,,*#$@@@@@@@@$@>@^$111131132123337|777|7|77||||||||||||||[||[[[[[[[[[<[<}<<<<<:<::::::4:44444454554////&~,~,,~!~~~~~!~,'''',,&@@@@@@@@ttu///(^}[[[<}}k<kk///////////^44////,'',,,~~~~~~~,''',,@$@@@@+> ", +" 000000e;;;;;;;;;;;;f;;f;;f;fffffffffffefffgfgfggggggggghggdggdhhdhhhdgddhdgddhhdhdchdhdhdhddhdddhddhddhddddhdddddcdhddddhdddddddddddddddddddjddpdddpddppddpddpppdpdppdodpppppppppppppppppodpoppvvppppvpppvvvpovvppvvpvvvvvvvvvvva000000a-==**=*-*m***~**$///>+@@@@@$+,'''''''',,=+@@$@@@@@@@@@@$$111121131233337|777|7|77|||||||||[|[|[[|[|[[[[[[[[<<<}<<<<:<:::::::4:444454455_///(~~!~~,~~!~!~~~~''''',,@@@@@@@@usu////^}}<[<^//////////////////////(~~,!'!~~~~~~~''''',@@@@@@@> ", +" 000000b;;;;;;;;;;;;;;;f;ff;f;f;fffffffgfgfgfgggfgggggggghggdghdhhdhdhddchhddhhdhdhdhdhdhddhddhdhddhdddhddhddddddhdhddddddddhddddddddddddddddddpdddddpdpdpdodpdpdpdodpdpdpppppppppppppopppdpopppvpppppppvvppopppvvvvpovvvvvvvvvvvyo0000000)=----m*-*****&////($@@$@@@@-'''''''''',,,&+>$@@@@@@$@>$>$111131111113333|7|77|7777|7|||||||||||[|[[[[[[[[[[[<<<<<<<<<::::::444444445555////#!,,~,~!~~~~~~!~'''',,&@@@@@$+@//////^}}[[<^/////////wxw(//////////','!,,~~~~~~~,'''',>$>$@@@> ", +" 000000l;;!;;;;;;;;ff;f;f;f;fffffffffffffgfgggfggggggghghgghgdhhhdgdgdgdhddgdhdhhhhdhdhdhdhdhddgddhddhddddhdhdhddddddhdddddddcddddddddddddpddddddpdpdddpdpdpdpdpdppdpdpppdpppppppppppdppppppvppppopvvvvppvvpvvvvvvpvpvpvvvvovvvvvvvj0000000&--*=*-*&**&^/////@@@@@@@+#,''''''''''''',,%@@@@@@@@@@@@>>$1111313112133877777|7|77|7||||||||[||[||[|[[[[[[[[<[<<<<<<:<::::::4444444455n////*~~,~,~!~~!!~~~,''''',#@@@@@@@>/////^k}}[<^/////////www(//////////,,,~''~!~~~~~''''''@@@@@@$> ", +" 000000c;;;;;;;;;;f;;;;f;f;ff;ffefffffegfgfgfgegggggggggghghgdhhdhddhddhdghdhdhhdhdhdhdhdcdhdhdddhddhdddhdhdddddddddddddddddddddddhjddddddddpddpdddddppddpdpdppdppdpdpppdpppppppppppppvdoppppppopppvvpppopvvvppvpvvypvvvvvvvvovvvvvvoa000000b-&&-&*&*&$(/////^@@@@@@@@*'''''!,'''''''',,~#@@@@@@@@@@$@>>$11111318111333377777|77777|7|||||||[|[|[[[[[[[[[[<[<<<<<:<:::::::4:44445445^///@,~,~,~!~!~~~!!!'''',,*@@@@@@+@(////^2}k[<^////////(www(/////////(,,'!,!~~~~~~~,'''',+@@@@@@> ", +" 00000b;;;;;;;;;;;;;ff;ff;ff;ffffffeffgffggfeggggggggggdgghdhhhdgdhgdhhhdddhdhddhhdhdhdhdhdddhddhddhdhddddddddchdhdddddhdddddddddpddddddjddddpddpdoddpdpppdpdodpdpdodpdopppppppppppoppppdppppopppvppvpopvpvppvypvvpvvpypvyvvvvvvvvyvyo0000000)*&*-*&#>@>////2++@@$@@$%,''',,!~!,'''''''',,*$@@@@@@@@@@@$>@$11111131318333777777|7|77||7|||||||||[|[[[[[<[[<<[<<<<<:<::::::4444444545n////&!,~,,~~~~~~~~~,'''',,#@@@@@@@@////^kkk}<^/////////tst///////////,~'~',~~~~~~~''''',@@@@@@@> ", +" 000000e;;;;;;;;;;;f;;f;;f;fffffffffgfffgffgggggggggghgggggdgdhhdcddhhdhhdgdhdgdhdhdhdhdddgdhddhddhdddddhdchdhdddddddhddddddddddddddddddddpdjdddddddpddppdpdpddpdodpdppdpppppppdppppdpppppopvppppvpvppvpvpopyppvpvvpvvvvvvvvvvvvvvyvvvva0000a0a&--&&@@>>@>/2[$@@@@@@@+,'''''!~!!!,,'''''''',,-@$@@@@@@@@@@@>$$111111111133337|7777|777|7|7|||||[|||[|[[[[[[[[[<[<<<<:<::::::::44444555_///(!~,~!,!~~!~~~~!,'''',,$>$@@@$@>///^22kk<^///////////////////////'',,,!~~~~~~~,''',,@$@@@@@> ", +" 000000c;;;;;;;;;;f;;f;f;ffff;fffffffffgfgggfgfggggggggghhhdgdhdgdhhhdhhdhddhdhddhcdhdhdhdddddhddhdddhdhddhddddhdhddhdddddddhddddddddddddddddddddjdpdpdppddpdpppdpdpdpdodppppppppodppppodppvpvppvpvpvvpvppvvpppypovvvvvpvvvvvvvvvvvvvvvvy0000000)-&#+@>@>>$3}3@@@$>)@@-,'''',~,~~~!!,'''''''''',%@@$>@@@@@@@@@>$$11181811183333777777|77|7||||||||[|[|[|[[[[[<[<<[<<<<:<::::4:4444444554////#,~,~,!!~~~!!~~!''''',-@@@@@@@@^//^kkkkk^///////////////////////,,,,'!~~~~~~~''''',@>@@@$@> ", +" 000000l;;;;;;;;f;;f;f;f;f;fffffffffgffgfgfggggggggghghggghdhdhdhhdhhchdhdgdhhdhhddhdhddhdhdhcdhddhdhddhdddhddddddddddddddddddddddddddddpdddpdpddpdpdpdpdodpdpdppdpdodpdpppppdppppppopdpvvpppvpvpvdoppvppvvpvopvvvvvvvovvvvvvvvvyvyvyvovvj0000000)+++$@>$833|$+@@@$@@#''''',!~!!!!!~!~,''''''''',~#@$@@@@@@@@@@@@$11118181118833377777777|777|||||||||[[|[[[}[[[[<[<<<<:<::::::4:4445445n////*~,~!!!~!!~~~~~,''',,,+@@@@@@@>//^22kkk^///////////////////////'~'!,,~~~~~~~''''',@$@@@@@> ", +" 000000c;;;;;;;;;;f;;f;ff;fffffffeffffgfgfggfgggggggggghgdddgdhhdgdhhdhdhhdhdhdhhdhdhddgdddgdddddhddddddcdddddhddddhddddddhdddddpddddddjddppdddddddpddppdddppdpdpdodpppppppppppppppppppppppoppvvppvppvpvvvvpyppypvpypvpvvvovvyvyvvvvvvvyvvva000000b...+$133388@@@@@@@@*,''''!~,~!~!~~!~~!,'''''''''']#@@$@@$>$@@@@@@$11111811118333777|7|77|7|7||||||[||[|[[[[[[<[<[<<<<<<::::::4:44444445^///+,,,,~,~~~~~~~~!''''',*@@@@@@@@(/^k2kkk^///////////////////////',,,'!~~~~~~~''''',@@@@@@@> ", +" 000000l;;;;;;;;;;;f;f;f;ff;fffffffegffgefgfggggggghghggdghhdgdhdhdhdgdhdhdhdhdhddgdhdddhddddhdhddhdhdhddhdhdddddhddddddddddddddddddddddddddpdppdpdpdppdppddoppdpddpdppppppppdoppppppppppppdvppopvvpvppvppyppyppvvppyvvvvvvvvvvvvvyvyvvyvyoo000000b)++&893393.)$@+@@@%'''''!,~!~!!!!!!!!~!!,''''''''',-+@@@@@@@@@@@@@@$111813181183337777777|7|77||||||||}||[[[}[[[[<[<<:<<<:::::44:445455n////&~,~,!,~~~!!~~~,'''',,#>$@@@@@@/^2n2kk^//////////////////////^,,',,,~~~~~~~,'''',@@@@@@@> ", +" 000000b;;;;;;;;f;f;f;f;ffffffffffffgfggfggggggggggggghgdhdhdhdhhhdgdddgdhdgddhdhdhddhdhdhdgdddhddhdddddhdddddhdhddddddddddddddddddjdddpdddpdddddpdddpdpddppddppdodppppdpppppppdppopppppopvvvpppppvpvvvvopvppvpvypypvpyvvpvvvvvvvvvvyvvvvyvvoa000000b$8888933&..+@@@$@!,''''~!,~,~~~!!~!!!!!~,,'''','''',&+@@@@@$>$@@@@@$$111181811883337777777|7|7|||||[|[[[|[[[[[<[<<<<<<:<::::::4:4444455_///>~,~,!,!!~~~~~~~''''''!+@>$@@@@>^22nkk^///////////////////////'~'~',~~~~~~~''''',@@@@$@@> ", +" 00000a;;;;;;;;f;;f;fff;f;ffeffeffffffgfgfggfggggggghghghhhhdhhdhhddgddhdhddcdgdhdhdhddhdddhdhddhddddhdddddhdddddddddddcddddddddddddddddppdddpdpddppdppdpppdpdpdpdppdppppppdppppppdpdopppvpvdopvpvpvpvppvppypypvpppvvvpovvovypyvvyvvvvyvvyvyvo0000000888&8988$.##+@@@-''''',~~!~!,,~~!!!~!~!!~!,''''''''''~&@@@@@@@>$@@@@@$$$1181811188333777777|77|7|||||||[|[[[[[[[[[<[<<<:<<:::::444444454////%~,!,!,~~~~~~~~!'''',,&@@@@@@@>^_2k_k^//////////////////////(,',',,~~~~~~~,''',,$@@@@@@> ", +" 000000b;;;;;;;f;;f;f;f;ffffffffffgfggfggggggggggggdgghdddhdgdhdhhdgdhdhdhhhhdhdddhdhdhddhdddhddhddhcdddhdddddhdddddhdddddhddddddddddddddddpdjhpdppddpdjddppdododpdpdodppppodppoppododppppvpvpppvpvvppovvpyppvpypypypypvpvvvvvvyvvvvyvvyvyvyvvva000000)8888m8##..$#+@.,'''',!!,~,~~~,!~~~!!!!~!~~!,''''''''',~#@@@@@@@@@@@@@$$1$118181118333377777|7|||||||||[|[|[[[[[<[<[<<<<:::::::::4444445_////~!~,~,!~~~~~~~~,''''',+@@@@$@@>k_kkk////////////////////////,,~',,~~~~]~~''''',@@@@@$@> ", +" 000000l;;;;;f;;f;f;f;ff;fffffffffgffgfgfgfggggggggghgghghhdhdgdhdhdhhdhhddhhdhdhdhdddgddchddhdddhddhdhddhdhddddddddddddddddddjdddddddpdjddddpddpddppdddpppdpdddppppppppppdppppdpdpppvppvpoppvppvpvvppppvpvvpypppvvpvvvvvvvvpyvvvyvvyvvvyvvyvyyo000000a88m88&#.#)#..@*''''',~~!~!!,~~!,,~~~!!!~!!~~!,'''''','',=$@@@@>$@@@@@@@@$11111818118333777777777|||||||||[|[[[[[[<[<<<<<<<::::4:44444555^///+,!,,!,!!~~~~~!!'''',,*@@@@@@@@(////////////////////////////'',~',~~~~~~~,''',,@@@@@@@> ", +" 000000a;;;;;;;;f;f;ff;ffffffffffgefgfgegfgggggggghghgddddhdhdhdhhhhdhdgddhhdhhhdcdhdhdddhddhdddhddddddddhddddhddhddddddddddddddddddddpddddpdpdppdpdppdpddpdpdpppdpdpdpppppppppppvpppppodvdpvppopvpvpovvpopvvppvypypypvvyvvvvvvvvvvvvvvyvvyvyvyvva000000)3m8&###$#.#.#,''''!~,!~,~~~,,~~~!,~,~!!!~!!!!!,''''''''''-+@$@@>@@@@@@@@$$1118118181833377777|77||||[|[|[|[}[[[[[[<[<<<:<::::4:44444n44n////-,~,!,!~~~~~~~~,'''',,#@@@@@@@@////////////////////////////,,',,,~~~~~~~''''',@@@@@@@> ", +" 000000e;;;;;f;;f;;f;f;ff;ffffeffgffgfgggggggggggggggdgdgdhhhhhdgdchdhddhhdhddhddgdddhdhdddhdhddhdhdhdhddddhdddddddddddhddddddddddddpdddpddddpddpdppdpddoddodpppdodoppppppppopppppppppppvpvpopppvpvpvppypvvvvopvpvpvvvvvpyvvyvyvvvyvvyvyyvvvyvvyoo000000a3888%####+##=''''',~~,~!!,~!~~***~!~!!~!!~!~~~!,''''''''',,%@@$@@$>$@@@@@@$$11118118118333|77|7|77|||||||[|[[[[[[<[<<<<<:<:::::::4:_/_55_///>'~,~,,,~~~~~~~]'''',,*$>$@@@@@(///////////////////////////,'~'',~~]~~~~,'''',>$@@@@@> ", +" 000000b;;;;f;;f;f;ff;ffffffffffgffgfgfgfgggggggdgdgddhdhdhhdhdhddhdhhdhhdhdhhdhddddhhddhdhddddhddddhddddhddddhddddhdddddddddpddddddjhpdpddddpdppddpdpppddpddppdpdpdpdpppdppdppppppvppoppvpppppvpvpvvppvvpvvpvvvpyvvypvovvvvvvvyvvvvyvvyvvvyvyvyvyoa000000)3&######.#&*!'''!~,!~,~~,~!!~****~~~~,~!~!!!~!~!,''''''''''!#@@@@@@@@@@@@@@$$11181181183333777|7|7|||||[|[|[[[[[[[[<<<<<<::::4::_////n54////%,,~,!,~!~~!~~~,''''',%@@@@@@$@///////////////////////////,',!,'~~~~~~~''''''@@@@@$@> ", +" 000000g;;;;;f;;f;f;fff;fffffffffgfgfgggggggggggggggdgdgdgdhchdgdhhdhchdhdhhdhdhhdgdddhdhdhdhdhdddddddhdddddddddddddddddddddddddddpdpdddpdpdddpdpdppdpdpppdpppdpppppppppppppppppppppppppvpvpvpvpopppvvvvvvvvvvpypvpvvvvvvvvvvyvvvyvvvyvyvvyvvvyvvyyo00000003###%###.#]]]'',,~~,~!,~,~~~***~**~~~!~!!~!~!~!~!~,''''''''''*#@@@>$@@@@@@@@$$$1181181118333777|77||||||[|[|[[[[[<[<[<<<:<<:::n///////45_////~'~,,!,~~~~!~~~,'''',,+>$@@@@@>//////////////////////////~,,',,~~~~~~~,'''',@@@@@@@> ", +" 000000a;;;f;f;f;f;ff;ffffeffefgfgfggfgfgggggggghggdgdhdhddgdhdhdgddgdddhhdddhdhdddddhdhddhddddhdhdddhddddhddddddddcdddhddddpddddddddddpddddpdpdpddoddppddpppdpdodpdppppppppoppopppppoppvppppppvvpvovpvpvvvvvvvpvvvypvvvyvvyvvvvvvvvvyvvvyvyvvyvyvyyya000000)########-!]]]'!~,!~!~~~,~,~*******~*~~!~!!~!~!~!!~!,'''''''',,=+@@@@@@@@@@@@@$$1118118111833377|77|||||||[|[}[[[[[<[<<<<:<:k/////////n45////.~'~'!,~~~~~~~~!''''',=@@@@@@@@//////////////////////////''~','~~~~~~~''''',@@$>@@@> ", +" 000000e;;;;f;;f;ff;f;fffffffffffgfgfgggggggggggghgdhhhhhhddgdgddgdddhhddgdgdddhhdhdhddcddhdhddcdhdcddhddddddddddddddddddddddddphjddppddpdddpdpdppddpddodppppppdpppppppppppdppdpppppppvppopypvppvpppovpvpvpvvvvpypvvvvyvvvvvvvyvyvvyvyvvyvvyvyvvyvvyyo0000000.#%#%##%]]]]]~,~~,~!,~,~~~**{~*~****~~~~!~!~!!~!~!~!!''''''''',,&@@$>$@@@@@@@@@$$1111318111333377|7|||||||[|[[[[[[[<[<<<<k^///////////45n////=!,~,,,~~~!~]!~,'''',,#@@@@@@@@/////////////////////////,,',,,~~~~~~~,''',,@@@$@@+> ", +" 000000e;f;f;;f;ff;fffffffffffggfgfggegfgggggdghggdhhdhdhdhhdddhddhhhdhhddcdhhdddhdddgddhdddddhddddddhdddhdhcddhddddddddddpdddddpddpdddddjdpdpdpdppdpppddpdjddpdodpppppdodopppppppopvpppvppppopvpvpvpvypypvpvvypvvypyvpyvvyvvvvvvvvyvvyvvvyvvyvyyyvyyoa000000)$#####-*]]~]*~,!~,~~!~,~~******~*{***~~~!~!~!~!!~!~~~,''''''''''!%@@@@@@@@@@@@@@$11$118181133333777|||||[|[|[[[[<[<[<<<k///////tu////_54_///>,,,!,'!~~~~~~~~'''',,*@@@@$@@@(////////////////////////',,,'!~~~~~~~''''',@@@@@@@> ", +" 000000c;;;;f;f;f;f;ffeffffffffegfgfggggggggggghghgdgdghdgdhdghhdgdhdhdhhhdddhdchddgdddddhdhdhdddhdhddddcdddddddddddddddddddddddddddddpdddddpdphoddppddodpddddopdppppppppppppppppppdppopppppppvvpvvvvpppvvpyvpppypvvpvvpvvvvvyvyvyvvyvyvyvyvyvyvvyyvyyyj000000b.##%#-==]]]]=~~,~!,~,~~~*****{*****~***~~!~!~!~!!~,~!~~,''''''''',~#@@$@@@@@@@@@@@$1111111$1123333|7|||||[||[[[[[[[<[<<<_////uxww/////n5n////&~'!,!,~~!~~~~~!'''',,&@@@@@@@@////////////////////////,,,,,,~~~~~~~'''',,@@@@@@@> ", +" 000000ef;f;;f;ff;fffffffeffgfgfgfggfgggggggggghgddhdhddhdhhddhdhddhhdhddhhhdhdhddhddhdhddddhddhddddddhdddhddddddhdddddddjdddddjddpddjddpdpddppdpdpdpppdpdodppdppppppppppppppppppopvppvpvpopvvpppopypvopypvpvypvvpypyvyvyvvypvvvvvyvyvvvyvyvvyvyvyvvyyoya000000+####====]*==*~!!~~,~,~**~*~*&@&~~**~~**~*~~!!~!~~!!~!!~!,'''''''','*+@@@$>@@@@@@@@$$111$//11823333|7|||||[|[|[[[[[<[<<<k////uwwwt////^55_///(~,!,,'!~~~~~~~~,'''',,@@@@@@@@>///////////////////////,'~',,~~*~~~~''''',@@@@@$@> ", +" 000000a;;;f;f;f;fff;ffffffffgfffgggfgggggggdghgghhhhhhdghdhhhhhdhhdhhdhhddhdhdddgddddhdhdhdddhddhddhdddddddddddddddddddddhddddddddpdddddpdpdpdpppdppdpdppdpdppppdppdodpppppppopppdvvppppppvpvpvvppppyvpvppyppypyvovpypvvyvvvyvvyvvyvvyvyvvyvyvyvyyvyvyyoa000000b.##--===]=**=*~,!,~~~~******^/^.q~****~*~~~~!~!!!~!~!~!~!,,''''''''',-$@@@@@@@@@@@@@$^////^111113333||||||[|[[[[[[[[<<<<_////xwx(/////n55////#~',!!,~!~~~~~~!'''',,&@@@@@@@@///////////////////////'','',~~~~~~~,''',,@$@@@@@> ", +" 000000cf;f;f;f;ff;ffffffffgfgfggfgggggggggggghgdhdhdhdhddgdhddhdhdhdhhdhdhdhddgdddhhdhddddhdhdddddhdddhddddddddddddddddpddddddddpdddpddpddppdpdddodpdpppdpdppdodppppdppodpppdpppopvppvpopvpvpvvvvvvppvypypvpyppypvvvpvvvvvvvyvvyvyvvvyvyvyvvvyvyvyyvyvyyy000000b.##========*=*~!~~,~~*~****$/////&**~*~***~~~~~!~!~!~!!~~!!,''''',''''!%@@$>$@@@@@@@@@>////11312123333|||||||[[[[<[[[<<<<^///(s////////45n////*!,,,,,~~~~~~~~,''''',#@@$@@$@>//////////////////////,,'~'!~~~~~~~,'''',@>@@@@@> ", +" 000000e;;;f;f;ffffffffffffgfgfgefgfggggggghggghgdgdhhhhhdhdgdhchhdhdhdhdhddgddddhddhddhdhdddddhddddddddhddddhddddddddddddddddddpdpddddddpdddodppddpdpdppdodpppppppppppppppppvppppoppppppvpvpvpypppyvpvppvpyppypvvvvyvvyvyvvvvvvvvyvvyvvvvyvyvyvyvyvyyyyooa000000).*==-==-=*=*=*,~,~~*****~&///////^&***~~~***~~~~,~~~!~!!~~~~,''''''''',~#@@@@@@@@@@@@@@(//^11113112333|||[|[|[[[[<[<[<<<k/////////////_55^///@'!'!,,!!~~~~~~~'''',,*@>@@@@+@(/////////////////////,,',',~~*~~~~''''',@$@@@@@> ", +" 000000a;f;f;fff;ffffffeffgfgfgfggggggggggggghhgddhdhhdhdhhchdhdhddgdhdhdhdhdddhdddhdddhdddhddhdddhddhdddddddddddddddddddddddjddpddddpdpdpdpdpdpddppdpppdppdppdpppppppppppppopppoppppopvpyppvpvpppyppvvvvypvpvvpyvyvpvyvvvvvvvvyyvyvyvyvyvyvvyvvyvyvyvvvyyyj000000)%]]===-=-*=*=*~!~,~*~r~**@/////////>m~**~~~~~~~~~,~,~~!!!!!~~!,''''''''''*.@@$>@@@@@@@@@>//^18112312233}||||[|[[[[[[<[<<<^/////////////n54////&!,'!'!~~~~~~~~,'''',,&@@@@@@@@/////////////////////',,,'!~~~~~~~''''',@@@@@$@> ", +" 00000ac;f;f;f;ff;ffffffffgfgfgfgfggggggghghggdgdgdgdhhdgddgddgdhddhdhhdcdhdhddgdhcdhddhdhddcdhdddhdddhddddhdddddhddddddddddddpdddpddpddppdpdpdjppdppddppdpppppppppdopppppppdpppppvpppvpppvpvpopyppvpypvpvpypyyppvvvvvvvyvvyvyyvvyvyvyvyvyvyyyyvyvyyyvyyvyyo0000000*]!]=-*-==*=*=*,~~******&////n///////$*~*~**~*~~~~~~!~!~~~~!~~~!,''''''''',-+@@$@@@@@@@@@+>/111111821223}3}|[|[[[[[[[<<<<k/////////////^55_///(!,!,,,,~~~~~~~~,''',,!$@@@@@@@>////////////////////,','',~~~~~~~,'''',@@@@@@@> ", +" 000b00l;f;f;fffffffffffgfefggggggggggggggdghgdhdhddhcdgddhddhddhhhdhddhdhddhdddddddhddddddhdddddddddhddddddddddddddddjdddddddddpdddpddpdpdpdpdddppdododppopppppppppppppopppppoppvpppvpvpyppoppvpypyppypypvvpvpypyvvovvyvvvvvvyvvvvvvvvvvvvvvyyvyvyvyvvyyyyya000000-]=!*=-=&=*=*=*~~~***~**^///_66n///////#*~~*~*~*~~~~~~!!!!!!!~!~~,'''''''''',-@@@@$@@@$@@@@@>111121131213}3}||[|[[[<[[<<<:_/////////////nn/////#,,,,!'~~~~~~~~!''''',-@@@@@@@@////////////////////,',,',~~~*~~~''''',@@@@@@@> ", +" 000000a;f;ff;f;ffffffgfffggfgffgfgggggghggghghhhhdgdhhddhhdgdhdhdhhdhhdhddgdddgdhdhdhdhdhddddhddhdhddddddddddhdddddddddddddddpddddjddpdpdppdpdppdpddpdpddpdppppppppppppdpppopppvppvvpvppppvvpypppypvpvppvpvypypyvpvvyvvvvvvyvyvyvyyyvyyvyyyyyvvyvyyvyvyyvoyyj000000c]]]*=-=--=*=***~*~****#////66666_//////^&*~*~~~~~~~~~!~!~!~!~!~!~~,''''''''',!%$>@@@@@@@$@@@>$11121131222322/2[[[[[[<[<<<</////////////////////*'!',,,~~~~~~~~,''',,,$@$@@@@@>///////////////////',,,',~~~~~~~,''',,$>$@@@@> ", +" 000000eff;f;ffffffffeffgfffgggggggggggggghghgdhdhhdhdhdgddgddgdhdhdhddgddhddgddddhdddddhddhddddhddddhddddddhdddddddddddddjddpdddddddppphjdpddppdpdppdpdopppppppppppppopppppppppvppppopvvpyppvvvypvyvypyypypvpypvvypypvyvvypvvvvyvvvyvvyvvyvyyyvyvvyyvyvyyyyoy0000000*]]=*-*-=-*==******~*&^///n6666666_//////^-~*~*~~~~~~~~!~!!~!!~~~~~!,'''''''''']#@@@@@@@@@@@@@$$1111212122///^}[[[[[<[<<<<k////////////////////@,!,,',!~~~~~~]~''''',*@>@@$@@@(//////////////////,'',,'*~~~~*~''''''@@@@@$@> ", +" 0000000lf;ff;fffffffffgffgggfgfggggggghghghghhdgdhdgdhhdgddhddhdhdcdhddhddddddhdhddhdhdddhddhdddddhdddddddddddddddddddddddddpdjdpdddphpppddpppdpdppdodpdppdppppppdoppdpppppppvppopyvvvyyyvyyyyyyyyyyyyyyyyyyyyyvyyvvvvvyvvvyvyvyvvyvyvyvyyvyvvyyyyyvyyyvyyvyyoa000000l]=**-*-=-==********~@///^666666666n^//////@**~~*~~~~~~~~!~!~~!!~!~~~~,''''''',,,*$@@@@@@>$@@>@>$$111121^/////$}[[[[[[<[<<<^////////////////////-',,,,,~~~~~~~~,'''',,#$@@@@@@@//////////////////','',,~~*~~~~,''',,@@@@@@@> ", +" 000000ae;ffffffffffffgfggffggfggggggggghgghgdhdhdgddhhdhdhdhhhdhdhdhdhddgdhdhddhddhdddhddhddddhddddddddhdddddddddddddddddddddddddpdpppdpdppddpdodpdpddppppppppppppppopppppovovyyyyyyyvvyyyvyvyvyyyvypyvvyvyvvyyyvyyyyyyvyvvyvyvyyvyvyvyvyvyvyvvyvyvyyyyyvyyyyyo000000)**=*=--*-*=*-&***~*&////n66666666666n///////$*~~~~~~~~~~~!~!~~!~!~!!!!!,''''''''',&+@@@$@@@@@@@>@$111^////////2}}[<[<<[<<<k///////(u///////////(~,,','!~~~~~!~~''''''!@@@@$@@@>/////////////////,,,','~~~~~~~''''',@@@@@@@> ", +" 00000acf;f;fe;ffffegffefgfgegggggggghghghggdhhhhddgdhdgdhhddhhdhhddgdhdddhddhddhdddhdcdddddhdddddddddddddddddddddddddddddpdppdddpdddpdpdpddpdpdpdodppppdpppdpppppppppvvovyvyvyvyvvyvyyvyvyvyyyvvyvyyyyyyyyyyyvyvyyyvyyyyyyyyyvyvvvvvvvyvyvyvyyyvvyvvyvyvyvvyyyo000000a===**-*---=**&*9***(///_66666666666666n//////^#**~~~~~~~~~~,~~!~!~~!~~~!,''''''''',,&@@@>$@@@@@@>>@^//////////^2}}}[[[<<<:<_////(tww////////////#',!,,'~~~~~~~~~'''',,&@@@@@@@@/////////////////''',',~~~*~~~,''',,@@@@@@@> ", +" 000000effff;ffffefffffggfgggfgggggggghggdgdgddhdgdhdgddhdgdhdhhdhdhddhdhddhdcdddhdhddddhddddddhddhdcdddhddddddddjddddddpddpdddpddpdpdppddpodppdpddpdodpppppppppppopyyvyyvyvyvyvyyyvyyyyvyyyypyyyyvyvyyyyyyyyyvyyyvyyyyvyyvyyyyyyyyyyvvyvyvyvvvyyvyvzvyyyvyyvyyya000000-**=*=-*-*-***&***$////66666666666666666_//////>&~*~~~~~~~~~~,~~!~!~!!~~~~,''''''',',!#@@@@@@$@@$@@@@(////////^22k}k[<<<<<<<////uwwwx////////////~,,,,,,~~~~~~~~,''''',+@@@@@@@>////////////////,,',,,~*~~~~~''''',@@$>$@+> ", +" 000000aff;fffffffgffgfgfgfgfgggggggghgghgggdhdgdhdhhdhdhdddhhdhdhdhdhddhddgddhhddddhdhddhddhdcddddddddddddddddddddddphoddpdddpddpdpdpddodpdpdpdppodpdppppppppdopyyvvyvyvyyyvyyyyvyvyvyvyyyvyyvyyvyyyyyvyyvyvvyyvyyyyyvyyvyyyvvyvyyvyyyyvyvvyyyyyvyyvyyvyyvyyvyyyj000000e==***-=-=-*&*&***////n6666666666666666665^//////>=*~~~~~~~~~~~~~!~!~~!!~!~~,''''''''''*#>$@@@@@@@@@@@>////////^22kk}k[[<<k_/////xwws////////////+'',,',!~~~~~~~!'''',,*@@@@@@@@(///////////////''''''~~~*~~~,''',,@@@@@@@> ", +" 000000ae;ffffffffffgfgfggggggggggghghghgdddhhhdhhdhdhhhdgdhdhdhdhdhdhdhdhddddddhdhddddhdddhddddhdhddddddddddddddddddddddddpddddpdppdpdpdpdpppdpddpdoppdppppovyvvvyyvyyvyvyvyvyvyvyyvyvyvyvyvyyvyyyvvvyypyyyyyyyvyyyvyvyyyyyyyyyyyyyyyyyyyzvyvvvyvyyvyyyvyyvyyvyyy000000)*=*=*=&=&--***&*$////666666666666666666666n^//////$*~~~~~~~~~~,~~~!~~~!~!!~~!,'''''''','-+@@@@@@$@@@@+@>///////_22kk}k<<_////////t(//////////////-,,,,,'~~~~~~~~,'''',,#@$>$@@@@///////////////,',,',~~~~~*~''''',@@@@@@$> ", +" 000000cff;ffffffgffgfgfgfggggggghgggghgggghddgdhhhdgdhddhdhdgdhdhdhddhddhddhhdddddhdhddddddddhdddddddddddcddddddddddpddjdddpdjhpdppdpdpdpdpdppppdpddppppvoypyvyyvyyvyyvyyvyvyvyyvyvyvyyvyvyyyvyyvyyyvyvyvyyvyvyyyvyyyyyyyvyyyyyvyyvyyyyyyyyvzyyvvzvyyvyyyyyvyyyyoa000000**==**=*-*&&*&*&(///n66666666666666666666666n///////#*~~~~~~~~~!~~!!!!~~~~!!~!!'''''''''',&@@@@@@@@@@@@@@(//////2222kk2//////////////////////////>!'!',,!~]~~~~~~'''',,~@@@@@@@@.#%&-%-==,',',','',,,~~~~~~~,''',,@@@@@@@> ", +" 000000g;ffffffeffgfgfggfgggggggggghghgdgdddgddhdhhdddhcdhhhddhdhdhdhddhddhddddhdhdddddhddhddhddddddddddddddddddddddddddddpddddpdpdpdpddpppdpdppdodpppoyyvvyyvyvvyvyvypyyvyyvyvyvyyvyvyvyvyvyyvyvyyvyyyyyyyyyoyyyyyyyoyyyyyvyyyyyyyyvyyyyyvzvyvyzvyvzvyyvyyvyyyyyya000000&**=**---&*&**&+>//_66666666666666666666666666_//////(&~~~~~~~~~~~~~~!!~~~~~~~~~,'''''''','!%@@@@@$@@@@@@@@(////^kk22kk///////////////////////////%,,,,,'~~~~~~~~!''''',&@@@@@@@+##%-&%-=*',''',','',~~*~~~~''''',@@@@@@@> ", +" 000000affffffffffegfgfgfggggggggghghgghghghdhhhdhchhhhdhdhdhdhdcdhddhdhdhdhhdhddddhdhdddddhdddddddddhddddddddddddddjpddpphpddpdpdpdpddppdppdppdpdppppyppyvyvyvyvyypyyyyvvvyvvyvyyyvyvyyyvyvyvyvyyvyyyvyyyvovyyyoyyvoyyvoyyoyoyvyyyyyyyyyyyyyyyyyyyyyvyvyvyyyyvyyyyj000000e==*=**&*---&=%>>//66666666666666666666666666665_//////>&~~~~~!~~~!~!~~!~~!~!~~!~~,'''''''',,*#@@@@@@@@$@@@@>(///_k_k22_///////////////////////////*',',,,~~~~~~~~,''',,,+@@$@@@@+%%%--&==!'',,',''',~~~*~~~,'''',>$@@@@@> ", +" 000000bffefffffgfgfgggggggggggghggghgdghddhhdhhhdhdhddhhdhhdhdhdhdhdcddhddddddhdhddcdddhdddddhdddddddddddddddddddddddddddjddpdpddpdjdppdpdppjdpppoyyyvyyvvyvyvyyvyyvvvyyyvyyyvyvvyyvyvvyyyyyvyyvyyyyovyyoyyyyvyvyoyyyyyyoyyyyyyvyyyyvyyyyyyyyyyyyyyyyyyyvyyyyyvyyyy000000)*=*=**-&*&*&*>@>(n666666666666666666666666666666n^//////.*~~!~~~,~~!~!!~!~!~!~!~~~!,''''''''',*+@@@$>@@@@@@@@>//(2k2n2k///////////////////////////>!,,',,!~*~~*~~!''''',*>@@@@$@@##%-%--==,'''',,'',~~~~~~~''''''@@@@@$@> ", +" 00000adfffffegfffffgfgfggggggggghghghghgdhdgddgdhdgdgdhdhdhhdhddgdddgdhdhdhdhdddhdddddddddhddddddddddddddddddjdddddddppdddddpddpdpddpdpppdpddppvyvvpyvvyvyvyvvvyvvyyvyvvyvvvyvyyvyvyvyvyvvvvyvyoyypyyyvoyvyvoyyoyyyyyovovyoyyoyyyyvyyyyvyvyyyyyyyyyyyyyzyyvyyyyyyyoa000000*=*=*=*--&*&#>@>(666666666666666666666666666666666n///////#~~~~~~~!~!~!~~~~~~~~!!~~!!'''''''',,,&+@@@@@@@@@$@@@>/^_2k2k_///////////////////////////&'!',,,~~~~~~~~,''',,,#@@@@@@@+#%%-%--=~,',''',',~~~*~~~,'''',@@@@@@@> ", +" 000000effffffffggfggfgggggggghghghghgdgdhhdhdgddgddddhdgdhddhdgdddhddddhdddddhdddhddhdhdddddhddhddhddddddddddhdpddddpddddpdpddppdpppdppdppdppypypyyvyvyvyvvyyvyvyvvyvyyyvyyvyvyvvyvyvyvyyyyvyyvyoyyyyoyyyyoyyoyoyovoyyyyyyyoyoyoyyyyoyyyyyyyoyyyyyyvyyvvyyyyyvyyyyyj000000&=*==-*&=--&@>>@n56666666666666666666666666666666666n//////(%~~!~~~~!~!~!!~!~!~~!~~~~~,''''''''',,&@@@@@$@@@@@@@@^2_2_kk^///////////////////////////,,',,,!~~~~~~~~''''',~@@@@@@@@.#%&%&-==~,,,,,!,!~~~~~*~''''',@@@@@@@> ", +" 000000aeffeffgfgfggfggeggggggggggghggdghhdhhdhdhdddgdhddhdcdhddddddhddhdhdhdhddhddhddddddddddddddddddddddddddddddpdddpdpdddpdpddppddppdpdpppyvyvyypypypyvyvvvvyvyvyyvyvyvvyvvyvvyyvyvyvyyvyoyovyyvyopyypyvoyvyyyyyyyyyoyoovoyyyyoyoyoyyyyoyyyyyyyoyyyyyyyyyyyyvyyyyyj000000e****&*-&=&#@@>$n5666666666666666666666666666666666665_//////>&!~~!~!~!~~!~!~~!~~~~~~!~~,''''''',,,~#@@@@@@@@@@@@@@_22_k2///////////////////////////.,!',,'~~~~~~~~!'''',,&@@@@@@@@##%%%%&&=~~~~~~~~~~~~~~~,''',,$>$@@@@> ", +" 0000000ffffgffgfgfggggdghdgdhddhdhddhhddhhhdgdhhdgddhdgdhdhdhdhdgdhddhddddhddhdddhdddhddhdddddddddddddddddddddpddddjhpdddpdpdppdpdppdpdppooyypypypypyyvyvyyyyvyvyvvvyvvyvyvyyvyvvyvyvyyvyyvyvyyvoypyoyooyyyoyyovooooyyoyyyyyooyyyyyyyoyoyyyyoyyoyyyoyyyyyyyyyyyyyyyyy000000b==**-*&*&&++>>k:n6666666666666666666666666666665666666n_//////@*~!~~,~~,~!~!~~!~!~~~~~~~!,'''''''',,*.@@@@@@$@$@@@@$_2_k_///////////////////////////~,,',,,~~~~~~~~,''',,,+@@$@@+@$##&#&%&&*~~~~~~~*~*~~~~''''',@@@@@$@> ", +" 00000ajffffffgfgfgfgghhdgdhdgdgdgdghhhdgdhddhhdhdhhhdddhdhdhdhdddddhdhdhddhddddddddddddddddddddddddddddddddddddddpddpddpdpdppdpdpddppdppyvpyvvypyvyyvvyyvvvvyyyyvyyvyyvvyyvyvyvyyvyyyyoyovoyoyoyyyoyoyyyooyvyoyoyyyyvoyyyoyoyyyoyyoyyyyyoyoyyyyyoyyyoyyyyyyyyyyyyyyyoa00000a**&**&*-&.$.+_k:k566666666666666656665655555565655656666n///////.~~~!~!~~,~!!~~~!~~~!~~~~!!,''''''',,,&+$@@@@@@@@@@@@$_2_///////////////////////////>',',',~~~~~~~~!'''',,&$>@@@@@@#$#&%&&--*~~~*~~~~~~~~~,'''',@@@@@@@> ", +" 000000cfffgfgfggggggghhdhdgdhhdddhddhhhdhchhhdhdhddhhhdhdhdhddgdgdhdhddddhddchdhdhdhddhcdhddddhdddddddddddddpddjdddpddddppdpdpdpdjdpdjypyyvyypyyvypvvyvvyyyvyvvyvyvyvvyvyyvyvyvvyovovyoyyyyvoyyooyoyypoyyyooyoyyyyoyyooyyoyooyyyoyyooooyoyoyooyyyoyyyyyoyoyyyyyyyyyyyj000000=**&*=*-%).++:}:n:6656555555555555555556565555655556565665n///////%~~,~!~!~,~,~!~!~~!!!~~~!~!''''''''',,&@@@@@@@@@@@@@@$k_///////////////////////////-,',',,]~~*~~~~,''''',#@@@@@@@+##&#&%&m**~~~~~~~~*~~~''''''@@@@@@@> ", +" 00000aggffefgffgefggggdghhdgdhhgdghhdhhdhhdhcdgdhhhdhhdhdhdhddddddcdddhdddhdddddddddhddddddddddddhdddddddddddpddddpdpdjhpdddjdpddppddpdppdppppdpppppppppppvpvppppppppvvvppvpvvvvpvvvppvpppvvvpvpvvvvpyvpvvyvyvvvvvvvyyyyvyyyyoyyyyyyyyyyyyyyyyoyyyyyoyyyyyyyyyyyyyzyyj000000&-*&*&*&.++.1nk<kk555556555555565555655555655555655555655655_//////>&~~~,~!~!~!!!~~~~~~~~~~!~~,'''''''',,*&@@@@@@@@@@@>@@_^///////////////////////////,',,',!~~~~*~~~'''',,*$>$@@@@@$###&%&--*~~~*~*~~~~~~,''',,@@@@@@@> ", +" 000000gefgfgfggggggggdhdhdgddgddhddhhdgdhdgdhddhdhdhdhdhdhdddhddgdddhddhddddhddhddhdddhddddhddcdddddddddjddddddddpdddddppdpdddpppdppdppdppdpppppppppppvppppppvpvpppvpvpvvpvvpvvvvpvvvpvvvvvvvypvvvvyvvvvvvvvvyvvyyvvvvvyvvvyyvvvyvyyyyyyoyyoyyyooooyooyoyoyoyyyyyyyyyo000000e*&**-*++..$}}:}n<4565555555555555555555555555555555555556566n_//////@=~~!!!~,~~,!~~~~!~~~~~~~~~,'''''''',,*#@@@@@@@@$@@@@@///////////////////////////#,',',,~~~~~~~~!''''',%@@>$>+@@#$&%%&&-**~~~~~~*~~~~''''',@@$>$@@> ", +" 000000agfgfgfgfgfgggggdgdgddgdhhhdgdchddhhddddgdhdhdhdhdhdhdgdhddddhdhddhdhddhdddddddddddddddddddddddddddddddpddpdddpdppddppppddppdpppdpdpppppppppppppppppppppvpvpvvpvpppppvvvvvvvvvvvvvvvvvvvvpyvvpvvyvyvvyvvyvyvvyyyvyvvyyvvyyyvyvvyvyyyyoyoooyyyozyyozozozyoyyyyyyzo000000)**&*&&>+$)&2}:}<}n55555555555455554555555555555555555555555656n^//////.*~~,~!!,~!!!~~~!!~~!!~~~~~,''''''',,,*$@$@@@@@@@@@@@>//////////////////////////~',,'',~~~~*~~~''''',~)@@@@@@++##&#&%&-*~~~~~~~~*~~,''',,@@@@@@+> ", +" 000000aegffggfggggggggdhdhdgdgghghghghggggggghhghghgcghghedgdghgghgdgdedghghgdedgcghghhgdghhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhdhhhdhhdhhhhhdhdhhhdhhhdhdhdhdhdhddhdhddddddhddddhddddddddddddddddddddddddddddddddddddpdppdddpdddpdppdpdpppopoooyozjyjyzjyooooozoyyyyyyy000000b*&**&+>@+$}}2}n}:}6555554545454454545444455454555555555555555555n///////#~!!~~~,~,!!~~~!~~~!~!~~~~!''''''',',,-@@@@@@@@$@@@@@>////////////////////////>,',,,'~~~~~~*~!''''''&@@@@@@$@$##&#&&-&~~*~*~~~~~~''''',@@@@@@@> ", +" 000000jffgfgfggggggggghhhhhdgfeffefffffegffefffefeffffeffffeffefeffefffffefefffffffefeflffeffffffeffflfflffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffflfffflffflffffffffffffffffffffffffffffffflfffffffffffffffffflffffoooyyyoyoyozzoyoyoyyyyyoa00000a&*-*#@>>.})}8<}k}k454545454544544545445545445454545455555555556555_//////(&!,!,~!~!,!!~~!~~~~~~~~~~~,''''''''',~&@@@@@@@@@@@@@@(///////////////////////=,'',',~~~~~~~~,'''',,#>$@@@@@+###&%&&-*~~~~~~~*~~,''',,@@@@@@@> ", +" 000000cgfgeggfggggggggdhhdgdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffflfflffflffffffflffffffffffffffffffffffffffffffffffffffffffffffffffffffffffflfflfflfffffffflfffflfffflffflffflfffflffffflffffffffflfffffflfflfffflfffyyoyjyoyozjozjzoozyyyyyza000000**&&@>@>13}32}}:}k:4545444544544444444444444544444544545455555555554_//////>&,~,~,~,~,!~~~~~~~~~~~~~~!,'''''''',,~#@@@@@@$@@@@@@>(/////////////////////(,,,',,!~*~~~*~~''''',*@@@@@@@@$#&#&%&-&~~~~*~~~*~''''',@@@@$@@> ", +" 00000adfgfggggggggghgggdhhdhgf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;l;;l;ll;;;;l;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ljazozoyjzoyyojzoyoyyyyyya000000&**#>>@>}3232}k:}kk44445444444444444444444444454444544444445454555555n^//////@*,~,~,!!,,,!!!~!!~~~~~~~~~,''''''',,,*$@@@@@@@@@@@@@>/////////////////////#,',',,~~*~~~~~,'''',,#@@@@@@@@##%#&%&&**~~~*~~~~,''',,@@$>@@@> ", +" 000000cfgfgfgggggggghgddhhhhgf;]!]~]~]!]~]]]]~]!]!]~]]]]!]!]!]!]!]]]]~]~]]]]]]~~]!]!]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]a0aoooooyozjyyooyoyyyyzyz00b000)*&>>>$n}238}&k}}}<5444444444444444444444444444444444445444445455555555n///////#~!~,~~,~,!!!~~~~~~~~~]~!~!,''''''''',-+@@@@@$@@@@@@@>////////////////////,',''',~~~~~~~~''''''!@@$>$@@@$##&#&%&-*~~~~~*~~''''',@@@@@@$> ", +" 000000agggggggggggggghghhhdhhff;]]]!]!]]]]]!]!]]]]]!]]!]]]]]]]!]]]]!]]]]]!]!]!]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]']]']]]']]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]*aajoyzjzoooyjzozoyyyyyyyj000000e&$@>>$}}8}8}}}k}k}:44:444:4444:44:4:4:444:44:444444444444544444454555555n///////%~,,~!,!!,,!!!~~~~~~~!~!~~!''''''''',,&@@@@@@@@$@@@@@(//////////////////@,'',,'~~*~~*~~~'''',,&@>)@@@@@$##&%&&&-~*~*~~~~,''',,@@@@@@@> ", +" 0000000gegfggggggghghghdhhhdhgf;!]]]]]!]!]!]]]!]!]]]!]]!]]!]!]]]!]]]!]!]]]]]]]]!!]!]!]!]!]]!]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]']]]']]]]]]]]]]]]']]]']]]']]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]']]]]]]']]']]']]']]]']]]]]]]]]]]]]]]]]a0joozjyzjyzoojyjzjzyyyyy000000)#>>@>k<}})}88}}}}}n4:44:44::4:4:4:4:4:4::4:4:44:44444444444454444445455454_//////>&,,~,,~~,!,!!~~~~~~~~~!~~~,'''''''',,~%@@@@@@@@@@@@@@(/////////////////=,'',',~~~~~~~~,''''',.@@>+@@++##&#&%&***~~*~*~''''',@@@@@@@> ", +" 000000jgfggggggggggghgghhhhdhgl;]]!]!]]!]]]!]]]!!!'!]'!!!!!!]'!!!'!!!!!!,!,!!']!!!!!!!!!!!']'!']']']']']']']']']']']']']']']']']']']']']'']'']]'']]']']']']']']']']']']']'']'']'']'']'']'']'']'']'']''']']']']'']]']]']]']']']]'']'']'']']']!]]*aajjyjzooyjyjzzoyyoyzyyyy000000b@@>>2}k}}8}28}}}}}}:4:4::4:4:::4::4:4::4::4:4::4::::4:4444444444445454455554^//////@=,~,,,!,~!,,~~~~~~~~~~~~~~,''''''',,,~$@@@@@@$@@@@@@>////////////////(,',',',*~~*~~~~''''',*@$@@@@@@$###&%&&-*~~~~~~,''',,@$@@@@+> ", +" 000000aggggggggghghgghhdhhhhhgf;]]!]]!]]!]]''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',!0aayzjyjzjyyjooozjyyyyzyya0000a0^@>@k}}<}388}&k}}}}4:4::4::::::::::::::::::::4::4:4:4::4:4:444444444454445455n^//////.*~,~,,,~,!,!~~]~!~~~~~~~~!,'''''',,,,*+@@@@@@@@@@@+@>//////////////.,,'''',~~~~~~~~,'''',,#@@@@@@+@##&#&#&*&~~~*~~''''',@@@@@@@> ", +" 000000jggggggghgggdghgghdhdhhg;;!]]!]!]!]!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',0aaojoyoooozjzyjoyoyyyyyza00000a>@>k}}}}}}823}}}}}}<::::::::::::::::::::::::::::::::::4::4:4:444444444454554555n//////(#!~'~,,!,,,,!~~~~~~~~~~~~~!'''''''',,,&$@@>$@@@@@@@@@>//////////>-=*],,,'',~~~*~~~~,'''',~@$>$@@@@$##&%&&&-*~~~~~,'''',>$>$@@@> ", +" 000000cgggggggghghgghgdhhhhdhgf;]]']]]!]''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a0jyoyjzoooooozjyzjzyyyyya000000>>$}}}}}}2&}&}3}}}}}:::::::::::::::::::::::::::::::4:::::4:4::4:44444444445445454_//////(&!,!,~,!,,,,~!!~~~~~~~~~~~,''''''''',,%+@@@@$@@@@@@@@(//////(%&&-===!','!~*~~~*~~!''''',&@)>@@@+@#$&#%&&&=*~*~~''''''@@@@@@$> ", +" 00000aoggggggghgghgdghgddhdhhgf;!]]!!]!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',,a0jjzyjojzyjzojzoooyyzyyza00000a>>k}}}}}}}}8283}}}}}:<:<:<:<:<:<:<<:<:<:<:<<:<:::::::::::::::4:::::4:4444444445455n_//////>=~'!,,!!,!,!~]!~~~~~~~~~~~,''''''',,,~#@$>@@@@@@@@@@>(///.&&-%---==*]~~~~~~~~~~~,'''',!$@@$@@@@+##&#%&&&*~~~~,'''',+@@@@@@> ", +" 000000cgggghghghggdgdhhhhhhhhgf;]!]!]'''''',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''aaaojyzjyjzjozjoozjyyyyyyj000000>2}}}}}}}}&}&}8}}}}}::<<:<:<:<<<<:<<<<:<:<:<<::<:<:::::::::::::444:4:4:4444444445555n^//////+*!'~'!,!,,,~~~~~~~~~~~~~~~,'''''',,,,=.@@@$@@@@@@@@@>@%#%%--%------**~~~*~~~~~!''''''-@@>@@$>+)##&%%&&-*~*~''''',@@@@@@@> ", +" 00000aoggggghgghhghggghhhdhdhff;]']!]'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',0aayjyjyjyjyjoyjzooyyyzyzj000000)}}}}}}}}}8}&}&}3}3}<:<<<<<<<<:<<<<<<<<<<<<:<<<<:<<<<<:::::::::::::::4:4:4444454444555n///////#~,!,!',,,,,!~~~~~~~~~~~~~!'''''''',,,&+@>$>$@@@@@@@@.#%#%%-&%&%&&-&=*~~~*~~~~,''''',#@$>@+>$@###%%&&&*~~~,''',,@$@@@@@> ", +" 000000cghghgghghghgdhdgdhhhhhgf;]]!]'','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',aaazjyjzjyjzozjozjyozyyyzj000000_}}}}}}}}}38383}}3}3<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<:<:<<<<:<::::::::4::4:4:44444444/^n554_///////%,'~,!,'!,,!~~~~~~~~!~~~~~!''''''''',,&+@@@@@$@@@@@@@.%#%%%%%&%%&-&-**~~~*~*~''''',~@@+@@@@@$##&#&%&-*~~''''',@>@@@$@> ", +" 000000dghggghghghhhghhhhdhdhhff;']!!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',a0jjyjyojzojojzojzooyyzozj0000002}}}}3}}3}}813&3}3}}}<<<<<<<}<<<<<<<<<<<<<<<<<<<<<<<<<<:<:<:<<:<::::::::4::4:4444_///_4554_//////>&'!,!,,',,,,~~~~~~~~]~~~~~,'''''''',,,#@@@@@@@@@@@@@+####&#&#&%&&&--**~~~~~!'''',,&@@@@@@@+###%%&&&-~~,'''',@$@@@@@> ", +" 000000cggghghghgdghhhghdhhhdhgf;]']'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',aaaoozjyjyjzjyjojyjzyyyyyj000000}}}3}}}3}}88833}3}3}}<<<<}<<<[<}<[<[<}<[<[<<[<<<<<<<<<<<<<<<:<:<::::::::::4:4:44://////_555n_//////@*'!,!','!,,!~~~~~~~~~~~~~~,'''''''',,*#@@@@$@@$@@@@@+#$##&%%#&&&&-&***~~~~,'''',,+@@@@@@@$##&#&&&&*~''''',@@@@@@@> ", +" 00000adhghgghgdghghhhhhhdhhdhff;]]!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',0ajjojyjzjyjojzyjzooyzyzzj000000)}}}}3}}3}}}&3&33}33}<}<<[<[<[<[<[<[<[<}[<[<<[<[<[<[<<<<<<<<<<<:<<<<:::::::::4:4^////////n455n///////.~,,!,!',,,,!~~~~~~~~~~~~~!,''''''',,,-$@>@@@@@@@@$@++#$##&&#%%&&&-&=*~*~!''''',&@$>$@@@+$##&%%&&-~,'''',@@@@@@@> ", +" 000000hgggdghghhhhhhhghhhddhhgf;'']'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',a0ayjojyjyjyjyjzjzjyyyyzyz000000k}3}3}3}3}888}88}3}3}[[<[[[[<[[[[<}[<[<<[[[[[<[[<[<<[[<<<<<<<<<<<::<<::::::::::n//////////^n555n///////%~,,,,,'',,,!~~~~*~~~~~~~~!'''''''',,,&+@@@@@@@@@@@@++##$%&%#&%&&&-&**~~,''''',#@)>@@@@)$##&%&&-*,'''',@@@@$@@> ", +"000000bddgghgdghhghghhhhdhhhdhff;]!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',aajjzjyjzjyjzjojjojyyzyozj000000)}3}3}3}3}}3&83&}3333[<[[<[[[[<[[[[[[[[[<[<[[[<[[<[[[<[[[<[<<<<<<<<<:<<::::::::////(////////_4554_//////(&',,,!,!',,,!~~~*~~~~~~~~~!'''''''',,~&+>$@@@@@@@@@@$+###&#&#%%&&-&-=~~''''',*>@$>$>@+$###%%&&-,''',,$@@@@@@> ", +"0000000dgghghgdgdhhhhghhhdhdhdgf;']''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a0aoojyjoozjjozjyzjzyyzyyz000000_}}3}3}3}3383888}3}3}[[[[[[[[[[[[[[[[[[[[[[[[[[[[[<[<[<[<<[[<[<<<<<<<<<<::::::_////xwt////////_555_///////>=!',',!'!,,,~~~~~~~~~~~~~~,'''''''',,~#@@@@@@@$@@@@@+$###&%&#&%&&&--*!''''''%@@@@@@@+##&&#&&-~'''',@@@@@$@> ", +"000000adhghgdghhgcghhhhhdhdhhhgf;]!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''~aaaojzjojojyjzjojjoozyyzyo00000j)}3}3}33}3}8888933373}[[[[[[[[[[[[[[[[[[[[[}[[[[[[[[[[[[[[<<[<[<[<<<<<<<<<<::<////uwwwt/////////nn//////////+*,!',,,,,,,,~*~~~~~~~~~~~~,''''''',,,*$>$@@@@@@@@@@@+$####&%%%&&&-&=!'''',~+@@$@@@@$#$&%%%&=!'',,@@@@@@@> ", +"0000000hgdghhhhhhhhhghghhdhhdhgf;']''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a0jzjjyjzjojojyjyyjyyzyyzy000000)[3}33}33}83888833}33|[[[[[[[|[|[[|[|[|[[[[[[[[[[[[[[<[[[[[<[<[<[<<<<<<<<<<<:^////twww////////////////////////#!,,','!',,,!~~*~~~~~~~~~~!'''''''',,,-+>$>+@@@@@@+@@)$###&#&%%&&&-=]'''',-@)>@@@@@)##&#&&=]''',@@@@@@@> ", +"00000b0dhghhghghhghhhhhhdhhdhhgl;'!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',0aajzjyjojzojzjzjojyyyyyzo00000b)}3}333}9}3383&8933333[[|[|[|[[[|[[|[[|[||[|[[[[[[[[[[[[[[[[[[<[<[[[<<<<<<<:k/////((xu/////////////////////////(%,,!',,',,,,~~~~~~~~~~~~~~!''''''''',,&@@$>$@@@@>$@++$###%#&%#&%&&==!'',,$@@@@@@@$##%&#%==!'',>$@@@@@> ", +" 000000dgdghhhhhgdhghcghdhdhdhgf;]'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''aaajjyjzjojzjjjjzjyyyzyzoz0000002}33}333}333&38383333||[}|[|[||[||[||[|[|[|[|||[|[|[[|[[[[[[[[[[[<<[[<<<<<<<<_^//////////////////////////////////>%!,'!',',''!~~*~~~*~~*~~~~,'''''''',,!#@)>@@$@@@@@@@+$###&#&%#&%&==]!''*@@$>$>@@$##&#&%=='''@@@@@$@> ", +" 00000achhhhhghhhhhhhhhhhhdhhhgf;'!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',0ajjzjjjzjjjoyjjzjjozyyzyj00000a)333}333333338&8933333|||[||[|[|||||[|||[|||[|[|[|[|[[[[[[[[[[[[[[[[<[[[<<<<<<<_///////////////////////////////////(-,,,,',,,',!~~~~~~~~~~~~~~,'''''''',,*#@@@@@@@@@@@@@+$####&#&%%%===],,#@@@@@@@+$##%%-==],,@@@@@@@> ", +" 000000dhhghhhhghhghghhhdhhddhgf;']''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',aaajjoojjyzjzjzjjzzozyyyzo000000}}3333333333&388833337[|[||[|||[|||||[||||[|||||[|[||||[|[[[[[[[[[[[[<<[[<[<<<<<k_//////////////(////////////////////>*,,',',',,,!~~~~*~~*~~~~~!,''''''',,,*+@@@@@$>+@@@+@+##$&%#&&#--===!~+@@@@@@@+##&#&-==,,@@$>@@@> ", +" 000000chhhhghhhhhhhhhhhhdhdhhgf;!'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',0aaojzjyjjjjjjojjjjyyyzyzj0000008}333|3333338m8m939333||||||||||||||||||||||[|||||||[|[||[|||[[[[[[[[[[[<[<[<[<<<<k^///////////uwx(////////////////////@~',,,,'',,,!~~~~~~~*~~~~~!''''''',,,,&@$>@@@@@@@@@$+$#####&%&%--===&@+@@@@@+$##&%--=~,@@@$@@+> ", +" 000000dhhgchhghghhghhhhhdhdhdgf;'!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a0aojjjzjyjyzjzjooozyzyyyj000000}83333333333988&333939[|||||||||||||||||||||||||||[||||[||[[|[|[}[[[[[[[[[<[<<<<<<<<k//////////xwww//////////////////////#,',,','',,,~~~*~~~~*~~~~~!'''''',,,,,%@$@@@$>$@@>+@@$###&#&%----*-+>@$>+@@+##&%--==!@@@@@@@> ", +" 000000cdhhhhhhhhhhhhghhhdhdhhgl;',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',aajjoojjjojjjjjjjzjyyyzyzj00000j333333333333m898993739||||||||||||||7|||||||||||||||||||[|||}|[|[|[[[[[[[[[<[[<[<<<<<<_///////(wwws////////////////////////&,',',,,',,,~~~~~~~~~*~~~~,''''''',,,~)@@>)@@@+@@@@++$###%%%-&-&*&>>@@@@@+$##--%-**@@@@@@@> ", +" 000000jhgdghghhghghhhhhhdhdhdgf;']''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',a0azjjzjzjzjojzjjjjzyzyzzj000000333333939333m8&8939393|7|77|7|77|77||77|77|7||||||||||||||[|||[|[|[|[[[[[[[[<[<[<<<<<<<<_///////tx//////////////////////////(*,',',''',,!~~*~~*~~~~~~~~,''''''',''*+$>@@@@@@@@@+@$####&-%--&-+>@>$>$@@##&----*>@@@@$@> ", +" 00000acdhghhhhhhhhhghhhhdhdhhgf;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',0aajzjjjjjjjzjjzjzoyzyzyzj00000a3339333339338m3&893939|7|7|77|777|777|77|7|777|77||||||||||||||||[|[|[[[[[[[[[[<[<<<<<<<:k^///////////////////////////////////@]''',,,''''!~~~~~*~~*~~~~!'''''''',,,-$@@@@@@@@@@@@@$###%-%--&&>>>>>@@@+##-%-&*@>@@@@@> ", +" 000000adgdhhgchhghhchhhdhdhdhgf;]'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''aaajjjzjzjzjjzjjjjjzyyzyz00000003333337939398m8m893939|7|7|77|7|7|7|7|7|777|7|7||77|7||||||||[|||[|[|[|[[[[[[[[[[[<<<<<<<::^////////////////////////////////////.,''',',,',,~~~~~~~~~~~*~~!'''''''''',&@@$>$@@@@@@@@@+##%%--&-#>>@>>@$@##----->@$>@@@> ", +" 00000aahhghhhghhhghhhghdhdhdhgf;,',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''!a0jjjjjjjjjjjjojzoozyzyzza00000a33393933739389m8m39i397777777777777777777|7777777|77|77|7||||||||||||[|[|[[[[[[[<[[[[<<<<<k///////////////////////////////////////%,',,''''''!~~*~~~*~~~*~~~,''''''',,,~)@@+>$@@@@@@@@@###%%&&&@^>>>>>>+#%%&-&>>>$@@@> ", +" 000000ahhhhghhhhhhghhhhhdddhhgf;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''aaajyjojzjozjjzjjjzyyyzyz000000b337393939393m8mm893993777|7|77777777777777|77|7777|77|7|77||7||||||[|||[|[|[[[[[[<<[<[<<<<^////////////////////////////////////////(-',,,',',~~~~~*~~~~~~*~*~~,'''''',,''*#@@@>$>$@@+@@@+#%%%-&#>>>>>@@>##%--&>@>@@@+> ", +" 000000ahhhhhhghhhhhhhhhdhhddhgf;!''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',,0aajjzjjjjjjjjjzjjozyzyyza00000b9393393939398m8mm899397777777777777777777777777|77777777|777||||||||||[||}^}[[[[[[[[[<[<<_///////////////////////////////////////////-''',',~*~~~~~~*~~~~~~~~~~!,'''''''',,&++>)@@@@@@@@+@.#)%%&+>>^>>>>@#%%-&>>@>@@@> ", +" 0000000dhhhhhhhghhhghhhhdddhhgf;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''aaajjjjzjjzjzjjjjzozyzyzy000000)}939393979939m8m8939987777777777777777777777777777|7|777|7|7777||||||||||^//$}[[[[[<[<[<[///////////////////////////////////////////(,'','',~~~*~~~~~~*~*~*~*~~~~!''''''''',,&+>@@@$>$@@@@++.%%%%>>>>>>>>+.#-&>>>>$@@> ", +" 0b0000bhdghghhhhhghhghhhdhddhgl;','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''!a0jojjjjjjjjjjjjjjzzyzyzz00000b)93939393939898mmm9939977777777777777777777777777777777777777||77|7||||||2/////1}[[[[[[[[<2//////////////////////////////////////////-','',,~~~~~*~~~~~~~~~~~~*~~*~~!'''''''',,~&@@@>)@@@@@@@@++&#+>>>^>>>>.#)&>>>>>@@> ", +" 000000dhhhhghghhhhhhhhdhdhdhgf;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',aaajjzjjjzjjjzjzjjyyzyyzj0000002379397993i399m88m89939i77i777i77i7i777i77i77i777777777777|7777777|7|||||////////2[[[[[<[<<<_///////////////////////////////////////>,','''~~~*~~~~*~~~~~*~~~~~*~~~~~~,'''''''',,*#@@@>@@@@@@@@@+##>^>>>>>>>##%^>>>@@$> ", +" 000000chhhhhhhhghhgchhdddhdhgf;','''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''!a0jjjazjjazjjjjjjjyzyzyzj00000a83939393999998mmm9999997i777i77i77i7i7i797i7777i7i771$377777777|7|77|7||$/////////^2[[[[[[[[<k^/////////////////////////////////////!,'',',~~~~~~~~~*~*~~~~*~*~~~*~~*~~~,''''''',,,*$@$@@@@@@@@@@+.+>>>>>>>>@+#>^>^>>@> ", +" 000000jdhghhghhhhhhhhhhdhddhgf;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',aaajjjjjjjjjjjjjzzyzyyzya0000008939939939393m8mm8999987i7i7i7i7i7i7i7i777iii7i77i78///17777777777|77|73////////////_}[[[<[[<<<k^//////////////////////////////////#','',']~~~~~*~~~~~~~*~~~~~~*~~*~~~~~~!,''''''',',-+@@$>$@@@@@@@@>^>^>^>>>++(>>>>>@> ", +" 000000adhhhchhhhhghhhdddhddhgl;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''!a0azjjjjjjjjzjjjjjyyzyzz000000b9793999399999m8mmm98999i7i7i7i7i7i7i7i7iii77i7i7i77^////^17777777777|7|^/////////////(_[[[[<[[<<<k/////////////////////////////////,,','',~~~*~~~~~~~~~~~~*~*~~~~~~~*~*~~~~!'''''''',,~&@@@+>$>$@@+@+@>(>>>>^@+(/(^>>>> ", +" 000000ahhhghghghhhhhhdhddhddgf;',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''aaajjzjjzjjjjjzajzzyyzyz000000b3939399793998mmm8m999997i7iiii7iii7i7i7i7ii7i7i7ii8///////^377777777772/////////////////2[[[<[<[<<<_//////////////////////////////-''',',~~~~~~~~*~*~*~~~~~~~*~*~*~~~~~*~*~~~,'''''''',,~#@@@)>@@@@@@@@@>(^>>>+^(>((>>^/ ", +" 0000000dhhhhhhhhghhhdchhphdhgf;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''!a0ajjjjjazjjjjjjjyyzyzyz00000b)3999i89899999m8mmm99999ii7i7i7ii7iiiiiiii7iiiii7i7^/////////$377777777///////////////////^k[[<[<[<<<<^///////////////////////////>',,'',!~~~*~*~~~~~~~~*~~~~~~~~~~~*~*~~~~~~*~~,'''''',,,,*$@@+>$@@@@@@@+>>>(>>(/((^(>(/ ", +" 0000000cdghghhhhhghhdddddddhgf;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',''aaajjjjzajjjjjjzjzyzzyzo000000$79398i9993999mmm8m899997iiiiiiiiiiiii7iiii7i7iiii$////////////$7777771/////////////////////^}[[<[<<<k////////////////////////////]'''','~~~~~~~~~~~~~~~~~*~*~~*~*~~~~~~*~*~~*~~~!,''''''''',-$@@@>$>+@@@@@@>^>(((^(((>(// ", +" 00b000ddhhhghhghhhhhdhdhddhgf;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''!a0azjjjjjjjzjjjjjyzyzyzj00000088979893999998mmmmm99999iiii7ii7iii7iiiiiiiiiii7i3//////u(///////17773////////////uwt/////////_}[<[<<_///////////////////////////.,'',,'~~~~~~~~*~*~~*~~~~~~~~~~~~~*~~*~~~~*~~*~*~~!''''''''',,&+@@)>$@@@@@@@>>^>/(((^((// ", +" 000000cdhhhhhhchghhdhdddhddgf;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',''aaaajjjjjjjjjzajzzyzyzzj00000089999999999999m8mmm99999i7iiiiiiiiiiiii7iiiiiiiii$/////(wwt///////^87^////////////xwww//////////2<[[k////////////////////////////,,'''',~~*~~*~~~~~~~~~*~*~~*~*~*~~~*~~~*~~~~~*~~*~*~!'''''''',,~&>@@@>$@@@@+@>>((/(((((/// ", +" 000000adhhhghhghhhhddhdhphhgf;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''!a0ajjjjazjjjjjjjyyzyzyzj00000a9938i98i989999mmmmm99m99iiiiiiiiiiiiiiiiiiiiiiii8/////(xwww(////////^////////////uwwwt////////////k<^///////////////////////////-'',',,~~~~~~~~~~~~~*~~~~~~~~~~~~*~~~*~~~~*~*~~*~~~~~~~,''''''',,,~#@@@@@@@@@@@^>>^((^(//// ", +" 000000ahdghhhhhhhhdhddddhddgf;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',''aaajjzjjjjjjjjjjzyzyzzz000000b39999999999999mmmmm99999iiiiiiiiiiiiiiiiiiiiiiii^//////xwwt///////////////////////(xx//////////////////////////////////////////(,,'''',~~~~~~~*~~*~~~~~~~~*~~~*~~~~~~~*~*~~~~~~~**~*~*~~~,'''''''',,*+@@@$>@@@@>(((/((((/// ", +" 0000000ddhhhhghhhhdddhddhdhgf;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',0a0jajjjjjjjzjjjzzyzyyz000000)97989999999998&mmmm9qqq9iiiiiiiiiiiiiiiiiiiiiiii8^//////>t////xx(//////////////////////////////////////////////////////////////]'',,',~~~~~~~~~~~~~~~*~*~~~*~~~~*~*~*~~~~~~~*~*~~~*~~~~*~~!''''''',,,,&+@@$@@@@>>>>((^(/////", +" 0000000cdhhghhhghhhdhjhddddgf;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''aaajjjjjz0zajjjzyzyzzyj000000299999i899999m9mmmmm99999iiiiiiiiiriiririiiiiiiiiii1(/////////uwwwu////////////////////////////////////////////////////////////+,,''''~~~*~~*~~*~~~*~~~~~~~~~~~*~~~~~~*~*~*~~~~~*~~~*~*~~**~~!'''''''',,~+@>+@@+>^>(((((/////", +" 000000adhhhhhhhhhddhddhddhgf;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',0aajjjjjjjajjjayzyzyzza00000098999999999999mmmmmm9mqq9iririririirriiiririiririrrii$////////xwww(////////////////////////////////////////////////////////////,'''',,~~~~~~~~~~*~~~~~~~*~~~*~~~~~~*~~~~~~~~*~*~~*~*~~~*~~~**~~,''''''',,&@@@@@++(>^(/^(/////", +" 000000adhhhghghhhdddhdddhdgf;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''a0ajjz0zajjjjjjzzzzyzz000000b99999999999m99mm&mmm999qriiiiiriririrriirirriiiriiiiii9$///////tws///(u///////////////////////////////////////////////////////%,',','~~~~~~~~~~~~~~~*~~~~~~~~~*~*~~~*~~*~*~~~~~*~~~*~~~*~*~~~**~~,'''''',&@@@@@@@>(>(((//////", +" 0000000ddchhhhhhdhddhddddhgf;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''',aa0jajjjjjjjjjjzyyzyzz000000)998999999999m9mmmmmmqqqmirirrriririirirririiriririririii9^///////////xwx(////////////////////////////////////////////////////(,,'','!~~~~~~~~~~~~*~~~*~~~*~~~~~~~*~~~*~~~~~~*~~~~*~~*~*~~~~~*~~*~!''''''!)$>$@@@@^(>((///////", +" 000000cdhghhghhhddhjhddddhhgl;eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeea0jjjjjjjjzazazzzzyzya00000029i999999qm99q9mmm&mq9q9qiriririrrrrirririrrrririririiiiiir8/////////uwwwt////////////////////////////////////////////////////*','','~~~*~~*~~~~~~~~~~~~*~~~*~~~~~~*~~~~*~~*~~*~*~~*~~~*~*~*~*~~*~,''''''-@@@@@@@>>>^(////////", +" 000000jddhchhhhddhdhddhdhddabaa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aaajjjjjajaajayyzyzyza0000009999999m9999q9m&mmmm9mqqmririrrririrrirrrrririrrirrirrrrriiii1///////uwww////////////////////////////////////////////////////@',',''~~~~~~~~~~~~~*~*~~~~~~~~~~*~~*~~~*~~~*~~~~~~~*~~~*~~*~~~*~~*~!''''''!@@@@@@@+>((>>////////", +" 000000ahdhhghhhhddddhdddddhjaaaaaacaaaaacaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0aaa0ajjjjjjjjjjjzyzyzzz000000b999999999qq999qmmmmmq99q9rrrriirrrrirrririrrrrrrrirriiiiririri9$///////su///(wu//////////////////////////////////////////////!''',',~~~~~~~~~*~~~~~~~*~~~~*~~~~~~~~*~~*~~~*~*~~~~~*~~*~~~*~~~*~*~''''','#@@@@$@@@^>>(/////////", +" 0000000dhhhhgchddhdddddhdddhdhdhddphdhdpdddhddpddddhddddddddddddddddddddddvovovvoopovooopooooooooooooooooojoojooojoojojojjojjojjjjjjjjjjjjjjjjjjjjjjajjajjajajajajajaajaajaajaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaajajjjjj0zajjjjjzzyzyzj000000$999999q9q99mqqmmm&mmqqqqqirirrrrirrrrrrrrrrrririrrirrrrririririi9^//////////xwwx////////////////////////////////////////////#',',''~~~~~~~~~~~~~~~~~~~~*~~~*~~~~*~~~~~~*~~~~~~*~*~~~*~~*~~**~~*~,''''''*@$@@@@@@>>(^(/////////", +" 000000jdhhhhhhdhddhdhddddddddddddddddddddddddddddpdddddddddpddddddoddodppvvvvvvvvvovvvovvvvvvopopovopoovopopooopoooodjpoopjoopjdododojdjojpjojojdjjpjojdjojdjjojjjjdjjjjojjjjjjjjjjojjjjjjjjjjjjjjjjjjjjjjjjjjajjajajjajjjjjjjajjjjjjjjjjjjjaajjjjajjjjjzzzyzzzj0000008999m99m9q9q99qmmmmmmqqqqqirrrrrrrrrrrirrrrrrrrrrrrrrirrririririiri8(///////uwwwt///////////////////////////////////////////(,''',',~~~~~~*~~~~~~~~*~~~~~~~~~~*~~~~*~*~~~~*~*~~~~~*~~*~~*~~~~*~~~'''''''.@@@@@@$>>(>(///////// ", +" 000000addhhhhhddddddddhddddddddddddpddddddpddpdddpdddddpppddpodpppdpdpppvvyyyvyvyvvvvyvoyooovovoovooopoooooopooojpoooojpjoooojoojjjojojdoojojdjjjjojjjjjjjjjdjjjdjjadjjjjjjjjjjdjjjjjjjjjjjjjajjjjajajajajajajjajjjjajjjajajajjjaajaajajajajjajajjajajajzyzyzyz0000000m9999q99m99q9mqmm-mmmqq9qrrrrirrrirrrrrrrrrrrrrrrrrrrrrirrrririrriiii1///////uxw////////////////////////////////////////////=',',',~~~~~~~~~~~~*~~~~~*~~*~~~~~~~~~~~~~~~*~~~~~~*~~~*~~*~~*~*~~*~,''''''&@@@@$>)@>^(>////////// ", +" 000000ahdhhghhphddhdddddddddddddddddddddddddodddddoddoddpppddpddpdppdpdpyvvvvvovyovyovypyvvovovvovooyovpooooooopooooooooopjpjojdjpojdjjjojdjjjoodjjdjdjojdjjjjdajjjjjjjdajdjjjjajjjjjjjjjcjjjjjjjcoajjjjjjjajjajjjcjjjajajajajjjjajjjjjajjjjjjjjjjjjjjjzzyzzzzy000000b99m99q9q9q9q9qqmmmm-qqqqqrrrrrrrrrrrrrrrrrrrrrrirrirrrrririrrriirrriri9$///////(///////////////////////////////////////////>,''','~~~~~~~~~~~~~~~~~~~~~~~~*~~*~~*~~~*~*~~*~*~*~~~*~~~~~*~~~*~~~~'''''',+@@@@@@@>>>(////////// ", +" 0000000dddhhhhdhddddhddddddddddddddddddddddddddpdddpddpdddpdpdppppdpdppvvyvyvyvvvvyovyvovoovovoyovovoooopooopooojooopjpjojojpoojojojooojojojdjjjojjjjjjjjjjjjjjjdjjjjjjjjjajjjjjjjjcjjcjjjjjjcjajjjjcjajcjjjjjjajjjjjajjjjjjjjajjjjjjajjajjajjj0jjjjajazyzzozzj00000a$999999q9q9qqqqqm-mmmqqqqmrrrrrrrrrrrrrrrrrrrrrrrrrrrirrrrrrrirrriiiriiii8$/////////////////////////////////////////////////!',,'',~~~~~~~~~*~~~~~~~~~*~~~~~~~~~~~*~~~~~~~~~~~~~*~~~~**~~~*~~*~~,''''',%@@@$@@@@>^(////////// ", +" 000000adhdhhddddddddddhdddddddddddddddddodddpdddpdppdpdpdodpdpdpppppdpovyvvvyvoyvvvooyvyvyyovovooovoopooopoooopooojoooooopjjjpoojojojpjojdjjojdaoojojdjjojdjjjjjjdjjcojjjdjcojcojjjjjjjjjjjjjjjjajjjjjjjajcjajjajajajajajjajjajaaaajjjajjajj0zjjaj0zajzzyzzzy00000008q9qm99q9q9q9m9qmmm-mqmqqqrrrrrrrrrrrrrrrrrrrrrrrrr8qrrrrrrrrriirrririiiiii8^//////////////////////////////////////////////#,''','~~~~~~~~~~~~~~~~*~~~~~*~*~~~~*~~~~*~*~*~~*~*~~~*~*~~~*~~~*~~~,''''''*@@@@@@@@^>/////////// ", +" 0000000ddhhhdddhdhdddddddddhddddddjdddddddddodddpdpdpdpddpdpdppddodpppvyvvyvvyvvyoyvypovoovvooovovoooooooooopoooopoooooojjpoojojpjpjojojjojdjjjojjdjjjjdajjjdjjjjjjjocjjjjjjjjjjjjjjjjjjjjajjcjjjjjajjajjjjjjajajajajjajajjajjajjjjaajajjajjjajjjjjaazzyzzzyz000000b99999qq9mqq9qqqq-mmmmqqqqqrrrrrrrrrrrrrrrrrrrrrrrrq/($irrirrrrrriririrriiriir1(///////////////////////////////////////////(,''''',~~~~~~~~~~~~*~~~~~~~~~~~~~*~~~~~~~~~~~~*~~~~*~~~~~~*~~**~~*~~,''''',#@@)$@@+@/////////// ", +" 0000000cddhhhddddddddddhddddddddddhddodddpdddddpddpdpdodpppodpdodpdppvvyvyvyvvovvvovyyovvooovvovoovpopovooooojpjojpjopjpjoojpjpjojojpjdjjojjjojjdjjjdjjjjjjjjjjjjjjjjjjjjjjjjjjjcjjjjcjajjjjjjjcjjajjajjajjajjjjjjajajajaajajjajjajjjjjajjjajajajajjjyzzozzza000000)im9q99q99qmq9qmqmm-mqqqqqqirrrrrrrrrrrrrrrrrrrrrrr>///^8{rrirrrrrririrriiiiiii8///////////////////////////////////////////-,,,,',!~~~~~~~~~~~~~~~~~~*~*~~~~~~~~~*~~~~~*~~~~*~~~~*~~~~~*~~~*~~~,''''''-@@$>@@@@^////////// ", +" 000000addhhdhdddddddddddddddjddddpdddddpddddddpddppddpdpddpdpdpdppdpyyvvyvovyvoyyyvovvoovyvooyovooooooooooooojpojpjojojpjpjojjpjojojjojojojjdjjjjjjjjjjdjjjadjjjdjjjjjocjjjcjjjocjjjjjjjcjajjjjjjjjjajjajjcjajaajajjajjajjjaajaajaajajajajajajjjajajzyzzzyz000000b999q9mq9qqq9qqqqm-mmmmqqqqrrrrrrrrr{r{r{{r{r{r{rr{8//////^9rrrrrrirrrrrirririii^//////////////////////////////////////////>''''''!~~~~~~~~~*~~~~~~~~~~~~~*~~*~*~~~~~*~~~~~*~~~~*~~*~*~~~~*~~~~~'''''',+@@@@@$@>////////// ", +" 0000000dddhdddddddddhddddddddddddpddpdddddoddpdpdddodppdppppppppdodvvvvyvyvvyyvvyovoovvovopoypooopoopoopoooopoooooopjpjojoodjojojdjojdjjdjjojjojjdjjdjajjdjjajjcjjjjjjjjjcojjjjjjjajjjcojjcjajajajcjjajcjjjjajjjajaajajaajajajajajjajajjjajajj0zaajzzyzyzzj000000)m9999q9q9qqqqqqqmm-m=qqqqq{rr{r{r{r{r{rr{r{r{r{rrr(////////$9rrrrrriirriiririi8///////////////////////////////////////////],'',,,~~~~~~~~~~~~~~~~*~~~~~~~~~~~~~~*~~~~~*~*~~~*~~~~~~~~*~*~~**~~,''''''%@@@@@@@@///////// ", +" 000000adddhddddddddddddddddddddddpdddjddddpddppdppdpdppddpddpdppdpvvyvvyvovvovovvovyooyoyoooyovooooojpjpjpooojpjoojojpjpjjojdjojjdjjjojjdjjjjdjjjjjjjdjjjjjojjjadjjjjjjjjjjjajajjjjajajajjjjajjajjjjajjjaaajaajjajajajajajajjajajajjj0jajjajjaajjazzzzzzza000000&9mq9q9q9mq99mqqq-qmmmqqqqqr{rr{r{r{rrr{{r{r{r{r{{$///////////$rrrrrrrirrririr9///////////////////////////////////////////#'','''~~~~~~~~~~~~~*~~~~~~~~~~~*~~~~~~~~~*~~~~~~*~~~~*~*~*~~~~~~~~*,''''''~@+@$@+@@>////// ", +" 0000000hdddddhddhjdhddddddddddddddpddddpddpdpdppddpdpdpppdododpvpvyvyvyvyvyvyvoyvovvvopovovopoopoopooooooooooooopjpjpjjpjojojojojjoojdjjjjdjjjjdjjdajjjjjjcjjjojajcjjcjjjajjjjjjcjjjjjjjjajajjcjajcjaajajjajajaajaajajajajajajaaajaajjjajjj0jjaajzzzjzyzz0000000399q9qmq9qqqqqqqmmm-mmqqqqqr{rrrr{r{{{rr{r{r{r{rrq/////////////^8rrrrrrirririi$///////////////////////////////////////////,,'''',~~~~~~~~~~~~~~~~~~~~~~~*~~~*~*~~~*~~~~~*~~~~*~~~~~~~~*~~*~*~~,''''',#@@@@@@@@////// ", +" 0000000jdhddddddhdddddddddddddjddpddddpddddpdpddppppppdodpdpdppdpvvvvyvvvovyoyvovyooyyovooooooooooopooopjpjpojpjoojojoojooojdjojdjojjjojojjjdjjjjjjjjjjcojoocjjjjjojjojjjjcjjcjjjajcjaajjcjjajjjajjjjaajajajcjajajajaajajaaaajajajjjajj0ajjjajaj0yyzzyzzj000000)9q99q9q9q9mqqqqqq-mq-q*qqqr{rr{{{r{rrr{{r{r{r{r{{$///////////////>8rrrirririr9///////////////////////////////////////////-,'',,,~~~~~~~~~~!~~~~~~~~~*~~~~~~~~~~*~~~~~*~~~*~*~~~*~~*~*~~~*~~~~,''''',=@+@+@@$@(///// ", +" 000000ahpddddddddddcdpdddddddddddpdpdddodpdpdodpdpddpddppppppvppyvyvvyvyvvyvovyvovopoovovvovopyooooooooooojpjoojpodjpjpjjpjjojojjdjojojdajjjjjdjjjdjjojjjaojjjjjajcjjajjjjajjajjjjjjajjjjjajajaajaajjjajajjjajajaajajaajjjajajajaaajajjjajjjajjzzyzzyzz000000089m99q9qqqq9qqmqmmm-mmqqqqqr{{rrr{r{{r{r{r{r{r{rrm//////////////////$9rrrrrrii>//////////////////////////////////////////>,',''',~~~~~~~~~~~~~~~~*~~~~~~~~~*~~~~~~~~~~~~~~~~~*~~~*~~~~*~~~*~*,,''''',+@@$@@@@>//// ", +" 0000000hjhddddddddpddddddpddddpdddpdpddddppddpdpdpdodpdpdpppppppvyvyvoyvyovyvovovyyovooyooooooopooopjoojoooojpjojojojojojoojdjojjjdadjjjpjjdjajjjjjjjjocjjjjjocjjjjjocjjjjjjjcjjaajjcjajajcjjajjcjaajajajaaajjaajaajajaaaajajaajajajajajaaajaaayzzyzzyz000000bq99qq9q9mqqqqqqqq-mq-mqq*qq{r{r{{rrr{r{rr{r{r{r{{^////////////u///////$ririrr8///////////////////////////////////////////*''''',~]!~~~~~~~~~~~~~~~~~~~~~~~~~*~~~~~*~~~*~~~~~~~~*~~~~*~~~*~~~~,''''''%$@@@+@@+///// ", +" 0000000jhddddddddddddddddddppdddjddpdpdpddpdppdppdpdpdodpppppppovvyvvvyvvoyovyvoovooypypovovooooooooopjpjooooojdjopjpjpjjpjojjodjjjjjjojjjjjjdjjdajjdajojjjjcjjjjjjajjjcjjcjjjajjcjjjajajjjaajajajajajcjajjaaajajajaajjajaajajajaajaajaajajjjazzzzyzzza000000)999qm9qq99qqqqqqmm-mmqqqqq{rr{rr{{{{~~~{!{{{{{rrm////////////uwwu///////8rrr9///////////////////////////////////////////+,,',''~~~~~~~~~~~~~~~~~~~~*~~~~~~~~~~*~~~~~*~~~*~~*~*~~*~*~~~*~~~*~,''''''!@@@@@@@$>//// ", +" 0000000ddddhdddddddddddddddpddddddpdpddopdpdppdpdpdpdpppdppdppvyvyoyovoyvvyopovyopovjyoovjpopoopoopooopjpjpjooojojojjjpjojjdjjjjjojdjjdjocjjjjajojajjjjcjjjjocjjcjjjjjjajjjajjajjajcjajaajajajajajaajjaaajajaajaaajaaajajajaajajaajajaajaj0jajzyzzzyz000000099q99qmqqqqmqqqqq-mq-m=qqqq{r{{{{~,!'~,',,!'!!{{{{m(//////////wwww////////(8r$///////////////////////////////////////////,',',',~~~!~~~~~~~~~~~~~~~~~~~~*~~~~~~~~~*~~~~~~~~~~~~~~~~~~*~~~~~~~,''''',#+@+@$@@@///// ", +" 0000000jhddddddddpdddjhpdddddpddddpdppddpdppdpdodododpppppvppvvvyvvyvyvyovvoyyovovypypyooooooooojojoojoooojpjpjopjoopjojojojjpjpjjjjjjjjoojjdjjjjcojjjojjjjjjjjjjjcjajjjajajjcjjajjjajcjjacjajaajajaajajaajaajaajaajaaajaaaaajaaajaaajaajajazzzyzyzza000000)89qq999qqqqqqmqqqm-q-qqqqqq{r{{,,!!!!!~!!!!~!,!!{{rr8////////(xwwu//////////^(//////////////////////////////////////////%'',','~~~~~~~~~~~~~~~~~~~~~~~*~~~~~*~*~~~~~~~~*~~*~~*~~*~*~~~~*~*~~,''''''=@+@@@@+@(//// ", +" 0000000ddddddddddddddddjddpddpdpddpddppdodpdpddpddppdppppdppvvyvyvvyvoyvoyopoyopyjoooovovoopooopopooopjoojojoojjdjjojjdjdjojjjjpjjdjjdjjjjjadjjojjcjjjjcjjjjjjjjjjdajcjjjjajjajjajaajjajjjjcajcjajaaajjaaaaajaajaaaajaaajajaajaaajaajajaaaazyzzyzzz00000008mq99qqqq9qqqqqqqmqmmm-q=qqq{~!!!~,~,!,,!,~,,!!!!,!]{{{$////////ut//////////////////////////////////////////////////////(',''',,~!~!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*~~*~~~~~~~~~~~~~~*~*~~~~~~'''''',+@$@+@@+>//// ", +" 0000000jhdjhdddddddddpdddddpdddpdpdpdpddpdppdppdppppppppvpppvvyvvyyvyvovvvoyovooopypoopjvoooooojooojojyojpjpjdjojoojpjjjjojdjjjjjjjjcjjdjjjjajjjjojjjjjjjjcjjcjajaajjjacjajjajacjajjaajaaajjjajaacjacjaajjaaaajaajjaaajaaaaaaaajaaajaa0jaajzzzzzyzj000000b99mq9q9qmqqqqqqqq--m-qqqqq*{~!!,!,!~,~~,~,'~'~'!!,!!~{{{q$//////////////////////////////////////////////////////////////=',''',~~~~~~!~~~~~~~~~~~~~*~~~~~~~~~~~~*~~~~~~*~~*~~*~*~~~~~~~*~*~~,''''''-@+@@@$@+^/// ", +" 0000000dddddjdddddpddddjddddpdpddpppdpdpdodpppdpdppdppppppvvyvyvovovyyyoovvyoypyoyoooooooopjpopjpoopjpjpjojojoojpjojoojdjjjojdjdjojojjcjjojjocjjjjjjjjcjjjjjjjajajjjjjjjjcjcjjjjjcjjaaajaaaajajajjajaaaacjjaaaaaaaajaajaajajaaajaaajjjajazzyzyzzz0000000&9q99qmqq9mqqqqqqqqq-m-qqqqq~~!,~,~,~''~'~,~,~!!!,!,,,!{{{rm>///////////////////////////////////////////////////////////+','',,!~~~~~~~~~~~~~~~~~~~~~~~~~*~~~~*~~~~~~*~~~~~~~~~~~~*~*~*~~~~~,''''''!+@@+@@@@>/// ", +" 0000000pddddhdddddddpddddpdjddpdppddpdppddpdpppppppodpppppvvvyvyvyyvvopypoypopooopoovvooooooyjyjyjojoojooojpjojojjojdjjjjojdjjjjjdaojojjjjjcojjjjcjjjjjjjcjjjcjjjajacjaajjjaaajajaaajjajajaaaajaaaaajajjaacjaaaajaaaaaaaaaaaajaajaj0jaaajzzzzyzzj000000b899q9q99qqq9qqqqqm-mqmqq=q=]!,~,,~'~,~,~,!,~',,~'~'~!,!!{{{rm////////////////((/////////wt(/////////////////////////////,'','',~~~!~~!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*~~~*~~*~~*~~*~~~~~~~*~*~,'''','#+@$@@+@@// ", +" 0000000dddpdphjdpddddpddpddpdpdoddpppdppdodddodpdpdvdppppvyvyovypoyvyoyooyoyooyoovoooooooopjpopjopjpjpjdjojpjojdjojjoocojjjjjjjjjjjjjjdjojjjdjjjocjjjjjjocajjjjcajjjjjaajajjaaaajajcaajcajajaaajaajcaaaaaaaajaaaajaaajaajaaaaaaaajajaaazyzjzzzz0000000&9mq9q9qqqqqqqqqqqmq---qqqq*]~'~'~,,~'~'~'~'~~'!,!!,!'!,,,{{{^////////////////wwt///////twww(///////////////////////////%',,'''!~~~~~~]~~~~~~~~~~~~~~~~~~~~*~~~~~*~~~~~~~~~~~~~~~~~*~~*~~~~~,''''''*+@>)$@+@> ", +" 0000000jhpdddddddpddpddddppddpddppddpdppddoppdpppvppppppvvoyvyoyvypoypovypopypopoovooypojoooojyojoojojjojpjjpjojjdjjooojojdjjdjjjdjjjjajjjjajadajjjcjjcjjjjjcjjjjajaajjjcjjcjjajcjjajajaaajcjacjaaaaaajaaajaaaaaaajaaaaaaaajaajaaaaaj0zzzzzyzzj000000b399q9qqmq9qqqmqqqm-mqmqqq{==!,~,~'~,~'~,~'~'~'~'~'~'~,!,!,~{8////////////////swwws//////wwwx///////////////////////////(,,'',',~~~~~~!~~!~~~~~~~~~~~~~*~~~~~~~~~~~~~~*~~~*~~~*~~~*~~~~~*~*~~'''''',.++@@>+@> ", +" 0000000dddddpddddddddppdddpdppdpppdoddppddppppppppppppppvvyvvypyoyovypjyoyjooooooopoooopoooopjpoopjpjpoojoojojojjoojjjdjjjjjjdjjjjjjjjocjjjjajjjjjoajjjjajjjajjcjjajcaajaajajaajaajcaajaajaajaaaaajaaaaaaaaaaajaaajaajaaaaaaaj0jaaaaazyzzyzyz0000000#qq99mq99qmqqqqqqqmq-m-=q=q]~~'~'~,~'~,~'~'~,,~'~'~'!'!'!'!'*/////////////////swwx///////(tw(///////////////////////////=,'',',~~~~~!~~~~~~~~~~~~~~~~~~~~~~~~~*~~~~*~~~*~~~*~~~*~~~~*~*~~~~~,''''''-@@$@+@$+( ", +" 0000000pdddddpddjdddddppdpdpdppddpddpppppppdpodppppppppovyvyvyyvvoyooyvoppypypoooyjopjooopjojojojojpjojpjjdjpjojojdjjjjjdjjjjjjjjdjjdajojdajjjjcjjadajajjcjjjajjacjjjjajajaajajajaajajaaaaaaaaajaaaaaacjaaaajaaaaaaaaaaajaajaajaaajazzjzzzzzj000000b39qq99qqq9qqmqqqqq-m-qmqqq=]]~'~'~'~'~'~'~'!'~'~'~,'~'~'~'~,.////u/////////////(xu/////////(///////////////////////////@,','''~!~~~~~~~~!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*~~~,,'''''!+@@@@@@@> ", +" 0000000ddpddpddddpdpddpdpppdpdpdodpddodpdodppppdpoppppvyvyovovoypvvvyoyyoojoooopoyooypjooyoooopjooojpjjojojjdjdjjjpjojjjjdjjjdjajjjjjjjajjjjjjocjajajjajjajajajjjaajcajaajajcaacaaaajcaajaajaaaajcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayzzyzzzz0000000&q999qq9qqqqqqqmqqqmq-m-qq*=],,~'~,~'~'~'~,~'~'~,'~,!,~'~',,=////uwws///////////////////////////////////////////////////!,'',',~!~~~~~~~~~~!~~~~~~~~~~~!*~~~~~~~*~~~*~~~*~~~*~~~~*~~*~*~~~*~,''''',%@++@++++/ ", +" 0000000jddpddppdddpdpddpdpdppdoddpppddppppppppppdpppppvyvvyvyvooyooypoopovovovoyjvojoooojpjpjyjpjoojojpjoojojjjjojjjpjjdajjdajjjjcojjjjjjcjcjjjjjjjcjjajjajcjajcjjajjaajjcajajajjcjaajacjaaaacjaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaajzzzzzyzzj000000b3mm99qm99qqmqqqqqq--qmqqq==*~!~'~'~'~'~'~',~',,,'~'',,'~'~'!>////xwww//////////////////////////////////////////////////#','','!~~~!~!~~~~!~~~~~~~~~~~~~~~~~*~~~~~~~~~~~~~~~~~~*~~~~~~~~~*~~,''''''*@+@$@@@@> ", +" 00000000ddpdddpdpdpdppdppdppdddppppppppdppppdpppoppppvyvoyvovyvyovvyopoyvooooooyooopoopooyjpjojojpjpojojpjojojpjjpjjjjjjojjjjdjojjadjcjjjojjjjjcjajjjcjajajjjajajajajcjaajaaaaaaaaaajaaajcajaaaaaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaa0jzzyzzzzz0000000)999qqq9qq9qqqqqqqqq-m--qqq=]~'~'~'~'~,,,'~',~'~'~'~,~',,',,&/////xwws/////////////////////////////////////////////////(,'','',~!~~~~~~~~~~~!~~~~~~~~~~~~~~~~~~~~~~~~~*~~~*~~~~~~~*~~~*~~~~~'''''',#+@@+@$@@ ", +" 0000000addpddddpdppddpddppppdpdpddodppppppppppdppppppovvyvyvovvoyyoyooopovovooopjpjyjyjojoopjpjojojjpjjojdjojjojjocojojcojjjajjjjjjjjjjjjjjjajjjjjajjjcjjaajcjacjaajaacjaajcjaaaacaaaaaaaaaaaaajaaaaacaaaaaaaaaaaaaaaaaaaaaaaaajzzyzzyzz0000000b999999qqmqqqqqqqqqmm-qmqq=]*]!!,~',,,'~'~,,,,'~',',',,'~'~',.//////ux////xt(///////////////////////////////////////////-,'',',~~~~!~~!~~~~!*~~!~~~~~~~~~~~~~~~~~~~~~~~~~*~~~*~~~*~~~*~~*~*~,''''''-@+@+@@@+^ ", +" 0000000adpdpddppddppdppddodpdjdpdppdpppppppppvpppppvyyyoyyovyovoopoyoyooovjpoyoooyjpyjypojoojpjpjpjojpjjojjdjjdjojdjjoocjjojadjjjjjjjcjjcjjjjajcjajajjcjjaajjjjajajajajcjaaajajajcaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaazzyzzzzzz00000008999qmq99q9qqqqmqqq-mq--qqq=*]'~''~'~'~'~'~'~'~'!,~'~'!,,,'!,,-(/////////uwwwu/////////////////////////////////////////>',''',,!~~~~~~~~~~~~!~~~~~~~~~~~~~~~~~*~~*~~~~~~~~~~~~*~~~~~~~~~~~~,'''''',+@$@+@++> ", +" 00000000ddddpdpdpddpdjddddpdpdppppdoppppdppppppppppvvvyvvyyovoyyopypopooyooyjpooopjyjpjjopjooojojojpjjojdjojjjjjjjjjjjojojjjjjjcoadaojjjjjcjjcojjjjcjjjacjaaaaajacjaaaaaajacjaaaajajaaaaaaacjaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0jajzzzzyzyz0000000b99q999qm9qq9qqqqqqm-q-qm{qq]]~'~,~'~'~',,',,'~',,'~',,','~',,,,,%////////xwww//////////////////////////////////////////!','','~~~!~~~~!~~~~~~!~~~~~~~~~~~~~~~~~~~~~~*~~*~~~*~~~~~~~*~~~*~*~,''''',%+@@+@+@+/ ", +" 0000000adpdpddpdodpdpdopdppdpdpppdppppppoppppoppppyvyvyovyvopypyoooooopoopyoojyoopjyjpoojpjojpjpjojpjojjjjdjojdjoadjjjjjjocjjjjjajjjjcjjjoajjjcaajjajajjjajjaajajcajaajaaaaaaaaaaaaajcajaaaaaaaaaaaaaaaaaaaaaaaaaj0aa0aaaaaazzzzzzzza00000008999qq9q9qqqmqqqqqqmmmmm-qq*=*'~''~'~''~'~'~,,'~'~''~'~'~',,,',,',!$//////(xwu///((////////////////////////////////////#'',','~!~~!~~!~~~~~~!*~!~~~~~~~~~~~~~~~~~~~~~~~~~*~~~~~~~*~~~*~~~~~,''''''~@+@$@@$@> ", +" 00000000dpdpdpdpddpppdddoddodpppdopppdppdpppddppppovoovovyyooyooyoypyoyoooopjypjooopjyjoojpjojojojojojpjojjjojjjjjjjdjjjcojjjjjjjcjjjjjcjajjajjjjjjajaajcjacjjaaajacjcjajaaacjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajzzzzzzzz0000000$9999999q9q9qqqqmqq-q--m=qqq*=~,,!,',,~'~','''~',,'~'','','~'!,,,'''~q@//////(////xwx///////////////////////////////////,,'''',~~~~~!~!~~!~~~!~~~!~~~~~~~~~~~~~~~~~~~~~~~~~~~~*~~~~~~~~~~~~~,''''''#+@+@+@+@/ ", +" 00000000pddpdpdppdpppdpdpdpppdpppppppppoppvpoppppyvyvyvoovypypypoooooopyjoypjpjoooojpjooojooojpjojdjojojjdjjjdjjdjjjcojjjoadjjjjjjjajjjjjajjjajajaajcajajajacaajaajaaajcaajaaajcaaaaaaaaaacaaaaaacacaaaaaaaaaaaaaaaaaaaaajzzyzjzzz000000ab99q9q9mq9q9qmqqqqqq-mqmmqqqqq*'!'~'~',','~,~'~',,',',~'~,,,',',',,,'{{rm>////////swwwt/////////////////////////////////-''',',~~!~~!~~~!~~~~~~!~~~~~~~~~~~~~~~*~~*~~~~~~~~~*~~~*~~*~~~~*~*~'''''''-@+@+@+@+( ", +" 0000000dpppddpdppdppdppdppdopppppdoppppppvdpppovyvyyoyvyooyjyooypyooooyoojyoopoyjpjypjyjpjpjjojdjjjojoojjjdjjjjjjjojjjjjjajjjcojcjjcjajcjajajcjajcojajaajajajaajaaaaaaajaaaaaaajaaaaaacaaaaaaaaaaaaaaaaaaaaaa0aaaaaaaaaazzzzzzyzj000000089999m99q9q9q9qqqqqqm-m--qqq={],!'~'~'~'~'',',',~',~',','~','~',,',,'{{{r{8///////swww/////////////////////////////////>,,'',,,~!~~~~~~~~~~~~~~~~!~~~~~~~~~~~~~~~~~~~*~~~~~~~~~~~~~~~*~~~~~!,''''',.+@+@$@@@ ", +" 00000000pddppdpdpdpdpppppppdpppppdppppppppvppvpvvyopyvovypypoyopojpypoooypooyjpjyojojpjpjojpjojojdjdjjjojjjjdjjdjjjjjdjadjjjjjjjjjjjjajjjjcjjjjajjaaajcjaaajcajcajcaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaabaaaaaaaaaaa0aaaa0azzyzyzzzz0000000)999999q99mqmqqmqqqq-mq-qm{qqqq'',,,',,','~'~'~,,',''~,,,'',,',,'!',,'~{{{{{{$///////tu/////////////////////////////////~,'',''~~~~!~~!~~!~~~~~~~*~!~~~~~~~~~~~!~~~~~~~~~~~~~*~~~~~*~~~~~~~~,''''',&+@$+@+@+/ ", +" 0000000appddpdpppppppppdppppppppppppppppppopppvvyyvoyovooooopoyopojyooojyjojyojpjyjpjojoojojpjjojjjojdjjojjjajjjjjjjajjajjcojjjjjjjjjjjajjaajacjajjcjjajcjaaaaajaajacjaaaaaaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajzzzzzyzza000000b8999999qm9q99qqqqqqqmmm-qq=qq*{!,',,,,,,~',','',,~','','~,,',',,,,',',{{{r{r{{r$///////////////////////////////////////+',',',~~!~~~!~!~~!~!~~~~!~~~!~~~~~~~~~~~~~~~~~~~*~~~~~~*~~~~~*~~*~~,'''''']+@+@)@$@> ", +" 0000000jjpdppdpdpddppppppppppppppppppppppppvpvovoyyvyovypyyoooyopoyopypoopjpjyjpjojpojojpjojoojooojjjdjjjocojjjdadjjocjjjjcjjcjcajcjcjjajjcajjjaaajjaaaaajajcaaaaajaacajcaaaaaaaaaaacaaaaaaaabaaaaaaaaaaaaaaaaaaaaajzzzyzzzzj0000000)999m9q99999qq9qqmqq-m-q-mqqqqq{,'~'~','',,,,,,~''',,,~'''','~','',',''{{{{{{{r{{9>/////////////////////////////////////,',''',!~!~~!~~~!~~!~~~~~~~!~~~~~~~~~~~~~~~~~~~~~~*~~~~~~*~~~~~~~~~~,''''''#+@$@@@+@/ ", +" 00000000ddpdppdjdpppppdpppppppppppppppopppvpvyvyvvovovooyopypoooyjoojyjpjyoojpjyjpjojpjojjpjojjjjjdjjjjojojjdajjjjjjjojjjjjjjjjjjjjjjajjcjjaaajcjaaaajaaajaajaajaaaaaaaaaaaaaaaacaaaaaaaabaaaaaaaabaabaaa0aa0aaaaaazzzzzzzzz0000000)39999999qqq9qm9qqqqmmmmmmqqqqq{r!',',,'{','~''',~'~'',',~,',,'',,',',,,{{{{{{r{r{rrm///////////////////////////////////%'','''~~~~!~~~~~!~~~!~!~~~~~~!~~~~~~~~~~~~~~*~~~~~~~~~*~~~~*~~~*~~~,''''''=++@@+$@+> ", +" 00000000dppdppdppdpppppppppdoppppoppppppvpppvovyyvyoyovoyoooooopyoyoooyjoooyjpjyjoojojpjojojpjdojjojdjjjjjjjjjjjcjjjajjjjjjjjjjjajajajajjcjjaajjajajcjcaacaaaacaaaaaaaaaaaaaaaaaaaaabaaaaaaaaabaaaaaaaaabaaaaaaaazzyzzzyzz0000000089999999m999q9qq9qqqq-m-m=qq=qqr{{'~',,,,',',,,,'',',',,',','',',',',''~r{r{r{{r{rr{r^/////////////////////////////////>',''',,!~!~~~~!~~~~!~~~~~~~!~*!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*~~~~~~'''''',+@+++@++> ", +" 0000000apdpdppdpppppppppppppppppdpppopvpvvvyyovyovvyovooyoypyooopopyjpopojpjyjpjojpjojpjdjjjojjojjjjjdjjdjjjojojjjjdajcjjcjcjajjcjajjajjajcjaaacaajjaajajaaaajaacaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaa0aaaaabaaba0jzzzzzzzz000000002999999q99q99q9qmqqmmmmmmmqqqqq{{r{',,'',,,',,,',',,,,',',',',,'',,'',',{{{{{{r{r{{r{$(/////////////////////////////////='',,',~~~~!~~~!~~~~~!~~~~~~~~~~~~~~~~~~~~~~~~~~*~~~~~~~~~*~~~~~~~*!,''''''-++@@+@++^ ", +" 00000000jdppdppppppppppppppppppppopppvpppvpvyvoyvoovoyoypooojpyjyjpjyooooyjpjyjoojpjojojojojojjjpjojjjjjocjjjjadjjajjjjjjjjjcjajjjcjajaajajajjajaaaajcaaajaaaaaaaaaaacaacaacaaabaaaaabaaaaaaaaaaaabaaaaaa0aaaajzzzzzzzzj0000000)89899999999mq9qq9qqqm-q-m=qqqqq{r{{{'~'!',,,,'''~','',,'',,','',','','''{{{r{{{{{{r{r//////////////////////////////////+,,'''',!~~~!~~~~!~!~~~~~!~~~~!~~!~~~~~~~~~~~~~~~~~~~*~~~~~~~~~~*~~~!''''''!@$++$+@+> ", +" 00000000pdpjdppdoppppdopdodopppppvpvpopppovoyyovyyoovyooypyoyjypjyojoojojyjyjpjojoojojojpjojdjjjjojjdajjojjcojajjcjjjjcjjjjjjjajjjajcjjaaajaacjcjaaaajacaacjaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaabaaaaaa0aaaaaaaaazzzyzjzzz0000000b399999999m999q99qq9qmmmm-qqqqqqq{rr{{',','',',,,',',,'',,',,'',,'',',','{{{{{r{r{r{r{$//////////////////////////////////,','',,~~~,~!~!~~!~!~!~!~~~~~~~~!~~!*~~~~~~~~~~~~~~~~~~~*~~~*~*~~~~~,'''','#+@@+@++@/ ", +" 00000000ddppdpppppdppppppppppvpppppppvppvoyvvyovoypoooypjoopjyyoopjypoopopjoojpjpjpjoojjojjjpjjdjjjjojjjjojjjjjojocjjjjjajajcajajajajcjajcjajajacjaaajaaaaaaaacaacaaaaaaaaaaaaabaaaabaaaaaaaba0aabaabaaba0azzzyzzzyz00000000893i89999999q99qm9qqq-m-mmqq=qqq{r{{r{~'~'~,,',''~''',,','''',,'','',',''{r{{r{{{r{{rm//////////////////////////////////%''',,'!~~~~~~~~~~~~~~~!~~~~~~~!~~~~~!~~~~~~~~~~~~*~~~~~~~*~~~~~~*~~,''''''*++++@$@+> ", +" 0000000apppppppppopppppppppppopvppvppvvvvyyvovyoyyopoooypyooopooyjojyjojoopjojjojojdjojdjojjjjjjdjjjojjjjjjjdajjjjjjjajjjjjjjajcjajajaajajaaaajaajaaaaaaaaaaaaaaaaaacabaacaaaaaaaaaaaaaaaaa0aabaaaaaaaaaazyzzzzzzz000000002399999999999qm99q9qmmmmmm-qqqqq{rrr{r{r''','',,',',,,'',',','''',','''',{{{{{{r{{r{rr>/////////////////////////////////(,,'''',~~!~!!~!~!~!~!~~~!~!~~~~~~~!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'''''',.+@+++@+> ", +" 00000000jppppppdpppppppppppvpdpoppoppppvovoyovoypoyoypoyojyoyjpjopypjoyjojojpoojpjjjojjojjjojojjjcjjadjadjjajjajjjjcjjjcjjajajjjcjjajajcaajaaaaaacaaajcaacaaaaaaaaaaaaaaaaabaabaabaaaaabaaaaaaaabaaaaaaazzzzyzzyzz0000000)9999398999999999q9qqmmq-mmqqqqqqrr{{rr{{{,,','',,',''',,',','',','''',''{{r{r{{r{r{r{8//////////////////////////////////=,',',,!~~~~~~!~~~~~~~~~~~!~~~~~*!~~~~~~~~~~~~~~~~~~~*~~~~~~~~*~~~~~'''''',-+$+@@+++( ", +" 00000000jppppppppppppppppoppvpppppvvvvvyyvvoyooyyoooyjpypojpyjyjojyyjpojyjojojjjoojpjojoojojdjoojojjjjjjadajjcjjcojjcjjjacjjajajaacjaajacjajcjaaajaaaaaaaaaaacaaaabaaaaabaaaaaaaaabaa0aaaabaa0aaaabaaajzozzzzzzj0000000b33939i99999m99qm9q99mm-mmmqqqqqq{rrr{{rr{{{',',','',','''','',''',','''',{{qm{r{{{r{rq(/////////////////////////////////@',''''!~~,~~,~~!~~~!~!~!~~~!~!~!~~~!~~~~~~~~~~~~~~~~~~~~~~~~~~~~*~~!''''''!++@++$@+> ", +" 00000000jpdpppppppdopppppoppvpvppppppvovyovyypoopypyoyjoyjyopoypjojyjpjpjpjpopjoojjojjjdjjjjjjjjjjocjjjjjjjjjjjjajjjajjjocjajajajjajaaajcaaaajaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaa0aazzzzzzzzzz000000008789989899999999999qqmmm-m-qqqqqqrr{rr{r{r{{{'',',',','',''','',''''''''{{{r>/$qrr{{r{$//////////////////////////////////!,'',',!~~~!~~~~,~~~~!~!~~!~~~~~~~~~~!~~~~~~~~~~~~~~~~~~~~~*~~~~~~~~,''''',%++++@+++/ ", +" 00000000pppppppppppppopppvppppvvvvvvyyoyoyoyyoyjyjpjpyypoojojyjypjojyjojojjjojdjjojoojjjojjjdjjdajojjjjjcjjjjjjjcjjjaaajaajcjaaajaajajajajacaaacaaacaaaacaaaaaaaaabaaaaabaabaaa0baaaaabaa0aab0aaabjzyzyzzyzj00000000289397999i899999q9q9qmmmmmmqqqqqqr{rrrr{r{rr{{{'','''',',&-'','',''',','~{{{m////${r{rq//////////////////////////////////#'','',!~!~!~~!~~~!!~~~~~~~~!~~~~~~~~!*~!~~~~~~~~~~~~~~~*~~~~~~~*~~~,''''''=+@+@++@$> ", +" 000000000oppdodopppppppvppvpopppppppvvyvvypoypypyyoyjojyoyopyjpjoopjojpjoooojjjpjoojjjdjjdjjjjjjojjcjjjjojjjcjjjjjajjajjjjajjcjajcjcaaaaaajaaaaaaaaaaaaaaaaaaabaaaabaaaaaaaaaaaaaab0aa0aabaaabaaazzzzzzzzzz00000000)39398i8989999m999m9mmmmmmmqmqqqq{rrr{r{rr{r{r{{{,''','''!//@*''''',''''{{{{r///////8{r>/////////////////////////////////(,',''',~!~~~!~~!~~~~~~~~~!~~~!~~~~~~~~!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'''''',#@++$@++@ ", +" 000000000ppppppppoppvpppppppvovvpypoyooyoyooyjyopypoyopjpjyjoyjyjooojopjojojpjjjpjoojjjjjjjjjjjjjojojjjcjjjjajajajjcjjacjajjjaaajajaacjaaaaajaacaaaaaaaaabaaaaaaaaaaaa0aa0baaaaaaaaaaabaaaaaaaaazzzzzzjzz00000000b33979393i999999999999mmm-mmqqqmqqrrrrrrr{r{r{rr{r{~'''','.////.~''''',~{{{r{$////////($//////////////////////////////////-'',','~!~!~~~~!~!~!~~!!~~!~~~!~~!~~~~~~~!~~~~~~~~~~~~~~~~~~~~*~~~*~,''''''-+++@)@$@( ", +" 000000000ppppppppppppypopvppppopvppyyvoyypoypyoyjopjyoyopjpoojpojopjojojpjojoojjjjjjdjojjdjdjjjjjjcjjjjjjjjjjjjjajjajajjaaaajaaajcajaaacaaacaaaaaacaaaaaaaaaaaaaaabaabaaaaaababaaaaaaa0aaa0aajzzzzyzzzz00000000b>@8398i898i899999999qmmmmmmmqqqqqrrrrrrrrrrr{r{{r{r{{{,''=///////%,',,{{r{{{q////////////////////////////////////////////@','',',~!~!~,~~!~~~!~~~~~!~!~!~~!~~~~~~!~~~~~~~~~~~~~~~~~~*~~~~~~~~,'''''',+@$@$@+@@ ", +" 00000000appppppvpvpppppvpvvvpvvvvypoyooyyoyjyjpyyoyjoojyoooyjooojooooojjoojjpjooojjjjdjjjajjdajjojjjjjjcjjcjcjjjajjcjaajcjajcjaajaaacjajaaaaaaaaaaaabaacabaabaaaaaaaaaabaa0aaa0babaaaababaajzzozzzyzz00000000b(>>>$839i8i8999999999mmmmm-mqmqqqrirrrr{r{rr{r{rr{r{{{{{{~>////////(m{r{{{{r{>////////////////////////////////////////////!,'''',~~~!~!~~~~!~!~!~~~~~~~~~~~~~~~~~~~!~~~~~~~~~~~~~~*~~~~~~~~~~~,''''''%+++@+@+@/ ", +" 00000000apppopppoppvppvppvpvvpvpyovyypoopyypyjyjpoyoyjyooojoooopjojoojpjjojjjjjojojjjjjojjjjjjjjjjjjjjjjjjjjajcajajjajjajaaaajaaajjaaaaaaaaacaaaaaaaaaaaaaaabaaaaaabaaaabaaaaaaa0abaaaa0ajzzzzyzzzz000000000@>@>@>@$38i8i898999q9mmmmmmmqq9qqmrrrrrrrrrrrrr{rr{rrr{r{{8///////////>9{{r{{8////(s//////////////////////////////////////#'',,,',~~!~!~~,~~~!~~~~~!~~~!~~!~~~~!~~!*~~!~~~~~~~~~~~~~~~~~~~*~~~,''''''*++++++++> ", +" 00000000jppppopppyppyppvvvvpoppyyoyoyyooyjyopyjyjpyjpjyjypjyjjyjpjojojopjooojdjjjdjjdajjjjjdajjcjjjjjjjjjajjjjjjajcjajajajaacjaaaaaaaaacjaaaaaaaaaaaaaaaaaaaababaaaaabaaaba0aa0aaaaabaajzzzzzzyzza00000000&*#@>>>@>@198i8i999999mmmmmmm9qqmqrirrrrrrrr{rrr{r{r{r{r{{r//////////////$q{r{(////xwwu////////////////////////////////////,,''',,~~,~~!~~~,~~!~!~,~!~!~!~~!~!~~~~~~~!~*~~~~~~~~~~~~~~~~~~~~~~~'''''''#++@+$@+@ ", +" 00000000jvpppvpppppvpvpvpvppvvvvoyypoyoypyooopypjoyjpjyjpjopjojojpjpjjjpjjjjjojjjjjjojocjjjojjjjjjcjajcjjajajjcajajaajcjcjaajcaaajcaaaaaaaaaabacaabaaabaaaaaaa0aab0aaa0aabaabaaabaa0azzzzyzzzzzj0000000bl&***#@>>@>>@1i9989999mm%mmmm9mq999rririrrrrrrrr{r{r{r{r{r{$///////////////(${$////swwwt///////////////////////////////////-''''''~~~!~!~,~~~~!~~~~~~~~~~~~~~!~~~~~~~~~~!~~~~~~~~~~~~~~~*~~~~~~,''''''-@$++@+++( ", +" 00000000avpvpvppypppyppopyvvvyoyoyoypjyyjpyjyjypyooyjyjyojoopjojojojpjjojpjojjojojjjjojjjjjjdajjjjjjjjjajjcjjjjajajajajaajaaajaaajacaaaacaaaaaaaaaaaaaaaaaaaaaaaaaa0aaa0aaaaba0aabazozozzzzzz000000000)q**&*&-$@>@>@>$899999mmmmmmmq99qqqiirrrrirrrr{rrrrrr{rr{rrm////t/////////////(/////(xww///////////////////////////////////>,',,''!~,~~~!~~!~!~!~,~~~~!~~~!~~~~!~~~~!~~!~~~!~~~~~~~~~~~~~~~~~~~!'''''',.++@++++@ ", +" 00000000avpoppppvppvpypvpvppvypyoyyopyoyjpoyojyjoooopjyjpjyjoyjojojojojojjjjoadadjjjjjocjajjjjjjjjjjjcajjjjajcjjcjaaaajaajcaaaaaajaaaaaaaaaaaaaaaaaaaaba0abaabaaabaabaaba0aabaaaazzzzzzzyzz00000000be**-*****=%$>>>>>>$8898mmmmmmm9qq9qirrriirrrrrrrrrr{rr{r{r{r>///twwt///////////////////uu///uwt/////////////////////////////~','',,~~~,~~!!~!~~~~~~~~!~~!~!~!~!~~~!~~~~~~!~~~~~~~~~~~~~~~~~~*~~~'''''''&+++++@$+/ ", +" 0000000000vpvpypvpoppppypvypoyypyoyooyopyooooyjpooojoojoojojpjojojjojpjjoojdjjjjjjjjjjjojjjcjjcjajcjjjjcjjaajjajaajajcaacjajaaaaacaaaaaaaaabaaababaaaaaabaaaaaaa0aaaaa0aaba0aabazzyzzzzzzz000000000)**-**&*-*===%@@>@>@>1mm8mmmm99999qiiiirrrirrrrrrrrrrrrrr{r{8///(wwwx////////////////////////xwwx///////////////////////////.,'',''!~,~~~~~~!~~,~!~!!~!~~!~~~~~~!~~~~~~~~~~!*~~~~~~~~~~~~~~~~~~~,'''''']++@$+++@> ", +" 0000000000oppppvvpypyvpvppvpyoyooyyyjpjyoyoooyooyjyoooyjpoojojpjpjojjojjjjjjjjjdjjdjjjjjjjjjjjjjjjjjajjjcjjaaaaajcjaajjaaaajcaaaaaaaaaaaaaaaaaaaaa0abaaaaabaabaaba0abaaaaaa0aazzzzzzzzzz000000000)****-**=**-***m#@>>@>@$#mmmmm9q9mq9rirriirrrirrrrrrrr{r{rrrr(///(xww(///////////////////////uwwws///////////////////////////,',''''~~!~~,~,~!!~~!~~~~~~~~~~~~!~!~~~!~~~~~~~~!~~~~~~~~~~~~~~~~~~~,''''',#++++@+++/ ", +" 0000000000pvpyppppvpvvvvypyyoypyjpyyoypjypjyjooooojpjoojyjoojojjojojojpjojoojjjjjajjjjdajjjjjjajjjjajajjaajjjjaaaajaaaaaaaaaaaaaaaaaacaaaaaaaaaabaaaaaba0aa0aaaaabaaabaabaajzzozyzzzjz000000000)!]]***=-*-**-*===m#>>@+.+.8m8m99999iiiiririrrrrrrrrrrrrrrr{rrq$////(s///(wx(//////////////////(xw///////////////////////////-,'',,,!~~~,~~~~!~~~~~!~,~~,~~~!~~~~~!~~!~~~~~~!~~~~~~~~~~~~~~~*~~~~,''''''=+++++$++^ ", +" 000000000jppypypyppypppppyoyoyyjoyjypyjypyoopjypjyjyjpjojoojoojpjojjjjjjjjjjjjjjjdajjjjjjjjjjjajcjajaajjcajcjajaacajcaaaaaaaaajbaaaaaaabaabaaaaaaaaaaaaabaab0aaabaaa0abazzzzzzzyyzj00000000a&]]*]=]]****&**=*===*m+++.+++.m999q9iiiiiiririirirrrrrrrrrr{r{rrrm>///////twww(////////////////(/////////////////////////////>,''''',~,~~~~,~!~,~,~!~~~~~~,~~~!~!~~~!~~~!~~~~~~!~~~~~~~~~~~~~~~~~!'''''',.@$@++@+@ ", +" 000000000ovpppypvpvpypyoyopyopyypoojyojyjooyjyjyjpjojyjpjoojojjojojoojojdjojdjjjajjjjjcjjcjjcjjjjjjajajjajajacjajaajaaaaaacaaaaaabaaaaaaaaaaabababaaaa0aa0aaba0aababajzozyzzzzzzz000000000&**=]=]*=*=*=*=&*=*====-&...++>>$m99iiiriiiiirrrirrrrrrrrrrrrrrrrrrrm//////wwwx///////////////////////////////////////////////],,''',~!!~!~!~~~~!~~~~!~,!~~~~~~~~!~~~~!~~~~~~~~!~~!~~~~~~~~~~~~~*~,''''''&++++++++/ ", +" 000000000jpvpppypypypppoyyyoyjyoyoyoyjyooooooojyjopjojyjoojpjojjojdjjjjjjjjjjjjjjjjjjjjjjjjjjjaajcjjajaaajajaaaaaaaajcaaaaaaaaaajbaaaaaaaaaaaaaaabaabaabaaaaabaa0a0jzzzzzzzzzz000000000b;=*]]*]=]]]*=****=-*-**-=-&%.+@@@>@$9iiiiiiiriiriririrrrrrrrrrrr{rrrrrr$/////tw(//////////////////////////////////////////////+,'',,,,~~,~~~~,~!~~,~!~~~~~~~!!!~!~~~~!~~~~~!~~~~~~~~~~~~~~~~~~~~~~,''''''!+++@$+++> ", +" 0000000000ypypppppypyyooyopyopoyjpyjpooooyjooyjpojyjojjojjjpjojjjjjdjjjjjjjdjjdajjjjjjajjajjajjjjacjajaajaaacjaacjaajaaaaaaaaaaaaaabaababaaaa0aa0aaaaaaab0a0aabaazzyzzzzzzyz000000000b-!]]=!=]*=*]]]=]=****=*&=-*--&#>>>@>>^8iiiiiiiiririrrrirrrrrrrrrrrr{r{rrrr$////////////////////////////////////////////////////,'','',!!~!~,~~~~~,~~~!~!~~!~~~~~~~~!~~!~!~~~~~~~~!~~!~~~~~~~~~~~~~~'''''''#++++)@$@/ ", +" 0000000000opyvypypyppypyoyoyoyoyjyoyoyjpjyoojyjojpjypjooojjjojoojjjojdjjjajjjjjjcjjjjajjjcjjjajajjjcjajcajjaajjaaaaaaacaaaacaaaaaaaaaaa0aaabaaaaabaab0aaaabaaaazzzzzjzyzzz000000000a=]]]]]=!=]]*]=**=*===*-*=&=&*=**-$>@>///^8iiiiiiiririirirrrrrrrrrrrrrrr{r{rr/(/////////////////////////////////////////////////%',,'''~!~!~~~~,~!~~~,~!~~~~~!~~~,~~!~!~~~~!~!~~~~*!~~~~~~~~~~~~~~~~,''''''*+++@$@++> ", +" 0000000000jpppppypvyooyyoooypjyoooojpyjyjoooooyjojjjyjjojojdjjojojjjjjjdjjjjjjojjjjjjcjjjajcjjaajjajaajaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaabaaaabaa0aa0aabaa0aabjzyzzzzzzyz0000000000b*]*!]]!]*=]*=]]]*]*]****--=&=--**=*&@//////$9iiriiirirrrririrrirrrrrrrrrrrrr$//////////////////////////////////////////////////(,''',',!~!~,!~!~~~!~~!~!~,~,~~~,~!~~~~~~!~~~~~~!~!~~~!~~~~~~~~~~~~~!'''''',#+++++++@ ", +" 00000000000pyvvpyppyoooypyoyoooooyjyjypjyjyjojooopjojpjoojjjojjjojjojjjjjadjajjjcjjjjjjajjjcjajaajajajcjajcaaaaaaaaaaaaabaaaaaaabaabaaab0aaaabaabaaaababaazzzzzzyzzzz0000000000b&=]]]]]]]!!=!]=]=]=]*]==-*=-=&=*=*==**%///////$iiiiiriiirirrirrrrrrrrrrrrrrrq////////////////twu////////////////////////////////*,'''',~!~!~~,~~~,~~,~~!~~~~~~!~~~~!~~!~!~~~!~!~~~~~~*~!~~~~~~~~~~~~,''''''&++$+++++( ", +" 00000000000ypvvvyvypyoyjyjyoyoypjyoojyjoojypjojjoojyjjjojojjojjjjjjjjjjjjjjjjjjjjjjjcjjajjjjajaajaaaajaaajajcaaaacaaaaajaaaaaaaaaaaaaaaaaab0aaaaaba0aaajzyzzzyzzzzj0000000000).#%-]]]]]]]]]]**]=~=]=]*=-=-=*=*=*=*=~~~].//////^8iiiiiriririrrirrrrrrrrrrrrr$///////////////(wwwt//////////////////////////////@',,,''~,~!~!~!~,~~~!~!~~,~!~~~!~~~~~!~~~!~!~~~~~~~~~!~~~!~~~~~~~~~~,''''''!++++@+$@> ", +" 0000000000jvypvpyjyoypypyjpyjooooyooyooojypjyjojojojojojojjojojdjjjjocjjjjjjjjajjjjjjjjaajcjajcjajaajaaajaaajaaaacaaaaaabaabaaaaaaaabaaaaa0abaaaaaaazyzzzzyzzzzj000000000b)#####%=!]]]]]]]!]*]=]=]=-=*-=-===*-*=~~!!~~=@//////^8iiiriiririrririrrrrrrrrr8////////////////twww(//////////////////////////////,,'''',~~~,~!!~!~,~~!~!~!~!~,~~~,~~~!~~~~~~~~~!~!~~~~~!~~~~~~~~~~~~~,''''',%++++++++/ ", +" 00000000000pypyvyyooyjyoyoooyjpyjojyjpjyjjojojojoojojjojojjjjjjjjdjjjojjjjjjjjjcjjajajjjjajajjaajaacjaaaaaaaaaaaaaaaaaaaaaaaababaaa0aabaabaa0babazzzzzzzzzzzj0000000000b+########%=]!=!]]]]]]*]*===-=-*=***=*=*~!~~!~~!->//////$9iiiiririrrirriirrirrrr(/////////////////uxt//////////////////////////////#''',''~,~!~!~~~,~~~~~~,~!~~~!~~~!!!~~~!~~!~!~~~~!~~~~~~~!~~~~~~~~~~,''''''*+++$++++> ", +" 00000000000jpypoyoyoyoooyjpyjojypyjyjojyjpjyjoojpjoojjdjojdjojjjjjjjajjjjjcjjjjjjjajjajajajaajcaajaaaaaaaaaaaaaaabacaaaaaaaaaaaaaba0aaaa0aaa0ajzyzozzyzjzzz0000000000b############-]]]]]]!]]!==-=-=*-===]=**~~~!~,~,~~~~%(//////$iiiiiriiirirrrirrirr$//////////////////////////////////////////////////(,',,'',~~~~~!,!~~~,~,~~~~~!!~~!~~~~~,~!~~!~~~!~!~~~~~~~~*~!~~~~~~~~!'''''',#++++$++@ ", +" 00000000000yyyoyoooyoyooyoyoyjjooooojpjoyjpjjjjjojojjjjjjjjjjojjjjjjcjjjjjajaajjjaajcjjaajaajjaaacjacjaaacaaaaaaaaaabaaaaaa0abaaaba0abaabajzzzzzzzzzzzj00000000000)###############-]]]]]]]]===*-=-*]*]=]=!,,,~~!~~,!!~~~#///////1iriirririirrrirrii(////////////////(/////////////////////////////////=,''','~~,~,!~~!!!~~~~~,~!~~!~~~,~~~~~~~!~~!~~~~~~!~!~~~!~~~!~~~~~~~,''''''-++++++++^ ", +" 000000000000yoyoyooooooooojyyjyjyjyjyjjojjoooojojjojojojjojjjjdjjjojjjjjjjjjjjcjjajjjajcajjaaajjaajaaaaaaaaaaaaaaaaaaab0abaaaaaaabaa0aaazzzyzozzzyzz00000000000b #%##%)########%-!]]]]===-====*=]*]*]!,,,,,~,~!~!,~!!*+////(/^8iiiirirriiirrrr$///////////////////(//////////////////////////////@','',',,~~~~!!~~~!~,~,~~~~~,~!~!~~~~~!~~~~~~~!~!~!~~~~~~~!~~~~~~~~~,'''''',++++++++@ ", +" 000000000000jyooyoyooyoooyjpjyjpjyjyjyjoojojjojojjojjjjdjjjjjjjjjjjjjjcjajjajjjajaajaajjaajaaaaaaaaaaaaaaacaaabaabaaaaaaaaa0aaaaaabaazzozyzzzyzzzj00000000000b %####%###)%####%=]]======-*=]*=*]],,,,!,,!~,~!~!!!!~!->//////>9iiiiirrriiir8///////////////////////////////////////////////////~,'',',~!~,~~~~,!!~~!~~!!!~~!~!~~~,~,~~,~~!~~~~~~~!~~~~~~~~~!~~~~~~~,''''',%+$++++$@/ ", +" 000000000000ooyoooyoyjyjyjyjoyjyjpjyjooojoojojojojojjjjjjjjjjjjjjjjjjjcjjjajjcjaajajajajcajcaaajcaaaaaaaaaaaaaaaaaaaabaabaaba0aaazozyzzzzzzzzz000000000000 %####%#########&-==-===]]]*]]]]!'!'!'!,,,,~!!!~,~,,,!&(//////$9iriiiirrri(//////////////////////////////////////////////////#,'',''~,~~~,~,~~~,~!~!~~~~,~~,~~~!~!~~!~!!~!~!~!~~~!~~!~~~~~~!~~~~~,''''''~+++$++++> ", +" 000000000000jyjyooyjypjyoyjyjojojyjjojojojjpjjjjdjjojjojjjjjjjjjjjjjjjjajjjjjjjajajaajajaajaaaaajacaaaaaaaaaaaabaaaaaaaaa0aaaayzzyzzozzozzj000000000000b #############%%%====*]!]]]=!,,,!'~'~'~,,,,~,~!!~!~,!~#(//////$iiiiiiii1///////////////////////////////////////////////////'','',,~!~,~~~~,~!~,~!~~,~~~~~!!!~~~~~~~~~~~!~~~~~~~!~~~~~~~~!*!~~~~'''''''#++++++++ ", +" 000000000000jvjyopyjyjpjyjyjyjpjyjyjoojojjoojjojjjojjjjjdjjjadajjjjjjjajaaajcajaajaaajaajaajaaaajbaaaaaaabaaaaaaabaaaabaajozzyzzzzzyzzzz000000000000 %#####%###%#%#%&=]]]]]]],','~'~,,',,,!,!,,~,~,~,~,,,*.///////8ririi9(///x(/////////////////////////////////////////////-,','''!~!~!~,~!~!~!~~,~~~~!~,~~~~~~~~~,~~~~~~~~!!~!~~~!~~~~~~~!~~~~'''''''-+++++$++( ", +" 000000000000jyojyoyjyoooojyjoojjpjyjjoojjojjjojjjjojjjjjjjjajjajajajjjjjajjajajajaaaaaajacaaaaajaaaaaaaaaaaabaa0abaaajzzzyzyzozzzyz0000000000000b %##%##)%%#%#%#%%-!]]]],'''',''!~'~'!,,!!,!,~,~,!~!!,!*@//////^8iii$///twwt///////////////////////////////////////////>','',',~!!!~~~,~~!!~!~!~,~,~~!~,!!!~,~~~~~~,~~~~~~~!~~~~~!~~~~~~~!~!'''''',.+++++++@ ", +" 00000000000000poyjyjpjoyjoojoyjojjojojojjojojjojjjjjjjjjjjjjjjjjjjcjaajjjaajajajcjajaaajaaaaaaaaaabaaaabaaa0aaaaaajzzyyzzzzzzzzzj000000000000b %###%#%#%#%####%=]]'''''''~',',~'!',,,,,,,,~~,~,~!~!,&>//////$98///(wwwx///////////////////////////////////////////!,'',',!~~~,~,~~~~~!!~,~~~~~~~~!~~~~!~!~,!!!~~!~!~~~~~!~!~~~~~~!~~~!,''''''&+$++++++/ ", +" 0000000000000jyyojyyjpjooyjjyjoojjojojojjjjojjojjjjjjjjjjjcjjajjjjjacjajjacjajajaaaaaaaaaaaaaaaaaaaaaaaaaaaaajzzzyzzzzozyzyj00000000000000 %%#%#%%########-,''''''''',~'!,~'~'~!~,!,,,~,,,,!!!!!%(//////^////tww(///(//////////////////////////////////////.'','''~~,!~!~!~,~,~!~~!~,~!!!~~~,!!~~~~~~~~~!~!~!~!~~~!~~~~~~~~~~~~,'''''']++++++$+> ", +" 00000000000000ypyjyjyjjjyjjyjoojojojjpjojjjjjjojjjjjjjjjjjjajjajjjajajajjaaaaajcjaaaaaaaaaaaaaabaaaaabaajjzozyzzzozyzzzzj0000000000000b %%%%%#%#%###%###..='''''''''','~'!'~','~,!,,~,~,~!,,~,~~#///////////(u////wx(////////////////////////////////////,,'',',!~~!~!~~,~~~~,~!!!~~~~~,~~~~~!~~,~~~~~~~~~~~~~!~~~~!~!~~~!~~!'''''',#++++++++/ ", +" 000000000000000yyypjyoojyjjpjjojjjojjjjojojojjjjjjjjjjjajjjjjajajjajajaajaajaajaaaajaaaacaaaaaaaaabajjzyzyzzozyzzzzzj00000000000000b %-%-%%%%##########...#]'''''''''',~'~,'~,,'!!,!,~,,!,~,,!!,]+//////////////xwww(//////////////////////////////////-',''',~,!!~!~,~~,~,~~!~~!!~,~~~,~~!~!~~~~~,~~~~~~!~!~~~!~~~~~~~~~~~,''''''=++++$+++^ ", +" 000000000000000jyyypyjyjojojooojjojojjjjjjjjdadjjjjjjjjjajjjjajajajajjajaaaaajcaaaaaaaaaaaaaaaaazzzyzyzzyzzzzzjzj00000000000000b %%&%%-&% %#######.......%!''''''''''!'~'~,!~'!'~'~,~,~,!!,!!!~=>///////////(xwwx//////////////////////////////////>,',',''~~~!~!~!~~~~~~,~,~,~~~,~~~~!~!~!~!!!~,~!!~!~~~~~!~~~!~~~~~~~!'''''',#+++++++@ ", +" 0000000000000000jyvyyojyjjjojojjojjojojjjjjjjjjjjjjcjjjcjjajjajajaajaacjaaaajaaaaaaaaaaaaajozyzyzyzyzzzyzyzj000000000000000b %-%-%-%%- %####...#......-,''''''''''~'~',~'~,~'~',,~'~,!,,,,!,&(//////////(tw(//////////////////////////////////],''',,~~,!~!~,~!,~,~!~~!~~,~~~!~,~~~,~!~~~~~!~~~~~!~!~~!~!~~!~!~~~!,''''''&++$+++++/ ", +" 00000000000000000oyyyyyyojojojjpjjjjjjjjjjajjjjjjoajjjjjcjajajajaajjajaajaaaaaaaaaajjozyzyzyzyzyzzozyzj0000000000000000b -%%-%%&% #......$......#-'''''''''','~,,!','~,~~'~'~,!,!!!,!,~%//////////////////////////////////////////////.,',',',,~~!~!~!~~!~~~!~!~,~~,~,~~~,~~~!~~~~~~~~~,~!~~~~~~~~~~~~~~~~,''''',!++++++++@ ", +" 00000000000000000jyyypyyyoojjjjojojjjjjjjjjcjjajjajajjjjjcjjcjjaaaaaaaaaaaaajjjoyyzyyzyzyzyzyzyzzj00000000000000000b %%%-%%-%- .....#........#='''''''''',~'~!!,,,,'~'~'~!,,,!,!'!,~.////////////////////////////////////////////,'','',~~!!~,~!~,~!~,~~,~~!~~~~~!~~~,~~!!~,~~~~,~~~~~!~!~!~!~!~~~~!~,''''''%+++++$++/ ", +" b000000000000000000jyvyyvvyvooojojjjjjjjjjjjajjjjjajajjjajjaajjaajajjoooyoyyyzyyzyzyyzyzyzzzjj00000000000000000b -%-%-%%-% $...+#$.......%]'''''''''','~'~'~~,~,~'~,!!!,!,!,!!,*@/////////////////////////////////////////%,','',!,~~!~!~!!~!~!~,~~,~!!,~!~~,~!~,~~~!~!,~!~~!~~!~!~~~~~~~~~~~~,''''',=++$+++++> ", +" b0000000000000000000jyyyyyyvyvvyvooooojjjjjjajjjajjaajjjjjojooooyyoyyzyyyzoyzyzyzzyzyzj00000000000000000000b %%%-%%-%% .#+...#.......&!''''''''',,~'~''~'~'~'~'~'!'!,,'!,!,&>//////////////////////////////////////(''','',~~,!~!~!~~!~,~~~~!~!~~!~,~~~~~~!~,~~~~!~~~~~,~~~~!~!~!~!!~~~,'''''',#++++++++ ", +" )000000000000000000000ayyyyyyyyyyyyyyyyyyvvyoooyyyyyyyoyyyyyyyyzyyyyyyyzyzyzyyyzza00000000000000000000b %-%-%%%-% #+#....$.......-'''''''''''~,!~'~,~,~,~,~!!,,!!',,,,~%(////////////////////////////////////*','','!!~~,~!~!,~!~!~,~~!~!~!~!~,~~,~~~!~!!~~~~,~~!~~~~~~~~~~~~~~!~,''''',-++++++$+( ", +" b0000000000000000000000jjyyyyyyyyyyyyyyyyyzyzyyyyyyzyyyyyyyyyyyzyzzyzyzojj0000000000000000000000bb %-%%-%-%-% .$.#.#........#='''''''''''~'~'~'~'~'~'~,!'~,!,,',,,~#//////////////////////////////////@,','',,~~,~!~!~!~!~~!!~~,~~,~!~!~~!~~~,~~~~!!~~~!~~~~!~!~!~!~!~~!~~,''''''!.++$+.++> ", +" b0000000000000000000000000ajyyyyyyzyyzyyyyyzyzyyyyyzzzyzyyzyzozjaa0000000000000000000000000b %-%%-%%-%% #+.+#$..#.....#]''''''''''~'~'~'~'~,~'~!!,,,!'!,,,,,*+////////////////////////////////,,'',''!~~!!~,~!~~!,~~,~~!~!~!~!~~,~~!~~~,~!~~~~~~!~,~~~~!~~~!~~!~~!'''''',%++.+++++/ ", +" b0000000000000000000000000000jajjjjjzjyoyyyyyyzjjjjjaaa0a0000000000000000000000000000b %-%%-%%-%% ....#+........%!''''''''''~'~,~,~'~,~'~'!'!,!,,'!,,,->/////////////////////////////%','','~~,!~~!~!~,!~~!!~,~~,~~!!~,~~,~!~~~!~!!!!~~~~~!~!~~~~~~~~~~~~,''''''*++++++++> ", +" )b000000000000000000000000000000000000000000000000000000000000000000000000000000b %%-%%-%%-%% ....#$#+#.....-'''''''''''~'~',~,,~,~!~!!,,,!,,,,,,,&(//////////////////////////(,,'',',,~~!,~,~!~~!!~~!~,~~~!~,~!~,~~,~~,~~,~~~~!~,~~~~~~~!~!~~!~!!~'''''',#++.$.+$+ ", +" )b0000000000000000000000000000000000000000000000000000000000000000000000b) %-%-%%-%-%% .$.......$#...#-'''''''''''~!~'~'~'~',~'~,',,,,',',,!@/////////////////////////=,''','~~!!~~!~,~!!~~,!~~!~,~~~~~!~!~~~,~~~~~~,~~~~~~,~~,~~!~~~~~~~!,''''''-+.++++++( ", +" %)b00000000000000000000000000000000000000000000000000000000000000b) %%%-%%%-%%%% ...$..........#='''''''''''~,~,~'~~'~,~!~!',,,,,,,,,=(//////////////////////@,''','~,~~!,~,~!~~!!~~!!~,~~,~,!!~!~~,~~~~,~!!~!!,~!~~!~~!~~~!~!!~~,''''''!#++$).++@ ", +" %&%)bb0000000000000000000000000000000000000000000000000000bbb %-%-%%-%-%-% .#.#+.........%]'''''''''','~,{',~'~,,~!~'~',,,',,,,&/////////////////////!',,'',!~,!~~!~~,~,~~,~!~~!~!~~~~!~,!~!~~,~~~~!~~~~~!~~!~~~~~~~~~~~~'''''''%++++$+++/ ", +" %%%%%))bbb000000000000000000000000000000000000000bbb %%%-%%-%-%%%% .+#...$#.#....%,'''''''''',,,~'~,~'~,,~'~!',,,,,,'''#//////////////////#','''',!~~,~!~,~!~!~!~!~!!~,~~,~,~!~~!~,~~~~,~~!!!,~~~~~,~!!!~!~~!~,,'''''*++.+++.+> ", +" &&%-%%%%%%))bb000000000000000000000000b0bbb) %%-%-%%-%%%-%- ..$#..........#-'''''''''',!!~'~,~,~,~,~,~',,,',,,,,!@///////////////(,,'',,,~~,!~!~,~!~,~!~!~,~~~!~~~~~~,!~~~!~~,~~~~~~~!~!~~~~~~~~~!~~!!'''''''#+$+.++$+ ", +" %&%-%&%%%%%&%&&% )))) %%-%-%%-%-%-%-% ......$.#.....#='''''''''''~'~'~'~,~'~,~~!,,',,,,'',*>/////////////-''',''!,~~,~,~!~!~!~!!~!~!!!~,,~,~!~~!!,~~!~~,~,~!!~~~,~~!~~~~~~!~~,''''''-.+.+++++( ", +" %%-%&%&%%%%%&%%%- %%-%-%%%-%-%%%%% ..$#..........#]''''''''''~,~'~'~,~'~,,~!!,',,,,,',,-(//////////>,,,''',~~,~!~!~,~,~!~,~!~!~~!~~~~!~!!~~~!!~~~~~~~~~!!~~~~~~,~,!~~~~,'''''',.+++$.+.@ ", +" -%-%%&%&%%&-%%%-%% %%%-%-%%%-%-%%%-%- ..+#+#$....#..%!'''''''''''~~,~,!,{'~,~!!!,',,','',,%/////////!,'',,'~,~!~!,~!~!~,~!~~!~,~!~!!!~,~!~,!!~~,~,~!~,~!~~!~!,~!~~~~~~!~,''''''&+.+.++++/ ", +" %-%%-%-%%-%-%-%%-%%%- %%-%%%-%-%%-%-%-%%%-%- ..$...#........-''''''''',',~,~'!!!,~'~,~!',,,,,',,,,.//////#''''''~~~,~!~~,~,~~!~,~!~!~,~!~~!~~~,~~~,!~~~~~,~~~,!~!~~~~~!~~~,~~,'''''']+.+++.$+@ ", +" %%-%%-%%%%%-%%-%-%%%%-%%%-%% %%-%%%-%%-%%--%%-%-%%%%%-%- +#....$..#....#=''''''''''',~!!,~,~,~,~!~',,',,'''',!>////,,,,','!,~,~!!~!~!!~,~!~!!~!~!~,~,~,~~~!!~~!!,~~~~!~~~!~~~!~~~,~~~~!'''''',#++$.++++/ ", +" %-%--%-%-%%-%-%-%%--%%-%%-%%%-%%%-%%%-%%-%%-%-%%-%-%%%%-%%%-%--% ..#+#+.......+#]'''''''''',~,~'~,~,~,!~!!!',,,,,,','=(/-'''','~~~!~,~~'~!~~!~,~,~~!~!~~!~~~~,~~~,!~~~~~,~~~~,~!!~~~,~~!!~~~,''''''=..++.+.+> ", +" -%%%%-%%%%-%-%%%-%-%-%%-%-%-%%--%%-%%-%%%-%-%%%-%-%-%-%%% ..$.#+#$......%!''''''''''~,~,~,~,~,!,~!!,,'''',',',=','',',!,~'~!,~~~!,~!~!~!!~!!~,~!!!!~~,~!~~!!!,~~,~,~~~~~,~!~~~~~~~,'''''',#++#++$+@ ", +" %-%-%%%-%-%%%%%-%-%%%%-%%%%-%%-%-%-%%%-%-%-%%% ...$...#......-!''''''''''~,~'~,~,~~,~,!!,,,',,,',,'''','~~~~~,~~,~,~~,~,~~!~,~!~~!~!~!~~!~!!~~~~!~~~~!~~,~~!~~~~~~!!~'''''',&++++$)++^ ", +" %%%%--%-%%%-%-%%-%-%%-%-%%%-%-%%% #+#.....$.....#-''''''''''',~,~,~,~,~,~!~,',''''',',,''~,!,,~!,~!~!!~!~,~,~!~~!~,~!~!~,~~,~~!!!,~~~,~~~!~!!~~~,~!~~~,''''''!++$++.+.> ", +" %-%-%% ...$#.........#='''''''''',~,~,~,~!~,!!!~,,,',','',',!~~~~,~~'~!~,~!~!!~,~!!~~!!~~,~~,~~!~~~~!!,~~,~~~~~!!!~!~!~!!'''''''%+.+.+.++/ ", +" .....#$.......%]'''''''''''~,~,,~,~,~!!!,,,',','',,!,~'~!!~~~,~!~!~~!~!~!~,~!~,~~,~~~,~,!!!~~~~~~~,~,~~~~~~~~~~,''''',=++.+.$++> ", +" ........#.....%,''''''''''~,~,~,~,,~,~~,!','',',~~~!~!~,~,!~~,~,~,~,~~,~~!!~!~~~,~~~~~~~,~,~!~,~~~!~,!!~~!~!,'''''',#.+.++.++ ", +" +#+#...$.......-'''''''''''~,~,~,~,~,!~!!!'','!,,~,~,~!~~!,~!~!~!~!~!~,~!~!~!!~~,~,~,!!~!~,~~~~,~~!~~~!~!~~,''''''-+++$+.++( ", +" ..$#..........#='''''''''',~,~,~,~,~,~!!~,'!~~~!~,~,~,!~~,~!~,~,~,~~!~!!~,~!!~~~~~~~!~!~~!~~~~~~~!~~,~~~,''''''!..+.+.$+@ ", +" .....#$#......#*'''''''''',~~,!~,~,~~,!~~,!,~,~!~!~~!,~,~!!~!~!~,~!~!!~~!~~,~,~,~!~!~!!,~,~,~~,~!!~~!~'''''',%$++.+.++/ ", +" ..$...........%!''''''''''!~,~,~,~,~,~,~~,~~'~~,!'~~!~,~~,~!~!~,~!~!!!~,~~~~~~,~~,~~~~~~~!~~~~~!~!~,''''''=.+..+.+.> ", +" .....#$+#.....-'''''''''''~,~,!~,~!~!,~~'~~,~~~~'~,~!,~!~!~!!~~!!~!~!~!!,~,~~~!~!!!,~~,~~,~!~~!~!'''''',#.++.$+++ ", +" ..$......#.....-'''''''''',~,~!~,~,~,~,~!,~'~,~~!~,~~!~,~,~~,~!~~,~!~~~~~~!,~,~~~~!!~~!~~~,~!~!,''''''-.+#++.++^ ", +" #...#$......#.#='''''''''',~,~,~,~!~,~~!~~~!~,~!~,~,~!!~,~!~,!~~~!!!!!,~~~~~!!!,~~~,~~!~~~!~,''''''!#+++$)..@ ", +" ........$.....%]'''''''''',~,!~,~!~'~,~,!~!~'~!~!~!~~!~,~!~!!!!~~!~~~,~,~~~~~!!~~~,~,~~,~~'''''''%+.$..$++/ ", +" +#$...........%!''''''''''~,~'~,~,~!~~,~,~~~!~,~!!,~!~,~!~!~!!!~!!!~~~,~!!,~~,~~~~~!~~~,''''''~+..+.+..> ", +" ..#.#.#.......#-'''''''''',~~~,~~,~,!~!~,!!,~!!~~~,~~!~,~!~!~!~!~~,~~!~~~!!~!~,~~!~!!,'''''''#+.+.+.++ ", +" .+.+.+#$.#....#='''''''''''~~,~'~~,~,~~,~~,~!,~!~!,~!~~!~,~!~,~!~,~~,~!~~,~!~,~~!~~,''''',-#+.+#+..( ", +" .$#...........#]'''''''''''~~~,!~!~,~~,!~,~~,~!~~~,!~,~~!~~!~!~~!~~,~,~!~~~~!~!~,'''''',.+$.++$++ ", +" .+#..#$....#..%!'''''''''',~~'~,~!,~!~!~,~!~!!,~~,~~,~!!!~~,~,~!~~!~!~!~,~~~!~'''''''&+#+....+/ ", +" .+...#+.......-'''''''''''~~!~,~!~,~,~!!~,~~~,~~,~~!~!~,~~~~!~!~!~!~!~~,~~~,''''''].++.$+.+> ", +" +#....#$.......=,'''''''''~'~!~,~,~!~~!!~,~!~!!~~,~!~!~!!,~,~!~~,~!~,~!~!!'''''''#..$).+#+ ", +" .$.....#......#]''''''''''~,~~!~,~,!~~!~,!~!~,~~!~!!~~~~~~~,~~!~!~~,~~~,''''''=...+.$+.^ ", +" #....+#$......%]'''''''''',,~!~,~!,~,~~!!!!~,~,~!~!!,~!,~~!!~~!!~!~!,'''''',#+.+...++ ", +" .$#+.#..#.....&,''''''''''~,~~,~~!~,~!~~!~!~!~,~~~!~~~,~~,~,~~,~!~'''''''&+......+/ ", +" ......$........-'''''''''',,~!,~!!~,~,~!!~,~~!~!,~!!~~,~~~!~!~!~,''''',!...+$+.+@ ", +" ..#+#+#+#...#.#='''''''''',~~,~~!~!~,~!~~!~!~~!~!~,~~!!~!~!~!!'''''''#.+#+#+.+/ ", +" .....$........%]''''''''''!!,~!~!!~~!!!!!~,~!~!~~,~~,~!~,~!,''''''*..+$)$.+> ", +" .#+#..........%!''''''''',~,~,~!!,~!~!~~!~,~!~~!~~~,~~~!,'''''',#+......+ ", +" ..+#$..$.......-'''''''''',~!~~!~~,~!!!~!~~,~!~,~~~!!!~'''''',-.+...+$+( ", +" ...#..........#='''''''''',!~,!~!!~!!~!!~!!~~,~,~~~!,''''''!..$.+...@ ", +" ....#.$#......#*''''''''',,~~!~,~,~~!~!~,~!~~~,~!~'''''',%.......+/ ", +" ........$.....%!''''''''',,~!~~~,~!~,~~!~,~~!~~,''''''*.+.+$.+.> ", +" #+#+#.........&'''''''''',!!!!~~!~~!~!~!~,~!,'''''',#.+#.)$.+ ", +" ..$..#..#......-'''''''''',~,!!~,~!!~!~~!~~'''''''-...+...+^ ", +" .....$........#='''''''',,,~~!~!~!~,~,~~,''''''!#.$.$...@ ", +" .....#..#..#..%]''''''''',,~!~,~~~~!~,'''''''%+.....++/ ", +" #...$.........%!''''''''',,~~!!!~,~,''''''*......+#> ", +" ......$.......#-'''''''',',!~!~~!~'''''''#.+#+.$.+ ", +" #+#..#$+#.....#=''''''''',!,~!!'''''''-#$.+....( ", +" ..............#]''''''''',,~,'''''',....#+#++ ", +" .+#..#$.......%!''''''''','''''''%.$).$+.+/ ", +" .$............-,'''''''''''''']......#+@ ", +" +#+#..#$#.....#-'''''''''''''#..$+#+.+ ", +" ..$...........#]''''''''''=.....+$#( ", +" +#...#$.......%]''''''',##+#+#..@ ", +" ....#...#.....&,''','&+....+.+/ ", +" $.+....$.......-'''=..$)$..#@ ", +" .$#...........#%%..#+.#+.+/ ", +" .+#.#$..#....#.....+#$.> ", +" +...#+..............+ ", +" ...$.#$..+#+#$..../ ", +" ......#..$..#+#+> ", +" +#.....#+#+..> ", +" ..$#+....$ ", +" ).$)++ "}; diff --git a/libimage/error_small.xpm b/libimage/error_small.xpm new file mode 100644 index 0000000..5c61f2a --- /dev/null +++ b/libimage/error_small.xpm @@ -0,0 +1,183 @@ +/* XPM */ +static char * error_small_xpm[] = { +"150 115 65 1", +" c None", +". c #5F605E", +"+ c #505352", +"@ c #454745", +"# c #727271", +"$ c #7F807F", +"% c #909192", +"& c #C3C3C6", +"* c #FDFFFC", +"= c #F4F2F6", +"- c #2E2F2D", +"; c #E8E6EA", +"> c #DFE0EA", +", c #D6D7DF", +"' c #7B9FC3", +") c #5A7EA3", +"! c #A8A9AD", +"~ c #050C19", +"{ c #081933", +"] c #071F5B", +"^ c #266BF5", +"/ c #2E79F5", +"( c #3684F5", +"_ c #4699FC", +": c #5589C0", +"< c #3C5C7C", +"[ c #2E5B9A", +"} c #1558F0", +"| c #003CEC", +"1 c #000300", +"2 c #5BAEFD", +"3 c #002BA8", +"4 c #5088D2", +"5 c #272D33", +"6 c #9B0300", +"7 c #A93937", +"8 c #D05D5A", +"9 c #FC7D6D", +"0 c #FC8E7F", +"a c #FC6E5D", +"b c #FB6354", +"c c #BD2221", +"d c #71A9DD", +"e c #FDA99D", +"f c #D02D2B", +"g c #88CAFF", +"h c #F39C93", +"i c #F7B9AD", +"j c #FC584D", +"k c #8FB6D9", +"l c #191B19", +"m c #991E1E", +"n c #07369F", +"o c #312E09", +"p c #FB4B44", +"q c #585310", +"r c #968E1B", +"s c #E83935", +"t c #92555F", +"u c #FC413C", +"v c #7D4153", +"w c #872A38", +"x c #DC2020", +"y c #F92C2D", +"z c #A5D7FE", +" ", +" ", +" ", +" ", +" ", +" .............+..+.++.++++++++++++++++++++++@+@+@@@@@@@@@@ ", +" ..#$%$$$$$$$$$$$$$$$$$$$$$$$$$$$$#$#$#$####$#$#$#$$#$###@@ ", +" ..&******************************************=****=****=$@- ", +" ..&**==*=*==*======================;=;=;=;=>==>=;=;=;;=*%@- ", +" ..&*=**=*=**=*==============;=;;;;;=>=>=>=>;;>;>;;>>>;;*%@- ", +" ..,*============*======;=;==;=====>=;=>=>=;=;=>=>;=>=>==%@- ", +" ..&***,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,>>=*%@- ", +" ..&*==,&%%%%%%%%%%%%%$%%%%$%%%$'$%%%%%%%%)%%%%%%%%%,,>;*%@- ", +" .#&**>,!~{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{]{]{]{{~,,>=*%@- ", +" ..&*==,%{^///((_(_____:@@<[__(_(///^^^}}}|||||||||1,>>;*%@- ", +" ..&*==,!~/((_______2:<@@@@@[[____((//^^^}}}||||||3~,,>==%@- ", +" ..,*==,%{((____2222<@@+!;.@<<4____(((//^^}}}||||||1,>>==%@- ", +" ..&*==,!~(____222<@@@%;**&@@<[42____((//^^}}}||||31,,>;*%@- ", +" ..&*==,!~__2222)+@+#;*=;==#@+):22____((//^^}}|||||1>>>==%@- ", +" .#&*==,!~__22:+@+.&**;>>;*,@5<::222___((//^}}}|||31,>>;*%@- ", +" 6666666666 ..&*==>!~222<+++!**;;;;>;=*%@@<:222____(///^}}}|||1,>>==%@- ", +" 66666666666666666666 ..&*=>>!~2<@++%=*=>=>=>>>>*=+-<):2222__((//^^}}||31>>>=*%@- ", +" 6666678980009999aaabcc66666 ..,*==>!5+++$;*=;;>>>>,,>>=*&@@<)d222_2_((//^^}}||1>>>;*%@- ", +" 666680e0000909999a9aa999afc6666 ..&*=>!+++#,**;=;=;>,>!&,;>==.@@):g2222__(//^^}}}31>>>==%@- ", +" 6668hhhh0h0000909a9aa9aaa99a9abc666 ..&*&#++.&**;;>=>>,,&<1#,,>;*,@@<):2222___(/^^}}|}1>;>==%@- ", +" 6668eeheh0e00009999aa9aa9aaaa9aa9abc666 ..&%+++!=*=>==>>,,,$1]3~!>>>=*$@@):g222___((/^^}}31;>>;*%@- ", +" 6668ieeeh0e000000999a9aa9a9a9aa9aaa9aabc666 .++++%;*=;;;>;>,,%{{3||]5>>>>*=+@<)'2222__((/^^}}}1>>>==%@- ", +" 668eieeee0h0h0009999a9a9a9aa9a9aa9a9a99aajc66 +++$,=*;;==>>,,!@13|||||~%,;>;*!@@<:dg222__(//^}}31>;>;*%@- ", +" 66hihieehe0e00000999aaa9aa9aaa9a9aaa9aa9a9abf666 +++#&**===>=>,,k.~]|||||||3l,>>>**.@+):2222__((/^^}}1=>>==%@- ", +" 6mieieeee0e000099999a9a9aa9a9a9a9a9aaaaaaaaa9aj666 ++..!====;;;>,,,#1]}|||||||||{#,>;;*&@@<<)222__((/^^}31>;>;*%@- ", +" 667eieihehh0h00000999aaa9a8aaaabbbbbbbbbbbbbbbaaajc66 +.++%=**=;==>>,,%~{3}}}||||||||3~&>>;=*$@-11)222_((/^^}}l>>>==%@- ", +" 668iieihehehh00009999a9a9aaaabbbbbbjjbbbjbjbjjjjjjjjc66 .++%;**=;==;>,,!5~n^^}}}}}}||||||]+,>>>*;++o1<22___(//^^31=;>>*%@- ", +" 66hieihehh00000009999aa9abbababbbbbbjbjjbjjjjjjjjjjpjjf66 ++.#&**===;;>,,k+~]/^^^^^^^}}}}|||||~!>;>=*!@@1<422_((/^^^}1=>>==%@- ", +" 68ieieeeeee0h0009999aaabaabbbbbbbbbbbbbbjbjbjjjjjjjjppjf66#.+..&**==;==>>,&#l]////////^^^^^}}}}||n5,>>,*=.@-<:22__(/[]]nl>;;>*%@- ", +" 67iieeeeh00h00009999aaaababbbabbbbbbjjjjbjjjjjjjjjpjjjpjpf6m#.!=======>>,,#~{((((((((/////^^^}}}}||~$>;;;=&@@5<<[4((n1q~n1=>>==%@- ", +" 6meiieeehee000090999aa8bbababbbbbbbjbbbbjjbjjjjjjjpjpjpjpjpc67&;*=====>!$+5l][4__(_((_(((////^^}}}}}31,>>>=*#@5111<_([1r1n~;;>==%@- ", +" 6ceieeeehh0h0000999ababbaabbbbbbbbbbjjjjbjjjjjjjjjjjjpjppppps66t;,===>,&+@@@@<[[[________(((////^^}}}|].;;;;*;@@l11[((/111nl=>>;*%@- ", +" 66hieihee0e00000999aaaaabbabbbbbbbbjbbbbjjbjjbjjjjpjpjjpjjppppp66i&;>,,k+@.!+@@@<[[442_______((//^^^}}}3~!>>>;=%@-o1{_/[111n1=;>>*%@- ", +" 68ieeeehhe0000099aaaababbbbbbbbbbjbjbjjbbjjjjjjjsjpjppjppppppppf67!&&,$5@@>==!@@@<<)4:222_____(((//^^}}}n-;>>>*=.@@1{([{~o1]1=;>;*%@- ", +" 6mhiieee0h0000099aaaaabaabbabbabbjbbbjbjjjjjjjjjjjjjjjjjppjppjppp66%!!5{+@%====>%@@@<<<:42222____((///^}}}~%=>;;*&@+l{(~11r111=;;>*%@- ", +" 68eehehh0e0000999abababbbbbbajbbbbbbbbjbjjjbjjjjjjjppppppjpjpppups6m#@)[++==;>==*,#@@@<<:::222____((//^^}}n~;>>>=*#@-{[{1111~1==>>*%@- ", +" 6ceeee0e0h000099abaaababaaaabbbbbbbjjjjjjbjjjjjjjpppjjjjjpppppppppuc6v::.@&*=>=>;=**&.@@@<)::2222___((//^^}}{#=>;;=;++{[~11111l=>>;*%@- ", +" 68ieehe0e000099abaabababbbj8jbbbbjbbbbbjjjjjjsjjjjjpppppppppppuppuus6m'%.#*=>>;>;;;===!+@@@<)):222___((/^^}^3~&=>;;*%@@11111111==>;=%@- ", +" 6meehehh0000999aaaaabab8abbjbbbbjbbjjjjjjjjjjjjjppjjjjppjppppppppupuuc6v##&=>=>,,,>>;==*;%@@-<<)::22___((//]1]]@;;>;*=+@51111111=>>>*%@- ", +" 68eeh00e000009baababbbbjbbbbbbbjbjbbjjbjbjjjjjjjjppppjppppjupppupppuuu6m#%,,;;>,!,,,>;;==*,$@@@<<<:42___(/{lr1n~!>>>;*!@@1111111==>>*%@- ", +" 6cheee0h000999aba8abaaabbbabbbjbbjbjjbjjjjjjsjjpjjjjjpppjpppuppppuuupsuc6t&&&>>,,~5!,,>>>>=**&.@@@l{::___((/1o1~nl;=>>=*#@-111111=;>;*%@- ", +" 6che0e0000099ababababbbabbbbbjbjbjbjjbjjbjjjjjjpppppjpjppppppupupppuuuuf6w&&&,,,.{3~@&,>>>;;=*=!+@@@<<:44(((]111]{#=;>;*,@@l11111==>>*%@- ", +" 680eh0000099aaaaabababbbbbbbjbj8jbjbbjjjjjjjjppjjpppspuuupupupupuuuuuuus66&&&&,!~3||]~.,>>>>;==*=%@@@5<{1<_(/~1o1~1,=>,=*%@-11111=;>;=%@- ", +" 66hh000000999aaaabaabbabbbbjbbbjjjjjjjjjjjjjpjspuuuuuuuuupuuuuuupuuppuuuu66!&!&&5]|||||]1$>>>>>>==*;$@+@l1~[(({1r11{+==,>==+@l1111==>>*%@- ", +" 6c0e0h009999bbabbabbbbbbbjabbjbjbjjjjjjjjjpspupusuppupusuusuuuuuuuuuuuuuux68&&!!~|||||||3{5!>>>>>>=*=,#@@@l{[]111111~%=>>;*!+@$!,*=;,;*%@- ", +" 68000000999aaaaabbbabbbb8jbjbbjbjbbjjjjjssppuuuupuusuuusuuuusususuxusuuups67,!!@n|||||||||31@&>>>>>>==*&+@@-<[~1111111==>>*=#@+%!;=;>>=%@- ", +" 6690h09aa9abaabbab8babajjbbbjbjbjjjjjjjjpppupppppuppuspuppsusuusuuuusuxusyu6m&&%+3|||||||||||]~.,;;;>>;===!@@-<{1111111@=>>>=,@@.%&>>>;*%@- ", +" 6600009aa9aaa8aaaabaaabaabababab8jbbabbjjjjjjjjjjpjjjjjjjpjpjppppppsuuuusyuc6!!+[^|||||||}|||||]1$>;>>>>;*=;%@@@-1111111&=>;;*$++$%,,>>*%@- ", +" 6690099b0iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii8suxusyxct.v4[}}}}}}}}}}}}|}3{l!>=>>>>==*,#@@@l111115==,;=>@@+%!,,;*%@- ", +" 6600099b0,,,,,>,>,,>,>>>>>>>,>>>>>,,,,,>>>;;;,;,;,;;;;,;;;;;;;;,;,;;&xuxusux6t@([4/}}}}}}}}}}}}}|}n~-&=;;;;;;**&.@@-l1111%*>,=*!@@#%,,>=%@- ", +" 660999aa0,;;*******=*==*===*=*=*************************************hssssxuf6w<(4[4^^^^^^^^^^^}}}}|}]~.,;>>>;>===!+@@-11l!;=>>==.@+$!,;*%@- ", +" 6c0999aa0;;********************=*=**=*******************************hfususyx6w[([:(/^/^//^^^^^^^^^}}}3]1$>=>;>>;=*=%@@@+$%!!,>>=&@@<%&>=%@- ", +" 6c9999aa0;******************************=***************************hxsxsxux6w(44)4(///////////^^^^}n1]3{l!==;>>>;==;$@@@.#%%&,==$@+$%>=%@- ", +" 6c99a9ab0;**********************************************************ifsssuuy6w444'44/(_((((((/(//^^/1ql1]n1-&==;>>>;==&#@@@.$%!&=;@@.%&=%@- ", +" 6c99aaab0;********************************************************==hssxxsyy6w(44':4(_(___(_((((//(n1q11111{~+&==;>>>===!++@+.%%!=!@+#%;%@- ", +" 6ca9a9ab0**********************************************************=hfssssxs6w444'4d__________(_(((/({11lq111~1-;==>>,>===!@@@+#%!&+@.%&$@- ", +" 669aa9ab9=**********************************************************hfxfssyxcw4'4':d_2_222_2_____(((//n~lo111~111.===>>>>==>$@@@.#!%5@#!$@- ", +" 66a9aaab0*=*********************************************************ifsxfxux6v_dd''d2222222222_____(((({11111111111%*=,>>>>==,#5+@.%@5@%.@- ", +" 66a9a9ab0*********************************************************=>hfsxssyfct4:d''d22222222222222{~4((]11111111111%=>>>>>>>===&v@@+#--++-- ", +" 66aaaaab9=**********************************************************hcffssyc6)ddd'kk2gggg2g2~<222:111{4/({11111111-==>,,,>,>>>=*=!@@@@5--5- ", +" 66c99abb0**********************************************************=hffsfyy6c'ddk'dk2g22ggg<1o~<2~11ol1{(/11111111&=,>,>>>,,,>,>==;%@@@-5ll ", +" 6fa9abb9***********************************************************hffxfyy66:kdk'kkggggg2d1lr111111qo111{1111111+==>>,,,>>,,>>>,>==,#@@-111 ", +" 66aaabb0*=********************************************************=hfffsyxcwddkk!kdgggggggd51qql1111111111111111==>,>>>>,>,>,,,>>>;==.@-l11 ", +" 66a9bbbb888888888888888888888888888888888888888888888888888888888887ffxuyx6tdkdkkkkgggggzggg'51qql1111111111111$*>,>,>,,>>,,>>,,,>;*,@@-l11 ", +" 66cabbbbbbbjbjjjjjjjjppuppspspsssssssssssfsfsffffffffffffffffffffffffffyy66'kkkk!kgzgzzzgzgggg)11r111111111111l==>>>>>,>,>,>,,,>,>==#+-l11 ", +" 6cabbbbbjbjbbbjjjjjpupuuuspspspssssfsfssfsfsfsffsfffffffffffffffffffffyx6mdkkkk!kzgzggzz'gzgggg<1111111111111&=>>,,>,>>,>>,>>,>,=*!@@l111 ", +" 66bbbbbbbjjjjjjjjjjppupsppspspssjsjssjfsfjffjfsfffffffffffffcffcfffffxyxcvkkkkkkkzzzzzzg11)zzgggl11111111111@==>>>>>,>,>,>,,,,,>==.@-11 ", +" 66fbbjjbbbjjjjjjjjjpppppsuspssssfsffjfsfffsfffffbfffffffcfcffcfffcfffuy66'kkkk!kzzzzzzz+~115'zg<111111111111;=>,>>>,>>,>,>,>>>,=*%@@11 ", +" 6cjbbjbjjbjjjjjjppuusupspssjssjspsffjfjfbfffbffffffffffcffcffcfcfcfxyx6mkkkkk!kzzz>>zz511qq15'111111111111#*>>>,>>>,>,>,>>,,,>=;+@l1 ", +" 66fjbjbjjjjjjjjjjppupuspspssssffjfjffffffffffcffff8ffcfffcfcffcfcffyyc6)kkkk!k&z*;==;;z$~11~11~1111111111l==>>>>,>>,>,>,>,>>>=*#@@1 ", +" 6cbjbjbjjjjjjjjppupsspssssjssjssfsfsfjffbfffcbcfffcf8cccfcfccfcfcsyx6mkkkkz!k&;;*>;*==>5l111r1lr11111111!=>>>,>>>,>>>,>,>,,;*&@@l ", +" 66fjbjjbjjjjpjjppuupupsjsssfsfsfjfjffffffff8fcf7ffcfcff7fccfcccffyy66)kkkk!kk;=>==;===!~r151o1111111111-*=>>>>>>>>>,>,>,>>>*=.@5 ", +" 6cjjjjjjjjjjjpppspsssssspsssjsfffsffjfffffffffffcfccffcfccccfccxyxcwkkkkk!k&;;*;=====#1ooq111111111111;=>>>>,>,>,>,>,>>,,==!@+1 ", +" 66cbjjjjjjppjjpuupuppssssjfsfssjffjfffbcfffcffcf7ffc7fcccfccccfyy66'kkkkk&k,*;*;=*;*=*&5loqol11111111.*;>>>>>>>>>,>>>,>>>=;+@- ", +" 66jjjjjjpjpjppsussssjssssfjsffsfffffffffffff7fff7cffcf7f7cccfyyx6vkkkkkk!kz===*>===**>z'~oo111111111==>>>>>>>,>>>>,>,,>=*$@@ ", +" 666jjjjjjjpjpppuppsssssjfsffjffjff8fff8ff8cffcfcfccc7fccccccuyx66'dkkk&kkz>*==***=*==zzzz5~11111111!*>;>>>>>,>>,>,>>>,;*&+@l ", +" 66cjjjjpjpjppspsspsjssspfjfsfffffffffcfffffcfcccfccccccfmcuyx66)dkkkkk!kzz>=====*=**>zz'111111111-*=;>>>,>>>>>>>,>,>>**.@@ ", +" 66fppjjpjpppspspsssssfsssfsjffjffffffccccf7fcf7cccccc7ccsyy66vddk'kk!kzzzz****=***zkzz-111111111,=>>;>>>>>>,>,>>>,>==!+@1 ", +" 66fjjjpjppuususssssfjffjfffffffffff8fffcff7ccf7cc7ccccfyyc6vddddkk!kkzzzzz=*+!**z%1-<111111111+*;;>>>>>>>>>>>>,>>>*;++- ", +" 66spjppjpsususpsssssssffjfjffff8ffcf7fccffccccccccmcsyyx6m5+)ddk'kkkzzzzzz'115'zlol1111111111==>;>;>>>>>>>>,>>,>=*%+@ ", +" 66fpjppppspssssjssfjfsfffffffffcfffffcf7cccf7cmcccxyy66m&&$@+''kkkggzzzzzlq1115lq1q11111111%*;>>;>;>>,>>>>,>>>>*&++l ", +" 66sjpjuusppssssfssffsfjfffffffffccc7fcfc7ccccc7cuyyc6m!,&&!#+$'kggggzzzklqlq11111r1111111l==;>>>>>>>>>,>>>>,>=*#+@ ", +" 66cppppssspssssjfssffffs8ffffcf8cffccccfmfmccfyyx667&,&,,&&!.@<gggzggzzz$lq1111111111111,*>>>>;>;>>>>>>>>>>=*!@+1 ", +" 666ppuusssssssfsfssfsfffffcfcfcfccc7fmfcccmsyyx66w&;,,&,&!&&%5l'ggzggzgk1511qo11111111@==;;>>>>>>>>>>>,>,>*=.+- ", +" 666sspspssssssjfjfffsfff8fffcf7ccfcccc7cfyyyx66t$#%&,,&&&,,>>$~5dggzgz51115ol11111111==>>>;>;>;>>>>>>>>>=*%+@ ", +" 666cxsspssssfsfffjfffffffcffffccc7fmffuyyx666 #$#$!&&&,,=;>;,.1<dgz'~1111l11111111$*=>;>;>;>>>>>>>>>>>*,++- ", +" 666fssssfssfssfffffffff7fccc8ccccfsyyx666m $$#$%!,======;=&@l<g~r111111111111l==>;>;>>>;;;>>>>>>>**#+@ ", +" 666csssssffsffsfffffffffccccfsuyyx666m %$##$;**===;==>!-~~q1q1111111111&*;>>>;;>>>>;>>>>>>;*!++1 ", +" 666cfssssfsffffffffcccfssuyyxx666m %%% $...%;*====;===%lllq111111111@==>;;;>>;>>;>>;>>>>*=..- ", +" m6666ccspsspsfsffsspsuyyxc6666mt %%! ....!**===>===>$15111111111;=;>;>>;>;>>>;>>>>>=*%++1 ", +" tm66666ccffsssssxfxc66666m7 !% ....&*=*=>=;==,.11111111#*=;;;>;>>>;>;>>;,;;*;.+5 ", +" twm666666666666666mmw %%% ...$&**==>=>==!111111l==>;>;>>;;>>>>;>>>>=*#.@ ", +" %twwmmmmmm7w %%%! ...%;**=;=>===#1111!*;;;;;;;;>>;>>>>;>=*&++l ", +" %!%%% %%%!% ....!=**;=;====+1-*=>=>>;>>;>>;;>;>>>*=#+@ ", +" %!%%%%%%%%%%%!% ....!**==>;===,>=;>>=>=>;>;;>>;>>;==!++1 ", +" ...#&**=;;;=*==>=>>>>;;>;>>>>>>;*;.+- ", +" ...$,**=;;;==>>=>=>;;;>>;;>;;=*$++ ", +" ....%=**;>>;;>;>>=>>;;>>;>>=*&.+l ", +" ....!=*==>=>=;;>;;>;;>>>>==#.@ ", +" ...#&**=>>;;>;;>;>;;;;=*!.+1 ", +" ...$,**=>=>=>;>;>>>;*;..- ", +" ...%;*==>>=>;;>=>=*%.+ ", +" ....!=*=;>>;>>>=*&..l ", +" ...#&=*=;;;>>**#.@ ", +" ...$&**=>;=*!..1 ", +" ...%;*==*=..- ", +" ....%=**%.+ ", +" ...#!&..5 ", +" .....@ ", +" ..+ "}; diff --git a/libimage/img1.xpm b/libimage/img1.xpm new file mode 100644 index 0000000..02143eb --- /dev/null +++ b/libimage/img1.xpm @@ -0,0 +1,56 @@ +/* XPM */ +static char * img1_xpm[] = { +"37 50 3 1", +" c None", +". c #000000", +"+ c #FFFFFF", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ........... ", +" .....+++++++++. ", +" ...+++++++++++++. ", +" .++++++++++++++.. ", +" .++++++++++++++. ", +" ..+++....+++++++. ", +" ...... .+++++++. ", +" .. .+++++++. ", +" .+++++++. ", +" ..++++++.. ", +" .+++++++. ", +" .+++++++. ", +" .+++++++. ", +" .+++++++. ", +" .++++++.. ", +" ..++++++. ", +" .+++++++. ", +" .+++++++. ", +" .+++++++. ", +" .+++++++. ", +" ..++++++.. ", +" .+++++++. ", +" .+++++++. ", +" .+++++++. ", +" .+++++++. ", +" .+++++++. ", +" ..++++++.. ", +" .+++++++. ", +" .+++++++. ", +" .........+++++++......... ", +" .+++++++++++++++++++++++. ", +" .++++++++++++++++++++++.. ", +" .++++++++++++++++++++++. ", +" ..++++++++++++++++++++++. ", +" ......................... ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/libimage/img2.xpm b/libimage/img2.xpm new file mode 100644 index 0000000..f4046e4 --- /dev/null +++ b/libimage/img2.xpm @@ -0,0 +1,56 @@ +/* XPM */ +static char * img2_xpm[] = { +"42 50 3 1", +" c None", +". c #000000", +"+ c #FFFFFF", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" .......... ", +" ......++++++++.... ", +" ...++++++++++++++++.. ", +" .+++++++++++++++++++.. ", +" .++++++++++++++++++++.. ", +" .++++.........++++++++. ", +" .+.... ..+++++++.. ", +" .... ..+++++++. ", +" . .+++++++. ", +" .+++++++. ", +" .+++++++. ", +" .++++++.. ", +" ..++++++. ", +" .++++++.. ", +" ..+++++.. ", +" ..++++++. ", +" ..++++++.. ", +" ..+++++... ", +" ..+++++.. ", +" ...+++++.. ", +" ..++++++.. ", +" ..+++++... ", +" ...+++++.. ", +" ..++++++.. ", +" ..++++++.. ", +" ..++++++.. ", +" ...+++++... ", +" ..++++++.. ", +" ..+++++++. ", +" ..++++++++............... ", +" .+++++++++++++++++++++++. ", +" .+++++++++++++++++++++++. ", +" .+++++++++++++++++++++++. ", +" ..++++++++++++++++++++++.. ", +" .+++++++++++++++++++++++. ", +" ......................... ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/libimage/img3.xpm b/libimage/img3.xpm new file mode 100644 index 0000000..c83fa64 --- /dev/null +++ b/libimage/img3.xpm @@ -0,0 +1,56 @@ +/* XPM */ +static char * img3_xpm[] = { +"42 50 3 1", +" c None", +". c #000000", +"+ c #FFFFFF", +" ", +" ", +" ", +" ", +" ", +" ", +" ............. ", +" ....+++++++++++.... ", +" .+++++++++++++++++... ", +" .+++++++++++++++++++.. ", +" .++++++++++++++++++++. ", +" ..++.........+++++++++.. ", +" ..... ...++++++++. ", +" . ..+++++++. ", +" .+++++++. ", +" .+++++++. ", +" .++++++.. ", +" .++++++. ", +" ..+++++.. ", +" ..+++++.. ", +" ...+++++.. ", +" .........+++++... ", +" .++++++++++++.. ", +" .++++++++++++. ", +" .++++++++++++... ", +" ..++++++++++++++.. ", +" .........++++++++.. ", +" ...+++++++.. ", +" ..+++++++. ", +" .+++++++. ", +" .+++++++. ", +" .+++++++. ", +" .+++++++. ", +" ..++++++.. ", +" . .+++++++. ", +" ... ..++++++.. ", +" .+.... ....+++++++. ", +" .++++..........+++++++++.. ", +" ..+++++++++++++++++++++... ", +" .+++++++++++++++++++++.. ", +" ..++++++++++++++++++... ", +" .....++++++++++..... ", +" ............ ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/libimage/img4.xpm b/libimage/img4.xpm new file mode 100644 index 0000000..3be99a9 --- /dev/null +++ b/libimage/img4.xpm @@ -0,0 +1,56 @@ +/* XPM */ +static char * img4_xpm[] = { +"44 50 3 1", +" c None", +". c #000000", +"+ c #FFFFFF", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ........... ", +" ..++++++++.. ", +" ..+++++++++. ", +" .++++++++++. ", +" ..++++++++++. ", +" ..+++++++++++. ", +" ..+++++++++++.. ", +" ..+++...++++++. ", +" ..+++.. .++++++. ", +" ..+++.. .++++++. ", +" ..+++.. .++++++. ", +" ..++++. .+++++.. ", +" .++++.. ..+++++. ", +" ..+++.. .++++++. ", +" ..+++.. .++++++. ", +" ..+++.. .++++++. ", +" ..+++.. .+++++.. ", +" ..+++.. ..+++++. ", +" ..+++.. .++++++. ", +" ..+++.. .++++++. ", +" .++++. .++++++. ", +" ..++++. .++++++. ", +" .+++++............++++++...... ", +" .+++++++++++++++++++++++++++. ", +" .+++++++++++++++++++++++++++. ", +" ..+++++++++++++++++++++++++++. ", +" .++++++++++++++++++++++++++++. ", +" .................++++++....... ", +" .++++++. ", +" .++++++. ", +" .++++++. ", +" .+++++.. ", +" ..+++++. ", +" .++++++. ", +" ........ ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/libimage/img5.xpm b/libimage/img5.xpm new file mode 100644 index 0000000..9aa80d3 --- /dev/null +++ b/libimage/img5.xpm @@ -0,0 +1,56 @@ +/* XPM */ +static char * img5_xpm[] = { +"43 50 3 1", +" c None", +". c #000000", +"+ c #FFFFFF", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ....................... ", +" .++++++++++++++++++++.. ", +" .++++++++++++++++++++. ", +" ..++++++++++++++++++++. ", +" .+++++++++++++++++++++. ", +" .+++++++++++++++++++++. ", +" .+++++................. ", +" .+++++. ", +" ..++++.. ", +" .+++++. ", +" .+++++. ", +" .+++++. ", +" .+++++.......... ", +" ..++++++++++++++... ", +" .+++++++++++++++++... ", +" .+++++++++++++++++++.. ", +" .++++++++++++++++++++.. ", +" .++..........+++++++++. ", +" ..... ..++++++++.. ", +" .. ..++++++++. ", +" ..+++++++. ", +" .+++++++. ", +" .+++++++. ", +" .+++++++. ", +" .++++++.. ", +" .++++++. ", +" ..++++++. ", +" . ..++++++.. ", +" ... ..+++++++. ", +" .+..... ...+++++++.. ", +" .+++++.........++++++++.. ", +" ..+++++++++++++++++++++.. ", +" .++++++++++++++++++++... ", +" ...++++++++++++++++... ", +" .....+++++++++.... ", +" ........... ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/libimage/img6.xpm b/libimage/img6.xpm new file mode 100644 index 0000000..e915233 --- /dev/null +++ b/libimage/img6.xpm @@ -0,0 +1,56 @@ +/* XPM */ +static char * img6_xpm[] = { +"41 50 3 1", +" c None", +". c #000000", +"+ c #FFFFFF", +" ", +" ", +" ", +" ", +" ", +" ", +" ......... ", +" ....+++++++.... ", +" ...+++++++++++++... ", +" ...++++++++++++++++. ", +" ..++++++++++++++++++. ", +" ..+++++++.........+++. ", +" ..++++++... ..... ", +" ..+++++... . ", +" ..+++++.. ", +" .++++++. ", +" ..+++++.. ", +" .++++++. ", +" ..+++++.. ", +" .++++++. ....... ", +" ..++++++. ...+++++.... ", +" .+++++++....++++++++++.. ", +" .++++++++++++++++++++++.. ", +" .+++++++++++++++++++++++.. ", +" ..++++++++++......++++++++. ", +" .+++++++++... ..+++++++.. ", +" .++++++++.. ..+++++++. ", +" .++++++++. .+++++++. ", +" .+++++++.. .+++++++. ", +" .+++++++. .+++++++. ", +" .+++++++. .+++++++. ", +" .+++++++. .++++++.. ", +" .+++++++. .++++++. ", +" ..++++++. ..++++++. ", +" .++++++. .++++++.. ", +" .++++++.. ..++++++. ", +" ..++++++.. ...++++++.. ", +" ..++++++......+++++++.. ", +" .++++++++++++++++++.. ", +" ..++++++++++++++++.. ", +" ...++++++++++++... ", +" ....++++++.... ", +" ........ ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/libimage/img7.xpm b/libimage/img7.xpm new file mode 100644 index 0000000..d9ef9e5 --- /dev/null +++ b/libimage/img7.xpm @@ -0,0 +1,56 @@ +/* XPM */ +static char * img7_xpm[] = { +"43 50 3 1", +" c None", +". c #000000", +"+ c #FFFFFF", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ........................... ", +" .++++++++++++++++++++++++.. ", +" .++++++++++++++++++++++++. ", +" .++++++++++++++++++++++++. ", +" ..++++++++++++++++++++++++. ", +" .++++++++++++++++++++++++.. ", +" .................+++++++.. ", +" .+++++++. ", +" ..++++++.. ", +" ..++++++.. ", +" .+++++++. ", +" ..++++++.. ", +" .++++++.. ", +" ..++++++. ", +" ..++++++.. ", +" .+++++++. ", +" ..++++++.. ", +" ..++++++.. ", +" .+++++++. ", +" ..++++++.. ", +" ..++++++.. ", +" .+++++++. ", +" ..++++++.. ", +" ..++++++.. ", +" .+++++++. ", +" ..++++++.. ", +" ..++++++.. ", +" .+++++++. ", +" ..++++++.. ", +" .++++++.. ", +" ..++++++. ", +" ..++++++.. ", +" .+++++++. ", +" ..++++++.. ", +" .......... ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/libimage/img8.xpm b/libimage/img8.xpm new file mode 100644 index 0000000..3baee10 --- /dev/null +++ b/libimage/img8.xpm @@ -0,0 +1,56 @@ +/* XPM */ +static char * img8_xpm[] = { +"42 50 3 1", +" c None", +". c #000000", +"+ c #FFFFFF", +" ", +" ", +" ", +" ", +" ", +" ", +" .......... ", +" .....++++++++.... ", +" ...+++++++++++++++.. ", +" ..++++++++++++++++++.. ", +" ..++++++++++++++++++++.. ", +" ..++++++++......++++++++.. ", +" .+++++++... ..++++++++. ", +" ..+++++++. ..+++++++. ", +" .+++++++.. .+++++++. ", +" .+++++++. .+++++++. ", +" .+++++++. .++++++.. ", +" .+++++++. ..++++++. ", +" ..++++++.. .++++++.. ", +" ..++++++.. ...+++++.. ", +" ..++++++......+++++... ", +" ...+++++++++++++... ", +" .+++++++++++++. ", +" ..+++++++++++++. ", +" ...++++++++++++++.. ", +" ...+++++......++++++.. ", +" ..+++++... ..++++++.. ", +" ..+++++.. ..++++++. ", +" ..++++++. .++++++.. ", +" .++++++.. .+++++++. ", +" .++++++. .+++++++. ", +" ..++++++. .+++++++. ", +" .+++++++. .+++++++. ", +" .+++++++. ..++++++.. ", +" .+++++++. .+++++++. ", +" .+++++++.. ..+++++++. ", +" ..+++++++.. ...+++++++.. ", +" .++++++++......++++++++.. ", +" ..++++++++++++++++++++.. ", +" ..++++++++++++++++++.. ", +" ...++++++++++++++... ", +" ....+++++++..... ", +" ......... ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/libimage/img9.xpm b/libimage/img9.xpm new file mode 100644 index 0000000..31debe9 --- /dev/null +++ b/libimage/img9.xpm @@ -0,0 +1,56 @@ +/* XPM */ +static char * img9_xpm[] = { +"39 50 3 1", +" c None", +". c #000000", +"+ c #FFFFFF", +" ", +" ", +" ", +" ", +" ", +" ", +" ........ ", +" ....++++++.... ", +" ...++++++++++++... ", +" ..++++++++++++++++.. ", +" ..++++++++++++++++++. ", +" ..+++++++......++++++.. ", +" ..++++++... ..++++++.. ", +" .++++++.. ..++++++. ", +" ..++++++. .++++++. ", +" .++++++.. .++++++.. ", +" .++++++. .+++++++. ", +" ..++++++. .+++++++. ", +" .+++++++. .+++++++. ", +" .+++++++. .+++++++. ", +" .+++++++. ..+++++++. ", +" .+++++++. .++++++++. ", +" .+++++++.. ..++++++++. ", +" ..+++++++.. ...+++++++++. ", +" .++++++++......++++++++++.. ", +" ..+++++++++++++++++++++++. ", +" ..++++++++++++++++++++++. ", +" ..++++++++++....+++++++. ", +" ....+++++... .++++++.. ", +" ....... .++++++. ", +" ..+++++.. ", +" .++++++. ", +" ..+++++.. ", +" .++++++. ", +" ..+++++.. ", +" . ...+++++.. ", +" .... ...++++++.. ", +" ..++.........+++++++.. ", +" .++++++++++++++++++.. ", +" .++++++++++++++++... ", +" ..+++++++++++++... ", +" ....+++++++.... ", +" ......... ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/libimage/pnm.c b/libimage/pnm.c new file mode 100644 index 0000000..3b59db9 --- /dev/null +++ b/libimage/pnm.c @@ -0,0 +1,512 @@ +/*************************************************************************** + * pnm.c + * (C) Copyright 2004 Andreas Brachold <vdr04-at-deltab.de> + * based on works from Fabian E. Bustamante <fabianb-at-cs.umd.edu> + * Created: Thu Aug 7 2004 + ****************************************************************************/ + +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Library General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#include <stdio.h> +#include <stdlib.h> +/* #include <sys/stdtypes.h> for size_t */ +#include <stdarg.h> +#include <errno.h> + +#include "pnm.h" + +/***************************************************************************** +Print error message and get out +@param variable list of arguments explaining error +@return - none*/ +void cPNM::error(char* format, ... ) +{ + if(m_szError) + free(m_szError); + m_szError = NULL; + + va_list args; + va_start( args, format ); + + (void) vasprintf( &m_szError, format, args ); + va_end( args ); +} + + +/***************************************************************************** +Get pnm magic number (P1, P2, ...) +@param file - source file +@return - magic number*/ +bool cPNM::MagicNumber(FILE* f,unsigned int& nFormat) +{ + int ich1, ich2; + + ich1 = getc( f ); + if ( ich1 == EOF ) { + cPNM::error( "End of file, read error reading magic number" ); + return false; + } + ich2 = getc( f ); + if ( ich2 == EOF ) { + cPNM::error( "End of file, read error reading magic number" ); + return false; + } + nFormat = ich1 * 256 + ich2; + return true; +} + +/***************************************************************************** +Get next significant character, i.e. jump over comments +@param file - source file +@param - Next significant character*/ +bool cPNM::getchar(FILE* f, char& nNext) +{ + register int ich; + register char ch; + + ich = getc( f ); + if ( ich == EOF ) + { + cPNM::error( "End of file, read error" ); + return false; + } + ch = (char) ich; + + if ( ch == '#' ) { + do { + ich = getc( f ); + if ( ich == EOF ) + { + cPNM::error( "End of file, read error" ); + return false; + } + ch = (char) ich; + } while ( ch != '\n' && ch != '\r' ); + } + + nNext = ch; + return true; +} + + +/***************************************************************************** +Get next bit from file +@param file - source file +@param - Next bit*/ +bool cPNM::getbit(FILE* f, bit& nNext) +{ + register char ch; + + do { + if(!getchar( f, ch )) + return false; + } while ( ch == ' ' || ch == '\t' || ch == '\n' || ch == '\r' ); + + if ( ch != '0' && ch != '1' ) + { + cPNM::error( "junk in file where bits should be" ); + return false; + } + nNext = ( ch == '1' ) ? 1 : 0; + return true; +} + + +/***************************************************************************** +Get next byte from file +@param file - source file +@param - Next byte */ +bool cPNM::getrawbyte(FILE* f,unsigned char& nNext ) +{ + register int iby; + + iby = getc( f ); + if ( iby == EOF ) + { + cPNM::error( "End of file, read error" ); + return false; + } + nNext = (unsigned char) iby; + return true; +} + + +/***************************************************************************** +Get integer from file +@param file - source file +@param - Next integer */ +//bool cPNM::getint(FILE* f, unsigned int& nNext) +template<class T> bool cPNM::getint(FILE* f, T& nNext) +{ + register char ch; + register T i; + + do { + if(!getchar( f,ch )) + return false; + } while ( ch == ' ' || ch == '\t' || ch == '\n' || ch == '\r' ); + + if ( ch < '0' || ch > '9' ) + { + cPNM::error( "junk in file where an integer should be" ); + return false; + } + i = 0; + do { + i = i * 10 + ch - '0'; + if(!getchar( f,ch )) + return false; + } while ( ch >= '0' && ch <= '9' ); + nNext = i; + return true; +} + + +/***************************************************************************** +Read Header from file +@param FILE* f - source file +@return bool - true successful reading*/ +bool cPNM::readHeader(FILE* f) +{ + if(!MagicNumber(f,m_nFormat) /* Read magic number. */ + || !getint(f,m_nWidth) /* Read size. */ + || !getint(f,m_nHeight)) + return false; + + /* Check magic number. */ + switch (PNM_FORMAT_TYPE(m_nFormat)) { + case PPM_TYPE: + /* Read m_nColorDepth. */ + if(!getint(f,m_nColorDepth)) + return false; + if ( (m_nColorDepth) > PPM_MAXMAXVAL ) + { + cPNM::error( "ColorDepth is too large" ); + return false; + } + return true; + + case PGM_TYPE: + /* Read ColorDepth. */ + if(!getint(f,m_nColorDepth)) + return false; + if ( m_nColorDepth > PGM_MAXMAXVAL ) + { + cPNM::error( "ColorDepth is too large" ); + return false; + } + return true; + + case PBM_TYPE: + m_nColorDepth = 1; /* pbmmaxval */ + return true; + + default: + cPNM::error( "bad magic number - not a ppm, pgm, or pbm file" ); + } + + return false; + +} + + +/***************************************************************************** +Read Row from file with Black White Values +@param FILE* f - source file +@return bool - true successful reading*/ +bool cPNM::readpbmrow(FILE* f, bit* pBits) +{ + register unsigned int w; + register int bitshift; + register unsigned char item; + register bit* bP; + + switch ( m_nFormat ) { + case PBM_FORMAT: + for ( w = 0, bP = pBits; w < m_nWidth; ++w, ++bP ) + { + if(!getbit( f,*bP )) + return false; + } + return true; + + case RPBM_FORMAT: + bitshift = -1; + item = 0; + for ( w = 0, bP = pBits; w < m_nWidth; ++w, ++bP ) { + if ( bitshift == -1 ) { + if(!getrawbyte( f,item )) + return false; + bitshift = 7; + } + *bP = ( item >> bitshift ) & 1; + --bitshift; + } + return true; + + default: + cPNM::error( "Wrong fileformat" ); + return false; + } +} /* end cPNM::readpbmrow() */ + + +/***************************************************************************** +Read Row from file with Gray Values +@param FILE* f - source file +@return bool - true successful reading*/ +bool cPNM::readpgmrow( FILE* f, gray* pGrays) +{ + register unsigned int w; + register gray* gP; + bit* pBits; + register bit* bP; + + switch ( m_nFormat ) { + case PGM_FORMAT: + for ( w = 0, gP = pGrays; w < m_nWidth; ++w, ++gP ) { + if(!getint( f,*gP )) + return false; + } + return true; + + case RPGM_FORMAT: + for ( w = 0, gP = pGrays; w < m_nWidth; ++w, ++gP ) { + if(!getrawbyte( f,*gP )) + return false; + } + return true; + + case PBM_FORMAT: + case RPBM_FORMAT: + if(!allocrow( &pBits ) + || !readpbmrow( f, pBits )) + { + freerow( pBits ); + return false; + } + for ( w = 0, gP = pGrays, bP = pBits; w < m_nWidth; ++w, ++gP, ++bP ) + *gP = ( *bP == PBM_WHITE ) ? m_nColorDepth : 0; + freerow( pBits ); + return true; + + default: + cPNM::error( "Wrong fileformat" ); + return false; + } +} + + + +/***************************************************************************** +Read Row from file with Colored Values +@param FILE* f - source file +@return bool - true successful reading*/ +bool cPNM::readppmrow(FILE* f, pixel* pixelrow) +{ + register unsigned int w; + register pixel* pP; + register pixval r, g, b; + gray* pGrays; + register gray* gP; + bit* pBits; + register bit* bP; + + switch ( m_nFormat ) { + case PPM_FORMAT: + for ( w = 0, pP = pixelrow; w < m_nWidth; ++w, ++pP ) { + if(!getint( f,r ) + ||!getint( f,g ) + ||!getint( f,b )) + return false; + PPM_ASSIGN( *pP, r, g, b ); + } + return true; + + case RPPM_FORMAT: + for ( w = 0, pP = pixelrow; w < m_nWidth; ++w, ++pP ) { + if(!getrawbyte( f,r ) + ||!getrawbyte( f,g ) + ||!getrawbyte( f,b )) + return false; + PPM_ASSIGN( *pP, r, g, b ); + } + return true; + + case PGM_FORMAT: + case RPGM_FORMAT: + if(!allocrow(&pGrays) + || !readpgmrow( f, pGrays )) + { + freerow( pGrays ); + return false; + } + for ( w = 0, gP = pGrays, pP = pixelrow; w < m_nWidth; ++w, ++gP, ++pP ) { + r = *gP; + PPM_ASSIGN( *pP, r, r, r ); + } + freerow( pGrays ); + return true; + + case PBM_FORMAT: + case RPBM_FORMAT: + if(!allocrow( &pBits ) + || !readpbmrow( f, pBits )) + { + freerow( pBits ); + return false; + } + for ( w = 0, bP = pBits, pP = pixelrow; w < m_nWidth; ++w, ++bP, ++pP ) { + r = ( *bP == PBM_WHITE ) ? m_nColorDepth : 0; + PPM_ASSIGN( *pP, r, r, r ); + } + freerow( pBits ); + return true; + + default: + cPNM::error( "Wrong fileformat" ); + + return false; + } +} + + +/***************************************************************************** +Read Row from file with any Values +@param FILE* f - source file +@return bool - true successful reading*/ +bool cPNM::readrow(FILE* f, xel* xelrow) +{ + register unsigned int w; + register xel* xP; + gray* pGrays; + register gray* gP; + bit* pBits; + register bit* bP; + + switch ( PNM_FORMAT_TYPE(m_nFormat) ) { + case PPM_TYPE: + return readppmrow( f, (pixel*) xelrow ); + + case PGM_TYPE: + if(!allocrow(&pGrays) + || !readpgmrow( f, pGrays )) + { + freerow( pGrays ); + return false; + } + for ( w = 0, xP = xelrow, gP = pGrays; w < m_nWidth; ++w, ++xP, ++gP ) { + PNM_ASSIGN1( *xP, *gP ); + } + freerow( pGrays ); + return true; + + case PBM_TYPE: + if(!allocrow(&pBits) + || !readpbmrow( f, pBits )) + { + freerow( pBits ); + return false; + } + for ( w = 0, xP = xelrow, bP = pBits; w < m_nWidth; ++w, ++xP, ++bP ) { + PNM_ASSIGN1( *xP, *bP == PBM_BLACK ? 0: PNM_MAXMAXVAL ); + } + freerow( pBits ); + return true; + + default: + cPNM::error( "Wrong fileformat" ); + return false; + } +} + + + + +cPNM::cPNM() +{ + m_nFormat = 0; + m_nColorDepth = 0; + m_nHeight = 0; + m_nWidth = 0; + m_szError = NULL; +} + +cPNM::~cPNM() +{ + if(m_szError) + free(m_szError); +} + + + + +/* +int main() +{ + cPNM pnmImage; + FILE *f=fopen("test.pnm", "r"); + if(f) + { + xel* pRow = NULL; + register unsigned int w; + register unsigned int h; + + if(pnmImage.readHeader(f)) + { + for(h = 0;h < pnmImage.GetHeight() && h < GetHeight();++h) + { + if(!pnmImage.allocrow(&pRow) + ||!pnmImage.readrow(f, pRow) ) + break; + + xel* pP = pRow; + if(pnmImage.GetWidth() < GetWidth()) + w = (GetWidth() - pnmImage.GetWidth()) / 2; + else w = 0; + for(;w < pnmImage.GetWidth() && w < GetWidth();++w,++pP) + { + unsigned char* pImageRGB = m_pImageRGB + (((h*GetWidth())+w)*3); + if(pnmImage.GetColorDepth() == 255) + { + *(pImageRGB + 0) = (unsigned char) PPM_GETR(*pP); + *(pImageRGB + 1) = (unsigned char) PPM_GETG(*pP); + *(pImageRGB + 2) = (unsigned char) PPM_GETB(*pP); + } + else if(pnmImage.GetColorDepth() == 1) + { + *(pImageRGB + 0) = (unsigned char) PPM_GETR(*pP)==0?0x00:0xFF; + *(pImageRGB + 1) = (unsigned char) PPM_GETG(*pP)==0?0x00:0xFF; + *(pImageRGB + 2) = (unsigned char) PPM_GETB(*pP)==0?0x00:0xFF; + } + else + { + *(pImageRGB + 0) = (unsigned char) (PPM_GETR(*pP)*255 / pnmImage.GetColorDepth()) & 0xFF; + *(pImageRGB + 1) = (unsigned char) (PPM_GETG(*pP)*255 / pnmImage.GetColorDepth()) & 0xFF; + *(pImageRGB + 2) = (unsigned char) (PPM_GETB(*pP)*255 / pnmImage.GetColorDepth()) & 0xFF; + } + } + pnmImage.freerow(pRow); + pRow = NULL; + } + if(pRow) + pnmImage.freerow((char*)pRow); + } + fclose(f); + } +} +*/ diff --git a/libimage/pnm.h b/libimage/pnm.h new file mode 100644 index 0000000..f28e829 --- /dev/null +++ b/libimage/pnm.h @@ -0,0 +1,218 @@ +/*************************************************************************** + * pnm.h + * (C) Copyright 2004 Andreas Brachold <vdr04-at-deltab.de> + * based on works from Fabian E. Bustamante <fabianb-at-cs.umd.edu> + * Created: Thu Aug 7 2004 + ****************************************************************************/ + +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Library General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + + +#ifndef _pnm_h +#define _pnm_h + +/* + * CONFIGURE: PGM can store gray values as either bytes or shorts. For most + * applications, bytes will be big enough, and the memory savings can be + * substantial. However, if you need more than 8 bits of grayscale resolution, + * then define this symbol. + */ +//#define PGM_BIGGRAYS + +/* + * CONFIGURE: Normally, PPM handles a pixel as a struct of three grays. + * If grays are stored in bytes, that's 24 bits per color pixel; if + * grays are stored as shorts, that's 48 bits per color pixel. PPM + * can also be configured to pack the three grays into a single longword, + * 10 bits each, 30 bits per pixel. + * + * If you have configured PGM with the PGM_BIGGRAYS option, AND you don't + * need more than 10 bits for each color component, AND you care more about + * memory use than speed, then this option might be a win. Under these + * circumstances it will make some of the programs use 1.5 times less space, + * but all of the programs will run about 1.4 times slower. + * + * If you are not using PGM_BIGGRAYS, then this option is useless -- it + * doesn't save any space, but it still slows things down. + */ +/* #define PPM_PACKCOLORS */ + +/* END CONFIGURE */ + + +typedef unsigned char bit; +const bit PBM_WHITE = 0; +const bit PBM_BLACK = 1; + +/* Magic constants. P1,P2,P3...P6 */ + +const unsigned char PBM_MAGIC1 = 'P'; +const unsigned char PBM_MAGIC2 = '1'; +const unsigned char RPBM_MAGIC2 = '4'; +const unsigned short PBM_FORMAT = (PBM_MAGIC1 * 256 + PBM_MAGIC2); +const unsigned short RPBM_FORMAT = (PBM_MAGIC1 * 256 + RPBM_MAGIC2); +#define PBM_TYPE PBM_FORMAT + +const unsigned char PGM_MAGIC1 = 'P'; +const unsigned char PGM_MAGIC2 = '2'; +const unsigned char RPGM_MAGIC2 = '5'; +const unsigned short PGM_FORMAT = (PGM_MAGIC1 * 256 + PGM_MAGIC2); +const unsigned short RPGM_FORMAT = (PGM_MAGIC1 * 256 + RPGM_MAGIC2); +#define PGM_TYPE PGM_FORMAT + +const unsigned char PPM_MAGIC1 = 'P'; +const unsigned char PPM_MAGIC2 = '3'; +const unsigned char RPPM_MAGIC2 = '6'; +const unsigned short PPM_FORMAT = (PPM_MAGIC1 * 256 + PPM_MAGIC2); +const unsigned short RPPM_FORMAT = (PPM_MAGIC1 * 256 + RPPM_MAGIC2); +#define PPM_TYPE PPM_FORMAT + +#ifdef PGM_BIGGRAYS +typedef unsigned short gray; +#define PGM_MAXMAXVAL 65535 +#else /*PGM_BIGGRAYS*/ +typedef unsigned char gray; +#define PGM_MAXMAXVAL 255 +#endif /*PGM_BIGGRAYS*/ + +typedef gray pixval; + +#ifdef PPM_PACKCOLORS + +#define PPM_MAXMAXVAL 1023 +typedef unsigned long pixel; +#define PPM_GETR(p) (((p) & 0x3ff00000) >> 20) +#define PPM_GETG(p) (((p) & 0xffc00) >> 10) +#define PPM_GETB(p) ((p) & 0x3ff) +#define PPM_ASSIGN(p,red,grn,blu) (p) = ((pixel) (red) << 20) | ((pixel) (grn) << 10) | (pixel) (blu) + +#else /*PPM_PACKCOLORS*/ + +#define PPM_MAXMAXVAL PGM_MAXMAXVAL +typedef struct +{ + pixval r, g, b; +} pixel; + +#define PPM_GETR(p) ((p).r) +#define PPM_GETG(p) ((p).g) +#define PPM_GETB(p) ((p).b) +#define PPM_ASSIGN(p,red,grn,blu) do { (p).r = (red); (p).g = (grn); (p).b = (blu); } while ( 0 ) + +#endif /*PPM_PACKCOLORS*/ + +typedef pixel xel; +typedef pixval xelval; +#define PNM_MAXMAXVAL PPM_MAXMAXVAL +#define PNM_ASSIGN1(x,v) PPM_ASSIGN(x,v,v,v) + + +/* Macro for turning a format number into a type number. */ +#define PBM_FORMAT_TYPE(f) ((f) == PBM_FORMAT || (f) == RPBM_FORMAT ? PBM_TYPE : -1) +#define PGM_FORMAT_TYPE(f) ((f) == PGM_FORMAT || (f) == RPGM_FORMAT ? PGM_TYPE : PBM_FORMAT_TYPE(f)) +#define PNM_FORMAT_TYPE(f) ((f) == PPM_FORMAT || (f) == RPPM_FORMAT ? PPM_TYPE : PGM_FORMAT_TYPE(f)) + + +class cPNM +{ + unsigned int m_nFormat; + unsigned int m_nColorDepth; + unsigned int m_nHeight; + unsigned int m_nWidth; + char* m_szError; +protected: + /***************************************************************************** + Print error message and get out + @param variable list of arguments explaining error + @return - none*/ + void error (char* format, ... ); + + /***************************************************************************** + Get pnm magic number (P1, P2, ...) + @param file - source file + @return - magic number*/ + bool MagicNumber(FILE* f,unsigned int& nFormat); + + /***************************************************************************** + Get next significant character, i.e. jump over comments + @param file - source file + @param - Next significant character*/ + bool getchar(FILE* f,char& nNext); + + /***************************************************************************** + Get next bit from file + @param file - source file + @param - Next bit*/ + bool getbit(FILE* f, bit& nNext ); + + /***************************************************************************** + Get next byte from file + @param file - source file + @param - Next byte */ + bool getrawbyte(FILE* f, unsigned char& nNext); + + /***************************************************************************** + Get integer from file + @param file - source file + @param - Next integer */ + //bool getint(FILE* file, unsigned int& nNext); + template<class T> bool getint(FILE* f, T& nNext); + + + bool readpbmrow(FILE* file, bit* bitrow); + bool readpgmrow(FILE* file, gray* grayrow); + bool readppmrow(FILE* file, pixel* pixelrow); + +public: + cPNM(); + virtual ~cPNM(); + + + bool readHeader(FILE* Infp); + bool readrow(FILE* file, xel* xelrow); + inline unsigned int GetHeight() const { return m_nHeight;} + inline unsigned int GetWidth() const { return m_nWidth;} + inline unsigned int GetColorDepth() const { return m_nColorDepth;} + /***************************************************************************** + Get an array from memory to hold 'm_nWidth' elements of size 'size' + @param int size - of each element + @return char* - Pointer to allocated array */ + template<class T> bool allocrow(T** p) + { + *p = (T*) malloc( m_nWidth * sizeof(T) ); + if (*p == (T*) 0 ) + { + cPNM::error( "out of memory allocating a row" ); + return false; + } + return true; + } + /***************************************************************************** + Free memory chunk previously assigned + @param char *p - pointer to memory chunk + @return - none */ + template<class T> void freerow(T *p) + { + if(p != NULL) + free((char*)p); + } + + const char* GetError() const { return m_szError; } +}; + + +#endif /* _pnm_h */ diff --git a/libimage/xpm.c b/libimage/xpm.c new file mode 100644 index 0000000..9572ec4 --- /dev/null +++ b/libimage/xpm.c @@ -0,0 +1,224 @@ +/*************************************************************************** + * xpm.c + * + * (C) Copyright 2004 Andreas Brachold <vdr04-at-deltab.de> + * Created: Thu Aug 11 2004 + * + ****************************************************************************/ + +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Library General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ +#include <stdio.h> +#include <string.h> +#include <stdlib.h> +#include <vdr/tools.h> + + +#include "img1.xpm" +#include "img2.xpm" +#include "img3.xpm" +#include "img4.xpm" +#include "img5.xpm" +#include "img6.xpm" +#include "img7.xpm" +#include "img8.xpm" +#include "img9.xpm" + +#include "error.xpm" +#include "error_small.xpm" + +#include "xpm.h" + +cXPM gOverlay_Image_1(img1_xpm); +cXPM gOverlay_Image_2(img2_xpm); +cXPM gOverlay_Image_3(img3_xpm); +cXPM gOverlay_Image_4(img4_xpm); +cXPM gOverlay_Image_5(img5_xpm); +cXPM gOverlay_Image_6(img6_xpm); +cXPM gOverlay_Image_7(img7_xpm); +cXPM gOverlay_Image_8(img8_xpm); +cXPM gOverlay_Image_9(img9_xpm); + +cXPM gOverlay_Error(error_xpm); +cXPM gOverlay_ErrorSmall(error_small_xpm); + +cXPM::cXPM(char* pXPM[]) +:m_Colors(NULL) +{ + char **p = pXPM; + int c; + if (4 != sscanf(*p, "%d %d %d %d", &m_nWidth, &m_nHeight, &m_nColors, &c) + || c != 1 ) + { + esyslog("imageplugin: ERROR! faulty 'values' line in XPM: '%s'", *p); + return; + } + + m_Colors = new colormap[m_nColors]; + + for (unsigned int n = 0; n < m_nColors; ++n) { + bool bColorNone = false; + const char *s = *++p; + if (int(strlen(s)) < c) { + esyslog("imageplugin: ERROR! faulty 'colors' line in XPM: '%s'", s); + return; + } + (m_Colors+n)->color = *s; + s = skipspace(s + c); + if (*s != 'c') { + esyslog("imageplugin: ERROR! unknown color key in XPM: '%c'", *s); + return; + } + s = skipspace(s + 1); + if (strcasecmp(s, "none") == 0) { + s = "#000000"; + bColorNone = true; + } + if (*s != '#') { + esyslog("imageplugin: ERROR! unknown color code in XPM: '%c'", *s); + return; + } + (m_Colors+n)->rgb = strtoul(++s, NULL, 16) | (bColorNone?0xFF000000:0x00000000); + } + + m_pXPM = p; + for (unsigned int l = 0; l < m_nHeight; l++) { + const char *s = *++p; + if (strlen(s) != m_nWidth * c) { + esyslog("imageplugin: ERROR! faulty pixel line in XPM: %d '%s'", l, s); + m_pXPM = NULL; + return; + } + } +} + +cXPM::~cXPM() +{ + if(m_Colors) + delete[] m_Colors; +} + + +bool cXPM::Overlay(unsigned char* pRGBMem,unsigned int nMemWidth,unsigned int nMemHeight,unsigned int OffLeft,unsigned int OffTop) const +{ + if(!m_Colors || !pRGBMem || !m_pXPM) + return false; + + char **p = m_pXPM; + + for(unsigned int h = 0; + h < m_nHeight + && h+OffTop < nMemHeight; + ++h) + { + const char *s = *++p; + for(unsigned int w = 0;w < m_nWidth + && w+OffLeft < nMemWidth; + ++w,++s) + { + unsigned int rgb; + if(GetColor(*s,rgb)) + { + unsigned char* pImageRGB = pRGBMem + + ((((h+OffTop)*nMemWidth)+w+OffLeft)*3); + + *(pImageRGB + 0) = (unsigned char)(rgb >> 16) & 0xFF; + *(pImageRGB + 1) = (unsigned char)(rgb >> 8 ) & 0xFF; + *(pImageRGB + 2) = (unsigned char)(rgb ) & 0xFF; + } + } + } + + return true; +} + + + +bool cXPM::GetColor(unsigned int color,unsigned int& rgb) const +{ + unsigned int n = 0; + for(;n<m_nColors;++n) + { + if((m_Colors+n)->color == color) + { + rgb = (m_Colors+n)->rgb; + return (0 == (rgb & 0xFF000000)); // Check for color "none" + } + } + return false; +} + +bool cXPM::Overlay(const char sz,unsigned char* pRGBMem, + unsigned int nMemWidth,unsigned int nMemHeight, + cXPM::ePlacement place, unsigned int nOffLeft,unsigned int nOffTop, + unsigned int nWidth,unsigned int nHeight) +{ + cXPM* p = NULL; + switch(sz) + { + case '1': p=&gOverlay_Image_1;break; + case '2': p=&gOverlay_Image_2;break; + case '3': p=&gOverlay_Image_3;break; + case '4': p=&gOverlay_Image_4;break; + case '5': p=&gOverlay_Image_5;break; + case '6': p=&gOverlay_Image_6;break; + case '7': p=&gOverlay_Image_7;break; + case '8': p=&gOverlay_Image_8;break; + case '9': p=&gOverlay_Image_9;break; + case 's': p=&gOverlay_ErrorSmall;break; + } + if(p) + { + switch(place) + { + case TopLeft: + return p->Overlay(pRGBMem, + nMemWidth,nMemHeight, + nOffLeft, + nOffTop); + case TopRight: + return p->Overlay(pRGBMem, + nMemWidth,nMemHeight, + nOffLeft+nWidth-p->m_nWidth-16, + nOffTop); + case Center: + return p->Overlay(pRGBMem, + nMemWidth,nMemHeight, + nOffLeft + nWidth/2 - p->m_nWidth/2, + nOffTop + nHeight/2 - p->m_nHeight/2); + case BottomLeft: + return p->Overlay(pRGBMem, + nMemWidth,nMemHeight, + nOffLeft, + nOffTop+nHeight-p->m_nHeight); + case BottomRight: + return p->Overlay(pRGBMem, + nMemWidth,nMemHeight, + nOffLeft+nWidth-p->m_nWidth-16, + nOffTop+nHeight-p->m_nHeight); + } + } + + return false; +} + +bool cXPM::Error(unsigned char* pRGBMem,unsigned int nMemWidth,unsigned int nMemHeight) +{ + return gOverlay_Error.Overlay(pRGBMem, + nMemWidth,nMemHeight, + (nMemWidth - gOverlay_Error.m_nWidth)/2, + (nMemHeight - gOverlay_Error.m_nHeight)/2); +} diff --git a/libimage/xpm.h b/libimage/xpm.h new file mode 100644 index 0000000..3e9fbb5 --- /dev/null +++ b/libimage/xpm.h @@ -0,0 +1,65 @@ +/*************************************************************************** + * xpm.h + * + * (C) Copyright 2004 Andreas Brachold <vdr04-at-deltab.de> + * Created: Thu Aug 11 2004 + * + ****************************************************************************/ + +/* + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Library General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + + +#ifndef _xpm_h +#define _xpm_h + +class cXPM +{ + + char **m_pXPM; + unsigned int m_nWidth; + unsigned int m_nHeight; + unsigned int m_nColors; + + struct colormap + { + unsigned int color; + unsigned int rgb; + } *m_Colors; +protected: + bool GetColor(unsigned int color,unsigned int& rgb) const; +public: + cXPM(char* pXPM[]); + virtual ~cXPM(); + + enum ePlacement + { + TopLeft, + TopRight, + Center, + BottomLeft, + BottomRight + }; + + bool Overlay(unsigned char* pRGBMem,unsigned int nMemWidth,unsigned int nMemHeight,unsigned int OffLeft,unsigned int OffTop) const; + static bool Overlay(const char sz,unsigned char* pRGBMem, + unsigned int nMemWidth,unsigned int nMemHeight, + cXPM::ePlacement place, unsigned int nOffLeft,unsigned int nOffTop, + unsigned int nWidth,unsigned int nHeight); + static bool Error(unsigned char* pRGBMem,unsigned int nMemWidth,unsigned int nMemHeight); +}; + +#endif /* _xpm_h */ |