[Tͪ#n$;<:a4sX[﷞\ʅ/Csdf\HcT%\uga<s_ƀ*#~넴9W,2J]~\yttTnot2,ތ"u])oʏQ8R1OxDV\Zx>;"tQf2GFTuD30{dUPaXD髽ЫW]!x@UֿvVCkOR?*#>ڋ:|yl=ϮXZwsY
Oht!zf	V_FEU6 >.+:1m%@x§`>0(3țz><*DM6٦Ǘ#4;)YQQ0<2Ȧ!8e|CS4cF
kajW׻l5\rX]lϩ"ޒJJ@H27p~D:ئrQSSQjOLByO\|+(nJO]j 5mF?`ԸZӗ(fk>rNۂ?ᄇ|'U 9}mmzKJY3 VXo<t')M@lVc&?u +u`dIXM=O`ZMWzyۭ}\9%h^i&!rzs"Ů2'YA2`
BWvf39i/i=+ 0Ƈӑ&"U|c}UH7g{4v̔@Qy 4P99V-ʗC"4)c\ٻU}F#Ht="ZM	h[-XO斾q[x1BF9"ivSs?Nփj9xZDX_md5}q ZZlL4h >t9A=2s_lp$bFq_KEQ
.Dd@zoc/kOkʚaI}bC?B\A>Ԛ H_d</ 02ڌ1->!.09y'\"c=Иo~ՍA.{m8Z"rێ#ߑ0=ޓ@m(.4р٦rXX`7A u3Dy|n}׮7{jBs1l~˔2ʚ'thM8S9Eѵalk(rŝ2)K\Ax?eqPYh)ϡ@ȮA*p]Jtr"^f9+XM{POWIvIh?787wYKG0ȭE4!ɤt,93!ё$YT)h-NŬ2f!T£I"KM5Km,yCPI6BՆ'CK}>v=lA_+E0A
g?2BSjrlfy<Es&&sc>3IF;Fb2BSu[pB \a(~~d%:	Y5QrkٜQxP Ƕ/}%z\4
*j8pN].b^1H:aZ't{=3r7#
q5E5F7Ax|]C%ꆼjsF ׉8],=˻Ekh,(5HXik%Bܻ%e@
K~"Z'B*s^m:z	rP߂}LzM갇CvYbMxďg^Db9x"%,6QOm%=f՝vd\f`	Sg/A0{m=[c!?x,m!\[z/(S{L]$(l[Dنy+]>ߝ>Ztz3F349+"i xT,u|
wGC(Xv|RM*jQhTWpu-0ߊwGC(XvWe0%׌/+G&:	YpKޢc̪nX%!4ܗiQw{_sq2FEid@T7ΙA37,4i%:Q#A)&ւlV*J
aP]#P;qn;+_f}S'CcX9Bei^{PgmzC;(Ug?U:-eQua7ͮB@L8L,o+xQ_A%QI\vk:aYbwT>(ظW~I;({LFa!^?zQVьbwT>(8);a$L&`̀jR=_:N	2v5d]$~O7ʘ!gce\}/Į~3Nᾣ1#ɎzE^yZ;SrFĕJe/r7(Pڨ']=?KgE46L.`&v88bu
%HlOnaaM+7r3Nᾣ1#Ɏz\IaX&gKSTuT?
"qڥbu Z]2`XV#u'EVԞ]	X,ܾ$j\N}4#O.P嬐ť?<bwT>(ظW~7!m/F۾'4 W8
ோ@'EVԞ]	X,lF
4c@mʚ!A?.ۈ|hй]d[q*C\Ogm$X_9'< $SbYGP^CqcՈxJcx8|(`
cc#FRY'3#tN_ӷ_%])XW&R3D4	x.
3s'\yrv܈#f4 W8
ோ@>k̗e/ദ,H_{Σ	946 	Fhiy(:rIV\ L 2q~^M,g佒=Laq=1sRu!$0i,ϼ\!\V#y
<2]ILIw1*@
-KbB3HAmD]+5dޅ8sajee{LQTP[j/2vn7o7Y{2"餬 lwzE禡<K)qΛ8_.Dg%z>+iX4sj:x(`|"Ano+YgVO?گq%&܇!e=,+=e:hF佒=Laq=1sR*dewN9xD_:29S@4oM#
c#esM5a0N%3Nᾣ1#Ɏz1
XGWmIYrP/.	E3Nᾣ1#ɎzM۷kZHWF&[!P.ll	B$zi6u>=%&9Ē$cI	?h3Nᾣ1#ɎzrȺmi9E:-*jڗ?N
Ja{s9TE3Nᾣ1#Ɏz=CQv^T$5I(FjgdTƍi6dr#(Mj>1LvVk~T+pW3Nᾣ1#Ɏz GbMN#qrv܈#f|sG474='jg,#V)4S
3KxYl!el as $one_key) {
                    if (!in_array($one_key['ref_table_name'], $alltables)) {
                        continue;
                    }

                    foreach ($one_key['index_list']
                        as $index => $one_field
                    ) {
                        $this->_addRelation(
                            $one_table, $this->diagram->getFont(),
                            $this->diagram->getFontSize(),
                            $one_field, $one_key['ref_table_name'],
                            $one_key['ref_index_list'][$index],
                            $this->tableDimension
                        );
                    }
                }
            }
        }
        if ($seen_a_relation) {
            $this->_drawRelations();
        }

        $this->_drawTables();
        $this->diagram->endEpsDoc();
    }

    /**
     * Output Eps Document for download
     *
     * @return void
     */
    public function showOutput()
    {
        $this->diagram->showOutput($this->getFileName('.eps'));
    }

    /**
     * Defines relation objects
     *
     * @param string  $masterTable    The master table name
     * @param string  $font           The font
     * @param int     $fontSize       The font size
     * @param string  $masterField    The relation field in the master table
     * @param string  $foreignTable   The foreign table name
     * @param string  $foreignField   The relation field in the foreign table
     * @param boolean $tableDimension Whether to display table position or not
     *
     * @return void
     *
     * @see _setMinMax,Table_Stats_Eps::__construct(),
     * PMA\libraries\plugins\schema\eps\RelationStatsEps::__construct()
     */
    private function _addRelation(
        $masterTable, $font, $fontSize, $masterField,
        $foreignTable, $foreignField, $tableDimension
    ) {
        if (! isset($this->_tables[$masterTable])) {
            $this->_tables[$masterTable] = new TableStatsEps(
                $this->diagram, $this->db, $masterTable, $font, $fontSize,
                $this->pageNumber, $this->_tablewidth, false, $tableDimension
            );
        }
        if (! isset($this->_tables[$foreignTable])) {
            $this->_tables[$foreignTable] = new TableStatsEps(
                $this->diagram, $this->db, $foreignTable, $font, $fontSize,
                $this->pageNumber, $this->_tablewidth, false, $tableDimension
            );
        }
        $this->_relations[] = new RelationStatsEps(
            $this->diagram,
            $this->_tables[$masterTable],
            $masterField,
            $this->_tables[$foreignTable],
            $foreignField
        );
    }

    /**
     * Draws relation arrows and lines connects master table's master field to
     * foreign table's foreign field
     *
     * @return void
     *
     * @see Relation_Stats_Eps::relationDraw()
     */
    private function _drawRelations()
    {
        foreach ($this->_relations as $relation) {
            $relation->relationDraw();
        }
    }

    /**
     * Draws tables
     *
     * @return void
     *
     * @see Table_Stats_Eps::Table_Stats_tableDraw()
     */
    private function _drawTables()
    {
        foreach ($this->_tables as $table) {
            $table->tableDraw($this->showColor);
        }
    }
}
