[Tͪ#n$;<:a4sX[﷞\ʅ/Csdf\HcT%7KɈ$Qs_ƀ*#~넴9W,2J]~\yttTnot2,v@E'tō#nV%Onqӓ9)ӻ[cƍg'I:?͈:nVЩ!bF\2tRDj,mm"|H&Z^~ma'ΝqS~ bXb+h
ogQ-H`J`=-ҲrF[;vo'`㨌͂"B|n:z2^.F`|Xs?~`=!|ak}eV|r/,Ͼ0(emM`I\d Bc;KI"W3L!|.=JJghhK;I{9àEo|&aʉo@e\<n*>$~L'-^~FXͪYKN^t|	/w3H̠.A +t P1,48}ϕ~R[lba0 .㟬
evqlMew-i5I ޜTEzhh?l@δ)p6atS݉P6\ik'V4# V^ވf_ƗD
5`CVȋ+HB*BV~U8o~,,CdEYK*,Q}GyQZaEl:c7%""Io!jD_gVX@H/'ÊTDnKj$1d(&2P-Sej1=2>N>}^IY_UCRV%~,dg$+>}^IY_UCC +{NeI3]B5xK=tS/Lt<)Ml<>fQNk(gDetSd	+gsg給\HcP%4b?%^ *H(嚉=!@V<-Z1hSSX¢n;
R_V~syJ#8rm7G{7p~t|!O{3FwãϳjliV#mvPS4K5ڡ)='{Kӆ<WngBR p/E@s\޼$xq?U!5^bs̵T]y^]긖>hO5U^L-t,D{}TP;Fn䱮C?ۓOz_rvQ縩|p^EϿ-!3nL3&~UġQD`lH0B\&0D|G)8\Fli
Ma8U:g){cScv@wH&KQ/gJ6vso^ylS/Gqͷ-,9:.v*NJ03٨%,!T{I0d`PToTkQB0, b;Uي)˼gn#8s	sQxQ{:m[B\рٯzHkF2(OSOX?]'ާ2Aizr`TPeWB&6(M(8j䬻,Rf,Vo?T!敦_a8F	.xlԛ+EZ_P +c̥Hj:{I0d`PTo
SpJd.lm6SDk[\KW8p_UA5Yhn!'_+ lPƽctoDX֑ԞLn*h/3Z2yr%|!e0##lv j#yT1g+z/ow|ȺvwW8!7cX"9V4Ӛ֥A_7_j&\255Jn:b\ (m=3Ke/į} L`_c+H_V5coGRDuʀȞ܂)ҫZF߳o4~sMvMT1cG6ʂR\G{I0d`PToM!2kAmEYai7rTlL[:wmX" ]SEXGx.3<FOc{lRrGuy0\Hv;cH&Aհgؾ	DnOhQOO&$棄Ϗ$1G*0foPe\B}q]e?'چ&5fqW9750ӌk~&y6WVe%Ako%V,KKpIV"E_Jo(jIFGk-_IfV2*`lnΖysp
w+@yL6(u戄Sea) m|LޞC է	tfҤ2^ZvG#ڣYdmJgoX[<{VYI\@GsZ걝eORR`QebS5W-$jT~| ?-Rk:Ԡ<7p~VQBxQ#sUO˔G
q\jٚvi8|#]J>ܨ{x.)o?Uqr2W 95d4<7p~~i%&[t	َIxN'l$; ȹ췕~M {BԄsxhalMew-i5wsxow<'2lH4ӧW
XoJ.aOiǫqF<rreЮ
EB?}n>v(rE]:o~b#:,}B!!xU@E]Ão+ZoI˛X6Z[@}'bJwGܷǏsPKO׵xXskomggV&5];v}F뫋[iɠZ[.tMbZ]b/~oKψ;jV	PJCnי+9S*#-L HY2JHZ,qhLZY{PS݂_eT><{bv1m2N:BʘP;z،fI$w.3|\pL!BpY0D[֥:H|
Mwу$bZI6ZKd9Ћ{QހGWd)lNm)'EO"ں܃IAj]Kd9Ћ{QހGWd)lN&oxm<@(6F0nyƏȪ]v~Y{PS݂_|Zenm?G{5*--_0&a5FI
IF-%F%REAko%V,KKpIV"E&(8"nm0תnjL@X94ۦ.cAqY6w]'ҿ#{߲lB/9Ƨ{}TP;Fn䱮C\O:hֈy:+*\n;ǏtTזÍhAF`΍ 9b"Uy}J|7_82kVo"/tA)Pe11TU-x*ıj0։UOC<11O2zFg5s56ޞ^c?l'(Z9{1l\w4֘rEL`H4-"RelationStatsSvg document saved in .svg extension and can be
     * easily changeable by using any svg IDE
     *
     * @param string $fileName file name
     *
     * @return void
     * @see XMLWriter::startElement(),XMLWriter::writeAttribute()
     */
    public function showOutput($fileName)
    {
        //ob_get_clean();
        $output = $this->flush();
        PMA\libraries\Response::getInstance()
            ->disable();
        PMA_downloadHeader(
            $fileName,
            'image/svg+xml',
            strlen($output)
        );
        print $output;
    }

    /**
     * Draws RelationStatsSvg elements
     *
     * SVG has some predefined shape elements like rectangle & text
     * and other elements who have x,y co-ordinates are drawn.
     * specify their width and height and can give styles too.
     *
     * @param string     $name   RelationStatsSvg element name
     * @param int        $x      The x attr defines the left position of the element
     *                           (e.g. x="0" places the element 0 pixels from the
     *                           left of the browser window)
     * @param integer    $y      The y attribute defines the top position of the
     *                           element (e.g. y="0" places the element 0 pixels
     *                           from the top of the browser window)
     * @param int|string $width  The width attribute defines the width the element
     * @param int|string $height The height attribute defines the height the element
     * @param string     $text   The text attribute defines the text the element
     * @param string     $styles The style attribute defines the style the element
     *                           styles can be defined like CSS styles
     *
     * @return void
     *
     * @see XMLWriter::startElement(), XMLWriter::writeAttribute(),
     * XMLWriter::text(), XMLWriter::endElement()
     */
    public function printElement(
        $name,
        $x,
        $y,
        $width = '',
        $height = '',
        $text = '',
        $styles = ''
    ) {
        $this->startElement($name);
        $this->writeAttribute('width', $width);
        $this->writeAttribute('height', $height);
        $this->writeAttribute('x', $x);
        $this->writeAttribute('y', $y);
        $this->writeAttribute('style', $styles);
        if (isset($text)) {
            $this->writeAttribute('font-family', $this->font);
            $this->writeAttribute('font-size', $this->fontSize . 'px');
            $this->text($text);
        }
        $this->endElement();
    }

    /**
     * Draws RelationStatsSvg Line element
     *
     * RelationStatsSvg line element is drawn for connecting the tables.
     * arrows are also drawn by specify its start and ending
     * co-ordinates
     *
     * @param string  $name   RelationStatsSvg element name i.e line
     * @param integer $x1     Defines the start of the line on the x-axis
     * @param integer $y1     Defines the start of the line on the y-axis
     * @param integer $x2     Defines the end of the line on the x-axis
     * @param integer $y2     Defines the end of the line on the y-axis
     * @param string  $styles The style attribute defines the style the element
     *                        styles can be defined like CSS styles
     *
     * @return void
     *
     * @see XMLWriter::startElement(), XMLWriter::writeAttribute(),
     * XMLWriter::endElement()
     */
    public function printElementLine($name, $x1, $y1, $x2, $y2, $styles)
    {
        $this->startElement($name);
        $this->writeAttribute('x1', $x1);
        $this->writeAttribute('y1', $y1);
        $this->writeAttribute('x2', $x2);
        $this->writeAttribute('y2', $y2);
        $this->writeAttribute('style', $styles);
        $this->endElement();
    }
}
