43

Chinese Zodiac and Lunar Year can be called very close friends. In Eastern cultures, each lunar year is assigned to one of the twelve animals in Chinese zodiac. The animal (or rather a mascot) of this year is the pig. So, my question in this question is:

How to draw a (lovely) pig in LaTeX?

I found a very beautiful picture on TeXample:

enter image description here

% Author M.R.C. van Dongen
% Draw parameterised pig.
% This code can/should be improved by using the pgfkey library.

\documentclass{minimal}

\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{keyval}

\makeatletter

% We're not using pgfkeys, and we've chosen to use keyval
% for option parsing. The following define the keys for a
% pig keyval family. The main purpose of the keys and
% default values is that we want to be able to draw pigs
% with predefined colours for certain parts and predefined
% scaling factors for line thickness.

\def\pig@draw@thick@width{0.85}
\def\pig@draw@thin@width{0.20}
\def\pig@label{pig label}
\tikzset{draw thick/.style={draw=black,line width=0.85}}
\tikzset{draw thin/.style={draw=black,line width=0.20}}
\tikzset{fill colour/.style={fill=pink}}
\tikzset{nose hole fill colour/.style={fill=purple!50!gray}}
\tikzset{eye fill colour/.style={fill=white}}
\tikzset{pupil fill colour/.style={fill=black}}

\define@key{pig}{draw thick}{\def\draw@pig@thick@width{#1}}
\define@key{pig}{draw thin}{\def\draw@pig@thin@width{#1}}
\define@key{pig}{fill colour}{\tikzset{fill colour/.style={fill=#1}}}
\define@key{pig}{nose hole fill colour}{\tikzset{nose hole fill colour/.style={fill=#1}}}
\define@key{pig}{eye fill colour}{\tikzset{eye fill colour/.style={fill=#1}}}
\define@key{pig}{pupil fill colour}{\tikzset{pupil fill colour/.style={fill=#1}}}
\define@key{pig}{pig label}{\def\pig@label{#1}}
\def\pig@scale{1}

\def\pig{\@ifnextchar[\draw@pig{\draw@pig[]}}
\def\draw@pig[#1]#2{%
   % Set the relative line width for thick lines.
   \def\draw@pig@thick@width{0.85}
   % Set the relative line width for thin lines.
   \def\draw@pig@thin@width{0.20}
   % Set the relative scale of the pig.
   \def\pig@scale{#2}
   \setkeys{pig}{#1}
   \begin{tikzpicture}[scale=#2,
                       draw thick/.style={draw=black,line width=\draw@pig@thick@width*\pig@scale},
                       draw thin/.style={draw=black,line width=\draw@pig@thin@width*\pig@scale}]
   \path (0,0)            coordinate (\pig@label head)
         + (-0.005,-0.20) coordinate (\pig@label nose)
         + (-0.010,+0.05) coordinate (\pig@label body)
         + (-0.010,+0.45) coordinate (\pig@label tail);
   % Define points for tail.
   \foreach \number/\point in {1/{+0.000,+0.055},%
                               2/{-0.058,+0.075},%
                               3/{+0.044,+0.094},%
                               4/{-0.072,+0.137},%
                               5/{+0.048,+0.170},%
                               6/{-0.078,+0.206}} {
       \path (\pig@label tail) +(\point) coordinate (tail \number);
   }
   % Define points for ears and legs.
   \foreach \offset in {-1,1} {
       \path (\pig@label head)
                    ++ (+0.12*\offset,+0.00) coordinate (ear pt 1 \offset)
                    +  (-0.04*\offset,+0.07) coordinate (ear pt 2 \offset)
                    +  (-0.02*\offset,+0.25) coordinate (ear pt 3 \offset)
                    +  (+0.11*\offset,+0.25) coordinate (ear pt 4 \offset)
                    +  (+0.14*\offset,+0.13) coordinate (ear pt 5 \offset)
                    +  (+0.09*\offset,-0.06) coordinate (ear pt 6 \offset)
             (\pig@label head)
                    ++ (+0.09*\offset,-0.30) coordinate (leg 1 \offset)
                    ++ (+0.01*\offset,-0.24) coordinate (leg 2 \offset)
                    ++ (+0.04*\offset,+0.08) coordinate (leg 3 \offset)
                    ++ (+0.04*\offset,-0.08) coordinate (leg 4 \offset)
                    ++ (+0.02*\offset,+0.30) coordinate (leg 5 \offset);
   }
   % draw legs.
   \foreach \number in {-1,1} {
      \filldraw[fill colour,draw thick]
         (leg 1 \number) --
         (leg 2 \number) --
         (leg 3 \number) --
         (leg 4 \number) --
         (leg 5 \number) -- cycle;
   }
   % draw tail.
   \draw[draw thick,line join=round,line cap=round]
         (\pig@label tail) \foreach \num in {1,...,6} { -- (tail \num)};
   % draw body.
   \draw[fill colour,draw thick]
         (\pig@label body) ellipse (4.50mm and 4.10mm);
   % draw ears.
   \foreach \number in {-1,1} {
      % ears
      \filldraw[fill colour,draw thick]
         (ear pt 1 \number) .. controls
         (ear pt 2 \number) and
         (ear pt 3 \number) ..
         (ear pt 4 \number) .. controls
         (ear pt 5 \number) and
         (ear pt 6 \number) .. (ear pt 1 \number);
   }
   % draw nose.
   \filldraw[fill colour,draw thick]
         (\pig@label head) ellipse (1.42mm and 1.40mm);
   \foreach \offset in {-1,1} {
       \filldraw[draw thin,eye fill colour]
                (\pig@label head) ++ (-0.006,0.00) ++ (0.055*\offset,+0.03)
                coordinate (eye \offset)
                ellipse (0.04 and 0.060);
       \fill[pupil fill colour]
            (eye \offset) ellipse (0.020 and 0.035);
   }
   \filldraw[fill colour,draw thick]
         (\pig@label nose) ellipse (2.60mm and 1.72mm);
   % Draw nose holes
   \foreach \offset in {-1,1} {
       \filldraw[draw thick,nose hole fill colour]
                (\pig@label nose) ++ (\offset*0.080,0)
                 ellipse (0.50mm and 0.85mm);
   }
   \end{tikzpicture}
}

\makeatother

\begin{document}
\begin{tikzpicture}
   \draw (0,0) node[anchor=south]{\pig{3}}
         (4,0) node[anchor=south]{\pig[nose hole fill colour=purple!20,fill colour=blue!40]{5}};
\end{tikzpicture}
\end{document}

However, I wish to see more pigs here, especially with other familiar animals, like lions, ducks, marmots, bears, rabbits, birds, donkeys, or penguins.

I am also looking for a tikzlings pig!

9 Answers9

69

The very first appearance of the tikzpig:

\documentclass{standalone}

\usepackage{tikz}
\definecolor{piglight}{RGB}{246,208,198}
\definecolor{pigdark}{RGB}{241,164,142}

\begin{document}

\begin{tikzpicture}

% Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\draw[pigdark,thick] (0.8471, 0.5927) .. controls (0.8549, 0.4832) and (0.8046, 0.4105) .. (0.7319, 0.4079) .. controls (0.6592, 0.4052) and (0.6142, 0.4365) .. (0.5964, 0.5024) .. controls (0.5786, 0.5682) and (0.6252, 0.6291) .. (0.6794, 0.6342) .. controls (0.7335, 0.6394) and (0.7561, 0.6114) .. (0.7663, 0.5661) .. controls (0.7765, 0.5208) and (0.746, 0.458) .. (0.7192, 0.4319) .. controls (0.6924, 0.4058) and (0.7073, 0.4182) .. (0.6604, 0.3859) .. controls (0.6134, 0.3536) and (0.4367, 0.3643) .. (0.3877, 0.5055);

% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\fill[piglight] ( 0.6,  0.8 ) .. controls ( 0.6 , 0.4) and ( 0.35, 0.16) .. ( 0.0,  0.16) .. controls (-0.35, 0.16) and (-0.6 , 0.4) .. (-0.6,  0.8 ) .. controls (-0.6 , 1.3) and (-0.35, 1.5) .. ( 0.0,  1.5) .. controls ( 0.35, 1.5) and ( 0.6 , 1.3) .. ( 0.6,  0.75) -- cycle;

% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\fill[pigdark,rotate around={70:(0.33,0.9)}] (0.33,0.9) ellipse (0.18 and 0.13);
\fill[pigdark,rotate around={-70:(-0.33,0.9)}] (-0.33,0.9) ellipse (0.18 and 0.13);

% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\fill[piglight] (0,1.64) ellipse (.5 and .5);

% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\fill[gray] (-0.09, 1.82) circle (0.02);
\fill[gray] ( 0.09, 1.82) circle (0.02);

% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\fill[pigdark]  (0, 1.62) ellipse (0.18 and 0.14);
\fill[gray]  (-0.06, 1.62) circle (0.035);
\fill[gray]  ( 0.06, 1.62) circle (0.035);

% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\draw[gray] (0.105, 1.46) arc [start angle=-50, end angle=-130, radius=0.16] ;

% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\fill[pigdark] (0.22, 2.0392) .. controls   (0.22, 2.1584) and  (0.49460, 2.255) ..     (0.49460, 2.255) .. controls    (0.49460, 2.255) and (0.5300, 1.86) .. (0.3721, 1.86) .. controls (0.2891, 1.86) and    (0.22, 1.9201) .. (0.22, 2.0392) -- cycle;
\fill[piglight] (0.22, 2.0392) .. controls (0.26, 2.1584) and (0.47, 2.22) .. (0.47, 2.20) .. controls (0.47, 2.2) and (0.49, 1.9) .. (0.3721, 1.9) .. controls (0.2891, 1.88) and (0.22, 1.88) .. (0.22, 2.0392) -- cycle; 
\fill[pigdark] (-0.22, 2.0392) .. controls  (-0.22, 2.1584) and     (-0.49460, 2.255) ..    (-0.49460, 2.255) .. controls   (-0.49460, 2.255) and (-0.5300, 1.86) .. (-0.3721, 1.86) .. controls (-0.2891, 1.86) and    (-0.22, 1.9201) .. (-0.22, 2.0392) -- cycle;
\fill[piglight] (-0.22, 2.0392) .. controls (-0.26, 2.1584) and (-0.47, 2.22) .. (-0.47, 2.20) .. controls (-0.47, 2.2) and (-0.49, 1.9) .. (-0.3721, 1.9) .. controls (-0.2891, 1.88) and (-0.22, 1.88) .. (-0.22, 2.0392) -- cycle;   

% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{scope}
    \clip (-0.5,0.4) rectangle (0.5,0.13);
    \fill[pigdark] (-0.22,0.17) circle (0.15);
    \fill[pigdark] (0.22,0.17) circle (0.15);
\end{scope}

\end{tikzpicture}
\end{document}

enter image description here


In the mean time, the tikzpig was added to the development version of the tikzlings package (available here) with improvements by @Circumscribe and @CarLaTeX (thanks a lot!)

\documentclass{standalone}
\usepackage{tikzlings}

\begin{document}

\begin{tikzpicture}
    \pig
\end{tikzpicture}   

\end{document}

enter image description here

68

You really don't need any packages for this

enter image description here

\documentclass{article}

\begin{document}

\begin{picture}(100,100)

\put(43,56){\circle{6}}
\put(43,56){\circle*{1}}
\put(57,56){\circle{6}}
\put(57,56){\circle*{1}}
\put(50,45){\circle{12}}
\put(48,45){\oval(3,5)}
\put(52,45){\oval(3,5)}
\put(50,50){\circle{40}}
\put(43,32){\oval(5,20)[b]}
\put(57,32){\oval(5,20)[b]}
\put(64,64){\vector(1,1){10}}
\end{picture}
\end{document}
David Carlisle
  • 757,742
45

For the sake of completeness, let's go for a Unicode pig!

% arara: xelatex
\documentclass{standalone}

\usepackage{fontspec}
\usepackage{graphicx}
\setmainfont{Symbola}

\begin{document}
\scalebox{10}{\char"1F416}
\end{document}

Pig

Paulo Cereda
  • 44,220
29

Another pig... wrapped in percusse's incredible ribbon.

\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{tikz-3dplot}
\usetikzlibrary{shapes.geometric,3d}
\begin{document}
\begin{tikzpicture} % tikzpigture doesn't work
 \path[ball color=pink,opacity=0.5,postaction={fill=pink}] (0,0.2) circle (2cm);
 \path[ball color=pink,opacity=0.5,postaction={fill=pink}] (0,0) circle (1.3cm);
 \tdplotsetmaincoords{70}{0}
 \begin{scope}[tdplot_main_coords,smooth]
  \path[top color=pink!70,bottom color=pink,shading angle=25] 
  plot[variable=\t,domain=0:180] ({0.6*cos(\t)},0.5,{0.6*sin(\t)-0.3})
  -- plot[variable=\t,domain=180:0] ({0.6*cos(\t)},0,{0.6*sin(\t)-0.3});
  \fill[pink]
  plot[variable=\t,domain=0:360] ({0.6*cos(\t)},0,{0.6*sin(\t)-0.3});
  \fill plot[variable=\t,domain=0:360]({0.3+0.15*cos(\t)},0,{0.15*sin(\t)});
  \fill plot[variable=\t,domain=0:360]({-0.3+0.15*cos(\t)},0,{0.15*sin(\t)});
  \fill plot[variable=\t,domain=0:180]({0.35*cos(\t)},0,{-0.3-0.15*sin(\t)})
  plot[variable=\t,domain=180:0]({0.35*cos(\t)},0,{-0.3-0.35*sin(\t)});
  \tdplotsetrotatedcoords{-20}{30}{00}
  \begin{scope}[tdplot_rotated_coords] % right eaw
   \path[inner color=black,outer color=pink] plot[variable=\t,domain=80:170]
   ({0.53*cos(\t)},{0.53*sin(\t)},{1.2})
    -- plot[variable=\t,domain=170:80]
    ({0.53*cos(\t)},{0.53*sin(\t)},{1.2+0.4*sin((170-\t)*2)});
  \end{scope} 
  \tdplotsetrotatedcoords{20}{-30}{00}
  \begin{scope}[tdplot_rotated_coords] % left eaw
   \path[inner color=black,outer color=pink] plot[variable=\t,domain=10:100]
   ({0.53*cos(\t)},{0.53*sin(\t)},{1.2})
    -- plot[variable=\t,domain=100:10]
    ({0.53*cos(\t)},{0.53*sin(\t)},{1.2+0.4*sin((100-\t)*2)});
  \end{scope} 
  \tdplotsetrotatedcoords{-30}{40}{0}
  \begin{scope}[tdplot_rotated_coords] % right eye
   \fill plot[variable=\t,domain=0:360]({0.2*cos(\t)},{0.2*sin(\t)},{1.3});
  \end{scope} 
  \tdplotsetrotatedcoords{30}{-40}{0}
  \begin{scope}[tdplot_rotated_coords] % left eye
   \fill plot[variable=\t,domain=0:360]({0.2*cos(\t)},{0.2*sin(\t)},{1.3});
  \end{scope}
  \tdplotsetrotatedcoords{20}{-150}{0}
  \begin{scope}[tdplot_rotated_coords]
   \path[ball color=pink,postaction={fill=pink}] 
    plot[variable=\t,domain=0:180] ({0.4*cos(\t)},{0.4*sin(\t)},1.8)
  -- plot[variable=\t,domain=180:0] ({0.4*cos(\t)},{0.4*sin(\t)},2.4);
   \path[ball color=black,rotate around={-10:(0,0,2.35)}] (0,0,2.35) circle(4mm and 2mm);
  \end{scope}
  \tdplotsetrotatedcoords{-20}{150}{0}
  \begin{scope}[tdplot_rotated_coords]
   \path[ball color=pink,postaction={fill=pink}] 
    plot[variable=\t,domain=0:180] ({0.4*cos(\t)},{0.4*sin(\t)},1.8)
  -- plot[variable=\t,domain=180:0] ({0.4*cos(\t)},{0.4*sin(\t)},2.4);
   \path[ball color=black,rotate around={10:(0,0,2.35)}] (0,0,2.35) circle(4mm and 2mm);
  \end{scope}
 \end{scope}
 \begin{scope}[my polygon/.style={regular polygon,regular polygon
  sides=#1,minimum size=6cm},
  Moebigon/.pic={ % based on https://tex.stackexchange.com/a/236228/121799
\node[my polygon=#1] (a){};
\foreach \x[remember=\x as \xp (initially #1)] in {1,...,#1}{ % use `in {1}` to see the edge
  \fill[shade,shading angle={360*(\x+2)/#1}] (a.corner \xp)
     ..controls ++(360*\x/#1:2cm) .. 
     ([shift={({360*(\x+1)/#1+12-#1}:1.5cm)}]a.corner \x) 
     -- (a.corner \x);% Come back such that shading doesn't leak
}
},top color=black!50!red,bottom color=red]  
   \pic {Moebigon=6}; 
 \end{scope}
\end{tikzpicture}
\end{document}

enter image description here

  • 2
    I bet its 3D and is that a Micrometer sleeve at the front ? –  Feb 05 '19 at 04:10
  • 2
    @KJO No, it is not. I would actually be considerable effort to make it 3d. There are some elements that are in principle, though.... (the eyes and the nose) –  Feb 05 '19 at 04:11
  • 1
    Apart from David does not know how to plot curly line all the others have tails~ –  Feb 05 '19 at 04:16
  • 2
    @KJO In this sense it is 3D: the tail is hidden by the body. ;-) –  Feb 05 '19 at 04:19
  • 1
    Thought that would be your answer :-) –  Feb 05 '19 at 04:20
  • 2
    @KJO oi! I could have use \qbezier but I didn't want to spoil the elegance of the \vector implementation, which benefits from simplicity of markup and almost photographic realism. Unlike a certain 3D package I could mention which makes things looking like balloon animals made by a children's entertainer. – David Carlisle Feb 05 '19 at 09:29
  • 3
  • 1
    @DavidCarlisle Please note I was one of your earlier upvoters as I acknowledge your TeX graphic skills Greatly surpasses my own (and I get paid to draw :-) Marmot, SamCarter et Al know I admire their abilities in making it "look" so easy" and even Paulo out-beat me as my Unicode pigs got pilloried. Most of my suggestions are leg-pulling However am impressed how my irony falls "like water of a ducks back" and the results usually exceed my and OP's expectations. –  Feb 05 '19 at 12:15
  • 1
    @KJO my reply was to be taken in the same spirit:-) (apart from the part saying marmot's attempt looks like a twisted balloon, of course) – David Carlisle Feb 05 '19 at 12:20
  • 1
    @DavidCarlisle Aw that's cruel, I was taught one should not pick on the smaller ones, just educate them –  Feb 05 '19 at 12:22
  • @marmot Just one thing is missing: animations. – Raaja_is_at_topanswers.xyz Feb 05 '19 at 13:33
  • 1
    @Raaja This is a very very slow animation. ;-) –  Feb 05 '19 at 15:22
  • 1
    @marmot I can see the animation via my time wrapper :) – Raaja_is_at_topanswers.xyz Feb 05 '19 at 18:18
  • Can I rotate it 180 if I turn the monitor towards the wall ¿ and then see the çurly tail ç>°-° ¿ –  Feb 07 '19 at 22:57
  • @KJO My laptop has also an outer screen, on which you can see the tail. All you need to do is to buy such a laptop. ;-) –  Feb 07 '19 at 22:59
  • @KJO Can't promise. (Are these real or virtual screens?) –  Feb 07 '19 at 23:01
  • @KJO Makes sense. (I guess drawing a 3d pig with TikZ will be a bit cumbersome. Drawing 2 3d spheres that intersect and can be rotated at will could be feasible with reasonably little effort, I did however not try.) –  Feb 07 '19 at 23:06
  • is it one of these https://www.techradar.com/uk/news/asus-dual-screen-laptop-rocks-intel-core-i9-power-with-discrete-graphics I don't think it can look round corners though one of mine is transformable so I could try flipping it off the desk ! –  Feb 07 '19 at 23:14
  • @KJO No, those do not have marmot-friendly keyboards. ;-) –  Feb 07 '19 at 23:15
27

run with xelatex

\documentclass[pstricks]{standalone}
\usepackage{pst-fun}
\begin{document}

\begin{pspicture}(-2,-4)(8,4)
  \psPig(0,0)
  \psPig[fillcolor=blue!40,noseColor=purple,eyeColor=red,linewidth=4pt,unit=2](4,0)
\end{pspicture}

\end{document}

enter image description here

10

Though I am very late for the fun, I haven't seen an ascii contribution yet. Hence, here is my contribution in the form of ascii art :)

\documentclass{article}
\usepackage{filecontents,listings,graphicx,varwidth}

\begin{filecontents*}{pig.txt}
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMWWWMMMMMMMMMMMWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWNXK0OOkkxxdddoolooooollccc:::;;;;,,,,,,,,,,,,,,,,,;;;;::::cccccclllooddoc:::cllodxO0KXNWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWNX0Oxdlc;,'....                                                          ....        .....''',,,,;:cloxk0XNWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWNKOxol:,'..                                                                     .:dO0OOOkkxkOKKXXXXXXXXK0Okkdl:::;;:ldk0XWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNKOxxol:,..                         ..,;:'  .;:coxOkdl,..,:cll;.  ...    ..;coddoclodoo;..;kXWMMMMMMMMMMMMMMMMMMMMMMMMMN0kdddolcllcldkKNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXkl,.           .;cc;.  .,. .':ldxdc:cx0KKKX0kOXNN0xoc:codkOOxooxxddollclkOOkOXNXXXXKkc;:lolodOKKKNWMMMMMMMMMMMMMMMMMMMMMMWXKK0OOOOkxdddoolloxOXWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKo.           .;odddoll:';xOxodx0K0KXXNWWWWNXWMMMXOxc;cx0XNKxdooxOkoxOOOOKNWMWNXXWNKK0OOOOKNWWWWNXKXNNXWMMMMWXXWMMMMMMMMMMMMMMMMMMMWXK0OOkkkxxol:;;ldOXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMWWNNNWWMMMMMMMMMMXd'       ...'lxOOkxxk0XWWXK00OO0KXWMMWX00KNMMMWXOkkOKXNWNKOxxxxOOOOxoKNKOkk0XXKKXNWNXXX0OOKNMWNXOxkKWMWNWMMMMMNNWMMMMMMMMMMMMMMMMMMMMMMMMMWX0Okkkxdl;...;lkKNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMNkl;'',:ldk0XWMMMWO;       ,dK00XXKKKXWNKKWMMMWNNWMMMMMMWNXXNXXX0kdxkO0KNNK0OOOKXXKXWNX0xdxkOOkxk0KNWNKkdloxOXWMNK000XWMMMMMWNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN0O0O0K0o'   .,cd0XWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMXx;.. ..     ..;lxx:.      ,d0NWMMWXWMWKOk0XWMMMMMMMMMMMMMMWXOxxkkkOKK0l;ckOO0XNNWMMN0o::ldO0Ododk0Oxolc:cdkO00KWMWNNNNXNWNXNWNXNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNKKNMWWWW0c.     ..:oOXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMNk;.:xkO00k;               .o0X0OKX0OKXOkkKNMMMMWNWNOkONMMWXkc;cOXXKKK000kxO000XWMWXkoc:cdOOdcclkK0kxxxdoxxdlcd0NWNX0kxxxk0NNNWWNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX0OO0NWXKXKOo,.      .;o0NMMMMMMMMMMMMMMMMMMMMMMMWNXK0OkxxxxxkkOOOO00KWMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMXl. .ooxXNNN0o:,.          .oKNWXOxxxkkxOXWMMMWXOOkxddkKWN0l,,:x00OkkkOKXXKOxxOXNXkoccoO0Od;,:d0XKOkOKXKko::ldk0K0OkOOkkk0XXKXWMWNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN00KXNWXKXWWN0c.        .;dKNWWWWNNXXXKK0OOkxddoc:'...        ..''..,dXMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMNo.     .,;;dXWWXl         ;kNMMWNKOkxk0NMMMMNOlcodxkKWWKx:,:dOOkkOKK0O0K0kdldKKOdodkKX0d;',oO00OOO0XWNKkddOXXK0kkkk00kdlldKWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN0OXWMMNKKXXOoc:;,.        .,:::;,''......       ....... .;lodkOxc;o0NMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMXc          'OWW0;        ;0WN0kkOOkOKWMNXNNk;..:okXWNOo:cd0K0O0KNNK0K0kxxO00Oxox0NN0d;.'ckKKOxxKNXKXXkx0NWWXOdlccldolloxkKWMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMMMMMMNK00Odl;.                     ..;clooxxkkOOOdlcdKKK0kdokXWMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMWx.  'cc,.  .xNO,      .;d0NKkxk0O0NMMNOxxdo;';lkKNXklcd0KXXKXNXOkO0Oxdx0XKkddOXX0d;..;xKWXkoxOXWWXKK0O0XKxc;oOOdollld0NWWWX0Okk0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXXWMMWKkkOOkkOxc'.                ..,cokKXXNNXK0OxdxOXXKOo;';lxKWMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMK:  .:dd,  ;Ox'    .:xKNXOddxKNWWNXXkccoooOOkOKXKxloOXXKKX0oclok00kkOOKKOkxOKOdo;.,o0NXkocoOK0dc:lxO0Odc:cldxkxdxk0XX0kkkkkk0KNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNKKNWMWNK00kdlc::,. .....     ..;ld0XK0OkkOKXWNXK00KXX0d;';lkKWMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMWO'   ;dc..::.  .;dOkKX0kxOKKOXMNOd:..:xK0kOKXOooxKKKKKKOc,;o0NNXK0Oxo;:xKOdoooddkXXOl::d0KOc. .lOOo;,:oxOOO0KK00KOl;lOKXNWMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNNMMMMMMMWKOKNNNKOxl. .;x00xdo; .:ldKNWX0kddxOXNNK00XWMWKd;.  .oKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMWk'          .:xxddOKOOO0XNKkKN0c;cldKKdoOKklokXKOOKKx:,lk0XWMN0kkkxdoxkkxxkOOKX0d::ok00Okl,,d00xccxKNXXXOdlcccoddoxXWWNK0KXWMNKXWWNNMMMMMMMMMMMWNNWMMMMMMMMMMMMNXNMMMMMWNNNNWWXXK0kdodxkd:'.;'  ;kOO0KK0OOkOOkKNXOxkXWKl.       .;coxxkOKXNWMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMWx.         .lxxxxxdx0KOkOkkK0; ,kXKkdxkd:ckXKOO00o,'l0X0OKWXx;,cox00kdxk0KNXkl:lxO00OkoclxOkxddkXWWXOo,..:oxkOOOOkdooox0NWWNXXNWWXNMMMMMMMMMMMWXXWMMMMMMMMMMMMMMMMMMMMMNKKKKXNX00K0xl,.  .,l,  ,cdO00kdddddkKNKOkOOkl.               ....,:ldO0XNMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMK:.;;.    'oxdxxdx0NXkkKX0kdlcdKKdcxOo,,d0xclxd:..lOOkkkk0XO:.;d0Ol,;lxOKKxllxkOOOkdc;cdkkxdxkOOOOkl..:d0KKOxo;'.,ck0XWWXOkkOKXNMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNXXWWXKNMMMNKOk0NN0dl:codxdkOk:    ,xxl',cdkO0XWNKOOxdl.          ..,:oxOOc.    .;o0WMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMWKl'l0l.    ....;;,:kNX0OXWXkk0XXx::dl,'cdl;c;'. .lko;;dKX0d:,ck0x:.;okOOkxdxkkkkkxl::loxkxxxxddxxl::cd0NWKxc,.':okKWMMWKOdx0NWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXO0NMMWMMMMMMMMMMWKkkkxxOKNWWx.    ..  .oxkXWMMMN0kl.           :x0XWWW0o;..':lx0XWWMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMWXd,  .'          .;dkO0OkO0Ox0NK0d:xXOdd0Xxcoo, 'oKKo'c0XOl;;oOkl,'cdkkkkxxxxddxdl::oxxxkkxxoodxdl:;lkXNKxc,,cdO0xdkNMWWKxokXMMWXXXNMMMMMMMMMMMMMMMMMMMMMMMMMMMNXNWMMMMMWKOOOO00000x;. .lkOOkxxo'     .;:';odddo,.             'dOkxolllldOKNWMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMXd'         .,...:dxxxxxkKWXOkO00OO0XX0OdoxKNNWXxdkl;;cx0x:;ckKk:.,okkxxxdddddxOk:,cdddxkkkxodxxdl:cxK0Od:,;oOKOd:,;xXXkollldONWX0OOKNMMMMMMMMMMMNKNMMMMMMMMMMMMWNKNMMMMMWN0kxkkOOkl,;;..,lkKNN0l.                                ..':okKNWMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMWO;           .:oxkdodkKK000OOOkkOO0XKOkkkkk00xoOXOl;;lxkxddkKKOo:cxOxddd:,lkO0NXOdoollxO0OxddxxdooxKWNOl;:oO0kl;,;lddo:':dkOKNWMMMNK0KNMMMMMMMMMMMWNWMMMMMMMMMMMMMMMMMMMNKKKKKKK0000kdOKO00Oxdl:'                             ,oolox0XWMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMWXo.       ..   :kd:..lXNXNXkdxOKNK00OkxxO0XNKOxddoodx0KkdxOX0dcclxKKOkkKXOxdkNMWX0OkolkXWXkdxxxxdxkdk0dlcokOdc;;lddoooll:lKWWXOxk0XXNNWMMMMNXXWMMMMMMMMMMMMMMMMMMMMMMWWMMMWXNWNXKKKXNKOxxxxxxdllodxl.                  ...      .oXNXNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMWO,       'x0o.  .. .:dOdoONN0xod0NNXkdk0XNK0Oxdl::oKX0kxxdxdlclkXWMNKXN0KXX0O0XXNXOOO000NWKkkxdk0Ol:::ldkxl;.,lxxdoodkO0OOK0dlc,,oKWWNWWMMWNWWMMMMMMMMMMMMMMMMMMMMMMMNKKNMMMMMWOollllodxxxxdxkOklldO0kc.         'cc;:ccoxd'    .,.:0NWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMNx. ':.  .cKWK;    .lOkl:cxOKN0xkNMMWKO0XK0OOxlodxOKOdox00c..:o0WWNKOO0XXKKK0Okxxk00KWMNOk0NWWXOOXW0ddxxdc,,:odolodxkO00OkdllclooookXNK0NMMMWXXWMMMMMMMMMMMMMMMMMMMMMMMWWWWMMWNNWWNNX0OOkxxxxkKNWWXK0xdol;'.     .;dkkxl'  ..     ,xc.:KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMWKl. .kK, .xNMMO'   'od;,cddokKXXWMWXNNX0kxOOkdc:OWKxllxkdxxldO0KK0OOO0XXNNNX0OkddkO0O0XWMNKKXWMWX0NWNOo:,;lxkkkkxOK0OOkdooodxxxddddkKWMMMMNKKWMMMMMMMMMMMMMMMMMMMMMMMMMMX00KNMWNNXKKXXOdlldKNKxdkOOkxxdoodxl.   ..;c;'.            .o0c.lNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMNk,.'l0Kl.'OWMMWk.   ..  ;dxxOOOKNMWXNWMMXOOkkxOKX0dldOkc. .'ckXWKOxxO00O0XWW0kOOO0XNX0O0KWWKOKWWNKOxol'.cdO0Oxxk0NNKkolloxxdlcldO00OkOKWMMMWNWMMNXNMMMMMMMMMMMMMMMMMMMMMMMMMWWWNK0KXWWWNKOO00xc:lxxxxkkOOO0Kx..;lldl.       'lxo.    .dk'.kWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMWXk:.,xXNk, .kWMMMM0,      ,okxdx0NWNKOKWMWXOkkkO0KKkdxOOl. .';''dXXxdxkOOOOKK00OOOKXWMMNKxx0WWNNKkxkkdddxodO0KKOkkkkdlccoxdlccldkkxkkkxxOKK00NWNOkKNXXNMMMMMMMMMMMMMMMMMMMMMMMMMMMNX0K0o;cdkO0XNKOkkxxxkKXKOkdd:...:k0Okd,   .c000Xk.    ... ;KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMWO,.'dXW0c.  :XMMMMMNo.   .cxdoxKNX0O00OOKXOk0NMNXK0Oxl,..  ,:''oKKOxx0NWKOOOO0O0KKKNWWKxodOXWXOxlclONK0OkxxkOOxdxkxccldkkxddxkxxxxxxdoc:xXXOxkKWN0OKWWXKWMMMMMMMMMMMMMMMMMMMMMMWXXWMMWNKxc;col:cdkOOKKXXKKK0Okl,':xxxxdxOK0o;..',.'dXd.    .,..dWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMX: .lOKd''. 'OWMMMMMMO'    ':kNNKkkOOxxkOKKKX00NMW0d;.  .':oo,.o0kxxKWWKOkO0KKXKXNXXNKkxkKNK0K0xdOXWWKxc::ldkkxkkl;:d00OOkkkdodxxxo:,;;cx0xlclx0NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKKWWN0koc;.   .cOXNXX0kxkO000xc:ldo:;cd0NXKXXOkxkkkOX0;        'kNMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMO'  .;;  .'c0WMMMMMMMK;     ,dxxxOkddkO0KXXOxxOKOo,  .:dkkdc'..lO0KK0dldOKXXXXNNKOxxOKXNKkxkKXK0KKOo;..'oO0OO0kollkNMN0kdlloxkdc;,:oxxdo;. .d0Ox0NMMMMMMWWWMMMMMMMMMMMMMMMMMMMMMMMMMNOxxo,   .:dkOOOOO00OOOkxOkl,';cdxdooxOOOO0000OO0XO,.        .cOWMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMWk.       ;ONMMMMMMMMMNo.   .:clxxddddxOKX0kxxdoo;..:x0Oo;. .,d0Kxccc;lOKKKXWWKOkdxkKXKxddOXWXKXKk;. .cxkxdodo;.oKXWN0dlldkko;',cxkxdoc;.  .;dOO0KKOO0XWWKKNMMMMMMMMMMMMMMMMMMMMMMMMMW0xdd:.'oxxkkkO00KNNNX0xodo' .,:,;cxKXNNKKNMMWNXNW0xxxkkOOkd:'.'lKWMMMMMMMMMMMMMMMMMMMMMMMMM
MMWx.    .;kNMMMMMMMMMMMMO'     .,lxkc:xXKocoodxkOd;:OXk;.  'lkK0o,  .ck0kO0KX0l,cxOOkdooxKWWX00XKl..cdOOkollllolkXKkdoodk0Ol,,lxOkxddll:;;:dkxdokXXOxxkOKWMMMMMMMMMMMMMMMMMMWNWMMMMMMMWKkxdc..,oOKNWMWNXK0KNNOddo,   .cxKWNKXWNWN0000kxOkodOO0KXXx;oOo''dXMMMMMMMMMMMMMMMMMMMMMMMM
MMWl .'..xNMMMMMMMMMMMMMMX:      .xxco00l..,okkdlcldOOc. .:xOxdl:..'lO0d:oxdkx:;dOx:';o0WWX0O0KOo;cxO00OxxkOO0KNXKk:,lkxc;;coxkkxkkdoc:lxkOOo,.  .;okOXWWNWWMMMMMMMMMMMMMMMMWNNWMMMMMWK0OddkOd,.ck0KNWNNWMMMMN0kdolll,'xKOdokXMXxoOKOolood0XXNWWNXkldXW0c';xNMMMMMMMMMMMMMMMMMMMMMM
MMWo   .xWMMMMMMMMMMMMMMMWx.      ..:dl,'cxxddooddl:'..,dOOOkkO000O0K0kc.. .;dO0x;.;dXWKkdxOOxc,:kNWKkkkOOOdclx0Kd:..clclkKKOxk00Okxkkkdc;'.       'oO0KNWXKNMMMMMMMMMMMMMMMMMMMMMMMMWX0xllc,.  'dKX0OkKWMWWWX0OkOkd:,cxdodx0NOc:OXxldd:l0NXXXWW0od0NMMMWO;.;kKNWMMMMMMMMMMMMMMMMMM
MMWx. 'kWMMMMMMMMMMMMMMMMMK;       ...:dkdccxOOdc.  .:x00O0XNWWNXKK0Odc'  .l0Kd;'ckXNOocokkl;;oO00xc,:xxo:...lOOxdxdld0NNKOxdxO0OOK0oc' ..'c,  .';cc:dkOKNWWWMMMMMMMMMMMMMMMMMMMMMMMMMWKddko'  .oKXNK00XXXXXNNNX0Okddkxoxd;,:ccxOKNXXd,lK0OOl;dOkk0KK0dloo:..,:loxOXNWMMWNX0kkKNMMM
MMWk',0MMMMMMMMMMMMMMMMMMMWx.       ,oo:.,oxddxkdc:dOOO0KK00XWMW0xl,. ..  ;dl,,ckXKxlcdkd:';dOk:,c,   ...;loodxxxxk0K00OkxdxxkO00kc..';lxkkdccodoclOXNNXNX0XWMMMMMMMMMMMMMMMMMMMMMMMMMWKc,;.   .cO0Oxxk0KXNX0KXWMNx,,cdx:  .'lOo,:dO0::KN0k;.:dol:;'.. .cx00kkd:';:,;clc:,..,,'dWMM
MMMO;oWMMMMMMMMMMMMMMMMMMMMK;      .'',;.'cdxxl,':okO0XK0O0NX0Odclllloxl..';,;dOklcoxxl;:cokko,..'.  .;oxxkkxxxkdoxOK0kxdxddxk0kl..:kOkxkkxl,,,..;dOKK0OKNNWMMMMMMMMMMMMMMMMMMMMMMMMMWXKKKkl'  .'cxkkkkOKX0OO0K000d;:dd'   .ox;  ...'..,cc.  ..       .oOOkOkxd:.cko:,.    :KO,lWMM
MMMKdOMMMMMMMMMMMMMMMMMMMMMWx.       ,occxOd,.   ;kK0OO0KWNkcokKNWN0xxxxxOKNXkl;. ':,..:lloxl.    .cddl;.'cdxdoooodxkkkdolllodxxdoxKX0kkdoc.     .,:lloxXWMMMMMMMMMMMMMMMMMMMMMMMMNK0Oxx0KOd:..;:lxkkkO00kxk0XX0O0XXk:.    ''.                        'lxOkdl:;:cdOKNXx,  'Ok,;0MMM
MMMWXNMMMMMMMMMMMMMMMMMMMMMMX:         'lc'     ,kxlokOKKOxkKWMWKkxxO00XNNKOl.            ..     .:c;.  .:lloolcldddoooodxO000kxkkOKXOc.         .;ldO00KOkxxxkO0XNWMMMWWNWMMWNXKK0kdlccllodc. .lXWX0OkOKNNXKOkO0XO:.     .'                         .cl:,..;dkOO0KKKKKc .dx.'kWMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMWk'                 ..  'oO0OOKWWX0OO00OkOOxc,.                             ';;:codooodddkKXKkoc;;,,o0Od:.           .:xO0kk00kO0O0KXWWMWNWWKOO0KNNXOO0KOkkxo;. ..'cdO00O00OO00O0XNWWX:       .'           .ll,.      ...      .clcokKk;...  lO;.dWMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMNx'                     cOKKK0Oxk00kddxko,.                                   . .;lxxxkOxl;.       ';.       .':;..,lxO00xoxkxO00O0KNMMWNWMMWNNWMMMNKKXNN0:.     ';,',lolcoOK00XWN0xc:c,      . ,o;       .:x00kdoollxKKxc'.     ...'.     ;Kd.cXMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKl.                  .ododo,;odlcokkl.                                  ..      .;'.         .     .:c,.'ldddoodk0OO0OOkkkkxxxxkO0OO00XWX0KNMMMMMMWWWMMWO:.         .;lodo:'colllodl;..:c,.   .:'          .;:lodxxkkOO0K0xc,.          'OK;'OWMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNo.                  .     .':xkl,.                  .';clo:,','..';ldkk:.,ll'.. ..  .'':lddo:,:oxdl,'lOOxookNNKkllxkkkk0KXNX0k0NN0OXNWKk0NMMMMMMMMMMMMNd.             .;.  .cdo;. .lxd'.'  .;.    .;;.               .':dOKKkdl:'     ;d,.oNMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXl.                        .ll.                  'cxKNWWWKKNNX0O00kkxoccdOd;.,,.,c,:x00OOOOOkkxxo'  ;dkkkkOkdoc:cdXWMWWNKko:,..dKNXXWMMMMMMMMMMMMMMMMMWk.                   .      ..       .     .xOl.                   .;coxxl.      .oXMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNk,                                          'oOK00NMMMN0OKKkdxo;.  .lodddool;;oO0kdc'.,lc;'.;o:. .:olc;;::coddolc:;;,'.   ;o,cKWMWMMMMMMMMMMMMMMMMMMXl                                           .                           .......,o0WMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKc.         .c'.:xkdc.                    .cxxxkOOxdl;....           .;:,,cddl;.                 .                       .d00XWMMMMMMMMMMMMMMMMMMNOl.                                                   .':looodxdoooodddxxkO000KKXWMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNx'        .';',ok0Od:'.                     ',.                         ..                                             .c000NMMMMMMMMMMMMMMMMWKo.                                .lkkkxxxdddooolooodkOKNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXo.   .'cdkOkkkkxc..';.     ..'.                                                                                        'kNXXMMMMMMMMMMMNK0xko.  ...                      ..;lxOKNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMO'   ,l:,:ldxxdl'      .;lx0XN0c.                     .';:::;,'..                                ....           ..,,.   .;cdKMMMMMMMMXOxx;... .cKXOkkkkkxxddoolloooddxxkOKXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWo        .;ll;.    .,lkKWMMMMMMWKx,              '.  'kNWMMMMWNX0Oxoc;'..                ..,:ldkO0KXO;        'oOXWWk.     'oKWWMMMMMWKo,    .xNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWO' .,cl;.,:'     .;xKWMMMMMMMMMMMMWO'           .o0l. ,0MMMMMMMMMMMMMMWNX0OkxdollllloddxO0KXWMMMMMMMMMO.      .o00XWMWx.   .d00000KWMMMMXc.  .dWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNx..cOK0OkkOx,   .;kNMMMMMMMMMMMMMMMMXc          .d0kd; ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK;   .;ok0XWMMMMWo    .;xXWKKWMMMMMX:  .kMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXl. ;XNOdddol;. .lx0WMMMMMMMMMMMMMMMMMNl.        'dxd00;.dNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXc   :0K0OKNMMMMWk;.   .dNWNWMMMMMMWx. 'OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMKc   'l;..,c'   ,ONXNMMMMMMMMMMMMMMMMMMXc         .,:OKOc:0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNl.  .cdk0XWMMMXkx0O:   lNMMMMMMMMMNd. cXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWO;      .,;cl'  cKMMMMMMMMMMMMMMMMMMMMMWO'          ,kX0xcxNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWd.  :KMMMMMMMKodXMMNd. .c0NWMMMMWOo;..dWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWO,       .dk,  .lXMMMMMMMMMMMMMMMMMMMMMMWk.         .kWW0::KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNo. .lKWMMMMWOlxNMMMMW0; .o0XNMMMWK:  .OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKc.       ..   :XMMMMMMMMMMMMMMMMMMMMMMMMK:         ;KMK:.oNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMX:.;xKWMMMMNxckWMMMMMMMK: .dNWMMMW0; .oNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNd.    .lo.   ;KMMMMMMMMMMMMMMMMMMMMMMMMWx.        ;KNx'.dWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWx:dXWMMMMMNo,xWMMMMMMMMMXc 'kWMMMWO' '0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK:     ';'.   oWMMMMMMMMMMMMMMMMMMMMMMMMK:       .oNO;..xWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWk:oKNWMMMMNl.lNMMMMMMMMMMMXc .:0MMMNo..xWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWx.      ..   ;KMMMMMMMMMMMMMMMMMMMMMMMMWO'      ,OO:  ,0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK;'xNMMMMMWd.:KMMMMMMMMMMMMMK,  lNMMMK; 'OWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXc ..  .lkkc..xWMMMMMMMMMMMMMMMMMMMMMMMMNd.     ...  .oNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMk..d0NMMWKo';0WMMMMMMMMMMMMMWd. .oXMMWk' ,0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK:.   .oXMX: :XMMMMMMMMMMMMMMMMMMMMMMMMMXl        ...lXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK;.;xxxkd,.,OWMMMMMMMMMMMMMMMXc  ;0MMMW0;.oNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0;     :KNo..xWMMMMMMMMMMMMMMMMMMMMMMMMM0;      .c00ooXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWx. . .;;..xWMMMMMMMMMMMMMMMMMK; .cKWMMWO'.xNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWx.     .xO; 'OWMMMMMMMMMMMMMMMMMMMMMMMMW0:       ;d:.oNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK:       '0MMMMMMMMMMMMMMMMMMWO'  'lkXNO' ,0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0,      .'.  ,OWMMMMMMMMMMMMMMMMMMMMMMMMMK;          .oKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWx.      .dNMMMMMMMMMMMMMMMMMMX;     .,.  .dWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXc            .dNMMMMMMMMMMMMMMMMMMMMMMMMWx.           .l0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNk;      .oXMMMMMMMMMMMMMMMMM0'      ,ol, .cKMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWd.             :KMMMMMMMMMMMMMMMMMMMMMMMMXc.         .'''lKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK;  'll..,xXMMMMMMMMMMMMMMWx.      ;0WXo. :KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXx'        ':o:.:KMMMMMMMMMMMMMMMMMMMMMMMMNOxdl'     'x0x:;kNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWO, ,0Wk'  'oKWMMMMMMMMMMMMKcckOo.  .lKNk,.c0KNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNNOc'.    .lOXNx';0MMMMMMMMMMMMMMMMMMMMMMMMMMMMK:   .:xddxc'xWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWk'.:xo.    'xWMMMMMMMMMMMMWWMMWk'   .cdl. .;0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNKx,    ..,,. ;0MMMMMMMMMMMMMMMMMMMMMMMMMMMMXklcclol:loo0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW0xdolc::;;:xNMMMMMMMMMMMMMMMMMW0lc:;;;,'..lXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXkxxxxxxxxxkXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWMMMMMMMMMMMMMMMMMMMMMMWWWWWWNXXNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
\end{filecontents*}
\newsavebox{\asciiart}
\newcommand{\pig}{\raisebox{.8\height}{\resizebox{1.5ex}{!}{\usebox{\asciiart}}}}

\begin{document}
\begin{lrbox}{\asciiart}
\begin{varwidth}{\maxdimen}
\noindent\lstinputlisting[basicstyle=\ttfamily]{pig.txt}
\end{varwidth}
\end{lrbox}%

 \scalebox{50}{\pig{}}

\end{document}

to get:

enter image description here

7

There is, now, also my pig :-) drawn with Matcha editor https://www.mathcha.io

enter image description here

\documentclass[a4paper,12pt]{article}
\usepackage{tikz}
\begin{document}

\tikzset{every picture/.style={line width=0.75pt}} 

\begin{tikzpicture}[x=0.75pt,y=0.75pt,yscale=-1,xscale=1]
\draw [fill=pink,fill opacity=1 ]  (128.4,142.2) .. controls (128.4,117.35) and (157.84,97.2) .. (194.15,97.2) .. controls (230.46,97.2) and (259.9,117.35) .. (259.9,142.2) .. controls (259.9,167.05) and (230.46,187.2) .. (194.15,187.2) .. controls (157.84,187.2) and (128.4,167.05) .. (128.4,142.2) -- cycle ;
\draw  [fill=pink,fill opacity=1] (100.87,153.64) .. controls (99.86,138.46) and (116.02,125.02) .. (136.97,123.63) .. controls (157.91,122.23) and (175.71,133.42) .. (176.72,148.61) .. controls (177.72,163.79) and (161.56,177.23) .. (140.62,178.62) .. controls (119.67,180.02) and (101.88,168.83) .. (100.87,153.64) -- cycle ; 
\draw   (145.63,151.23) .. controls (154.17,152.67) and (157.02,156.91) .. (151.99,160.69) .. controls (146.97,164.47) and (135.98,166.37) .. (127.45,164.93) .. controls (118.92,163.49) and (116.07,159.25) .. (121.09,155.47) .. controls (126.11,151.69) and (137.1,149.79) .. (145.63,151.23) -- cycle ;
\draw   (143.25,141.06) .. controls (142.84,139.99) and (143.37,139.13) .. (144.44,139.13) .. controls (145.51,139.13) and (146.71,139.99) .. (147.13,141.06) .. controls (147.54,142.13) and (147,143) .. (145.93,143) .. controls (144.86,143) and (143.66,142.13) .. (143.25,141.06) -- cycle ;
\draw   (121.49,141.48) .. controls (122.61,141.24) and (123.38,141.9) .. (123.22,142.96) .. controls (123.05,144.02) and (122.01,145.07) .. (120.89,145.31) .. controls (119.77,145.55) and (118.99,144.89) .. (119.16,143.83) .. controls (119.32,142.78) and (120.37,141.72) .. (121.49,141.48) -- cycle ; 
\draw   (143.79,154.13) -- (143.79,161.08) ;
\draw    (126.2,155.43) -- (127.45,162.93) ;
\draw[fill=pink]   (103.37,133.64) -- (106.1,126.87) -- (116.37,122.5) -- (123.14,125.23) -- (125.16,129.99) -- (125.16,129.99) -- (105.39,138.39) -- (105.39,138.39) -- cycle ;
\draw[fill=pink]   (136.97,123.63) -- (142.57,118.03) -- (152.85,118.03) -- (158.45,123.63) -- (158.45,129.23) -- (158.45,129.23) -- (136.97,129.23) -- (136.97,129.23) -- cycle ;
\draw  [color={rgb, 255:red, 0; green, 0; blue, 0 }  ][line width=0.75] [line join = round][line cap = round] (259.69,142.57) .. controls (265.17,140.64) and (270.84,140.56) .. (268.91,146.69) .. controls (268.43,148.18) and (265.32,149.85) .. (263.04,149.05) .. controls (255.71,146.47) and (266.59,138.8) .. (269.74,137.85) .. controls (270.26,137.69) and (271.05,137.55) .. (271.42,137.85) .. controls (275.04,140.76) and (276.45,142.97) .. (276.45,146.69) .. controls (276.45,148.01) and (272.97,144.29) .. (273.93,143.16) .. controls (275.56,141.25) and (277.54,138.87) .. (280.63,138.44) .. controls (286.59,137.6) and (289.48,142.47) .. (284.82,144.92) .. controls (283.6,145.57) and (282.83,141.83) .. (283.15,141.39) .. controls (284.7,139.2) and (285.57,139.62) .. (288.18,139.62) ;
5) .. controls (252.49,162.5) and (255.86,163.51) .. (255.86,164.76) -- cycle ;
\draw[fill=yellow]   (57.5,85.67) .. controls (48.76,81.11) and (44.91,71.22) .. (48.89,63.57) .. controls (52.88,55.92) and (63.2,53.41) .. (71.94,57.97) .. controls (65.77,58.27) and (59.89,61.78) .. (56.81,67.69) .. controls (53.72,73.61) and (54.21,80.44) .. (57.5,85.67) -- cycle ;
\draw   (85.61,59.25) .. controls (85.41,58.24) and (86.07,57.24) .. (87.31,56.68) .. controls (88.55,56.11) and (90.16,56.08) .. (91.45,56.59) .. controls (91.91,56.01) and (92.74,55.6) .. (93.7,55.5) .. controls (94.66,55.4) and (95.64,55.61) .. (96.33,56.08) .. controls (96.72,55.55) and (97.48,55.19) .. (98.35,55.13) .. controls (99.22,55.08) and (100.07,55.33) .. (100.6,55.8) .. controls (101.3,55.24) and (102.42,55) .. (103.47,55.19) .. controls (104.52,55.39) and (105.31,55.97) .. (105.5,56.7) .. controls (106.36,56.86) and (107.08,57.27) .. (107.47,57.82) .. controls (107.85,58.37) and (107.87,59.01) .. (107.52,59.57) .. controls (108.37,60.32) and (108.57,61.33) .. (108.04,62.21) .. controls (107.52,63.09) and (106.35,63.71) .. (104.97,63.85) .. controls (104.96,64.68) and (104.3,65.43) .. (103.24,65.83) .. controls (102.18,66.23) and (100.88,66.2) .. (99.86,65.77) .. controls (99.42,66.76) and (98.19,67.49) .. (96.7,67.64) .. controls (95.2,67.79) and (93.72,67.34) .. (92.88,66.48) .. controls (91.85,66.9) and (90.62,67.02) .. (89.46,66.82) .. controls (88.3,66.61) and (87.31,66.09) .. (86.71,65.38) .. controls (85.66,65.46) and (84.64,65.09) .. (84.17,64.45) .. controls (83.69,63.8) and (83.85,63.02) .. (84.58,62.5) .. controls (83.64,62.12) and (83.16,61.37) .. (83.39,60.64) .. controls (83.62,59.91) and (84.51,59.37) .. (85.59,59.29) ; \draw   (84.58,62.5) .. controls (85.02,62.68) and (85.53,62.76) .. (86.04,62.73)(86.71,65.38) .. controls (86.93,65.36) and (87.14,65.32) .. (87.35,65.27)(92.88,66.48) .. controls (92.72,66.32) and (92.59,66.15) .. (92.49,65.97)(99.86,65.77) .. controls (99.94,65.59) and (99.99,65.4) .. (100.01,65.21)(104.97,63.85) .. controls (104.98,62.97) and (104.25,62.16) .. (103.09,61.78)(107.52,59.57) .. controls (107.34,59.87) and (107.05,60.14) .. (106.69,60.35)(105.5,56.7) .. controls (105.53,56.82) and (105.55,56.95) .. (105.54,57.07)(100.6,55.8) .. controls (100.42,55.95) and (100.28,56.1) .. (100.17,56.27)(96.33,56.08) .. controls (96.24,56.21) and (96.17,56.34) .. (96.13,56.48)(91.45,56.59) .. controls (91.72,56.7) and (91.97,56.83) .. (92.2,56.98)(85.61,59.25) .. controls (85.64,59.39) and (85.68,59.53) .. (85.74,59.67) ;
\draw   (125.61,55.25) .. controls (125.41,54.24) and (126.07,53.24) .. (127.31,52.68) .. controls (128.55,52.11) and (130.16,52.08) .. (131.45,52.59) .. controls (131.91,52.01) and (132.74,51.6) .. (133.7,51.5) .. controls (134.66,51.4) and (135.64,51.61) .. (136.33,52.08) .. controls (136.72,51.55) and (137.48,51.19) .. (138.35,51.13) .. controls (139.22,51.08) and (140.07,51.33) .. (140.6,51.8) .. controls (141.3,51.24) and (142.42,51) .. (143.47,51.19) .. controls (144.52,51.39) and (145.31,51.97) .. (145.5,52.7) .. controls (146.36,52.86) and (147.08,53.27) .. (147.47,53.82) .. controls (147.85,54.37) and (147.87,55.01) .. (147.52,55.57) .. controls (148.37,56.32) and (148.57,57.33) .. (148.04,58.21) .. controls (147.52,59.09) and (146.35,59.71) .. (144.97,59.85) .. controls (144.96,60.68) and (144.3,61.43) .. (143.24,61.83) .. controls (142.18,62.23) and (140.88,62.2) .. (139.86,61.77) .. controls (139.42,62.76) and (138.19,63.49) .. (136.7,63.64) .. controls (135.2,63.79) and (133.72,63.34) .. (132.88,62.48) .. controls (131.85,62.9) and (130.62,63.02) .. (129.46,62.82) .. controls (128.3,62.61) and (127.31,62.09) .. (126.71,61.38) .. controls (125.66,61.46) and (124.64,61.09) .. (124.17,60.45) .. controls (123.69,59.8) and (123.85,59.02) .. (124.58,58.5) .. controls (123.64,58.12) and (123.16,57.37) .. (123.39,56.64) .. controls (123.62,55.91) and (124.51,55.37) .. (125.59,55.29) ; \draw   (124.58,58.5) .. controls (125.02,58.68) and (125.53,58.76) .. (126.04,58.73)(126.71,61.38) .. controls (126.93,61.36) and (127.14,61.32) .. (127.35,61.27)(132.88,62.48) .. controls (132.72,62.32) and (132.59,62.15) .. (132.49,61.97)(139.86,61.77) .. controls (139.94,61.59) and (139.99,61.4) .. (140.01,61.21)(144.97,59.85) .. controls (144.98,58.97) and (144.25,58.16) .. (143.09,57.78)(147.52,55.57) .. controls (147.34,55.87) and (147.05,56.14) .. (146.69,56.35)(145.5,52.7) .. controls (145.53,52.82) and (145.55,52.95) .. (145.54,53.07)(140.6,51.8) .. controls (140.42,51.95) and (140.28,52.1) .. (140.17,52.27)(136.33,52.08) .. controls (136.24,52.21) and (136.17,52.34) .. (136.13,52.48)(131.45,52.59) .. controls (131.72,52.7) and (131.97,52.83) .. (132.2,52.98)(125.61,55.25) .. controls (125.64,55.39) and (125.68,55.53) .. (125.74,55.67) ;
\draw   (16.28,55.47) .. controls (16.07,54.24) and (16.73,53.03) .. (17.98,52.34) .. controls (19.22,51.65) and (20.83,51.61) .. (22.12,52.24) .. controls (22.57,51.53) and (23.41,51.03) .. (24.37,50.91) .. controls (25.33,50.79) and (26.31,51.05) .. (27,51.62) .. controls (27.39,50.97) and (28.15,50.54) .. (29.02,50.47) .. controls (29.89,50.4) and (30.73,50.71) .. (31.26,51.28) .. controls (31.97,50.6) and (33.08,50.31) .. (34.13,50.54) .. controls (35.18,50.77) and (35.97,51.49) .. (36.17,52.37) .. controls (37.03,52.57) and (37.74,53.06) .. (38.13,53.73) .. controls (38.52,54.39) and (38.54,55.17) .. (38.19,55.85) .. controls (39.04,56.76) and (39.24,57.98) .. (38.71,59.05) .. controls (38.19,60.12) and (37.02,60.87) .. (35.64,61.04) .. controls (35.63,62.04) and (34.97,62.96) .. (33.9,63.44) .. controls (32.84,63.92) and (31.55,63.89) .. (30.52,63.36) .. controls (30.09,64.56) and (28.86,65.45) .. (27.36,65.63) .. controls (25.87,65.82) and (24.38,65.27) .. (23.55,64.23) .. controls (22.52,64.74) and (21.28,64.89) .. (20.12,64.64) .. controls (18.96,64.39) and (17.97,63.76) .. (17.38,62.89) .. controls (16.33,62.99) and (15.31,62.54) .. (14.83,61.76) .. controls (14.36,60.98) and (14.52,60.04) .. (15.24,59.4) .. controls (14.31,58.94) and (13.83,58.03) .. (14.06,57.15) .. controls (14.29,56.27) and (15.17,55.61) .. (16.25,55.51) ; \draw   (15.24,59.4) .. controls (15.69,59.62) and (16.2,59.71) .. (16.71,59.68)(17.38,62.89) .. controls (17.6,62.87) and (17.81,62.82) .. (18.02,62.76)(23.55,64.23) .. controls (23.39,64.03) and (23.26,63.83) .. (23.16,63.61)(30.52,63.36) .. controls (30.6,63.14) and (30.66,62.92) .. (30.68,62.69)(35.64,61.04) .. controls (35.65,59.97) and (34.92,58.99) .. (33.76,58.53)(38.19,55.85) .. controls (38,56.21) and (37.72,56.53) .. (37.35,56.79)(36.17,52.37) .. controls (36.2,52.52) and (36.21,52.67) .. (36.21,52.82)(31.26,51.28) .. controls (31.09,51.45) and (30.94,51.64) .. (30.83,51.85)(27,51.62) .. controls (26.91,51.77) and (26.84,51.94) .. (26.79,52.11)(22.12,52.24) .. controls (22.39,52.37) and (22.64,52.53) .. (22.87,52.71)(16.28,55.47) .. controls (16.3,55.63) and (16.35,55.8) .. (16.41,55.96) ;
\draw[fill=brown]   (272.27,179.58) -- (272.4,215.16) -- (115.9,215.73) -- (115.77,180.16) -- cycle ;
\draw   (156.48,168.75) .. controls (153.52,171.47) and (149.99,173.52) .. (145.99,174.68) .. controls (140.52,176.26) and (134.9,175.97) .. (129.65,174.15) -- cycle ;

\end{tikzpicture}

\end{document}
Sebastiano
  • 54,118
6

(This answer is suggested by KJO)

Let's hope to have a year filled with money!

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
\fill[yellow,yshift=7.2cm] (15,30) rectangle (40,15);
\path[fill=black,line width=0.056pt] (11.7614,296.5612) .. controls
  (11.3851,295.9868) and (11.4156,295.6960) .. (12.1522,292.8392) .. controls
  (12.5917,291.1347) and (12.9512,289.5263) .. (12.9512,289.2649) .. controls
  (12.9512,289.0035) and (12.4849,288.4664) .. (11.9150,288.0715) .. controls
  (10.8120,287.3071) and (8.0433,284.4949) .. (7.3902,283.4755) .. controls
  (7.1101,283.0385) and (6.6579,282.8200) .. (5.8075,282.7111) .. controls
  (2.4694,282.2834) and (0.6994,279.9432) .. (-0.0230,275.0021) .. controls
  (-0.3005,273.1045) and (-0.2866,272.7630) .. (0.0919,272.1854) .. controls
  (0.3287,271.8239) and (0.7889,271.4769) .. (1.1145,271.4143) .. controls
  (3.8064,270.8964) and (4.9406,270.6343) .. (5.2960,270.4477) .. controls
  (5.5240,270.3280) and (6.1422,269.3594) .. (6.6698,268.2952) .. controls
  (7.6356,266.3469) and (9.2936,264.3698) .. (11.2099,262.8815) --
  (12.2466,262.0763) -- (11.5545,261.1688) .. controls (10.7799,260.1533) and
  (9.3930,257.2403) .. (9.1277,256.0717) -- (8.9543,255.3080) --
  (11.5481,255.4387) .. controls (14.4665,255.5857) and (18.0645,256.6356) ..
  (20.6242,258.0870) .. controls (21.4245,258.5408) and (22.3934,258.8904) ..
  (22.7772,258.8640) .. controls (23.3875,258.8219) and (23.4979,258.9405) ..
  (23.6580,259.8100) .. controls (24.1689,262.5854) and (26.2258,265.1720) ..
  (28.8628,266.3555) .. controls (30.7667,267.2099) and (33.5066,267.3323) ..
  (35.4030,266.6477) .. controls (37.0986,266.0356) and (38.9808,264.5459) ..
  (39.9326,263.0626) -- (40.7698,261.7580) -- (42.1396,262.6008) .. controls
  (44.0447,263.7731) and (47.0598,266.7080) .. (48.0085,268.3137) .. controls
  (48.4853,269.1206) and (48.9906,269.6592) .. (49.2738,269.6624) .. controls
  (49.9018,269.6694) and (51.5831,268.9567) .. (51.5702,268.6889) .. controls
  (51.5642,268.5724) and (51.1821,268.2389) .. (50.7202,267.9478) .. controls
  (49.4649,267.1569) and (48.6700,265.8172) .. (48.6700,264.4926) .. controls
  (48.6700,263.5579) and (48.8094,263.2473) .. (49.4840,262.6797) .. controls
  (49.9318,262.3030) and (50.5925,261.9947) .. (50.9524,261.9947) .. controls
  (52.5243,261.9947) and (54.2980,263.6473) .. (54.8197,265.5981) .. controls
  (54.9902,266.2356) and (55.2833,266.7572) .. (55.4710,266.7572) .. controls
  (55.6587,266.7572) and (56.2840,266.3310) .. (56.8607,265.8100) .. controls
  (57.9885,264.7911) and (58.8201,264.7508) .. (59.1215,265.7003) .. controls
  (59.4670,266.7891) and (57.3965,268.5769) .. (55.2846,269.0134) .. controls
  (54.7753,269.1186) and (53.9204,269.5987) .. (53.3849,270.0802) .. controls
  (52.8495,270.5616) and (51.8046,271.1711) .. (51.0630,271.4345) .. controls
  (49.7563,271.8986) and (49.7210,271.9379) .. (49.9199,272.7087) .. controls
  (50.0328,273.1462) and (50.1222,274.5756) .. (50.1185,275.8853) .. controls
  (50.1078,279.6723) and (48.7426,282.8163) .. (45.7530,285.9395) .. controls
  (45.0608,286.6627) and (44.6869,287.3330) .. (44.5724,288.0562) .. controls
  (44.0349,291.4502) and (42.7403,296.0276) .. (42.1217,296.7213) .. controls
  (41.7648,297.1215) and (41.1947,297.1843) .. (37.9195,297.1843) .. controls
  (34.2202,297.1843) and (34.1203,297.1693) .. (33.7174,296.5545) .. controls
  (33.3396,295.9779) and (33.3494,295.7635) .. (33.8333,294.0175) --
  (34.3617,292.1104) -- (32.9831,292.3322) .. controls (31.3480,292.5953) and
  (24.0735,292.6290) .. (22.7206,292.3798) -- (21.7743,292.2054) --
  (21.1790,294.2318) .. controls (20.2900,297.2577) and (20.4197,297.1843) ..
  (15.9591,297.1843) .. controls (12.2713,297.1843) and (12.1588,297.1676) ..
  (11.7614,296.5612) -- cycle(36.7032,282.1261) .. controls (37.1792,281.9373)
  and (37.6852,281.5650) .. (37.8277,281.2989) .. controls (37.9701,281.0327)
  and (38.0867,279.2800) .. (38.0867,277.4041) .. controls (38.0867,274.0791)
  and (38.0695,273.9771) .. (37.4036,273.3518) -- (36.7206,272.7103) --
  (26.8422,272.7103) .. controls (21.4091,272.7103) and (16.8699,272.8043) ..
  (16.7551,272.9192) .. controls (16.4775,273.1969) and (16.2807,279.3879) ..
  (16.5024,280.8666) -- (16.6772,282.0322) -- (18.3200,282.3054) .. controls
  (20.7458,282.7089) and (35.5994,282.5640) .. (36.7032,282.1262) --
  cycle(15.5779,269.7642) .. controls (16.2980,268.8487) and (16.2702,268.2000)
  .. (15.4768,267.4066) .. controls (14.2164,266.1462) and (12.4221,266.9216) ..
  (12.4221,268.7266) .. controls (12.4221,270.4142) and (14.5232,271.1050) ..
  (15.5779,269.7642) -- cycle(52.9033,266.3564) .. controls (52.9033,265.8422)
  and (51.1535,263.9210) .. (50.9083,264.1661) .. controls (50.5218,264.5526)
  and (51.0994,265.7360) .. (51.9182,266.2353) .. controls (52.9422,266.8596)
  and (52.9033,266.8548) .. (52.9033,266.3564) -- cycle(30.1883,265.2075) ..
  controls (28.4468,264.5878) and (27.6205,263.9904) .. (26.5183,262.5543) ..
  controls (25.4449,261.1557) and (25.0385,259.6658) .. (25.1760,257.6333) ..
  controls (25.3040,255.7406) and (25.9513,254.2863) .. (27.2387,252.9989) ..
  controls (28.7839,251.4537) and (29.9551,251.0145) .. (32.5304,251.0145) ..
  controls (34.4908,251.0145) and (34.9321,251.1048) .. (35.9700,251.7185) ..
  controls (38.5102,253.2205) and (39.7803,255.4241) .. (39.7581,258.2905) ..
  controls (39.7418,260.3841) and (39.2619,261.5926) .. (37.8302,263.1459) ..
  controls (35.7943,265.3546) and (32.8406,266.1515) .. (30.1883,265.2075) --
  cycle(33.1852,263.1830) .. controls (33.3344,262.8932) and (33.7790,262.3390)
  .. (34.1733,261.9513) .. controls (35.7409,260.4100) and (35.3328,258.8215) ..
  (33.0882,257.7276) .. controls (31.3987,256.9043) and (31.0221,256.3971) ..
  (31.6408,255.7784) .. controls (32.1808,255.2384) and (33.3015,255.4480) ..
  (33.8194,256.1859) .. controls (34.2616,256.8158) and (35.0590,256.8610) ..
  (35.2862,256.2689) .. controls (35.4987,255.7152) and (34.8047,254.6469) ..
  (33.9920,254.2766) .. controls (33.6471,254.1194) and (33.2920,253.7004) ..
  (33.2029,253.3454) .. controls (32.9895,252.4954) and (31.9091,252.5842) ..
  (31.7844,253.4619) .. controls (31.7379,253.7893) and (31.5837,254.0572) ..
  (31.4416,254.0572) .. controls (31.2996,254.0572) and (30.8912,254.3495) ..
  (30.5340,254.7067) .. controls (30.0660,255.1747) and (29.8846,255.6450) ..
  (29.8846,256.3904) .. controls (29.8846,257.6560) and (30.7129,258.5878) ..
  (32.2464,259.0472) .. controls (33.4580,259.4102) and (33.6899,259.6716) ..
  (33.4557,260.4096) .. controls (33.2215,261.1474) and (31.6073,261.1457) ..
  (31.1461,260.4076) .. controls (30.6598,259.6289) and (29.6200,259.7030) ..
  (29.6200,260.5164) .. controls (29.6200,261.1223) and (30.9273,262.5243) ..
  (31.4924,262.5243) .. controls (31.6267,262.5243) and (31.7367,262.7425) ..
  (31.7367,263.0093) .. controls (31.7367,263.9995) and (32.7051,264.1159) ..
  (33.1852,263.1834) -- cycle;
\end{tikzpicture}
\end{document}

enter image description here

Edit 1

Shorter version WITH CHINESE!

\documentclass[tikz]{standalone}
\usepackage{CJKutf8}
\begin{document}
\begin{tikzpicture}
\fill[black] (0,0) ellipse (3cm and 2.5cm);
\fill[black,rounded corners] (-1.5,-2)--(-2,-3.5)--(-1,-3.5)--(-.5,-2);
\fill[black,rounded corners] (1,-2)--(0.5,-3.5)--(1.5,-3.5)--(2.5,-1);
\fill[black,rounded corners=1mm] (-2.5,0.5)--(-4,0)--(-3.75,-1)--(-2,-1.5);
\fill[black] (0,2)--(-3,2.25)--(-2,1);
\draw[line width=3mm] (1,0)--(3.5,1.5);
\node[line width=2mm,draw=white,fill=black,circle,font=\sffamily\color{white}\Huge,scale=1.5] at (80:3cm and 2.5cm) {\$};
\fill[white] (-2,1) circle (2mm);
\node[fill=red,font=\color{yellow}\huge] at (0,-.25) {%
\begin{CJK*}{UTF8}{gbsn}
新年快乐!
\end{CJK*}
};
\end{tikzpicture}
\end{document}

enter image description here

  • 1
    Ok I know I'm picky (piggy:-) but you could squeeze 新年快乐 in the box ? –  Mar 16 '19 at 12:54
  • 1
    @KJO Well I am not familiar with typing Chinese in LaTeX, so would you please add it for me? It will be very appreciated. I know I can't use babel and that is why I am feeling lazy ;-) Happy (not new anymore) year! –  Mar 16 '19 at 12:56
  • 1
    Good point year of the pig 豬年 (synonymous with a year of prosperity) but a good single character may simply be fu 福 –  Mar 16 '19 at 13:14
  • 1
    @KJO Just learned CJKutf8 ;-) See the edited answer! –  Mar 16 '19 at 13:23
  • 1
    WoW ! take +2 for the colours –  Mar 16 '19 at 13:24
6

With the pgfornament package:

\documentclass[margin=10mm]{standalone}

\usepackage{pgfornament}

\begin{document}

\begin{tikzpicture}
\pgfornament[color=red!50!white]{111}
\end{tikzpicture}


\end{document}

enter image description here