From eeeb3ff67ee7f5c7bfa9bdcf789b49ed21f4b1c3 Mon Sep 17 00:00:00 2001 From: EricLaoGitHub Date: Mon, 20 Mar 2017 17:38:29 +0100 Subject: [PATCH 01/30] in Dijkstra: - Paths lengths are better estimated when a path goes through successive horizontal channels (same goes for successive vertical channels). --- anabatic/src/Dijkstra.cpp | 275 +++++++++++++++++++++++++------ anabatic/src/anabatic/Dijkstra.h | 4 + 2 files changed, 232 insertions(+), 47 deletions(-) diff --git a/anabatic/src/Dijkstra.cpp b/anabatic/src/Dijkstra.cpp index ed8e7ebe..bdb6ce06 100644 --- a/anabatic/src/Dijkstra.cpp +++ b/anabatic/src/Dijkstra.cpp @@ -26,7 +26,6 @@ #include "crlcore/Utilities.h" #include "anabatic/AnabaticEngine.h" #include "anabatic/Dijkstra.h" - #include "hurricane/DataBase.h" #include "hurricane/viewer/CellViewer.h" #include "hurricane/Technology.h" @@ -266,7 +265,7 @@ namespace Anabatic { { //cdebug_log(112,0) << "Point Dijkstra::getNextPathPoint( const Vertex* current, const Vertex* next )" << endl; if ((vcurr == NULL) || (vnext == NULL)){ - //cdebug_log(112,0) << "Error(Point Dijkstra::_getNextPathPoint( const Vertex*, const Vertex* )): Unvalid NULL argument."<< endl; + //cdebug_log(112,0) << "[ERROR](Point Dijkstra::_getNextPathPoint( const Vertex*, const Vertex* )): Unvalid NULL argument."<< endl; return Point(0,0); } @@ -292,7 +291,7 @@ namespace Anabatic { if ( pcurr.getY() > vnext->getIMax() ) y = vnext->getIMax(); else if ( pcurr.getY() < vnext->getIMin() ) y = vnext->getIMin(); else y = pcurr.getY(); - } else cdebug_log(112,0) << "Error(Point Vertex::getNextPathPoint2(...) const: Something is wrong.1" << endl; + } else cdebug_log(112,0) << "[ERROR](Point Vertex::getNextPathPoint2(...) const: Something is wrong.1" << endl; } else { //cdebug_log(112,0) << "Case not set" << endl; if (vcurr->isNorth(vnext)){ @@ -316,7 +315,7 @@ namespace Anabatic { if (pcurr.getY() < gnext->getYMin()) y = gnext->getYMin(); else if (pcurr.getY() > gnext->getYMax()) y = gnext->getYMax(); else y = pcurr.getY(); - } else cdebug_log(112,0) << "Error(Point Vertex::getNextPathPoint2(...) const: Something is wrong.2" << endl; + } else cdebug_log(112,0) << "[ERROR](Point Vertex::getNextPathPoint2(...) const: Something is wrong.2" << endl; } } else if (vnext->isH()) { @@ -331,7 +330,7 @@ namespace Anabatic { if ( pcurr.getX() > vnext->getIMax() ) x = vnext->getIMax(); else if ( pcurr.getX() < vnext->getIMin() ) x = vnext->getIMin(); else x = pcurr.getX(); - } else cdebug_log(112,0) << "Error(Point Vertex::getNextPathPoint2(...) const: Something is wrong.3" << endl; + } else cdebug_log(112,0) << "[ERROR](Point Vertex::getNextPathPoint2(...) const: Something is wrong.3" << endl; } else { //cdebug_log(112,0) << "Case not set" << endl; @@ -356,10 +355,10 @@ namespace Anabatic { if (pcurr.getY() < gnext->getYMin()) y = gnext->getYMin(); else if (pcurr.getY() > gnext->getYMax()) y = gnext->getYMax(); else y = pcurr.getY(); - } else cdebug_log(112,0) << "Error(Point Vertex::getNextPathPoint2(...) const: Something is wrong.4" << endl; + } else cdebug_log(112,0) << "[ERROR](Point Vertex::getNextPathPoint2(...) const: Something is wrong.4" << endl; } } else { - cdebug_log(112,0) << "Error(Point Vertex::getNextPathPoint2(...) const: Something is wrong.5" << endl; + cdebug_log(112,0) << "[ERROR](Point Vertex::getNextPathPoint2(...) const: Something is wrong.5" << endl; } return Point(x,y); } @@ -367,7 +366,7 @@ namespace Anabatic { Point Vertex::getPathPoint( const Vertex* next ) const { - //cdebug_log(112,0) << "Point Vertex::getPathPoint( const Vertex* next ) const:" << this << endl; + cdebug_log(112,0) << "Point Vertex::getPathPoint( const Vertex* next ) const:" << this << endl; GCell* gcurr = getGCell(); GCell* gnext = next->getGCell(); @@ -376,37 +375,37 @@ namespace Anabatic { if (gcurr->isDevice ()){ - //cdebug_log(112,0) << "Case device" << endl; + cdebug_log(112,0) << "Case device" << endl; if (isH()){ - //cdebug_log(112,0) << "hinterval: " << DbU::getValueString(_interv->getAxis()) << endl; + cdebug_log(112,0) << "hinterval: " << DbU::getValueString(_interv->getAxis()) << endl; y = _interv->getAxis(); if ((gnext->getXMax() < _interv->getMin())||(isWest (next))) x = _interv->getMin(); else if ((gnext->getXMin() > _interv->getMax())||(isEast (next))) x = _interv->getMax(); else x = (max(gnext->getXMin(), _interv->getMin())+min(gnext->getXMax(), _interv->getMax()))/2; } else if (isV()){ - //cdebug_log(112,0) << "vinterval" << endl; + cdebug_log(112,0) << "vinterval" << endl; x = _interv->getAxis(); if ((gnext->getYMax() < _interv->getMin())||(isSouth(next))) y = _interv->getMin(); else if ((gnext->getYMin() > _interv->getMax())||(isNorth(next))) y = _interv->getMax(); else y = (max(gnext->getYMin(), _interv->getMin())+min(gnext->getYMax(), _interv->getMax()))/2 ; } else { - cdebug_log(112,0) << "Error(Point Vertex::getPathPoint( Vertex * vertex ) const: Something is wrong." << endl; + cdebug_log(112,0) << "[ERROR](Point Vertex::getPathPoint( Vertex * vertex ) const: Something is wrong." << endl; return Point(0,0); } } else if (isH()) { - //cdebug_log(112,0) << "Case horizontal: " << isiSet() << endl; + cdebug_log(112,0) << "Case horizontal: " << isiSet() << endl; GCell* gprev = getFrom()->getOpposite(gcurr); Vertex* prev = gprev->getObserver(GCell::Observable::Vertex); if (isiSet()){ - //cdebug_log(112,0) << "isiSet" << endl; + cdebug_log(112,0) << "isiSet" << endl; y = _interv->getAxis(); if ((gnext->getXMax() < _interv->getMin())||(isWest (next))) x = _interv->getMin(); else if ((gnext->getXMin() > _interv->getMax())||(isEast (next))) x = _interv->getMax(); else x = (max(gnext->getXMin(), _interv->getMin())+min(gnext->getXMax(), _interv->getMax()))/2; } else { if (prev->isH()){ - //cdebug_log(112,0) << "prev is H" << endl; + cdebug_log(112,0) << "prev is H" << endl; if (isNorth(prev)){ x = (max(_intervfrom->getMin(), gcurr->getXMin())+min(_intervfrom->getMax(), gcurr->getXMax()))/2 ; y = gcurr->getYMax(); @@ -420,7 +419,7 @@ namespace Anabatic { x = gcurr->getXMax(); y = _intervfrom->getAxis(); } else { - cdebug_log(112,0) << "Error(Point Vertex::getPathPoint( Vertex * vertex ) const: Something is wrong." << endl; + cdebug_log(112,0) << "[ERROR](Point Vertex::getPathPoint( Vertex * vertex ) const: Something is wrong." << endl; return Point(0,0); } } else if (prev->isV()){ @@ -454,28 +453,28 @@ namespace Anabatic { y = (max(_intervfrom->getMin(), gcurr->getYMin())+min(_intervfrom->getMax(), gcurr->getYMax()))/2 ; } } else { - cdebug_log(112,0) << "Error(Point Vertex::getPathPoint( Vertex * vertex ) const: Something is wrong." << endl; + cdebug_log(112,0) << "[ERROR](Point Vertex::getPathPoint( Vertex * vertex ) const: Something is wrong." << endl; return Point(0,0); } cdebug_log(112,0) << "x: " << DbU::getValueString(x) << ", y:" << DbU::getValueString(y) << endl; } else { - cdebug_log(112,0) << "Error(Point Vertex::getPathPoint( Vertex * vertex ) const: Something is wrong." << endl; + cdebug_log(112,0) << "[ERROR](Point Vertex::getPathPoint( Vertex * vertex ) const: Something is wrong." << endl; return Point(0,0); } } } else if (isV()) { - //cdebug_log(112,0) << "Case V: " << isiSet() << endl; + cdebug_log(112,0) << "Case V: " << isiSet() << endl; GCell* gprev = getFrom()->getOpposite(gcurr); Vertex* prev = gprev->getObserver(GCell::Observable::Vertex); if (isiSet()){ - //cdebug_log(112,0) << "isiSet" << endl; + cdebug_log(112,0) << "isiSet" << endl; x = _interv->getAxis(); if ((gnext->getYMax() < _interv->getMin())||(isSouth(next))) y = _interv->getMin(); else if ((gnext->getYMin() > _interv->getMax())||(isNorth(next))) y = _interv->getMax(); else y = (max(gnext->getYMin(), _interv->getMin())+min(gnext->getYMax(), _interv->getMax()))/2 ; } else { if (prev->isH()){ - //cdebug_log(112,0) << "prev is H" << endl; + cdebug_log(112,0) << "prev is H" << endl; if (isNorth(prev)){ y = gcurr->getYMax(); if ( _intervfrom->getMin() > gcurr->getXMax() ){ @@ -501,11 +500,11 @@ namespace Anabatic { x = gcurr->getXMax(); y = _intervfrom->getAxis(); } else { - cdebug_log(112,0) << "Error(Point Vertex::getPathPoint( Vertex * vertex ) const: Something is wrong." << endl; + cdebug_log(112,0) << "[ERROR](Point Vertex::getPathPoint( Vertex * vertex ) const: Something is wrong." << endl; return Point(0,0); } } else if (prev->isV()){ - //cdebug_log(112,0) << "prev is V" << endl; + cdebug_log(112,0) << "prev is V" << endl; if (isNorth(prev)){ x = _intervfrom->getAxis(); y = gcurr->getYMax(); @@ -519,16 +518,16 @@ namespace Anabatic { x = gcurr->getXMax(); y = (max(_intervfrom->getMin(), gcurr->getYMin())+min(_intervfrom->getMax(), gcurr->getYMax()))/2 ; } else { - cdebug_log(112,0) << "Error(Point Vertex::getPathPoint( Vertex * vertex ) const: Something is wrong." << endl; + cdebug_log(112,0) << "[ERROR](Point Vertex::getPathPoint( Vertex * vertex ) const: Something is wrong." << endl; return Point(0,0); } } else { - cdebug_log(112,0) << "Error(Point Vertex::getPathPoint( Vertex * vertex ) const: Something is wrong." << endl; + cdebug_log(112,0) << "[ERROR](Point Vertex::getPathPoint( Vertex * vertex ) const: Something is wrong." << endl; return Point(0,0); } } } else { - cdebug_log(112,0) << "Error(Point Vertex::getPathPoint( Vertex * vertex ) const: Something is wrong." << endl; + cdebug_log(112,0) << "[ERROR](Point Vertex::getPathPoint( Vertex * vertex ) const: Something is wrong." << endl; return Point(0,0); } return Point(x,y); @@ -540,7 +539,7 @@ namespace Anabatic { GCell* gcell = getGCell(); if (gcell->isDevice()) return _interv->isH(); else if (gcell->isHChannel()) return true; - else if (gcell->isStrut()) return gcell->getWidth() > gcell->getHeight(); + else if (gcell->isStrut()) return ((gcell->getWidth() > gcell->getHeight())||(gcell->getWidth() == gcell->getHeight())); else return false; } @@ -559,15 +558,50 @@ namespace Anabatic { { Point pcurr = vcurr->getPathPoint(this); Point pnext = Vertex::getNextPathPoint2( vcurr, this ); - //cdebug_log(112,0) << "void Vertex::setIntervals ( Vertex* vcurr )" << endl; + cdebug_log(112,0) << "void Vertex::setIntervals ( Vertex* vcurr )" << endl; cdebug_log(112,0) << "Pcurrent : X:" << DbU::getValueString(pcurr.getX()) << ", Y:" << DbU::getValueString(pcurr.getY()) << endl; - //cdebug_log(112,0) << "Pneighbour: X:" << DbU::getValueString(pnext.getX()) << ", Y:" << DbU::getValueString(pnext.getY()) << endl; + cdebug_log(112,0) << "Pneighbour: X:" << DbU::getValueString(pnext.getX()) << ", Y:" << DbU::getValueString(pnext.getY()) << endl; DbU::Unit min, max, axis; + /*if (vcurr->isH()){ + if (isH()){ + if ((vcurr->isiSet())&&(vcurr->hasValidStamp())){ + } else { + } + } else if (isV()){ + if ((vcurr->isiSet())&&(vcurr->hasValidStamp())){ + } else { + } + } else { + cdebug_log(112,0) << "[ERROR](void Vertex::setIntervals(...)): Something is wrong." << endl; + return; + } + } else if (vcurr->isV()){ + if (isH()){ + if ((vcurr->isiSet())&&(vcurr->hasValidStamp())){ + } else { + } + } else if (isV()){ + if ((vcurr->isiSet())&&(vcurr->hasValidStamp())){ + } else { + } + } else { + cdebug_log(112,0) << "[ERROR](void Vertex::setIntervals(...)): Something is wrong." << endl; + return; + } + } else { + cdebug_log(112,0) << "[ERROR](void Vertex::setIntervals(...)): Something is wrong." << endl; + return; + }*/ + + + + + /////////////////////////// if (vcurr->isH()){ - //cdebug_log(112,0) << "case vcurr: Horizontal" << endl; + cdebug_log(112,0) << "case vcurr: Horizontal" << endl; if ((vcurr->isiSet())&&(vcurr->hasValidStamp())){ - //cdebug_log(112,0) << "case set" << endl; + cdebug_log(112,0) << "case set" << endl; if (vcurr->getIMin() > pnext.getX()) { min = pnext.getX(); max = vcurr->getIMax(); @@ -582,22 +616,44 @@ namespace Anabatic { axis = vcurr->getIAxis(); } } else { - //cdebug_log(112,0) << "case not set" << endl; + cdebug_log(112,0) << "case not set" << endl; axis = pcurr.getY(); - if (pcurr.getX() < pnext.getX()){ - min = pcurr.getX(); - max = pnext.getX(); + bool hh = false; + if (vcurr->hasValidStamp() && (vcurr->getFrom() != NULL)){ + GCell* gcurr = vcurr->getGCell(); + GCell* gprev = vcurr->getFrom()->getOpposite(gcurr); + Vertex* vprev = gprev->getObserver(GCell::Observable::Vertex); + if (vprev->isH()) { + cdebug_log(112,0) << "----------------------------" << endl; + cdebug_log(112,0) << "HHCASE:" << endl; + cdebug_log(112,0) << "prev: " << vprev << endl; + cdebug_log(112,0) << "curr: " << vcurr << endl; + cdebug_log(112,0) << "next: " << this << endl; + cdebug_log(112,0) << "----------------------------" << endl; + hh = true; + } + } + if (hh){ + GCell* gcurr = vcurr->getGCell(); + Vertex* vcurr = gcurr->getObserver(GCell::Observable::Vertex); + min = std::max(gcurr->getXMin(), vcurr->getPIMin()); + max = std::min(gcurr->getXMax(), vcurr->getPIMax()); } else { - max = pcurr.getX(); - min = pnext.getX(); + if (pcurr.getX() < pnext.getX()){ + min = pcurr.getX(); + max = pnext.getX(); + } else { + max = pcurr.getX(); + min = pnext.getX(); + } } } } else if (vcurr->isV()){ - //cdebug_log(112,0) << "case vcurr: Vertical" << endl; + cdebug_log(112,0) << "case vcurr: Vertical" << endl; if ((vcurr->isiSet())&&(vcurr->hasValidStamp())){ - //cdebug_log(112,0) << "case set" << endl; + cdebug_log(112,0) << "case set" << endl; if (vcurr->getIMin() > pnext.getY()) { min = pnext.getY(); max = vcurr->getIMax(); @@ -612,19 +668,41 @@ namespace Anabatic { axis = vcurr->getIAxis(); } } else { - //cdebug_log(112,0) << "case not set" << endl; + cdebug_log(112,0) << "case not set" << endl; axis = pcurr.getX(); - if (pcurr.getY() < pnext.getY()){ - min = pcurr.getY(); - max = pnext.getY(); + bool vv = false; + if (vcurr->hasValidStamp() && (vcurr->getFrom() != NULL)){ + GCell* gcurr = vcurr->getGCell(); + GCell* gprev = vcurr->getFrom()->getOpposite(gcurr); + Vertex* vprev = gprev->getObserver(GCell::Observable::Vertex); + if (vprev->isV()) { + cdebug_log(112,0) << "----------------------------" << endl; + cdebug_log(112,0) << "VVCASE:" << endl; + cdebug_log(112,0) << "prev: " << vprev << endl; + cdebug_log(112,0) << "curr: " << vcurr << endl; + cdebug_log(112,0) << "next: " << this << endl; + cdebug_log(112,0) << "----------------------------" << endl; + vv = true; + } + } + if (vv){ + GCell* gcurr = vcurr->getGCell(); + Vertex* vcurr = gcurr->getObserver(GCell::Observable::Vertex); + min = std::max(gcurr->getYMin(), vcurr->getPIMin()); + max = std::min(gcurr->getYMax(), vcurr->getPIMax()); } else { - max = pcurr.getY(); - min = pnext.getY(); + if (pcurr.getY() < pnext.getY()){ + min = pcurr.getY(); + max = pnext.getY(); + } else { + max = pcurr.getY(); + min = pnext.getY(); + } } } } else { - cdebug_log(112,0) << "Error(void Vertex::setIntervals(...)): Something is wrong." << endl; + cdebug_log(112,0) << "[ERROR](void Vertex::setIntervals(...)): Something is wrong." << endl; return; } cdebug_log(112,0) << "IntervFrom => min: " << DbU::getValueString(min) << ", max: " << DbU::getValueString(max) << ", axis:" << DbU::getValueString(axis) << endl; @@ -904,6 +982,107 @@ namespace Anabatic { } + DbU::Unit Vertex::getXMinUnionfrom () + { + if (_intervfrom){ + if (hasValidStamp()){ + GCell* gcurr = getGCell(); + GCell* gprev = getFrom()->getOpposite(gcurr); + Vertex* vprev = gprev->getObserver(GCell::Observable::Vertex); + + if (vprev->isH() && isH()){ + return max(_intervfrom->getMin(), gcurr->getXMin()); + } else { + cdebug_log(112,0) << "[ERROR]: No FROM, wrong usage. 3" << endl; + } + } else { + cdebug_log(112,0) << "[ERROR]: No FROM, wrong usage. 2" << endl; + return 0; + } + } else { + cdebug_log(112,0) << "[ERROR]: No FROM, wrong usage. 1" << endl; + return 0; + } + } + + + DbU::Unit Vertex::getXMaxUnionfrom () + { + if (_intervfrom){ + if (hasValidStamp()){ + GCell* gcurr = getGCell(); + GCell* gprev = getFrom()->getOpposite(gcurr); + Vertex* vprev = gprev->getObserver(GCell::Observable::Vertex); + + if (vprev->isH() && isH()){ + return min(_intervfrom->getMax(), gcurr->getXMax()); + } else { + cdebug_log(112,0) << "[ERROR]: No FROM, wrong usage. 3" << endl; + return 0; + } + } else { + cdebug_log(112,0) << "[ERROR]: No FROM, wrong usage. 2" << endl; + return 0; + } + } else { + cdebug_log(112,0) << "[ERROR]: No FROM, wrong usage. 1" << endl; + return 0; + } + } + + + DbU::Unit Vertex::getYMinUnionfrom () + { + if (_intervfrom){ + if (hasValidStamp()){ + GCell* gcurr = getGCell(); + GCell* gprev = getFrom()->getOpposite(gcurr); + Vertex* vprev = gprev->getObserver(GCell::Observable::Vertex); + + if (vprev->isV() && isV()){ + return max(_intervfrom->getMin(), gcurr->getYMin()); + } else { + cdebug_log(112,0) << "[ERROR]: No FROM, wrong usage. 3" << endl; + return 0; + } + } else { + cdebug_log(112,0) << "[ERROR]: No FROM, wrong usage. 2" << endl; + return 0; + } + } else { + cdebug_log(112,0) << "[ERROR]: No FROM, wrong usage. 1" << endl; + return 0; + } + } + + + DbU::Unit Vertex::getYMaxUnionfrom () + { + if (_intervfrom){ + if (hasValidStamp()){ + GCell* gcurr = getGCell(); + GCell* gprev = getFrom()->getOpposite(gcurr); + Vertex* vprev = gprev->getObserver(GCell::Observable::Vertex); + + if (vprev->isV() && isV()){ + return min(_intervfrom->getMax(), gcurr->getYMax()); + } else { + cdebug_log(112,0) << "[ERROR]: No FROM, wrong usage. 3" << endl; + return 0; + } + } else { + cdebug_log(112,0) << "[ERROR]: No FROM, wrong usage. 2" << endl; + return 0; + } + } else { + cdebug_log(112,0) << "[ERROR]: No FROM, wrong usage. 1" << endl; + return 0; + } + } + + + + Dijkstra::Dijkstra ( AnabaticEngine* anabatic ) : _anabatic (anabatic) , _vertexes () @@ -1320,6 +1499,7 @@ namespace Anabatic { continue; } cdebug_log(111,0) << endl << "===================================================================================" << endl << endl; + cdebug_log(111,0) << "| Net: " << _net << endl; cdebug_log(111,0) << "| Curr: " << current; if (current->getFrom()){ cdebug_log(111,0) << "| From: " << current->getFrom()->getOpposite(gcurrent) << endl; @@ -1328,7 +1508,7 @@ namespace Anabatic { } cdebug_log(111,0) << "| Edge " << edge << endl; cdebug_log(111,0) << "+ Neighbor: " << vneighbor; - if (vneighbor->getFrom() != NULL) {cdebug_log(111,0) << "| Neighbor getfrom:" << vneighbor->getFrom()->getOpposite( gneighbor ) << endl;} + if ((vneighbor->getFrom() != NULL)&&(vneighbor->hasValidStamp())) {cdebug_log(111,0) << "| Neighbor getfrom:" << vneighbor->getFrom()->getOpposite( gneighbor ) << endl;} else {cdebug_log(111,0) << endl;} @@ -1364,6 +1544,7 @@ namespace Anabatic { && ( calcDistance(ppond, pnext) < calcDistance(ppond, pprev) ) ) ){ + _queue.erase( vneighbor ); cdebug_log(111,0) << "BETTER GetFROM" << endl; vneighbor->setBranchId( current->getBranchId() ); vneighbor->setDistance( distance ); diff --git a/anabatic/src/anabatic/Dijkstra.h b/anabatic/src/anabatic/Dijkstra.h index 1b2cbe65..15130df5 100644 --- a/anabatic/src/anabatic/Dijkstra.h +++ b/anabatic/src/anabatic/Dijkstra.h @@ -237,6 +237,10 @@ namespace Anabatic { inline bool isAxisTarget () const; inline void unsetFlags ( unsigned int ); inline void setAxisTarget (); + DbU::Unit getXMinUnionfrom (); + DbU::Unit getXMaxUnionfrom (); + DbU::Unit getYMinUnionfrom (); + DbU::Unit getYMaxUnionfrom (); // Inspector support. From 8bf1f63557507a0ccc743236aa011467ee38b2c4 Mon Sep 17 00:00:00 2001 From: EricLaoGitHub Date: Tue, 18 Apr 2017 11:58:55 +0200 Subject: [PATCH 02/30] Pre-commit for updating git depositary. --- anabatic/src/Dijkstra.cpp | 871 +++++++++++++++++++++++++---- anabatic/src/anabatic/Dijkstra.h | 151 ++--- crlcore/etc/common/display.conf | 54 +- hurricane/src/viewer/CellImage.cpp | 2 +- 4 files changed, 877 insertions(+), 201 deletions(-) diff --git a/anabatic/src/Dijkstra.cpp b/anabatic/src/Dijkstra.cpp index bdb6ce06..e3f8cfb6 100644 --- a/anabatic/src/Dijkstra.cpp +++ b/anabatic/src/Dijkstra.cpp @@ -49,38 +49,6 @@ namespace Anabatic { using Hurricane::NetRoutingExtension; - -// ------------------------------------------------------------------- -// Class : "Anabatic::Symmetry". - - - Symmetry::Symmetry( unsigned int type, DbU::Unit value ) - { - if (type == sHorizontal) setAsH(); - else if (type == sVertical ) setAsV(); - - _value = value; - } - - - Symmetry::~Symmetry() {} - - - Symmetry* Symmetry::create( unsigned int type, DbU::Unit value ) - { - return new Symmetry( type, value ); - } - - - unsigned int Symmetry::getType() const - { - if (_flags & sHorizontal) return sHorizontal; - else if (_flags & sVertical ) return sVertical; - else return 0; - } - - - // ------------------------------------------------------------------- // Class : "Anabatic::IntervalC". @@ -101,6 +69,10 @@ namespace Anabatic { return new IntervalC(); } + void IntervalC::destroy () + { + delete (this); + } void IntervalC::set ( DbU::Unit min, DbU::Unit max, DbU::Unit axis ) { @@ -138,7 +110,7 @@ namespace Anabatic { void IntervalC::print() const { - cerr << "[IntervalC]: min: " << DbU::getValueString(_min) << ", max:" << DbU::getValueString(_min) << ", axis:" << DbU::getValueString(_axis) << endl; + cerr << "[IntervalC]: typeH: " << isH() << ", typeV: " << isV() << ", min: " << DbU::getValueString(_min) << ", max:" << DbU::getValueString(_max) << ", axis:" << DbU::getValueString(_axis) << endl; } @@ -261,6 +233,408 @@ namespace Anabatic { } + Point Vertex::getNextPathPoint( Point pcurr, const Vertex* vnext ) const + { + //cdebug_log(112,1) << "Point Dijkstra::getNextPathPoint( IntervalC* interv, IntervalC* intervfrom, Vertex* next )" << endl; + // done in vcurr + if (vnext == NULL){ + cdebug_tabw(112,-1); + return Point(0,0); + } + + if (vnext->getGCell()->isMatrix()) { + cdebug_tabw(112,-1); + return Point(vnext->getGCell()->getXCenter(), vnext->getGCell()->getYCenter()); + } + + //Point pcurr = getStartPathPoint(interv, intervfrom, next); + GCell* gnext = vnext->getGCell(); + GCell* gcurr = getGCell(); + DbU::Unit x = 0; + DbU::Unit y = 0; + + + if (vnext->isV()){ + //cdebug_log(112,0) << "Case next: Vertical: " << vnext->isiSet() << endl; //", d:" << vnext->getDistance() << endl; + if ((vnext->isiSet())&&(vnext->hasValidStamp())){ + //cdebug_log(112,0) << "Case set" << endl; + x = vnext->getIAxis(); + if (isNorth(vnext)) y = vnext->getIMin(); + else if (isSouth(vnext)) y = vnext->getIMax(); + else if ((isWest(vnext))||(isEast(vnext))) { + if ( pcurr.getY() > vnext->getIMax() ) y = vnext->getIMax(); + else if ( pcurr.getY() < vnext->getIMin() ) y = vnext->getIMin(); + else y = pcurr.getY(); + } else cdebug_log(112,0) << "[ERROR](Point Vertex::getNextPathPoint2(...) const: Something is wrong.1" << endl; + } else { + //cdebug_log(112,0) << "Case not set" << endl; + if (isNorth(vnext)){ + y = gcurr->getYMax(); + if (pcurr.getX() < gnext->getXMin()) x = gnext->getXMin(); + else if (pcurr.getX() > gnext->getXMax()) x = gnext->getXMax(); + else x = pcurr.getX(); + } else if (isSouth(vnext)){ + y = gcurr->getYMin(); + if (pcurr.getX() < gnext->getXMin()) x = gnext->getXMin(); + else if (pcurr.getX() > gnext->getXMax()) x = gnext->getXMax(); + else x = pcurr.getX(); + } else if (isWest(vnext)){ + x = gcurr->getXMin(); + if (pcurr.getY() < gnext->getYMin()) y = gnext->getYMin(); + else if (pcurr.getY() > gnext->getYMax()) y = gnext->getYMax(); + else y = pcurr.getY(); + + } else if (isEast(vnext)){ + x = gcurr->getXMax(); + if (pcurr.getY() < gnext->getYMin()) y = gnext->getYMin(); + else if (pcurr.getY() > gnext->getYMax()) y = gnext->getYMax(); + else y = pcurr.getY(); + } else cdebug_log(112,0) << "[ERROR](Point Vertex::getNextPathPoint2(...) const: Something is wrong.2" << endl; + } + + } else if (vnext->isH()) { + //cdebug_log(112,0) << "Case next: Horizontal: " << vnext->isiSet() << endl; //", d:" << vnext->getDistance() << endl; + + if ((vnext->isiSet())&&(vnext->hasValidStamp())){ + //cdebug_log(112,0) << "Case set" << endl; + y = vnext->getIAxis(); + if (isEast (vnext)) x = vnext->getIMin(); + else if (isWest (vnext)) x = vnext->getIMax(); + else if ((isNorth(vnext))||(isSouth(vnext))) { + if ( pcurr.getX() > vnext->getIMax() ) x = vnext->getIMax(); + else if ( pcurr.getX() < vnext->getIMin() ) x = vnext->getIMin(); + else x = pcurr.getX(); + } else cdebug_log(112,0) << "[ERROR](Point Vertex::getNextPathPoint2(...) const: Something is wrong.3" << endl; + + } else { + //cdebug_log(112,0) << "Case not set" << endl; + if (isNorth(vnext)){ + y = gcurr->getYMax(); + if (pcurr.getX() < gnext->getXMin()) x = gnext->getXMin(); + else if (pcurr.getX() > gnext->getXMax()) x = gnext->getXMax(); + else x = pcurr.getX(); + } else if (isSouth(vnext)){ + y = gcurr->getYMin(); + if (pcurr.getX() < gnext->getXMin()) x = gnext->getXMin(); + else if (pcurr.getX() > gnext->getXMax()) x = gnext->getXMax(); + else x = pcurr.getX(); + } else if (isWest(vnext)){ + x = gcurr->getXMin(); + if (pcurr.getY() < gnext->getYMin()) y = gnext->getYMin(); + else if (pcurr.getY() > gnext->getYMax()) y = gnext->getYMax(); + else y = pcurr.getY(); + + } else if (isEast(vnext)){ + x = gcurr->getXMax(); + if (pcurr.getY() < gnext->getYMin()) y = gnext->getYMin(); + else if (pcurr.getY() > gnext->getYMax()) y = gnext->getYMax(); + else y = pcurr.getY(); + } else cdebug_log(112,0) << "[ERROR](Point Vertex::getNextPathPoint2(...) const: Something is wrong.4" << endl; + } + } else { + cdebug_log(112,0) << "[ERROR](Point Vertex::getNextPathPoint2(...) const: Something is wrong.5" << endl; + } + //cdebug_tabw(112,-1); + return Point(x,y); + } + + + Point Vertex::getStartPathPoint( const Vertex* next ) const + { + cdebug_log(112,1) << "Point Vertex::getStartPathPoint( const Vertex* next ) const:" << this << endl; + + GCell* gcurr = getGCell(); + GCell* gnext = next->getGCell(); + DbU::Unit x = 0; + DbU::Unit y = 0; + + IntervalC* interv = _interv; + IntervalC* intervfrom = NULL; + /*GCell* gprev = NULL; + if (isFrom2Mode()){ + cdebug_log(112,0) << "UseFrom2Mode" << endl; + intervfrom = _intervfrom2; + if (_from2) gprev = _from2->getOpposite(gcurr); + } else { + cdebug_log(112,0) << "UseFrom1Mode" << endl; + intervfrom = _intervfrom; + if (_from) gprev = _from->getOpposite(gcurr); + } + Vertex* prev = gprev->getObserver(GCell::Observable::Vertex);*/ + + + if (gcurr->isDevice ()){ + cdebug_log(112,0) << "Case device" << endl; + if (isH()){ + cdebug_log(112,0) << "hinterval: " << DbU::getValueString(interv->getAxis()) << endl; + y = interv->getAxis(); + if ((gnext->getXMax() < interv->getMin())||(isWest (next))) x = interv->getMin(); + else if ((gnext->getXMin() > interv->getMax())||(isEast (next))) x = interv->getMax(); + else x = (max(gnext->getXMin(), interv->getMin())+min(gnext->getXMax(), interv->getMax()))/2; + + } else if (isV()){ + cdebug_log(112,0) << "vinterval" << endl; + x = interv->getAxis(); + if ((gnext->getYMax() < interv->getMin())||(isSouth(next))) y = interv->getMin(); + else if ((gnext->getYMin() > interv->getMax())||(isNorth(next))) y = interv->getMax(); + else y = (max(gnext->getYMin(), interv->getMin())+min(gnext->getYMax(), interv->getMax()))/2 ; + } else { + cdebug_log(112,0) << "[ERROR](Point Vertex::getPathPoint( Vertex * vertex ) const: Something is wrong." << endl; + cdebug_tabw(112,-1); + return Point(0,0); + } + } else if (isH()) { + cdebug_log(112,0) << "Case horizontal: " << isiSet() << endl; + GCell* gprev = NULL; + if (isFrom2Mode()){ + cdebug_log(112,0) << "UseFrom2Mode" << endl; + intervfrom = _intervfrom2; + if (_from2) gprev = _from2->getOpposite(gcurr); + } else { + cdebug_log(112,0) << "UseFrom1Mode" << endl; + intervfrom = _intervfrom; + if (_from) gprev = _from->getOpposite(gcurr); + } + Vertex* prev = gprev->getObserver(GCell::Observable::Vertex); + cdebug_log(112,0) << "PREV: " << prev << " "; + intervfrom->print(); + + + if (isiSet()){ + cdebug_log(112,0) << "isiSet: "; + interv->print(); + y = interv->getAxis(); + if ((gnext->getXMax() < interv->getMin())||(isWest (next))) x = interv->getMin(); + else if ((gnext->getXMin() > interv->getMax())||(isEast (next))) x = interv->getMax(); + else x = (max(gnext->getXMin(), interv->getMin())+min(gnext->getXMax(), interv->getMax()))/2; + } else { + if (prev->isH()){ + cdebug_log(112,0) << "prev is H" << endl; + if (gnext->getXMax() < intervfrom->getMin()) x = intervfrom->getMin(); + else if (gnext->getXMin() > intervfrom->getMax()) x = intervfrom->getMax(); + else x = (max(gnext->getXMin(), intervfrom->getMin())+min(gnext->getXMax(), intervfrom->getMax()))/2; + if (isNorth(prev)) y = gcurr->getYMax(); + else if (isSouth(prev)) y = gcurr->getYMin(); + else y = intervfrom->getAxis(); + + /*if (isNorth(prev)){ + x = (max(intervfrom->getMin(), gcurr->getXMin())+min(intervfrom->getMax(), gcurr->getXMax()))/2 ; + y = gcurr->getYMax(); + } else if (isSouth(prev)){ + x = (max(intervfrom->getMin(), gcurr->getXMin())+min(intervfrom->getMax(), gcurr->getXMax()))/2 ; + y = gcurr->getYMin(); + } else if (isWest (prev)){ + x = gcurr->getXMin(); + y = intervfrom->getAxis(); + } else if (isEast (prev)){ + x = gcurr->getXMax(); + y = intervfrom->getAxis(); + } else { + cdebug_log(112,0) << "[ERROR](Point Vertex::getPathPoint( Vertex * vertex ) const: Something is wrong." << endl; + cdebug_tabw(112,-1); + return Point(0,0); + }*/ + } else if (prev->isV()){ + cdebug_log(112,0) << "prev is V" << endl; + + if (isNorth(prev)){ + cdebug_log(112,0) << "1" << endl; + x = intervfrom->getAxis(); + y = gcurr->getYMax(); + } else if (isSouth(prev)){ + cdebug_log(112,0) << "2" << endl; + x = intervfrom->getAxis(); + y = gcurr->getYMin(); + } else if (isWest (prev)){ + cdebug_log(112,0) << "3" << endl; + x = gcurr->getXMin(); + if (isNorth(next)){ + if (intervfrom->getMax() > gcurr->getYMax()) y = gcurr->getYMax(); + else y = intervfrom->getMax(); + } else if (isSouth(next)){ + if (intervfrom->getMin() < gcurr->getYMin()) y = gcurr->getYMin(); + else y = intervfrom->getMin(); + } else { // East side + if ( intervfrom->getMin() < gcurr->getYMin() ){ y = gcurr->getYMin(); + } else if ( intervfrom->getMax() > gcurr->getYMax() ){ y = gcurr->getYMax(); + } else { y = (intervfrom->getMin() + intervfrom->getMax())/2 ; + } + } + /*if ( intervfrom->getMin() > gcurr->getYMax() ){ + y = gcurr->getYMax(); + } else if ( intervfrom->getMax() < gcurr->getYMin() ){ + y = gcurr->getYMin(); + } else { + y = (max(intervfrom->getMin(), gcurr->getYMin())+min(intervfrom->getMax(), gcurr->getYMax()))/2 ; + }*/ + } else if (isEast (prev)){ + cdebug_log(112,0) << "4" << endl; + x = gcurr->getXMax(); + if (isNorth(next)){ + if (intervfrom->getMax() > gcurr->getYMax()) y = gcurr->getYMax(); + else y = intervfrom->getMax(); + } else if (isSouth(next)){ + if (intervfrom->getMin() < gcurr->getYMin()) y = gcurr->getYMin(); + else y = intervfrom->getMin(); + } else { // West side + if ( intervfrom->getMin() < gcurr->getYMin() ){ y = gcurr->getYMin(); + } else if ( intervfrom->getMax() > gcurr->getYMax() ){ y = gcurr->getYMax(); + } else { y = (intervfrom->getMin() + intervfrom->getMax())/2 ; + } + } + /*if ( intervfrom->getMin() > gcurr->getYMax() ){ + y = gcurr->getYMax(); + } else if ( intervfrom->getMax() < gcurr->getYMin() ){ + y = gcurr->getYMin(); + } else { + y = (max(intervfrom->getMin(), gcurr->getYMin())+min(intervfrom->getMax(), gcurr->getYMax()))/2 ; + }*/ + } else { + cdebug_log(112,0) << "[ERROR](Point Vertex::getStartPathPoint() const: Something is wrong." << endl; + cdebug_tabw(112,-1); + return Point(0,0); + } + cdebug_log(112,0) << "x: " << DbU::getValueString(x) << ", y:" << DbU::getValueString(y) << endl; + } else { + cdebug_log(112,0) << "[ERROR](Point Vertex::getStartPathPoint() const: Something is wrong." << endl; + cdebug_tabw(112,-1); + return Point(0,0); + } + } + } else if (isV()) { + cdebug_log(112,0) << "Case vertical: " << isiSet() << endl; + GCell* gprev = NULL; + if (isFrom2Mode()){ + cdebug_log(112,0) << "UseFrom2Mode" << endl; + intervfrom = _intervfrom2; + if (_from2) gprev = _from2->getOpposite(gcurr); + } else { + cdebug_log(112,0) << "UseFrom1Mode" << endl; + intervfrom = _intervfrom; + if (_from) gprev = _from->getOpposite(gcurr); + } + Vertex* prev = gprev->getObserver(GCell::Observable::Vertex); + cdebug_log(112,0) << "PREV: " << prev << " "; + intervfrom->print(); + + if (isiSet()){ + cdebug_log(112,0) << "isiSet: "; + interv->print(); + x = interv->getAxis(); + if ((gnext->getYMax() <= interv->getMin())||(isSouth(next))){ + y = interv->getMin(); + cdebug_log(112,0) << "1" << endl; + } + else if ((gnext->getYMin() >= interv->getMax())||(isNorth(next))){ + y = interv->getMax(); + cdebug_log(112,0) << "2" << endl; + } + else { + y = (max(gnext->getYMin(), interv->getMin())+min(gnext->getYMax(), interv->getMax()))/2 ; + cdebug_log(112,0) << "3" << endl; + } + } else { + if (prev->isH()){ + cdebug_log(112,0) << "prev is H" << endl; + if (isNorth(prev)){ + y = gcurr->getYMax(); + if (isNorth(next)){ + if (intervfrom->getMax() > gcurr->getXMax()) x = gcurr->getXMax(); + else x = intervfrom->getMax(); + } else if (isSouth(next)){ + if (intervfrom->getMin() < gcurr->getXMin()) x = gcurr->getXMin(); + else x = intervfrom->getMin(); + } else { // West side + if ( intervfrom->getMin() < gcurr->getXMin() ){ x = gcurr->getXMin(); + } else if ( intervfrom->getMax() > gcurr->getXMax() ){ x = gcurr->getXMax(); + } else { x = (intervfrom->getMin() + intervfrom->getMax())/2 ; + } + } + /*y = gcurr->getYMax(); + if ( intervfrom->getMin() > gcurr->getXMax() ){ + x = gcurr->getXMax(); + } else if ( intervfrom->getMax() < gcurr->getXMin() ){ + x = gcurr->getXMin(); + } else { + x = (max(intervfrom->getMin(), gcurr->getXMin())+min(intervfrom->getMax(), gcurr->getXMax()))/2 ; + }*/ + } else if (isSouth(prev)){ + y = gcurr->getYMin(); + if (isEast(next)){ + if (intervfrom->getMax() > gcurr->getXMax()) x = gcurr->getXMax(); + else x = intervfrom->getMax(); + } else if (isWest(next)){ + if (intervfrom->getMin() < gcurr->getXMin()) x = gcurr->getXMin(); + else x = intervfrom->getMin(); + } else { // Northside + if ( intervfrom->getMin() < gcurr->getXMin() ){ x = gcurr->getXMin(); + } else if ( intervfrom->getMax() > gcurr->getXMax() ){ x = gcurr->getXMax(); + } else { x = (intervfrom->getMin() + intervfrom->getMax())/2 ; + } + } + + /*y = gcurr->getYMin(); + if ( intervfrom->getMin() > gcurr->getXMax() ){ + x = gcurr->getXMax(); + } else if ( intervfrom->getMax() < gcurr->getXMin() ){ + x = gcurr->getXMin(); + } else { + x = (max(intervfrom->getMin(), gcurr->getXMin())+min(intervfrom->getMax(), gcurr->getXMax()))/2 ; + }*/ + } else if (isWest (prev)){ + x = gcurr->getXMin(); + y = intervfrom->getAxis(); + } else if (isEast (prev)){ + x = gcurr->getXMax(); + y = intervfrom->getAxis(); + } else { + cdebug_log(112,0) << "[ERROR](Point Vertex::getStartPathPoint() const: Something is wrong." << endl; + cdebug_tabw(112,-1); + return Point(0,0); + } + } else if (prev->isV()){ + cdebug_log(112,0) << "prev is V" << endl; + if (gnext->getYMax() < intervfrom->getMin()) { y = intervfrom->getMin(); + } else if (gnext->getYMin() > intervfrom->getMax()){ y = intervfrom->getMax(); + } else{ y = (max(gnext->getYMin(), intervfrom->getMin())+min(gnext->getYMax(), intervfrom->getMax()))/2; + } + + if (isEast(prev)) x = gcurr->getXMax(); + else if (isWest(prev)) x = gcurr->getXMin(); + else x = intervfrom->getAxis(); + + /*if (isNorth(prev)){ + x = intervfrom->getAxis(); + y = gcurr->getYMax(); + } else if (isSouth(prev)){ + x = intervfrom->getAxis(); + y = gcurr->getYMin(); + } else if (isWest (prev)){ + x = gcurr->getXMin(); + y = (max(intervfrom->getMin(), gcurr->getYMin())+min(intervfrom->getMax(), gcurr->getYMax()))/2 ; + } else if (isEast (prev)){ + x = gcurr->getXMax(); + y = (max(intervfrom->getMin(), gcurr->getYMin())+min(intervfrom->getMax(), gcurr->getYMax()))/2 ; + } else { + cdebug_log(112,0) << "[ERROR](Point Vertex::getStartPathPoint() const: Something is wrong." << endl; + return Point(0,0); + }*/ + } else { + cdebug_log(112,0) << "[ERROR](Point Vertex::getStartPathPoint() const: Something is wrong." << endl; + cdebug_tabw(112,-1); + return Point(0,0); + } + } + } else { + cdebug_log(112,0) << "[ERROR](Point Vertex::getStartPathPoint() const: Something is wrong." << endl; + cdebug_tabw(112,-1); + return Point(0,0); + } + cdebug_tabw(112,-1); + return Point(x,y); + } + + Point Vertex::getNextPathPoint2( const Vertex* vcurr, const Vertex* vnext ) { //cdebug_log(112,0) << "Point Dijkstra::getNextPathPoint( const Vertex* current, const Vertex* next )" << endl; @@ -556,9 +930,18 @@ namespace Anabatic { void Vertex::setIntervals ( Vertex* vcurr ) { - Point pcurr = vcurr->getPathPoint(this); - Point pnext = Vertex::getNextPathPoint2( vcurr, this ); - cdebug_log(112,0) << "void Vertex::setIntervals ( Vertex* vcurr )" << endl; + cdebug_log(112,1) << "!SETINTERVALS! ( Vertex* vcurr )" << endl; + //Point pcurr = vcurr->getPathPoint(this); + Point pcurr; + if (isFromFrom2()){ + vcurr->setFrom2Mode(); + pcurr = vcurr->getStartPathPoint(this); + vcurr->unsetFrom2Mode(); + } else { + pcurr = vcurr->getStartPathPoint(this); + } + //Point pnext = Vertex::getNextPathPoint2( vcurr, this ); + Point pnext = vcurr->getNextPathPoint( pcurr, this ); cdebug_log(112,0) << "Pcurrent : X:" << DbU::getValueString(pcurr.getX()) << ", Y:" << DbU::getValueString(pcurr.getY()) << endl; cdebug_log(112,0) << "Pneighbour: X:" << DbU::getValueString(pnext.getX()) << ", Y:" << DbU::getValueString(pnext.getY()) << endl; DbU::Unit min, max, axis; @@ -622,6 +1005,9 @@ namespace Anabatic { if (vcurr->hasValidStamp() && (vcurr->getFrom() != NULL)){ GCell* gcurr = vcurr->getGCell(); GCell* gprev = vcurr->getFrom()->getOpposite(gcurr); + if (vcurr->getFrom2() != NULL){ + if (isFromFrom2()) gprev = vcurr->getFrom2()->getOpposite(gcurr); + } Vertex* vprev = gprev->getObserver(GCell::Observable::Vertex); if (vprev->isH()) { cdebug_log(112,0) << "----------------------------" << endl; @@ -634,15 +1020,46 @@ namespace Anabatic { } } if (hh){ - GCell* gcurr = vcurr->getGCell(); + GCell* gcurr = vcurr->getGCell(); + GCell* gnext = getGCell(); + //Vertex* vcurr = gcurr->getObserver(GCell::Observable::Vertex); + IntervalC* intervfrom = vcurr->getIntervFrom(); + if (vcurr->getFrom2() != NULL){ + if (isFromFrom2()) intervfrom = vcurr->getIntervFrom2(); + } + + if (gnext->getXMin() > intervfrom->getMax()){ + cdebug_log(112,0) << "1" << endl; + min = intervfrom->getMax(); + max = gnext->getXMin(); + } else if (gnext->getXMax() < intervfrom->getMin()){ + cdebug_log(112,0) << "2" << endl; + min = gnext->getXMax(); + max = intervfrom->getMin(); + } else { + cdebug_log(112,0) << "3" << endl; + min = std::max(gcurr->getXMin(), intervfrom->getMin()); + max = std::min(gcurr->getXMax(), intervfrom->getMax()); + } + + + /*GCell* gcurr = vcurr->getGCell(); Vertex* vcurr = gcurr->getObserver(GCell::Observable::Vertex); min = std::max(gcurr->getXMin(), vcurr->getPIMin()); max = std::min(gcurr->getXMax(), vcurr->getPIMax()); + if (vcurr->getFrom2() != NULL){ + if (isFromFrom2()){ + min = std::max(gcurr->getXMin(), vcurr->getPIMin2()); + max = std::min(gcurr->getXMax(), vcurr->getPIMax2()); + } + }*/ } else { if (pcurr.getX() < pnext.getX()){ + cdebug_log(112,0) << "4" << endl; min = pcurr.getX(); max = pnext.getX(); } else { + cdebug_log(112,0) << "5" << endl; max = pcurr.getX(); min = pnext.getX(); } @@ -674,8 +1091,11 @@ namespace Anabatic { if (vcurr->hasValidStamp() && (vcurr->getFrom() != NULL)){ GCell* gcurr = vcurr->getGCell(); GCell* gprev = vcurr->getFrom()->getOpposite(gcurr); + if (vcurr->getFrom2() != NULL){ + if (isFromFrom2()) gprev = vcurr->getFrom2()->getOpposite(gcurr); + } Vertex* vprev = gprev->getObserver(GCell::Observable::Vertex); - if (vprev->isV()) { + if ((vprev->isV())) { cdebug_log(112,0) << "----------------------------" << endl; cdebug_log(112,0) << "VVCASE:" << endl; cdebug_log(112,0) << "prev: " << vprev << endl; @@ -686,15 +1106,42 @@ namespace Anabatic { } } if (vv){ - GCell* gcurr = vcurr->getGCell(); - Vertex* vcurr = gcurr->getObserver(GCell::Observable::Vertex); + GCell* gcurr = vcurr->getGCell(); + GCell* gnext = getGCell(); + //Vertex* vcurr = gcurr->getObserver(GCell::Observable::Vertex); + IntervalC* intervfrom = vcurr->getIntervFrom(); + if (vcurr->getFrom2() != NULL){ + if (isFromFrom2()) intervfrom = vcurr->getIntervFrom2(); + } + if (gnext->getYMin() > intervfrom->getMax()){ + cdebug_log(112,0) << "1" << endl; + min = intervfrom->getMax(); + max = gnext->getYMin(); + } else if (gnext->getYMax() < intervfrom->getMin()){ + cdebug_log(112,0) << "2" << endl; + min = gnext->getYMax(); + max = intervfrom->getMin(); + } else { + cdebug_log(112,0) << "3" << endl; + min = std::max(gcurr->getYMin(), intervfrom->getMin()); + max = std::min(gcurr->getYMax(), intervfrom->getMax()); + } + /* min = std::max(gcurr->getYMin(), vcurr->getPIMin()); max = std::min(gcurr->getYMax(), vcurr->getPIMax()); + if (vcurr->getFrom2() != NULL){ + if (isFromFrom2()){ + min = std::max(gcurr->getYMin(), vcurr->getPIMin2()); + max = std::min(gcurr->getYMax(), vcurr->getPIMax2()); + } + }*/ } else { if (pcurr.getY() < pnext.getY()){ + cdebug_log(112,0) << "4" << endl; min = pcurr.getY(); max = pnext.getY(); } else { + cdebug_log(112,0) << "5" << endl; max = pcurr.getY(); min = pnext.getY(); } @@ -707,7 +1154,15 @@ namespace Anabatic { } cdebug_log(112,0) << "IntervFrom => min: " << DbU::getValueString(min) << ", max: " << DbU::getValueString(max) << ", axis:" << DbU::getValueString(axis) << endl; - _intervfrom->set( min, max, axis ); + if (isFrom2Mode()) { + cdebug_log(112,0) << "SetIntervfrom2" << endl; + _intervfrom2->set( min, max, axis ); + } + else { + cdebug_log(112,0) << "SetIntervfrom" << endl; + _intervfrom->set ( min, max, axis ); + } + cdebug_tabw(112,-1); } @@ -716,6 +1171,16 @@ namespace Anabatic { _interv->reset(); _intervfrom->reset(); } + + bool Vertex::areSameSide ( const Vertex* v1, const Vertex* v2 ) const + { + if ( (isNorth(v1) and isNorth(v2)) + || (isSouth(v1) and isSouth(v2)) + || (isWest (v1) and isWest (v2)) + || (isEast (v1) and isEast (v2)) + ) return true; + else return false; + } string Vertex::_getString () const @@ -724,7 +1189,6 @@ namespace Anabatic { string s = ""; return s; } - string s = "getXMin()) + "-" + DbU::getValueString(_gcell->getYMin()) @@ -739,6 +1203,7 @@ namespace Anabatic { /*+ "+" + getString(_branchId) + " stamp:" + (hasValidStamp() ? "valid" : "outdated")*/ + " from:" + ((_from) ? "set" : "NULL") + + " from2:" + ((_from2) ? "set" : "NULL") + " restricted:" + (isNRestricted() ? "N" : "-") + (isSRestricted() ? "S" : "-") + (isERestricted() ? "E" : "-") @@ -982,7 +1447,7 @@ namespace Anabatic { } - DbU::Unit Vertex::getXMinUnionfrom () +/*DbU::Unit Vertex::getXMinUnionfrom () { if (_intervfrom){ if (hasValidStamp()){ @@ -994,6 +1459,7 @@ namespace Anabatic { return max(_intervfrom->getMin(), gcurr->getXMin()); } else { cdebug_log(112,0) << "[ERROR]: No FROM, wrong usage. 3" << endl; + return 0; } } else { cdebug_log(112,0) << "[ERROR]: No FROM, wrong usage. 2" << endl; @@ -1078,11 +1544,16 @@ namespace Anabatic { cdebug_log(112,0) << "[ERROR]: No FROM, wrong usage. 1" << endl; return 0; } + }*/ + + + void Vertex::clearFrom2 () + { + _from2 = NULL; + //if (_intervfrom2) _intervfrom2->destroy(); } - - Dijkstra::Dijkstra ( AnabaticEngine* anabatic ) : _anabatic (anabatic) , _vertexes () @@ -1470,21 +1941,32 @@ namespace Anabatic { _queue.dump(); Vertex* current = _queue.top(); - cdebug_log(111,0) << endl; - cdebug_log(111,0) << "[Current Vertex]: " << current << ", current->getConnexId() == _connectedsId):" << (current->getConnexId() == _connectedsId)<< ", (current->getConnexId() < 0): " << current->getConnexId() << endl; + cdebug_log(111,0) << endl << "[Current Vertex]: " << current << ", current->getConnexId() == _connectedsId):" << (current->getConnexId() == _connectedsId)<< ", (current->getConnexId() < 0): " << current->getConnexId() << endl; _queue.pop(); - if ( current->isAxisTarget() - and needAxisTarget() - ){ - unsetFlags(Mode::AxisTarget); - } else if ((current->getConnexId() == _connectedsId) or (current->getConnexId() < 0)) { + if ( current->isAxisTarget() and needAxisTarget()) unsetFlags(Mode::AxisTarget); + else if ((current->getConnexId() == _connectedsId) or (current->getConnexId() < 0)) { for ( Edge* edge : current->getGCell()->getEdges() ) { + cdebug_log(111,0) << endl << "===================================================================================" << endl << endl; if (edge == current->getFrom()) { cdebug_log(111,0) << "edge == current->getFrom()" << endl; continue; + } else { + cdebug_log(111,0) << "edge != current->getFrom()" << endl; } + if (current->getFrom2()){ + if (edge == current->getFrom2()) { + cdebug_log(111,0) << "edge == current->getFrom2()" << endl; + continue; + } else { + cdebug_log(111,0) << "edge != current->getFrom2(): " << current->getFrom2() << endl; + } + } else { + cdebug_log(111,0) << "current->getFrom2() = NULL" << endl; + } + + GCell* gneighbor = edge->getOpposite(current->getGCell()); GCell* gcurrent = current->getGCell(); Vertex* vneighbor = gneighbor->getObserver(GCell::Observable::Vertex); @@ -1493,77 +1975,148 @@ namespace Anabatic { cdebug_log(111,0) << "ConnectedsId" << endl; continue; } - if (not _searchArea.intersect(gneighbor->getBoundingBox())) { cdebug_log(111,0) << "not in _searchArea: " << _searchArea << ", gneighbor area: " << gneighbor->getBoundingBox() << endl; continue; } - cdebug_log(111,0) << endl << "===================================================================================" << endl << endl; - cdebug_log(111,0) << "| Net: " << _net << endl; - cdebug_log(111,0) << "| Curr: " << current; - if (current->getFrom()){ + + ////////////////////////////////////// DEBUG ////////////////////////////////////// + //cdebug_log(111,0) << endl << "===================================================================================" << endl << endl; + cdebug_log(111,0) << "| Net : " << _net << endl; + cdebug_log(111,0) << "| [Curr]: " << current; + if (current->getFrom()) { cdebug_log(111,0) << "| From: " << current->getFrom()->getOpposite(gcurrent) << endl; - } else { - cdebug_log(111,0) << endl; + current->getIntervFrom()->print(); } + else { cdebug_log(111,0) << endl;} + if (current->getFrom2()) { + cdebug_log(111,0) << "| FROM2: " << current->getFrom2()->getOpposite(gcurrent) << endl; + current->getIntervFrom2()->print(); + } + + cdebug_log(111,0) << "| Edge " << edge << endl; cdebug_log(111,0) << "+ Neighbor: " << vneighbor; - if ((vneighbor->getFrom() != NULL)&&(vneighbor->hasValidStamp())) {cdebug_log(111,0) << "| Neighbor getfrom:" << vneighbor->getFrom()->getOpposite( gneighbor ) << endl;} + if ((vneighbor->getFrom() != NULL)&&(vneighbor->hasValidStamp())) {cdebug_log(111,0) << "| Neighbor GETFROM:" << vneighbor->getFrom()->getOpposite( gneighbor ) << endl;} else {cdebug_log(111,0) << endl;} + /////////////////////////////////////////////////////////////////////////////////// - + // if has 2 from, 2 distances to calculate + //current->unsetFromFrom2(); + cdebug_log(111,0) << "Calc distance1" << endl; DbU::Unit distance = _distanceCb( current, vneighbor, edge ); - cdebug_log(111,0) << "Distance curr: " << DbU::getValueString(distance) << endl; - cdebug_log(111,0) << "Distance prev: " << DbU::getValueString(vneighbor->getDistance()) << endl; - if ( (distance == vneighbor->getDistance()) - and ( (!gcurrent->isMatrix())||(!gneighbor->isMatrix()) ) - ){ - cdebug_log(111,0) << "Distance EQUAL" << endl; + DbU::Unit distance2 = Vertex::unreachable; + bool isDistance2shorter = false; + if (current->getFrom2()) { + cdebug_log(111,0) << "HAS 2nd getfrom" << edge << endl; + current->setFrom2Mode(); + cdebug_log(111,0) << "Calc distance2" << endl; + distance2 = _distanceCb( current, vneighbor, edge ); + current->unsetFrom2Mode(); + cdebug_log(111,0) << "Distance1 curr: " << DbU::getValueString(distance) << endl; + cdebug_log(111,0) << "Distance2 curr: " << DbU::getValueString(distance2) << endl; + if (distance > distance2){ + cdebug_log(111,0) << "=> distance2 is shorter" << endl; + isDistance2shorter = true; + distance = distance2; + } else if (distance == distance2) { + cdebug_log(111,0) << "distance == distance2" << endl; + Point pcurr = current->getStartPathPoint(vneighbor); + current->setFrom2Mode(); + Point pcurr2 = current->getStartPathPoint(vneighbor); + current->unsetFrom2Mode(); + Point pnext = gneighbor->getCenter(); + if (calcDistance(pcurr, pnext) > calcDistance(pcurr2, pnext)) { + cdebug_log(111,0) << "=> distance2 is shorter" << endl; + isDistance2shorter = true; + distance = distance2; + } else { + cdebug_log(111,0) << "=> distance1 is shorter" << endl; + } + } else { + cdebug_log(111,0) << "=> distance1 is shorter" << endl; + } + } else { + cdebug_log(111,0) << "NO 2nd getfrom" << endl; + cdebug_log(111,0) << "Distance1 curr: " << DbU::getValueString(distance) << endl; + } + + //cdebug_log(111,0) << "Distance1 curr: " << DbU::getValueString(distance) << endl; + //cdebug_log(111,0) << "Distance2 curr: " << DbU::getValueString(distance2) << ", isDistance2shorter:" << isDistance2shorter << endl; + cdebug_log(111,0) << "Distance prev : " << DbU::getValueString(vneighbor->getDistance()) << endl; + + if ( (distance == vneighbor->getDistance()) and ((!gcurrent->isMatrix()) and (!gneighbor->isMatrix())) ){ + cdebug_log(111,0) << "[case: Distance EQUAL + SameSide]" << endl; cdebug_log(111,0) << "Previous getfrom:" << vneighbor->getFrom()->getOpposite( gneighbor ) << endl; GCell* gnext = vneighbor->getGCell(); GCell* gprev = vneighbor->getFrom()->getOpposite(gnext); Vertex* vprev = gprev->getObserver(GCell::Observable::Vertex); + + //Point pnext = Vertex::getNextPathPoint2( current, vneighbor ); + //Point pprev = Vertex::getNextPathPoint2( vprev, vneighbor ); + + //Point pnext = current->getNextPathPoint( current->getStartPathPoint(vneighbor), vneighbor ); + //Point pprev = vprev->getNextPathPoint ( vprev->getStartPathPoint(vneighbor), vneighbor ); + //Point ppond = _getPonderedPoint(); + //DbU::Unit distcurr = this->_getDistancetoRP(pnext); + //DbU::Unit distprev = this->_getDistancetoRP(pprev); + + //cdebug_log(111,0) << "Pcurrent: X:" << DbU::getValueString(pnext.getX()) << ", Y:" << DbU::getValueString(pnext.getY()) << endl; + //cdebug_log(111,0) << "Pprev : X:" << DbU::getValueString(pprev.getX()) << ", Y:" << DbU::getValueString(pprev.getY()) << endl; + //cdebug_log(111,0) << "distToTargets curr: " << DbU::getValueString(distcurr) << endl; + //cdebug_log(111,0) << "distToTargets prev: " << DbU::getValueString(distprev) << endl; - Point pnext = Vertex::getNextPathPoint2( current, vneighbor ); - Point pprev = Vertex::getNextPathPoint2( vprev, vneighbor ); - Point ppond = _getPonderedPoint(); - DbU::Unit distcurr = this->_getDistancetoRP(pnext); - DbU::Unit distprev = this->_getDistancetoRP(pprev); - - cdebug_log(111,0) << "Pcurrent: X:" << DbU::getValueString(pnext.getX()) << ", Y:" << DbU::getValueString(pnext.getY()) << endl; - cdebug_log(111,0) << "Pprev : X:" << DbU::getValueString(pprev.getX()) << ", Y:" << DbU::getValueString(pprev.getY()) << endl; - - cdebug_log(111,0) << "distToTargets curr: " << DbU::getValueString(distcurr) << endl; - cdebug_log(111,0) << "distToTargets prev: " << DbU::getValueString(distprev) << endl; - - if ( ( distcurr < distprev ) - || ( ( distcurr == distprev ) - && ( calcDistance(ppond, pnext) < calcDistance(ppond, pprev) ) - ) - ){ + if ((distance == vneighbor->getDistance()) and vneighbor->areSameSide(vprev, current)){ + cdebug_log(112,0) << "----------------------------" << endl; + cdebug_log(112,0) << "(distance == vneighbor->getDistance()) + sameSide => add create 2nd from" << endl; + cdebug_log(112,0) << "vneighbor: " << vneighbor << endl; + cdebug_log(112,0) << "curr: " << current << endl; + cdebug_log(112,0) << "prev: " << vprev << endl; + cdebug_log(112,0) << "----------------------------" << endl; + cdebug_log(111,0) << "[case: Other GetFROM]" << endl; + vneighbor->setFrom2 ( edge ); + //current->setFrom2Mode(); + vneighbor->setFrom2Mode(); + vneighbor->createIntervFrom2(); + vneighbor->setIntervals( current ); + //current->unsetFrom2Mode(); + vneighbor->unsetFrom2Mode(); + if (isDistance2shorter) { + vneighbor->setFromFrom2(); + cdebug_log(111,0) << "setFromFrom2: " << vneighbor << endl; + } + cdebug_log(111,0) << "Push BIS : (size:" << _queue.size() << ") " << vneighbor << endl; + vneighbor->getIntervFrom()->print(); + vneighbor->getIntervFrom2()->print(); + } /*else if ( ( distcurr < distprev ) + || (( distcurr == distprev ) && ( calcDistance(ppond, pnext) < calcDistance(ppond, pprev) )) + ){ _queue.erase( vneighbor ); - cdebug_log(111,0) << "BETTER GetFROM" << endl; + cdebug_log(111,0) << "case: BETTER GetFROM" << endl; vneighbor->setBranchId( current->getBranchId() ); vneighbor->setDistance( distance ); - //Point pathPoint = Vertex::getNextPathPoint( current, vneighbor ); - //vneighbor->setPathPoint( pathPoint.getX(), pathPoint.getY() ); - vneighbor->setFrom ( edge ); + if (isDistance2shorter) { + vneighbor->setFrom2( edge ); + vneighbor->setFromFrom2(); + cdebug_log(111,0) << "setFromFrom2: " << vneighbor << endl; + } else { + vneighbor->setFrom ( edge ); + } _queue.push( vneighbor ); - vneighbor->setIntervals( current ); cdebug_log(111,0) << "Push: (size:" << _queue.size() << ") " << vneighbor << endl; - } + }*/ + } else if ( ( (distance < vneighbor->getDistance()) and (distance != Vertex::unreachable) ) - or ( (distance == vneighbor->getDistance()) and (current->getBranchId() > vneighbor->getBranchId()) ) + // or ( (distance == vneighbor->getDistance()) and (current->getBranchId() > vneighbor->getBranchId()) ) ) { - if (vneighbor->getDistance() != Vertex::unreached) { - _queue.erase( vneighbor ); - } else { + if (vneighbor->getDistance() != Vertex::unreached) _queue.erase( vneighbor ); + else { if (not vneighbor->hasValidStamp()) { - cdebug_log(111,0) << "Distance FIRST" << endl; + cdebug_log(111,0) << "[case: Distance FIRST]" << endl; vneighbor->setConnexId( -1 ); vneighbor->setStamp ( _stamp ); vneighbor->setDegree ( 1 ); @@ -1571,15 +2124,23 @@ namespace Anabatic { vneighbor->unsetFlags(Vertex::AxisTarget); } } - - cdebug_log(111,0) << "Distance INF" << endl; + cdebug_log(111,0) << "[case: Distance INFERIOR]" << endl; + vneighbor->unsetFromFrom2(); + cdebug_log(111,0) << "unsetFromFrom2: " << vneighbor << endl; + vneighbor->clearFrom2(); vneighbor->setBranchId( current->getBranchId() ); vneighbor->setDistance( distance ); - vneighbor->setFrom ( edge ); + vneighbor->setFrom ( edge ); + if (isDistance2shorter) { + vneighbor->setFromFrom2(); + cdebug_log(111,0) << "setFromFrom2: " << vneighbor << endl; + } else { + cdebug_log(111,0) << "DON'T setFromFrom2: " << vneighbor << endl; + } _queue.push( vneighbor ); - vneighbor->setIntervals( current ); cdebug_log(111,0) << "Push: (size:" << _queue.size() << ") " << vneighbor << endl; + vneighbor->getIntervFrom()->print(); } } @@ -1611,15 +2172,24 @@ namespace Anabatic { { cdebug_log(112,1) << "Dijkstra::_traceback() " << _net << " branchId:" << _sources.size() << endl; - int branchId = _sources.size(); + int branchId = _sources.size(); _toSources( current, _connectedsId ); - bool isfirst = true; + bool isfirst = true; + bool useFrom2 = false; if (!current->getGCell()->isMatrix()){ GCell* gcurr = current->getGCell(); GCell* gprev = current->getFrom()->getOpposite(gcurr); Vertex* vprev = gprev->getObserver(GCell::Observable::Vertex); - Point pentry = Vertex::getNextPathPoint2( vprev, current ); + + Point pcurrent = vprev->getStartPathPoint(current); + //Point pentry = Vertex::getNextPathPoint2( vprev, current ); + Point pentry = vprev->getNextPathPoint( pcurrent, current ); + cdebug_log(112,0) << "current : " << gcurr << endl; + cdebug_log(112,0) << "previous: " << gprev << endl; + cdebug_log(112,0) << "pcurr : x: " << DbU::getValueString(pcurrent.getX()) << ", y: " << DbU::getValueString(pcurrent.getY()) << endl; + cdebug_log(112,0) << "pentry: x: " << DbU::getValueString(pentry.getX()) << ", y: " << DbU::getValueString(pentry.getY()) << endl; + cdebug_log(112,0) << "| " << current << " | " << endl; if (current->isH()){ @@ -1647,20 +2217,91 @@ namespace Anabatic { cdebug_log(112,0) << ", axis: " << DbU::getValueString(current->getIAxis()) << endl; } } - cdebug_log(112,0) << "isiSet: " << current->isiSet() << ", " << current << endl; + cdebug_log(112,0) << "isiSet: " << current->isiSet() << endl; } else { current = current->getPredecessor(); isfirst = false; + } + cdebug_log(112,0) << "[Start WHILE]" << endl; while ( current ) { + cdebug_log(112,0) << endl; cdebug_log(112,0) << "| " << current << " | " << endl; - if (!isfirst){ + if (!current->getGCell()->isMatrix()){ + if (!isfirst){ + current->incDegree(); + if (current->getConnexId() == _connectedsId) break; + Edge* from = NULL; + if (useFrom2) { + cdebug_log(112,0) << "USE FROM2: " << current->getFrom2() << endl; + current->setFrom(current->getFrom2()); + current->setIntervfrom(current->getPIMin2(), current->getPIMax2(), current->getPIAxis2()); + current->clearFrom2(); + } + from = current->getFrom(); + if (not from) break; + + current->setDistance( 0.0 ); + current->setConnexId( _connectedsId ); + current->setBranchId( branchId ); + _sources.insert( current ); + _queue.push( current ); + } else isfirst = false; + + if (!current->getGCell()->isMatrix()){ + if (current->getPredecessor() != NULL){ + cdebug_log(112,0) << "Predecessor() : " << current->getPredecessor() << endl; + cdebug_log(112,0) << "[Interval update]: min : " << DbU::getValueString(current->getPIMin()); + cdebug_log(112,0) << ", max : " << DbU::getValueString(current->getPIMax()); + cdebug_log(112,0) << ", axis: " << DbU::getValueString(current->getPIAxis()) << endl; + current->getPredecessor()->setInterv(current->getPIMin(), current->getPIMax(), current->getPIAxis()); + current->getIntervFrom()->print(); + //cdebug_log(112,0) << "isiSet: " << current->getPredecessor()->isiSet() << ", " << current->getPredecessor() << endl; + } + } + Vertex* next = NULL; + next = current->getPredecessor(); + + if( current->isFromFrom2()) { + cdebug_log(112,0) << "ISFROMFROM2: " << current << endl; + useFrom2 = true; + current->unsetFromFrom2(); + } else { + cdebug_log(112,0) << "ISNOT FROMFROM2" << endl; + useFrom2 = false; + } + current = next; + } else { current->incDegree(); if (current->getConnexId() == _connectedsId) break; - Edge* from = current->getFrom(); + Edge* from = current->getFrom(); + if (not from) break; + + current->setDistance( 0.0 ); + current->setConnexId( _connectedsId ); + current->setBranchId( branchId ); + _sources.insert( current ); + _queue.push( current ); + current = current->getPredecessor(); + } + + /*if (!isfirst){ + current->incDegree(); + if (current->getConnexId() == _connectedsId) break; + + Edge* from = NULL; + if (useFrom2) { + cdebug_log(112,0) << "USE FROM2: " << current->getFrom2() << ", " << current->getIntervFrom2() << endl; + + current->setFrom(current->getFrom2()); + current->setInterv(current->getPIMin2(), current->getPIMax2(), current->getPIAxis2()); + current->clearFrom2(); + } + from = current->getFrom(); + if (not from) break; current->setDistance( 0.0 ); @@ -1672,17 +2313,27 @@ namespace Anabatic { isfirst = false; } - if (!current->getGCell()->isMatrix()){ + if ((!current->getGCell()->isMatrix())&&(!first)){ if (current->getPredecessor() != NULL){ cdebug_log(112,0) << "[Interval update]: min : " << DbU::getValueString(current->getPIMin()); cdebug_log(112,0) << ", max : " << DbU::getValueString(current->getPIMax()); cdebug_log(112,0) << ", axis: " << DbU::getValueString(current->getPIAxis()) << endl; current->getPredecessor()->setInterv(current->getPIMin(), current->getPIMax(), current->getPIAxis()); - cdebug_log(112,0) << "isiSet: " << current->getPredecessor()->isiSet() << ", " << current->getPredecessor() << endl; + //cdebug_log(112,0) << "isiSet: " << current->getPredecessor()->isiSet() << ", " << current->getPredecessor() << endl; } } - - current = current->getPredecessor(); + Vertex* next = NULL; + next = current->getPredecessor(); + + if( current->isFromFrom2()) { + cdebug_log(112,0) << "ISFROMFROM2: " << current << endl; + useFrom2 = true; + current->unsetFromFrom2(); + } else { + cdebug_log(112,0) << "ISNOT FROMFROM2" << endl; + useFrom2 = false; + } + current = next;*/ } cdebug_tabw(112,-1); @@ -1790,7 +2441,9 @@ namespace Anabatic { cdebug_log(112,0) << "|| " << segment << endl; //cdebug_log(112,0) << "| " << "break (turn, branch or terminal)." << endl; + Vertex* stc = source; source = (target->getFrom()) ? target : NULL; + stc->clearFrom2(); } } diff --git a/anabatic/src/anabatic/Dijkstra.h b/anabatic/src/anabatic/Dijkstra.h index 15130df5..46fbb605 100644 --- a/anabatic/src/anabatic/Dijkstra.h +++ b/anabatic/src/anabatic/Dijkstra.h @@ -39,41 +39,20 @@ namespace Anabatic { // ------------------------------------------------------------------- -// Class : "Anabatic::Symmetry". - - class Symmetry +// Class : "Anabatic::GRAData". +/* + class GRAData { - public: - enum iFlag { None = 0 - , sHorizontal = (1<<0) - , sVertical = (1<<1) - , sCFound = (1<<2) - }; private: - Symmetry(unsigned int, DbU::Unit); - ~Symmetry(); + GRAData(); + ~GRAData(); public: - static Symmetry* create(unsigned int, DbU::Unit); + static GRAData* create(); - public: - unsigned int getType () const; - inline DbU::Unit getValue() const; - inline bool isCFound() const; - inline void setAsH(); - inline void setAsV(); - inline void setFound(); - - private: - unsigned int _flags; - DbU::Unit _value; - }; - - inline void Symmetry::setAsH () { _flags = ((_flags & ~(0x3)) | sHorizontal); } - inline void Symmetry::setAsV () { _flags = ((_flags & ~(0x3)) | sVertical ); } - inline void Symmetry::setFound () { _flags |= sCFound; } - inline DbU::Unit Symmetry::getValue () const { return _value; } - inline bool Symmetry::isCFound () const { return _flags & sCFound; } - + private: + IntervalC* _intervfrom; + IntervalC* _interv; + };*/ // ------------------------------------------------------------------- // Class : "Anabatic::IntervalC". @@ -93,6 +72,7 @@ namespace Anabatic { static IntervalC* create(); public: + void destroy (); void set ( DbU::Unit, DbU::Unit, DbU::Unit ); void setRange ( DbU::Unit, DbU::Unit ); void extendMin ( DbU::Unit ); @@ -146,6 +126,8 @@ namespace Anabatic { , ERestricted = (1<<2) , WRestricted = (1<<3) , AxisTarget = (1<<4) + , From2Mode = (1<<5) + , UseFromFrom2 = (1<<6) }; public: static DbU::Unit unreached; @@ -185,6 +167,7 @@ namespace Anabatic { inline void clearRps (); inline Contact* breakGoThrough ( Net* ); + //////////////////////////////////////// Analog inline bool isNorth ( const Vertex* ) const; inline bool isSouth ( const Vertex* ) const; inline bool isEast ( const Vertex* ) const; @@ -201,9 +184,7 @@ namespace Anabatic { inline void setSRestricted (); inline void setERestricted (); inline void setWRestricted (); - inline unsigned int getFlags () const; - inline DbU::Unit getXPath () const; - inline DbU::Unit getYPath () const; + //inline unsigned int getFlags () const; bool hasRP ( Net* ) const; bool hasVRP ( Net* ) const; bool hasHRP ( Net* ) const; @@ -213,36 +194,55 @@ namespace Anabatic { inline void setIAsH (); inline void setIAsV (); inline DbU::Unit getIAxis () const; - inline void setIAxis ( DbU::Unit ) ; - inline DbU::Unit getICenter () const; + //inline void setIAxis ( DbU::Unit ) ; + //inline DbU::Unit getICenter () const; inline DbU::Unit getIMax () const; inline DbU::Unit getIMin () const; - inline void setPIAsH (); - inline void setPIAsV (); + //inline void setPIAsH (); + //inline void setPIAsV (); inline DbU::Unit getPIAxis () const; - inline void setPIAxis ( DbU::Unit ) ; - inline DbU::Unit getPICenter () const; + //inline void setPIAxis ( DbU::Unit ) ; + //inline DbU::Unit getPICenter () const; inline DbU::Unit getPIMax () const; inline DbU::Unit getPIMin () const; bool isH () const; bool isV () const; inline bool isiSet () const; inline void setInterv ( DbU::Unit, DbU::Unit, DbU::Unit ); - inline void setIRange ( DbU::Unit, DbU::Unit ); - inline void setIRangeFrom ( DbU::Unit, DbU::Unit ); - inline void printInterval () const ; + inline void setIntervfrom ( DbU::Unit, DbU::Unit, DbU::Unit ); + //inline void setIRange ( DbU::Unit, DbU::Unit ); + //inline void setIRangeFrom ( DbU::Unit, DbU::Unit ); + //inline void printInterval () const ; void setIntervals ( Vertex* ); void resetIntervals (); - inline void setFlags ( unsigned int ); - inline bool isAxisTarget () const; - inline void unsetFlags ( unsigned int ); - inline void setAxisTarget (); - DbU::Unit getXMinUnionfrom (); - DbU::Unit getXMaxUnionfrom (); - DbU::Unit getYMinUnionfrom (); - DbU::Unit getYMaxUnionfrom (); + inline void setFlags ( unsigned int ); + inline bool isAxisTarget () const; + inline void unsetFlags ( unsigned int ); + inline void setAxisTarget (); + //DbU::Unit getXMinUnionfrom (); + //DbU::Unit getXMaxUnionfrom (); + //DbU::Unit getYMinUnionfrom (); + //DbU::Unit getYMaxUnionfrom (); + bool areSameSide ( const Vertex*, const Vertex* ) const; + Point getStartPathPoint ( const Vertex* next ) const; + Point getNextPathPoint ( Point, const Vertex* ) const; + void clearFrom2 (); + inline void setFrom2Mode (); + inline void unsetFrom2Mode (); + inline bool isFrom2Mode () const; + inline Edge* getFrom2 () const; + inline bool isFromFrom2 () const; + inline void setFromFrom2 () ; + inline void unsetFromFrom2 () ; + //inline Vertex* getPredecessor2 () const; + inline void setFrom2 ( Edge* ); + inline void createIntervFrom2 (); + inline DbU::Unit getPIMax2 () const; + inline DbU::Unit getPIMin2 () const; + inline DbU::Unit getPIAxis2 () const; + inline IntervalC* getIntervFrom2 () const; + inline IntervalC* getIntervFrom () const; - // Inspector support. string _getString () const; private: @@ -263,6 +263,8 @@ namespace Anabatic { unsigned int _flags; IntervalC* _intervfrom; IntervalC* _interv; + Edge* _from2; + IntervalC* _intervfrom2; }; @@ -279,8 +281,10 @@ namespace Anabatic { , _from (NULL) , _flags (NoRestriction) - , _intervfrom(IntervalC::create()) - , _interv (IntervalC::create()) + , _intervfrom (IntervalC::create()) + , _interv (IntervalC::create()) + , _from2 (NULL) + , _intervfrom2(NULL) { gcell->setObserver( GCell::Observable::Vertex, &_observer ); } @@ -336,32 +340,51 @@ namespace Anabatic { inline void Vertex::setSRestricted () { _flags |= SRestricted; } inline void Vertex::setERestricted () { _flags |= ERestricted; } inline void Vertex::setWRestricted () { _flags |= WRestricted; } - inline unsigned int Vertex::getFlags () const { return _flags; } +//inline unsigned int Vertex::getFlags () const { return _flags; } - inline void Vertex::setIAxis ( DbU::Unit axis ) { _interv->setAxis(axis); } +//inline void Vertex::setIAxis ( DbU::Unit axis ) { _interv->setAxis(axis); } inline DbU::Unit Vertex::getIAxis () const { return _interv->getAxis(); } inline void Vertex::setIAsH () { _interv->setAsH(); } inline void Vertex::setIAsV () { _interv->setAsV(); } - inline DbU::Unit Vertex::getICenter () const { return _interv->getCenter(); } +//inline DbU::Unit Vertex::getICenter () const { return _interv->getCenter(); } inline DbU::Unit Vertex::getIMax () const { return _interv->getMax(); } inline DbU::Unit Vertex::getIMin () const { return _interv->getMin(); } - inline void Vertex::setPIAxis ( DbU::Unit axis ) { _intervfrom->setAxis(axis); } +//inline void Vertex::setPIAxis ( DbU::Unit axis ) { _intervfrom->setAxis(axis); } inline DbU::Unit Vertex::getPIAxis () const { return _intervfrom->getAxis(); } - inline void Vertex::setPIAsH () { _intervfrom->setAsH(); } - inline void Vertex::setPIAsV () { _intervfrom->setAsV(); } - inline DbU::Unit Vertex::getPICenter() const { return _intervfrom->getCenter(); } +//inline void Vertex::setPIAsH () { _intervfrom->setAsH(); } +//inline void Vertex::setPIAsV () { _intervfrom->setAsV(); } +//inline DbU::Unit Vertex::getPICenter() const { return _intervfrom->getCenter(); } inline DbU::Unit Vertex::getPIMax () const { return _intervfrom->getMax(); } inline DbU::Unit Vertex::getPIMin () const { return _intervfrom->getMin(); } inline bool Vertex::isiSet () const { return _interv->isiSet(); } inline void Vertex::setInterv ( DbU::Unit min, DbU::Unit max, DbU::Unit axis ) { _interv->set(min, max, axis); } - inline void Vertex::setIRange ( DbU::Unit min, DbU::Unit max ) { _interv->setRange(min, max); } - inline void Vertex::setIRangeFrom( DbU::Unit min, DbU::Unit max ) { _intervfrom->setRange(min, max); } - inline void Vertex::printInterval() const { _interv->print(); } + inline void Vertex::setIntervfrom( DbU::Unit min, DbU::Unit max, DbU::Unit axis ) { _intervfrom->set(min, max, axis); } +//inline void Vertex::setIRange ( DbU::Unit min, DbU::Unit max ) { _interv->setRange(min, max); } +//inline void Vertex::setIRangeFrom( DbU::Unit min, DbU::Unit max ) { _intervfrom->setRange(min, max); } +//inline void Vertex::printInterval() const { _interv->print(); } inline void Vertex::setAxisTarget() { _flags |= AxisTarget; } inline bool Vertex::isAxisTarget () const { return (_flags & AxisTarget); } inline void Vertex::unsetFlags ( unsigned int mask ) { _flags &= ~mask; } + inline void Vertex::setFrom2Mode () { _flags |= Vertex::From2Mode; } + inline void Vertex::unsetFrom2Mode () { unsetFlags(Vertex::From2Mode); } + inline bool Vertex::isFrom2Mode () const { return (_flags & Vertex::From2Mode); } + inline Edge* Vertex::getFrom2 () const { return _from2; } + + inline void Vertex::setFromFrom2 () { _flags |= Vertex::UseFromFrom2; } + inline void Vertex::unsetFromFrom2 () { unsetFlags(Vertex::UseFromFrom2); } + inline bool Vertex::isFromFrom2 () const { return (_flags & Vertex::UseFromFrom2); } +//inline Vertex* Vertex::getPredecessor2 () const +//{ return (hasValidStamp() and _from2) ? _from2->getOpposite(_gcell)->getObserver(GCell::Observable::Vertex) : NULL; } + inline void Vertex::setFrom2 ( Edge* from ) { _from2=from; } + inline void Vertex::createIntervFrom2() { _intervfrom2 = IntervalC::create(); } + inline DbU::Unit Vertex::getPIMax2 () const { return _intervfrom2->getMax() ; } + inline DbU::Unit Vertex::getPIMin2 () const { return _intervfrom2->getMin() ; } + inline DbU::Unit Vertex::getPIAxis2 () const { return _intervfrom2->getAxis(); } + inline IntervalC* Vertex::getIntervFrom2 () const { return _intervfrom2; } + inline IntervalC* Vertex::getIntervFrom () const { return _intervfrom; } + // ------------------------------------------------------------------- // Class : "Anabatic::PriorityQueue". diff --git a/crlcore/etc/common/display.conf b/crlcore/etc/common/display.conf index 59a0ee07..7209b8e4 100644 --- a/crlcore/etc/common/display.conf +++ b/crlcore/etc/common/display.conf @@ -128,43 +128,43 @@ stylesTable = \ , (Drawing, 'spot' , { 'color':'White' , 'border':2, 'threshold':6.0*scale }) , (Drawing, 'ghost' , { 'color':'White' , 'border':1 }) , (Drawing, 'text.ruler' , { 'color':'White' , 'border':1, 'threshold':0.0 *scale }) - , (Drawing, 'text.instance' , { 'color':'White' , 'border':1, 'threshold':4.0 *scale }) - , (Drawing, 'text.reference', { 'color':'White' , 'border':1, 'threshold':20.0*scale }) + , (Drawing, 'text.instance' , { 'color':'White' , 'border':1, 'threshold':400.0 *scale }) + , (Drawing, 'text.reference', { 'color':'White' , 'border':1, 'threshold':200.0*scale }) , (Drawing, 'undef' , { 'color':'Violet' , 'border':0, 'pattern':'2244118822441188' }) # Active Layers. , (Group , 'Active Layers') - , (Drawing, 'nWell' , { 'color':'Tan' , 'pattern':'urgo.8' , 'border':1, 'threshold':1.50*scale }) - , (Drawing, 'pWell' , { 'color':'LightYellow', 'pattern':'urgo.8' , 'border':1, 'threshold':1.50*scale }) - , (Drawing, 'nImplant', { 'color':'LawnGreen' , 'pattern':'antihash0.8' , 'border':1, 'threshold':1.50*scale }) - , (Drawing, 'pImplant', { 'color':'Yellow' , 'pattern':'antihash0.8' , 'border':1, 'threshold':1.50*scale }) - , (Drawing, 'active' , { 'color':'White' , 'pattern':'antihash1.8' , 'border':1, 'threshold':1.50*scale }) - , (Drawing, 'poly' , { 'color':'Red' , 'pattern':'poids2.8' , 'border':1, 'threshold':1.50*scale }) - , (Drawing, 'poly2' , { 'color':poly2Color , 'pattern':'poids2.8' , 'border':1, 'threshold':1.50*scale }) + , (Drawing, 'nWell' , { 'color':'Tan' , 'pattern':'urgo.8' , 'border':1, 'threshold':0*scale }) + , (Drawing, 'pWell' , { 'color':'LightYellow', 'pattern':'urgo.8' , 'border':1, 'threshold':0*scale }) + , (Drawing, 'nImplant', { 'color':'LawnGreen' , 'pattern':'antihash0.8' , 'border':1, 'threshold':0*scale }) + , (Drawing, 'pImplant', { 'color':'Yellow' , 'pattern':'antihash0.8' , 'border':1, 'threshold':0*scale }) + , (Drawing, 'active' , { 'color':'White' , 'pattern':'antihash1.8' , 'border':1, 'threshold':0*scale }) + , (Drawing, 'poly' , { 'color':'Red' , 'pattern':'poids2.8' , 'border':1, 'threshold':0*scale }) + , (Drawing, 'poly2' , { 'color':poly2Color , 'pattern':'poids2.8' , 'border':1, 'threshold':0*scale }) # Routing Layers. , (Group , 'Routing Layers') #, (Drawing, 'metal1', { 'color':'Blue' , 'pattern':'light_antislash0.8', 'border':1, 'threshold':0.80*scale }) - , (Drawing, 'metal1', { 'color':'Blue' , 'pattern':'slash.8' , 'border':1, 'threshold':0.80*scale }) - , (Drawing, 'metal2', { 'color':'Aqua' , 'pattern':'poids4.8' , 'border':1, 'threshold':0.02*scale }) - , (Drawing, 'metcap', { 'color':'DarkTurquoise', 'pattern':'poids2.8' , 'border':2, 'threshold':0.02*scale }) - , (Drawing, 'metal3', { 'color':'LightPink' , 'pattern':'poids4.8' , 'border':1, 'threshold':0.02*scale }) - , (Drawing, 'metal4', { 'color':'Green' , 'pattern':'poids4.8' , 'border':1, 'threshold':0.02*scale }) - , (Drawing, 'metal5', { 'color':'Yellow' , 'pattern':'poids4.8' , 'border':1, 'threshold':0.02*scale }) - , (Drawing, 'metal6', { 'color':'Violet' , 'pattern':'poids4.8' , 'border':1, 'threshold':0.02*scale }) - , (Drawing, 'metal7', { 'color':'Red' , 'pattern':'poids4.8' , 'border':1, 'threshold':0.02*scale }) - , (Drawing, 'metal8', { 'color':'Blue' , 'pattern':'poids4.8' , 'border':1, 'threshold':0.02*scale }) + , (Drawing, 'metal1', { 'color':'Blue' , 'pattern':'slash.8' , 'border':1, 'threshold':00*scale }) + , (Drawing, 'metal2', { 'color':'Aqua' , 'pattern':'poids4.8' , 'border':1, 'threshold':0.0*scale }) + , (Drawing, 'metcap', { 'color':'DarkTurquoise', 'pattern':'poids2.8' , 'border':2, 'threshold':0.0*scale }) + , (Drawing, 'metal3', { 'color':'LightPink' , 'pattern':'poids4.8' , 'border':1, 'threshold':0.0*scale }) + , (Drawing, 'metal4', { 'color':'Green' , 'pattern':'poids4.8' , 'border':1, 'threshold':0.0*scale }) + , (Drawing, 'metal5', { 'color':'Yellow' , 'pattern':'poids4.8' , 'border':1, 'threshold':0.0*scale }) + , (Drawing, 'metal6', { 'color':'Violet' , 'pattern':'poids4.8' , 'border':1, 'threshold':0.0*scale }) + , (Drawing, 'metal7', { 'color':'Red' , 'pattern':'poids4.8' , 'border':1, 'threshold':0.0*scale }) + , (Drawing, 'metal8', { 'color':'Blue' , 'pattern':'poids4.8' , 'border':1, 'threshold':0.0*scale }) # Cuts (VIA holes). , (Group , 'Cuts (VIA holes)') - , (Drawing, 'cut0', { 'color':'0,150,150', 'threshold':1.50*scale }) - , (Drawing, 'cut1', { 'color':'Aqua' , 'threshold':0.80*scale }) - , (Drawing, 'cut2', { 'color':'LightPink', 'threshold':0.80*scale }) - , (Drawing, 'cut3', { 'color':'Green' , 'threshold':0.80*scale }) - , (Drawing, 'cut4', { 'color':'Yellow' , 'threshold':0.80*scale }) - , (Drawing, 'cut5', { 'color':'Violet' , 'threshold':0.80*scale }) - , (Drawing, 'cut6', { 'color':'Red' , 'threshold':0.80*scale }) - , (Drawing, 'cut7', { 'color':'Blue' , 'threshold':0.80*scale }) + , (Drawing, 'cut0', { 'color':'0,150,150', 'threshold':0*scale }) + , (Drawing, 'cut1', { 'color':'Aqua' , 'threshold':0.0*scale }) + , (Drawing, 'cut2', { 'color':'LightPink', 'threshold':0.0*scale }) + , (Drawing, 'cut3', { 'color':'Green' , 'threshold':0.0*scale }) + , (Drawing, 'cut4', { 'color':'Yellow' , 'threshold':0.0*scale }) + , (Drawing, 'cut5', { 'color':'Violet' , 'threshold':0.0*scale }) + , (Drawing, 'cut6', { 'color':'Red' , 'threshold':0.0*scale }) + , (Drawing, 'cut7', { 'color':'Blue' , 'threshold':0.0*scale }) # MIM6. , (Group , 'MIM6') @@ -192,7 +192,7 @@ stylesTable = \ , (Drawing, 'gmetalv' , { 'color':'200,200,255', 'pattern':'light_antihash1.8', 'border':1 }) , (Drawing, 'gcut' , { 'color':'255,255,190', 'border':1 }) , (Drawing, 'Anabatic::Edge' , { 'color':'255,255,190', 'pattern':'0000000000000000', 'border':4, 'threshold':0.02*scale }) - , (Drawing, 'Anabatic::GCell', { 'color':'255,255,190', 'pattern':'0000000000000000', 'border':4, 'threshold':0.10*scale }) + , (Drawing, 'Anabatic::GCell', { 'color':'128,128,128', 'pattern':'0000000000000000', 'border':4, 'threshold':0.10*scale }) ) # ---------------------------------------------------------------------- diff --git a/hurricane/src/viewer/CellImage.cpp b/hurricane/src/viewer/CellImage.cpp index 5c037d57..81556723 100644 --- a/hurricane/src/viewer/CellImage.cpp +++ b/hurricane/src/viewer/CellImage.cpp @@ -126,7 +126,7 @@ namespace Hurricane { _flags = flags; - int scale = 4 * Cfg::getParamEnumerate("viewer.printer.mode")->asInt(); + int scale = 80 * Cfg::getParamEnumerate("viewer.printer.mode")->asInt(); _drawingWidth = _cellWidget->width ()*scale; _drawingHeight = _cellWidget->height()*scale; From fdc6088ba68b1a25429a371f505d766925e56d5a Mon Sep 17 00:00:00 2001 From: EricLaoGitHub Date: Tue, 25 Apr 2017 18:06:53 +0200 Subject: [PATCH 03/30] - in Dijkstra.cpp .h: - Data management concerning Analog GCells optimized - Improvements of analog paths estimation: - Save intervals to memorize paths - Handle equal distance paths --- anabatic/src/Dijkstra.cpp | 2007 ++++++++++++------------------ anabatic/src/anabatic/Dijkstra.h | 335 ++--- 2 files changed, 966 insertions(+), 1376 deletions(-) diff --git a/anabatic/src/Dijkstra.cpp b/anabatic/src/Dijkstra.cpp index e3f8cfb6..d5d44d29 100644 --- a/anabatic/src/Dijkstra.cpp +++ b/anabatic/src/Dijkstra.cpp @@ -58,22 +58,31 @@ namespace Anabatic { _min = Vertex::unreached; _max = Vertex::unreached; _axis = Vertex::unreached; + _flags = 0; + } + + + IntervalC::IntervalC(IntervalC& i) + { + _min = i.getMin(); + _max = i.getMax(); + _axis = i.getAxis(); + setFlags(i.getFlags()); + } + + + IntervalC::IntervalC(const IntervalC& i) + { + _min = i.getMin(); + _max = i.getMax(); + _axis = i.getAxis(); + setFlags(i.getFlags()); } IntervalC::~IntervalC() {} - IntervalC* IntervalC::create() - { - return new IntervalC(); - } - - void IntervalC::destroy () - { - delete (this); - } - void IntervalC::set ( DbU::Unit min, DbU::Unit max, DbU::Unit axis ) { _min = min; @@ -108,9 +117,10 @@ namespace Anabatic { if (_max < vmax) _max = vmax; } + void IntervalC::print() const { - cerr << "[IntervalC]: typeH: " << isH() << ", typeV: " << isV() << ", min: " << DbU::getValueString(_min) << ", max:" << DbU::getValueString(_max) << ", axis:" << DbU::getValueString(_axis) << endl; + cdebug_log(112,0) << "[IntervalC]: min: " << DbU::getValueString(_min) << ", max:" << DbU::getValueString(_max) << ", axis:" << DbU::getValueString(_axis) << endl; } @@ -122,6 +132,37 @@ namespace Anabatic { _flags &= ~iSet; } +// ------------------------------------------------------------------- +// Class : "Anabatic::GRAData". + GRAData::GRAData () + : _intervfrom (IntervalC()) + , _interv (IntervalC()) + , _from2 (NULL) + , _intervfrom2 (IntervalC()) + {} + + + GRAData::~GRAData() {} + + + GRAData* GRAData::create() + { + return new GRAData(); + } + + + void GRAData::resetIntervals() + { + _interv.reset(); + _intervfrom.reset(); + } + + + void GRAData::clearFrom2 () + { + _from2 = NULL; + } + // ------------------------------------------------------------------- // Class : "Anabatic::Vertex". @@ -190,7 +231,7 @@ namespace Anabatic { } - bool Vertex::isRestricted ( const Vertex* v1, const Vertex* v2 ) + bool Vertex::isRestricted ( const Vertex* v1, const Vertex* v2, DbU::Unit hpitch, DbU::Unit vpitch ) { bool restricted = true; GCell* c1 = v1->getGCell(); @@ -209,34 +250,38 @@ namespace Anabatic { cerr << Error( "GCells are not side by side." ) << endl; return true; } - - if (restricted) return true; + + if ( (c1->getWidth() < hpitch) + ||(c1->getHeight() < vpitch) + ||(restricted) + ) return true; else { + restricted = true; // Check from GCell 2 if ( c2->isNorth(c1) ) { - if ( v2->isNRestricted() ) return true; - else return false; + if ( !v2->isNRestricted() ) restricted = false; } else if ( c2->isSouth(c1) ) { - if ( v2->isSRestricted() ) return true; - else return false; + if ( !v2->isSRestricted() ) restricted = false; } else if ( c2->isEast (c1) ) { - if ( v2->isERestricted() ) return true; - else return false; + if ( !v2->isERestricted() ) restricted = false; } else if ( c2->isWest (c1) ) { - if ( v2->isWRestricted() ) return true; - else return false; + if ( !v2->isWRestricted() ) restricted = false; } else { cerr << Error( "GCells are not side by side." ) << endl; return true; } + if ( (c2->getWidth() < hpitch) + ||(c2->getHeight() < vpitch) + ||(restricted) + ) return true; + else return false; } } Point Vertex::getNextPathPoint( Point pcurr, const Vertex* vnext ) const { - //cdebug_log(112,1) << "Point Dijkstra::getNextPathPoint( IntervalC* interv, IntervalC* intervfrom, Vertex* next )" << endl; - // done in vcurr + cdebug_log(112,1) << "Point Dijkstra::getNextPathPoint( Point pcurr, const Vertex* vnext )" << endl; if (vnext == NULL){ cdebug_tabw(112,-1); return Point(0,0); @@ -247,7 +292,6 @@ namespace Anabatic { return Point(vnext->getGCell()->getXCenter(), vnext->getGCell()->getYCenter()); } - //Point pcurr = getStartPathPoint(interv, intervfrom, next); GCell* gnext = vnext->getGCell(); GCell* gcurr = getGCell(); DbU::Unit x = 0; @@ -255,9 +299,9 @@ namespace Anabatic { if (vnext->isV()){ - //cdebug_log(112,0) << "Case next: Vertical: " << vnext->isiSet() << endl; //", d:" << vnext->getDistance() << endl; + cdebug_log(112,0) << "Case next: Vertical: " << vnext->isiSet() << endl; //", d:" << vnext->getDistance() << endl; if ((vnext->isiSet())&&(vnext->hasValidStamp())){ - //cdebug_log(112,0) << "Case set" << endl; + cdebug_log(112,0) << "Case set" << endl; x = vnext->getIAxis(); if (isNorth(vnext)) y = vnext->getIMin(); else if (isSouth(vnext)) y = vnext->getIMax(); @@ -267,7 +311,7 @@ namespace Anabatic { else y = pcurr.getY(); } else cdebug_log(112,0) << "[ERROR](Point Vertex::getNextPathPoint2(...) const: Something is wrong.1" << endl; } else { - //cdebug_log(112,0) << "Case not set" << endl; + cdebug_log(112,0) << "Case not set" << endl; if (isNorth(vnext)){ y = gcurr->getYMax(); if (pcurr.getX() < gnext->getXMin()) x = gnext->getXMin(); @@ -293,10 +337,10 @@ namespace Anabatic { } } else if (vnext->isH()) { - //cdebug_log(112,0) << "Case next: Horizontal: " << vnext->isiSet() << endl; //", d:" << vnext->getDistance() << endl; + cdebug_log(112,0) << "Case next: Horizontal: " << vnext->isiSet() << endl; //", d:" << vnext->getDistance() << endl; if ((vnext->isiSet())&&(vnext->hasValidStamp())){ - //cdebug_log(112,0) << "Case set" << endl; + cdebug_log(112,0) << "Case set" << endl; y = vnext->getIAxis(); if (isEast (vnext)) x = vnext->getIMin(); else if (isWest (vnext)) x = vnext->getIMax(); @@ -307,7 +351,7 @@ namespace Anabatic { } else cdebug_log(112,0) << "[ERROR](Point Vertex::getNextPathPoint2(...) const: Something is wrong.3" << endl; } else { - //cdebug_log(112,0) << "Case not set" << endl; + cdebug_log(112,0) << "Case not set" << endl; if (isNorth(vnext)){ y = gcurr->getYMax(); if (pcurr.getX() < gnext->getXMin()) x = gnext->getXMin(); @@ -334,7 +378,7 @@ namespace Anabatic { } else { cdebug_log(112,0) << "[ERROR](Point Vertex::getNextPathPoint2(...) const: Something is wrong.5" << endl; } - //cdebug_tabw(112,-1); + cdebug_tabw(112,-1); return Point(x,y); } @@ -343,152 +387,102 @@ namespace Anabatic { { cdebug_log(112,1) << "Point Vertex::getStartPathPoint( const Vertex* next ) const:" << this << endl; - GCell* gcurr = getGCell(); - GCell* gnext = next->getGCell(); - DbU::Unit x = 0; - DbU::Unit y = 0; - - IntervalC* interv = _interv; - IntervalC* intervfrom = NULL; - /*GCell* gprev = NULL; - if (isFrom2Mode()){ - cdebug_log(112,0) << "UseFrom2Mode" << endl; - intervfrom = _intervfrom2; - if (_from2) gprev = _from2->getOpposite(gcurr); - } else { - cdebug_log(112,0) << "UseFrom1Mode" << endl; - intervfrom = _intervfrom; - if (_from) gprev = _from->getOpposite(gcurr); - } - Vertex* prev = gprev->getObserver(GCell::Observable::Vertex);*/ + GCell* gcurr = getGCell(); + GCell* gnext = next->getGCell(); + DbU::Unit x = 0; + DbU::Unit y = 0; + IntervalC intervfrom = IntervalC(); + if (_adata == NULL){ + cdebug_log(112,1) << "Point Vertex::getStartPathPoint( const Vertex* next ) const: GRAData unset." << endl; + return Point(0,0); + } if (gcurr->isDevice ()){ cdebug_log(112,0) << "Case device" << endl; if (isH()){ - cdebug_log(112,0) << "hinterval: " << DbU::getValueString(interv->getAxis()) << endl; - y = interv->getAxis(); - if ((gnext->getXMax() < interv->getMin())||(isWest (next))) x = interv->getMin(); - else if ((gnext->getXMin() > interv->getMax())||(isEast (next))) x = interv->getMax(); - else x = (max(gnext->getXMin(), interv->getMin())+min(gnext->getXMax(), interv->getMax()))/2; + cdebug_log(112,0) << "hinterval: " << DbU::getValueString(getIAxis()) << endl; + y = getIAxis(); + if ((gnext->getXMax() < getIMin())||(isWest (next))) x = getIMin(); + else if ((gnext->getXMin() > getIMax())||(isEast (next))) x = getIMax(); + else x = (max(gnext->getXMin(), getIMin())+min(gnext->getXMax(), getIMax()))/2; } else if (isV()){ cdebug_log(112,0) << "vinterval" << endl; - x = interv->getAxis(); - if ((gnext->getYMax() < interv->getMin())||(isSouth(next))) y = interv->getMin(); - else if ((gnext->getYMin() > interv->getMax())||(isNorth(next))) y = interv->getMax(); - else y = (max(gnext->getYMin(), interv->getMin())+min(gnext->getYMax(), interv->getMax()))/2 ; + x = getIAxis(); + if ((gnext->getYMax() < getIMin())||(isSouth(next))) y = getIMin(); + else if ((gnext->getYMin() > getIMax())||(isNorth(next))) y = getIMax(); + else y = (max(gnext->getYMin(), getIMin())+min(gnext->getYMax(), getIMax()))/2 ; } else { - cdebug_log(112,0) << "[ERROR](Point Vertex::getPathPoint( Vertex * vertex ) const: Something is wrong." << endl; + cdebug_log(112,0) << "[ERROR](Point Vertex::getStartPathPoint( const Vertex * next ) const: Something is wrong." << endl; cdebug_tabw(112,-1); return Point(0,0); } } else if (isH()) { - cdebug_log(112,0) << "Case horizontal: " << isiSet() << endl; - GCell* gprev = NULL; - if (isFrom2Mode()){ - cdebug_log(112,0) << "UseFrom2Mode" << endl; - intervfrom = _intervfrom2; - if (_from2) gprev = _from2->getOpposite(gcurr); - } else { - cdebug_log(112,0) << "UseFrom1Mode" << endl; - intervfrom = _intervfrom; - if (_from) gprev = _from->getOpposite(gcurr); - } + cdebug_log(112,0) << "Case horizontal: " << isiSet() << endl; + GCell* gprev = getGPrev(Vertex::From2Mode); + intervfrom = getIntervFrom(From2Mode); Vertex* prev = gprev->getObserver(GCell::Observable::Vertex); cdebug_log(112,0) << "PREV: " << prev << " "; - intervfrom->print(); - - + intervfrom.print(); + if (isiSet()){ cdebug_log(112,0) << "isiSet: "; - interv->print(); - y = interv->getAxis(); - if ((gnext->getXMax() < interv->getMin())||(isWest (next))) x = interv->getMin(); - else if ((gnext->getXMin() > interv->getMax())||(isEast (next))) x = interv->getMax(); - else x = (max(gnext->getXMin(), interv->getMin())+min(gnext->getXMax(), interv->getMax()))/2; + printInterv(); + y = getIAxis(); + if ((gnext->getXMax() < getIMin())||(isWest (next))) x = getIMin(); + else if ((gnext->getXMin() > getIMax())||(isEast (next))) x = getIMax(); + else x = (max(gnext->getXMin(), getIMin())+min(gnext->getXMax(), getIMax()))/2; } else { if (prev->isH()){ cdebug_log(112,0) << "prev is H" << endl; - if (gnext->getXMax() < intervfrom->getMin()) x = intervfrom->getMin(); - else if (gnext->getXMin() > intervfrom->getMax()) x = intervfrom->getMax(); - else x = (max(gnext->getXMin(), intervfrom->getMin())+min(gnext->getXMax(), intervfrom->getMax()))/2; + if (gnext->getXMax() < intervfrom.getMin()) x = intervfrom.getMin(); + else if (gnext->getXMin() > intervfrom.getMax()) x = intervfrom.getMax(); + else x = (max(gnext->getXMin(), intervfrom.getMin())+min(gnext->getXMax(), intervfrom.getMax()))/2; if (isNorth(prev)) y = gcurr->getYMax(); else if (isSouth(prev)) y = gcurr->getYMin(); - else y = intervfrom->getAxis(); - - /*if (isNorth(prev)){ - x = (max(intervfrom->getMin(), gcurr->getXMin())+min(intervfrom->getMax(), gcurr->getXMax()))/2 ; - y = gcurr->getYMax(); - } else if (isSouth(prev)){ - x = (max(intervfrom->getMin(), gcurr->getXMin())+min(intervfrom->getMax(), gcurr->getXMax()))/2 ; - y = gcurr->getYMin(); - } else if (isWest (prev)){ - x = gcurr->getXMin(); - y = intervfrom->getAxis(); - } else if (isEast (prev)){ - x = gcurr->getXMax(); - y = intervfrom->getAxis(); - } else { - cdebug_log(112,0) << "[ERROR](Point Vertex::getPathPoint( Vertex * vertex ) const: Something is wrong." << endl; - cdebug_tabw(112,-1); - return Point(0,0); - }*/ + else y = intervfrom.getAxis(); } else if (prev->isV()){ cdebug_log(112,0) << "prev is V" << endl; if (isNorth(prev)){ - cdebug_log(112,0) << "1" << endl; - x = intervfrom->getAxis(); + //cdebug_log(112,0) << "1" << endl; + x = intervfrom.getAxis(); y = gcurr->getYMax(); } else if (isSouth(prev)){ - cdebug_log(112,0) << "2" << endl; - x = intervfrom->getAxis(); + //cdebug_log(112,0) << "2" << endl; + x = intervfrom.getAxis(); y = gcurr->getYMin(); } else if (isWest (prev)){ - cdebug_log(112,0) << "3" << endl; + //cdebug_log(112,0) << "3" << endl; x = gcurr->getXMin(); if (isNorth(next)){ - if (intervfrom->getMax() > gcurr->getYMax()) y = gcurr->getYMax(); - else y = intervfrom->getMax(); + if (intervfrom.getMax() > gcurr->getYMax()) y = gcurr->getYMax(); + else y = intervfrom.getMax(); } else if (isSouth(next)){ - if (intervfrom->getMin() < gcurr->getYMin()) y = gcurr->getYMin(); - else y = intervfrom->getMin(); + if (intervfrom.getMin() < gcurr->getYMin()) y = gcurr->getYMin(); + else y = intervfrom.getMin(); } else { // East side - if ( intervfrom->getMin() < gcurr->getYMin() ){ y = gcurr->getYMin(); - } else if ( intervfrom->getMax() > gcurr->getYMax() ){ y = gcurr->getYMax(); - } else { y = (intervfrom->getMin() + intervfrom->getMax())/2 ; + if ( intervfrom.getMin() < gcurr->getYMin() ){ y = gcurr->getYMin(); + } else if ( intervfrom.getMax() > gcurr->getYMax() ){ y = gcurr->getYMax(); + } else { y = (intervfrom.getMin() + intervfrom.getMax())/2 ; } } - /*if ( intervfrom->getMin() > gcurr->getYMax() ){ - y = gcurr->getYMax(); - } else if ( intervfrom->getMax() < gcurr->getYMin() ){ - y = gcurr->getYMin(); - } else { - y = (max(intervfrom->getMin(), gcurr->getYMin())+min(intervfrom->getMax(), gcurr->getYMax()))/2 ; - }*/ } else if (isEast (prev)){ - cdebug_log(112,0) << "4" << endl; + //cdebug_log(112,0) << "4" << endl; x = gcurr->getXMax(); if (isNorth(next)){ - if (intervfrom->getMax() > gcurr->getYMax()) y = gcurr->getYMax(); - else y = intervfrom->getMax(); + if (intervfrom.getMax() > gcurr->getYMax()) y = gcurr->getYMax(); + else y = intervfrom.getMax(); } else if (isSouth(next)){ - if (intervfrom->getMin() < gcurr->getYMin()) y = gcurr->getYMin(); - else y = intervfrom->getMin(); + if (intervfrom.getMin() < gcurr->getYMin()) y = gcurr->getYMin(); + else y = intervfrom.getMin(); } else { // West side - if ( intervfrom->getMin() < gcurr->getYMin() ){ y = gcurr->getYMin(); - } else if ( intervfrom->getMax() > gcurr->getYMax() ){ y = gcurr->getYMax(); - } else { y = (intervfrom->getMin() + intervfrom->getMax())/2 ; + if ( intervfrom.getMin() < gcurr->getYMin() ){ y = gcurr->getYMin(); + } else if ( intervfrom.getMax() > gcurr->getYMax() ){ y = gcurr->getYMax(); + } else { y = (intervfrom.getMin() + intervfrom.getMax())/2 ; } } - /*if ( intervfrom->getMin() > gcurr->getYMax() ){ - y = gcurr->getYMax(); - } else if ( intervfrom->getMax() < gcurr->getYMin() ){ - y = gcurr->getYMin(); - } else { - y = (max(intervfrom->getMin(), gcurr->getYMin())+min(intervfrom->getMax(), gcurr->getYMax()))/2 ; - }*/ } else { cdebug_log(112,0) << "[ERROR](Point Vertex::getStartPathPoint() const: Something is wrong." << endl; cdebug_tabw(112,-1); @@ -503,35 +497,25 @@ namespace Anabatic { } } else if (isV()) { cdebug_log(112,0) << "Case vertical: " << isiSet() << endl; - GCell* gprev = NULL; - if (isFrom2Mode()){ - cdebug_log(112,0) << "UseFrom2Mode" << endl; - intervfrom = _intervfrom2; - if (_from2) gprev = _from2->getOpposite(gcurr); - } else { - cdebug_log(112,0) << "UseFrom1Mode" << endl; - intervfrom = _intervfrom; - if (_from) gprev = _from->getOpposite(gcurr); - } + //GCell* gprev = NULL; + GCell* gprev = getGPrev(Vertex::From2Mode); + intervfrom = getIntervFrom(From2Mode); Vertex* prev = gprev->getObserver(GCell::Observable::Vertex); cdebug_log(112,0) << "PREV: " << prev << " "; - intervfrom->print(); + intervfrom.print(); if (isiSet()){ cdebug_log(112,0) << "isiSet: "; - interv->print(); - x = interv->getAxis(); - if ((gnext->getYMax() <= interv->getMin())||(isSouth(next))){ - y = interv->getMin(); - cdebug_log(112,0) << "1" << endl; + printInterv(); + x = getIAxis(); + if ((gnext->getYMax() <= getIMin())||(isSouth(next))){ + y = getIMin(); } - else if ((gnext->getYMin() >= interv->getMax())||(isNorth(next))){ - y = interv->getMax(); - cdebug_log(112,0) << "2" << endl; + else if ((gnext->getYMin() >= getIMax())||(isNorth(next))){ + y = getIMax(); } else { - y = (max(gnext->getYMin(), interv->getMin())+min(gnext->getYMax(), interv->getMax()))/2 ; - cdebug_log(112,0) << "3" << endl; + y = (max(gnext->getYMin(), getIMin())+min(gnext->getYMax(), getIMax()))/2 ; } } else { if (prev->isH()){ @@ -539,54 +523,37 @@ namespace Anabatic { if (isNorth(prev)){ y = gcurr->getYMax(); if (isNorth(next)){ - if (intervfrom->getMax() > gcurr->getXMax()) x = gcurr->getXMax(); - else x = intervfrom->getMax(); + if (intervfrom.getMax() > gcurr->getXMax()) x = gcurr->getXMax(); + else x = intervfrom.getMax(); } else if (isSouth(next)){ - if (intervfrom->getMin() < gcurr->getXMin()) x = gcurr->getXMin(); - else x = intervfrom->getMin(); + if (intervfrom.getMin() < gcurr->getXMin()) x = gcurr->getXMin(); + else x = intervfrom.getMin(); } else { // West side - if ( intervfrom->getMin() < gcurr->getXMin() ){ x = gcurr->getXMin(); - } else if ( intervfrom->getMax() > gcurr->getXMax() ){ x = gcurr->getXMax(); - } else { x = (intervfrom->getMin() + intervfrom->getMax())/2 ; + if ( intervfrom.getMin() < gcurr->getXMin() ){ x = gcurr->getXMin(); + } else if ( intervfrom.getMax() > gcurr->getXMax() ){ x = gcurr->getXMax(); + } else { x = (intervfrom.getMin() + intervfrom.getMax())/2 ; } } - /*y = gcurr->getYMax(); - if ( intervfrom->getMin() > gcurr->getXMax() ){ - x = gcurr->getXMax(); - } else if ( intervfrom->getMax() < gcurr->getXMin() ){ - x = gcurr->getXMin(); - } else { - x = (max(intervfrom->getMin(), gcurr->getXMin())+min(intervfrom->getMax(), gcurr->getXMax()))/2 ; - }*/ } else if (isSouth(prev)){ y = gcurr->getYMin(); if (isEast(next)){ - if (intervfrom->getMax() > gcurr->getXMax()) x = gcurr->getXMax(); - else x = intervfrom->getMax(); + if (intervfrom.getMax() > gcurr->getXMax()) x = gcurr->getXMax(); + else x = intervfrom.getMax(); } else if (isWest(next)){ - if (intervfrom->getMin() < gcurr->getXMin()) x = gcurr->getXMin(); - else x = intervfrom->getMin(); + if (intervfrom.getMin() < gcurr->getXMin()) x = gcurr->getXMin(); + else x = intervfrom.getMin(); } else { // Northside - if ( intervfrom->getMin() < gcurr->getXMin() ){ x = gcurr->getXMin(); - } else if ( intervfrom->getMax() > gcurr->getXMax() ){ x = gcurr->getXMax(); - } else { x = (intervfrom->getMin() + intervfrom->getMax())/2 ; + if ( intervfrom.getMin() < gcurr->getXMin() ){ x = gcurr->getXMin(); + } else if ( intervfrom.getMax() > gcurr->getXMax() ){ x = gcurr->getXMax(); + } else { x = (intervfrom.getMin() + intervfrom.getMax())/2 ; } } - - /*y = gcurr->getYMin(); - if ( intervfrom->getMin() > gcurr->getXMax() ){ - x = gcurr->getXMax(); - } else if ( intervfrom->getMax() < gcurr->getXMin() ){ - x = gcurr->getXMin(); - } else { - x = (max(intervfrom->getMin(), gcurr->getXMin())+min(intervfrom->getMax(), gcurr->getXMax()))/2 ; - }*/ } else if (isWest (prev)){ x = gcurr->getXMin(); - y = intervfrom->getAxis(); + y = intervfrom.getAxis(); } else if (isEast (prev)){ x = gcurr->getXMax(); - y = intervfrom->getAxis(); + y = intervfrom.getAxis(); } else { cdebug_log(112,0) << "[ERROR](Point Vertex::getStartPathPoint() const: Something is wrong." << endl; cdebug_tabw(112,-1); @@ -594,31 +561,14 @@ namespace Anabatic { } } else if (prev->isV()){ cdebug_log(112,0) << "prev is V" << endl; - if (gnext->getYMax() < intervfrom->getMin()) { y = intervfrom->getMin(); - } else if (gnext->getYMin() > intervfrom->getMax()){ y = intervfrom->getMax(); - } else{ y = (max(gnext->getYMin(), intervfrom->getMin())+min(gnext->getYMax(), intervfrom->getMax()))/2; + if (gnext->getYMax() < intervfrom.getMin()) { y = intervfrom.getMin(); + } else if (gnext->getYMin() > intervfrom.getMax()){ y = intervfrom.getMax(); + } else{ y = (max(gnext->getYMin(), intervfrom.getMin())+min(gnext->getYMax(), intervfrom.getMax()))/2; } if (isEast(prev)) x = gcurr->getXMax(); else if (isWest(prev)) x = gcurr->getXMin(); - else x = intervfrom->getAxis(); - - /*if (isNorth(prev)){ - x = intervfrom->getAxis(); - y = gcurr->getYMax(); - } else if (isSouth(prev)){ - x = intervfrom->getAxis(); - y = gcurr->getYMin(); - } else if (isWest (prev)){ - x = gcurr->getXMin(); - y = (max(intervfrom->getMin(), gcurr->getYMin())+min(intervfrom->getMax(), gcurr->getYMax()))/2 ; - } else if (isEast (prev)){ - x = gcurr->getXMax(); - y = (max(intervfrom->getMin(), gcurr->getYMin())+min(intervfrom->getMax(), gcurr->getYMax()))/2 ; - } else { - cdebug_log(112,0) << "[ERROR](Point Vertex::getStartPathPoint() const: Something is wrong." << endl; - return Point(0,0); - }*/ + else x = intervfrom.getAxis(); } else { cdebug_log(112,0) << "[ERROR](Point Vertex::getStartPathPoint() const: Something is wrong." << endl; cdebug_tabw(112,-1); @@ -635,283 +585,10 @@ namespace Anabatic { } - Point Vertex::getNextPathPoint2( const Vertex* vcurr, const Vertex* vnext ) - { - //cdebug_log(112,0) << "Point Dijkstra::getNextPathPoint( const Vertex* current, const Vertex* next )" << endl; - if ((vcurr == NULL) || (vnext == NULL)){ - //cdebug_log(112,0) << "[ERROR](Point Dijkstra::_getNextPathPoint( const Vertex*, const Vertex* )): Unvalid NULL argument."<< endl; - return Point(0,0); - } - - if (vnext->getGCell()->isMatrix()) { - return Point(vnext->getGCell()->getXCenter(), vnext->getGCell()->getYCenter()); - } - - Point pcurr = vcurr->getPathPoint(vnext); - GCell* gnext = vnext->getGCell(); - GCell* gcurr = vcurr->getGCell(); - DbU::Unit x = 0; - DbU::Unit y = 0; - - - if (vnext->isV()){ - //cdebug_log(112,0) << "Case next: Vertical: " << vnext->isiSet() << endl; //", d:" << vnext->getDistance() << endl; - if ((vnext->isiSet())&&(vnext->hasValidStamp())){ - //cdebug_log(112,0) << "Case set" << endl; - x = vnext->getIAxis(); - if (vcurr->isNorth(vnext)) y = vnext->getIMin(); - else if (vcurr->isSouth(vnext)) y = vnext->getIMax(); - else if ((vcurr->isWest(vnext))||(vcurr->isEast(vnext))) { - if ( pcurr.getY() > vnext->getIMax() ) y = vnext->getIMax(); - else if ( pcurr.getY() < vnext->getIMin() ) y = vnext->getIMin(); - else y = pcurr.getY(); - } else cdebug_log(112,0) << "[ERROR](Point Vertex::getNextPathPoint2(...) const: Something is wrong.1" << endl; - } else { - //cdebug_log(112,0) << "Case not set" << endl; - if (vcurr->isNorth(vnext)){ - y = gcurr->getYMax(); - if (pcurr.getX() < gnext->getXMin()) x = gnext->getXMin(); - else if (pcurr.getX() > gnext->getXMax()) x = gnext->getXMax(); - else x = pcurr.getX(); - } else if (vcurr->isSouth(vnext)){ - y = gcurr->getYMin(); - if (pcurr.getX() < gnext->getXMin()) x = gnext->getXMin(); - else if (pcurr.getX() > gnext->getXMax()) x = gnext->getXMax(); - else x = pcurr.getX(); - } else if (vcurr->isWest(vnext)){ - x = gcurr->getXMin(); - if (pcurr.getY() < gnext->getYMin()) y = gnext->getYMin(); - else if (pcurr.getY() > gnext->getYMax()) y = gnext->getYMax(); - else y = pcurr.getY(); - - } else if (vcurr->isEast(vnext)){ - x = gcurr->getXMax(); - if (pcurr.getY() < gnext->getYMin()) y = gnext->getYMin(); - else if (pcurr.getY() > gnext->getYMax()) y = gnext->getYMax(); - else y = pcurr.getY(); - } else cdebug_log(112,0) << "[ERROR](Point Vertex::getNextPathPoint2(...) const: Something is wrong.2" << endl; - } - - } else if (vnext->isH()) { - //cdebug_log(112,0) << "Case next: Horizontal: " << vnext->isiSet() << endl; //", d:" << vnext->getDistance() << endl; - - if ((vnext->isiSet())&&(vnext->hasValidStamp())){ - //cdebug_log(112,0) << "Case set" << endl; - y = vnext->getIAxis(); - if (vcurr->isEast (vnext)) x = vnext->getIMin(); - else if (vcurr->isWest (vnext)) x = vnext->getIMax(); - else if ((vcurr->isNorth(vnext))||(vcurr->isSouth(vnext))) { - if ( pcurr.getX() > vnext->getIMax() ) x = vnext->getIMax(); - else if ( pcurr.getX() < vnext->getIMin() ) x = vnext->getIMin(); - else x = pcurr.getX(); - } else cdebug_log(112,0) << "[ERROR](Point Vertex::getNextPathPoint2(...) const: Something is wrong.3" << endl; - - } else { - //cdebug_log(112,0) << "Case not set" << endl; - if (vcurr->isNorth(vnext)){ - y = gcurr->getYMax(); - if (pcurr.getX() < gnext->getXMin()) x = gnext->getXMin(); - else if (pcurr.getX() > gnext->getXMax()) x = gnext->getXMax(); - else x = pcurr.getX(); - } else if (vcurr->isSouth(vnext)){ - y = gcurr->getYMin(); - if (pcurr.getX() < gnext->getXMin()) x = gnext->getXMin(); - else if (pcurr.getX() > gnext->getXMax()) x = gnext->getXMax(); - else x = pcurr.getX(); - } else if (vcurr->isWest(vnext)){ - x = gcurr->getXMin(); - if (pcurr.getY() < gnext->getYMin()) y = gnext->getYMin(); - else if (pcurr.getY() > gnext->getYMax()) y = gnext->getYMax(); - else y = pcurr.getY(); - - } else if (vcurr->isEast(vnext)){ - x = gcurr->getXMax(); - if (pcurr.getY() < gnext->getYMin()) y = gnext->getYMin(); - else if (pcurr.getY() > gnext->getYMax()) y = gnext->getYMax(); - else y = pcurr.getY(); - } else cdebug_log(112,0) << "[ERROR](Point Vertex::getNextPathPoint2(...) const: Something is wrong.4" << endl; - } - } else { - cdebug_log(112,0) << "[ERROR](Point Vertex::getNextPathPoint2(...) const: Something is wrong.5" << endl; - } - return Point(x,y); - } - - - Point Vertex::getPathPoint( const Vertex* next ) const - { - cdebug_log(112,0) << "Point Vertex::getPathPoint( const Vertex* next ) const:" << this << endl; - - GCell* gcurr = getGCell(); - GCell* gnext = next->getGCell(); - DbU::Unit x = 0; - DbU::Unit y = 0; - - - if (gcurr->isDevice ()){ - cdebug_log(112,0) << "Case device" << endl; - if (isH()){ - cdebug_log(112,0) << "hinterval: " << DbU::getValueString(_interv->getAxis()) << endl; - y = _interv->getAxis(); - if ((gnext->getXMax() < _interv->getMin())||(isWest (next))) x = _interv->getMin(); - else if ((gnext->getXMin() > _interv->getMax())||(isEast (next))) x = _interv->getMax(); - else x = (max(gnext->getXMin(), _interv->getMin())+min(gnext->getXMax(), _interv->getMax()))/2; - - } else if (isV()){ - cdebug_log(112,0) << "vinterval" << endl; - x = _interv->getAxis(); - if ((gnext->getYMax() < _interv->getMin())||(isSouth(next))) y = _interv->getMin(); - else if ((gnext->getYMin() > _interv->getMax())||(isNorth(next))) y = _interv->getMax(); - else y = (max(gnext->getYMin(), _interv->getMin())+min(gnext->getYMax(), _interv->getMax()))/2 ; - } else { - cdebug_log(112,0) << "[ERROR](Point Vertex::getPathPoint( Vertex * vertex ) const: Something is wrong." << endl; - return Point(0,0); - } - } else if (isH()) { - cdebug_log(112,0) << "Case horizontal: " << isiSet() << endl; - GCell* gprev = getFrom()->getOpposite(gcurr); - Vertex* prev = gprev->getObserver(GCell::Observable::Vertex); - if (isiSet()){ - cdebug_log(112,0) << "isiSet" << endl; - y = _interv->getAxis(); - if ((gnext->getXMax() < _interv->getMin())||(isWest (next))) x = _interv->getMin(); - else if ((gnext->getXMin() > _interv->getMax())||(isEast (next))) x = _interv->getMax(); - else x = (max(gnext->getXMin(), _interv->getMin())+min(gnext->getXMax(), _interv->getMax()))/2; - } else { - if (prev->isH()){ - cdebug_log(112,0) << "prev is H" << endl; - if (isNorth(prev)){ - x = (max(_intervfrom->getMin(), gcurr->getXMin())+min(_intervfrom->getMax(), gcurr->getXMax()))/2 ; - y = gcurr->getYMax(); - } else if (isSouth(prev)){ - x = (max(_intervfrom->getMin(), gcurr->getXMin())+min(_intervfrom->getMax(), gcurr->getXMax()))/2 ; - y = gcurr->getYMin(); - } else if (isWest (prev)){ - x = gcurr->getXMin(); - y = _intervfrom->getAxis(); - } else if (isEast (prev)){ - x = gcurr->getXMax(); - y = _intervfrom->getAxis(); - } else { - cdebug_log(112,0) << "[ERROR](Point Vertex::getPathPoint( Vertex * vertex ) const: Something is wrong." << endl; - return Point(0,0); - } - } else if (prev->isV()){ - cdebug_log(112,0) << "prev is V" << endl; - if (isNorth(prev)){ - //cdebug_log(112,0) << "1" << endl; - x = _intervfrom->getAxis(); - y = gcurr->getYMax(); - } else if (isSouth(prev)){ - //cdebug_log(112,0) << "2" << endl; - x = _intervfrom->getAxis(); - y = gcurr->getYMin(); - } else if (isWest (prev)){ - //cdebug_log(112,0) << "3" << endl; - x = gcurr->getXMin(); - if ( _intervfrom->getMin() > gcurr->getYMax() ){ - y = gcurr->getYMax(); - } else if ( _intervfrom->getMax() < gcurr->getYMin() ){ - y = gcurr->getYMin(); - } else { - y = (max(_intervfrom->getMin(), gcurr->getYMin())+min(_intervfrom->getMax(), gcurr->getYMax()))/2 ; - } - } else if (isEast (prev)){ - //cdebug_log(112,0) << "4" << endl; - x = gcurr->getXMax(); - if ( _intervfrom->getMin() > gcurr->getYMax() ){ - y = gcurr->getYMax(); - } else if ( _intervfrom->getMax() < gcurr->getYMin() ){ - y = gcurr->getYMin(); - } else { - y = (max(_intervfrom->getMin(), gcurr->getYMin())+min(_intervfrom->getMax(), gcurr->getYMax()))/2 ; - } - } else { - cdebug_log(112,0) << "[ERROR](Point Vertex::getPathPoint( Vertex * vertex ) const: Something is wrong." << endl; - return Point(0,0); - } - cdebug_log(112,0) << "x: " << DbU::getValueString(x) << ", y:" << DbU::getValueString(y) << endl; - } else { - cdebug_log(112,0) << "[ERROR](Point Vertex::getPathPoint( Vertex * vertex ) const: Something is wrong." << endl; - return Point(0,0); - } - } - } else if (isV()) { - cdebug_log(112,0) << "Case V: " << isiSet() << endl; - GCell* gprev = getFrom()->getOpposite(gcurr); - Vertex* prev = gprev->getObserver(GCell::Observable::Vertex); - if (isiSet()){ - cdebug_log(112,0) << "isiSet" << endl; - x = _interv->getAxis(); - if ((gnext->getYMax() < _interv->getMin())||(isSouth(next))) y = _interv->getMin(); - else if ((gnext->getYMin() > _interv->getMax())||(isNorth(next))) y = _interv->getMax(); - else y = (max(gnext->getYMin(), _interv->getMin())+min(gnext->getYMax(), _interv->getMax()))/2 ; - } else { - if (prev->isH()){ - cdebug_log(112,0) << "prev is H" << endl; - if (isNorth(prev)){ - y = gcurr->getYMax(); - if ( _intervfrom->getMin() > gcurr->getXMax() ){ - x = gcurr->getXMax(); - } else if ( _intervfrom->getMax() < gcurr->getXMin() ){ - x = gcurr->getXMin(); - } else { - x = (max(_intervfrom->getMin(), gcurr->getXMin())+min(_intervfrom->getMax(), gcurr->getXMax()))/2 ; - } - } else if (isSouth(prev)){ - y = gcurr->getYMin(); - if ( _intervfrom->getMin() > gcurr->getXMax() ){ - x = gcurr->getXMax(); - } else if ( _intervfrom->getMax() < gcurr->getXMin() ){ - x = gcurr->getXMin(); - } else { - x = (max(_intervfrom->getMin(), gcurr->getXMin())+min(_intervfrom->getMax(), gcurr->getXMax()))/2 ; - } - } else if (isWest (prev)){ - x = gcurr->getXMin(); - y = _intervfrom->getAxis(); - } else if (isEast (prev)){ - x = gcurr->getXMax(); - y = _intervfrom->getAxis(); - } else { - cdebug_log(112,0) << "[ERROR](Point Vertex::getPathPoint( Vertex * vertex ) const: Something is wrong." << endl; - return Point(0,0); - } - } else if (prev->isV()){ - cdebug_log(112,0) << "prev is V" << endl; - if (isNorth(prev)){ - x = _intervfrom->getAxis(); - y = gcurr->getYMax(); - } else if (isSouth(prev)){ - x = _intervfrom->getAxis(); - y = gcurr->getYMin(); - } else if (isWest (prev)){ - x = gcurr->getXMin(); - y = (max(_intervfrom->getMin(), gcurr->getYMin())+min(_intervfrom->getMax(), gcurr->getYMax()))/2 ; - } else if (isEast (prev)){ - x = gcurr->getXMax(); - y = (max(_intervfrom->getMin(), gcurr->getYMin())+min(_intervfrom->getMax(), gcurr->getYMax()))/2 ; - } else { - cdebug_log(112,0) << "[ERROR](Point Vertex::getPathPoint( Vertex * vertex ) const: Something is wrong." << endl; - return Point(0,0); - } - } else { - cdebug_log(112,0) << "[ERROR](Point Vertex::getPathPoint( Vertex * vertex ) const: Something is wrong." << endl; - return Point(0,0); - } - } - } else { - cdebug_log(112,0) << "[ERROR](Point Vertex::getPathPoint( Vertex * vertex ) const: Something is wrong." << endl; - return Point(0,0); - } - return Point(x,y); - } - - bool Vertex::isH() const { GCell* gcell = getGCell(); - if (gcell->isDevice()) return _interv->isH(); + if (gcell->isDevice()) return isiHorizontal(); else if (gcell->isHChannel()) return true; else if (gcell->isStrut()) return ((gcell->getWidth() > gcell->getHeight())||(gcell->getWidth() == gcell->getHeight())); else return false; @@ -921,7 +598,7 @@ namespace Anabatic { bool Vertex::isV() const { GCell* gcell = getGCell(); - if (gcell->isDevice()) return _interv->isV(); + if (gcell->isDevice()) return isiVertical(); else if (gcell->isVChannel()) return true; else if (gcell->isStrut()) return gcell->getWidth() < gcell->getHeight(); else return false; @@ -931,56 +608,19 @@ namespace Anabatic { void Vertex::setIntervals ( Vertex* vcurr ) { cdebug_log(112,1) << "!SETINTERVALS! ( Vertex* vcurr )" << endl; - //Point pcurr = vcurr->getPathPoint(this); Point pcurr; if (isFromFrom2()){ - vcurr->setFrom2Mode(); + vcurr->setFlags(Vertex::From2Mode); pcurr = vcurr->getStartPathPoint(this); - vcurr->unsetFrom2Mode(); + vcurr->unsetFlags(Vertex::From2Mode); } else { pcurr = vcurr->getStartPathPoint(this); } - //Point pnext = Vertex::getNextPathPoint2( vcurr, this ); Point pnext = vcurr->getNextPathPoint( pcurr, this ); cdebug_log(112,0) << "Pcurrent : X:" << DbU::getValueString(pcurr.getX()) << ", Y:" << DbU::getValueString(pcurr.getY()) << endl; cdebug_log(112,0) << "Pneighbour: X:" << DbU::getValueString(pnext.getX()) << ", Y:" << DbU::getValueString(pnext.getY()) << endl; DbU::Unit min, max, axis; - /*if (vcurr->isH()){ - if (isH()){ - if ((vcurr->isiSet())&&(vcurr->hasValidStamp())){ - } else { - } - } else if (isV()){ - if ((vcurr->isiSet())&&(vcurr->hasValidStamp())){ - } else { - } - } else { - cdebug_log(112,0) << "[ERROR](void Vertex::setIntervals(...)): Something is wrong." << endl; - return; - } - } else if (vcurr->isV()){ - if (isH()){ - if ((vcurr->isiSet())&&(vcurr->hasValidStamp())){ - } else { - } - } else if (isV()){ - if ((vcurr->isiSet())&&(vcurr->hasValidStamp())){ - } else { - } - } else { - cdebug_log(112,0) << "[ERROR](void Vertex::setIntervals(...)): Something is wrong." << endl; - return; - } - } else { - cdebug_log(112,0) << "[ERROR](void Vertex::setIntervals(...)): Something is wrong." << endl; - return; - }*/ - - - - - /////////////////////////// if (vcurr->isH()){ cdebug_log(112,0) << "case vcurr: Horizontal" << endl; if ((vcurr->isiSet())&&(vcurr->hasValidStamp())){ @@ -1003,11 +643,7 @@ namespace Anabatic { axis = pcurr.getY(); bool hh = false; if (vcurr->hasValidStamp() && (vcurr->getFrom() != NULL)){ - GCell* gcurr = vcurr->getGCell(); - GCell* gprev = vcurr->getFrom()->getOpposite(gcurr); - if (vcurr->getFrom2() != NULL){ - if (isFromFrom2()) gprev = vcurr->getFrom2()->getOpposite(gcurr); - } + GCell* gprev = vcurr->getGPrev(Vertex::UseFromFrom2); Vertex* vprev = gprev->getObserver(GCell::Observable::Vertex); if (vprev->isH()) { cdebug_log(112,0) << "----------------------------" << endl; @@ -1022,44 +658,29 @@ namespace Anabatic { if (hh){ GCell* gcurr = vcurr->getGCell(); GCell* gnext = getGCell(); - //Vertex* vcurr = gcurr->getObserver(GCell::Observable::Vertex); - IntervalC* intervfrom = vcurr->getIntervFrom(); - if (vcurr->getFrom2() != NULL){ - if (isFromFrom2()) intervfrom = vcurr->getIntervFrom2(); - } - - if (gnext->getXMin() > intervfrom->getMax()){ - cdebug_log(112,0) << "1" << endl; - min = intervfrom->getMax(); + IntervalC intervfrom = vcurr->getIntervFrom(UseFromFrom2); + vcurr->printIntervfrom(); + + if (gnext->getXMin() > intervfrom.getMax()){ + //cdebug_log(112,0) << "1" << endl; + min = intervfrom.getMax(); max = gnext->getXMin(); - } else if (gnext->getXMax() < intervfrom->getMin()){ - cdebug_log(112,0) << "2" << endl; + } else if (gnext->getXMax() < intervfrom.getMin()){ + //cdebug_log(112,0) << "2" << endl; min = gnext->getXMax(); - max = intervfrom->getMin(); + max = intervfrom.getMin(); } else { - cdebug_log(112,0) << "3" << endl; - min = std::max(gcurr->getXMin(), intervfrom->getMin()); - max = std::min(gcurr->getXMax(), intervfrom->getMax()); + //cdebug_log(112,0) << "3" << endl; + min = std::max(gcurr->getXMin(), intervfrom.getMin()); + max = std::min(gcurr->getXMax(), intervfrom.getMax()); } - - - /*GCell* gcurr = vcurr->getGCell(); - Vertex* vcurr = gcurr->getObserver(GCell::Observable::Vertex); - min = std::max(gcurr->getXMin(), vcurr->getPIMin()); - max = std::min(gcurr->getXMax(), vcurr->getPIMax()); - if (vcurr->getFrom2() != NULL){ - if (isFromFrom2()){ - min = std::max(gcurr->getXMin(), vcurr->getPIMin2()); - max = std::min(gcurr->getXMax(), vcurr->getPIMax2()); - } - }*/ } else { if (pcurr.getX() < pnext.getX()){ - cdebug_log(112,0) << "4" << endl; + //cdebug_log(112,0) << "4" << endl; min = pcurr.getX(); max = pnext.getX(); } else { - cdebug_log(112,0) << "5" << endl; + //cdebug_log(112,0) << "5" << endl; max = pcurr.getX(); min = pnext.getX(); } @@ -1089,11 +710,7 @@ namespace Anabatic { axis = pcurr.getX(); bool vv = false; if (vcurr->hasValidStamp() && (vcurr->getFrom() != NULL)){ - GCell* gcurr = vcurr->getGCell(); - GCell* gprev = vcurr->getFrom()->getOpposite(gcurr); - if (vcurr->getFrom2() != NULL){ - if (isFromFrom2()) gprev = vcurr->getFrom2()->getOpposite(gcurr); - } + GCell* gprev = vcurr->getGPrev(Vertex::UseFromFrom2); Vertex* vprev = gprev->getObserver(GCell::Observable::Vertex); if ((vprev->isV())) { cdebug_log(112,0) << "----------------------------" << endl; @@ -1108,40 +725,27 @@ namespace Anabatic { if (vv){ GCell* gcurr = vcurr->getGCell(); GCell* gnext = getGCell(); - //Vertex* vcurr = gcurr->getObserver(GCell::Observable::Vertex); - IntervalC* intervfrom = vcurr->getIntervFrom(); - if (vcurr->getFrom2() != NULL){ - if (isFromFrom2()) intervfrom = vcurr->getIntervFrom2(); - } - if (gnext->getYMin() > intervfrom->getMax()){ - cdebug_log(112,0) << "1" << endl; - min = intervfrom->getMax(); + IntervalC intervfrom = vcurr->getIntervFrom(UseFromFrom2); + if (gnext->getYMin() > intervfrom.getMax()){ + //cdebug_log(112,0) << "1" << endl; + min = intervfrom.getMax(); max = gnext->getYMin(); - } else if (gnext->getYMax() < intervfrom->getMin()){ - cdebug_log(112,0) << "2" << endl; + } else if (gnext->getYMax() < intervfrom.getMin()){ + //cdebug_log(112,0) << "2" << endl; min = gnext->getYMax(); - max = intervfrom->getMin(); + max = intervfrom.getMin(); } else { - cdebug_log(112,0) << "3" << endl; - min = std::max(gcurr->getYMin(), intervfrom->getMin()); - max = std::min(gcurr->getYMax(), intervfrom->getMax()); + //cdebug_log(112,0) << "3" << endl; + min = std::max(gcurr->getYMin(), intervfrom.getMin()); + max = std::min(gcurr->getYMax(), intervfrom.getMax()); } - /* - min = std::max(gcurr->getYMin(), vcurr->getPIMin()); - max = std::min(gcurr->getYMax(), vcurr->getPIMax()); - if (vcurr->getFrom2() != NULL){ - if (isFromFrom2()){ - min = std::max(gcurr->getYMin(), vcurr->getPIMin2()); - max = std::min(gcurr->getYMax(), vcurr->getPIMax2()); - } - }*/ } else { if (pcurr.getY() < pnext.getY()){ - cdebug_log(112,0) << "4" << endl; + //cdebug_log(112,0) << "4" << endl; min = pcurr.getY(); max = pnext.getY(); } else { - cdebug_log(112,0) << "5" << endl; + //cdebug_log(112,0) << "5" << endl; max = pcurr.getY(); min = pnext.getY(); } @@ -1156,22 +760,16 @@ namespace Anabatic { if (isFrom2Mode()) { cdebug_log(112,0) << "SetIntervfrom2" << endl; - _intervfrom2->set( min, max, axis ); + setIntervfrom2(min, max, axis); } else { cdebug_log(112,0) << "SetIntervfrom" << endl; - _intervfrom->set ( min, max, axis ); + setIntervfrom(min, max, axis); } cdebug_tabw(112,-1); } - - void Vertex::resetIntervals() - { - _interv->reset(); - _intervfrom->reset(); - } - + bool Vertex::areSameSide ( const Vertex* v1, const Vertex* v2 ) const { if ( (isNorth(v1) and isNorth(v2)) @@ -1183,6 +781,320 @@ namespace Anabatic { } + void Vertex::createAData() + { + if (_adata == NULL) _adata = GRAData::create(); + } + + + bool Vertex::isiSet() const + { + if (_adata){ + return _adata->isiSet(); + } else { + cdebug_log(112,1) << "bool Vertex::isiSet() const: Inappropriate usage of GRAData. " << endl; + return false; + } + } + + + DbU::Unit Vertex::getIAxis() const + { + if (_adata){ + return _adata->getIAxis(); + } else { + cdebug_log(112,1) << "DbU::Unit Vertex::getIAxis() const: Inappropriate usage of GRAData. " << endl; + return 0; + } + } + + + DbU::Unit Vertex::getIMax() const + { + if (_adata){ + return _adata->getIMax(); + } else { + cdebug_log(112,1) << "DbU::Unit Vertex::getIMax() const: Inappropriate usage of GRAData. " << endl; + return 0; + } + } + + + DbU::Unit Vertex::getIMin() const + { + if (_adata){ + return _adata->getIMin(); + } else { + cdebug_log(112,1) << "DbU::Unit Vertex::getIMin() const: Inappropriate usage of GRAData. " << endl; + return 0; + } + } + + + DbU::Unit Vertex::getPIAxis() const + { + if (_adata){ + return _adata->getPIAxis(); + } else { + cdebug_log(112,1) << "DbU::Unit Vertex::getPIAxis() const: Inappropriate usage of GRAData. " << endl; + return 0; + } + } + + + DbU::Unit Vertex::getPIMax() const + { + if (_adata){ + return _adata->getPIMax(); + } else { + cdebug_log(112,1) << "DbU::Unit Vertex::getPIMax() const: Inappropriate usage of GRAData. " << endl; + return 0; + } + } + + + DbU::Unit Vertex::getPIMin() const + { + if (_adata){ + return _adata->getPIMin(); + } else { + cdebug_log(112,1) << "DbU::Unit Vertex::getPIMin() const: Inappropriate usage of GRAData. " << endl; + return 0; + } + } + + + void Vertex::setInterv( DbU::Unit min, DbU::Unit max, DbU::Unit axis ) + { + if (_adata){ + _adata->setInterv(min, max, axis); + } else { + cdebug_log(112,1) << "void Vertex::setInterv( DbU::Unit min, DbU::Unit max, DbU::Unit axis ): Inappropriate usage of GRAData. " << endl; + } + } + + + void Vertex::setIntervfrom( DbU::Unit min, DbU::Unit max, DbU::Unit axis ) + { + if (_adata){ + _adata->setIntervfrom(min, max, axis); + } else { + cdebug_log(112,1) << "void Vertex::setIntervfrom( DbU::Unit min, DbU::Unit max, DbU::Unit axis ): Inappropriate usage of GRAData. " << endl; + } + } + + + void Vertex::setIntervfrom2( DbU::Unit min, DbU::Unit max, DbU::Unit axis ) + { + if (_adata){ + _adata->setIntervfrom2(min, max, axis); + } else { + cdebug_log(112,1) << "void Vertex::setIntervfrom2( DbU::Unit min, DbU::Unit max, DbU::Unit axis ): Inappropriate usage of GRAData. " << endl; + } + } + + + void Vertex::resetIntervals() + { + if (_adata){ + _adata->resetIntervals(); + } else { + cdebug_log(112,1) << "void Vertex::resetIntervals(): Inappropriate usage of GRAData. " << endl; + } + } + + + void Vertex::clearFrom2() + { + if (_adata){ + _adata->clearFrom2(); + } else { + cdebug_log(112,1) << "void Vertex::clearfrom2(): Inappropriate usage of GRAData. " << endl; + } + } + + + Edge* Vertex::getFrom2() const + { + if (_adata){ + return _adata->getFrom2(); + } else { + cdebug_log(112,1) << "Edge* Vertex::getFrom2() const: Inappropriate usage of GRAData. " << endl; + return NULL; + } + } + + + void Vertex::setFrom2( Edge* from ) + { + if (_adata){ + _adata->setFrom2(from); + } else { + cdebug_log(112,1) << "void Vertex::setFrom2( Edge* from ): Inappropriate usage of GRAData. " << endl; + } + } + + + void Vertex::createIntervFrom2() + { + if (_adata){ + //_adata->createIntervFrom2(); + } else { + cdebug_log(112,1) << "void Vertex::createIntervFrom2(): Inappropriate usage of GRAData. " << endl; + } + } + + + DbU::Unit Vertex::getPIMax2() const + { + if (_adata){ + return _adata->getPIMax2(); + } else { + cdebug_log(112,1) << "DbU::Unit Vertex::getPIMax2() const: Inappropriate usage of GRAData. " << endl; + return 0; + } + } + + + DbU::Unit Vertex::getPIMin2() const + { + if (_adata){ + return _adata->getPIMin2(); + } else { + cdebug_log(112,1) << "DbU::Unit Vertex::getPIMin2() const: Inappropriate usage of GRAData. " << endl; + return 0; + } + } + + + DbU::Unit Vertex::getPIAxis2() const + { + if (_adata){ + return _adata->getPIAxis2(); + } else { + cdebug_log(112,1) << "DbU::Unit Vertex::getPIAxis2() const: Inappropriate usage of GRAData. " << endl; + return 0; + } + } + + + IntervalC Vertex::getIntervFrom2() const + { + if (_adata){ + return _adata->getIntervFrom2(); + } else { + cdebug_log(112,1) << "DbU::Unit Vertex::getIntervFrom2() const: Inappropriate usage of GRAData. " << endl; + return IntervalC(); + } + } + + + IntervalC Vertex::getIntervFrom( unsigned int criteria ) const + { + if (_adata){ + switch (criteria){ + case Vertex::From2Mode: + if ((isFrom2Mode())&&(getFrom2() != NULL)){ + cdebug_log(112,0) << "getIntervFrom:From2Mode:UseFrom2. " << endl; + return _adata->getIntervFrom2(); + } else { + cdebug_log(112,0) << "getIntervFrom:From2Mode:UseFrom1. " << endl; + return _adata->getIntervFrom(); + } + case Vertex::UseFromFrom2: + if ((isFromFrom2())&&(getFrom2() != NULL)){ + cdebug_log(112,0) << "getIntervFrom:UseFromFrom2:UseFrom2. " << endl; + return _adata->getIntervFrom2(); + } else { + cdebug_log(112,0) << "getIntervFrom:UseFromFrom2:UseFrom1. " << endl; + return _adata->getIntervFrom(); + } + case 0: + cdebug_log(112,0) << "getIntervFrom:Default:UseFrom1. " << endl; + return _adata->getIntervFrom(); + default: + cdebug_log(112,0) << "getIntervFrom:Default:UseFrom1. " << endl; + return _adata->getIntervFrom(); + } + } else { + cdebug_log(112,1) << "DbU::Unit Vertex::getIntervFrom(unsigned int criteria) const: Inappropriate usage of GRAData. " << endl; + return IntervalC(); + } + } + + + GCell* Vertex::getGPrev( unsigned int criteria ) const + { + if (_adata){ + switch (criteria){ + case Vertex::From2Mode: + if ((isFrom2Mode())&&(getFrom2() != NULL)){ + cdebug_log(112,0) << "getGPrev:From2Mode:UseFrom2. " << endl; + return _adata->getFrom2()->getOpposite(getGCell()); + } else { + cdebug_log(112,0) << "getGPrev:From2Mode:UseFrom1. " << endl; + if (_from) return getFrom()->getOpposite(getGCell()); + else return NULL; + } + case Vertex::UseFromFrom2: + if ((isFromFrom2())&&(getFrom2() != NULL)){ + cdebug_log(112,0) << "getGPrev:UseFromFrom2:UseFrom2. " << endl; + return _adata->getFrom2()->getOpposite(getGCell()); + } else { + cdebug_log(112,0) << "getGPrev:UseFromFrom2:UseFrom1. " << endl; + if (_from) return getFrom()->getOpposite(getGCell()); + else return NULL; + } + case 0: + cdebug_log(112,0) << "getGPrev:Default:UseFrom1. " << endl; + if (_from) return getFrom()->getOpposite(getGCell()); + else return NULL; + default: + cdebug_log(112,0) << "getGPrev:Default:UseFrom1. " << endl; + if (_from) return getFrom()->getOpposite(getGCell()); + else return NULL; + } + } else { + if (_from) return getFrom()->getOpposite(getGCell()); + else return NULL; + } + } + + + IntervalC Vertex::getInterv() const + { + if (_adata){ + return _adata->getInterv(); + } else { + cdebug_log(112,1) << "DbU::Unit Vertex::getInterv() const: Inappropriate usage of GRAData. " << endl; + return IntervalC(); + } + } + + + void Vertex::printInterv() const + { + if (_adata){ + _adata->printInterv(); + } else { + cdebug_log(112,1) << "void Vertex::printInterv() const: Inappropriate usage of GRAData. " << endl; + } + } + + + void Vertex::printIntervfrom() const + { + if (_adata){ + _adata->printIntervfrom(); + } else { + cdebug_log(112,1) << "void Vertex::printIntervfrom() const: Inappropriate usage of GRAData. " << endl; + } + } + +//////////////////////////////////////////////////////////////////// + + + string Vertex::_getString () const { if (not _gcell) { @@ -1203,12 +1115,12 @@ namespace Anabatic { /*+ "+" + getString(_branchId) + " stamp:" + (hasValidStamp() ? "valid" : "outdated")*/ + " from:" + ((_from) ? "set" : "NULL") - + " from2:" + ((_from2) ? "set" : "NULL") + //+ " from2:" + ((_adata) ? _adata->getFrom2() : "NULL") + " restricted:" + (isNRestricted() ? "N" : "-") + (isSRestricted() ? "S" : "-") + (isERestricted() ? "E" : "-") + (isWRestricted() ? "W" : "-") - + " isiSet:" +(isiSet() ? "1" : "0") + //+ " isiSet:" +(isiSet() ? "1" : "0") + ">"; return s; } @@ -1250,310 +1162,12 @@ namespace Anabatic { } - DbU::Unit Dijkstra::_getDistancetoRP( Point p ) - { - - cdebug_log(112,0) << "DbU::Unit Dijkstra::_getDistancetoRP( Point p ): " << p << endl; - RoutingPad* rp = NULL; - DbU::Unit dist = 0; - Cell* cell = _anabatic->getCell(); - int cpt = 0; - - /*for ( Vertex* vertex : _sources ) { - if (vertex->hasRP()){ - for ( Component* component : cell->getComponentsUnder(vertex->getGCell()->getBoundingBox()) ){ - rp = dynamic_cast( component ); - if (rp) break; - } - if (rp) { - cdebug_log(112,0) << "Vertex: " << vertex << endl; - dist += _estimatePtoRP(p, rp, vertex ); - } - } - }*/ - for ( Vertex* vertex : _targets ) { - if (vertex->hasRP(_net)){ - for ( Component* component : cell->getComponentsUnder(vertex->getGCell()->getBoundingBox()) ){ - rp = dynamic_cast( component ); - if (rp) { - if (rp->getNet() == _net) break; - } - } - if (rp) { - DbU::Unit distance = _estimatePtoRP(p, rp, vertex ); - cdebug_log(112,0) << "Dist to Vertex: " << vertex << " IS = " << DbU::getValueString(distance) << endl; - dist += distance; - cpt++; - } - } - } - if (cpt != 0) dist = dist/cpt; - else dist = Vertex::unreachable; - return dist; - } - - DbU::Unit calcDistance( Point p1, Point p2 ) { return abs(p1.getX()-p2.getX()) + abs(p1.getY()-p2.getY()); } - DbU::Unit Dijkstra::_estimatePtoRP( Point p, RoutingPad* rp, Vertex* vertex ) - { - Horizontal* h = dynamic_cast(rp->_getEntityAsSegment()); - Vertical* v = dynamic_cast(rp->_getEntityAsSegment()); - DbU::Unit d = Vertex::unreachable; - GCell* gvertex = vertex->getGCell(); - - if (h) { - cdebug_log(112,0) << "Case: Horizontal: " << endl; - if (p.getX() < rp->getSourceX()){ - cdebug_log(112,0) << "Case: p.getX() < rp->getSourceX()" << endl; - if (p.getY() < gvertex->getYMin()){ - cdebug_log(112,0) << "Case: West South" << endl; - if ( (!vertex->isSRestricted()) - || (!vertex->isWRestricted()) ) d = calcDistance (p, Point(rp->getSourceX(), rp->getSourceY())); - else if (!vertex->isNRestricted()) d = calcDistance (p, Point(rp->getSourceX(), rp->getSourceY())) + (gvertex->getYMax() - rp->getY())*2; - else if (!vertex->isERestricted()) d = calcDistance (p, Point(rp->getTargetX(), rp->getTargetY())); - else d = Vertex::unreachable; - } else if (p.getY() > gvertex->getYMax()){ - cdebug_log(112,0) << "Case: West North" << endl; - if ( (!vertex->isNRestricted()) - || (!vertex->isWRestricted()) ) d = calcDistance (p, Point(rp->getSourceX(), rp->getSourceY())); - else if (!vertex->isSRestricted()) d = calcDistance (p, Point(rp->getSourceX(), rp->getSourceY())) + (rp->getY() - gvertex->getYMin())*2; - else if (!vertex->isERestricted()) d = calcDistance (p, Point(rp->getTargetX(), rp->getTargetY())); - else d = Vertex::unreachable; - } else { - cdebug_log(112,0) << "Case: West" << endl; - if (!vertex->isWRestricted()) d = min(d, calcDistance (p, Point(rp->getSourceX(), rp->getSourceY()))); - if (!vertex->isNRestricted()) d = min(d, calcDistance (p, Point(rp->getSourceX(), rp->getSourceY()))+ (gvertex->getYMax() - rp->getY())*2); - if (!vertex->isSRestricted()) d = min(d, calcDistance (p, Point(rp->getSourceX(), rp->getSourceY()))+ (rp->getY() - gvertex->getYMin())*2); - if (!vertex->isERestricted()) d = min(d, calcDistance (p, Point(rp->getTargetX(), rp->getTargetY()))); - } - } else if (p.getX() > rp->getTargetX()){ - cdebug_log(112,0) << "Case: p.getX() > rp->getTargetX()" << endl; - if (p.getY() < gvertex->getYMin()){ - cdebug_log(112,0) << "Case: East South" << endl; - if ( (!vertex->isSRestricted()) - || (!vertex->isERestricted()) ) d = calcDistance (p, Point(rp->getTargetX(), rp->getTargetY())); - else if (!vertex->isNRestricted()) d = calcDistance (p, Point(rp->getTargetX(), rp->getTargetY())) + (gvertex->getYMax() - rp->getY())*2; - else if (!vertex->isWRestricted()) d = calcDistance (p, Point(rp->getSourceX(), rp->getSourceY())); - else d = Vertex::unreachable; - } else if (p.getY() > gvertex->getYMax()){ - cdebug_log(112,0) << "Case: East North" << endl; - if ( (!vertex->isNRestricted()) - || (!vertex->isERestricted()) ) d = calcDistance (p, Point(rp->getTargetX(), rp->getTargetY())); - else if (!vertex->isSRestricted()) d = calcDistance (p, Point(rp->getTargetX(), rp->getTargetY())) + (rp->getY() - gvertex->getYMin())*2; - else if (!vertex->isWRestricted()) d = calcDistance (p, Point(rp->getSourceX(), rp->getSourceY())); - else d = Vertex::unreachable; - } else { - cdebug_log(112,0) << "Case: East" << endl; - if (!vertex->isERestricted()) d = min(d, calcDistance (p, Point(rp->getTargetX(), rp->getTargetY()))); - if (!vertex->isNRestricted()) d = min(d, calcDistance (p, Point(rp->getTargetX(), rp->getTargetY()))+ (gvertex->getYMax() - rp->getY())*2); - if (!vertex->isSRestricted()) d = min(d, calcDistance (p, Point(rp->getTargetX(), rp->getTargetY()))+ (rp->getY() - gvertex->getYMin())*2); - if (!vertex->isWRestricted()) d = min(d, calcDistance (p, Point(rp->getSourceX(), rp->getSourceY()))); - } - } else if (p.getY() < gvertex->getYMin()){ - cdebug_log(112,0) << "Case: South" << endl; - if (!vertex->isSRestricted()) d = min(d, rp->getY()-p.getY()); - if (!vertex->isERestricted()) d = min(d, rp->getY()-p.getY()+ (gvertex->getXMax()-p.getX())*2); - if (!vertex->isWRestricted()) d = min(d, rp->getY()-p.getY()+ (p.getX()-gvertex->getXMin())*2); - if (!vertex->isNRestricted()) d = min(d, min ( gvertex->getXMax()-p.getX() + gvertex->getYMax()-p.getY() + gvertex->getYMax()-rp->getY() - , p.getX()-gvertex->getXMin() + gvertex->getYMax()-p.getY() + gvertex->getYMax()-rp->getY() - ) - ); - } else if (p.getY() > gvertex->getYMax()){ - cdebug_log(112,0) << "Case: North" << endl; - if (!vertex->isNRestricted()) d = min(d, p.getY()-rp->getY()); - if (!vertex->isERestricted()) d = min(d, p.getY()-rp->getY()+ (gvertex->getXMax()-p.getX())*2); - if (!vertex->isWRestricted()) d = min(d, p.getY()-rp->getY()+ (p.getX()-gvertex->getXMin())*2); - if (!vertex->isSRestricted()) d = min(d, min ( gvertex->getXMax()-p.getX() + p.getY()-gvertex->getYMin() + rp->getY()-gvertex->getYMin() - , p.getX()-gvertex->getXMin() + p.getY()-gvertex->getYMin() + rp->getY()-gvertex->getYMin() - ) - ); - } - } - - if (v) { - cdebug_log(112,0) << "Case: Vertical" << endl; - if (p.getY() < rp->getSourceY()){ - cdebug_log(112,0) << "Case: p.getY() < rp->getSourceY()" << endl; - if (p.getX() < gvertex->getXMin()){ - cdebug_log(112,0) << "Case: South West" << endl; - if ( (!vertex->isSRestricted()) - || (!vertex->isWRestricted()) ) d = calcDistance (p, Point(rp->getSourceX(), rp->getSourceY())); - else if (!vertex->isERestricted()) d = calcDistance (p, Point(rp->getSourceX(), rp->getSourceY())) + (gvertex->getXMax() - rp->getX())*2; - else if (!vertex->isNRestricted()) d = calcDistance (p, Point(rp->getTargetX(), rp->getTargetY())); - else d = Vertex::unreachable; - } else if (p.getX() > gvertex->getXMax()){ - cdebug_log(112,0) << "Case: South East" << endl; - if ( (!vertex->isSRestricted()) - || (!vertex->isERestricted()) ) d = calcDistance (p, Point(rp->getSourceX(), rp->getSourceY())); - else if (!vertex->isWRestricted()) d = calcDistance (p, Point(rp->getSourceX(), rp->getSourceY())) + (rp->getX() - gvertex->getXMin())*2; - else if (!vertex->isNRestricted()) d = calcDistance (p, Point(rp->getTargetX(), rp->getTargetY())); - else d = Vertex::unreachable; - } else { - cdebug_log(112,0) << "Case: South " << endl; - if (!vertex->isSRestricted()) d = min(d, calcDistance (p, Point(rp->getSourceX(), rp->getSourceY()))); - if (!vertex->isWRestricted()) d = min(d, calcDistance (p, Point(rp->getSourceX(), rp->getSourceY()))+ (gvertex->getXMax() - rp->getX())*2); - if (!vertex->isERestricted()) d = min(d, calcDistance (p, Point(rp->getSourceX(), rp->getSourceY()))+ (rp->getX() - gvertex->getXMin())*2); - if (!vertex->isNRestricted()) d = min(d, calcDistance (p, Point(rp->getTargetX(), rp->getTargetY()))); - } - } else if (p.getY() > rp->getTargetY()){ - cdebug_log(112,0) << "Case: p.getY() > rp->getTargetY()" << endl; - if (p.getX() < gvertex->getXMin()){ - cdebug_log(112,0) << "Case: North West" << endl; - if ( (!vertex->isNRestricted()) - || (!vertex->isWRestricted()) ) d = calcDistance (p, Point(rp->getTargetX(), rp->getTargetY())); - else if (!vertex->isERestricted()) d = calcDistance (p, Point(rp->getTargetX(), rp->getTargetY())) + (gvertex->getXMax() - rp->getX())*2; - else if (!vertex->isSRestricted()) d = calcDistance (p, Point(rp->getSourceX(), rp->getSourceY())); - else d = Vertex::unreachable; - } else if (p.getX() > gvertex->getXMax()){ - cdebug_log(112,0) << "Case: North East" << endl; - if ( (!vertex->isNRestricted()) - || (!vertex->isERestricted()) ) d = calcDistance (p, Point(rp->getTargetX(), rp->getTargetY())); - else if (!vertex->isWRestricted()) d = calcDistance (p, Point(rp->getTargetX(), rp->getTargetY())) + (rp->getX() - gvertex->getXMin())*2; - else if (!vertex->isSRestricted()) d = calcDistance (p, Point(rp->getSourceX(), rp->getSourceY())); - else d = Vertex::unreachable; - } else { - cdebug_log(112,0) << "Case: North" << endl; - if (!vertex->isNRestricted()) d = min(d, calcDistance (p, Point(rp->getTargetX(), rp->getTargetY()))); - if (!vertex->isWRestricted()) d = min(d, calcDistance (p, Point(rp->getTargetX(), rp->getTargetY()))+ (gvertex->getXMax() - rp->getX())*2); - if (!vertex->isERestricted()) d = min(d, calcDistance (p, Point(rp->getTargetX(), rp->getTargetY()))+ (rp->getX() - gvertex->getXMin())*2); - if (!vertex->isSRestricted()) d = min(d, calcDistance (p, Point(rp->getSourceX(), rp->getSourceY()))); - } - } else if (p.getX() < gvertex->getXMin()){ - cdebug_log(112,0) << "Case: West" << endl; - if (!vertex->isWRestricted()) d = min(d, rp->getX()-p.getX()); - if (!vertex->isNRestricted()) d = min(d, rp->getX()-p.getX()+ (gvertex->getYMax()-p.getY())*2); - if (!vertex->isSRestricted()) d = min(d, rp->getX()-p.getX()+ (p.getY()-gvertex->getYMin())*2); - if (!vertex->isERestricted()) d = min(d, min ( gvertex->getYMax()-p.getY() + gvertex->getXMax()-p.getX() + gvertex->getXMax()-rp->getX() - , p.getY()-gvertex->getYMin() + gvertex->getXMax()-p.getX() + gvertex->getXMax()-rp->getX() - ) - ); - } else if (p.getX() > gvertex->getXMax()){ - cdebug_log(112,0) << "Case: East" << endl; - if (!vertex->isERestricted()) d = min(d, p.getX()-rp->getX()); - if (!vertex->isNRestricted()) d = min(d, p.getX()-rp->getX()+ (gvertex->getYMax()-p.getY())*2); - if (!vertex->isSRestricted()) d = min(d, p.getX()-rp->getX()+ (p.getY()-gvertex->getYMin())*2); - if (!vertex->isWRestricted()) d = min(d, min ( gvertex->getYMax()-p.getY() + p.getX()-gvertex->getXMin() + rp->getX()-gvertex->getXMin() - , p.getY()-gvertex->getYMin() + p.getX()-gvertex->getXMin() + rp->getX()-gvertex->getXMin() - ) - ); - } - } - return d; - } - - -/*DbU::Unit Vertex::getXMinUnionfrom () - { - if (_intervfrom){ - if (hasValidStamp()){ - GCell* gcurr = getGCell(); - GCell* gprev = getFrom()->getOpposite(gcurr); - Vertex* vprev = gprev->getObserver(GCell::Observable::Vertex); - - if (vprev->isH() && isH()){ - return max(_intervfrom->getMin(), gcurr->getXMin()); - } else { - cdebug_log(112,0) << "[ERROR]: No FROM, wrong usage. 3" << endl; - return 0; - } - } else { - cdebug_log(112,0) << "[ERROR]: No FROM, wrong usage. 2" << endl; - return 0; - } - } else { - cdebug_log(112,0) << "[ERROR]: No FROM, wrong usage. 1" << endl; - return 0; - } - } - - - DbU::Unit Vertex::getXMaxUnionfrom () - { - if (_intervfrom){ - if (hasValidStamp()){ - GCell* gcurr = getGCell(); - GCell* gprev = getFrom()->getOpposite(gcurr); - Vertex* vprev = gprev->getObserver(GCell::Observable::Vertex); - - if (vprev->isH() && isH()){ - return min(_intervfrom->getMax(), gcurr->getXMax()); - } else { - cdebug_log(112,0) << "[ERROR]: No FROM, wrong usage. 3" << endl; - return 0; - } - } else { - cdebug_log(112,0) << "[ERROR]: No FROM, wrong usage. 2" << endl; - return 0; - } - } else { - cdebug_log(112,0) << "[ERROR]: No FROM, wrong usage. 1" << endl; - return 0; - } - } - - - DbU::Unit Vertex::getYMinUnionfrom () - { - if (_intervfrom){ - if (hasValidStamp()){ - GCell* gcurr = getGCell(); - GCell* gprev = getFrom()->getOpposite(gcurr); - Vertex* vprev = gprev->getObserver(GCell::Observable::Vertex); - - if (vprev->isV() && isV()){ - return max(_intervfrom->getMin(), gcurr->getYMin()); - } else { - cdebug_log(112,0) << "[ERROR]: No FROM, wrong usage. 3" << endl; - return 0; - } - } else { - cdebug_log(112,0) << "[ERROR]: No FROM, wrong usage. 2" << endl; - return 0; - } - } else { - cdebug_log(112,0) << "[ERROR]: No FROM, wrong usage. 1" << endl; - return 0; - } - } - - - DbU::Unit Vertex::getYMaxUnionfrom () - { - if (_intervfrom){ - if (hasValidStamp()){ - GCell* gcurr = getGCell(); - GCell* gprev = getFrom()->getOpposite(gcurr); - Vertex* vprev = gprev->getObserver(GCell::Observable::Vertex); - - if (vprev->isV() && isV()){ - return min(_intervfrom->getMax(), gcurr->getYMax()); - } else { - cdebug_log(112,0) << "[ERROR]: No FROM, wrong usage. 3" << endl; - return 0; - } - } else { - cdebug_log(112,0) << "[ERROR]: No FROM, wrong usage. 2" << endl; - return 0; - } - } else { - cdebug_log(112,0) << "[ERROR]: No FROM, wrong usage. 1" << endl; - return 0; - } - }*/ - - - void Vertex::clearFrom2 () - { - _from2 = NULL; - //if (_intervfrom2) _intervfrom2->destroy(); - } - - Dijkstra::Dijkstra ( AnabaticEngine* anabatic ) : _anabatic (anabatic) , _vertexes () @@ -1617,6 +1231,7 @@ namespace Anabatic { vector rps; NetRoutingState* state = NetRoutingExtension::get( _net ); + if (state){ if (state->isSelfSym()){ cdebug_log(112,0) << "Dijkstra::SELF SYMMETRY CASE " << _net << endl; @@ -1626,21 +1241,7 @@ namespace Anabatic { for ( Component* component : _net->getComponents() ) { RoutingPad* rp = dynamic_cast( component ); if (rp) { - if (state){ - if (state->isSelfSym()){ - if ( ( (state->isSymHorizontal())&&(rp->getBoundingBox().getYMin() > state->getSymAxis()) ) - ||( (state->isSymVertical() )&&(rp->getBoundingBox().getXMin() > state->getSymAxis()) ) - ){ - Point center = rp->getBoundingBox().getCenter(); - GCell* gcell = _anabatic->getGCellUnder( center ); - Vertex* seed = gcell->getObserver(GCell::Observable::Vertex); - Contact* vcontact = seed->getGContact( _net ); - rp->getBodyHook()->detach(); - rp->getBodyHook()->attach( vcontact->getBodyHook() ); - continue; - } - } - } + if ( _attachSymContactsHook( rp ) ) continue; // ANALOG rps.push_back( rp ); cdebug_log(112,0) << "| " << rp << endl; continue; @@ -1651,25 +1252,7 @@ namespace Anabatic { Point center = rp->getBoundingBox().getCenter(); GCell* gcell = _anabatic->getGCellUnder( center ); - if (state){ - if (state->isSymHorizontal()){ - _searchArea.merge( Box( _net->getCell()->getAbutmentBox().getXMin() - , _net->getCell()->getAbutmentBox().getYMin() - , _net->getCell()->getAbutmentBox().getXMax() - , state->getSymAxis() - ) - ); - } else if (state->isSymVertical()){ - _searchArea.merge( Box( _net->getCell()->getAbutmentBox().getXMin() - , _net->getCell()->getAbutmentBox().getYMin() - , state->getSymAxis() - , _net->getCell()->getAbutmentBox().getYMax() - ) - ); - } - } else if (gcell->isDevice()){ - _searchArea.merge( _net->getCell()->getAbutmentBox() ); - } + _limitSymSearchArea(rp); // ANALOG cdebug_log(112,0) << "| " << rp << endl; @@ -1688,17 +1271,10 @@ namespace Anabatic { _searchArea.merge( gcell->getBoundingBox() ); cdebug_log(112,0) << "New Search area: " << _searchArea << endl; - Vertex* seed = gcell->getObserver(GCell::Observable::Vertex); - Horizontal* h = dynamic_cast(rp->_getEntityAsSegment()); - Vertical* v = dynamic_cast (rp->_getEntityAsSegment()); - if (h) { - seed->setIAsH(); - seed->setInterv(rp->getBoundingBox().getXMin(), rp->getBoundingBox().getXMax(), rp->getBoundingBox().getYCenter()); - } - if (v) { - seed->setIAsV(); - seed->setInterv(rp->getBoundingBox().getYMin(), rp->getBoundingBox().getYMax(), rp->getBoundingBox().getXCenter()); - } + Vertex* seed = gcell->getObserver(GCell::Observable::Vertex); + GCell* gseed = seed->getGCell(); + + if (!gseed->isMatrix()) _setSourcesGRAData( seed, rp ); // ANALOG if (seed->getConnexId() < 0) { VertexSet connecteds; @@ -1822,8 +1398,7 @@ namespace Anabatic { current->setDistance ( Vertex::unreached ); current->setStamp ( _stamp ); current->setConnexId( -1 ); - current->setAxisTarget(); - //cdebug_log(112,0) << "AxisTarget: " << current << endl; + current->setFlags(Vertex::AxisTarget); } if (state->isSymVertical()){ @@ -1936,11 +1511,11 @@ namespace Anabatic { bool Dijkstra::_propagate ( Flags enabledSides ) { cdebug_log(112,1) << "Dijkstra::_propagate() " << _net << endl; - while ( not _queue.empty() ) { _queue.dump(); + Vertex* current = _queue.top(); + GCell* gcurrent = current->getGCell(); - Vertex* current = _queue.top(); cdebug_log(111,0) << endl << "[Current Vertex]: " << current << ", current->getConnexId() == _connectedsId):" << (current->getConnexId() == _connectedsId)<< ", (current->getConnexId() < 0): " << current->getConnexId() << endl; _queue.pop(); @@ -1952,24 +1527,13 @@ namespace Anabatic { if (edge == current->getFrom()) { cdebug_log(111,0) << "edge == current->getFrom()" << endl; continue; - } else { - cdebug_log(111,0) << "edge != current->getFrom()" << endl; - } - if (current->getFrom2()){ - if (edge == current->getFrom2()) { - cdebug_log(111,0) << "edge == current->getFrom2()" << endl; - continue; - } else { - cdebug_log(111,0) << "edge != current->getFrom2(): " << current->getFrom2() << endl; - } - } else { - cdebug_log(111,0) << "current->getFrom2() = NULL" << endl; - } - + } else cdebug_log(111,0) << "edge != current->getFrom()" << endl; + + if (_checkFrom2(edge, current)) continue; // ANALOG GCell* gneighbor = edge->getOpposite(current->getGCell()); - GCell* gcurrent = current->getGCell(); Vertex* vneighbor = gneighbor->getObserver(GCell::Observable::Vertex); + if (!gneighbor->isMatrix()) vneighbor->createAData(); if (vneighbor->getConnexId() == _connectedsId) { cdebug_log(111,0) << "ConnectedsId" << endl; @@ -1981,138 +1545,34 @@ namespace Anabatic { } ////////////////////////////////////// DEBUG ////////////////////////////////////// - //cdebug_log(111,0) << endl << "===================================================================================" << endl << endl; cdebug_log(111,0) << "| Net : " << _net << endl; - cdebug_log(111,0) << "| [Curr]: " << current; + cdebug_log(111,0) << "| [Curr]: " << current << endl; if (current->getFrom()) { cdebug_log(111,0) << "| From: " << current->getFrom()->getOpposite(gcurrent) << endl; - current->getIntervFrom()->print(); - } - else { cdebug_log(111,0) << endl;} + current->getIntervFrom().print(); + } if (current->getFrom2()) { cdebug_log(111,0) << "| FROM2: " << current->getFrom2()->getOpposite(gcurrent) << endl; - current->getIntervFrom2()->print(); + current->getIntervFrom2().print(); } - - cdebug_log(111,0) << "| Edge " << edge << endl; - cdebug_log(111,0) << "+ Neighbor: " << vneighbor; - if ((vneighbor->getFrom() != NULL)&&(vneighbor->hasValidStamp())) {cdebug_log(111,0) << "| Neighbor GETFROM:" << vneighbor->getFrom()->getOpposite( gneighbor ) << endl;} - else {cdebug_log(111,0) << endl;} + cdebug_log(111,0) << "+ Neighbor: " << vneighbor << endl; + if ((vneighbor->getFrom() != NULL)&&(vneighbor->hasValidStamp())) { + cdebug_log(111,0) << "| Neighbor GETFROM:" << vneighbor->getFrom()->getOpposite( gneighbor ) << endl; + cdebug_log(111,0) << "Distance prev : " << DbU::getValueString(vneighbor->getDistance()) << endl; + } /////////////////////////////////////////////////////////////////////////////////// // if has 2 from, 2 distances to calculate - //current->unsetFromFrom2(); cdebug_log(111,0) << "Calc distance1" << endl; DbU::Unit distance = _distanceCb( current, vneighbor, edge ); - DbU::Unit distance2 = Vertex::unreachable; - bool isDistance2shorter = false; - if (current->getFrom2()) { - cdebug_log(111,0) << "HAS 2nd getfrom" << edge << endl; - current->setFrom2Mode(); - cdebug_log(111,0) << "Calc distance2" << endl; - distance2 = _distanceCb( current, vneighbor, edge ); - current->unsetFrom2Mode(); - cdebug_log(111,0) << "Distance1 curr: " << DbU::getValueString(distance) << endl; - cdebug_log(111,0) << "Distance2 curr: " << DbU::getValueString(distance2) << endl; - if (distance > distance2){ - cdebug_log(111,0) << "=> distance2 is shorter" << endl; - isDistance2shorter = true; - distance = distance2; - } else if (distance == distance2) { - cdebug_log(111,0) << "distance == distance2" << endl; - Point pcurr = current->getStartPathPoint(vneighbor); - current->setFrom2Mode(); - Point pcurr2 = current->getStartPathPoint(vneighbor); - current->unsetFrom2Mode(); - Point pnext = gneighbor->getCenter(); - if (calcDistance(pcurr, pnext) > calcDistance(pcurr2, pnext)) { - cdebug_log(111,0) << "=> distance2 is shorter" << endl; - isDistance2shorter = true; - distance = distance2; - } else { - cdebug_log(111,0) << "=> distance1 is shorter" << endl; - } - } else { - cdebug_log(111,0) << "=> distance1 is shorter" << endl; - } - } else { - cdebug_log(111,0) << "NO 2nd getfrom" << endl; - cdebug_log(111,0) << "Distance1 curr: " << DbU::getValueString(distance) << endl; - } - - //cdebug_log(111,0) << "Distance1 curr: " << DbU::getValueString(distance) << endl; - //cdebug_log(111,0) << "Distance2 curr: " << DbU::getValueString(distance2) << ", isDistance2shorter:" << isDistance2shorter << endl; - cdebug_log(111,0) << "Distance prev : " << DbU::getValueString(vneighbor->getDistance()) << endl; + bool isDistance2shorter = _isDistance2Shorter ( distance, current, vneighbor, edge ); // ANALOG if ( (distance == vneighbor->getDistance()) and ((!gcurrent->isMatrix()) and (!gneighbor->isMatrix())) ){ - cdebug_log(111,0) << "[case: Distance EQUAL + SameSide]" << endl; - cdebug_log(111,0) << "Previous getfrom:" << vneighbor->getFrom()->getOpposite( gneighbor ) << endl; - - GCell* gnext = vneighbor->getGCell(); - GCell* gprev = vneighbor->getFrom()->getOpposite(gnext); - Vertex* vprev = gprev->getObserver(GCell::Observable::Vertex); - - //Point pnext = Vertex::getNextPathPoint2( current, vneighbor ); - //Point pprev = Vertex::getNextPathPoint2( vprev, vneighbor ); + _pushEqualDistance( distance, isDistance2shorter, current, vneighbor, edge ); // ANALOG - //Point pnext = current->getNextPathPoint( current->getStartPathPoint(vneighbor), vneighbor ); - //Point pprev = vprev->getNextPathPoint ( vprev->getStartPathPoint(vneighbor), vneighbor ); - //Point ppond = _getPonderedPoint(); - //DbU::Unit distcurr = this->_getDistancetoRP(pnext); - //DbU::Unit distprev = this->_getDistancetoRP(pprev); - - //cdebug_log(111,0) << "Pcurrent: X:" << DbU::getValueString(pnext.getX()) << ", Y:" << DbU::getValueString(pnext.getY()) << endl; - //cdebug_log(111,0) << "Pprev : X:" << DbU::getValueString(pprev.getX()) << ", Y:" << DbU::getValueString(pprev.getY()) << endl; - //cdebug_log(111,0) << "distToTargets curr: " << DbU::getValueString(distcurr) << endl; - //cdebug_log(111,0) << "distToTargets prev: " << DbU::getValueString(distprev) << endl; - - - if ((distance == vneighbor->getDistance()) and vneighbor->areSameSide(vprev, current)){ - cdebug_log(112,0) << "----------------------------" << endl; - cdebug_log(112,0) << "(distance == vneighbor->getDistance()) + sameSide => add create 2nd from" << endl; - cdebug_log(112,0) << "vneighbor: " << vneighbor << endl; - cdebug_log(112,0) << "curr: " << current << endl; - cdebug_log(112,0) << "prev: " << vprev << endl; - cdebug_log(112,0) << "----------------------------" << endl; - cdebug_log(111,0) << "[case: Other GetFROM]" << endl; - vneighbor->setFrom2 ( edge ); - //current->setFrom2Mode(); - vneighbor->setFrom2Mode(); - vneighbor->createIntervFrom2(); - vneighbor->setIntervals( current ); - //current->unsetFrom2Mode(); - vneighbor->unsetFrom2Mode(); - if (isDistance2shorter) { - vneighbor->setFromFrom2(); - cdebug_log(111,0) << "setFromFrom2: " << vneighbor << endl; - } - cdebug_log(111,0) << "Push BIS : (size:" << _queue.size() << ") " << vneighbor << endl; - vneighbor->getIntervFrom()->print(); - vneighbor->getIntervFrom2()->print(); - } /*else if ( ( distcurr < distprev ) - || (( distcurr == distprev ) && ( calcDistance(ppond, pnext) < calcDistance(ppond, pprev) )) - ){ - _queue.erase( vneighbor ); - cdebug_log(111,0) << "case: BETTER GetFROM" << endl; - vneighbor->setBranchId( current->getBranchId() ); - vneighbor->setDistance( distance ); - if (isDistance2shorter) { - vneighbor->setFrom2( edge ); - vneighbor->setFromFrom2(); - cdebug_log(111,0) << "setFromFrom2: " << vneighbor << endl; - } else { - vneighbor->setFrom ( edge ); - } - _queue.push( vneighbor ); - vneighbor->setIntervals( current ); - cdebug_log(111,0) << "Push: (size:" << _queue.size() << ") " << vneighbor << endl; - }*/ - - } else if ( ( (distance < vneighbor->getDistance()) and (distance != Vertex::unreachable) ) - // or ( (distance == vneighbor->getDistance()) and (current->getBranchId() > vneighbor->getBranchId()) ) - ) { + } else if ( (distance < vneighbor->getDistance()) and (distance != Vertex::unreachable) ){ if (vneighbor->getDistance() != Vertex::unreached) _queue.erase( vneighbor ); else { if (not vneighbor->hasValidStamp()) { @@ -2125,22 +1585,13 @@ namespace Anabatic { } } cdebug_log(111,0) << "[case: Distance INFERIOR]" << endl; - vneighbor->unsetFromFrom2(); - cdebug_log(111,0) << "unsetFromFrom2: " << vneighbor << endl; - vneighbor->clearFrom2(); + _updateGRAData ( vneighbor, isDistance2shorter, current ); // ANALOG + vneighbor->setBranchId( current->getBranchId() ); vneighbor->setDistance( distance ); vneighbor->setFrom ( edge ); - if (isDistance2shorter) { - vneighbor->setFromFrom2(); - cdebug_log(111,0) << "setFromFrom2: " << vneighbor << endl; - } else { - cdebug_log(111,0) << "DON'T setFromFrom2: " << vneighbor << endl; - } _queue.push( vneighbor ); - vneighbor->setIntervals( current ); cdebug_log(111,0) << "Push: (size:" << _queue.size() << ") " << vneighbor << endl; - vneighbor->getIntervFrom()->print(); } } @@ -2160,7 +1611,6 @@ namespace Anabatic { for ( Vertex* v : _targets ) { cdebug_tabw(112, 0) << v << endl; - } cdebug_tabw(112,-1); @@ -2178,46 +1628,7 @@ namespace Anabatic { bool isfirst = true; bool useFrom2 = false; if (!current->getGCell()->isMatrix()){ - GCell* gcurr = current->getGCell(); - GCell* gprev = current->getFrom()->getOpposite(gcurr); - Vertex* vprev = gprev->getObserver(GCell::Observable::Vertex); - - Point pcurrent = vprev->getStartPathPoint(current); - //Point pentry = Vertex::getNextPathPoint2( vprev, current ); - Point pentry = vprev->getNextPathPoint( pcurrent, current ); - cdebug_log(112,0) << "current : " << gcurr << endl; - cdebug_log(112,0) << "previous: " << gprev << endl; - cdebug_log(112,0) << "pcurr : x: " << DbU::getValueString(pcurrent.getX()) << ", y: " << DbU::getValueString(pcurrent.getY()) << endl; - cdebug_log(112,0) << "pentry: x: " << DbU::getValueString(pentry.getX()) << ", y: " << DbU::getValueString(pentry.getY()) << endl; - - - cdebug_log(112,0) << "| " << current << " | " << endl; - if (current->isH()){ - if (pentry.getX() < current->getIMin()){ - current->setInterv(pentry.getX(), current->getIMax(), current->getIAxis()); - cdebug_log(112,0) << "[Interval update1]: min : " << DbU::getValueString(pentry.getX()); - cdebug_log(112,0) << ", max : " << DbU::getValueString(current->getIMax()); - cdebug_log(112,0) << ", axis: " << DbU::getValueString(current->getIAxis()) << endl; - } else if (pentry.getX() > current->getIMax()){ - current->setInterv(current->getIMin(), pentry.getX(), current->getIAxis()); - cdebug_log(112,0) << "[Interval update2]: min : " << DbU::getValueString(current->getIMin()); - cdebug_log(112,0) << ", max : " << DbU::getValueString(pentry.getX()); - cdebug_log(112,0) << ", axis: " << DbU::getValueString(current->getIAxis()) << endl; - } - } else if (current->isV()){ - if (pentry.getY() < current->getIMin()){ - current->setInterv(pentry.getY(), current->getIMax(), current->getIAxis()); - cdebug_log(112,0) << "[Interval update3]: min : " << DbU::getValueString(pentry.getY()); - cdebug_log(112,0) << ", max : " << DbU::getValueString(current->getIMax()); - cdebug_log(112,0) << ", axis: " << DbU::getValueString(current->getIAxis()) << endl; - } else if (pentry.getY() > current->getIMax()){ - current->setInterv(current->getIMin(), pentry.getY(), current->getIAxis()); - cdebug_log(112,0) << "[Interval update4]: min : " << DbU::getValueString(current->getIMin()); - cdebug_log(112,0) << ", max : " << DbU::getValueString(pentry.getY()); - cdebug_log(112,0) << ", axis: " << DbU::getValueString(current->getIAxis()) << endl; - } - } - cdebug_log(112,0) << "isiSet: " << current->isiSet() << endl; + _initiateUpdateIntervals ( current ); // ANALOG } else { current = current->getPredecessor(); isfirst = false; @@ -2225,59 +1636,33 @@ namespace Anabatic { } cdebug_log(112,0) << "[Start WHILE]" << endl; + Edge* from = NULL; while ( current ) { cdebug_log(112,0) << endl; cdebug_log(112,0) << "| " << current << " | " << endl; if (!current->getGCell()->isMatrix()){ - if (!isfirst){ - current->incDegree(); - if (current->getConnexId() == _connectedsId) break; - Edge* from = NULL; - if (useFrom2) { - cdebug_log(112,0) << "USE FROM2: " << current->getFrom2() << endl; - current->setFrom(current->getFrom2()); - current->setIntervfrom(current->getPIMin2(), current->getPIMax2(), current->getPIAxis2()); - current->clearFrom2(); - } - from = current->getFrom(); - if (not from) break; - - current->setDistance( 0.0 ); - current->setConnexId( _connectedsId ); - current->setBranchId( branchId ); - _sources.insert( current ); - _queue.push( current ); - } else isfirst = false; - - if (!current->getGCell()->isMatrix()){ - if (current->getPredecessor() != NULL){ - cdebug_log(112,0) << "Predecessor() : " << current->getPredecessor() << endl; - cdebug_log(112,0) << "[Interval update]: min : " << DbU::getValueString(current->getPIMin()); - cdebug_log(112,0) << ", max : " << DbU::getValueString(current->getPIMax()); - cdebug_log(112,0) << ", axis: " << DbU::getValueString(current->getPIAxis()) << endl; - current->getPredecessor()->setInterv(current->getPIMin(), current->getPIMax(), current->getPIAxis()); - current->getIntervFrom()->print(); - //cdebug_log(112,0) << "isiSet: " << current->getPredecessor()->isiSet() << ", " << current->getPredecessor() << endl; - } - } + //////////////////////////////////////////////////////////////////////////////////////////// ANALOG + if (_updateIntervals ( isfirst, current, useFrom2, branchId, from )) break; Vertex* next = NULL; next = current->getPredecessor(); if( current->isFromFrom2()) { cdebug_log(112,0) << "ISFROMFROM2: " << current << endl; useFrom2 = true; - current->unsetFromFrom2(); + current->unsetFlags(Vertex::UseFromFrom2); } else { cdebug_log(112,0) << "ISNOT FROMFROM2" << endl; useFrom2 = false; } + cdebug_log(112,0) << "next: " << next << endl; current = next; + //////////////////////////////////////////////////////////////////////////////////////////// } else { current->incDegree(); if (current->getConnexId() == _connectedsId) break; - Edge* from = current->getFrom(); + from = current->getFrom(); if (not from) break; current->setDistance( 0.0 ); @@ -2287,55 +1672,7 @@ namespace Anabatic { _queue.push( current ); current = current->getPredecessor(); } - - /*if (!isfirst){ - current->incDegree(); - if (current->getConnexId() == _connectedsId) break; - - Edge* from = NULL; - if (useFrom2) { - cdebug_log(112,0) << "USE FROM2: " << current->getFrom2() << ", " << current->getIntervFrom2() << endl; - - current->setFrom(current->getFrom2()); - current->setInterv(current->getPIMin2(), current->getPIMax2(), current->getPIAxis2()); - current->clearFrom2(); - } - from = current->getFrom(); - - if (not from) break; - - current->setDistance( 0.0 ); - current->setConnexId( _connectedsId ); - current->setBranchId( branchId ); - _sources.insert( current ); - _queue.push( current ); - } else { - isfirst = false; - } - - if ((!current->getGCell()->isMatrix())&&(!first)){ - if (current->getPredecessor() != NULL){ - cdebug_log(112,0) << "[Interval update]: min : " << DbU::getValueString(current->getPIMin()); - cdebug_log(112,0) << ", max : " << DbU::getValueString(current->getPIMax()); - cdebug_log(112,0) << ", axis: " << DbU::getValueString(current->getPIAxis()) << endl; - current->getPredecessor()->setInterv(current->getPIMin(), current->getPIMax(), current->getPIAxis()); - //cdebug_log(112,0) << "isiSet: " << current->getPredecessor()->isiSet() << ", " << current->getPredecessor() << endl; - } - } - Vertex* next = NULL; - next = current->getPredecessor(); - - if( current->isFromFrom2()) { - cdebug_log(112,0) << "ISFROMFROM2: " << current << endl; - useFrom2 = true; - current->unsetFromFrom2(); - } else { - cdebug_log(112,0) << "ISNOT FROMFROM2" << endl; - useFrom2 = false; - } - current = next;*/ } - cdebug_tabw(112,-1); } @@ -2358,9 +1695,7 @@ namespace Anabatic { Vertex* source = startVertex; while ( source ) { - //////////////////////////////////////////// - source->resetIntervals(); - //////////////////////////////////////////// + source->resetIntervals(); // ANALOG cdebug_log(112,0) << "* " << source << endl; @@ -2497,7 +1832,7 @@ namespace Anabatic { void Dijkstra::_toSources ( Vertex* source, int connexId ) { - //cdebug_log(112,1) << "Dijkstra::_toSources() " << endl; + cdebug_log(112,1) << "Dijkstra::_toSources() " << endl; //cdebug_log(112,0) << "* from: " << source << endl; source->setConnexId( connexId ); @@ -2686,5 +2021,249 @@ namespace Anabatic { } + bool Dijkstra::_checkFrom2 ( Edge* edge, Vertex* current ) + { + if (current->getFrom2()){ + if (edge == current->getFrom2()) { + cdebug_log(111,0) << "edge == current->getFrom2()" << endl; + return true; + } else { + cdebug_log(111,0) << "edge != current->getFrom2(): " << current->getFrom2() << endl; + return false; + } + } else { + cdebug_log(111,0) << "current->getFrom2() = NULL" << endl; + return false; + } + } + + + bool Dijkstra::_isDistance2Shorter ( DbU::Unit& distance, Vertex* current, Vertex* vneighbor, Edge* edge ) + { + DbU::Unit distance2 = Vertex::unreachable; + bool isDistance2shorter = false; + GCell* gneighbor = edge->getOpposite(current->getGCell()); + if (current->getFrom2()) { + cdebug_log(111,0) << "HAS 2nd getfrom" << edge << endl; + current->setFlags(Vertex::From2Mode); + cdebug_log(111,0) << "Calc distance2" << endl; + distance2 = _distanceCb( current, vneighbor, edge ); + current->unsetFlags(Vertex::From2Mode); + cdebug_log(111,0) << "Distance1 curr: " << DbU::getValueString(distance) << endl; + cdebug_log(111,0) << "Distance2 curr: " << DbU::getValueString(distance2) << endl; + if (distance > distance2){ + cdebug_log(111,0) << "=> distance2 is shorter" << endl; + isDistance2shorter = true; + distance = distance2; + } else if (distance == distance2) { + cdebug_log(111,0) << "distance == distance2" << endl; + Point pcurr = current->getStartPathPoint(vneighbor); + current->setFlags(Vertex::From2Mode); + Point pcurr2 = current->getStartPathPoint(vneighbor); + current->unsetFlags(Vertex::From2Mode); + Point pnext = gneighbor->getCenter(); + if (calcDistance(pcurr, pnext) > calcDistance(pcurr2, pnext)) { + cdebug_log(111,0) << "=> distance2 is shorter" << endl; + isDistance2shorter = true; + distance = distance2; + } else { + cdebug_log(111,0) << "=> distance1 is shorter" << endl; + } + } else { + cdebug_log(111,0) << "=> distance1 is shorter" << endl; + } + } else { + cdebug_log(111,0) << "NO 2nd getfrom" << endl; + cdebug_log(111,0) << "Distance1 curr: " << DbU::getValueString(distance) << endl; + } + return isDistance2shorter; + } + + + void Dijkstra::_pushEqualDistance ( DbU::Unit distance, bool isDistance2shorter, Vertex* current, Vertex* vneighbor, Edge* edge ) + { + GCell* gneighbor = edge->getOpposite(current->getGCell()); + cdebug_log(111,0) << "[case: Distance EQUAL + SameSide]" << endl; + cdebug_log(111,0) << "Previous getfrom:" << vneighbor->getFrom()->getOpposite( gneighbor ) << endl; + + GCell* gnext = vneighbor->getGCell(); + GCell* gprev = vneighbor->getFrom()->getOpposite(gnext); + Vertex* vprev = gprev->getObserver(GCell::Observable::Vertex); + + if ((distance == vneighbor->getDistance()) and vneighbor->areSameSide(vprev, current)){ + cdebug_log(111,0) << "[case: Other GetFROM]" << endl; + vneighbor->setFrom2 ( edge ); + vneighbor->setFlags(Vertex::From2Mode); + //vneighbor->createIntervFrom2(); + vneighbor->setIntervals( current ); + vneighbor->unsetFlags(Vertex::From2Mode); + if (isDistance2shorter) { + vneighbor->setFlags(Vertex::UseFromFrom2); + cdebug_log(111,0) << "setFromFrom2: " << vneighbor << endl; + } + cdebug_log(111,0) << "Push BIS : " << vneighbor << endl; + vneighbor->getIntervFrom().print(); + vneighbor->getIntervFrom2().print(); + } + } + + + void Dijkstra::_updateGRAData ( Vertex* vneighbor, bool isDistance2shorter, Vertex* current ) + { + vneighbor->unsetFlags(Vertex::UseFromFrom2); + cdebug_log(111,0) << "unsetFromFrom2: " << vneighbor << endl; + vneighbor->clearFrom2(); + if (isDistance2shorter) { + vneighbor->setFlags(Vertex::UseFromFrom2); + cdebug_log(111,0) << "setFromFrom2: " << vneighbor << endl; + } else cdebug_log(111,0) << "DON'T setFromFrom2: " << vneighbor << endl; + + vneighbor->setIntervals( current ); + vneighbor->getIntervFrom().print(); + } + + void Dijkstra::_initiateUpdateIntervals ( Vertex* current ) + { + GCell* gcurr = current->getGCell(); + GCell* gprev = current->getFrom()->getOpposite(gcurr); + Vertex* vprev = gprev->getObserver(GCell::Observable::Vertex); + Point pcurrent = vprev->getStartPathPoint(current); + Point pentry = vprev->getNextPathPoint( pcurrent, current ); + cdebug_log(112,0) << "current : " << gcurr << endl; + cdebug_log(112,0) << "previous: " << gprev << endl; + cdebug_log(112,0) << "pcurr : x: " << DbU::getValueString(pcurrent.getX()) << ", y: " << DbU::getValueString(pcurrent.getY()) << endl; + cdebug_log(112,0) << "pentry: x: " << DbU::getValueString(pentry.getX()) << ", y: " << DbU::getValueString(pentry.getY()) << endl; + + cdebug_log(112,0) << "| " << current << " | " << endl; + if (current->isH()){ + if (pentry.getX() < current->getIMin()){ + current->setInterv(pentry.getX(), current->getIMax(), current->getIAxis()); + cdebug_log(112,0) << "[Interval update1]: min : " << DbU::getValueString(pentry.getX()); + cdebug_log(112,0) << ", max : " << DbU::getValueString(current->getIMax()); + cdebug_log(112,0) << ", axis: " << DbU::getValueString(current->getIAxis()) << endl; + } else if (pentry.getX() > current->getIMax()){ + current->setInterv(current->getIMin(), pentry.getX(), current->getIAxis()); + cdebug_log(112,0) << "[Interval update2]: min : " << DbU::getValueString(current->getIMin()); + cdebug_log(112,0) << ", max : " << DbU::getValueString(pentry.getX()); + cdebug_log(112,0) << ", axis: " << DbU::getValueString(current->getIAxis()) << endl; + } + } else if (current->isV()){ + if (pentry.getY() < current->getIMin()){ + current->setInterv(pentry.getY(), current->getIMax(), current->getIAxis()); + cdebug_log(112,0) << "[Interval update3]: min : " << DbU::getValueString(pentry.getY()); + cdebug_log(112,0) << ", max : " << DbU::getValueString(current->getIMax()); + cdebug_log(112,0) << ", axis: " << DbU::getValueString(current->getIAxis()) << endl; + } else if (pentry.getY() > current->getIMax()){ + current->setInterv(current->getIMin(), pentry.getY(), current->getIAxis()); + cdebug_log(112,0) << "[Interval update4]: min : " << DbU::getValueString(current->getIMin()); + cdebug_log(112,0) << ", max : " << DbU::getValueString(pentry.getY()); + cdebug_log(112,0) << ", axis: " << DbU::getValueString(current->getIAxis()) << endl; + } + } + cdebug_log(112,0) << "isiSet: " << current->isiSet() << endl; + } + + + bool Dijkstra::_updateIntervals( bool& isfirst, Vertex* current, bool& useFrom2, int& branchId, Edge* from ) + { + if (!isfirst){ + cdebug_log(112,0) << "Is not first" << endl; + current->incDegree(); + if (current->getConnexId() == _connectedsId) return true; + from = NULL; + if (useFrom2) { + cdebug_log(112,0) << "USE FROM2: " << current->getFrom2() << endl; + current->setFrom(current->getFrom2()); + current->setIntervfrom(current->getPIMin2(), current->getPIMax2(), current->getPIAxis2()); + current->clearFrom2(); + } + from = current->getFrom(); + if (not from) return true; + + current->setDistance( 0.0 ); + current->setConnexId( _connectedsId ); + current->setBranchId( branchId ); + _sources.insert( current ); + _queue.push( current ); + } else isfirst = false; + + if (current->getPredecessor() != NULL){ + cdebug_log(112,0) << "Predecessor() : " << current->getPredecessor() << endl; + cdebug_log(112,0) << "[Interval update]: min : " << DbU::getValueString(current->getPIMin()); + cdebug_log(112,0) << ", max : " << DbU::getValueString(current->getPIMax()); + cdebug_log(112,0) << ", axis: " << DbU::getValueString(current->getPIAxis()) << endl; + current->getPredecessor()->setInterv(current->getPIMin(), current->getPIMax(), current->getPIAxis()); + current->getIntervFrom().print(); + } + return false; + } + + + bool Dijkstra::_attachSymContactsHook( RoutingPad* rp ) + { + NetRoutingState* state = NetRoutingExtension::get( _net ); + if (state){ + if (state->isSelfSym()){ + if ( ( (state->isSymHorizontal())&&(rp->getBoundingBox().getYMin() > state->getSymAxis()) ) + ||( (state->isSymVertical() )&&(rp->getBoundingBox().getXMin() > state->getSymAxis()) ) + ){ + Point center = rp->getBoundingBox().getCenter(); + GCell* gcell = _anabatic->getGCellUnder( center ); + Vertex* seed = gcell->getObserver(GCell::Observable::Vertex); + Contact* vcontact = seed->getGContact( _net ); + rp->getBodyHook()->detach(); + rp->getBodyHook()->attach( vcontact->getBodyHook() ); + return true; + } + } + } + return false; + } + + + void Dijkstra::_limitSymSearchArea( RoutingPad* rp ) + { + NetRoutingState* state = NetRoutingExtension::get( _net ); + Point center = rp->getBoundingBox().getCenter(); + GCell* gcell = _anabatic->getGCellUnder( center ); + if (state){ + if (state->isSymHorizontal()){ + _searchArea.merge( Box( _net->getCell()->getAbutmentBox().getXMin() + , _net->getCell()->getAbutmentBox().getYMin() + , _net->getCell()->getAbutmentBox().getXMax() + , state->getSymAxis() + ) + ); + } else if (state->isSymVertical()){ + _searchArea.merge( Box( _net->getCell()->getAbutmentBox().getXMin() + , _net->getCell()->getAbutmentBox().getYMin() + , state->getSymAxis() + , _net->getCell()->getAbutmentBox().getYMax() + ) + ); + } + } else if (gcell->isDevice()){ + _searchArea.merge( _net->getCell()->getAbutmentBox() ); + } + } + + + void Dijkstra::_setSourcesGRAData( Vertex* seed, RoutingPad* rp ) + { + Horizontal* h = dynamic_cast(rp->_getEntityAsSegment()); + Vertical* v = dynamic_cast (rp->_getEntityAsSegment()); + seed->createAData(); + if (h) { + seed->setFlags(Vertex::iHorizontal); + seed->setInterv(rp->getBoundingBox().getXMin(), rp->getBoundingBox().getXMax(), rp->getBoundingBox().getYCenter()); + } + if (v) { + seed->setFlags(Vertex::iVertical); + seed->setInterv(rp->getBoundingBox().getYMin(), rp->getBoundingBox().getYMax(), rp->getBoundingBox().getXCenter()); + } + } + + + } // Anabatic namespace. diff --git a/anabatic/src/anabatic/Dijkstra.h b/anabatic/src/anabatic/Dijkstra.h index 46fbb605..90f83397 100644 --- a/anabatic/src/anabatic/Dijkstra.h +++ b/anabatic/src/anabatic/Dijkstra.h @@ -38,22 +38,6 @@ namespace Anabatic { class AnabaticEngine; -// ------------------------------------------------------------------- -// Class : "Anabatic::GRAData". -/* - class GRAData - { - private: - GRAData(); - ~GRAData(); - public: - static GRAData* create(); - - private: - IntervalC* _intervfrom; - IntervalC* _interv; - };*/ - // ------------------------------------------------------------------- // Class : "Anabatic::IntervalC". @@ -65,31 +49,32 @@ namespace Anabatic { , iVertical = (1<<1) , iSet = (1<<2) }; - private: - IntervalC(); - ~IntervalC(); - public: - static IntervalC* create(); public: - void destroy (); - void set ( DbU::Unit, DbU::Unit, DbU::Unit ); - void setRange ( DbU::Unit, DbU::Unit ); - void extendMin ( DbU::Unit ); - void extendMax ( DbU::Unit ); - void print () const; - inline bool isH () const; - inline bool isV () const; - inline void setAsH (); - inline void setAsV (); - inline DbU::Unit getMin () const; - inline DbU::Unit getMax () const; - inline DbU::Unit getCenter () const; - DbU::Unit getAxis () const; - inline void setAxis ( DbU::Unit ); - inline void setiSet (); - inline bool isiSet () const; - void reset (); + IntervalC(); + IntervalC(const IntervalC&); + IntervalC(IntervalC&); + ~IntervalC(); + void set ( DbU::Unit, DbU::Unit, DbU::Unit ); + void setRange ( DbU::Unit, DbU::Unit ); + void extendMin ( DbU::Unit ); + void extendMax ( DbU::Unit ); + void print () const; + inline bool isH () const; + inline bool isV () const; + inline void setAsH (); + inline void setAsV (); + inline DbU::Unit getMin () const; + inline DbU::Unit getMax () const; + inline DbU::Unit getCenter () const; + DbU::Unit getAxis () const; + inline void setAxis ( DbU::Unit ); + inline void setiSet (); + inline bool isiSet () const; + void reset (); + + unsigned int getFlags () const; + void setFlags (unsigned int); private: unsigned int _flags; @@ -98,17 +83,86 @@ namespace Anabatic { DbU::Unit _axis; }; - inline void IntervalC::setAsH () { _flags = ((_flags & ~(0x3)) | iHorizontal); } - inline void IntervalC::setAsV () { _flags = ((_flags & ~(0x3)) | iVertical ); } - inline void IntervalC::setAxis ( DbU::Unit axis ) { _axis = axis; } - inline DbU::Unit IntervalC::getAxis () const { return _axis; } - inline DbU::Unit IntervalC::getCenter() const { return getMin()+getMax(); } - inline DbU::Unit IntervalC::getMin () const { return _min; } - inline DbU::Unit IntervalC::getMax () const { return _max; } - inline void IntervalC::setiSet () { _flags |= iSet; } - inline bool IntervalC::isiSet () const { return _flags & iSet; } - inline bool IntervalC::isH () const { return _flags & iHorizontal; } - inline bool IntervalC::isV () const { return _flags & iVertical ; } + inline void IntervalC::setAsH () { _flags = ((_flags & ~(0x3)) | iHorizontal); } + inline void IntervalC::setAsV () { _flags = ((_flags & ~(0x3)) | iVertical ); } + inline void IntervalC::setAxis ( DbU::Unit axis ) { _axis = axis; } + inline DbU::Unit IntervalC::getAxis () const { return _axis; } + inline DbU::Unit IntervalC::getCenter() const { return getMin()+getMax(); } + inline DbU::Unit IntervalC::getMin () const { return _min; } + inline DbU::Unit IntervalC::getMax () const { return _max; } + inline void IntervalC::setiSet () { _flags |= iSet; } + inline bool IntervalC::isiSet () const { return _flags & iSet; } + inline bool IntervalC::isH () const { return _flags & iHorizontal; } + inline bool IntervalC::isV () const { return _flags & iVertical ; } + inline void IntervalC::setFlags ( unsigned int f ) { _flags = f ; } + inline unsigned int IntervalC::getFlags () const { return _flags; } + +// ------------------------------------------------------------------- +// Class : "Anabatic::GRAData". + + class GRAData + { + private: + GRAData(); + ~GRAData(); + public: + static GRAData* create(); + //////////////////////////////////////// GRDATA + inline bool isiSet () const; + inline IntervalC getInterv () const; + inline IntervalC getIntervFrom () const; + inline DbU::Unit getIAxis () const; + inline DbU::Unit getIMax () const; + inline DbU::Unit getIMin () const; + inline DbU::Unit getPIAxis () const; + inline DbU::Unit getPIMax () const; + inline DbU::Unit getPIMin () const; + + inline IntervalC getIntervFrom2 () const; + inline DbU::Unit getPIMax2 () const; + inline DbU::Unit getPIMin2 () const; + inline DbU::Unit getPIAxis2 () const; + + inline void setInterv ( DbU::Unit, DbU::Unit, DbU::Unit ); + inline void setIntervfrom ( DbU::Unit, DbU::Unit, DbU::Unit ); + inline void setIntervfrom2 ( DbU::Unit, DbU::Unit, DbU::Unit ); + void resetIntervals (); + void clearFrom2 (); + inline Edge* getFrom2 () const; + inline void setFrom2 ( Edge* ); + inline void printInterv () const; + inline void printIntervfrom () const; + + private: + IntervalC _intervfrom; + IntervalC _interv; + Edge* _from2; + IntervalC _intervfrom2; + }; + + inline bool GRAData::isiSet () const { return _interv.isiSet() ; } + inline IntervalC GRAData::getInterv () const { return _interv; } + inline IntervalC GRAData::getIntervFrom() const { return _intervfrom; } + inline DbU::Unit GRAData::getIAxis () const { return _interv.getAxis() ; } + inline DbU::Unit GRAData::getIMax () const { return _interv.getMax() ; } + inline DbU::Unit GRAData::getIMin () const { return _interv.getMin() ; } + inline DbU::Unit GRAData::getPIAxis () const { return _intervfrom.getAxis(); } + inline DbU::Unit GRAData::getPIMax () const { return _intervfrom.getMax() ; } + inline DbU::Unit GRAData::getPIMin () const { return _intervfrom.getMin() ; } + + inline DbU::Unit GRAData::getPIMax2 () const { return _intervfrom2.getMax() ; } + inline DbU::Unit GRAData::getPIMin2 () const { return _intervfrom2.getMin() ; } + inline DbU::Unit GRAData::getPIAxis2 () const { return _intervfrom2.getAxis(); } + inline IntervalC GRAData::getIntervFrom2 () const { return _intervfrom2; } + + inline void GRAData::setInterv ( DbU::Unit min, DbU::Unit max, DbU::Unit axis ) { _interv.set(min, max, axis); } + inline void GRAData::setIntervfrom ( DbU::Unit min, DbU::Unit max, DbU::Unit axis ) { _intervfrom.set(min, max, axis); } + inline void GRAData::setIntervfrom2( DbU::Unit min, DbU::Unit max, DbU::Unit axis ) { _intervfrom2.set(min, max, axis); } + + inline Edge* GRAData::getFrom2 () const { return _from2; } + inline void GRAData::setFrom2 ( Edge* from ) { _from2 = from; } + inline void GRAData::printInterv () const { _interv.print() ; } + inline void GRAData::printIntervfrom () const { _intervfrom.print(); } // ------------------------------------------------------------------- // Class : "Anabatic::Vertex". @@ -128,6 +182,9 @@ namespace Anabatic { , AxisTarget = (1<<4) , From2Mode = (1<<5) , UseFromFrom2 = (1<<6) + , iHorizontal = (1<<7) + , iVertical = (1<<8) + , iSet = (1<<9) }; public: static DbU::Unit unreached; @@ -184,64 +241,52 @@ namespace Anabatic { inline void setSRestricted (); inline void setERestricted (); inline void setWRestricted (); - //inline unsigned int getFlags () const; bool hasRP ( Net* ) const; bool hasVRP ( Net* ) const; bool hasHRP ( Net* ) const; - static bool isRestricted ( const Vertex* v1, const Vertex* v2 ); - static Point getNextPathPoint2( const Vertex*, const Vertex* ); - Point getPathPoint ( const Vertex * ) const; - inline void setIAsH (); - inline void setIAsV (); - inline DbU::Unit getIAxis () const; - //inline void setIAxis ( DbU::Unit ) ; - //inline DbU::Unit getICenter () const; - inline DbU::Unit getIMax () const; - inline DbU::Unit getIMin () const; - //inline void setPIAsH (); - //inline void setPIAsV (); - inline DbU::Unit getPIAxis () const; - //inline void setPIAxis ( DbU::Unit ) ; - //inline DbU::Unit getPICenter () const; - inline DbU::Unit getPIMax () const; - inline DbU::Unit getPIMin () const; - bool isH () const; - bool isV () const; - inline bool isiSet () const; - inline void setInterv ( DbU::Unit, DbU::Unit, DbU::Unit ); - inline void setIntervfrom ( DbU::Unit, DbU::Unit, DbU::Unit ); - //inline void setIRange ( DbU::Unit, DbU::Unit ); - //inline void setIRangeFrom ( DbU::Unit, DbU::Unit ); - //inline void printInterval () const ; - void setIntervals ( Vertex* ); - void resetIntervals (); - inline void setFlags ( unsigned int ); - inline bool isAxisTarget () const; - inline void unsetFlags ( unsigned int ); - inline void setAxisTarget (); - //DbU::Unit getXMinUnionfrom (); - //DbU::Unit getXMaxUnionfrom (); - //DbU::Unit getYMinUnionfrom (); - //DbU::Unit getYMaxUnionfrom (); - bool areSameSide ( const Vertex*, const Vertex* ) const; + static bool isRestricted ( const Vertex* v1, const Vertex* v2, DbU::Unit hpitch = 0, DbU::Unit vpitch = 0); + bool areSameSide ( const Vertex*, const Vertex* ) const; + + inline bool isFromFrom2 () const; + inline bool isFrom2Mode () const; + inline bool isAxisTarget () const; + inline bool isiHorizontal() const; + inline bool isiVertical () const; + inline void setFlags ( unsigned int ); + inline void unsetFlags ( unsigned int ); + bool isH () const; + bool isV () const; + inline void createAData (); + //////////////////////////////////// Point getStartPathPoint ( const Vertex* next ) const; Point getNextPathPoint ( Point, const Vertex* ) const; + //////////////////////////////////////// GRDATA + void setIntervals ( Vertex* ); + + bool isiSet () const; + DbU::Unit getIAxis () const; + DbU::Unit getIMax () const; + DbU::Unit getIMin () const; + DbU::Unit getPIAxis () const; + DbU::Unit getPIMax () const; + DbU::Unit getPIMin () const; + void setInterv ( DbU::Unit, DbU::Unit, DbU::Unit ); + void setIntervfrom ( DbU::Unit, DbU::Unit, DbU::Unit ); + void setIntervfrom2 ( DbU::Unit, DbU::Unit, DbU::Unit ); + void resetIntervals (); void clearFrom2 (); - inline void setFrom2Mode (); - inline void unsetFrom2Mode (); - inline bool isFrom2Mode () const; - inline Edge* getFrom2 () const; - inline bool isFromFrom2 () const; - inline void setFromFrom2 () ; - inline void unsetFromFrom2 () ; - //inline Vertex* getPredecessor2 () const; - inline void setFrom2 ( Edge* ); - inline void createIntervFrom2 (); - inline DbU::Unit getPIMax2 () const; - inline DbU::Unit getPIMin2 () const; - inline DbU::Unit getPIAxis2 () const; - inline IntervalC* getIntervFrom2 () const; - inline IntervalC* getIntervFrom () const; + Edge* getFrom2 () const; + void setFrom2 ( Edge* ); + void createIntervFrom2 (); + DbU::Unit getPIMax2 () const; + DbU::Unit getPIMin2 () const; + DbU::Unit getPIAxis2 () const; + IntervalC getIntervFrom2 () const; + IntervalC getIntervFrom ( unsigned int criteria = 0 ) const; + IntervalC getInterv () const; + void printInterv () const; + void printIntervfrom () const; + GCell* getGPrev ( unsigned int criteria = 0 ) const; // Inspector support. string _getString () const; @@ -261,10 +306,7 @@ namespace Anabatic { DbU::Unit _distance; Edge* _from; unsigned int _flags; - IntervalC* _intervfrom; - IntervalC* _interv; - Edge* _from2; - IntervalC* _intervfrom2; + GRAData* _adata; }; @@ -280,11 +322,7 @@ namespace Anabatic { , _distance(unreached) , _from (NULL) , _flags (NoRestriction) - - , _intervfrom (IntervalC::create()) - , _interv (IntervalC::create()) - , _from2 (NULL) - , _intervfrom2(NULL) + , _adata (NULL) { gcell->setObserver( GCell::Observable::Vertex, &_observer ); } @@ -340,50 +378,14 @@ namespace Anabatic { inline void Vertex::setSRestricted () { _flags |= SRestricted; } inline void Vertex::setERestricted () { _flags |= ERestricted; } inline void Vertex::setWRestricted () { _flags |= WRestricted; } -//inline unsigned int Vertex::getFlags () const { return _flags; } -//inline void Vertex::setIAxis ( DbU::Unit axis ) { _interv->setAxis(axis); } - inline DbU::Unit Vertex::getIAxis () const { return _interv->getAxis(); } - inline void Vertex::setIAsH () { _interv->setAsH(); } - inline void Vertex::setIAsV () { _interv->setAsV(); } -//inline DbU::Unit Vertex::getICenter () const { return _interv->getCenter(); } - inline DbU::Unit Vertex::getIMax () const { return _interv->getMax(); } - inline DbU::Unit Vertex::getIMin () const { return _interv->getMin(); } -//inline void Vertex::setPIAxis ( DbU::Unit axis ) { _intervfrom->setAxis(axis); } - inline DbU::Unit Vertex::getPIAxis () const { return _intervfrom->getAxis(); } -//inline void Vertex::setPIAsH () { _intervfrom->setAsH(); } -//inline void Vertex::setPIAsV () { _intervfrom->setAsV(); } -//inline DbU::Unit Vertex::getPICenter() const { return _intervfrom->getCenter(); } - inline DbU::Unit Vertex::getPIMax () const { return _intervfrom->getMax(); } - inline DbU::Unit Vertex::getPIMin () const { return _intervfrom->getMin(); } - inline bool Vertex::isiSet () const { return _interv->isiSet(); } - - inline void Vertex::setInterv ( DbU::Unit min, DbU::Unit max, DbU::Unit axis ) { _interv->set(min, max, axis); } - inline void Vertex::setIntervfrom( DbU::Unit min, DbU::Unit max, DbU::Unit axis ) { _intervfrom->set(min, max, axis); } -//inline void Vertex::setIRange ( DbU::Unit min, DbU::Unit max ) { _interv->setRange(min, max); } -//inline void Vertex::setIRangeFrom( DbU::Unit min, DbU::Unit max ) { _intervfrom->setRange(min, max); } -//inline void Vertex::printInterval() const { _interv->print(); } - - inline void Vertex::setAxisTarget() { _flags |= AxisTarget; } - inline bool Vertex::isAxisTarget () const { return (_flags & AxisTarget); } + inline bool Vertex::isFromFrom2 () const { return (_flags & Vertex::UseFromFrom2); } + inline bool Vertex::isFrom2Mode () const { return (_flags & Vertex::From2Mode ); } + inline bool Vertex::isAxisTarget () const { return (_flags & Vertex::AxisTarget ); } + inline bool Vertex::isiHorizontal() const { return (_flags & Vertex::iHorizontal ); } + inline bool Vertex::isiVertical () const { return (_flags & Vertex::iVertical ); } + inline void Vertex::setFlags ( unsigned int mask ) { _flags |= mask ; } inline void Vertex::unsetFlags ( unsigned int mask ) { _flags &= ~mask; } - inline void Vertex::setFrom2Mode () { _flags |= Vertex::From2Mode; } - inline void Vertex::unsetFrom2Mode () { unsetFlags(Vertex::From2Mode); } - inline bool Vertex::isFrom2Mode () const { return (_flags & Vertex::From2Mode); } - inline Edge* Vertex::getFrom2 () const { return _from2; } - - inline void Vertex::setFromFrom2 () { _flags |= Vertex::UseFromFrom2; } - inline void Vertex::unsetFromFrom2 () { unsetFlags(Vertex::UseFromFrom2); } - inline bool Vertex::isFromFrom2 () const { return (_flags & Vertex::UseFromFrom2); } -//inline Vertex* Vertex::getPredecessor2 () const -//{ return (hasValidStamp() and _from2) ? _from2->getOpposite(_gcell)->getObserver(GCell::Observable::Vertex) : NULL; } - inline void Vertex::setFrom2 ( Edge* from ) { _from2=from; } - inline void Vertex::createIntervFrom2() { _intervfrom2 = IntervalC::create(); } - inline DbU::Unit Vertex::getPIMax2 () const { return _intervfrom2->getMax() ; } - inline DbU::Unit Vertex::getPIMin2 () const { return _intervfrom2->getMin() ; } - inline DbU::Unit Vertex::getPIAxis2 () const { return _intervfrom2->getAxis(); } - inline IntervalC* Vertex::getIntervFrom2 () const { return _intervfrom2; } - inline IntervalC* Vertex::getIntervFrom () const { return _intervfrom; } // ------------------------------------------------------------------- // Class : "Anabatic::PriorityQueue". @@ -489,8 +491,6 @@ namespace Anabatic { Dijkstra ( const Dijkstra& ); Dijkstra& operator= ( const Dijkstra& ); static DbU::Unit _distance ( const Vertex*, const Vertex*, const Edge* ); - DbU::Unit _getDistancetoRP ( Point ); - DbU::Unit _estimatePtoRP ( Point, RoutingPad*, Vertex* ); Point _getPonderedPoint () const; void _cleanup (); bool _propagate ( Flags enabledSides ); @@ -502,12 +502,23 @@ namespace Anabatic { void _checkEdges () const; void _createSelfSymSeg ( Segment* ); - inline void setAxisTarget (); - inline bool needAxisTarget () const; - inline void setFlags ( unsigned int ); - inline void unsetFlags ( unsigned int ); - void setAxisTargets (); - void unsetAxisTargets (); + inline void setAxisTarget (); + inline bool needAxisTarget () const; + inline void setFlags ( unsigned int ); + inline void unsetFlags ( unsigned int ); + void setAxisTargets (); + void unsetAxisTargets (); + + bool _attachSymContactsHook ( RoutingPad* ); + void _limitSymSearchArea ( RoutingPad* rp ); + void _setSourcesGRAData ( Vertex*, RoutingPad*); + bool _checkFrom2 ( Edge*, Vertex* ); + bool _isDistance2Shorter ( DbU::Unit&, Vertex*, Vertex*, Edge* ); + void _pushEqualDistance ( DbU::Unit, bool, Vertex*, Vertex*, Edge* ); + void _updateGRAData ( Vertex*, bool, Vertex* ); + void _initiateUpdateIntervals ( Vertex* ); + bool _updateIntervals ( bool&, Vertex*, bool&, int&, Edge* ); + private: AnabaticEngine* _anabatic; vector _vertexes; @@ -538,7 +549,7 @@ namespace Anabatic { inline DistanceT* Dijkstra::setDistance ( DistanceT cb ) { _distanceCb = cb; return _distanceCb.target(); } inline void Dijkstra::setFlags ( unsigned int mask ) { _flags |= mask; } - inline bool Dijkstra::needAxisTarget () const { return (_flags & Mode::AxisTarget); } + inline bool Dijkstra::needAxisTarget () const { return (_flags & Mode::AxisTarget); } inline void Dijkstra::unsetFlags ( unsigned int mask ) { _flags &= ~mask; } } // Anabatic namespace. From ef69a6d58680f4b50e71d6d5b3b402e5a485a87e Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Sun, 30 Apr 2017 23:46:33 +0200 Subject: [PATCH 04/30] Support for symmetric routing in Anabatic/Katabatic. * New: In Katana::SegmentFsm, the object is now able to handle two events at the same time. The master and it's symmetric. When there is no symmetric, the corresponing data is just left blank. This makes a bigger object, but as there is only one when running, it is not an issue. Candidates tracks are now an vector of array<2> (pairs), the TrackCost::Compare() functor has to be wrapped through CompareCostArray. The compined TrackCost of the two tracks is accumulated into the first element. Everything related to events gets duplicated: _event is now _event1 and _event2, and so on. As there can be now two Manipulator actions done with SegmentFsm, this class now completly hide the Manipulator level from the RoutingEvent processing. New function ::bindToTrack() to perform the track insertion. * New: In Katana::TrackCost, add a new ::merge() function. * New: In Katana::TrackElement and Katana::TrackSegment, add symmetric management. Allows to know if a TrackElement has a symmetric and to access it. * New: In Katana::DataSymmetric, add new overload for ::getSymmetrical() to handle DbU::Unit and intervals. * Change: In Katana::RoutingEvent, remove all direct uses of Manipulator objects. Now any change to the event associated segment must go through call to Segment Fsm. * Change: In Katana, adjust the debug level so internal informations are put below level 156. * New: In Hurricane::DbU, in ::getValueString(), special display when the value is Min or Max (more helpful than a gigantic number). --- anabatic/src/AutoSegment.cpp | 46 ++-- hurricane/src/hurricane/DbU.cpp | 7 +- katana/src/DataNegociate.cpp | 2 +- katana/src/DataSymmetric.cpp | 17 +- katana/src/GraphicKatanaEngine.cpp | 5 +- katana/src/Manipulator.cpp | 36 +-- katana/src/RoutingEvent.cpp | 43 ++-- katana/src/SegmentFsm.cpp | 342 +++++++++++++++++++++------- katana/src/SymmetricRoute.cpp | 43 +++- katana/src/TrackCost.cpp | 15 +- katana/src/TrackElement.cpp | 3 + katana/src/TrackSegment.cpp | 24 +- katana/src/TrackSegmentCost.cpp | 2 +- katana/src/Tracks.cpp | 30 +-- katana/src/katana/DataSymmetric.h | 60 +++-- katana/src/katana/KatanaEngine.h | 4 + katana/src/katana/NegociateWindow.h | 51 +++-- katana/src/katana/RoutingEvent.h | 8 +- katana/src/katana/SegmentFsm.h | 174 ++++++++------ katana/src/katana/TrackCost.h | 7 +- katana/src/katana/TrackElement.h | 3 + katana/src/katana/TrackSegment.h | 4 + 22 files changed, 622 insertions(+), 304 deletions(-) diff --git a/anabatic/src/AutoSegment.cpp b/anabatic/src/AutoSegment.cpp index be78df56..1dc88802 100644 --- a/anabatic/src/AutoSegment.cpp +++ b/anabatic/src/AutoSegment.cpp @@ -822,7 +822,7 @@ namespace Anabatic { DbU::Unit optimalMax = min( max(getOptimalMax(),constraintMin), constraintMax ); cdebug_log(149,0) << "optimal:[" << DbU::getValueString(optimalMin) - << " " << DbU::getValueString(optimalMin) << "]" << endl; + << " " << DbU::getValueString(optimalMax) << "]" << endl; if (getAxis() < optimalMin) { setAxis( optimalMin, flags ); @@ -973,30 +973,30 @@ namespace Anabatic { if (perpandMin < minGCell) attractors.addAttractor( minGCell ); if (perpandMax > maxGCell) attractors.addAttractor( maxGCell ); - } else if (autoSegment->isLongLocal()) { - cdebug_log(145,0) << "| Used as long global attractor." << endl; - - DbU::Unit perpandMin = autoSegment->getSourceU(); - DbU::Unit perpandMax = autoSegment->getTargetU(); - - if (perpandMin != perpandMax) { - if (perpandMin == getAxis()) attractors.addAttractor( perpandMax ); - if (perpandMax == getAxis()) attractors.addAttractor( perpandMin ); - } } else if (autoSegment->isLocal()) { - if (not autoSegment->isStrongTerminal()) { cdebug_tabw(145,-1); continue; } + if (autoSegment->isStrongTerminal()) { + DbU::Unit terminalMin; + DbU::Unit terminalMax; - DbU::Unit terminalMin; - DbU::Unit terminalMax; - - if (getTerminalInterval( *autoSegment - , NULL - , isHorizontal() - , terminalMin - , terminalMax )) { - attractors.addAttractor( terminalMin ); - if (terminalMin != terminalMax) - attractors.addAttractor( terminalMax ); + if (getTerminalInterval( *autoSegment + , NULL + , isHorizontal() + , terminalMin + , terminalMax )) { + attractors.addAttractor( terminalMin ); + if (terminalMin != terminalMax) + attractors.addAttractor( terminalMax ); + } + } else if (autoSegment->isLongLocal()) { + cdebug_log(145,0) << "| Used as long global attractor." << endl; + + DbU::Unit perpandMin = autoSegment->getSourceU(); + DbU::Unit perpandMax = autoSegment->getTargetU(); + + if (perpandMin != perpandMax) { + if (perpandMin == getAxis()) attractors.addAttractor( perpandMax ); + if (perpandMax == getAxis()) attractors.addAttractor( perpandMin ); + } } } cdebug_tabw(145,-1); diff --git a/hurricane/src/hurricane/DbU.cpp b/hurricane/src/hurricane/DbU.cpp index 319b8954..56725241 100644 --- a/hurricane/src/hurricane/DbU.cpp +++ b/hurricane/src/hurricane/DbU.cpp @@ -323,7 +323,12 @@ namespace Hurricane { case Kilo: unitPower = 'k'; break; default: unitPower = '?'; break; } - os << setprecision(3) << toPhysical(u,_stringModeUnitPower); + switch ( u ) { + case Min: os << "MIN:"; break; + case Max: os << "MAX:"; break; + default: + os << setprecision(3) << toPhysical(u,_stringModeUnitPower); + } } else { if (_stringMode != Db) cerr << "[ERROR] Unknown Unit representation mode: " << _stringMode << endl; diff --git a/katana/src/DataNegociate.cpp b/katana/src/DataNegociate.cpp index 0014e90d..ead77203 100644 --- a/katana/src/DataNegociate.cpp +++ b/katana/src/DataNegociate.cpp @@ -79,7 +79,7 @@ namespace Katana { void DataNegociate::update () { - DebugSession::open( _trackSegment->getNet(), 150, 160 ); + DebugSession::open( _trackSegment->getNet(), 156, 160 ); //cdebug_log(9000,0) << "Deter| DataNegociate::update() - " << _trackSegment << endl; cdebug_log(159,1) << "DataNegociate::update() - " << _trackSegment << endl; diff --git a/katana/src/DataSymmetric.cpp b/katana/src/DataSymmetric.cpp index f0b44a6c..cab79906 100644 --- a/katana/src/DataSymmetric.cpp +++ b/katana/src/DataSymmetric.cpp @@ -15,6 +15,7 @@ #include "anabatic/AutoSegment.h" #include "katana/DataSymmetric.h" +#include "katana/Session.h" namespace { @@ -124,6 +125,10 @@ namespace Katana { const unsigned int mask = ~(AutoSegmentFlag::SegIsReduced); Message errors ( 0, "[ERROR]" ); + // Temporary hardwired: M2 (depth 1) for H pitch, M3 (depth 2) for V pitch. + DbU::Unit hPitch = Session::getPitch( 1 ); + DbU::Unit vPitch = Session::getPitch( 2 ); + size_t refs = 0; size_t syms = 0; for ( const array& paired : _paireds ) { @@ -162,7 +167,7 @@ namespace Katana { _valid = false; } - if (2*getSymAxis() - paired[0]->getAxis() != paired[1]->getAxis()) { + if (std::abs( 2*getSymAxis() - paired[0]->getAxis() - paired[1]->getAxis() ) > 2*vPitch ) { errors.newline() << "Mirror axis mismatch @ [" << index << "] " << DbU::getValueString(paired[1]->getAxis()) << " (should be: " << DbU::getValueString(2*getSymAxis() - paired[0]->getAxis()) << ")"; @@ -179,7 +184,7 @@ namespace Katana { _valid = false; } - if (paired[0]->getAxis() != paired[1]->getAxis()) { + if ( std::abs( paired[0]->getAxis() - paired[1]->getAxis() ) > 2*hPitch ) { errors.newline() << "Axis mismatch index " << index << " " << DbU::getValueString(paired[1]->getAxis()) << " (should be:" << DbU::getValueString(paired[0]->getAxis()) << ")"; @@ -190,7 +195,7 @@ namespace Katana { } } else { if (paired[0]->isHorizontal()) { - if (2*getSymAxis() - paired[0]->getAxis() != paired[1]->getAxis()) { + if ( std::abs( 2*getSymAxis() - paired[0]->getAxis() - paired[1]->getAxis() ) > 2*hPitch ) { errors.newline() << "Mirror axis mismatch index " << index << " " << DbU::getValueString(paired[1]->getAxis()) << " (should be:" << DbU::getValueString(2*getSymAxis() - paired[0]->getAxis()) << ")"; @@ -199,7 +204,7 @@ namespace Katana { _valid = false; } } else { - if (paired[0]->getAxis() != paired[1]->getAxis()) { + if ( std::abs( paired[0]->getAxis() != paired[1]->getAxis() ) > 2*vPitch ) { errors.newline() << "Axis mismatch index " << index << " " << DbU::getValueString(paired[1]->getAxis()) << " (should be:" << DbU::getValueString(paired[0]->getAxis()) << ")"; @@ -217,10 +222,10 @@ namespace Katana { errors.newline(); if (errors.size()) { - cmess2 << " pairing failed." << endl; + //cmess2 << " pairing failed." << endl; errors.print( cmess2 ); } else { - cmess2 << " paired." << endl; + //cmess2 << " paired." << endl; } return _valid; diff --git a/katana/src/GraphicKatanaEngine.cpp b/katana/src/GraphicKatanaEngine.cpp index 1a7ff74d..a6b03a0b 100644 --- a/katana/src/GraphicKatanaEngine.cpp +++ b/katana/src/GraphicKatanaEngine.cpp @@ -275,9 +275,10 @@ namespace Katana { KatanaEngine* katana = getForFramework( NoFlags ); if (katana) { katana->loadGlobalRouting( Anabatic::EngineLoadGrByNet ); - katana->runTest(); + // Now done through Horus. + //katana->runTest(); katana->runNegociate( Flags::SymmetricStage ); - katana->runNegociate(); + //katana->runNegociate(); } } diff --git a/katana/src/Manipulator.cpp b/katana/src/Manipulator.cpp index 570259e5..78cf667b 100644 --- a/katana/src/Manipulator.cpp +++ b/katana/src/Manipulator.cpp @@ -95,7 +95,7 @@ namespace Katana { if (not _segment) throw Error( "Manipulator::Manipulator(): cannot build upon a NULL TrackElement." ); - DebugSession::open( _segment->getNet(), 149, 160 ); + DebugSession::open( _segment->getNet(), 156, 160 ); _data = _segment->getDataNegociate(); if (_data) _event = _data->getRoutingEvent(); @@ -635,7 +635,8 @@ namespace Katana { bool rightIntrication = false; bool success = true; - cdebug_log(159,0) << "Manipulator::insertInTrack() - " << toFree << endl; + cdebug_log(159,1) << "Manipulator::insertInTrack(size_t) - " << toFree << endl; + cdebug_log(159,0) << _segment << endl; for ( size_t i = begin ; success && (i < end) ; i++ ) { TrackElement* segment2 = track->getSegment(i); @@ -748,6 +749,10 @@ namespace Katana { } } if ( shrinkLeft ) { + cdebug_log(159,0) << "Move PP to right: " + << DbU::getValueString(toFree.getVMax()) << " + " + << DbU::getValueString(getPPitch()/2) + << endl; if ( not (success=Manipulator(segment3,_fsm) .ripup( SegmentAction::OtherRipupPerpandAndPushAside , toFree.getVMax() + getPPitch()/2 @@ -763,8 +768,7 @@ namespace Katana { } } else { if ( not (success=Manipulator(segment3,_fsm).ripup( SegmentAction::OtherRipup - | SegmentAction::EventLevel3 - )) ) + | SegmentAction::EventLevel3 )) ) break; } } @@ -774,10 +778,10 @@ namespace Katana { if ( success ) { cdebug_log(159,0) << "Manipulator::insertInTrack() success" << endl; - _fsm.setState ( SegmentFsm::OtherRipup ); - _fsm.addAction ( _segment - , SegmentAction::SelfInsert|SegmentAction::MoveToAxis|SegmentAction::EventLevel4 - , _fsm.getCost(itrack).getTrack()->getAxis() ); + _fsm.setState ( SegmentFsm::OtherRipup ); + _fsm.addAction( _segment + , SegmentAction::SelfInsert|SegmentAction::MoveToAxis|SegmentAction::EventLevel4 + , _fsm.getCost(itrack).getTrack()->getAxis() ); unsigned int flags = 0; if ( rightIntrication ) flags |= RightAxisHint; @@ -787,6 +791,7 @@ namespace Katana { } else _fsm.clearActions (); + cdebug_tabw(159,-1); return success; } @@ -802,7 +807,7 @@ namespace Katana { set canonicals; bool success = true; - cdebug_log(159,0) << "Manipulator::forceToTrack() - " << toFree << endl; + cdebug_log(159,1) << "Manipulator::forceToTrack(size_t) - " << toFree << endl; for ( size_t i=begin ; success and (i < end) ; ++i ) { TrackElement* segment2 = track->getSegment(i); @@ -829,7 +834,7 @@ namespace Katana { canonicals.clear(); for( TrackElement* segment3 - : segment2->getPerpandiculars().getSubSet(TrackElements_UniqCanonical(canonicals)) ) { + : segment2->getPerpandiculars().getSubSet(TrackElements_UniqCanonical(canonicals)) ) { DataNegociate* data3 = segment3->getDataNegociate(); if (not data3) continue; @@ -848,6 +853,7 @@ namespace Katana { , _fsm.getCost(itrack).getTrack()->getAxis() ); } + cdebug_tabw(159,-1); return success; } @@ -926,15 +932,15 @@ namespace Katana { { cdebug_log(159,1) << "Manipulator::forceOverLocals()" << endl; - vector& costs = _fsm.getCosts(); + vector< array >& costs = _fsm.getCosts(); size_t itrack = 0; for ( ; itrack " << fork << endl; + cdebug_log(159,0) << "Reschedule: cancelled (Unimplemented) -> " << fork << endl; return NULL; } if (not isProcessed()) { fork = this; - cdebug_log(159,0) << "Reschedule/Self: " - << " -> " - << eventLevel << ":" << fork << endl; + cdebug_log(159,0) << "Reschedule/Self: -> " + << eventLevel << ":" << fork << endl; } else { fork = clone(); fork->_processed = false; _segment->getDataNegociate()->setRoutingEvent( fork ); - cdebug_log(159,0) << "Reschedule/Fork: " - << " -> " << fork << endl; + cdebug_log(159,0) << "Reschedule/Fork: -> " << fork << endl; } if (fork->_eventLevel < eventLevel) @@ -393,7 +390,7 @@ namespace Katana { #endif } - DebugSession::open( _segment->getNet(), 149, 160 ); + DebugSession::open( _segment->getNet(), 156, 160 ); cdebug_log(9000,0) << "Deter| Event " << getProcesseds() @@ -418,6 +415,9 @@ namespace Katana { if ( isProcessed() or isDisabled() ) { cdebug_log(159,0) << "Already processed or disabled." << endl; } else { + if (_segment->hasSymmetric()) { + } + setProcessed(); setTimeStamp( _processeds ); @@ -460,7 +460,7 @@ namespace Katana { cdebug_tabw(159,1); - fsm.getData()->incRipupCount(); + fsm.incRipupCount(); cdebug_log(159,0) << "| Candidate Tracks:" << endl; size_t itrack = 0; @@ -468,22 +468,16 @@ namespace Katana { cdebug_log(159,0) << "| " << itrack << ":" << fsm.getCost(itrack) << endl; itrack = 0; - if ( (not isOverConstrained()) and Manipulator(_segment,fsm).canRipup() ) { + if ( (not isOverConstrained()) and fsm.canRipup() ) { if (fsm.getCosts().size() and fsm.getCost(itrack).isFree()) { cdebug_log(159,0) << "Insert in free space " << this << endl; - resetInsertState(); - - _axisHistory = _segment->getAxis(); - _eventLevel = 0; - cdebug_log(9000,0) << "Deter| addInsertEvent() @" << fsm.getCost(itrack).getTrack() << endl; - Session::addInsertEvent( _segment, fsm.getCost(itrack).getTrack() ); - fsm.setState( SegmentFsm::SelfInserted ); + fsm.bindToTrack( itrack ); } else { // Do ripup. if (fsm.getState() == SegmentFsm::EmptyTrackList) { - Manipulator(_segment,fsm).ripupPerpandiculars(); + fsm.ripupPerpandiculars(); } else { - if (Manipulator(_segment,fsm).canRipup(Manipulator::NotOnLastRipup)) { + if (fsm.canRipup(Manipulator::NotOnLastRipup)) { if (cdebug.enabled(9000)) { for ( itrack=0 ; itracksetState( DataNegociate::Slacken ); + fsm.setDataState( DataNegociate::Slacken ); } if (not fsm.slackenTopology()) { fsm.setState( SegmentFsm::SelfMaximumSlack ); @@ -545,8 +539,7 @@ namespace Katana { and (fsm.getCost(0).getTrack() != _segment->getTrack()) ) { cerr << "_processPack(): move to " << fsm.getCost(0).getTrack() << endl; - Session::addMoveEvent( _segment, fsm.getCost(0).getTrack() ); - fsm.setState( SegmentFsm::SelfInserted ); + fsm.moveToTrack( 0 ); } } @@ -563,6 +556,7 @@ namespace Katana { SegmentFsm fsm ( this, queue, history ); if (fsm.getState() == SegmentFsm::MissingData ) return; if (fsm.getState() == SegmentFsm::EmptyTrackList) return; + if (fsm.isSymmetric()) return; cdebug_tabw(159,1); for ( size_t i = 0 ; i < fsm.getCosts().size() ; i++ ) @@ -571,8 +565,7 @@ namespace Katana { if (fsm.getCosts().size() and fsm.getCost(0).isFree()) { cdebug_log(159,0) << "Insert in free space." << endl; - Session::addInsertEvent( _segment, fsm.getCost(0).getTrack() ); - fsm.setState( SegmentFsm::SelfInserted ); + fsm.bindToTrack( 0 ); } else { switch ( fsm.getData()->getStateCount() ) { case 1: @@ -599,7 +592,7 @@ namespace Katana { void RoutingEvent::revalidate () { - DebugSession::open( _segment->getNet(), 150, 160 ); + DebugSession::open( _segment->getNet(), 156, 160 ); cdebug_log(159,1) << "RoutingEvent::revalidate() - " << this << endl; diff --git a/katana/src/SegmentFsm.cpp b/katana/src/SegmentFsm.cpp index 119b788b..8748fe49 100644 --- a/katana/src/SegmentFsm.cpp +++ b/katana/src/SegmentFsm.cpp @@ -36,6 +36,26 @@ namespace { using namespace Katana; +// ------------------------------------------------------------------- +// Class : "CompareCostArray". + + class CompareCostArray { + public: + inline CompareCostArray ( unsigned int flags=0 ); + inline bool operator() ( const array& lhs, const array& rhs ); + private: + TrackCost::Compare _compare; + }; + + + inline CompareCostArray::CompareCostArray ( unsigned int flags ) + : _compare(flags) + { } + + inline bool CompareCostArray::operator() ( const array& lhs, const array& rhs ) + { return _compare( lhs[0], rhs[0] ); } + + // ------------------------------------------------------------------- // Class : "Cs1Candidate". @@ -363,7 +383,7 @@ namespace Katana { // "_immediate" ripup flags was associated with "perpandicular", as they // must be re-inserted *before* any parallel. Must look to solve the redundancy. - DebugSession::open( _segment->getNet(), 150, 160 ); + DebugSession::open( _segment->getNet(), 156, 160 ); if (_type & Perpandicular) { cdebug_log(159,0) << "* Riping Pp " << _segment << endl; @@ -438,43 +458,85 @@ namespace Katana { // Class : "SegmentFsm". - SegmentFsm::SegmentFsm ( RoutingEvent* event, RoutingEventQueue& queue, RoutingEventHistory& history ) - : _event (event) + SegmentFsm::SegmentFsm ( RoutingEvent* event1 + , RoutingEventQueue& queue + , RoutingEventHistory& history ) + : _event1 (event1) + , _event2 (NULL) , _queue (queue) , _history (history) , _state (0) - , _data (NULL) + , _data1 (NULL) + , _data2 (NULL) , _constraint () , _optimal () , _costs () , _actions () , _fullBlocked(true) + , _sameAxis (false) + , _useEvent2 (false) { - TrackElement* segment = _event->getSegment(); - unsigned int depth = Session::getRoutingGauge()->getLayerDepth(segment->getLayer()); - _event->setTracksFree( 0 ); + DataSymmetric* symData = NULL; + TrackElement* segment1 = _event1->getSegment(); + TrackElement* segment2 = segment1->getSymmetric(); + unsigned int depth = Session::getRoutingGauge()->getLayerDepth(segment1->getLayer()); + _event1->setTracksFree( 0 ); - _data = segment->getDataNegociate(); - if (not _data) { + _data1 = segment1->getDataNegociate(); + if (not _data1) { _state = MissingData; return; } - _data->update(); - _event->revalidate(); + _data1->update(); + _event1->revalidate(); - _constraint = _event->getConstraints(); - _optimal = _event->getOptimal(); + if (segment2) { + symData = Session::getKatanaEngine()->getDataSymmetric( segment1->getNet() ); - const Interval& perpandicular = _event->getPerpandicularFree(); + _data2 = segment2->getDataNegociate(); + if (not _data2 or not symData) { + _state = MissingData; + return; + } + + _event2 = _data2->getRoutingEvent(); + _event2->setTracksFree( 0 ); + + _data2->update(); + _event2->revalidate(); + + _sameAxis = (segment1->isVertical() xor symData->isSymVertical()); + } + + Interval perpandicular = _event1->getPerpandicularFree(); + cdebug_log(159,0) << "* Perpandicular (master): " << perpandicular << endl; + + _constraint = _event1->getConstraints(); + _optimal = _event1->getOptimal(); + if (_event2) { + if (_sameAxis) { + _constraint .intersection( _event2->getConstraints() ); + perpandicular.intersection( _event2->getPerpandicularFree() ); + + cdebug_log(159,0) << "* Perpandicular (slave): same axis " + << _event2->getPerpandicularFree() << endl; + } else { + _constraint .intersection( symData->getSymmetrical( _event2->getConstraints() ) ); + perpandicular.intersection( symData->getSymmetrical( _event2->getPerpandicularFree() ) ); + + cdebug_log(159,0) << "* Perpandicular (slave): PP axis " + << symData->getSymmetrical(_event2->getPerpandicularFree()) << endl; + } + } cdebug_log(159,0) << "Anabatic intervals:" << endl; cdebug_log(159,0) << "* Optimal: " << _optimal << endl; cdebug_log(159,0) << "* Constraints: " << _constraint << endl; cdebug_log(159,0) << "* Perpandicular: " << perpandicular << endl; - cdebug_log(159,0) << "* AxisHint: " << DbU::getValueString(_event->getAxisHint()) << endl; + cdebug_log(159,0) << "* AxisHint: " << DbU::getValueString(_event1->getAxisHint()) << endl; - if (_event->getTracksNb()) { + if (_event1->getTracksNb()) { if (_constraint.getIntersection(perpandicular).isEmpty()) { cdebug_log(159,0) << "Perpandicular free is too tight." << endl; _state = EmptyTrackList; @@ -487,46 +549,64 @@ namespace Katana { if (_state == EmptyTrackList) return; - cdebug_log(159,0) << "Negociate intervals:" << endl; - cdebug_log(159,0) << "* Optimal: " << _optimal << endl; - cdebug_log(159,1) << "* Constraints: " << _constraint << endl; + cdebug_log(159,0) << "Negociate intervals:" << endl; + cdebug_log(159,0) << "* Optimal: " << _optimal << endl; + cdebug_log(159,0) << "* Constraints: " << _constraint << endl; + cdebug_log(159,1) << "* _sameAxis: " << _sameAxis << endl; // if ( segment->isLocal() and (_data->getState() >= DataNegociate::MaximumSlack) ) // _constraint.inflate ( 0, DbU::lambda(1.0) ); bool inLocalDepth = (depth < 3); - bool isOneLocalTrack = (segment->isLocal()) - and (segment->base()->getAutoSource()->getGCell()->getGlobalsCount(depth) >= 9.0); + bool isOneLocalTrack = (segment1->isLocal()) + and (segment1->base()->getAutoSource()->getGCell()->getGlobalsCount(depth) >= 9.0); - RoutingPlane* plane = Session::getKatanaEngine()->getRoutingPlaneByLayer(segment->getLayer()); - for ( Track* track : Tracks_Range::get(plane,_constraint) ) { + RoutingPlane* plane = Session::getKatanaEngine()->getRoutingPlaneByLayer(segment1->getLayer()); + for ( Track* track1 : Tracks_Range::get(plane,_constraint) ) { unsigned int costflags = 0; - costflags |= (segment->isLocal() and (depth >= 3)) ? TrackCost::LocalAndTopDepth : 0; + costflags |= (segment1->isLocal() and (depth >= 3)) ? TrackCost::LocalAndTopDepth : 0; - if (not segment->isReduced()) - _costs.push_back( track->getOverlapCost(segment,costflags) ); - else - _costs.push_back( TrackCost(track,segment->getNet()) ); - _costs.back().setAxisWeight ( _event->getAxisWeight(track->getAxis()) ); - _costs.back().incDeltaPerpand( _data->getWiringDelta(track->getAxis()) ); - if (segment->isGlobal()) { - cdebug_log(9000,0) << "Deter| setForGlobal() on " << track << endl; - _costs.back().setForGlobal(); + Track* track2 = NULL; + if (_event2) { + track2 = + (_sameAxis) ? track1 : plane->getTrackByPosition( symData->getSymmetrical( track1->getAxis() ) ); } - if ( inLocalDepth and (_costs.back().getDataState() == DataNegociate::MaximumSlack) ) - _costs.back().setInfinite(); + _costs.push_back( array( { TrackCost(NULL), TrackCost(NULL) } ) ); + if (not segment1->isReduced()) { + _costs.back()[0] = track1->getOverlapCost(segment1,costflags); + if (_event2) _costs.back()[1] = track2->getOverlapCost(segment2,costflags); + } else { + _costs.back()[0] = TrackCost(track1); + if (_event2) _costs.back()[1] = TrackCost(track2); + } + + _costs.back()[0].setAxisWeight ( _event1->getAxisWeight(track1->getAxis()) ); + _costs.back()[0].incDeltaPerpand( _data1->getWiringDelta(track1->getAxis()) ); + if (_event2) { + _costs.back()[1].setAxisWeight ( _event2->getAxisWeight(track2->getAxis()) ); + _costs.back()[1].incDeltaPerpand( _data2->getWiringDelta(track2->getAxis()) ); + _costs.back()[0].merge( _costs.back()[1] ); + } + + if (segment1->isGlobal()) { + cdebug_log(9000,0) << "Deter| setForGlobal() on " << track1 << endl; + _costs.back()[0].setForGlobal(); + } + + if ( inLocalDepth and (_costs.back()[0].getDataState() == DataNegociate::MaximumSlack) ) + _costs.back()[0].setInfinite(); if ( isOneLocalTrack - and _costs.back().isOverlapGlobal() - and (_costs.back().getDataState() >= DataNegociate::ConflictSolveByHistory) ) - _costs.back().setInfinite(); + and _costs.back()[0].isOverlapGlobal() + and (_costs.back()[0].getDataState() >= DataNegociate::ConflictSolveByHistory) ) + _costs.back()[0].setInfinite(); - _costs.back().consolidate(); - if ( _fullBlocked and (not _costs.back().isBlockage() and not _costs.back().isFixed()) ) + _costs.back()[0].consolidate(); + if ( _fullBlocked and (not _costs.back()[0].isBlockage() and not _costs.back()[0].isFixed()) ) _fullBlocked = false; - cdebug_log(159,0) << "| " << _costs.back() << ((_fullBlocked)?" FB ": " -- ") << track << endl; + cdebug_log(155,0) << "| " << _costs.back()[0] << ((_fullBlocked)?" FB ": " -- ") << track1 << endl; } cdebug_tabw(159,-1); @@ -540,7 +620,7 @@ namespace Katana { // << _constraint << " " << "." << endl; } else { cerr << Bug( " %s Track_Range() failed to find Tracks in %s (they exists)." - , getString(segment).c_str() + , getString(segment1).c_str() , getString(_constraint).c_str() ) << endl; } @@ -548,10 +628,10 @@ namespace Katana { } unsigned int flags = 0; - flags |= (segment->isStrap()) ? TrackCost::IgnoreAxisWeight : 0; - flags |= (segment->isLocal() - and (_data->getState() < DataNegociate::Minimize) - and (_data->getRipupCount() < 5)) + flags |= (segment1->isStrap()) ? TrackCost::IgnoreAxisWeight : 0; + flags |= (segment1->isLocal() + and (_data1->getState() < DataNegociate::Minimize) + and (_data1->getRipupCount() < 5)) ? TrackCost::DiscardGlobals : 0; flags |= (RoutingEvent::getStage() == RoutingEvent::Repair) ? TrackCost::IgnoreSharedLength : 0; @@ -559,11 +639,23 @@ namespace Katana { cdebug_log(159,0) << "TrackCost::Compare() - DiscardGlobals" << endl; } - sort( _costs.begin(), _costs.end(), TrackCost::Compare(flags) ); + sort( _costs.begin(), _costs.end(), CompareCostArray(flags) ); size_t i=0; - for ( ; (i<_costs.size()) and _costs[i].isFree() ; i++ ); - _event->setTracksFree ( i ); + for ( ; (i<_costs.size()) and _costs[i][0].isFree() ; i++ ); + _event1->setTracksFree ( i ); + + if (_event2) { + for ( ; (i<_costs.size()) and _costs[i][1].isFree() ; i++ ); + _event2->setTracksFree ( i ); + } + } + + + void SegmentFsm::setDataState ( unsigned int state ) + { + _data1->setState( state ); + if (_data2) _data2->setState( state ); } @@ -581,7 +673,7 @@ namespace Katana { void SegmentFsm::doActions () { - cdebug_log(159,0) << "SegmentFsm::doActions() - " << _actions.size() << endl; + cdebug_log(159,1) << "SegmentFsm::doActions() - " << _actions.size() << endl; bool ripupOthersParallel = false; bool ripedByLocal = getEvent()->getSegment()->isLocal(); @@ -597,7 +689,7 @@ namespace Katana { if ( (_actions[i].getType() & SegmentAction::SelfInsert) and ripupOthersParallel ) _actions[i].setFlag ( SegmentAction::EventLevel3 ); - DebugSession::open ( _actions[i].getSegment()->getNet(), 150, 160 ); + DebugSession::open ( _actions[i].getSegment()->getNet(), 156, 160 ); if ( not _actions[i].doAction(_queue) ) { cinfo << "[INFO] Failed action on " << _actions[i].getSegment() << endl; } @@ -605,36 +697,113 @@ namespace Katana { } _actions.clear (); + cdebug_tabw(159,-1); + } + + + void SegmentFsm::incRipupCount () + { + _data1->incRipupCount(); + if (_data2) _data2->incRipupCount(); } bool SegmentFsm::insertInTrack ( size_t i ) { - cdebug_log(159,0) << "SegmentFsm::insertInTrack() istate:" << _event->getInsertState() + cdebug_log(159,0) << "SegmentFsm::insertInTrack() istate:" << _event1->getInsertState() << " track:" << i << endl; - _event->incInsertState(); - switch ( _event->getInsertState() ) { + bool success = true; + + _event1->incInsertState(); + switch ( _event1->getInsertState() ) { case 1: - if ( Manipulator(_event->getSegment(),*this).insertInTrack(i) ) return true; - _event->incInsertState(); + success = Manipulator(_event1->getSegment(),useEvent1()).insertInTrack(i); + success = success and (not _event2 or Manipulator(_event2->getSegment(),useEvent2()).insertInTrack(i)); + if (success) break; + _event1->incInsertState(); + clearActions(); case 2: - if ( Manipulator(_event->getSegment(),*this).shrinkToTrack(i) ) return true; - _event->incInsertState(); + success = Manipulator(_event1->getSegment(),useEvent1()).shrinkToTrack(i); + success = success and (not _event2 or Manipulator(_event2->getSegment(),useEvent2()).shrinkToTrack(i)); + if (success) break; + _event1->incInsertState(); + clearActions(); case 3: - if ( Manipulator(_event->getSegment(),*this).forceToTrack(i) ) return true; - _event->incInsertState(); + success = Manipulator(_event1->getSegment(),useEvent1()).forceToTrack(i); + success = success and (not _event2 or Manipulator(_event2->getSegment(),useEvent2()).forceToTrack(i)); + if (success) break; + _event1->incInsertState(); + clearActions(); } - return false; + + useEvent1(); + if (_event2) _event2->setInsertState( _event1->getInsertState() ); + + return success; } + void SegmentFsm::bindToTrack ( size_t i ) + { + cdebug_log(159,0) << "SegmentFsm::bindToTrack() :" << " track:" << i << endl; + + _event1->resetInsertState(); + _event1->updateAxisHistory(); + _event1->setEventLevel( 0 ); + + cdebug_log(9000,0) << "Deter| addInsertEvent() @" << getCost1(i).getTrack() << endl; + Session::addInsertEvent( getSegment1(), getCost1(i).getTrack() ); + + if (_event2) { + _event2->resetInsertState(); + _event2->updateAxisHistory(); + _event2->setEventLevel( 0 ); + _event2->setProcessed( true ); + + cdebug_log(9000,0) << "Deter| addInsertEvent() @" << getCost1(i).getTrack() << endl; + Session::addInsertEvent( getSegment2(), getCost2(i).getTrack() ); + } + + setState( SegmentFsm::SelfInserted ); + } + + + void SegmentFsm::moveToTrack ( size_t i ) + { + cdebug_log(159,0) << "SegmentFsm::moveToTrack() :" << " track:" << i << endl; + + Session::addMoveEvent( getSegment1(), getCost1(i).getTrack() ); + + if (_event2) { + cdebug_log(9000,0) << "Deter| addInsertEvent() @" << getCost1(i).getTrack() << endl; + Session::addMoveEvent( getSegment2(), getCost2(i).getTrack() ); + } + + setState( SegmentFsm::SelfInserted ); + } + + + void SegmentFsm::ripupPerpandiculars () + { + Manipulator(getSegment1(),*this).ripupPerpandiculars(); + if (_event2) + Manipulator(getSegment2(),*this).ripupPerpandiculars(); + } + + + bool SegmentFsm::canRipup ( unsigned int flags ) + { + return Manipulator(getSegment1(),*this).canRipup(flags) + and (not _event2 or Manipulator(getSegment2(),*this).canRipup(flags)); + } + bool SegmentFsm::conflictSolveByHistory () { bool success = false; - RipupHistory ripupHistory ( _event ); + RipupHistory ripupHistory ( _event1 ); RoutingEvent* event; - TrackElement* segment = _event->getSegment(); + TrackElement* segment = getEvent()->getSegment(); cdebug_log(159,0) << "SegmentFsm::conflictSolveByHistory()" << endl; @@ -719,11 +888,11 @@ namespace Katana { bool success = false; Interval constraints; vector candidates; - TrackElement* segment = _event->getSegment(); + TrackElement* segment = getEvent()->getSegment(); bool canMoveUp = (segment->isLocal()) ? segment->canPivotUp(0.5,Flags::NoFlags) : segment->canMoveUp(1.0,Flags::CheckLowDensity); // MARK 1 unsigned int relaxFlags = Manipulator::NoDoglegReuse - | ((_data and (_data->getStateCount() < 2)) ? Manipulator::AllowExpand - : Manipulator::NoExpand); + | ((_data1 and (_data1->getStateCount() < 2)) ? Manipulator::AllowExpand + : Manipulator::NoExpand); cdebug_log(159,0) << "SegmentFsm::conflictSolveByPlaceds()" << endl; cdebug_log(159,0) << "| Candidates Tracks: " << endl; @@ -942,7 +1111,7 @@ namespace Katana { size_t itrack = 0; #if THIS_IS_DISABLED - TrackElement* segment = _event->getSegment(); + TrackElement* segment = getEvent()->getSegment(); for ( ; itrackgetSegment(); - DataNegociate* data = segment->getDataNegociate (); + TrackElement* segment1 = getSegment1(); unsigned int actionFlags = SegmentAction::SelfInsert|SegmentAction::EventLevel5; - DebugSession::open( segment->getNet(), 150, 160 ); - cdebug_log(159,1) << "Slacken Topology for " << segment->getNet() - << " " << segment << endl; + DebugSession::open( segment1->getNet(), 156, 160 ); + cdebug_log(159,1) << "Slacken Topology for " << segment1->getNet() + << " " << segment1 << endl; - if (not segment or not data) { cdebug_tabw(159,-1); DebugSession::close(); return false; } + if (_data2) { + cdebug_log(159,0) << "Symmetric segments are not allowed to slacken (yet)" << endl; + cdebug_tabw(159,-1); + DebugSession::close(); + return false; + } - _event->resetInsertState(); - data->resetRipupCount(); + if (not segment1 or not _data1) { cdebug_tabw(159,-1); DebugSession::close(); return false; } - if (segment->isStrap()) { success = _slackenStrap ( segment, data, flags ); } - else if (segment->isLocal()) { success = _slackenLocal ( segment, data, flags ); } - else { success = _slackenGlobal( segment, data, flags ); } + _event1->resetInsertState(); + _data1->resetRipupCount(); + if (_event2) { + _event2->resetInsertState(); + _data2->resetRipupCount(); + } + + if (segment1->isStrap()) { success = _slackenStrap ( segment1, _data1, flags ); } + else if (segment1->isLocal()) { success = _slackenLocal ( segment1, _data1, flags ); } + else { success = _slackenGlobal( segment1, _data1, flags ); } if (success) { actionFlags |= SegmentAction::ResetRipup; - addAction( segment, actionFlags ); + addAction( segment1, actionFlags ); } else { clearActions(); - if (data->getState() == DataNegociate::Unimplemented) { - cinfo << "[UNSOLVED] " << segment << " unable to slacken topology." << endl; + if (_data1->getState() == DataNegociate::Unimplemented) { + cinfo << "[UNSOLVED] " << segment1 << " unable to slacken topology." << endl; } } diff --git a/katana/src/SymmetricRoute.cpp b/katana/src/SymmetricRoute.cpp index 933d9347..4c8296d8 100644 --- a/katana/src/SymmetricRoute.cpp +++ b/katana/src/SymmetricRoute.cpp @@ -50,8 +50,9 @@ namespace { using Anabatic::AutoContactTerminal; using Anabatic::AutoSegment; using Anabatic::AutoSegmentFlag; - using Katana::KatanaEngine; + using Katana::TrackElement; using Katana::DataSymmetric; + using Katana::KatanaEngine; using Katana::Session; @@ -111,6 +112,7 @@ namespace { void _doDualPairing (); AutoContactTerminal* _getSymmetricTerminal ( AutoContactTerminal* masterContact ); Component* _findMiddleComponent (); + void _associate (); private: KatanaEngine* _katana; AutoSegment* _seed; @@ -138,16 +140,21 @@ namespace { DebugSession::open( _data->getNet(), 144, 146 ); + // Temporary. + _data->setSymAxis( _katana->getCell()->getAbutmentBox().getCenter().getX() ); + cmess2 << " - Net: \"" << _data->getNet()->getName() << "\" "; cmess2 << "@" << DbU::getValueString(_data->getSymAxis()) << " "; cmess2 << (_data->isSymVertical() ? "Vertical" : "Horizontal") << " "; if (_data->getSymNet()) cmess2 << "(paired: \"" << _data->getSymNet()->getName() << "\")"; else cmess2 << "(self symmetric)"; + cmess2 << endl; if (_data->getSymNet()) _doDualPairing(); else _doSelfPairing(); if (_data->isValid()) _data->checkPairing(); + _associate(); DebugSession::close(); @@ -201,9 +208,7 @@ namespace { AutoContactTerminal* TopologicalPairing::_getSymmetricTerminal ( AutoContactTerminal* masterContact ) { - Point mirror = masterContact->getCenter(); - _data->getSymmetrical( mirror ); - + Point mirror = _data->getSymmetrical( masterContact->getCenter() ); GCell* mirrorGCell = _katana->getGCellUnder( mirror ); if (not mirrorGCell) { cerr << Error( "getSymmetricTerminal() No GCell under symmetric position (%s,%s)." @@ -221,7 +226,10 @@ namespace { } } - cerr << Error( "getSymmetricTerminal() Missing terminal contact in symmetric GCell." + cerr << Error( "getSymmetricTerminal() Missing terminal contact in symmetric GCell.\n" + " master:%s\n" + " mirror:%s" + , getString(masterContact).c_str(), getString(mirrorGCell).c_str() ) << endl; _data->setValid( false ); @@ -352,6 +360,30 @@ namespace { } + void TopologicalPairing::_associate () + { + cdebug_log(144,1) << "TopologicalPairing::_associate()" << endl; + + //cmess1 << " - Associating symmetrics." << endl; + + if (not _data->isValid()) return; + + const DataSymmetric::Paireds& paireds = _data->getPaireds(); + for ( auto sympair : paireds ) { + if (not sympair[0]->isCanonical() or not sympair[1]->isCanonical()) continue; + + TrackElement* trackSegment0 = Session::lookup( sympair[0] ); + TrackElement* trackSegment1 = Session::lookup( sympair[1] ); + + if (not trackSegment0 or not trackSegment1) continue; + + trackSegment0->setSymmetric( trackSegment1 ); + trackSegment1->setSymmetric( trackSegment0 ); + } + + cdebug_tabw(144,-1); + } + } // Anonymous namespace. @@ -363,6 +395,7 @@ namespace Katana { void KatanaEngine::runSymmetricRouter () { for ( Net* net : getCell()->getNets() ) { + if (not NetRoutingExtension::isSymmetric(net)) continue; TopologicalPairing(this,net).doPairing(); } } diff --git a/katana/src/TrackCost.cpp b/katana/src/TrackCost.cpp index 223b28be..2f6501de 100644 --- a/katana/src/TrackCost.cpp +++ b/katana/src/TrackCost.cpp @@ -31,7 +31,7 @@ namespace Katana { // ------------------------------------------------------------------- // Class : "TrackCost". - TrackCost::TrackCost ( Track* track, Net* net ) + TrackCost::TrackCost ( Track* track ) : _flags (ZeroCost) , _track (track) , _begin (Track::npos) @@ -209,6 +209,19 @@ namespace Katana { } + void TrackCost::merge ( const TrackCost& other ) + { + _terminals += other._terminals; + _delta += other._delta; + _deltaShared += other._deltaShared; + _deltaPerpand += other._deltaPerpand; + _axisWeight += other._axisWeight; + _distanceToFixed = std::min( _distanceToFixed, other._distanceToFixed ); + _longuestOverlap = std::min( _longuestOverlap, other._longuestOverlap ); + _dataState = std::max( _dataState, other._dataState ); + } + + string TrackCost::_getString () const { string s = "<" + _getTypeName(); diff --git a/katana/src/TrackElement.cpp b/katana/src/TrackElement.cpp index effc22d1..8ea7a561 100644 --- a/katana/src/TrackElement.cpp +++ b/katana/src/TrackElement.cpp @@ -145,6 +145,7 @@ namespace Katana { bool TrackElement::isUTurn () const { return false; } bool TrackElement::isUserDefined () const { return false; } // Predicates. + bool TrackElement::hasSymmetric () const { return false; } bool TrackElement::canSlacken () const { return false; } bool TrackElement::canPivotUp ( float, unsigned int ) const { return false; }; bool TrackElement::canPivotDown ( float, unsigned int ) const { return false; }; @@ -168,8 +169,10 @@ namespace Katana { TrackElement* TrackElement::getCanonical ( Interval& i ) { i=Interval(getSourceU(),getTargetU()); return this; } TrackElement* TrackElement::getSourceDogleg () { return NULL; } TrackElement* TrackElement::getTargetDogleg () { return NULL; } + TrackElement* TrackElement::getSymmetric () { return NULL; } // Mutators. void TrackElement::setTrack ( Track* track ) { _track = track; } + void TrackElement::setSymmetric ( TrackElement* ) { } void TrackElement::updateFreedomDegree () { } void TrackElement::setDoglegLevel ( unsigned int ) { } void TrackElement::swapTrack ( TrackElement* ) { } diff --git a/katana/src/TrackSegment.cpp b/katana/src/TrackSegment.cpp index 232af4bc..c76f6e3f 100644 --- a/katana/src/TrackSegment.cpp +++ b/katana/src/TrackSegment.cpp @@ -61,6 +61,7 @@ namespace Katana { TrackSegment::TrackSegment ( AutoSegment* segment, Track* track ) : TrackElement (track) , _base (segment) + , _symmetric (NULL) , _freedomDegree(0) , _ppitch (0) , _data (NULL) @@ -161,6 +162,7 @@ namespace Katana { bool TrackSegment::isUserDefined () const { return _base->isUserDefined(); } bool TrackSegment::isUTurn () const { return _base->isUTurn(); } // Predicates. + bool TrackSegment::hasSymmetric () const { return _symmetric != NULL; } // Accessors. unsigned long TrackSegment::getId () const { return _base->getId(); } Flags TrackSegment::getDirection () const { return _base->getDirection(); } @@ -174,6 +176,7 @@ namespace Katana { Interval TrackSegment::getSourceConstraints () const { return _base->getSourceConstraints(); } Interval TrackSegment::getTargetConstraints () const { return _base->getTargetConstraints(); } TrackElement* TrackSegment::getCanonical ( Interval& i ) { return Session::lookup( _base->getCanonical(i)->base() ); } + TrackElement* TrackSegment::getSymmetric () { return _symmetric; } TrackElements TrackSegment::getPerpandiculars () { return new TrackElements_Perpandiculars(this); } // Mutators. void TrackSegment::invalidate () { setFlags( TElemInvalidated ); _base->invalidate(); } @@ -231,22 +234,22 @@ namespace Katana { GCell* sourceGCell = base()->getAutoSource()->getGCell(); GCell* targetGCell = base()->getAutoTarget()->getGCell(); - cdebug_log(159,0) << "getGCells(): sourceGCell: " << sourceGCell << endl; - cdebug_log(159,0) << "getGCells(): targetGCell: " << targetGCell << endl; + cdebug_log(155,0) << "getGCells(): sourceGCell: " << sourceGCell << endl; + cdebug_log(155,0) << "getGCells(): targetGCell: " << targetGCell << endl; for ( AutoSegment* segment : base()->getAligneds() ) { - cdebug_log(159,0) << "| " << segment << endl; + cdebug_log(155,0) << "| " << segment << endl; Anabatic::GCell* gcell = segment->getAutoSource()->getGCell(); if (isLess(gcell,sourceGCell,direction)) { sourceGCell = gcell; - cdebug_log(159,0) << "getGCells(): new sourceGCell: " << sourceGCell << endl; + cdebug_log(155,0) << "getGCells(): new sourceGCell: " << sourceGCell << endl; } gcell = segment->getAutoTarget()->getGCell(); if (isGreater(gcell,targetGCell,direction)) { targetGCell = gcell; - cdebug_log(159,0) << "getGCells(): new targetGCell: " << targetGCell << endl; + cdebug_log(155,0) << "getGCells(): new targetGCell: " << targetGCell << endl; } } @@ -256,12 +259,12 @@ namespace Katana { Flags side = (direction & Flags::Horizontal) ? Flags::EastSide : Flags::NorthSide; DbU::Unit axis = getAxis(); - cdebug_log(159,0) << "* dir:" << side._getString() << " @" << DbU::getValueString(axis) << endl; + cdebug_log(155,0) << "* dir:" << side._getString() << " @" << DbU::getValueString(axis) << endl; gcells.push_back( sourceGCell ); while ( sourceGCell != targetGCell ) { sourceGCell = sourceGCell->getNeighborAt( direction, axis ); - cdebug_log(159,0) << "| " << sourceGCell << endl; + cdebug_log(155,0) << "| " << sourceGCell << endl; if (not sourceGCell) break; gcells.push_back( sourceGCell ); @@ -315,6 +318,10 @@ namespace Katana { { TrackElement::setTrack( track ); } + void TrackSegment::setSymmetric ( TrackElement* segment ) + { _symmetric = dynamic_cast( segment ); } + + void TrackSegment::detach () { cdebug_log(159,0) << "TrackSegment::detach() - " << endl; @@ -880,7 +887,8 @@ namespace Katana { Record* TrackSegment::_getRecord () const { Record* record = TrackElement::_getRecord(); - record->add( getSlot( "_base", _base ) ); + record->add( getSlot( "_base" , _base ) ); + record->add( getSlot( "_symmetric", _symmetric ) ); return record; } diff --git a/katana/src/TrackSegmentCost.cpp b/katana/src/TrackSegmentCost.cpp index d153050c..ba969a41 100644 --- a/katana/src/TrackSegmentCost.cpp +++ b/katana/src/TrackSegmentCost.cpp @@ -73,7 +73,7 @@ namespace Katana { void TrackSegmentCost::update ( TrackElement* trackSegment ) { - DebugSession::open ( trackSegment->getNet(), 150, 160 ); + DebugSession::open ( trackSegment->getNet(), 156, 160 ); cdebug_log(159,1) << "TrackSegmentCost::update() - " << trackSegment << endl; diff --git a/katana/src/Tracks.cpp b/katana/src/Tracks.cpp index d9bbb2c4..a0469b35 100644 --- a/katana/src/Tracks.cpp +++ b/katana/src/Tracks.cpp @@ -38,15 +38,15 @@ namespace Katana { : Hurricane::Locator() , _constraints (constraints) { - cdebug_log(159,0) << "Tracks_Range::Locator()" << endl; - cdebug_log(159,0) << "* Constraints: " << _constraints << endl; + cdebug_log(155,0) << "Tracks_Range::Locator()" << endl; + cdebug_log(155,0) << "* Constraints: " << _constraints << endl; _track = routingPlane->getTrackByPosition ( _constraints.getVMin() ); if ( _track and (_track->getAxis() < _constraints.getVMin()) ) _track = _track->getNextTrack(); if ( _track and (_track->getAxis() > _constraints.getVMax()) ) _track = NULL; - cdebug_log(159,0) << "_track: " << _track << endl;; + cdebug_log(155,0) << "_track: " << _track << endl;; } @@ -147,9 +147,9 @@ namespace Katana { , _inMinOptimal(true) , _inMaxOptimal(true) { - cdebug_log(159,0) << "Tracks_Spiral::Locator()" << endl; - cdebug_log(159,0) << "* Optimal: " << _optimal << endl; - cdebug_log(159,0) << "* Constraints: " << _constraints << endl; + cdebug_log(155,0) << "Tracks_Spiral::Locator()" << endl; + cdebug_log(155,0) << "* Optimal: " << _optimal << endl; + cdebug_log(155,0) << "* Constraints: " << _constraints << endl; _minTrack = _maxTrack = routingPlane->getTrackByPosition ( _optimal.getCenter() ); @@ -169,8 +169,8 @@ namespace Katana { if ( _minTrack && (_minTrack->getAxis() < _optimal.getVMin()) ) _inMinOptimal = false; if ( _maxTrack && (_maxTrack->getAxis() > _optimal.getVMax()) ) _inMaxOptimal = false; - cdebug_log(159,0) << "_minTrack: " << _minTrack << endl;; - cdebug_log(159,0) << "_maxTrack: " << _maxTrack << endl;; + cdebug_log(155,0) << "_minTrack: " << _minTrack << endl;; + cdebug_log(155,0) << "_maxTrack: " << _maxTrack << endl;; } @@ -210,13 +210,13 @@ namespace Katana { void Tracks_Spiral::Locator::progress () { - cdebug_log(159,1) << "Track_Spiral::progress() - State:" << endl; - cdebug_log(159,0) << _onMin + cdebug_log(155,1) << "Track_Spiral::progress() - State:" << endl; + cdebug_log(155,0) << _onMin << " " << _minTrack << " " << _maxTrack << endl; if ( !isValid() ) { - cdebug_tabw(159,-1); + cdebug_tabw(155,-1); return; } @@ -245,10 +245,10 @@ namespace Katana { } } - cdebug_log(159,0) << _onMin - << " " << _minTrack - << " " << _maxTrack << endl; - cdebug_tabw(159,-1); + cdebug_log(155,0) << _onMin + << " " << _minTrack + << " " << _maxTrack << endl; + cdebug_tabw(155,-1); } diff --git a/katana/src/katana/DataSymmetric.h b/katana/src/katana/DataSymmetric.h index 547269ff..3f95a5a4 100644 --- a/katana/src/katana/DataSymmetric.h +++ b/katana/src/katana/DataSymmetric.h @@ -37,6 +37,7 @@ namespace Katana { using Hurricane::Record; using Hurricane::DbU; using Hurricane::Point; + using Hurricane::Interval; using Hurricane::Net; using Hurricane::NetRoutingState; using Hurricane::NetRoutingExtension; @@ -44,6 +45,8 @@ namespace Katana { class DataSymmetric { + public: + typedef std::vector< std::array > Paireds; public: static DataSymmetric* create ( Net* ); public: @@ -52,11 +55,15 @@ namespace Katana { inline Net* getNet () const; inline DbU::Unit getSymAxis () const; inline Net* getSymNet () const; - inline Point& getSymmetrical ( Point& ) const; + inline const Paireds& getPaireds () const; + inline DbU::Unit getSymmetrical ( DbU::Unit ) const; + inline Point getSymmetrical ( const Point& ) const; + inline Interval getSymmetrical ( const Interval& ) const; AutoSegment* getSymmetrical ( AutoSegment* ) const; void addSymmetrical ( AutoSegment* ); inline void addReference ( AutoSegment* ); inline void setValid ( bool ); + inline void setSymAxis ( DbU::Unit ); bool checkPairing (); void print ( std::ostream& ) const; Record* _getRecord () const; @@ -64,28 +71,45 @@ namespace Katana { private: DataSymmetric ( Net* ); private: - bool _valid; - Net* _net; - Net* _symNet; - NetRoutingState* _state; - std::vector< std::array > _paireds; - size_t _symIndex; + bool _valid; + Net* _net; + Net* _symNet; + NetRoutingState* _state; + Paireds _paireds; + size_t _symIndex; }; - inline bool DataSymmetric::isValid () const { return _valid; } - inline bool DataSymmetric::isSymVertical () const { return _state->isSymVertical(); } - inline Net* DataSymmetric::getNet () const { return _net; } - inline DbU::Unit DataSymmetric::getSymAxis () const { return _state->getSymAxis(); } - inline Net* DataSymmetric::getSymNet () const { return _symNet; } - inline void DataSymmetric::addReference ( AutoSegment* segment ) { _paireds.push_back( {segment,NULL} ); } - inline void DataSymmetric::setValid ( bool state ) { _valid = state; } + inline bool DataSymmetric::isValid () const { return _valid; } + inline bool DataSymmetric::isSymVertical () const { return _state->isSymVertical(); } + inline const DataSymmetric::Paireds& DataSymmetric::getPaireds () const { return _paireds; } + inline Net* DataSymmetric::getNet () const { return _net; } + inline DbU::Unit DataSymmetric::getSymAxis () const { return _state->getSymAxis(); } + inline void DataSymmetric::setSymAxis ( DbU::Unit axis ) { _state->setSymAxis(axis); } + inline Net* DataSymmetric::getSymNet () const { return _symNet; } + inline void DataSymmetric::addReference ( AutoSegment* segment ) { _paireds.push_back( {segment,NULL} ); } + inline void DataSymmetric::setValid ( bool state ) { _valid = state; } - inline Point& DataSymmetric::getSymmetrical ( Point& point ) const + inline DbU::Unit DataSymmetric::getSymmetrical ( DbU::Unit pos ) const + { return 2*getSymAxis() - pos; } + + inline Point DataSymmetric::getSymmetrical ( const Point& point ) const { - if (_state->isSymVertical()) point.setX( 2*getSymAxis() - point.getX() ); - else point.setY( 2*getSymAxis() - point.getY() ); - return point; + Point symPoint ( point ); + if (_state->isSymVertical()) symPoint.setX( 2*getSymAxis() - point.getX() ); + else symPoint.setY( 2*getSymAxis() - point.getY() ); + return symPoint; + } + + inline Interval DataSymmetric::getSymmetrical ( const Interval& interval ) const + { + DbU::Unit vmin = interval.getVMin(); + if ( (vmin != DbU::Min) and (vmin != DbU::Max) ) vmin = 2*getSymAxis() - vmin; + + DbU::Unit vmax = interval.getVMax(); + if ( (vmax != DbU::Max) and (vmax != DbU::Max) ) vmax = 2*getSymAxis() - vmax; + + return Interval( vmin, vmax ); } diff --git a/katana/src/katana/KatanaEngine.h b/katana/src/katana/KatanaEngine.h index 86368737..fa22d4a2 100644 --- a/katana/src/katana/KatanaEngine.h +++ b/katana/src/katana/KatanaEngine.h @@ -87,6 +87,8 @@ namespace Katana { RoutingPlane* getRoutingPlaneByLayer ( const Layer* ) const; Track* getTrackByPosition ( const Layer*, DbU::Unit axis, unsigned int mode=Constant::Nearest ) const; DataSymmetric* getDataSymmetric ( Net* ); + inline const std::map& + getSymmetrics () const; inline void printConfiguration () const; void printCompletion () const; void dumpMeasures ( std::ostream& ) const; @@ -161,6 +163,8 @@ namespace Katana { inline size_t KatanaEngine::getHTracksReservedLocal () const { return _configuration->getHTracksReservedLocal(); } inline size_t KatanaEngine::getVTracksReservedLocal () const { return _configuration->getVTracksReservedLocal(); } inline unsigned int KatanaEngine::getRipupLimit ( unsigned int type ) const { return _configuration->getRipupLimit(type); } + inline const std::map& + KatanaEngine::getSymmetrics () const { return _symmetrics; } inline NegociateWindow* KatanaEngine::getNegociateWindow () { return _negociateWindow; } inline size_t KatanaEngine::getRoutingPlanesSize () const { return _routingPlanes.size(); } inline void KatanaEngine::setViewer ( CellViewer* viewer ) { _viewer=viewer; } diff --git a/katana/src/katana/NegociateWindow.h b/katana/src/katana/NegociateWindow.h index 3aa8eb18..cfb32d93 100644 --- a/katana/src/katana/NegociateWindow.h +++ b/katana/src/katana/NegociateWindow.h @@ -95,31 +95,32 @@ namespace Katana { , Packing = 2 }; public: - static NegociateWindow* create ( KatanaEngine* ); - void destroy (); - inline bool isInterrupted () const; - inline KatanaEngine* getKatanaEngine () const; - Hurricane::Cell* getCell () const; - inline const vector& getGCells () const; - inline RoutingEventQueue& getEventQueue (); - inline RoutingEventHistory& getEventHistory (); - inline RoutingEventLoop& getEventLoop (); - inline Stage getStage () const; - void setGCells ( const vector& ); - inline void setInterrupt ( bool ); - inline void setStage ( Stage ); - double computeWirelength (); - TrackElement* createTrackSegment ( AutoSegment*, unsigned int flags ); - void addRoutingEvent ( TrackElement*, unsigned int level ); - inline void rescheduleEvent ( RoutingEvent*, unsigned int level ); - void run ( unsigned int flags ); - void printStatistics () const; - void _createRouting ( Anabatic::GCell* ); - void _pack ( size_t& count, bool last ); - size_t _negociate (); - Hurricane::Record* _getRecord () const; - std::string _getString () const; - inline std::string _getTypeName () const; + static NegociateWindow* create ( KatanaEngine* ); + void destroy (); + inline bool isInterrupted () const; + inline KatanaEngine* getKatanaEngine () const; + Hurricane::Cell* getCell () const; + inline const vector& getGCells () const; + inline RoutingEventQueue& getEventQueue (); + inline RoutingEventHistory& getEventHistory (); + inline RoutingEventLoop& getEventLoop (); + inline Stage getStage () const; + void setGCells ( const vector& ); + inline void setInterrupt ( bool ); + inline void setStage ( Stage ); + double computeWirelength (); + TrackElement* createTrackSegment ( AutoSegment*, unsigned int flags ); + void addRoutingEvent ( TrackElement*, unsigned int level ); + inline void rescheduleEvent ( RoutingEvent*, unsigned int level ); + void run ( unsigned int flags ); + void printStatistics () const; + void _createRouting ( Anabatic::GCell* ); + void _associateSymmetrics (); + void _pack ( size_t& count, bool last ); + size_t _negociate (); + Hurricane::Record* _getRecord () const; + std::string _getString () const; + inline std::string _getTypeName () const; private: // Attributes. diff --git a/katana/src/katana/RoutingEvent.h b/katana/src/katana/RoutingEvent.h index a65553a5..16a2be13 100644 --- a/katana/src/katana/RoutingEvent.h +++ b/katana/src/katana/RoutingEvent.h @@ -152,6 +152,8 @@ namespace Katana { inline void setForcedToHint ( bool state = true ); void setAxisHint ( DbU::Unit ); void setAxisHintFromParent (); + inline void updateAxisHistory (); + inline void setInsertState ( unsigned int ); inline void incInsertState (); inline void resetInsertState (); inline void setEventLevel ( unsigned int ); @@ -162,8 +164,8 @@ namespace Katana { string _getString () const; string _getTypeName () const; private: - RoutingEvent ( TrackElement*, unsigned int mode ); - ~RoutingEvent (); + RoutingEvent ( TrackElement*, unsigned int mode ); + ~RoutingEvent (); protected: // Attributes. @@ -234,6 +236,8 @@ namespace Katana { inline void RoutingEvent::setRipedByLocal ( bool state ) { _ripedByLocal = state; } inline void RoutingEvent::setTracksFree ( unsigned int nb ) { _tracksFree = nb; } inline void RoutingEvent::setForcedToHint ( bool state ) { _forceToHint = state; } + inline void RoutingEvent::updateAxisHistory () { _axisHistory = _segment->getAxis(); } + inline void RoutingEvent::setInsertState ( unsigned int state ) { _insertState = state; } inline void RoutingEvent::incInsertState () { _insertState++; } inline void RoutingEvent::resetInsertState () { _insertState = 0; } inline void RoutingEvent::setEventLevel ( unsigned int level ) { _eventLevel = level; } diff --git a/katana/src/katana/SegmentFsm.h b/katana/src/katana/SegmentFsm.h index 01dd6eeb..5658d0c4 100644 --- a/katana/src/katana/SegmentFsm.h +++ b/katana/src/katana/SegmentFsm.h @@ -17,10 +17,12 @@ #ifndef KATANA_SEGMENT_FSM_H #define KATANA_SEGMENT_FSM_H +#include #include "katana/TrackCost.h" namespace Katana { + using std::array; class TrackElement; class DataNegociate; class RoutingEvent; @@ -105,79 +107,111 @@ namespace Katana { }; public: - SegmentFsm ( RoutingEvent* - , RoutingEventQueue& - , RoutingEventHistory& - ); - inline bool isFullBlocked () const; - inline RoutingEvent* getEvent () const; - inline RoutingEventQueue& getQueue () const; - inline RoutingEventHistory& getHistory () const; - inline unsigned int getState () const; - inline DataNegociate* getData (); - inline Interval& getConstraint (); - inline Interval& getOptimal (); - inline vector& getCosts (); - inline TrackCost& getCost ( size_t ); - inline Track* getTrack ( size_t ); - inline size_t getBegin ( size_t ); - inline size_t getEnd ( size_t ); - inline vector& getActions (); - inline void setState ( unsigned int ); - void addAction ( TrackElement* - , unsigned int type - , DbU::Unit axisHint=0 - , unsigned int toState =0 - ); - void doActions (); - inline void clearActions (); - bool insertInTrack ( size_t ); - bool conflictSolveByHistory (); - bool conflictSolveByPlaceds (); - bool solveTerminalVsGlobal (); - bool desaturate (); - bool slackenTopology ( unsigned int flags=0 ); - bool solveFullBlockages (); - private: - bool _slackenStrap ( TrackElement*& - , DataNegociate*& - , unsigned int flags ); - bool _slackenLocal ( TrackElement*& - , DataNegociate*& - , unsigned int flags ); - bool _slackenGlobal ( TrackElement*& - , DataNegociate*& - , unsigned int flags ); - private: - RoutingEvent* _event; - RoutingEventQueue& _queue; - RoutingEventHistory& _history; - unsigned int _state; - DataNegociate* _data; - Interval _constraint; - Interval _optimal; - vector _costs; - vector _actions; - bool _fullBlocked; + SegmentFsm ( RoutingEvent* + , RoutingEventQueue& + , RoutingEventHistory& + ); + inline bool isFullBlocked () const; + inline bool isSymmetric () const; + inline RoutingEvent* getEvent () const; + inline RoutingEvent* getEvent1 () const; + inline RoutingEvent* getEvent2 () const; + inline RoutingEventQueue& getQueue () const; + inline RoutingEventHistory& getHistory () const; + inline TrackElement* getSegment1 () const; + inline TrackElement* getSegment2 () const; + inline unsigned int getState () const; + inline DataNegociate* getData (); + inline DataNegociate* getData1 (); + inline DataNegociate* getData2 (); + inline Interval& getConstraint (); + inline Interval& getOptimal (); + inline vector< array >& getCosts (); + inline TrackCost& getCost ( size_t ); + inline TrackCost& getCost1 ( size_t ); + inline TrackCost& getCost2 ( size_t ); + inline Track* getTrack ( size_t ); + inline size_t getBegin ( size_t ); + inline size_t getEnd ( size_t ); + inline vector& getActions (); + inline void setState ( unsigned int ); + void setDataState ( unsigned int ); + void addAction ( TrackElement* + , unsigned int type + , DbU::Unit axisHint=0 + , unsigned int toState =0 + ); + void doActions (); + inline void clearActions (); + inline SegmentFsm& useEvent1 (); + inline SegmentFsm& useEvent2 (); + void incRipupCount (); + bool insertInTrack ( size_t ); + void bindToTrack ( size_t ); + void moveToTrack ( size_t ); + void ripupPerpandiculars (); + bool canRipup ( unsigned int flags=0 ); + bool conflictSolveByHistory (); + bool conflictSolveByPlaceds (); + bool solveTerminalVsGlobal (); + bool desaturate (); + bool slackenTopology ( unsigned int flags=0 ); + bool solveFullBlockages (); + private: + bool _slackenStrap ( TrackElement*& + , DataNegociate*& + , unsigned int flags ); + bool _slackenLocal ( TrackElement*& + , DataNegociate*& + , unsigned int flags ); + bool _slackenGlobal ( TrackElement*& + , DataNegociate*& + , unsigned int flags ); + private: + RoutingEvent* _event1; + RoutingEvent* _event2; + RoutingEventQueue& _queue; + RoutingEventHistory& _history; + unsigned int _state; + DataNegociate* _data1; + DataNegociate* _data2; + Interval _constraint; + Interval _optimal; + vector< array > _costs; + vector _actions; + bool _fullBlocked; + bool _sameAxis; + bool _useEvent2; }; - inline bool SegmentFsm::isFullBlocked () const { return _fullBlocked and _costs.size(); } - inline RoutingEvent* SegmentFsm::getEvent () const { return _event; } - inline RoutingEventQueue& SegmentFsm::getQueue () const { return _queue; } - inline RoutingEventHistory& SegmentFsm::getHistory () const { return _history; } - inline unsigned int SegmentFsm::getState () const { return _state; } - inline DataNegociate* SegmentFsm::getData () { return _data; } - inline Interval& SegmentFsm::getConstraint () { return _constraint; } - inline Interval& SegmentFsm::getOptimal () { return _optimal; } - inline vector& SegmentFsm::getCosts () { return _costs; } - inline TrackCost& SegmentFsm::getCost ( size_t i ) { return _costs[i]; } - inline Track* SegmentFsm::getTrack ( size_t i ) { return _costs[i].getTrack(); } - inline size_t SegmentFsm::getBegin ( size_t i ) { return _costs[i].getBegin(); } - inline size_t SegmentFsm::getEnd ( size_t i ) { return _costs[i].getEnd(); } - inline vector& SegmentFsm::getActions () { return _actions; } - inline void SegmentFsm::setState ( unsigned int state ) { _state = state; } - inline void SegmentFsm::clearActions () { _actions.clear(); } + inline bool SegmentFsm::isSymmetric () const { return _event2 != NULL; } + inline bool SegmentFsm::isFullBlocked () const { return _fullBlocked and _costs.size(); } + inline RoutingEvent* SegmentFsm::getEvent () const { return (_useEvent2) ? _event2 : _event1; } + inline RoutingEvent* SegmentFsm::getEvent1 () const { return _event1; } + inline RoutingEvent* SegmentFsm::getEvent2 () const { return _event2; } + inline RoutingEventQueue& SegmentFsm::getQueue () const { return _queue; } + inline RoutingEventHistory& SegmentFsm::getHistory () const { return _history; } + inline unsigned int SegmentFsm::getState () const { return _state; } + inline TrackElement* SegmentFsm::getSegment1 () const { return _event1->getSegment(); } + inline TrackElement* SegmentFsm::getSegment2 () const { return (_event2) ? _event2->getSegment() : NULL; } + inline DataNegociate* SegmentFsm::getData () { return (_useEvent2) ? _data2 : _data1; } + inline DataNegociate* SegmentFsm::getData1 () { return _data1; } + inline DataNegociate* SegmentFsm::getData2 () { return _data2; } + inline Interval& SegmentFsm::getConstraint () { return _constraint; } + inline Interval& SegmentFsm::getOptimal () { return _optimal; } + inline vector< array >& SegmentFsm::getCosts () { return _costs; } + inline TrackCost& SegmentFsm::getCost ( size_t i ) { return _costs[i][0]; } + inline TrackCost& SegmentFsm::getCost1 ( size_t i ) { return _costs[i][0]; } + inline TrackCost& SegmentFsm::getCost2 ( size_t i ) { return _costs[i][1]; } + inline Track* SegmentFsm::getTrack ( size_t i ) { return (_useEvent2) ? _costs[i][1].getTrack() : _costs[i][0].getTrack(); } + inline size_t SegmentFsm::getBegin ( size_t i ) { return (_useEvent2) ? _costs[i][1].getBegin() : _costs[i][0].getBegin(); } + inline size_t SegmentFsm::getEnd ( size_t i ) { return (_useEvent2) ? _costs[i][1].getEnd () : _costs[i][0].getEnd (); } + inline vector& SegmentFsm::getActions () { return _actions; } + inline void SegmentFsm::setState ( unsigned int state ) { _state = state; } + inline void SegmentFsm::clearActions () { _actions.clear(); } + inline SegmentFsm& SegmentFsm::useEvent1 () { _useEvent2 = false; return *this; } + inline SegmentFsm& SegmentFsm::useEvent2 () { _useEvent2 = true ; return *this; } } // Katana namespace. diff --git a/katana/src/katana/TrackCost.h b/katana/src/katana/TrackCost.h index c48108c0..ad489644 100644 --- a/katana/src/katana/TrackCost.h +++ b/katana/src/katana/TrackCost.h @@ -10,7 +10,7 @@ // | Author : Jean-Paul CHAPUT | // | E-mail : Jean-Paul.Chaput@asim.lip6.fr | // | =============================================================== | -// | C++ Header : "./katana/TrackCost.h" | +// | C++ Header : "./katana/TrackCost.h" | // +-----------------------------------------------------------------+ @@ -61,9 +61,7 @@ namespace Katana { }; public: - TrackCost ( Track* track - , Net* net - ); + TrackCost ( Track* track ); TrackCost ( Track* track , const Interval& interval , size_t begin @@ -113,6 +111,7 @@ namespace Katana { inline void setLonguestOverlap ( DbU::Unit ); inline void mergeRipupCount ( int ); inline void mergeDataState ( unsigned int ); + void merge ( const TrackCost& ); void consolidate (); Record* _getRecord () const; string _getString () const; diff --git a/katana/src/katana/TrackElement.h b/katana/src/katana/TrackElement.h index e5b628a6..c8455bad 100644 --- a/katana/src/katana/TrackElement.h +++ b/katana/src/katana/TrackElement.h @@ -111,6 +111,7 @@ namespace Katana { inline bool isBlockage () const; inline bool isLocked () const; inline bool isRouted () const; + virtual bool hasSymmetric () const; inline bool hasSourceDogleg () const; inline bool hasTargetDogleg () const; inline bool canRipple () const; @@ -151,6 +152,7 @@ namespace Katana { virtual unsigned int getDoglegLevel () const; virtual TrackElement* getSourceDogleg (); virtual TrackElement* getTargetDogleg (); + virtual TrackElement* getSymmetric (); virtual TrackElements getPerpandiculars (); // Mutators. inline void setFlags ( unsigned int ); @@ -158,6 +160,7 @@ namespace Katana { inline void setRouted (); virtual void setTrack ( Track* ); inline void setIndex ( size_t ); + virtual void setSymmetric ( TrackElement* ); virtual void updateFreedomDegree (); virtual void setDoglegLevel ( unsigned int ); virtual void swapTrack ( TrackElement* ); diff --git a/katana/src/katana/TrackSegment.h b/katana/src/katana/TrackSegment.h index 033904d4..89ea3e53 100644 --- a/katana/src/katana/TrackSegment.h +++ b/katana/src/katana/TrackSegment.h @@ -72,6 +72,7 @@ namespace Katana { virtual bool isUTurn () const; virtual bool isUserDefined () const; // Predicates. + virtual bool hasSymmetric () const; virtual bool canDogleg (); virtual bool canDogleg ( Interval ); virtual bool canDogleg ( Anabatic::GCell*, unsigned int flags=0 ); @@ -100,10 +101,12 @@ namespace Katana { virtual size_t getGCells ( vector& ) const; virtual TrackElement* getSourceDogleg (); virtual TrackElement* getTargetDogleg (); + virtual TrackElement* getSymmetric (); virtual TrackElements getPerpandiculars (); virtual size_t getPerpandicularsBound ( set& ); // Mutators. virtual void setTrack ( Track* ); + virtual void setSymmetric ( TrackElement* ); virtual void updateFreedomDegree (); virtual void setDoglegLevel ( unsigned int ); virtual void swapTrack ( TrackElement* ); @@ -133,6 +136,7 @@ namespace Katana { // Attributes. static size_t _allocateds; AutoSegment* _base; + TrackSegment* _symmetric; unsigned long _freedomDegree; DbU::Unit _ppitch; DataNegociate* _data; From db8e51524feea38d64f611bced11f7c9be938233 Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Wed, 3 May 2017 18:09:51 +0200 Subject: [PATCH 05/30] Deterministic destruction of Components. * Change: In Hurrican::Component::_preDestroy(), the cascaded destruction of slaves Components and subsequent ring merge and Rubber creation was using set<> sorted on pointer values. This was making the order of destruction of the slaves components non-deterministic. Now the sets are sorted according to their id (see Entity). * Change: In Hurricane::SharedProperty, the _ownerSet is now a vector<> instead of a set<>. This will slow the search process, but hopefully this is needed only during construction/destruction of a Property so the slow down shouldn't be too much. This has also an impact on Hurricane::Relation. --- anabatic/src/Edge.cpp | 6 +- crlcore/etc/common/display.conf | 2 +- crlcore/src/cyclop/Cyclop.cpp | 2 +- hurricane/src/hurricane/Component.cpp | 73 ++++++++----------- hurricane/src/hurricane/DBo.cpp | 6 +- hurricane/src/hurricane/Hook.cpp | 2 + hurricane/src/hurricane/Property.cpp | 42 +++++++++-- hurricane/src/hurricane/Relation.cpp | 3 +- .../src/hurricane/hurricane/IntrusiveSet.h | 9 +++ hurricane/src/hurricane/hurricane/Property.h | 3 +- 10 files changed, 92 insertions(+), 56 deletions(-) diff --git a/anabatic/src/Edge.cpp b/anabatic/src/Edge.cpp index 5323bf4a..d55439d9 100644 --- a/anabatic/src/Edge.cpp +++ b/anabatic/src/Edge.cpp @@ -88,9 +88,9 @@ namespace Anabatic { Edge* edge = new Edge ( source, target, flags ); edge->_postCreate(); - cdebug_log(110,1) << "Edge::create(): " << (void*)edge << ":" << edge << endl; - cdebug_log(110,0) << "source:" << (void*)source << ":" << edge->getSource() << endl; - cdebug_log(110,0) << "target:" << (void*)target << ":" << edge->getTarget() << endl; + cdebug_log(110,1) << "Edge::create(): " << /*(void*)edge << ":" <<*/ edge << endl; + cdebug_log(110,0) << "source:" << /*(void*)source << ":" <<*/ edge->getSource() << endl; + cdebug_log(110,0) << "target:" << /*(void*)target << ":" <<*/ edge->getTarget() << endl; cdebug_tabw(110,-1); return edge; } diff --git a/crlcore/etc/common/display.conf b/crlcore/etc/common/display.conf index 7209b8e4..24bf85fe 100644 --- a/crlcore/etc/common/display.conf +++ b/crlcore/etc/common/display.conf @@ -192,7 +192,7 @@ stylesTable = \ , (Drawing, 'gmetalv' , { 'color':'200,200,255', 'pattern':'light_antihash1.8', 'border':1 }) , (Drawing, 'gcut' , { 'color':'255,255,190', 'border':1 }) , (Drawing, 'Anabatic::Edge' , { 'color':'255,255,190', 'pattern':'0000000000000000', 'border':4, 'threshold':0.02*scale }) - , (Drawing, 'Anabatic::GCell', { 'color':'128,128,128', 'pattern':'0000000000000000', 'border':4, 'threshold':0.10*scale }) + , (Drawing, 'Anabatic::GCell', { 'color':'255,255,190', 'pattern':'0000000000000000', 'border':4, 'threshold':0.10*scale }) ) # ---------------------------------------------------------------------- diff --git a/crlcore/src/cyclop/Cyclop.cpp b/crlcore/src/cyclop/Cyclop.cpp index 3fdc92f5..70ee6adf 100644 --- a/crlcore/src/cyclop/Cyclop.cpp +++ b/crlcore/src/cyclop/Cyclop.cpp @@ -77,7 +77,7 @@ namespace CRL { _stressDisplayAction->setStatusTip ( tr("Intensive use of display redrawing") ); connect ( _stressDisplayAction, SIGNAL(triggered()), this, SLOT(stressDisplay()) ); - debugMenu->addAction ( _stressDisplayAction ); + //debugMenu->addAction ( _stressDisplayAction ); getCellWidget()->addDrawExtensionGo ( DemoGo::staticGetName() , DemoGo::initDrawDemoGo diff --git a/hurricane/src/hurricane/Component.cpp b/hurricane/src/hurricane/Component.cpp index cdd355c5..e93aa66c 100644 --- a/hurricane/src/hurricane/Component.cpp +++ b/hurricane/src/hurricane/Component.cpp @@ -408,58 +408,50 @@ void Component::_postCreate() void Component::_preDestroy() // ************************* { - cdebug_log(18,1) << "entering Component::_Predestroy: " << this << endl; + cdebug_log(18,1) << "entering Component::_preDestroy: " << this << endl; clearProperties(); - set componentSet; - getSlaveComponents().fill(componentSet); + set components; + getSlaveComponents().fill( components ); + components.insert( this ); - set masterHookSet; - componentSet.insert(this); - for_each_component(component, getCollection(componentSet)) { - component->unmaterialize(); - for_each_hook(hook, component->getHooks()) { - for_each_hook(hook, hook->getHooks()) { - if (hook->isMaster() && (componentSet.find(hook->getComponent()) == componentSet.end())) - masterHookSet.insert(hook); - end_for; - } - if (!hook->isMaster()) hook->detach(); - end_for; + vector masterHooks; + + for ( Component* component : components ) { + component->unmaterialize(); + for ( Hook* chook : component->getHooks() ) { + for ( Hook* shook : chook->getHooks() ) { + if (shook->isMaster() and (components.find(shook->getComponent()) == components.end()) ) + masterHooks.push_back( shook ); } - end_for; + if (not chook->isMaster()) chook->detach(); + } } - componentSet.erase(this); - for_each_component(component, getCollection(componentSet)) { - component->destroy(); - end_for; - } + components.erase( this ); + for ( Component* component : components ) component->destroy(); - set rubberSet; - set mainMasterHookSet; - for_each_hook(hook, getCollection(masterHookSet)) { - Rubber* rubber = hook->getComponent()->getRubber(); - if (!rubber) - mainMasterHookSet.insert(hook); - else { - if (rubberSet.find(rubber) == rubberSet.end()) { - rubberSet.insert(rubber); - mainMasterHookSet.insert(hook); - } + set rubbers; + vector mainMasterHooks; + + for ( Hook* mhook : masterHooks ) { + Rubber* rubber = mhook->getComponent()->getRubber(); + if (not rubber) + mainMasterHooks.push_back( mhook ); + else { + if (rubbers.find(rubber) == rubbers.end()) { + rubbers.insert( rubber ); + mainMasterHooks.push_back( mhook ); } - end_for; + } } + Hook* masterHook = NULL; - for_each_hook(hook, getCollection(mainMasterHookSet)) { - if (!masterHook) - masterHook = hook; - else - hook->merge(masterHook); - end_for; + for ( Hook* hook : mainMasterHooks ) { + if (not masterHook) masterHook = hook; + else hook->merge( masterHook ); } - /**/ _bodyHook.detach(); @@ -467,7 +459,6 @@ void Component::_preDestroy() if (_net) _net->_getComponentSet()._remove(this); - cdebug_log(18,0) << "exiting Component::_Predestroy:" << endl; cdebug_tabw(18,-1); } diff --git a/hurricane/src/hurricane/DBo.cpp b/hurricane/src/hurricane/DBo.cpp index 88045cf0..15c02d8a 100644 --- a/hurricane/src/hurricane/DBo.cpp +++ b/hurricane/src/hurricane/DBo.cpp @@ -53,7 +53,9 @@ namespace Hurricane { void DBo::_postCreate () - { } + { + cdebug_log(0,0) << "DBo::_postCreate() " << this << endl; + } void DBo::_preDestroy () @@ -64,7 +66,9 @@ namespace Hurricane { void DBo::destroy () { + cdebug_log(0,1) << "DBo::destroy() " << this << endl; _preDestroy(); + cdebug_tabw(0,-1); delete this; } diff --git a/hurricane/src/hurricane/Hook.cpp b/hurricane/src/hurricane/Hook.cpp index 5c6d75a7..79fd5e22 100644 --- a/hurricane/src/hurricane/Hook.cpp +++ b/hurricane/src/hurricane/Hook.cpp @@ -362,6 +362,8 @@ Hook* Hook::merge(Hook* hook) if (hook == this) throw Error("Can't merge : itself"); + cdebug_log(0,0) << "Hook::merge() hook:" << hook->getComponent() << endl; + Hook* masterHook = hook->getPreviousMasterHook(); Hook* nextHook = masterHook->_nextHook; masterHook->_nextHook = _nextHook; diff --git a/hurricane/src/hurricane/Property.cpp b/hurricane/src/hurricane/Property.cpp index c29667db..0e6c20b2 100644 --- a/hurricane/src/hurricane/Property.cpp +++ b/hurricane/src/hurricane/Property.cpp @@ -226,25 +226,53 @@ namespace Hurricane { void SharedProperty::_preDestroy () { - Property::_preDestroy(); + for ( size_t i=0 ; i<_ownerSet.size() ; ++i ) { + _ownerSet[i]->_onDestroyed(this); + _ownerSet[i] = NULL; + } + _ownerSet.clear(); - while (!_ownerSet.empty()) { - DBo* owner = *_ownerSet.begin(); - _ownerSet.erase(owner); - owner->_onDestroyed(this); + // while (!_ownerSet.empty()) { + // DBo* owner = *_ownerSet.begin(); + // _ownerSet.erase(owner); + // owner->_onDestroyed(this); + // } + + Property::_preDestroy(); + } + + + void SharedProperty::_erase ( DBo* owner ) + { + for ( size_t i=0 ; i<_ownerSet.size() ; ++i ) { + if (_ownerSet[i] == owner) { + std::swap( _ownerSet[i], _ownerSet[_ownerSet.size()-1] ); + _ownerSet.pop_back(); + } } } void SharedProperty::onCapturedBy ( DBo* owner ) { - _ownerSet.insert(owner); + for ( DBo* dbo : _ownerSet ) { + if (dbo == owner) return; + } + _ownerSet.push_back( owner ); + + //_ownerSet.insert(owner); } void SharedProperty::onReleasedBy ( DBo* owner ) { - _ownerSet.erase(owner); + for ( size_t i=0 ; i<_ownerSet.size() ; ++i ) { + if (_ownerSet[i] == owner) { + std::swap( _ownerSet[i], _ownerSet[_ownerSet.size()-1] ); + _ownerSet.pop_back(); + } + } + //_ownerSet.erase(owner); if (_ownerSet.empty()) onNotOwned(); } diff --git a/hurricane/src/hurricane/Relation.cpp b/hurricane/src/hurricane/Relation.cpp index 3a34cc07..d97f1744 100644 --- a/hurricane/src/hurricane/Relation.cpp +++ b/hurricane/src/hurricane/Relation.cpp @@ -99,7 +99,8 @@ DBos Relation::getSlaveOwners() const void Relation::onReleasedBy(DBo* owner) // ************************************ { - _getOwnerSet().erase(owner); + _erase( owner ); +//_getOwnerSet().erase(owner); if (owner == _masterOwner) destroy(); } diff --git a/hurricane/src/hurricane/hurricane/IntrusiveSet.h b/hurricane/src/hurricane/hurricane/IntrusiveSet.h index 44faeb35..48106d88 100644 --- a/hurricane/src/hurricane/hurricane/IntrusiveSet.h +++ b/hurricane/src/hurricane/hurricane/IntrusiveSet.h @@ -433,14 +433,23 @@ template class IntrusiveSet { _length = newLength; _array = new Element*[_length]; memset(_array, 0, _length * sizeof(Element*)); + cdebug_log(0,0) << "IntrusiveSet::_resize() " << oldLength << " -> " << newLength << endl; + for (unsigned index = 0; index < oldLength; index++) { Element* element = oldArray[index]; + if (not element) + cdebug_log(0,0) << "| bucket:" << setw(4) << index << " empty" << endl; + while (element) { Element* nextElement = _getNextElement(element); unsigned newIndex = (_getHashValue(element) / 8) % _length; _setNextElement(element, _array[newIndex]); _array[newIndex] = element; element = nextElement; + + cdebug_log(0,0) << "| bucket:" << setw(4) << index + << " -> " << setw(4) << newIndex + << " + " << element << endl; } } delete[] oldArray; diff --git a/hurricane/src/hurricane/hurricane/Property.h b/hurricane/src/hurricane/hurricane/Property.h index da90d18a..a0e2d7a2 100644 --- a/hurricane/src/hurricane/hurricane/Property.h +++ b/hurricane/src/hurricane/hurricane/Property.h @@ -396,7 +396,7 @@ namespace Hurricane { unsigned int _count; }; public: - typedef set DBoSet; + typedef vector DBoSet; typedef map OrphanedMap; public: static const OrphanedMap& getOrphaneds (); @@ -411,6 +411,7 @@ namespace Hurricane { virtual void onCapturedBy ( DBo* owner ); virtual void onReleasedBy ( DBo* owner ); virtual void onNotOwned (); + void _erase ( DBo* owner ); inline DBoSet& _getOwnerSet (); virtual string _getString () const; virtual Record* _getRecord () const; From 6c229ce0762113fb321fbd04234925a33dc683a2 Mon Sep 17 00:00:00 2001 From: Roselyne Chotin-Avot Date: Fri, 5 May 2017 12:01:26 +0200 Subject: [PATCH 06/30] =?UTF-8?q?Remove=20=E2=80=98-=E2=80=98=20=20from=20?= =?UTF-8?q?zsh=20shell=20on=20MacOS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bootstrap/coriolisEnv.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bootstrap/coriolisEnv.py b/bootstrap/coriolisEnv.py index 34940328..e359cf8d 100755 --- a/bootstrap/coriolisEnv.py +++ b/bootstrap/coriolisEnv.py @@ -147,7 +147,7 @@ def guessShell (): #if os.environ.has_key('SHELL'): return os.environ['SHELL'] psCommand = subprocess.Popen ( ['ps', '-p', str(os.getppid()) ], stdout=subprocess.PIPE ) - shell = psCommand.stdout.readlines()[1][:-1].split()[-1] + shell = psCommand.stdout.readlines()[1][:-1].split()[-1].lstrip('-') whichCommand = subprocess.Popen ( ['which', shell ], stdout=subprocess.PIPE ) shellPath = whichCommand.stdout.readlines()[0][:-1] From f1b2035cb09f0ec76410e4ef13f9fae99e13ee06 Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Tue, 9 May 2017 18:33:55 +0200 Subject: [PATCH 07/30] Support for profiling the priority of events in Kite & Katana. * New: In Katana::Configuration, added "katana.profileEventCosts" to triggers the event's profiling. * New: In Katana::NegociateWindow::_negociate(), save a profiling trace of all the events and their priority, separated by metal, for later analysis (see doChip.py in alliance-check-toolkit). * New: In Katana::RoutingEvent::Key::Compare(), start implementing new segment freedom degree functions. * Change: In Hurricane::Net::_getString(), put a more complete information about the Net instead of just only it's name. * Bug: In Katana, reorder the various stages so that they are executed in the exact same sequence as in "doChip.py" so now routing in graphic mode and text mode gives exactly the same results. * Bug: In Katana::PyKatanaEngine, runGlobalRouter do not take any argument. --- anabatic/src/Configuration.cpp | 2 ++ hurricane/src/hurricane/Net.cpp | 14 +++++++-- .../src/hurricane/hurricane/DebugSession.h | 8 ++--- katana/src/Configuration.cpp | 12 +++++--- katana/src/GlobalRoute.cpp | 3 +- katana/src/GraphicKatanaEngine.cpp | 2 +- katana/src/NegociateWindow.cpp | 24 ++++++++++++++- katana/src/PyKatanaEngine.cpp | 20 +++++-------- katana/src/RoutingEvent.cpp | 30 ++++++++++++------- katana/src/SegmentFsm.cpp | 4 +++ katana/src/Track.cpp | 7 ++--- katana/src/katana/Configuration.h | 7 ++++- katana/src/katana/KatanaEngine.h | 2 ++ kite/src/Configuration.cpp | 10 ++++--- kite/src/NegociateWindow.cpp | 22 +++++++++++++- kite/src/kite/Configuration.h | 5 ++++ kite/src/kite/KiteEngine.h | 2 ++ 17 files changed, 126 insertions(+), 48 deletions(-) diff --git a/anabatic/src/Configuration.cpp b/anabatic/src/Configuration.cpp index 843e6922..b6861a1b 100644 --- a/anabatic/src/Configuration.cpp +++ b/anabatic/src/Configuration.cpp @@ -328,6 +328,8 @@ namespace Anabatic { void Configuration::print ( Cell* cell ) const { + if (not cmess1.enabled()) return; + string topLayerName = "UNKOWN"; const Layer* topLayer = _rg->getRoutingLayer( _allowedDepth ); if (topLayer) diff --git a/hurricane/src/hurricane/Net.cpp b/hurricane/src/hurricane/Net.cpp index 30f682a0..d4861668 100644 --- a/hurricane/src/hurricane/Net.cpp +++ b/hurricane/src/hurricane/Net.cpp @@ -748,9 +748,17 @@ void Net::_preDestroy() string Net::_getString() const // *************************** { - string s = Inherit::_getString(); - s.insert(s.length() - 1, " " + getString(_name)); - return s; + string bs = Inherit::_getString(); + string ds = "\"" + getString(_name) + "\" "; + ds += ((_isExternal ) ? "e" : "-"); + ds += ((_isGlobal ) ? "g" : "-"); + ds += ((_isAutomatic) ? "a" : "-"); + ds += " "; + ds += getString(_type ) + " "; + ds += getString(_direction); + + bs.insert( bs.length() - 1, " " + ds ); + return bs; } Record* Net::_getRecord() const diff --git a/hurricane/src/hurricane/hurricane/DebugSession.h b/hurricane/src/hurricane/hurricane/DebugSession.h index 2b87579e..a01d893b 100644 --- a/hurricane/src/hurricane/hurricane/DebugSession.h +++ b/hurricane/src/hurricane/hurricane/DebugSession.h @@ -126,12 +126,12 @@ namespace Hurricane { DebugSession* DebugSession::get () { return _singleton; } bool DebugSession::isTraced ( const void* symbol ) { return _singleton->_isTraced(symbol); } void DebugSession::addToTrace ( const void* symbol ) { _singleton->_addToTrace(symbol); } - void DebugSession::addToTrace ( const Net* net ) { _singleton->_addToTrace ( net ); } + void DebugSession::addToTrace ( const Net* net ) { _singleton->_addToTrace(net); } void DebugSession::addToTrace ( const Cell* cell - , const Name& name ) { _singleton->_addToTrace ( cell, name ); } + , const Name& name ) { _singleton->_addToTrace( cell, name ); } bool DebugSession::_isTraced ( const void* symbol ) const { return _symbols.find(symbol) != _symbols.end(); } - void DebugSession::_addToTrace ( const void* symbol ) { _symbols.insert ( symbol ); } - void DebugSession::_addToTrace ( const Net* net ) { _addToTrace ( static_cast(net) ); } + void DebugSession::_addToTrace ( const void* symbol ) { _symbols.insert( symbol ); } + void DebugSession::_addToTrace ( const Net* net ) { _addToTrace( static_cast(net) ); } diff --git a/katana/src/Configuration.cpp b/katana/src/Configuration.cpp index d3537fe0..c42f1bf4 100644 --- a/katana/src/Configuration.cpp +++ b/katana/src/Configuration.cpp @@ -40,12 +40,13 @@ namespace Katana { Configuration::Configuration () : Anabatic::Configuration() , _postEventCb () - , _hTracksReservedLocal(Cfg::getParamInt("katana.hTracksReservedLocal", 3)->asInt()) - , _vTracksReservedLocal(Cfg::getParamInt("katana.vTracksReservedLocal", 3)->asInt()) + , _hTracksReservedLocal(Cfg::getParamInt ("katana.hTracksReservedLocal", 3)->asInt()) + , _vTracksReservedLocal(Cfg::getParamInt ("katana.vTracksReservedLocal", 3)->asInt()) , _ripupLimits () - , _ripupCost (Cfg::getParamInt("katana.ripupCost" , 3)->asInt()) - , _eventsLimit (Cfg::getParamInt("katana.eventsLimit" ,4000000)->asInt()) + , _ripupCost (Cfg::getParamInt ("katana.ripupCost" , 3)->asInt()) + , _eventsLimit (Cfg::getParamInt ("katana.eventsLimit" ,4000000)->asInt()) , _flags (0) + , _profileEventCosts (Cfg::getParamBool("katana.profileEventCosts" ,false )->asBool()) { _ripupLimits[StrapRipupLimit] = Cfg::getParamInt("katana.strapRipupLimit" ,16)->asInt(); _ripupLimits[LocalRipupLimit] = Cfg::getParamInt("katana.localRipupLimit" , 7)->asInt(); @@ -81,6 +82,7 @@ namespace Katana { , _ripupLimits () , _ripupCost (other._ripupCost) , _eventsLimit (other._eventsLimit) + , _profileEventCosts (other._profileEventCosts) { _ripupLimits[StrapRipupLimit] = other._ripupLimits[StrapRipupLimit]; _ripupLimits[LocalRipupLimit] = other._ripupLimits[LocalRipupLimit]; @@ -142,6 +144,8 @@ namespace Katana { void Configuration::print ( Cell* cell ) const { + if (not cmess1.enabled()) return; + cout << " o Configuration of ToolEngine for Cell <" << cell->getName() << ">" << endl; cout << Dots::asUInt (" - Global router H reserved local" ,_hTracksReservedLocal) << endl; cout << Dots::asUInt (" - Global router V reserved local" ,_vTracksReservedLocal) << endl; diff --git a/katana/src/GlobalRoute.cpp b/katana/src/GlobalRoute.cpp index a5758363..169b03d1 100644 --- a/katana/src/GlobalRoute.cpp +++ b/katana/src/GlobalRoute.cpp @@ -25,6 +25,7 @@ namespace { using std::cerr; using std::endl; using std::setw; + using std::setfill; using std::left; using std::right; using Hurricane::DbU; @@ -162,7 +163,7 @@ namespace Katana { size_t iteration = 0; size_t netCount = 0; do { - cmess2 << " [" << setw(3) << iteration << "] nets:"; + cmess2 << " [" << setfill(' ') << setw(3) << iteration << "] nets:"; netCount = 0; for ( NetData* netData : getNetOrdering() ) { diff --git a/katana/src/GraphicKatanaEngine.cpp b/katana/src/GraphicKatanaEngine.cpp index a6b03a0b..6070257a 100644 --- a/katana/src/GraphicKatanaEngine.cpp +++ b/katana/src/GraphicKatanaEngine.cpp @@ -194,8 +194,8 @@ namespace Katana { katana = KatanaEngine::create( cell ); katana->setPostEventCb( boost::bind(&GraphicKatanaEngine::postEvent,this) ); katana->setViewer( _viewer ); + katana->printConfiguration(); katana->digitalInit(); - if (cmess1.enabled()) katana->printConfiguration(); } else cerr << Warning( "%s already has a Katana engine.", getString(cell).c_str() ) << endl; diff --git a/katana/src/NegociateWindow.cpp b/katana/src/NegociateWindow.cpp index 3b8cc2a6..eeca94a9 100644 --- a/katana/src/NegociateWindow.cpp +++ b/katana/src/NegociateWindow.cpp @@ -16,6 +16,7 @@ #include #include +#include #include #include "hurricane/Warning.h" #include "hurricane/Bug.h" @@ -137,6 +138,7 @@ namespace { namespace Katana { + using std::ofstream; using std::cerr; using std::endl; using std::setw; @@ -425,7 +427,11 @@ namespace Katana { cmess1 << " o Negociation Stage." << endl; - unsigned long limit = _katana->getEventsLimit(); + unsigned long limit = _katana->getEventsLimit(); + bool profiling = _katana->profileEventCosts(); + ofstream ofprofile; + + if (profiling) ofprofile.open( "katana.profile.txt" ); _eventHistory.clear(); _eventQueue.load( _segments ); @@ -453,6 +459,21 @@ namespace Katana { cmess2.flush(); } + if (ofprofile.is_open()) { + size_t depth = _katana->getConfiguration()->getLayerDepth( event->getSegment()->getLayer() ); + if (depth < 6) { + ofprofile << setw(10) << right << count << " "; + for ( size_t i=0 ; i<6 ; ++i ) { + if (i == depth) + ofprofile << setw(10) << right << setprecision(2) << event->getPriority () << " "; + else + ofprofile << setw(10) << right << setprecision(2) << 0.0 << " "; + } + + ofprofile << setw( 2) << right << event->getEventLevel() << endl; + } + } + event->process( _eventQueue, _eventHistory, _eventLoop ); count++; @@ -519,6 +540,7 @@ namespace Katana { cerr << Bug( "%d events remains after clear.", RoutingEvent::getAllocateds() ) << endl; } + if (ofprofile.is_open()) ofprofile.close(); _statistics.setEventsCount( eventsCount ); cdebug_tabw(159,-1); diff --git a/katana/src/PyKatanaEngine.cpp b/katana/src/PyKatanaEngine.cpp index 8222a1da..d9ea2a7c 100644 --- a/katana/src/PyKatanaEngine.cpp +++ b/katana/src/PyKatanaEngine.cpp @@ -167,25 +167,19 @@ extern "C" { } - PyObject* PyKatanaEngine_runGlobalRouter ( PyKatanaEngine* self, PyObject* args ) + PyObject* PyKatanaEngine_runGlobalRouter ( PyKatanaEngine* self ) { cdebug_log(40,0) << "PyKatanaEngine_runGlobalRouter()" << endl; HTRY METHOD_HEAD("KatanaEngine.runGlobalRouter()") - unsigned int flags = 0; - if (PyArg_ParseTuple(args,"I:KatanaEngine.runGlobalRouter", &flags)) { - if (katana->getViewer()) { - if (ExceptionWidget::catchAllWrapper( std::bind(&KatanaEngine::runGlobalRouter,katana) )) { - PyErr_SetString( HurricaneError, "KatanaEngine::runGlobalrouter() has thrown an exception (C++)." ); - return NULL; - } - } else { - katana->runGlobalRouter(); + if (katana->getViewer()) { + if (ExceptionWidget::catchAllWrapper( std::bind(&KatanaEngine::runGlobalRouter,katana) )) { + PyErr_SetString( HurricaneError, "KatanaEngine::runGlobalrouter() has thrown an exception (C++)." ); + return NULL; } } else { - PyErr_SetString(ConstructorError, "KatanaEngine.runGlobalRouter(): Invalid number/bad type of parameter."); - return NULL; + katana->runGlobalRouter(); } HCATCH @@ -311,7 +305,7 @@ extern "C" { , "Display on the console the configuration of Katana." } , { "getToolSuccess" , (PyCFunction)PyKatanaEngine_getToolSuccess , METH_NOARGS , "Returns True if the detailed routing has been successful." } - , { "runGlobalRouter" , (PyCFunction)PyKatanaEngine_runGlobalRouter , METH_VARARGS + , { "runGlobalRouter" , (PyCFunction)PyKatanaEngine_runGlobalRouter , METH_NOARGS , "Run the global router (Katana)." } , { "loadGlobalRouting" , (PyCFunction)PyKatanaEngine_loadGlobalRouting , METH_VARARGS , "Load global routing into the detailed router." } diff --git a/katana/src/RoutingEvent.cpp b/katana/src/RoutingEvent.cpp index f07a4d8e..f161e3ca 100644 --- a/katana/src/RoutingEvent.cpp +++ b/katana/src/RoutingEvent.cpp @@ -15,6 +15,7 @@ #include +#include #include #include #include @@ -79,11 +80,11 @@ namespace Katana { if (lhs._eventLevel < rhs._eventLevel) return true; // Process all M2 (terminal access) before any others. - if ((lhs._layerDepth == 1) and (rhs._layerDepth != 1)) return false; - if ((lhs._layerDepth != 1) and (rhs._layerDepth == 1)) return true; + //if ((lhs._layerDepth == 1) and (rhs._layerDepth != 1)) return false; + //if ((lhs._layerDepth != 1) and (rhs._layerDepth == 1)) return true; - if (lhs._priority > rhs._priority) return false; - if (lhs._priority < rhs._priority) return true; + if (lhs._priority > rhs._priority) return true; + if (lhs._priority < rhs._priority) return false; if (lhs._length > rhs._length) return false; if (lhs._length < rhs._length) return true; @@ -401,11 +402,11 @@ namespace Katana { cdebug_tabw(159,1); cdebug_log(159,0) << "State: *before* " - << DataNegociate::getStateString(_segment->getDataNegociate()) - << " ripup:" << _segment->getDataNegociate()->getRipupCount() - << endl; + << DataNegociate::getStateString(_segment->getDataNegociate()) + << " ripup:" << _segment->getDataNegociate()->getRipupCount() + << endl; cdebug_log(159,0) << "Level: " << getEventLevel() - << ", area: " << _segment->getFreedomDegree() << endl; + << ", area: " << _segment->getFreedomDegree() << endl; //_preCheck( _segment ); _eventLevel = 0; @@ -648,10 +649,17 @@ namespace Katana { _overConstrained = _segment->base()->getAutoSource()->isTerminal() and _segment->base()->getAutoTarget()->isTerminal(); } + + double length = DbU::toLambda(_segment->getLength()); + + // if (length > 200.0) length = 200.0 - std::log(length)*20.0; + // if (length < 0.0) length = 0.0; - _priority - = (DbU::toLambda(_segment->getLength()) + 1.0) - * (DbU::toLambda(_segment->base()->getSlack()) + 1.0); + _priority = (length + 1.0) * (DbU::toLambda(_segment->base()->getSlack()) + 1.0); + + // if (_priority > 10000.0) cerr << "_priority:" << _priority + // << " length:" << DbU::toLambda(_segment->getLength()) + // << " slack:" << DbU::toLambda(_segment->base()->getSlack()) << endl; cdebug_log(159,0) << _segment << " has " << (int)_tracksNb << " choices " << perpandicular << endl; cdebug_tabw(159,-1); diff --git a/katana/src/SegmentFsm.cpp b/katana/src/SegmentFsm.cpp index 8748fe49..73abf1e7 100644 --- a/katana/src/SegmentFsm.cpp +++ b/katana/src/SegmentFsm.cpp @@ -503,8 +503,10 @@ namespace Katana { _event2 = _data2->getRoutingEvent(); _event2->setTracksFree( 0 ); + cdebug_log(159,1) << "Coupled:" << _event2 << endl; _data2->update(); _event2->revalidate(); + cdebug_tabw(159,-1); _sameAxis = (segment1->isVertical() xor symData->isSymVertical()); } @@ -639,6 +641,8 @@ namespace Katana { cdebug_log(159,0) << "TrackCost::Compare() - DiscardGlobals" << endl; } + // FOR ANALOG ONLY. + //flags |= TrackCost::IgnoreSharedLength; sort( _costs.begin(), _costs.end(), CompareCostArray(flags) ); size_t i=0; diff --git a/katana/src/Track.cpp b/katana/src/Track.cpp index 95589186..7424c1eb 100644 --- a/katana/src/Track.cpp +++ b/katana/src/Track.cpp @@ -172,10 +172,8 @@ namespace Katana { TrackElement* Track::getPrevious ( size_t& index, Net* net ) const { for ( index-- ; index != npos ; index-- ) { - if (cdebug.enabled()) { - cerr << tab << index << ":"; cerr.flush(); - cerr << _segments[index] << endl; - } + cdebug_log(140,0) << index << ":" << _segments[index] << endl; + if (_segments[index]->getNet() == net) continue; return _segments[index]; } @@ -437,6 +435,7 @@ namespace Katana { } } } + cdebug_tabw(155,-1); return Interval( minFree, getMaximalPosition(end,state) ); diff --git a/katana/src/katana/Configuration.h b/katana/src/katana/Configuration.h index c76dfa5e..2f6c0bc5 100644 --- a/katana/src/katana/Configuration.h +++ b/katana/src/katana/Configuration.h @@ -10,7 +10,7 @@ // | Author : Jean-Paul CHAPUT | // | E-mail : Jean-Paul.Chaput@asim.lip6.fr | // | =============================================================== | -// | C++ Header : "./katana/Configuration.h" | +// | C++ Header : "./katana/Configuration.h" | // +-----------------------------------------------------------------+ @@ -60,6 +60,7 @@ namespace Katana { ~Configuration (); // Decorateds. inline bool useClockTree () const; + inline bool profileEventCosts () const; // Methods. inline Anabatic::Configuration* base (); inline const Anabatic::Configuration* base () const; @@ -77,6 +78,7 @@ namespace Katana { void setVTracksReservedLocal ( size_t ); inline void setFlags ( unsigned int ); inline void unsetFlags ( unsigned int ); + inline void setProfileEventCosts ( bool ); virtual void print ( Cell* ) const; virtual Record* _getRecord () const; virtual string _getString () const; @@ -90,6 +92,7 @@ namespace Katana { unsigned int _ripupCost; unsigned long _eventsLimit; unsigned int _flags; + bool _profileEventCosts; private: Configuration ( const Configuration& other ); Configuration& operator= ( const Configuration& ); @@ -108,8 +111,10 @@ namespace Katana { inline void Configuration::setPostEventCb ( PostEventCb_t cb ) { _postEventCb = cb; } inline void Configuration::setEventsLimit ( unsigned long limit ) { _eventsLimit = limit; } inline bool Configuration::useClockTree () const { return _flags & UseClockTree; } + inline bool Configuration::profileEventCosts () const { return _profileEventCosts; } inline void Configuration::setFlags ( unsigned int flags ) { _flags |= flags; } inline void Configuration::unsetFlags ( unsigned int flags ) { _flags &= ~flags; } + inline void Configuration::setProfileEventCosts ( bool state ) { _profileEventCosts = state; } diff --git a/katana/src/katana/KatanaEngine.h b/katana/src/katana/KatanaEngine.h index fa22d4a2..2b6694a0 100644 --- a/katana/src/katana/KatanaEngine.h +++ b/katana/src/katana/KatanaEngine.h @@ -78,6 +78,7 @@ namespace Katana { inline unsigned int getRipupCost () const; inline size_t getHTracksReservedLocal () const; inline size_t getVTracksReservedLocal () const; + inline bool profileEventCosts () const; virtual const Name& getName () const; inline Configuration::PostEventCb_t& getPostEventCb (); @@ -163,6 +164,7 @@ namespace Katana { inline size_t KatanaEngine::getHTracksReservedLocal () const { return _configuration->getHTracksReservedLocal(); } inline size_t KatanaEngine::getVTracksReservedLocal () const { return _configuration->getVTracksReservedLocal(); } inline unsigned int KatanaEngine::getRipupLimit ( unsigned int type ) const { return _configuration->getRipupLimit(type); } + inline bool KatanaEngine::profileEventCosts () const { return _configuration->profileEventCosts(); } inline const std::map& KatanaEngine::getSymmetrics () const { return _symmetrics; } inline NegociateWindow* KatanaEngine::getNegociateWindow () { return _negociateWindow; } diff --git a/kite/src/Configuration.cpp b/kite/src/Configuration.cpp index 9c2f28d9..bf708b57 100644 --- a/kite/src/Configuration.cpp +++ b/kite/src/Configuration.cpp @@ -41,12 +41,13 @@ namespace Kite { : Katabatic::Configuration() , _base (base) , _postEventCb () - , _hTracksReservedLocal(Cfg::getParamInt("kite.hTracksReservedLocal", 3)->asInt()) - , _vTracksReservedLocal(Cfg::getParamInt("kite.vTracksReservedLocal", 3)->asInt()) + , _hTracksReservedLocal(Cfg::getParamInt ("kite.hTracksReservedLocal", 3)->asInt()) + , _vTracksReservedLocal(Cfg::getParamInt ("kite.vTracksReservedLocal", 3)->asInt()) , _ripupLimits () - , _ripupCost (Cfg::getParamInt("kite.ripupCost" , 3)->asInt()) - , _eventsLimit (Cfg::getParamInt("kite.eventsLimit" ,4000000)->asInt()) + , _ripupCost (Cfg::getParamInt ("kite.ripupCost" , 3)->asInt()) + , _eventsLimit (Cfg::getParamInt ("kite.eventsLimit" ,4000000)->asInt()) , _flags (0) + , _profileEventCosts (Cfg::getParamBool("kite.profileEventCosts" ,false )->asBool()) { _ripupLimits[StrapRipupLimit] = Cfg::getParamInt("kite.strapRipupLimit" ,16)->asInt(); _ripupLimits[LocalRipupLimit] = Cfg::getParamInt("kite.localRipupLimit" , 7)->asInt(); @@ -83,6 +84,7 @@ namespace Kite { , _ripupLimits () , _ripupCost (other._ripupCost) , _eventsLimit (other._eventsLimit) + , _profileEventCosts (other._profileEventCosts) { if ( _base == NULL ) _base = other._base->clone(); diff --git a/kite/src/NegociateWindow.cpp b/kite/src/NegociateWindow.cpp index 1a8d882c..7cbb3f8e 100644 --- a/kite/src/NegociateWindow.cpp +++ b/kite/src/NegociateWindow.cpp @@ -429,7 +429,11 @@ namespace Kite { cmess1 << " o Negociation Stage." << endl; - unsigned long limit = _kite->getEventsLimit(); + unsigned long limit = _kite->getEventsLimit(); + bool profiling = _kite->profileEventCosts(); + ofstream ofprofile; + + if (profiling) ofprofile.open( "kite.profile.txt" ); _eventHistory.clear(); _eventQueue.load( _segments ); @@ -457,6 +461,21 @@ namespace Kite { cmess2.flush(); } + if (ofprofile.is_open()) { + size_t depth = _kite->getConfiguration()->getLayerDepth( event->getSegment()->getLayer() ); + if (depth < 6) { + ofprofile << setw(10) << right << count << " "; + for ( size_t i=0 ; i<6 ; ++i ) { + if (i == depth) + ofprofile << setw(10) << right << setprecision(2) << event->getPriority () << " "; + else + ofprofile << setw(10) << right << setprecision(2) << 0.0 << " "; + } + + ofprofile << setw( 2) << right << event->getEventLevel() << endl; + } + } + event->process( _eventQueue, _eventHistory, _eventLoop ); count++; @@ -523,6 +542,7 @@ namespace Kite { cerr << Bug( "%d events remains after clear.", RoutingEvent::getAllocateds() ) << endl; } + if (ofprofile.is_open()) ofprofile.close(); _statistics.setEventsCount( eventsCount ); cdebug_tabw(159,-1); diff --git a/kite/src/kite/Configuration.h b/kite/src/kite/Configuration.h index b8e0a343..0a21a7e0 100644 --- a/kite/src/kite/Configuration.h +++ b/kite/src/kite/Configuration.h @@ -60,6 +60,7 @@ namespace Kite { virtual bool isGMetal ( const Layer* ) const; virtual bool isGContact ( const Layer* ) const; inline bool useClockTree () const; + inline bool profileEventCosts () const; virtual size_t getDepth () const; virtual size_t getAllowedDepth () const; virtual DbU::Unit getSliceHeight () const; @@ -89,6 +90,7 @@ namespace Kite { virtual void setSaturateRatio ( float ); virtual void setSaturateRp ( size_t ); virtual void setGlobalThreshold ( DbU::Unit ); + inline void setProfileEventCosts ( bool ); virtual void print ( Cell* ) const; // Methods. inline Katabatic::Configuration* base (); @@ -119,6 +121,7 @@ namespace Kite { unsigned int _ripupCost; unsigned long _eventsLimit; unsigned int _flags; + bool _profileEventCosts; private: Configuration ( const Configuration& other, Katabatic::Configuration* base=NULL ); Configuration& operator= ( const Configuration& ); @@ -136,8 +139,10 @@ namespace Kite { inline void Configuration::setPostEventCb ( PostEventCb_t cb ) { _postEventCb = cb; } inline void Configuration::setEventsLimit ( unsigned long limit ) { _eventsLimit = limit; } inline bool Configuration::useClockTree () const { return _flags & UseClockTree; } + inline bool Configuration::profileEventCosts () const { return _profileEventCosts; } inline void Configuration::setFlags ( unsigned int flags ) { _flags |= flags; } inline void Configuration::unsetFlags ( unsigned int flags ) { _flags &= ~flags; } + inline void Configuration::setProfileEventCosts ( bool state ) { _profileEventCosts = state; } diff --git a/kite/src/kite/KiteEngine.h b/kite/src/kite/KiteEngine.h index eba26afd..737ba4b3 100644 --- a/kite/src/kite/KiteEngine.h +++ b/kite/src/kite/KiteEngine.h @@ -78,6 +78,7 @@ namespace Kite { inline unsigned int getRipupCost () const; inline size_t getHTracksReservedLocal () const; inline size_t getVTracksReservedLocal () const; + inline bool profileEventCosts () const; virtual const Name& getName () const; inline Configuration::PostEventCb_t& getPostEventCb (); @@ -161,6 +162,7 @@ namespace Kite { inline unsigned int KiteEngine::getRipupCost () const { return _configuration->getRipupCost(); } inline size_t KiteEngine::getHTracksReservedLocal () const { return _configuration->getHTracksReservedLocal(); } inline size_t KiteEngine::getVTracksReservedLocal () const { return _configuration->getVTracksReservedLocal(); } + inline bool KiteEngine::profileEventCosts () const { return _configuration->profileEventCosts(); } inline unsigned int KiteEngine::getRipupLimit ( unsigned int type ) const { return _configuration->getRipupLimit(type); } inline NegociateWindow* KiteEngine::getNegociateWindow () { return _negociateWindow; } inline size_t KiteEngine::getRoutingPlanesSize () const { return _routingPlanes.size(); } From 86df627d013ba865946a86b5b88764bf472928a7 Mon Sep 17 00:00:00 2001 From: EricLaoGitHub Date: Thu, 11 May 2017 11:24:19 +0200 Subject: [PATCH 08/30] Dijkstra.cpp: - Minor debug text --- anabatic/src/Dijkstra.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/anabatic/src/Dijkstra.cpp b/anabatic/src/Dijkstra.cpp index d5d44d29..023ce26b 100644 --- a/anabatic/src/Dijkstra.cpp +++ b/anabatic/src/Dijkstra.cpp @@ -1372,6 +1372,8 @@ namespace Anabatic { if (state){ if (state->isSelfSym()){ + cdebug_log(112,0) << "void Dijkstra::setAxisTargets (): " << endl; + Cell* cell = _anabatic->getCell(); _queue.clear(); GCell* gcell = NULL; @@ -1510,8 +1512,9 @@ namespace Anabatic { bool Dijkstra::_propagate ( Flags enabledSides ) { - cdebug_log(112,1) << "Dijkstra::_propagate() " << _net << endl; + cdebug_log(112,1) << "Dijkstra::_propagate() " << _net << endl; while ( not _queue.empty() ) { + cdebug_log(111,0) << "Number of targets left: " << _targets.size() << " and needaxis? " << needAxisTarget() << endl; _queue.dump(); Vertex* current = _queue.top(); GCell* gcurrent = current->getGCell(); @@ -1609,9 +1612,11 @@ namespace Anabatic { , getString(_net).c_str() ) << endl; + cdebug_tabw(112, 0) << "Targets are: " << endl; for ( Vertex* v : _targets ) { cdebug_tabw(112, 0) << v << endl; } + cdebug_tabw(112, 0) << "End Targets are." << endl; cdebug_tabw(112,-1); return false; From 371946c1c0f51fd7879df65186ff29e8bee919c9 Mon Sep 17 00:00:00 2001 From: EricLaoGitHub Date: Thu, 11 May 2017 14:02:49 +0200 Subject: [PATCH 09/30] - Minor debug test fix --- anabatic/src/Dijkstra.cpp | 1 - documentation/UsersGuide/UsersGuide.pdf | 292 ++++++++++++------------ 2 files changed, 144 insertions(+), 149 deletions(-) diff --git a/anabatic/src/Dijkstra.cpp b/anabatic/src/Dijkstra.cpp index 023ce26b..f6ef3702 100644 --- a/anabatic/src/Dijkstra.cpp +++ b/anabatic/src/Dijkstra.cpp @@ -1566,7 +1566,6 @@ namespace Anabatic { } /////////////////////////////////////////////////////////////////////////////////// - // if has 2 from, 2 distances to calculate cdebug_log(111,0) << "Calc distance1" << endl; DbU::Unit distance = _distanceCb( current, vneighbor, edge ); diff --git a/documentation/UsersGuide/UsersGuide.pdf b/documentation/UsersGuide/UsersGuide.pdf index f28e4915..181cb75f 100644 --- a/documentation/UsersGuide/UsersGuide.pdf +++ b/documentation/UsersGuide/UsersGuide.pdf @@ -2209,62 +2209,58 @@ t3 endstream endobj 9 0 obj -<> +<> stream -xÚÍ\[o7~ϯàcòPyx/ŠM³ÉÛÝNX ȃ,OcumËä&yÙß¾ßGYkäDŽé¤Q3Cžs¾s!ÇYe­²&)+Jðkr¶(ë•\ *8¯lTÑã^R) CV9d…§JŒJ »³3FÊF ž“œ•8ŒUp݃ñJ†!‘ˆqÐI0B–¢ðc‹KÊá’ñÔ1TÀ,ð¨D«œÃP±(LC|ŠÊ •qCÇ" -]%<’Ååð¨ÁÜ<š,xÜÂ`Cy°…®ã£éÆ'ɘŒò:%ôÃTrÆóC• <.YÌŒ{Áêtq`2†Àd9Tñ€¡#:tIø/pˆˆç1…‚õÁŠ“ñ|Á¹(‚ñ#†öŸ]A4áz C¤( -¬†Œç2¾ˆS‹ƒå¤¢€oå°˜X -wªx %”Š ƒ•¬bÆ Ï—!5h?—•ë•=×ôl]jKvê‚ -ù)\c¡ŒŒµÀ(…ÏQ]ê¢ÚÆ,$mmª&I9Qc̪Ž$œ¸p¶"˜n å@S*xèŽ@âV¢a -ª{4Ä[B -x£) 퇵²…•˾…ã õ@¸¤ÎÂ0„HธµqÆ&Ðëp-öp°RqD!‘-¬¼À  œ‹g@ë'"¹!‹§>òFÕp|pm\dÀ‘#pG¸ÖÐ"{@GÑâ\2øªƒË¸Äªr-X'ZĦH¥3¾¢[–PæÞìª&&„2÷–—¨”äP{ÐÔ°ˆl.)s_’2’ /eî{PæÞ‘µÇø„Ò÷ÑçØ#Á…jî³#Œ’F!jѶ9ž8ÈÆrFhX5Gpi4¶jZç(ýÀÕv4Í@£áÌlÀm´hT4H©w3õÀ±G有ähá.µ-¬7p~–@2廼F(µoàê.[”L½%l@us¥I¤ú–?UJt6Õº oBë në—-Zf½[èILmQÖ¿`u-ºò_"[…H]ùá‡î·—}÷ãÅÅtѽ¾:^ðÛ/“‹ÿvϦ³“~öÆÀwš·ÝOoì²ñ#º¼î^N›vÏ›'OŸvGýxñ&M“u"ít‚¶a4,þíÓ§îIJ¤‚ÑÄ–èu† ÇA©!7 ä²Î±êŽŽÕÿD ti@ʯI]5ü>|]оâ,¾“+çq½4 †´¬Óþšü¼Øõ HÅ!)|zšsíéÒ­Ñε`+ h!|ІñɈ¤dír ¾òV*ÚЃÓtL0[í¥_eH+&mJ ¨#i{Ä6 5ÚÕø‚¦ß‚ŸÐp…F `l@éxÈ•§ö1$È:Á¡X5ôÆCZöpQ »ˆg5MZ'CZ6éê\2P -`$êZðÕi™ Ý®Ѐ¼¬Pµàë÷-_ › *¡W0|ß‚/;p&ðøÚ3À I¸h_ У…uY;d,¢˜…‘(¿ÃÌ\ Ïe®Ëƒ¡ÛAÙ³øu1-LÙº!c>hF™€&&n>x]¤ _C÷…¨NÃ…!„‚ûg–éE—&º/¤©:Ö|0ŸApïZxe;ô_ÞˆKšÙ¼·Äý´Ò®n¸’4Ã`àG`’m’¶mT#HepÃäÞ +é -Pß·¡ìÐ{¹ätöLÕ€MH\¦ÇlÂ×hH,‚‹2K q\wM8z0ç‹.LM<ã ¬jÀêæ&œ ]‚&]ýƒ#d² 7#M´~èÃœÀ´˜°"¢*LªüLjAkèÃÃŒÃÚœ†mƆN ˜«YÆNÀÖj¨›(¾˜-业ÕKÇɪ_):4ÉdèÄŒk–6žkVjEZÐ’!-8-¦±ˆÞtðµ$ C“üA†NL൘G ¾Ûš²š$âwaÙ¶v5ãFBÄŠ.üL“üA†NLœ4˜@$D– š$2ôb"ˆŸj*YËp5© gÃ4LL¬A¶EÜa—õ3mΆy˜-¹P-]2ÿbA9R‹¨T†®Ìf$^¬Ž%„¥¬—›D2te6Íý¤c:ÔÿK“,B†ŽŒ‰edý -®Ú°z…„³4I#d¼kcˆ34ëÄö½ëZ~<[~ü|G¾Œ‚ÈW|ýûègþ>>],.¿ïºÓéy¯û‹wz2š/F ´O®ºÿ/ƧWÝšs"Ör-#á~ôˆu~gž5Ã/áô€¡‡Ë‰ÇŠùºéPñ¡IoÜÌbÅ4n[•îÎÿà‘·­„?šOÎõÙä2êßgÝåÕq7žÎ&ӳɼ½±1º} hŠ€Þ}MÒç–&s\ßPÏ'gÓ“Kýn²8½:Ö“i7]NNþ˜O/6Êh‘7ÙRTˆ@NâK„Ís‡69Si59æóþý{=ŸˆžÎÞmÑgí…›8ˆOì2ÿ`õØaZ)Ègµf£,kýÙ«*+MÙÿüzü(s¼sîØ>ﵛ͌¶´|K[Ìí«©’Q`¶J€3îm2í@ybir] ºŒí5ø‡â~¯wÚd>,rØ#.Î׺k¡µz0™\[b«R!‚–’ê©øÄXË\n]‹?`!÷*ÚZ½¶Ur¥}•»†‡ïæÓñAçý|òÝÉt<_ã¨ì|íÛwµbí¹m4)PMƒpÐ_Ãþh±ègÝóþÏɸ?zù¬ÿQ©§E*ÓkVþöañò5ýw÷ë«*»¼sT½˜žMß}d ¿ ¨xä¤ :ñó: Šˆ­|ɲì qÖJº–-£œ[õ5¤=¡ÀOÓ«Ù¤Ÿ}:w}þ€@cwJ‡Ä&¹&åbÕCdË&#–h¯Û¶*½ Ê|.Úß–«¼þ[*óxt¢û~<×Wç“ñi­æ<ûG÷âåÑVT{_7–LVÞFëCž§± 糋W£«y?›w'£óIqruy5™w¯NŸÂbn Õs½.k¸/ßbJÛ¹éq?ë«Eÿa4_–½§ûÙtÞO?̦¸1Û´ˆ™[%¸<ꆈó¥Vöc=µ+÷ª~RÙnG=wÏêV£}Ç£f×û‰É%å£ãVÏÁrÃôÏ~dÜg‹[ìoâñÍš5Nï¬ç³Wš{²¡¯œÕ~&xDt|Å. x ˆ¹iÚ-àßê[òN`— -ì¶VfŸÄ÷yʽiÐíécàY¾‡¯Ÿmøø|EÔèÜÏw ß°)Y‡,|SF#&D¼Óje‹˜îêòôSR­šB“}{Ï’ÂFCöÕ-‡0ñ—C¯gîaPP ߈HŒ{YšÂåÜx³E*&ù¦J -Ð5¤ÉÈ=JH7ûWĜמ¯? îaå,z§Sn¼×¿¢¬¬¯àÀ!ò¥ž(\Bn¼×¿ÚÉÜ—æËIº€f(4ïôom¶dË㢠Á³mø:sõüL=aXÊæAÍÜøÞ ì81”ã›=¶Fš‘'"™Cœ_ÄÚvrbýý«¢[;¤ÛN‚Çcó¯ˆÝà@Ü}9¸Ýõ’\hÏ‚37Ypò`Bàèþ8(79ðöÀâ¾lW˜jÏÔX|<8êV•w¾êUÚ³n†Š|Eï&ö”¢·ªN[‘âÞ8á¶B‹åˈ×úaª.oV %º•#qGOÒ›0»üñÝï´(ĵç0å›óÌæPw²ÉñËôy—k¾Ö)+®‘¶?l¼½·ìðûä¬ÿ^ënù³§ kç1pC@¶Eq#4âö=o*Ï« _|w¶†áÀ…o"”ˆù~»QûSžo‘ÈÚÂðó1Q'·|óC£4žç>ÌÉ—rï*éá̯RXe=”¯%×zh®ï%¯J£|3ùºzÊW“ªJjy|&¶MÀ>“}*?ûvéà'÷Åÿj•«ó‰~óÜ#¤.™M ë¼¾*åQ°Ö<ÚœzxäÊ£¯oÛ”kXÈÛ/“óÉbþæ±yÂ7ôÞvÿ÷õ«³uÊíþ%•ÚÂE©\^¯Ëª¯µOøfÚº3¾óo‹Ô>‚¦[6š~_wÿ„/emº{<—}šiÙŒOøB®»ÿÚäùz +xÚÍ\[o[7~ϯàcòPrx/ŠM³ÉÛÝNX ȃ,ŸÆêÚ–!ÉMò²¿}¿².Ö‘9¦“iDr8œ™o.$“•QÖ*k’²¢ÿ[§œ-Êzåƒ +Î+Uôø-©Ð!«²Â[%F%†ÝÙ#e£ïIÎJÆ*ø݃ñJ†!‘ˆqÐI0B–¢ðÇ—”Ã#ã¨c¨€YàU‰V9‡¡bQ˜†ø• *ãw ‹(t•lðHk”ësóhZ°àñ;ʃ-tõM0>IÆd”ÇÐ)¡¦’3ÞϪåñÈbþ`Ü V' ‹“A0&Ë¡ˆ Ñ9 KÂ_CD¼)¬V,˜Œ÷ †ÈEtŒ1´7øŒè +¢ Ï#˜H"EQ`5d¼—ñ½@,˜Z4,'|s(‡ÅÄR€¼SÅc(¡lTL¬d3)x¯à%‹>ÉJÍ©$˜¦õä)7ÑÀQ’ÇL­Á„êbI‰f±œU‘ѽàE¹F\@ˆ +k°Zdˆß¸è)qQ¹~™ïeH ÚÏeåzeÏu=[—Ú’º B~ +×Xhg#c-0Já{T—º¨6‚1 I[›ªIRN€@Ƴª# '.œ­f„Ðr )¸6.²Gàȸ#\kè„= £hq.ü ÕÁe\bU9‚¬-bS¤Ò_Q‡-HK(sovU B™{K€KTJr(‰=hjXD¶—”¹¯@I™IЗ2÷Ž=(sïHÚã |Béûhˆsì‘`„B5÷ÙFI£µhÛ€Od c9#´ ¬š£Fˆ¸´[µÇ@­s”~àj;šf Ñpf6àg´hT4Ȫ!SˆßÀcº«-®_®­*½Úâüê3ÈŒ¦€ Xkª?A$©ŽE võuŠVhéKKÎX_YÁn•‡Ì‘–Ô3¥T{ÀÂ$Ôg\AÂ\…Q©|¬‘“e‹®†ü—ÈV!@W~ø¡ûíãeßýxq1]t¯¯ŽüöËäâ¿Ý³é줟½1ðæm÷Ó»lüˆ.¯»—ÓߦÝóÇæÉÓ§ÝQ?^¼ÉES†Àd¸9èmÂhXüÛ§OÝ“” H£‰-Ñë Ž!ƒRBn@ÈecÕ«ÿ‰èÒ€”_“ºjø}øº }ÅY|'WÎãyi@+ iY§ý5)ø+x°ëŠCRøô4ç$ÚÓ¥[£kÁVÐBø  (â“IÉÚå|å!­T´¡“ NÓ1Á–µ—|•!­˜´)L Ž¤íuÛ€ÖhWãCš~ ~BÃ5€±¥ã!WžÚÇ ë‡`Õ Ði ØcÀE-¸"žÕp4 h iÙ¤«sÉ@)t¨chÁW?¤e‚vt»V@ò²@Õ‚¯ß´|h0l‚ªD„^Áð} ¾ìÀ™ÀãkÏ'$]à¢}1@Öeí±DˆbF¢ü3s-<—¸.†jlegÌâcÔÅ´0e놌ù eš˜¸ùàu‘&| Ý¢: † +îŸY¦]šl辦êXóÀ|iÀ½ká•íÐyStB .ifóÞ÷[ÐJ»ºáJÒ ƒI¶IÚ¶Q< •Á “#x/¬¤+@}ß"„²Cïå’ÓÙ3U6!¸u™³ _£!±b,Ê,ÄñÜ5álèÁœ/º0ô÷Œ3°ª«››p6taštaôŽÉ‚8ÜŒ4Ñú¡sÓbŠˆª0©rð3©­¡Cr 3ksv¶M:1`®f:[«Y n¢øb´ãjV,'«~¥èÐ${¡C2®YÚ@z®YBª iAK†´à´˜z"zÓÁ×’€Mò:1×bn-øÎX`á±I!~‘kW³p$D¬èÂÏ4ÉdèÄÄ @ƒ DABdYÒ©I!C/&‚ø©Ö¹¡’dTàjRΆi˜˜Xƒl‹¸Ã.ëg:Û&œ ó0["r¡ZºdþÅ‚ r¤Q© ]™ÍH¼XKKY/#<6‰dèÊl2šû HÇt¨—&Y„ ËÈ +\µa gi’FÈx×ÆghÖ‰ìyÖœà¿I!'ZÎ#Ea "+¢°o“›ð5ôchÈ‚+åV‹Þ0pÛ$¡³Hø2kˆ¬HE`àÐÊE°¡#ƒßJ¦TöÜô@`Z¤x8»+1@F‘P!¤ø `ÜHÛ¯)½˜^,øa•ÇXGÝ ¯Â²T\6’JË+§Ëð§>¡W³éøu¿xÓ½zþ¢û­ÿ°è~>½ëZ~<[~ü|G¾Œ‚ÈW|ýûègþÿøt±¸ü¾ëN§ç½î/ÞéÉh¾-Ð>¹êþ7¾Ÿ^ukΉXËýµŒP„ûyÐ#Ö `øÿpæY3üNz¸œxݨ˜¯›^šôÁÍ,VLãg«ÒÝù¼ò¶•ðGóɹ>›\Fýû¬»¼:îÆÓÙdz6™w¢76F·oMв¯IºóÜÒdŽë*ãùälúqr©ßM§WÇz2íf£ËÉÉóéÅF-ò&[Š +ÈI|‰°yîÐ& g*­¦3Ç|Þ¿¯çÑÓÙ»-ú¬½pñ‰]æ¬;L+ù¬Öl”e­?{Ue¥I ûŸ_ÿeŽwÎÛRã½v³™Ñ––o©q‹¹}5ÕA2 +ÌV pƽM¦ý(O,M®+Aw€±½ÿPÜïõN›Ì‡%Bn{äÁÅùZw-´V&“kKlU*DÐRR=uŸk™Ë­kñ,ä^E[«×¶J®´ï¯¢r×ððÝ|:^#輟O¾;™Žçk•¯Ý`û®V¬=·í&ªiúkØ-ýì¢{Þÿ9÷G/ŸUà?*õ´HezÍÊß>,^¾¦ÿî~}õOe—¿Õ›7¸ˆeóýÙhÞSHÝßû³?ûÅd<úîÙôìd9býaµ6|²”¬ÝŒrˆ˜÷ItKöƒ˜è)£ÉSîÁp¯Gßhèz¾­‘ðþqÎ}ƒONb3ø0œÝšÍFÚõ€ÊöÕr+“‹¤ÇD/{¾doë)€Ü¤Ø»•I2Óâ†M,ºžÙñH´OdmŽܾ̟Œ†kÿ5×s«NÏõä°P÷8çºåË“qÚšçVtrþ&:¹x'\Ùk [Ú·óo['³î/×Ä[™ñî&3~¤¿¿é/ºÓÅùY7_ÌF‹«y7¹8é?h>ÚE1k©Ñ‡®:åaÁrö±®ÏÞ>oÃJž¨úféïŸgóÉ¢Ÿ^LϦï>2ÐßT ‡»¾@ ±;¥Cb“\“r1ê!²e“K´×m[•Þe>íoKŠU^ÿ-•y<:Ñ}?žë«óÉø´Vsžý£{ñòh+ *ˆ=ƒ¯K&+o£ÎõŒ!ÏÓ؆óÙÅ+€ÑÕ¼ŸÍ»“Ñù¤¿8¹º¼šÌ»W§Ïa1·†ê¹^—µÜ—‚o1¥íÜô¸ŸõÕ¢ÿ0š/Ë^‹Óýl:fSü0Û´ˆ™[%¸<ꆈó¥Vöc=µ+÷ª~RÙnG=wÏêV£}Ç£f×û‰É%å£ãVÏÁrÃôÏ~dÜg‹[ìoâñÍš5Nï¬ç³Wš{²¡¯œÕ~&xDt¼âÀ<ÄÜ4íðoõ-y'°Ëv[+³Oâû<åÞ4èöô1ð,ßÃ×Ï6||¾¢÷ÅSjtî€ç»„7lJÖ! oÊhÄ„ˆwZí¡l“À]]žžbJªUÓ"pB²b²oïYRØhȾºå&þr(ðõÌ= +ê2áˆÄ¸—¥)<Î7ûW¤bÒ‘7UR€®!MFîQBj¼Ù¿"æ¼ö¼¼‚¸‡•³èN¹ñ^ÿŠ°²^ÁC䥞(\Bn¼×¿ÚÉÜ—æå$]@3šwú·6[²åqцàÙ6|‰¹z~¦žÎ0,eó fn|ŠïvœÊñf­‘¦Gä‰Hæ'Ç‹XÛNN¬¿Utk‡tÛIð¸`lžòŠØ ÄÝ—ƒÛ]/É…ö,8s“'&Žî€ƒr“o,îËv…©öLÅǃ£nUyçÅ¿Òžýp3T佘ØSŠÞª:mEŠ{ã„Û +-–—¯ôÃT]$Þ¬J‚¦[6š~_wÿ„—²6Ý=^ŒË>Í´lÆ'üB®»ÿltù€ endstream endobj 482 0 obj <> stream -xÚ­XwXUW¶?È= E¼È•«€Š4%ˆhh!D@¤*MAŠô^Ä.¶˜¼Ù™Œ±‡(°aA@Å‹¢Q1V4NKŒQ!Æuî]ÞÛç&óÞ›™÷Çûæ¾}Îw9gïµ×Z{¯ßï·#“1zzzÆAA¾ÑŽÁyÉ9á 9…Ò³À1ƒÙ'v–„ü÷¡ü€FÛ¦4¨T -‰¬hÁˆJ=qô q´¾(—f½E&ôÎÜ0’îgŒ¥»9½²Îèëé±Óý';MvöIOM/J_™¼ÄjIBQ‚URnÞŠ‚ôÔ´"+»${+çÉΓèmòD«9¹¹©YÉV³r òr ŠÒssœ$ï¬tî1zC8FàG ÃXóÆ23qLSMgäf03„Ê c #Ƙ±`”ÌhÆ’ËŒcÆ36ÌÆ–±cìGf"3‰qbÞcœ™ÉŒ 3…qe¦2Ó˜÷7Æñ`<™éÌLfãÃÌf|™9ŒãÏ0s™@fÄ3!L(Æ„3ó™LÉD1ÑL ³YÌÔ0ß0kßAŒ3NÏRo™ÞõAƒ9 -?h÷ #úƒõ£õ—ëïÒ¿%K•ýĆ³짜÷>WÈUp'¸~Þ›$L|`ðó`ýÁQƒÿ“Õ&W‡Gï5ÝlzyDöˆórSùùyù[³`³<³Ûæ¼¹±¹—Rv(Ù&¹R ~HðýK•šcr¥ì©z˜Gñ†JöŽè¢”m““ {›ŽÖ6Ôžû²ƒ\"gVÕgÉØ“@¢Èü•1é ñÁ±S£C;[ -Ož(9EÎðÞÀ!ùTâ[y&êtþr4m=Vz¤ôHEmMuÍᶣߞýµ^æÖãQ…S‰ ]ŸÉ šsxàsÏdi0Ž¼&OK{jzj´Ü¿ óÐ×Vpاž¾ºãOC¸½¸Õþ˃ŠÂ—ÎÏŽIIÔ:Šæo¯ÜþêôW§/W^%7É«¬{óÚç]œV… A✞ñ±%ÉŸ§ìJÛ•öeú¾ ¡<ãèÂK8tŽ›ß"¿X¿¢‰«`(ö=UÔ£™ñýVt¤í6*~AVWÎ †û€e L¢­œ ¸x?¸4ƒÓ9pêëŸA.à4Î…éh…N‘è”îgKvÅrÉ0ÌÊ÷(x/ +xÚ­XwXUW¶?È= E¼È•«€Š4%ˆhh!”"R•¦ Ez/b[LÞìLÆØC Ø°  âÅѨ+'‰%ƨã:÷® ïís“yïÍÌûã}ó ß>络³÷Úk­½×ï÷ÛG‘É===ãàÀŸ™ŽÁyÉ9á 9…Ò³À1ƒÙ'v–„ü÷¡ü€FÛ¦4¨T +‰¬hÁˆJ=qô q´¾(—f½E&ôÎÜ0’îgŒ¥»9½²Îèëé±Óý';MvöIOM/J_™¼ÄjIBQ‚URnÞŠ‚ôÔ´"+»${+çÉΓèmòD+ßÜÜÔ¬d«Y¹y¹ Eé¹9N’wV:÷½!#ð£a¬y㙊8&©¦3òŒ3˜ e†1†ŒcÌX0Jf4cÉŒeÆ1ãfcËØ1öŒ#3‘™Ä81ï1ÎÌdÆ…™Â¸2S™iÌûŒãÎx0žÌtf&3‹ñaf3s_Æñg˜¹L 3 b‚™&” c™ùÌ&‚‰d¢˜h&†YÈ,fj˜o˜5ÌœAŒ3NÏRo™ÞõAƒ9 +?h÷ #úƒõ£õ—ëïÒ¿%K•ýĆ³짜÷>WÈUp'¸~Þ›$L|`ðó`ýÁQƒÿ“Õ&W‡Gï5ÝlzyDöˆórS¹¯ü¼ü­Y°YžÙmsÞÜØÜK)» + ”l“\© P?¤?øþ¥JÍ1¹RöT=L‰£xC%{GtQʶÉÉ…½MGkjÏ}ÙA.‘3«ê3dìI Qdþʘô„ŒøàØ©Ñ¡‰-…' O”œ"gxoà|*™Sy&êtþr4m=Vz¤ôHEmMuÍᶣߞýµ^æÖãQ…S‰ ]ŸÉ šsxàsÏdi0Ž¼&OK{jzj´Ü¿ ópŽ9¬à° N=}uÆŸ†pzq«ý—…/Ÿ“’¨u-Ìß^¹ýÕé¯N_®¼Jn’WY÷æµÏ»8­ +‚Ä97 < <ãbK’?OÙ•¶+íËô}ByÆÑ…—q¨¯›ß"¿X¿¢‰«`(ö=UÔ£™ñýVt¤í6*~AVWÎ †û€e L¢­œ ¸x?¸4ƒÓ9pêëŸA.à4Î…éh…N‘è”îgKvÅrÉ0ÌÊ÷(x/ œ¦ƒ…=H~Fy7ZŸC§ftÚ.ß'èZ€“cpb NòA+'4‘x ²Û`Þ -Žmàxܨ1ÁP3 ¶Qr#äÁ5i-µ Ÿƒâ°,ÜŒ÷Ág¸ÂøàLÿ ?…û¢IM>hÇ¢>kHWXm­®•‹ÓÑR;]ë„cD'­7XŠÞ¢3Œá Å?Alc·!hµûR›b›eSWø -`ÂÕß9ò°î‡ºÜÝsM0TÛ~'fËب-á Å“0ñ79Y¸3½riŲªuGÈQrxWEeEåÎ#¤‰œ^W·tqEö®%$™ä”/]V¸>ƒÄQ+›Ô¹Ò®DN{’nM<þec^FǤU.«XZµþïÇOO»{-‰›aüÄþQÒâV¦0jüñÖ·NõI õÁ Ž -;øç{n44_:×¾ÿ&ùž€Iü3W•« -­ª1‚øq?' á3Fç+:R:R«Cˆ;qÉŸ‘‘2u9¥êp¼Nq`Bž_Ž¿ØŸ8‡ìYÁq!±.E8˜vQqÔ¥¡êo”ì9è”ú‘Ý0ÁùvU…“Ž§EŸedä1%Ù0dsÑœ #Á:p8’:<< “€=u´ìÍQfG¦ °Â† Ám.o'ÿv Ûg¿ý ?Y¨ß*Ù(õZsÅ´†ÃpÝ5»—Qà™/åÊžƒ?ésf`zæøH@¿(DF¡­NŒÆÅ4ª$¥l B Œ]øÂág‡fG0œÎ$+Ô|jûb½ØÚ>1S­Çþv:o¨9)òfj–¾q¤ojÿ×%Û­~¬Þ*ljð@Á;Ù•L Lкձסw!8ˆ¦þµ€íëß^ÿ–çÁ—€!Ó\0¿ -æhq mªÑ™ ÁQÙÈ!ìê:Þ‘ËBÁ‰×_¡)5¢é4Bs˜áùä-yþùƒÝvßß{÷€ ^(yòLÉZšÑ=„Þýƒúwª¡7u¼Õ>êý> N•hårJžÕwÝèº^û uBP²Õºn<™¾24-)=)z™?e‡è­‹v hÃ7¬8·¡SZ ÙO´™iß©¿«XŒåúûÓYuú“ˆ7x˜Jñp4k¨i†X"W·ƒS¿BÉ*Ñ›n&Þ]ý£ŒæÄO”¬!»Û€¦›)°## ÌoÉë­¼6U‰ìFNKש‰Åí’åÉšiëÍ`¸¡OØF qÔçuaNéÀÿ)áÓÙ[¶Øúé -a#×T)ë`q¾n¤º›ŽºÌ×Áx:T}\‰Si™ržJ¶UO7UIâ`Pè.·k˜B0‹ g 9½ÌBpÁ 7u`ÐÚ<ý¥ JÀí †Q0Fu@ µ‚ Íh¥žûÇ}ßõ‚Q+L#tƒaÔC›GN =Áh‚ ÑÁÍÆÍ £p¡ Š†­ï÷NëK¶JŒ”ê­¦\8ÆjõÆh~Ïp·$!lŽ¿¾ßû hpvBÿà7rñ)„ñ0Š¼*ì\Ô¹¨vq VéøÅøÅ ^!­HáßôÅ?›ÃQ|ÄÒ -Â7”“FŸz÷Ým0VÐë¨Ä¥Áÿ¶ ô‰¼øV*Þiß²Ëi­Õ6õÍ/.Pß7íúÔë¨8‚s(Øè2Ä©7ËÄvÈça8yVܯŠ¯ò¥©˜˜;+|QøÂ)…öjDÍNQ!'¯szÂ:C;­U8é¢sݜËÆUeU/¯[^»ái%לo=ÖzìFÙ"%Ú †E çÁ Ïã¨ChChIP–1Íoš_¥{–XU»ªü:ü^†2æeÚ­¬æ¼³yG²Ë3÷eìH¤å– „-žZLûú’Ù[}J}JöУ– 1mxÞý¼ûìkB•ME¶ZªiK1 zÐQLRjþªƒ%«Ð‘­÷@ GÐ(c’_€ŸÿÄ 4"('öu~_û}ñM½  ¢}fò½šÑügÇ—Ž \>Djcšß¼xó¢Eʪ§4Y»¦\góûéK¬²)DFQÔ—ýv èá_sôãÄr³{qâ~Ú•–Ÿ¦dUf¢…ô}+i¨,D~íDÅR0˃Ì>¬ÒÈ¥ÁX:0, òpÈ -4T¬î+.Lq•ÆBgZñ‡i8¦I¨}[ùséŠO×nOÚã¿ÇÿËù_ÄCó@ª9õ²L)Ûi¦]­Þ)F«ýXôç´ƒ´wð?Å;,†pbtveÿ¨Áñê‘âèþ‘’PZ%ÞPçʵ#Õ¹,q⪠VÛN‰¸‹WkLY ¤Ð"û\ÓmFAë¯Þ£”íbA1Ž“Ô›øþ=JLcQA™ÀAãD+F¸àHIªŸš‘zÝ$#²žÏUÍS9TãH@æn X9weHÑ‚œV45¾ýת§¤‡tMjH( $S…9<}„ïÖálæ+Èøϯ¯„?Î=Úó›]÷_8páÌÅë¼ðÅy‰ú2¥&µfÅr™Ü­nïhP5¾Øæ[Àc«¹Olr¼‚ÃBÃÜsÇëû™z¦æ•\b~¾7êQtÜrí³;ä± ¢‡Rý†ðõ`ÍîâŽÏoIRå_ÎûzíMBÅ;è·`M$þ´,°Šž=ãéÜꢮF]ˇAœh;z-W[ºÖ+U_’¨Y& Šçe·¨°å—LZæL¬ˆgÃüîÝy},h} …cêȱÍMë›6/i\Ý -ÖæÙ¥‰_DìŒØùy„N`žbëb»ÇœKpNŽùÁþ¯`Cå“.'°•W - T`£‡6Œû‹÷V/v-ç r$@¢èG{ÚzÚ&¡AÚŽ£å}ûö ‹‘²1‰@û]ÐðN®ÜŽ|Øu3êfþoDJϘƒïZï´Ý¾}ô%¡á=Êhóoõ;ˆúßÒhÁ.° Šžç–…¬ÎŸ5jÓeòoIççm;Îﺸ·ã€v<ò1hP@EʈkݼkA×2^~Bk_ýñ[ á“`ˆçϧ¨wG´%(DºŽ›2.^rv6ÁYgqôOvÏí`D ÅZ!N³Bþ=¹š{vþÙðJO2VÐÞ඿©ypþRÛ¥Õ?P/ÔjÍB9ȱö&Ož•^;|òð‰3åä4¹¸¾«¸ æTÎÙJÕR F ¬° â1*˜Q ÁCC¥†æF¥é‘k¸ØÝ‘[ÃÕ}6™³ügÍM¥f(™µwn}xCø™¤KE±¹é9ÅÙÅÙëÒHIÛ‘µ7OØ—W¹¼j­÷ÊàŒø˜ø˜â0âGŽ}x/ânèçI ¦â¬öe×ËÎsÏ #/2o¶s[œàêTL¶”|QRA“Kõgo6Vo>üI­?ò¦öV×­®Æ¿’wä즦ÕGW7®ªY^)Àâýlÿ€ÓåäZyÛɆ“ {oroÈõu…K÷&â“6'Ñ?a\1…v'2«4º&º¦à4éžh¦ÊÉ£ò+'éßåò{t¤ÛCwtÇÉ^8ÍÒ›í‹?l©ŠÜÕ)%‹x¨ÓÕ³Lãß9§Ë¶Goâ»:8+(;61#BXÏmiüì,¹$ˆ™¿×¢P´øö^èlë|\<ÕöKO,>±xŸq¡‡ÏRxa¦éA~’¥Dž²=·lEÙòÊ Uä©Ü^VV¶wGi$ë«–ï]¾·h{É%E–¯X¾rC.I–L4i×Éaák*°³,•²7tf”ñ$´$¾0§ 7yM$‰#q[c©ð³à­lÛH… Qò±ÿÂ\šË𜞕)äÜý¬4 -ê«è&…é&:ñ`Œ8R[ªãõ\µ"¦²Íá;íÿøˆœDÅïáêJ–Ž¢0Ëç+9›¿eÕ*«w^gP—S-/â³r^ƼŒE±aá"ÀeWðCâCW‡f‡gÇ%dEÐçyàÀ¢Å@ͳ$ -ÇîïmîéXÚ߸¸ÌŸ¸ -ý±´ƒHÂèÀ³sç:îî£TÿÓáï—×*£×¯Ó¯Ë®–Àtº¼A9AÙ Òüó„ãõž¿rþÊwÿ¼°JÙ·šwâ*ÌfÆÁçÞɽT IÇ«)£]l]ìâ$¥1‡¢xù„SOLíð¿{'öû"*ßé!ѸåÉkáÉ›Ó`I`ŽÐ‡Ê/ëªwo^¼ù°²EáG©—f¶Ïª¢PMÍXçZ‡Ï›åž‚z„6÷Æð[á·rßÑPþ` -ÎÿÄs–€•ç«^!ÛB…ÏL°6,/,/&>>˜Z¤ T©þšFÉ‘Kµ±Kø{N -)æ¿$wRÎϺ0ãÅ[ -dycxGxÏHžøœ!4òŸ‚ÅÁW-WZ®ôÔ€ìw$¿‡!r[Š¾Ñ·"» ÞRèýGô}˜Þæ×ö;úNRøOÐ:Ï6*$*Ä3›> -(mI|Äë |7·iÑÇáÄOЦƒ‡’s¥T^ˆìÎXä/¡Ãßha‚ç-ÐôûJ´`wßô£ÁZÒ»j7͹/ \¶$lIÌüDšŽå°˜ÅѺuÌ‘wµO®twußnø‘Ô“ã›O¯¯'ó%Ûâÿ#qa²†‡69¹Ut9¶9®yJ3šX?÷PFYFYaÙªò5åjÒ´ïÈñÇtìºO~$¯‹`PœÐÈ6#¿Ÿ²†M‰]þÌÈ™Q©>Ä…DHÝ—Z›y*÷dέŒÞäw‰Ý©G³²ËRI< +JX”+,Êó_ãJÂI趠ÒàÒðòˆC:ñ=±@Ó†Àhò®êÎÅ;Þ'½4ÌTñÈç“ø½YõYõ«ZÉUžoR¹ [ùÙ¸'û²ž0¹ßŠÇÂßPicªHígG¶4|~pëÞí˜ò«6/ý8ïã¼Í9ÿ‘óûaSþ@¯þ*]-ël®^ | -r—\ÿâ«êËÕgO¹ lçöKÔ=Z‚=í-ÚslžMdà‚@ʧÆ/€¨p&m=,Ìç I-ß×Yù„&P±«GËÊÉ»—PgUb G­VÅBb\Ö†H¿µ6¢J4kY æð„Ö OŠn,†r†š=¦ƒ¾Bçá19¢ˆ#‰IÙ&Pazn]ËG­ä)¹s°³íJë…΂‘˜©”=–"ÅIZ/gü<×-Ï}Eè†t)®Î̾‡›Ô¬¹¡&L£grm//~¯¾Ï‚¼ÊE¯}Ñÿ‚EV÷Ý žªc嵤æãÃo<¾º¥¸¹øôª“%'ןþ¨™¼ =ßÜÀOM^’__¼d]*É"™[2¶eìHÞ½¸,ä@ÌÞäí)Û¶ÄGâ‘ê7S@G¾¡áXuSåÉŠc;ëuGÔj‰æ”ü<é\Ù®‚Áæ^ÇÝ÷Ñó¡)™8Ó}Å,}†¯GÙu랯“@NÎ’ã[Žl¯Û^·«v·Æ¼[¶Ïê0º9Å_H¸PüˆPé«|pJuFÕUýˆýG°GN 厫Èw!ÿÔ æ€Ál0M—0…¨i=\§íÉ󯧭ŒuŸà,ÒÁÄ h{ï)\è…&uÒ ‚&éhàG›ó{~ºhBP!¼¥xlP ŒêuÇ/÷ï¿R½RS }H@/ç—ס÷¼Tv*»jé37=ä jbïåe*Ø…"“#=åéáÒöÒ•×ýÐ7¡¯s€¡8¦Ó“÷ȈNDâhzh–€>ßTßrNÕ©ê'*9$5$-:3Q0\¶Os¿^ýÄi×~Ì`=vò¾¡bõˆÿáï¬ +Žmàxܨ1ÁP3 ¶Qr#äÁ5i-µ Ÿƒâ°,ÜŒ÷Ág¸ÂøàLÿ ?…û¢IM>hÇ¢>kHWXm­®•‹ÓÑR;]ë„cD'­7XŠÞ¢3Œá Å?Alc·!hµûR›b›eSWÌÀ„«¿säaÝu?¸»çš`¨¶ýNÌ–‹%0Q[Š'aâor²pgzåÒŠeU뎣äð®ŠÊŠÊGH9½®néþâŠì]KH2É))^º¬p}‰£V6©s¥]‰œö$Ýš,xüËÆ4¼ŒŽI«\V±´jýßž$žv÷Z7yŒdüÿæ¨Kå$~GzyѾ¢ê’cÿ‡¹$ÉM§¦6ËÁ‘﯄u¥È³`Ï,вö¼ôúWq´yÍуý…¾ Y´çÕûµt1XcÍ[3ðá´ÝJö‹ã8ím¥Æ‡…éø‰É¬øˆ‹€Irm6ÓÅèCwËo”v)*Ý*}*Â:ø=ˆý£¤Å­Ë:È*ÈcJ8²aÈæ¢9AG‚uà<p$ux$x@&{êhÙ›£Í&ŽLAa… A‚#Ú\ÞNþ5ì„: ¶Ï~û ~(²P¾U²Qê5´æŠi ‡áºkv'.£À3_Ê•="Òæ0ÌÀô*Ì#ð‘€~QˆŒB;[;œ‹iTIJÙ „»ð…ÃÏÍ8Ž`8IV¨ùÔ &ö+Äz±´}b¦ZŽýítÞPsRäÍÔ,}ãHßÔþ¯7J¶[ýX½UŽá6‚w(²+™@0˜ u«c¯CïBp MýkÛ׿½þ ,ÏÆLsÁ<ü*8˜£Å%´©Fg‚NGe#„|°«ëa5ÄQŸ?Ô…9¥ÿÿ§„OgoqØbÿYè§+„\ÿQ¥¬ƒÅùº‘ên:rèf0_ãéPõq%N¥eÊy*ÙVu>ÝT%!ˆƒA¡»Ü®a +Á,‚žh€æô2 Áy7ÜÔAlhsðô—6t*·k0FÁÕÖ +J,4£•zì÷}× F­0Ð} †QmM8ö£ .LD774ŒÂi„2(¶¾ß;­/AÚ*1Rªoh´šr94â\«Õ£5ú=ÃÝ„°9þú~ÁÙ ýÿßÈŧÆÃ(òª°sQç¢ÚYÄX¥àãƒz…´"…OÐÿlGñK+ßPN}êÝw·ÁXA¯£—ÿÛ2Ð'òâ[9¨8x§}ËB,§µVÛ@Ô7¿HP¸@A`L|ß´ëS¯£âúR$°ÑeˆSo–‰íÏÃpò¬¸=^_5‡¦bbî¬ðEá §JØg¨5;E…œ¼Îé ë í´VᤋÎu¾‡Œ«Êª^^·¼và ÒJ®8ßz¬õز'DJ´A ‹΃žÇQ‡Ð†(Ð’ ,cšß4¿J÷,±ªvUùuø½ eÌË´[YÍygóŽd—gîËØ‘H+Ê;'8,A[<µ˜öCfoõ)õ) Ø|@@7þyŒZ +3trÄ´áy÷ó U"4Ùj©¦-Å$pèAG1I©ù«v”¬BG¶ÞA£ŒI~~þ3Ј œØ×ù}í÷uÆO4õ‚&ˆö™ÉôjFóŸ_:‚r!ø©i~óâÍ‹)«žÒdíšrÍï¦/±ÊB¦EQ_öÛ% ‡?j昣'–ë˜Ý‹÷Ó®´œø4%«2-¤ÿè{\9 HCe!òk'*–‚Ydöa•F. ÆÒaih‡CV ¡bu_p™`Š«4:ÓŠ?LÃ1MBíÛÊŸKP|ºv{Òÿ=þ_Îÿ"šRÍ©—eJÙN3íjõN1ZíÇ¢?§¤½ƒÿ)Þa1„£ûƒ´+û·°@ ŽWG÷”„Ò*ñ†:W®©Îe1ˆW X°ÚvJÄ]¼¸ZcÊb …Ùçšn3 +ZÇxõ¥l Špœ¤ÞÄ÷ïQb‹ +Ê'Zq0rÀGJ’ PýÔ ŒÔëè&‘õ|®jžÊ¡G’2wcÀʹ+CŠä´¢©9ðí¿V=%=¤£øhRCBY ™*øòô¾[‡³Q ˜¯ ãk<¿ +¿þ8ôhÏov]ÜáÀ…3¯SðÂKä$êË”šÔšgÈer·º½£AÕøb˜o­æv<±Éñ + sϯCìgꙚWr‰=øùÞ¨GÑq˵ÏîÇ‚hˆJõKÂ׃5»‹;>¿%I•9ïëµ7 ï ßòàuÏ«ã`EÀ¶$°ôúÅóÊÎQÊ +ÑRþ–ÜMk™Ý2û€5‘øÓ²À*zzôŒSl¤:p«‹ºu-p¢íèµ\mézX¬T}I¢f™$(ž—Ý¢jÀ–w\2i™3±"ž ó»tçõ° ôa,Ž©#Ç67­oÚp¼¤qu+X›g—&~±3bgäç:=üI­?ò¦öV×­®Æ¿’wä즦ÕGW7®ªY^)Àâýlÿ€ÓåäZyÛɆ“ {oroÈõu…K÷&â“æ›èŸ0®˜B»™U]]SpštO4SåäQù•“ôïrù=:Òí¡;ºãd/œféM‚öÅ‹?¶TEîê”’ÆÅ <Ô‹éêY¦¿ñïôí²­ÅQÄ›ÌYœ”›˜!¬ç¶4~v–\ÄÌßkу +(Z|{/t¶u>®žjûÎ¥'ŸX¼Ï¸ÐÃg)¼0Óô Ç@¿FÉR"OÙž[¶¢lyå†*rˆTn/++Û»£Š4’ÆõUË÷.ß[´=ä’¢ ËW,_¹!—$K&š´ëä°ð5ØY–JÙ:3ÊxZ_˜S›¼&’Ä‘¸­±TøYðÇV¶m¤Â†(ùØa.ÍexNÏÊrî~ÖNõUt“Âtx0F©-Õñz®Ú@ SYŒæðvHˆ|DN¢â÷pu%KGQ˜åó•œÍß²j•Õ;¯3¨Ë©‰ñY9/c^Ƣ،0Šp`Œ²+ø!ñ!«C³Ã³ã²"èóáÄÔS;üïÄÞ‰ý¾ˆÊwzH4nyòZxòæ4XðúïPùe]õîâÍ‹76P¡(ü(õÒÌöYUª©ë\ëða³ÜSPÐæÞ~+üVî;ÊŒAÁùŸÀw Xy¾úà²-TøÌ$kÃòÂòbâãƒi Eº@•ê¯i¤‘¹ôñW»„¿ç¡bþKr'åü¬ 3Q¼¥@f‘7vw„÷Œä‰ÿÈB#ÿ)X|Õr¥åJO È~Grñ{"·¥è}+²»à-…ÞD߇ém~m¿£ï$!…ÿ­ól£B¢B<³é#¡€Ò–ÄG¼Êws›}Nüm:x(9WJå…èÀnà<€Eþ:ü&xNÐÑMÿ‰ìîÛ~4XK@zWí¦y#ŸC—‡- [3?ч¦c9,fq´nÝsä]í“+Ý]Ý·~$õäøæÓë+ÁÉ|ɶø¿ÄH\˜¬á¡MNn]ŽmŽkžÒŒfg'ÖÏ=”Q–QVX¶ª|MùƤš4í;rüÀñ»î“Éë"'t€²ÍÈ溺¡@Sb—?3rfTªq!Ñ;â+R÷¥ÖfžÊ=™s+£7ù]bwêѬ†ì²TOŠå +‹òü׸’pº-¨4¸4¼<â€N|O,ÐÅ´!0š¼«ºsñÎÅ£÷I/ 3U<òù$~oV}VýªVrU çß›”@nÂVG~6®ÅÉsXO˜ÜoÅcáo(ƒ´1U¤ö³#[>?¸uïvLùU›—~œ÷qÞæœÿÈùý0 ) W•®–u6ׯ¾Î¹K®ñUõåê³'Ž\¶sû%ê-Ážöí96Ï&2pA åSž¸’ÀŠÄS‰§–]#?Ò\î]Í ‚]5=,ÎáP©5˜‚›“Q? eE37¥Ñ¥Ùp:óULÄuê1æ´ =¹kÚÍ šƒviÐtMµ«gcEIôºèM)ŸÒ!kïåÿœ”þÔ:ùÛoP’¶fáª`ÅÊ ’˜MÉ´Ëæ–â—É0>Æ/€¨p&m=,Ìç I-ß×Yù„&P±«GËÊÉ»—PgUb G­VÅBb\Ö†H¿µ6¢J4kY æð„Ö OŠn,†r†š=¦ƒ¾Bçá19¢ˆ#‰IÙ&Pazn]ËG­ä)¹s°³íJë…΂‘˜©”=–"ÅIZ/gü<×-Ï}Eè†t)®Î̾‡›Ô¬¹¡&L£grm//~¯¾Ï‚¼ÊE¯}Ñÿ‚EV÷Ý žªc嵤æãÃo<¾º¥¸¹øôª“%'ןþ¨™¼ =ßÜÀOM^’__¼d]*É"™[2¶eìHÞ½¸,ä@ÌÞäí)Û¶ÄGâ‘ê7S@G¾¡áXuSåÉŠc;ëuGÔj‰æ”ü<é\Ù®‚Áæ^ÇÝ÷Ñó¡)™8Ó}Å,}†¯GÙu랯“@NÎ’ã[Žl¯Û^·«v·Æ¼[¶Ïê0º9Å_H¸PüˆPé«|pJuFÕUýˆýG°GN 厫Èw!ÿÔ |Á`6˜¦K˜BaÔ´ ®Óöäù×ÀÓV ƺOpé`â´½÷ ® ôB“:éA“t4ð£Íù=?Ý 4!¨ÞR<6¨Fõºã—û÷_©^©€©>$ —óKÈëÐ{^*;•]µô™› r µ ±÷ò² ìB‘É‘žòôpi{i‚Êë~è›Ð×9ÀPÓéÉ{ä DH'"q4=4Ë @Ÿoªo9§êTužºPÝ$”c_Ÿ•’’™(.Û§¹_¯~â´ë?f°;yßP±zÄ7ôï’ endstream endobj 484 0 obj <> stream -xÚcd`aa`ddp ð Ñö/HÍ NÌ+‰ùÈq1°thÈwwÃ<ìÿ~ýÙ/ùH†#‰õ‡ÃyÆ +xÚcd`aa`ddðvôövòÕö/HÍ NÌ+‰ùÈq1°thÈwwÃ<ìÿ~ýÙ/ùH†#‰õ‡ÃyÆ L?˜ˆ²È200<‘·ùAäE)$˜¥„Ø9øŤBãJó2Ýœ !”„26Ô34pÉLÏ,ɬJMQHI,ITHÎ/¨,ÊLÏ(QÐHÖT0204І: îùùé9© -ÎùEùE‰%™ùyz W+€ÍÀôƒ!cÐn†ÆvÆÆN6&FeO†&FNÆ&–³ßCeX·‰ÊüòúyÈ`ÿ[*ók“¨ ˳Ÿ¼2¿¥Øù¾ø~¤à·[Ùo•ÌßÖ1¿ƒ8¾ó±­»¾öîš'k/¹1çßÏiß-~6ˆvÛÎóÛ˜°1þPé¥îKÝnܺiû¼Ý·ºïVœLÙ’²%tk·swHYjbZb…_·Ÿ ËžŸF¿¢E¿‹þ^}‰½ûù¬s+·®Ü²sÁ©î݇O—mû.)a»È}z`7Çïúß\¿¥/”÷cÿáÏêð=â_ôw«_Ñì?%ÿE‹þºóÛêßöZÖBÑî´)ùó*çU,jZÞ½¬{Ñ”yóæͺ¼{C÷†Æås+æ–L)èÎï.iª¨¬¨jÊïN¥¢3dØD~[Éü|ÃÎ'Ã^*ÃêG¡™tÅ(Ñ.ÃjCqДÏÿuká÷w/Ùþ4t³Ëq1²Îçáü±B«k`g +ÎùEùE‰%™ùyz W+€ÍÀôƒ!cÐn†ÆvÆÆN6&FeO†&FNÆ&–³ßCeX·‰ÊüòúyÈ`ÿ[*ók“¨ ˳Ÿ¼2¿¥Øù¾ø~¤à·[Ùo•ÌßÖ1¿ƒ8¾ó±­»¾öîš'k/¹1çßÏiß-~6ˆvÛÎóÛ˜°1þPé¥îKÝnܺiû¼Ý·ºïVœLÙ’²%tk·swHYjbZb…_·Ÿ ËžŸF¿¢E¿‹þ^}‰½ûù¬s+·®Ü²sÁ©î݇O—mû.)a»È}z`7Çïúß\¿¥/”÷cÿáÏêð=â_ôw«_Ñì?%ÿE‹þºóÛêßöZÖBÑî´)ùó*çU,jZÞ½¬{Ñ”yóæͺ¼{C÷†Æås+æ–L)èÎï.iª¨¬¨jÊïN¥¢3dØD~[Éü|ÃÎ'Ã^*ÃêG¡™tÅ(Ñ.ÃjCqДÏÿuká÷w/Ùþ4t³Ëq1²Îçáü±B7 `B endstream endobj 334 0 obj -<> +<> stream xÚÅ[[oÛF~ß_1O­…Eä¹_ŠEÔiÓ¢IÄÞÅîºy`d:&ªˆ†D§ÉþúýÎÌPñâ*Á›@æˆÃóû9C ©”bœ)e˜U8&¤dJ+&¼ÁÑ1©=SçxÀ×x|Œc×(+˜áGÌżã€ÁµN0ÇAï s–Žyi"­'zïYÐGðã8œ¤cÿ0ðà  ¥,„#n ×H…‹ñ<•¹â$¸À*) *e5ƒ@º€\^A!¡ ˜jp×¼ ¨Œ$½4ø£ ¨Œ/*+ÀKcÊðò¸Øâ²à 05t$*@…#Q-äñ¼$ `UExGT œlª»+0`Jáâp±LrE‚q È1Vb@Zà‹¤Ì-iᤠ-¦¤¤Æ€\æ,do?*½.&“(ršWÈš¬êÁK“U=!ozàN* HXDÈ¢<M2¢EZ d|¤…µ”Ä5VI:@L92žx{R'@ž@$µ9 ©‰Ÿ€¯4§ €ó5ùU ¢"߃³æä!N²>¡ tDåHm&–ÈQâŒàt–¦¾Ðœ§%´ÔB1MÊiØH j t¡`0' @@ -2287,102 +2283,107 @@ h Ú¡‚nAŠS$?-ÄR™K ‰¾ú‹0Ã~ÖCnÈ^vãe¶qjC¯çåÙ)˜aàuR};Ò0w­ü@’/?Q4KÏÊ5Hf¡rY¾t=©²9Z¡Åç«œnÞ|M*›I•SMÈeå@®”Ë…\jªŠÙÖ5̽+ góª#=gƒµŸ6=s -vî aO«GFÌ+aúe’û‚z‘×9²{w÷'åS“)ëæ”æ}j…²nÒ3žŸ N+$¶4—Ë‹ÊÃG×ÂOÆ\˜d°(~˜ aR³ N ò 4ó9B‘M!Eê½# 窾ãCܱ†NLi(g[ðPrþ†ì»px Jò¼Êçy™Ïó:Ÿç…~ÚTÂ1¯øy¾cS©+gû ¤®C‹LÖ)Ý©€ÒNv6©ì©Êl.¹>fw÷"Žu2³q2¸qfzÁ.-?áÄ*áŠ%X~\ŠI3£Àì ƒ)ytÇP ÌV—‚ÿòÓù¹­”*!»:L­qe˜Ui°Ú‘a°ÆuýjSS÷2Šû¡fU8iUq¤zȪ‡é„Rb.øü H)ÁgôÉjÁŒ`OKêÒ*¹üTËO—}fRç'_s@öÎêEœ•Èö· ýOýo=\Žž—õMS}×~¼&8Ì•Çk±ô!C_lëªk·g/ª«úŸì¦»cwà¶ÝÖ·ì>>:Q/Î_mÛ›‡U½=»ùÐÜßܾÿÈ~;CÒ&¦ú"HÓnžU]}öìLYî¹—˜–þ¯\~Íù׋Äï×ûzó4þhŸZû¡éÞDÝh{æüï»úׇnÝl j|¾8¾ÚD×õ§ûŸ¿’=öÖŒ&º¨ºjݾ£$qñnò>µÐ Jz+¾3ßab|â?ÍÑÇÄö›þ¦Wí¬v8rFØ‹9ƒ°‚ÌÅB&gŠôM@ÁwX$;d-½¢h{7†ÎÇ· £7R \n,q:Èn)‰‡¥÷¦\:Ôz Áèĉ -'} ½†cˆo0)pÔñúHK¯8=/¥ÃšÀGzYŠÞKÙ[¡×ôø¿wGÿÏÿÐ:>õçÓCãÿ#2ÄÿXò $$71Öè©ÊmL/oÆãàcc…Ä¢óoþò_Aâ° +vî aO«GFÌ+aúe’û‚z‘×9²{w÷'åS“)ëæ”æ}j…²nÒ3žŸ N+$¶4—Ë‹ÊÃG×ÂOÆ\˜d°(~˜ aR³ N ò 4ó9B‘M!Eê½# 窾ãCܱ†NLi(g[ðPrþ†ì»px Jò¼Êçy™Ïó:Ÿç…~ÚTÂ1¯øy¾cS©+gû ¤®C‹LÖ)Ý©€ÒNv6©ì©Êl.¹>fw÷"Žu2³q2¸qfzÁ.-?áÄ*áŠ%X~\ŠI3£Àì ƒ)ytÇP ÌV—‚ÿòÓù¹­”*!»:L­qe˜Ui°Ú‘a°ÆuýjSS÷2Šû¡fU8iUq¤zȪ‡é„Rb.øü H)ÁgôÉjÁŒ`OKêÒ*¹üTËO—}fRç'_s@öÎêEœ•Èö· ýOýo=\Žž—õMS}×~¼&8Ì•Çk±ô!C_lëªk·g/ª«úŸì¦»cwà¶ÝÖ·ì>>:Q/Î_mÛ›‡U½=»ùÐÜßܾÿÈ~;CÒ&¦ú"HÓnžU]}öìL9®%îb”7ê¯\~Íù׋Äï×ûzó4þhŸZû¡éÞDÝh{æüï»úׇnÝl j|¾8¾ÚD×õ§ûŸ¿’=öÖŒ&º¨ºjݾ£$qñnò>µÐ Jz+¾3ßab|â?ÍÑÇÄö›þ¦Wí¬v8rFØ‹9ƒ°q0¨‹…LÏ"é-š€‚ï°HvÈZzE%Ñö n oFo¤¸ÜXât!ÝRKïM¹t4¨7ô‚щNúz Çß`Rà¨ãõ‘–^qz^:J‡5#Žô²½—²·B¯éñïŽþŸÿ¡u|ê9 Χ‡ÆÿG<d&ˆÿ±äAIHnb¬ÑS•!Ú˜^ÞŒÇÁÇÆ +?ˆEçßüå¿⬠endstream endobj 486 0 obj -<> +<> stream -xÚ¥S‹STç¿wÝÝ{A ’x‘­«Ë#"2¼ŒÅ°H…€ÂÊC°òØÖV"-µÁF›hOãÇFIˆÈÔòrYy- -](ÆŠBŠH“FÑNãL¾Ëž…é]2Ó óÍüÎ9ßœ3ßùýÎwhJ*¥hš^•’’’˜¸cSj©®$=¿ä¸ã.y½3%= øŸãÂ,Ùìf¥ÓU%[ ü(a-øKÿ']GQt°»_zÉN«D¤KŸ£Gýý{ú}ú<ýíLR4µ†RP«$¢ãK]£þJ«é'’@ÉÇ’I¿Äºâm)#õ®‘þMfTJÇÈ>¥ÌÈ)m»fD‡Y|Sikã”Òo\•øÆM)=gk8 » -ˆÏÖÿD¾@y¾ -èÈdEúnõ+@À]€‰è=ã;ãGd™ÄHÆüðÅÌ‹â $ž]üÀÈúBõMõ}ù í;xÚþ¨þ¨/@%àº2¤2ÔêXíf‚ض̩¬©2BQ±n g…QÛ÷¨bì¯`çc”“@"íh6¶šLŠw‚Ïâ+€á¬ýÏŒ›íšíˆ ^LcÎ] _‘_‘Uf'ŒÃ -ãHÝ=˜‚};;à÷9zn9¤ãj”>FÚÓÚ3xÃ\kþôÎE LÃHå-}WñÕ°òÎäO––=T¬+ŽKó‰²ûá€'*ÊTÛÞ^¸"*#Ó>ŽCI³(EDþZ]ÅÇJÍE©çƒ®ÑæÁšÁš¡GaîVtôÔ§C„Þ™˜˜j@9°¸}É«rÒLTa¸÷ãËxA• Õ;®ÄÕ$Ô'_g1Œ±– ŸøKÕè©û¿%²®e~r~¢{Y%˜ç§Ó†Ò†"ZÐé2[Í<­hï·˜- Sð/Vlö¼ÍÖÈ‘µx̶“™Å´¥ý2t_(°3$J`ÜBÖrv‹\È~0Y[†å§1à]ôerÔW ·….n;l?}²EHòfÈæÅ#rÍbÌœæ‡Of/Ž€‚¼OÜý0O>‡_OÒìÒ„ðè‰_ÿqü•½õ¹M,F0ÿÈ îe$ˆˆÂøtn~®›¬²IŒ¾› -ŸD×V †å'n7;,iŧI– O”²PQ,åãæ…VæÇ”åÛ-á´8 -Ea -ç Ÿ¥MüÌÓѨ\qðµð-áùè$^´"5=ý½–p0 _|dmb­Ÿw[î°—äg0ÿç¸i›äFtÍÆH€”3jXôeLo Ÿ™VH%e¤M¸§²Ÿ€Ê^}·¾-·qOãžvÃNÈ=y°$¯$¯ðp¦!Û^•!¶1g çöñIxÊ¡æÌV³uâúIÙ1¥LcËá‡Í÷øöòݦ›M·>ÜùÍè #Qxª¯&\Ú+þ‘*tƵX§Ja0+UC²–rÈ6[c÷øÊÝ„/ÈàH´¸ÿ-w[VÜiAÆìÄ°¯Qþ5ʈKšcFâ*Ë:gæfÿÙáZ¥ŽP1ÓÛ§}Ûq¸…€lZ,2l•¼šèL$ø᳇óde …1°œî«d‰/“÷‡Ô 1€<`dJÑW o:lg…*û{\2¤×ì¿‘sC×Uj)µ¼5 -÷ ë²©ÉxÍØþÇÞÏz?»siæaœïÑôhê·C (+Û’‘š¹'öXÐGø»R6ʉùU'E½¡} ¼!¦6±=¥=u,ýÛLÌ ös´û: ûÍÀÙøÙâ¢'!@ü°z4Î>zpsˆ+ÌƳG²‡·Zpåೞû·M“¥n ÆÅ)jçÔÃêaï먥½·ôœƒñºaSŸÉ<ÞõÜH¸Üoö›³ÍY i°¶ñIš\M®º<6€ºNcJ7ñÃðKîÚŠ¸G0VÑSØ­­ß'®JJžÂÚ yA…Þ±ZñTôƒîÖ÷wµwµÕ>ùUÔÚ¦ëÈóïäöSÀ¬w¦e¡µ.NµÕÿUkeì +xÚ¥S‹STç¿wÝÝ{A ’x‘­«Ë#"îð2Ã"%(VÞV»ÂúØ…•HKm°Ñ&Ú“Æ8ıQR‚"2µ¼\V^‹B—Š±"…"ÒƤQ´Ó8“ï²gaz—Ìôè|3¿sÎ7çÌw~¿óš‹)š¦×d䦦denI+Óê3 +õÇw)])ñÙ Àÿ7fÙî°È]®ÊÙ" @ñ›h>PÄ®â9ñŠ¢•žN|é%'º¬ò€a_¦ÜišõX+÷ýqlbò;ç«´FƒÒpÜ × +XQéô+JZgtÈð¦Ñit'œÑqÝϨ=¡Õ V«+)­¬^·R¦ וè*tUZ¦°¢Ð§ØPö £3Ë'¨x³OxhXèVÂB| †’£ZŸ7 Æ2ƒ±°BgÐ+l}VèR´è”k`Þ¥ÏÒçèßÒ@¿GÿŽ~Ÿ>O@»RÁM­£dÔ‘àøSר¿Ò*ú‰(Xô±¨Q4 ²­z[̈½ÄëÄ“˜äâq²_.1qrûžÅYÁa–Þ”ÛÛ9¹øëEw9þˆñ‹ÏÙ[øAÈî"â·ý?Q/PÚ¯2ÙQþÛŠÐp7`R'úÎúÏI „±<|1û¢“øI`—>𲱑PýÓý_> stream -xÚWiTǶnàô€2h´ñ ' ¢‚‰ˆ âˆ32Ë  D@fd0ˆQÔ¤ŒQc0 ‚" 2(àŒŒâ„F½‚&N1êÆ‚^wŸ³¬WyY÷½·ÞûñÖ©îÕ}ªz×®¯öþöW:ŒBÁèèèˆsçy,ñðëç·fܬø˜•r‡§ùF±ÅÖ‚¿ xh_©|­¾f%3FRéHêJæzÒPŇ £0˜Þ™çÆòýú ùnFo ŽëâµØÁÞaüœ¨ˆ¨ä¨ÏÃWZ® I± ‹OHOŠŠˆL¶´ c9a¼Ãøqôæ`g9?>>"&Ürv|RB|RHrT|œ½ì¤¥ì¥¥ìåßotæ#èêgÌ+~,;Aá¬3Sp7fžÑg0#ƘĘ1ÌƚɌbF36Œ-3†±cÆ1öÌÇÌxÆqd&2Ÿ0Ÿ2NÌdf -3‹™ÍÌaæ2ó˜ùŒ+³€qc<OÆ‹ñf|˜…Œ/ãÇø3Ì"f1È1K˜¥Ì$]F‡±¦èé×y¥£ÑuÔuÕ­Ó½£g¢W¤°T¤+ö*Ž³Ž¬?›ËîcŸq\%/ð1Â(ašðpCx«?LÿЇ»Z¬øÎp°a˜áÃ놌"ÎÏ6¾>(dPñ`¯Áƒ_}`úÁ·\b9d¦JÑ*¶^TiÜÔèß›¢ÒUŠçjCçTC› 6ÁéÆŽ³]uMë~®ø¥ø™€·¸H4µY6 «¡LÙsñΕÓ§¯ýƒüH^­ºëÒ:³Í¶4!Ö1Ó=§y®t&£‰çnߢÅE‹ªüÏû -cüæy‡º…¹§M#ã 9;ú¥ËKWOŒ< Cž¬²w‹4U$u»«-:ZV~¼ãC¥kèŒ4'âJü¾9¶üXêiÒ*ªƒDš»<Ú7ÚãVôUr‘ß[~¸ðPaåîS¤†”¯/N-NÛO"#µÛ©M$8ë0:5àXÚ:ÑôwdØÊãy`¾Æݘ@d·œŠaÂY°§íX½QÀmÜG(¸ Y Ú/FûDt&8W¶+I²a˜Îðq Ø»€ÙЗ?xâ-´:‹ö´ã‚N'%á„%8n ÚÍÅÐXvà(:AÙc/ÀØÃ0‰Œ4Ýê9*n¨ˆy\­V¡Õy³·ÁóDLÄóƒáC¸ -ã±ÒÀ×Àyøµx5l×ê[³Fj›KEélÓ㌤û Ö" È )+­Ïl!ͤ.¯¼¬¼<¯–4’æ̺ØÒ˜ÒyþÄ—,ÏŠ‹Ë !~teOÔwå€Á2N[G£†…²ÿ¿5õuñïÿ&Nþ¦‰Ôç••-Í«£ÿ«*ÅŽ_$/7ðš‰ÎoÍ÷¥HYÜÈ«]ð&k¤bs5WMà §ÍS±çX­1§Ý«ÒÌaé?ÿ‚nV*ãfÂ^Q;˜{Ï®@ÄÁÇÛ×ìZ½7tOh3ÎÿoÐ ØàñWRH'yp&0¬úUçogß0%/Ò:CZÃZ]kì …ïø»›ŽÕµœh)¼Mž—ý:®Ý¾ Ç–ap”¶K„{àÄ?%W×Õ­9‘TFüˆ÷Úቫ½²èWüJf>ñBC ⚺:tµGƧ´/˜£¾˜ªO«—E -âúæµô—ÜœølW¢õh} G´ hcí=ÒsÊDäý‘‹GS‚vs[Ð XJ/øÔ¢Ø~ Î °—ÇÑ8(q$çK4'øÑ‚€ÃQ0ºúËÕ'ÏN‚>‘‘x¥bSÔY4SÀTÂý—çÜ@ír  ì!tÌa(¨`èàA WÀÎ "ÞÁ18/˜£©Æœ9( tÀët34»M`—¶T2”6ÀNí¸#•ÂÎÞ‡Ô$o¤‘¤,©SÚ;´éˆ2ÚócŠ½ªNS_q7”aïší¶ÑP–±«s´àa4p$`w ï?»ÿìÝ)N€' —ðnQlU¢E;Ž*Ãõ}àpT¢ -•®èA0‡àæ6Š˜>EK@¦ºA"ÝÓG;íy°÷iá‹rAý•Ì‡*v• ¼¬½©í’nâê\Q”ºzÊúÐf¢Ý­n‘vªÍX|Åi-µ¹h„.¬Úá¯ÁRÃ^HC´Z¯Š\ -™¨1£p ¿A8 ‰ûZχžch78ÉÑÈI_¨óDiXñÉåÏOD<°ˆÌ"³×ø/ _¶jöZ;"H/!“:<ö3à>¾kß…f58—ÆjÄ{Ü¿S°¬ûýáë‡çäxq-»RËM¢dñ‚ÿƒÜÉ<w&®8ˆÌ#s“—­^¶zvÆ"ØàvQâ?µm,¼â\CkˆÄxð¤æz㙎37Š»ÈÏl–‚®Ý?ìn£M.¥O3Òh5G¥Dò2é~`Gà5ûüðÚÈs *òã¤dfÈ-&%ääþªò’ò’Sû.’s¤!÷|¶p!ûjʽè? WéR1ëÐüü¹ù³wÍ ø1AÃUŽ3'Î\>Š Hæíõ. , ¬ >µòÔÊëaOC^_]]–*M-JÝŸ²?ùÛ$GÓW®JŒH\œ=Ÿrªç®yùóó'•Ûž°–0ƒñ¦Q’«yÑõ[×JwJ™o‹Ô9&*E­d»ûžânÉJ…r&¨ØàþZp¹o0GMvúlqpÀÌÄÑdq9Üܘü€+h†Ð³x‚S. òÍGoÆÂè¥àC`0æàóúçõ7¯œ»ö~ñKú.o†£fÛûÓ«Yã’Ùèeº¹dý™ŒŸÿÑžÙ€GÔ%vpÒÆþôœ“réx9“úÔCÔÝ"¶H¯Y|ÊIé}f¬¶.I¼”®ÌâN^ŽJ‘H¹§7ŒWûh¾`aY_%îROç{ö­gñ3º2ŵƢÔYÅ"ì)צ\C¾B¦ ‚#¢PtíÆP%6½-yJ#WhóEÖb ‹rqJ.Žqò5uö ™Hp E¥Üñ’×e¯Ç1ï(™ÜÚÓt¸¹¸ñTÃ5á[.FÒ?æ‰kjÀŠÐP¿´9D°]Rÿ³i?xª¾´¾´cÿÓm2ƒÔÔã5"Z+ÿ9¨'¬ã¾íþæ9-@¶©Ô¯ ‹oc¶ë´ëY -Ãäõ¶¡«û^w Xð$0ŒpùÓåÍÈTa n¯‘†„j¿ê€‚Iui[ëá¾pIœ™N|G\ˆ¼NCÙ@¨à·¾Ë廙%õA8Dã•&%šÙ¶³Y†4€}í0 ý Û\^±´;M„ä_Í?€®°—»ˆ£XȦº/¢†#nߺäMÖÓ:®cÙŒV‡“ÓGÍŽÖÝ .¨A«;£:G½ ¤pï`³8‡”„·„7­}H@—¶‚G5­Õm¥7ÈCr)±jqÍâüO«ù-¨“6}UpD°oò4¹*Ψõ4ö2bi5!5a|¶ºZn{gáÅêÕuç\#B}ß,ñ ¹³ãÒ¾K{Z4–ûÅx¤xgyg¹ot%‰kñÒsKÏ%^ßòDP‡ƒ-+Çå0Èñ™ã34>%k@ªMDzÙ‡7A·´ê¶í¶« p¥Ž¨© 4†"¤ã÷7yr⻊‚C‡î­'HëúKkïA²Ò¹|Ü~*̉Mœ‡‡OŒ=UÕ‚3SY´©}†Ð¦1”Ã;W¥ˆÕôˆÚáܺm ß,ß²#|[ A‚Üê©®S]ÃÆQMAf|¿ Òï˜ßéЋIË"ã“â’â×E’‰Ú][s$¥<{òZÏÕ!Á!Á©¾T‰©ñ0à? Lyd¥Ö*`nƒîí¦n*¡ògô]÷F·FûÔÚôåPáwð¤)Ý_R^|j“²y Œ! T<¼aú¨£î?r9£%ú<Ì>¥ì}Ó÷/‘ÔTV®)9³·…fÝî.iÙPQ‘GBÈâ˜PÏXÏØO2Q‡V¿=¡ÅaÅi¤N=ÍÌZ®ƒôš]ÑÌœxe/MˆLˆ I÷¥<’_™P™u–\’“m–JQj¢Ž¥šAÕ=ÿÖü[6•8Œ -AÆ>êÜÎgÛŸÝF™ÂÍ÷é×&Ñá&/jÚjÚ.—>¦¾´OÆO,z­x#5 6*vhÓzæTï=r¸¤d_59#¼ö?z¨çdk·Tšõ¢¦Ûúzä z'IoÅÍÜ~ØɪÝþšº©hx Ú ÞrÚhµ¡ä#¥Ë;ðWªðY)ÜDNy8µÂÿ¤R|i"µQç„‚ÇU5Í%¤Ô¥ =¶Ï›Lz­àbÿb­£ß,èp¿:¶‡Pôd-Œó‰[»XHà|@¹fœBÿwËô÷](|Î…‚5‹Y}=òúi<ËYÙZÙÚZzï¿OÁÿXM£º]o¹Þ´­¤Ãd~–O‚wü²Ð¨€ÿiQÙh‹Œèr*­4´ôß,*ÞJ6ý',½üGUMU-Kî“äb|••>e5=ÚÒ"ü"}}â'gâs$¢uUk:M=A½ªý”žåO–?ñ¸î|ÆùŒ]‘%Á™”H)#^*ËjJ#úGžt<éxÅõÁÒŸ½\óŽnì * ~ëù­ç,¥'p{OÏyi4û»Š®¾vúÜõª_Žý’O+ç@ ÞóîŸý¼û7}gq+`‹[UêzºÐ ŽämjÊùUØÿŸô-8hlÄÛ¤1¡ÂïXÀ÷2A ˜2YüÐüÿ&gÙ=ˆ]ˆß‘ˆæÈæôG¤Ü¦Dlmþ€´ÿÏ­¢<§—6=b9å¹”é4upƒx‹\Þ×t¤éH}mEeÝ/ælö#¡‚6 -.ª87ÜÍ' 5» kù¬vQÉ¢¯½s=iXN)3ï{ÈTãˆÎQ£{A)׋OÕ‡äÚ5¸­]î½ò³ H!“ 3ú7ºƒ#ÏJn6o>ßuè©$e[m,‚ãÊ„‘ÛBe Û4.ðX¤§Ÿ³kO¬=[ZZî^1±rÌq²Øñ2©jÎ*~fÞ@Îm8—y.óBZËšB‚‡\Äa¥hFä¡›0#`šøtbKîZR–¿²4²6æDÌ•Õ?G´'M©J«J?”ž—%äeì\KÖîþѨg@bßìÙâõ4ŒhX’_¿ï:&@ï’ì¾nQÿ~ÎÒx˜@¶L Zš¨\;.|a¸Ÿgܧăˆ«;‘ÕNî j+l륹…ÊŠÑ×ç^Ÿó:’†Ñ]rc_û‘öÒÓ'*.Ðà¢óµ4ݨjšN -x›ÃèÞÁ 2glq7Íårogv­¹1êÁJÚEµÝ=ù ý˜ƒNyð‡k7lŒËñÍœdšé”³ w©Ë}Uðå¡Íe›Žn*ßT±éhnYné¦ÒÍ…[òp˜T¡¤ò ͵Ÿ¦¢nΔ-tŽTŸ -F©OQ”6(±•ƒ[ôè÷9X¡Ñgwr h¿5\¡d*ݵÆÚ,¼æ Gë´CXøƒÓ–nHŒt’Å×Æ£„± ÉÏòÚ4= -ɧïeº²kLPX´ihÔ²Œ²‚„}³j—€›ø†œ†ÜFòŽ¼(ý©í~Ûå'õ /Ū¿+ñ'ÃzõS½2Ý7Σ^nì\w5½#ÔúJ#M††B–¥-७êÙ,,éíÄ,)ƒ×æõ°èÊ¥ÐôB× N›Cxó:¬Ãý­FRéÐÿ ˆˆ +xÚWiTǶnàô€2h´ñ ' ¢‚‰ˆ âˆ33È  D@fd0¨QÔ¤ŒQc0 ‚" 2(àŒŒâ„F½‚&N1êÆ‚^wŸ³¬WyY÷½·ÞûñÖ©îÕ}ªz×®¯öþöW:ŒBÁèèèˆîþ3ýÝÆú$FÄû‡Æ¯7+!v…Üáe>€Ql±µ äï^…ÚWª_«„¯YÉŒ‘T:Ò‡º’¹ž4Tñ!Ãè¦wæ¹±|¿>H¾›Ñ›8àF¡£Ãºx/r°w?':2:%úóˆ–+BSB-Ã3’£#£R,mÃÇXNï0~½9ØYÎOHˆŒ°œœ˜šo/;i){i){ù÷y Ǻ†ºÃsÆŠËNP8ëÌ<Œ†gô™Ì@ƈ1f1fŒ3‚±fF2£˜ÑŒ cËŒaì˜qŒ=ó13žq`™‰Ì'̧Œ3™™ÂÌbf3s˜¹Ìãʸ1îŒ'ãÅx3>Œ/³€ñcü™&YÈ,b‚˜`f1³„™¤Ëè0Ö½`ã:¯t4ºŽº®ºuºwôLôŠ–Š Å^ÅqÖ‘ `sÙ}ì3΂«ä>V%L¾noõ‡éà0`÷@ëß6 7ÜcxÝðQ”ÑãÙÆ×…*ì=¸`ð«L?øöƒKC,‡ÌT): PÅÖ‹*»ú}à{SUšã¢Jñ\m¨ÂἑŠch3Á&8ÝØq¶«î±iÝÏ¿?ð…Æa6K§a5”){.Þ¹rºãôµ¢É«•w]Zg¶Ù–â ‚&Ä:vº×4¯Îd4ñÚíW´¨haUÀy?aŒÿ<Ÿ0÷pôid<Á!gG¿tyéâJp"ð ‘'aÈSà‘Uön‘¦Š¤nwõÁ£EGËÊ—Âc|¨t ›‘îD\‰ÿ÷¡Ç–K;MZ@u°H²"ccbã–ÅøÅxÞŠ¹J.’ã{Ë*¬Ü}ŠÔòõÅiÅé{H”`¤v µ‰gF§K['šþŽ¬[¹ñ`<Ìø`°[ ˆì–S1L8 ö´Ý« +¸û4 BûEhŸ„ÎçÊv%I6 ³“À9>{0úò/P¼…VgÑž¶bœ@Љà¤dœ°Ç-F»¹ø¡Ë¼E'(`ì{&Qc‚‘¦[=GÅ 1«Õ*´:oVà6xž„IxÖá@ø®Âxì€t0ÄÕp~-^ÛµúÖ¬‘ÚæEQ:Û´Ç8#é>胵HóBËãËãê³ZH3©Ë+/+/Ï«%¤9«.®4¶ty^ñ#˲ãâãâ³B‰?]Ùõ]9`°ŒÓÖѨa¡ìÿoM}]Aú¿‰—¿i"õyeeGKóêèãÿêJ±ãÉ[Ä ¼&U¢ó[ó}©ÒF7òj¼É©Ø\ÍUxÂióTì9VkÌi÷ª4sXúÏ¿ ›•Ê¸™°WÔæÞÀ³+yðñöÕ»Ví ÛÖŒóÇtv9xþ•ÒIœ «~Õù[çÙ7LÉ‹ôÎÐÖðV×ûBá;þÆî¦cu-'Z +o“'Ä¥¿Žk·oñeN¥íá8ñOÉÕµu«O$†â³fyDÒÊ$ï':Ä¿!€ƒ™O¼ÑЂ¸¦‡­ +[å™ù)í á¨/¦êÓ*Åe‘‚¸¾y ý¥4'ýÛ•hýZÃ-ÅZûŒôš21ùäД ÁÜô‡ÒË>õ€h¶†ƒóìåqtJIçùÀ ~´ àpŒ®þrõɳ“ Od$^©ØTu6 ä47˜ƒJø ÿòº‚ˆ ]&4ƒ=‚¯‚9  ý< ä +عAÄ;8'âs4Õx‚3e`xÝ‚îa¦f· ìÒ–J†ÒØ©Ýw¤RØÙûšä4’”m"uJa‡v#QF{~ìïQ±WÕéêË"î†2lã]sÜ7ºÊ2vuÜÆ€!Gv'Àðþ³ûÏÞ‚áxz‰ïöÀV%Z´ã¨2üˆPÿÑ× ‡£U¨tEO‚ënn£ˆéS´aª;$Ñ=}´ãÑž{Ÿ¾(Ô_É|h¡bWšÐðÀËÚ›Ú.é&^¡žÁõ@©«w ì¡/m&ÚÝêi§ÚŒÅWœÖR›‹Fèªþ,ð0ì…4D«¥ñªÈ¥‰3 +Ç3•¢¯Ðmç‰ú¤ Ts’¡J‘Áîâ6 ç&dÉò/—“•d•Ðë +uÔíd^«××ÃærøZÓÃj'ËÆËÔS9r/Æç@¶°‹ÚâÖ«ØËýíuåÉÔí8ü;ô6r½ÆšŸX­Ùûæpäa.XæÀ"ú‘zPßsê¢bÿ©N¢Û¿Ù¼ÑD@/—k˜Jäæâ(¢!õAo +míèAùrq‡"7—k`&òÕÞ6 }L(™–à+®<úµŒ‰_1:ãú„“X 1±¯õzèõ0–vƒ“œô…:O”æÿ˜\þüDÔñ¨ É,2{uÀÒˆ¥+g¯±#‚ô²¨Ãc?îã»ö]hVƒsi¬F¾Çý{0åÀ€eÝï_?<'Ç‹ƒlÙ•Zn%‹üäNÖÙø3ñÅÁd™›´tÕÒU³3ÇÁ·‹rÿ©mcáçúZC&ƒ'5×Ïtœ¹QÜE~&`³tíþawmªp xzÿÄœ‘F«9*}$’—É÷ƒ:‚®Ùwà‡×Fžs«LÌO8^S˜s ·˜”“û«ÊKÊKNí»HΑ†Üó9Â…œ«©÷bþ€\¥KŬCóóçæÏÞ5ƒàÇ W:Îœ8sÙ(‚"™·×§$¨$¨2äÔŠS+®‡? }ruUYšp4­(mêþ”o“I< ÊX±2)2iQÎ|Ê©^»æåÏÏŸTn{RÀZ |Á<ƘFI®æE×o]g(Ý)e¾-R¯3Q)j%+ØÝ÷wKV*ô”3Á@ņôׂË}ƒ9‚lŠÓg‹Bg&&#ˆËáÆÆ”XA3„Ž˜Åœr•o>z3F/_ƒ 0Ÿ×?¯¿yåÜý³÷‹_Òwy35ÛÞ—˜^Ír—ŒÌFoÓÍ%ëÏdÞøü‡Ìö¬<¢Ö(±ƒ“6ö çœ”KÇ˙ԧ¢î±EzÍâSNÊè3cµ-pIêॠÍ`ŸpòrTŠ$Ê=½á¼ÚWó Kû*q—z:ß» o=‹ŸÑ•)î¨5&­Îæ(áL¹6åò2m8¢k7†)Á°émÉS¹B›²‹y\˜‹Srqp¬“Ÿ©³èD‚)*厗¼/{?Ž}GÉäÖž¦ÃÍŧ® ßr±’®ø1O\Ó—‡…†ù§Ï!‚íâúŸ-HûÁSõ¥õ¥ûŸn“ᤦ¯Ñ’XÌA=a-÷m÷7wÈiú°M¥~Ù|³…\§]Ï&ר· ]Ý÷ºkÀš€ù+a„ËŸ.oF6 ’cp‹x4$VûWL"¨KÛ§H¿ˆ‹ã=Étâw8òBÔ… ÊB¿õ]~Wå™ÊÓÍE´ hj$Mºx—\Ùq~OÞóÏ• °^œœœ¸Á—VÇ©  ú#°àhQKêrksjמÊ<»æ¬SR„C4^iR¢Y°Ýh;›¥HØOÐ~³ÐºÍåK»ÓEAþÕüè +{¹‹8Š…ª{ð"j8âþ­KÞ$a=­ã:–ÍhEp84}ÔŒ‘hMЃ [ ZÝÕ9êM…Cx›Å9$°$¢%¢iÍCº´<ªi­nk,½A’KIU‹jåBÐ@XÅoAôé+C"CüR¦É%PqF­§±—K¯ ­ ?à»ÕEкpÛ; /VŸ¨®;àêûf‰OÈ—ö]ÚÓz ±D€u¼{¬gªO¶O¶ÇFW2‘¸/9·ä\Òõ-OuØÒ¸r\ƒŸ9>CãS²¤ºÑ$hÜ(û‘ýpøto@«nÛn[° +Wêˆú˜º@c(B~“''¾«(8TpøèÞzr´®¿´æ¤(ËÇí§‚ÀœØÄ{úzúÆÚSU-8ó8Õ™E˜ÚgmC9¼sUŠ8M¨έݖøͲí¡;"¶Å´!È­šê:Õ5|ÕdÆ÷n•þÇüO‡]L^š•Ÿœ°6Š,Hôž˜¢¸¢Ø#©å9“×x­ + Ió£J|L팇``¢Ì#Ë)µVsto7uS %?cîz4º7Ú¦Ô. ‡ +ÿƒ'-Héþ’òâS›”Í[` ¡âá ÓGu/hü‘Ë™-1çaö)e‰¤¾ ²úpMÉ™½-4ë&pwIˆêÌêÌüxJņyÅyÅ}’…:´"øï +/N¯ uèiFˆ`Ör ×ìŠfæÄ;gIbTbTh†åÁÐü„ÊÄÊì³ä’œl³TŠRuÕ Êèîù·æß²©Äam 2óQGÈäv>Ûþüë6rÈn¾O¿6©ˆ7)xQÓVÓv¹ô1õÍ }2~bÑkÅ©Y°Q±kE›æ`Ð3§ªxï‘Ã%%ûªÉáuÀyÔC½€`[s¸¥Ò¬5=ØÖ×#oÐ;)Xz+næöÃNVíþ×4ÐMEÃ[èÔ³ð–Óƨ %_)CØ¿R…ÏJ&r’Èéþ'•âK©:'<®j¬il.é$m¤.ýHØáð}>d²ÐkûkóÆ­ÃãêØ +BÑsË^ï¿,{¹úÝØT@7üÖó[ÏYJOàþžžóÒiöw];}íô¹ëU¿û%ŸVÎÜÞóîŸý¼û7}gsËa‹[UêzºÐ`ŽämjZ÷«°ÿ?é[pÐ؈·Icb…ÿ±Àïe‚0u>²ø¡ùÿMβ+z ºÿ#‘ÍQÍ(H½M‰ØÚüiÿ7ž[IyN/}zä2Ês©Ói6êàñ¹¼¯éHÓ‘úÚŠ&ʺ_ÌÙìOÂm4\TqODkvÞòYíÂ’…%Þ{çzÒ°š>RfÞ÷¹UãˆÎQ£{‚@)׋OÕ‡äÚ5¸¯Yá³â³à(O!‹ _3û7ºƒ#ÏJn6o>ßuè©$e[m,‚ãÊÄQÛÂd Û4.ðX¤§Ÿ³kN¬9WVVîQ1±rÌqϲ¸ ²¨jÎ*~fÞ@Îm8—u.ëBzËêB¢‡\Äa¥hFä¡›8#pZ@ÄtbKìZ\ž¿¢4ª6öDì•U?G¶'ŸM­J¯Ê8”‘—-äeî\CV 1¨gHçu £»äƾö#í¥§OT\ ÁE3ækiº PÕ4ð6‡1½ƒ'dÍØâašËåÞÎêZ}cÕƒ•´‹j»{òú1òà ×nØ¿Î/k’i–Ó:·Ü%B.÷UÁ—‡6—m:º©|SŦ£¹e¹¥›J7nÉÃaR…’Ê/4×Vd~š†ºë¦l ¢s¤Áø40J{Š¢´A‰­Ü¢G¸ÏÁr>»“Aû…¬á +%S醨5ÖÞ`á5ë¤!°V;„…?8í`é†ÄH'Y|ÍaJ’ü,¯MÓ£|û^f¤¸Æ‡Ç˜†E/Í $ËIø7+w ¸‰oX×ÛHÞ‘¥?µÝo»ü¤ô¥8•âw%þÄax¯~šw–ÇÆyÔËk¯f4c¤Z_i¤ÉÔPȲµ¼´U=›…Ž˜-eòÚ¼Þ@]y£ôšžBèzÁi×Þ|€ëpÀ@«‘T:ô?7xˆŠ endstream endobj 491 0 obj <> stream -xÚcd`aa`dd õu - -Òö/HÍ NÌ+ÖuÊÏIIøÊq1°thÈwwÃ<ì2¿yþ¼‘áê•áèeý!ÃðC–ñ‡Óyæ",² Aä~yMDJ ÆB ¬ŒŒ<î¡q¥y™nN††z†.™é™%™U©) +xÚcd`aa`dd ów +öÐö/HÍ NÌ+ÖuÊÏIIøÊq1°thÈwwÃ<ì2¿yþ¼‘áê•áèeý!ÃðC–ñ‡Óyæ",² Aä~yMDJ ÆB ¬ŒŒ<î¡q¥y™nN††z†.™é™%™U©) )‰%‰ Éù•E™é% Éš -F†º@ÂPGÁ=??='UÁ9¿¨ ¿(±$3?OäXk@®…ó€V1±0­å`lg`fdTv;(Ãrö{¨ ë6Q™_^?ïìKe~m•ayö“Wæ·;߀Z ¿×²•ý–Íúmû;’ã{>ÛýïǾ›¬ù.ÎÁ'ÃÚùsÞ/^Ñï•¿ç\dïÞÛýïǾ›¬ù.ÎÁ'ÃÚùsÞ/^Ñï•¿ç\dïÞ> +<> stream -xÚ=S{TgŸ$3¥4X5 -k -A‰U%õ­,-Šå!FEbŒ&<’ðŠÊ"Çm=,õê¶Û¥ ˆPŽŠ ZA$%¥Am«vA]X­–ϺÇGÏú%ÜàÙ<§ÌïwïÌý¾{sï¥)€¢iZò~Ôú´˜äÐ$£FŸªÒ…­5äíâ?l ô¡•ó‚þ0|)úzK}ŽJÙ£B—œrÍ¥]o{¹æy»¦ Þ¢(:êMCüx œÂ!5‹QÃTJLÓ¬xºt΂ð•ïÅl¨8^[ª)4,2ô‹÷òv±¶PÃ{» %…<éL¼W¤ÛǣƤÑs¬ÑíÑs¬×MT,R„GëöèŠu¥š]²]ªb•Lm0î/ä£dóÔóeï„+ÂÃ8P,”Å {ò4²u†B£¡PU¬3èñ¢e¼j¯ú«ÞëàkUý®¤?¢Ó@¡Ò§?¦?¡P45“ - ü¼8cuŠú™^OÿîéuÞ«ÛkØëž·Ùû´·E-|W*¸F6K…éx¼{„3˜‰éx‡D*s¿!Å?1b©àß®…®$@D5÷ZûÛì}-C0 }†¶”¶”šå€  ¨tYN²nSšþ]ˆ„Ô]Ž£ô>w€u—Ì’”IBÏßã´\¸P²%¼'ßM„Q#Q#r+ÎätApJ -ÙrÑ1ÂÔ=lu¶:»/þ`¹fùÅü?èÇ!G9K€Éø,î“•€•€¢QŒÁè‡Á‰˜xžu5z%@Ù´³OÕgºwàJýÅ.«ÍÚ[ç„ëpÉÔ¦¶¨jR!VíOÐfi3·–Ľj•kT*ü^‚A€ÂÜ¥ñKã³WÀlˆ®kOjOú.uT9?=:%3>+¾$ -¸Üo^‹‹!Sud)70a@¦œyôó£›ñ…¡¢Ÿ¶;3#vüváúek¿Õqòü•}Ùàr' --(ãVißËa <¹1Jf_½—5°³]}VsB™°y_¶F§ÉM)äv+ͬ¶¨-{»à[–˜Ü/$—¡³¼ÕØj¬Ù;@U¾» · wG^|^lkFkÁéBKù8]ævË©ÖæóÕ½œ¼½uãÏO’¡G"ÏA`}h¡¢Î÷µ#¾bWËôÿe5- +xÚ=S{PSç?’œSJƒU£pM!(±*¢¤¾•K‹âå!‚" 1FIxEå"c[‡RWÛZl/m@„"0*b$h‘””µ­Ú ê…«ÕÒqjÇGçú%lpî98Ó?Îï·{Î~ßîïì.M MÓ’´˜¤ø¸ÔàƒZ—¤Ô…¬Õçíä?lô÷¢•óþ2¼)z»I½ŽHÙ#B§œrÎ¥oz8çy:§ Þ (:âuƒ|xôŸÂ!5‹QÃTJLÓ¬xºt΂ЕïDm¨8V[ª.Ô/Òéuj‹÷ðv±¦PÍ{»ô%…é|Crz –äsÉ'¢! RJ22•™ªc×Ôô9–Ë?mpFk§­§­ÝõƒœJ×jâàv"1/冋–ΪGÖÜüýÚÿ¤ÝI{XH( ¡@Äçïÿzÿ7+7>¼'ßE„##r ÎätA`b +ÙrÑQÂÔ=hu´:º/ü`¾jþÅô?èûA{9K€Éø,æ“•€•€"QŒèƒñ˜xŽu6ºý% ¥iGŸ²Ïx nÃåú ]«¥·Î×ࢱMeVÖ$A$¬Ú§ÉÒd¦–ļl•sT*ü^‚€ÂÜ¥±Kc³WÀlˆ¬iOhOø.i4e~zdbflVlIp¹_?<5E¦jÉRn`B€L9ýðç‡7.<â CE?msd † mÿíüµK–~‹ýÄUø7*ûÞ²ÁåšQÆ­ÒÞÃx|}”̾r7k`G»êŒú¸2aËÞlµV›XÎíV²IeV™÷tÁ·,1ºžK.Agy«¡ÕP³¶ƒ²|WAnAîö¼Ø¼è֌ւS…æòÓpºLíæ“­Íçª{9y{êÆŸ CEîÀø{ÑBE÷+‡½ÅΖéÿ¦¶-N endstream endobj 495 0 obj <> stream xÚyTÙ¶v!tu)L«”¥àhW먈:fÇ8 -Š`1`–‘l+I’䜹›$©˜L¥‚q09;:†ë8ã8^ÿ{Õ »\‡yïj.ïï½ÿ[ÿZZPçœÚy{ïƒeaA™™™õ˜?sºóÔŃݴAÞ‘á®!Ás¾œï)m?§Ä^fbo+JTwysÑÆ" §¼W¿?¥èMQæê®äÙ!¤³ôü¦ yRòÀZSŠ”¥0+6»iöÂì·C‡è1±ýàÁC¦…„Æ„iVGhFŒ?^ã£iÛÑ8ù…k‚5È/Q~!¡A~ÁC5 üü4«ý4þÚ@?Í´¹îKgº¹hº¸yh\ü‚ý¼5î‘ÞZÍ­_p¸Ÿ½Æ?$LØú¢ñ öÕFhC‚ÇjÃ5^šðP?-ùÈ/ÚÇ/TÚ¢ õ Ò†‡“ß5ÚpM@˜Wp„Ÿ¯&"D£ ö Œô•Ø“uÿàMhXÙ";„”{HxD¸O˜64BC8º;9·Ê±Ú+Bâ®%ÛšrÒ7Ä'RÒ¦}/ÂK®‰ð‹Žøxûi|µá¡^1„/!¦5Š® 0q¢ ó ð -ó ô 7Ò•¬bÒO#ÓÚ+440ÆømˆñT;mD¸_ ÿP“þÿ¼Ò*+!š9)Z½Â>Z¤(3e_s;vR‡Ž³UË5 f$\( JAÑCu¤:Q–”õ¥¢:S]¨®”5ÅRÝ(ŽêNõ l([ª'õ9Õ›RS<Õ‡êK}Aõ£úS(;j eO ¢†P_RC©aÔpj5’E¦ÆP_Qc©qÔxj5‰úššLM¡(Gj*5r¢¦SΔ 5ƒšIÍ¢fSs(WÊšK¹Só¨ùÔj!åA-¢SK¨¥Ô2j9µ‚ò¤¾¡–HÜbv Ã¬k:273O0o6fAYô¶pµh´ÀŠÅ_ô<úœrž²ˆa˜æRG®£{ǪNã:í°ÔXnµ¢¬¢­^~–¢¢U®ªÛÕË:‹]fuÙÞuq×›Ö¹Ö?°Ù\ö×n1Ý~åzp.\·‡;ÆýÐ= û=Üzœ´am²m;ÛæÛÞïÉ÷ÜÔóÑçñ½½¦õ:Ó{zïýjõY~ Ëß×h¾ïcÓ'¡Ï³¾Ž* ¾áêqqA˜>¹ÙV#½¡`K=Ûœêþ©UÌÀZ0{‚Ƚ «õ%å©%1üHºÂòªÒ È6e¤åÆÆáH›áô²Z’gH)M–ÖÓÛÖ'Ð1©é‰ úôjþŠ­#M ?Òq8L‘¦LÒ§Ôå¨X—_½"m^Ðñ8,7-—P2 ÛrT¢Ë«®$ëOL2L¤×‚5'‘NëÁZ¡®â<èˆ-j­A!Äïè*°×`x‡›2×MC~Õ;ÖoÛ‘r9éZbeææĺøŠu(ˆ™ãêù•š½çˆfìË:œSY’ˆ˜„ôÔ~’2¦$µ¢¼D_­®Tn nŽhÊa°¥i,•o —Ï¢‡èpÌÞÀ!5ëtÓ*Ü QÅëËöJTyBÚÊœ=sô†ú":XWœQŽé[þ‚’R¡OPK¥äFl(õ,dN)Ù9ÕéúD‰½Z•´ö+=Í@¹ÿÙþFòßþ‚dnÆÂ..§\¿zæÌÕ[§y?‹cûü–­ôó]¹ÂïÀÑcû÷7ñ¸‹8B~ðÚMÙA__OéàÑýšx0஼°¨é™Ò4}ª: eåfå¶tÆ*›Ä¬Ì ”¤èSuê|T”W”ϨÀ‡ÄÑt\@Îd£,Û¸òÄJâ=]qi ô‡j7G/š‹³È™”žê„;øâŽÈõÛóÅu¬Øì¯O)EŒ¡ToàQan~N‘3t |‹þDîúí¨ò‹òòQ!cHÕ'«UPpÑ&RÉ)©É<ÊÊËÉϼ‰»î´C˜BšÀ/œ±*'37e1ÉR •¢’’ªm· Ãèˆþ‰Þ­ùÝ,"ö§êS{·`»ÅY¶=”žŸ“—…l“S%ª)ºT]na® ØzMÀÄ9(ÓÖ“:TT¨+}6±….¹0[‡l zIð¢ì⬒ dlm(*.FÛÒÔÒu6JÏÍÌÁ¶«l€Wš\ ‚™‘ÿ¨à`]ÓÈÑ<ž+éösx%ž¡lO˜=éöh#f‡þÿÑì’«9`àÚ³¤e€)×Tñµfp Î7(Äßgð¾”>°sûþ}AÛ}y•õþ3®P—WH,_š¢OQ§ Ì¬ôüÃ_sl²ˆFÄÀ)D?bà¢Â’ -F/ˆÇˆF -s1~ã`Ô °96Ÿ‚)P0RŸ½âÐåêë;›6Õ××B‡P}ô&íΕÕ.h63R‰fǸ­ŒÔj£½ÒÖDÖ5Å\G—"|öËÝE»Î‹Ë$™l›B¤$©Ë/Ì›C6-å˜WFKº–J†»mB -ÌÓ„„¸G°§ þû7è,pʳÇ.ÿñtÏjw óÌ‹1ìÕnhAˆÿòèðÄ äꉺT\\XQyá»Æ눹ÍÍ™GžÑ!_spœè0a*3WÉÞÕß›ü lµŒµ8Cˆ&¼ÄNðˆËÏËÏËC¶ì?…Î2?N¹f§^Œ–ÆùEÅ%Ä´¦–hù¥e;êמAÌ÷ç—Íâ‘Wˆ¯WLTJ\îRÄĦ´y‘½ñúñ̯'O™5œ_€Ԭ؛^”•Ÿ˜”ÔÔ%–'î‰=r4ñ8b@ùëã7<º¾âÂ×»%#B7þ bEüe_s¸ÛY¤ 6L Ýꥷò -㛨KãèÅ -%Ô Ž§ÁþPÔÑDSx$À$â{6Í/p!‹í¼‰NÔõŠPQ~Yñ¡MG óôœëȾ3¦ÙóóÇæåGÒKŒ´¦bREüî¨kNÄ}K4°üÛÏ` ûóß ÿÔ%QRÜÁ \j¥têuŽ®Ó!“Ë­ÉÝ€ôèrÕwÛ¿÷ðè}Tƒª³K3u™…¹EktzCM@å*~š¶h¥ãœÕcf<í VA§×÷ÿÔÛ)O‡«‡÷x¦Øƒ«;b¨ÞP¹{ïÁûsóìÌIcæÏtä]Ð’ÆЧÙz”—±™QåÖŠ‚`ö»GˆIgŠ‡8<º¥”$gʶmC£¢¢¢J+VÚ\ié8EÝšÊ5ê8" -Ô„lAªWl!öµh W¹[{wF™Ÿ'Ü|vöê]þ::é¹mlA*Ê-Ž ά{ýPJf²lZß±o_ÐV·¡žÇàø¢ì¢œd[ŒŠ Šó lò ~ â¬âÔ" °ÔÈC_TX„t¶¨ · ‡ü·É*Î($BY9™Ù¤&Ì'‚™X?ÊPÓÝ„š¢;î÷镸…ˆÑ2â3 2ó³‘mÊÈÊÎÈɶÉÉ&øLê@a†>/µÁä‘š™•‰ÒmIËÎÏÎ˶)È(É*&Âæ0*Wac-°‚ÈKñôw>'õAû=Æ´ä‘!½$)ŸÊ_\n ÇŠñg‡¨ñX%rªvÝ»xï’#ás÷þî]¥¤jòé(779%*Æ;iZŠVW‡jŒ=‹.00Z 6—_¾¸~|étõ -eÿsÈ");!71ó|N\8{ø/A‡MÄJàÎÁvŠ)&+ÀppøÓx©X£À«dÛV4vi‰TÒŸ„šIt3Ø) ÀJMªD“bƒÖ'€‰Ï.Û<’â]ÎCFá<ýâî§<º¶êØØçwo݇N2/ RcƒéT3-`?ü`œòÎÏy®nß|Åc;¼…ƒ8°W^Dõ黣÷EnZ×KÔª8Adj¡“°¦Öú’ v’’1L,äV4έ›‰f ÷užËW­ ™ŽÜ˜qJü9tÆ¡—ú2º¸åxÓÖº²*TÊÒtIêtYéi³—¬sF îd÷¬ø[J°üù5˜«B?,*tË‹+I+CL…Ô‚…’íeêH¥ŠÌ~àGÁü7ÓÊ´¥{З?£„>Àsjj:PO -‘œ _(›Ñ¾ø†Õ½·ÌE‹˜©Ê>£ì«[íú´öw8Ä°ý…?…õû_0ˆIúËú èaê[tUi[n¬#·Èº+Ydc?¼üš?½»¥%Ò“6uBÓ)ˆ£Û¬µk8àe6¹-·IK$éœLï·eFæÛÉt1ºr÷èΫÀ#sïàol4ñ[@;ÀBÿ“ƒB,³©”1êÔ* >½†o¤ñœ¯€ü{J“:“éçëÉ&òíR¸ °•²žèów™QLßý½%r° ÔÔsÆ[•m¤n ¢ŠPzHú#Aº]K¤£Œ»½¬KúÈ=v4ŠßàðF1ð#Wh?þúƒ ÅH £ðŠ6Æd\½A""qbM½Ìö&KÝmñ¡ñ91OÑç#ëÈ9 2…ƒèCù–<…„k%‚ÙIAM4û–ŒÃ˜Çp<òxèMP¥ŒÉ¤_ïŽûðÞÀü‚iÜ÷‚•Xé/A м$?”ÆŠ0_€‚-…@=h ºûòå¸Û}xœNÿï²â, €àñÃ+ \œ§ÍÍ«°R -ô‚µQb6ÎÚêÂ? ‚q ŒÇ Ñ M5Â}žâ.@‡˜e“ž™•ÒãäV€H3w¸ìša'Ú‚*³·¥0lùŽCv%b}·«¶L*”Æ97;p}lzJDiùáz†2D£(—”ÁŸsÿOcø ÛjŒF£1 -9°¡ï¯>âñÅœ5EI =ú„ì›søåî¦cè -ótÜmR³òþwÁ… _*o_ó˜;{âb{ž86¬V,“@î!æ"°ÛÄybç%xV»#¦ï¤£ÈQã»'bgäÞ¤›I·’6fÔÅ1ìÎí±UkÑjÆqºÇPõpäx2ûjne†îý&5if;öîP²;…çÃnŽÜêÙÍ×<:qØ·.¨&D7¹Üµ4L·®Ša·…U%lG»˜«?V?@= çJUî^¾S²ÝåEþªý§”m0Q€ Òl'H…kÂTeœ>¹¬¢XW£ºe¦MàLl‰ì+ƒÊB“q¤ÏÌÞ´æPãSQ‘VmL¡´ŒãGwñÏôˆéÓGt¾ù³~¾ûQ¢Å¤¶ª'§0ýl4(ÀâÇ&׊¹ÄÁµÝÏÒàGZœ]­äS‹c¤ÒÖ~¿…=H³“Mc71Rñ½ìÐ`õ]ôrªî—hPŠýÀ¢¥Ÿâ2ý!¼A_ƒdðEÏo Åfb/…+-Zz-C/exjo:º¡€À $¶mÄÜt’ ï—x%+‡el;Èi NÄî)beaÙÃtz6 ã` IÊ5D2Ó Ó‰ØvyꉟïA N°‘Œ•]yYŠ.VâØŽqil×ã!°^±_&“Lê:I¦ -¬ý7±Ð—Vá.Âûží—¸×2Jê¿AmzD«`Ø{5—^‘Y˜JÆœiŠÎÊË*Léæ£$¡(«1¥¥úR骪(«„i§n¼Lǽ”hCý>@ZûûkBü[s؇§§åd¡ŒÖ±P‡Š -JJÁ\mÀ»–¤}t­”!1ézÂL¸¿,–¾· Uboñ ‡mièÓJcu™åȶ²¼ŒÌ¹…¹d| H €“6‚5É©ó‚7¨Ø0q,â^™Teã= –¾årj¨ÚÍJ\œ•‘ŽR¤{³Ru>*$hù n{ñ^ÄÜ9±fï¤t¯ ,ZI:¢®cÜGólê”K‹_ªo¢ [/žeØ=3æx„;!ÆÙ³þÔ¥Û‡ÿà c{SÛdyk”e¨¼v!ô# - ¡Ù%¦^qasKÍ.k_yõœf~A{Gš×o +tò«xö°#Z°v©Îßqÿ|0á û ãñlãÀIß¼yøèÆü7´µÖOø?û½¸F´â¼÷zÔ¸ñ{‚mp·_‡Aþ*ºZ{²a{͆jTÆQ)…tëÙ9ii‹—»†O%gÍ&ßû:Ü¿ø§è–Wá¢üØâtYÏ7®¦âÕr5/ ðÞhòãb®QMY§–L/»5o¡m9È“™áõ°äÙ°{èBÃÑ›ÌÈWJ¹ƒh -o¹7&~Á³{ì&N°·›ôè­¤¢Ä¦ -0ˆLaU°œCMÙ5 {žL<9˜îf7†»ÿÙ>VG D3>SšC2}ÖNt•îJ'ÞHø,ª¹}î5zîºW7v¤Ï@¢9–Ds±Ì“%˼‹ô‰Æ†«êMè@ö¶ìcå#¦L¯+ãQiFIRÁÚbç?ÄŒ˜½h*ï6Ê”Ïñs"ÁMSW‚Iz’vm˜„P£é~2šî¡8‡Œàž×í”ü ú%f0ór(xöÎmÔ¼«ñ*ƒ9¥‹ÇB5fd´iúÚWÕ°oçîò]H`Ø~âÀf%Û·]s+ð¤PîÕÇAC†u¸÷ê×»÷~5Öm£ûŒu{‹T·ÿÅw-5+[ßJÓ«Œö¡mñm(o¾¼Œ¶ѦôÍÑ[Ö—KIÀÈS)ÇÉv„ö„úÑÌóCÕnÈ+b‰[›åßýf eç}ö%éÅÇpx”L±Nø9-{ÿKÖ6¦Ù79âœûçæ« )3€ó¤ü!^l¨tY¶l¦w“Qàè—¯¼äÅy¸A&d*äµÒù Ö—¤¬%"¹Â ®éÌÀΊO£¿'}`i”{(ŽÊ¦»éô&")vÄv -Ñrˆ‰)û²5÷ßÈV^ëDMûhBðNö‡"èØRóÌÑ*<‰'߃0YúÇÞ bSY÷Î^¬Çϵ4{£m…8ÕÌ™ì5-G¶aÿÙÝ[S¿kµ/oÈ:i{ÿ¹u v­ñ#ÓÒG› ôùÇ穽њ(ߥ‘ÇÖn^…ÖÝ Çh—3íò]yë-n"ÎA&Ü"œ§©~df(¦w ¥† ¼Û7ï(Ý šŒºõ[¢ÊÃŒQ§•9ÔL~“[Bïr~¤šuwEÑóf3­H)9ŒÃÀ4³$\êúf °`ýö Öî¸~<±ïÀ±ú}1Ž€Ð“G¿ñ¥n;¸¿$à>Fž9ìOÍ-ÕĽ/MByÈêÐ {R¯›fž úžà|çW¿HxØ,¿|»¨§ ¥¡‹œv8ŸæÞ|Orv¢ƒýÀI$gÞûÿ¯Ðñ¾ :¼à9·âê“ tt2[bËWà3ŽèÌÎ&…öJ¹0ì-“8wÈk?±úÿF —P‚ÄF Ú}}ïÕ«wÿÉ·:2P°ɉyRÖ2tlJZRbiZ?lzƒ$¼teåÆ&ÇÖÑìpèð¦as#Ú„j“ë"JÒósK$@Õ@Õgèb+ÖmŠÔ£%hYÈбLkOKuí°¾*…¨FÒß;‰·z—ç†ùˆ±Ÿº|«ƒ¶ÇlÝž~7ítƶô­ ¤¿ß_†"˜E3}G}弯I]¢,OÓ'»ïq­½}ë]ôö‡üOÄ^!®P<9sŸG Ñõ×nô7¸•ŒÒgäGVÞ>ª,¹ -U2‡Ï쾫¾NyæÇ•¤—µÕŤ·—êbbZr¬±Ný&€u­ô'æF –Êö«lé¨4 ´xípqù¯zÿãÏ2QvnZ¦o„SìÒY¬Ús’‡ZUÊý0ÉƬm‚÷[ÖWœ¸{²èŠÖŠVX)›šqÍ6.œë41K|žàá´ ŠšÉö¤oÿ f®¢‹ÛO7·åªüÔ&ˆV -Al²¿Nc;ü\MãAð\qEÖ‹Ëî&µX‘¿–䉙èÚý !Xóé¾öíŒïŒb =ë¦ÁÅ·Ÿ>XC?%4OÒ?AÙ \¦ø îcá`,ŒP”|º—?FãÞ¸;î ÝMŸžJh‹Gà9ïSeHkk¢çB¬·‡aØ^1ëÓÝ~ª±y¿[ Ö¬4 ŽÝè„û+0ûñÀ‡fÑ «Ÿº™ÆcðS<ž*NÉN(M'*é ±—”¿`)%ß 6]gž†B%nÆ/b§×¦›Íx§ÎÀK…ªu0³8T¿yÛî‚šü’"TÁ”¥êâ®Zé®ÆŽJä—›–ŽQ‚.£2wovÝ:À=÷Ã+Oo -‘U¤Eç¯-ˆØ†ê  É×Ôí©3l$}‰ -v&»¢9¤]›M:3”À$éÓ6œ>Üt^-ßW·eoAež®•#2¸Æå„oE{%RçW5-ŒOMKR£„’ÌšœÝÙ›C‘VbŽ¼ Q{Âׄ'G!oÂcµÐLÂ,žp)(+;>2luxl8ŠC‰ºoözŽ×­EkPX¼Öw}DZJ“þðXÚ:Œèœ1è·¢*T“²eý¥E“v£]hGu½PU«+C:©UNV«Ö׊cjIj×ÖÒêNæ†þÿmÕñp'Áò°••`õ™øºÛÿïM1¶ +Š`1`–‘l+I’䜹›$©˜L¥‚q09;:†ë8ã8^ÿ{Õ »\‡yïj.ïï½ÿ[ÿZZPçœÚy{ïƒeaA™™™õ˜¿déÔYS»iƒ¼#Ã]C‚ç|9ß/ RÚ/~N‰½ÌÄÞV”¨î òæ¢ENy¯~JÑ›¢ÌÕ]ɳCHgéùMò¤4ä1€µ¦(3JaVlvÓì…Ùo#†3ÐcþbûÁƒ‡L Ó¬ŽÐŒ?~¼Æ;FÓ¶£qò ×k_¢üCBƒü‚#†jøùi"Vûiüµ~šisÝ—ÎtsÑ tqóиøû…yjÜ#½µ>š9Z¿àp?{H˜&°õEãì«Ð†‡Õ8†k¼4á¡~>Zò‘_´_¨´1Dê¤ '¿k´áš€0¯à?_MDˆFìé+±'ëþ!ÁšÐ°²Dv)÷ðˆpŸ0mh„†ptwrn•1bµW„Ä7\K¶5!þä¤oˆO¤¤Mû^„—68\á!ññöÓøjÃC½b_B*4Lk!2\`â>Dæàæèn¤+YŤŸF¦µWhh`ŒñÛã©vþÚˆp¿@ÿ¡&üÿy¥5T4$VB4s4R´z…}´HQfʾævì¤g«–kÌH¸P”‚¢)†êHu¢,)+ê3JEu¦ºP])kŠ¥ºQÕêAÙP¶TOêsª7¥¦xªÕ—ú‚êGõ§PvÔ@ÊžD ¡¾¤†RèáÔj$5ŠM¡¾¢ÆRã¨ñÔjõ55™šB9PŽÔTjåDM§œ)j5“šEͦæP®”5—r§æQó©ÔBʃZD-¦–PK©eÔrjåI}C-‘"¸!ÿÄì@‡YÖt8dnfž`ÞlþÌ‚²èmájÑhŠ¿èyô9å–¿¯ Ð|ßǦOBŸg}U0@|ÃÕãâ‚0}r5²­FzCÁ–z(¶9ÕýS«*˜'€µ`&ö‘{AWëK*ÊSKbø‘t%„åU¥m"ÊHËÑ6Ãé dµ$ÏRš,­§·­O cRÓôéÕü:[+Fš~¤ãp˜"M™¤O5¨ËQ±.¿zDÚ¼ ãqXnZ.¡d@¶å¨D—W]IÖŸ˜d˜H¯kN"7œÖƒµB5 \ÅyÐ[ÔZƒBˆÞ ÐU`¯Áñ76e®;š†üªv¬ß·#årÒµÄÊÌ͉uñëP3ÇÕó+5{ÏÍØ—u8§:³$1 é©1ü$eLIjEy‰¾Z]©ÜÜÑ”Ã`KÓ"X*ß.ŸEÑᘽCjÖé¦U¸¢Š×—1앨ò„:´•9{æè õEt6°( ?®8£1Ò·ü%;¤:CŸ &–JÉØQêYÈœR²sªÓõ‰{µ*i?8ìVzšrÿ³ýä¿9üÉÜŒ… \\N/¸~õÌ™«·Sx”ÚN‰GÞǘƒù} `¤?{Å¡ËÕ×w6mª¯¯9„¡úèMÚ+«]Ðlf¤ÍŽq Z©ÕF{!/¤­‰¬jŠ¹Ž.3*Døì!–»+Šv—I2Ù6…HIR—_˜6‡lZÊ1¯Œ–t-• wÛ„˜§ q`-NüöoÐYà +”g]:ÿã3èŸÕî@ç™cÙ«ÝЂÿåÑá‰A(†IÕu ¨¸¸°¢òÂw×sÿš›3<£C¾æà8ÑaÂTf®’½!ª¿7ù/@Ùjkq†Mx‰à—Ÿ—Ÿ—‡.lÙ +e~œrÍN½-ó ŠŠKˆiM-)Ð +òKËvÔ¯=ƒ˜ïÏ/›Å#¯_¯˜¨”¸Ü¥ˆ‰Mió"{ãõã™_Ož2k8¿-¨Y±7½(+?1)©©)ϾÃû,ž\š?Åqæ܉f]¸w÷ò¹Ç¼ÄW+Y‘P€£ÌE-üÅåEçÅ£T4;Ö5ä›e“VLAÑ(¦ ¥(­(+/“8'-59zoÜaþ +º²åÛ¦»—ž!`˜6T¸Ó )_aªÿý±/Ô·PóAá1“ÑÌ…“·6À'Ê1Óç_}øììÕ»üutÒsÛØ‚T”[AœY+öú ”Íd=Ø´¾cß¾ ¬nC='ŽÁñEÙE9ȶçØäü*@ÅYÅ©E`© ‡¾¨°élQAnAùo“UœQH<„²r2³IM˜O:3±~”¡¦» 5EwÜïÓ;*q £e Ägdæg#Û ”‘•‘“m““Mð™Ô }&^jƒÉ#53+¥Û’ +–Ÿ—mSQ’UL„-Ì/*`T®ÂÆZ`‘—âéï|N"ê+‚ö{ŒiÉ#CzIR>;•¿¸ÜŽã ÎQã±JäTíºwñÞ%GÂ/ æîýÝ»JIÕäÓQnnrJTŒwÒ*´­®=Ô{]``´l.¿|qýøÒéêÊþyŽnh,ãtÎã‰ÕÒ¼Ú|æERvBn2bæù4œ¸pöð^‚;šˆ•À;ƒíSLV€á&àð§ñR±FWɶ­hìÒ©¤? 5“èf°S@!•$šT‰&Å ¬!N?Ÿ]$¶y$Å»œ‡ŒÂyúÅÝOytmÕ±±;ÏïÞºd;^¤ÆÓ©fZÀ~øÁ8å3žó\ݾùŠÇvx q`¯¼ˆêÓwGï‹Ü´0® –:©Uq‚ÈÔB'aM­õ%Aì$%c˜XÈ­hœ[7Í@îë<—¯Z2¹1ã”øsèŒ;C/õetqËñ¦­ueU¨”1¤é’Ôé$²ÒÓæºèßq…ººôCÅQÓÄ0G€µÐ±Í•–û§X~\…¬4-’àñ zÁºÕi‹‰Ãúz½ø;Jt~ûå#Âþ}UgÐOè¶wá’¼Øâ´Ýû %«ªÉÐ%ÕLP²÷<÷.¬ž‰f¢yž^K—:"'Æ‘t@ô‡qêïÐÕêóõŒ,°­Ø,Õ bç!+Ã}èªÒ¶ÜX)Fn‘u1V²ÈÆ~x3ø5zwKK¤'mê„4¦SG·Xk+*ÖpÀËlr[n“–HÒ9™Þoˌ̷“ébtå:îÑWGæÞÁßØþhâ·€v€…þ'„0XfS)cÔ©U@}z ßHã=8_ù÷”&u&ÓÿÎדMäÚ¥p`+d=Ñçï2£$˜¾û{Kä`¨/þ¨ç·*ÛHÝD¡ôôG0‚t9º–HGw{Y—ô‘{ìh<¿Á#àbàG®Ð~üõ:Š‘:Fá?mŒÉ¸zƒDDâÄšz™%ìM–ºÛâCãsbž¢ÏGÖ‘sd +ч†s-y + ×J³“‚8šhö-‡1;àx<ä'ðЛ J“I¿Þ÷á½-€ùÓ¸î=+±Ó_‚4 yI~(a¾Z +8zÐ@ÿt÷åËq·ûð8þße+ÄY@Áã‡W¸8O›?šWa¥@Zèk£Äl4œ#´Õ…@7ã;@¢A›j„û<Å]€1Ë&=3+¥3ÆÉ­‘f ïpÙ5ÃN´UfoKaØò)†ìJÄúnWm™T(snvàúØô(”ˆÒòÃõ dˆ( FQ(.'(ƒ9.>çþŸÆð ¶ÕFcr`Cß_}Äã9þŠ9kŠ’@zô Ù7çðËÝMÇÐæé¸Û¤fåýï‚ +- ¾TÞ¾æ1wöÄÅöHl#Ú*ˆ¹é$AÞ/ñJ< V*ËØvÓœˆÝ1RÄʲ‡éôlÆÁ’”kˆd¦6¦±íòÔ?߃œ`#+ ºò²]¬Ä±ãÒدÇC`½b¿L&™Ôu’LXûob¡/­Â]„÷=Û/ .p¯e”Ô‚Úô>ˆVÁ°÷j.½"³0•Œ9)Ò•—U˜ÒÍGIBQV)bJKõ¥ÒUUQV ÓNÝx™4Ž3z)!Ñ(†ú} ´ö÷ׄø·"æ°3OOËÉB­c¡””‚¸Ú€v-I)úèZ)CbÒõ„™(:pY,}oA«ÄÞâÛÒЧ•Æê2Ë‘mey™ +r sÉø@@'lk’SçoP±aâXĽ2©ÊÆ{@-}ËåÔPµ?š•¸0:9+#¥H÷f¥ê|THÐòAÝö⽈¹sbÍ2ÞIé^X´’tD]ǸæÙÔ)—¿TßD¶^<Ë°{-fÌñwBŒ³gý©K·ÿÁAÇ2ö¦¶ÉòÖ(Ë&Py +ìBèGB³KL½âÂæ–š]Ö¾òê9Í=:ý‚öŽ4¯ß@Wè2ä5VñìaG´`íR'œ¿ãþù`ÂöÆâÙÆ“¿yóðÑ?Œùo&hk­Ÿ +ðö{qhÅyïõ¨q#â÷<Ûàn¿ƒüUtµödÃöš Õ¨Œ!£R +éÖ³sÒÒ/w ŸJΚM¾÷;t¸:ðOÑ-¯ÂEù±Å鲞o\M+†E«åj^à½ÑäÇÅ\£š²N-™^vkÞBÛr&3Ãë`ɳa÷Ð…†£7™‘¯”rÑ8ÞroLü‚g÷ØMœ`o7éÑ[IE‰L`™Âª`9‡š²kö<™xr0!ÝÍn(þ wÿ³|þ¬Ž6ˆf|¦4‡dú¬é*Ý•N¼‘ð;#XTÿrûÜkôÝu¯nìHŸ 0€Ds,‰æ:b5˜'K–yé WÕ›ÐìmÙÇ2ÊGL™^WÆ£ÒŒ’¤‚µÅÎ%~ˆ1{ÑTÞm”)Ÿãç2D‚›¦®;“ô$íÚ0¡FÓýd4ÝCqÁ=¯-Ú)ùA1ôKÌ`æåPðìÛ¨yWãUsJ….jÌÈhÓô ´¯ªaßÎÝå»À°ýÄÍJ¶o»$æVàI¡Ü«;Žƒ†:8 êpïÕ¯wïýj¬ÛF÷ëö©nÿ‹ïZjV¶¾•¦W!íCÛâ :ÚPÞ|y; l¢M難·¬/—þ’€‘§RŽ“íí ô£™ç‡ªÝWÄ·6Ë¿ûÍÊÎû +ìKÒ‹áð(™bðsa²ô½Ħ²î½XŸkiöFÛ +qª™)2ÙkZlÃþ³»·4 ¦~×j_ßuÒöþs;ë@6ìZãG¦¥6èó+ŽÏS{£5Q¾K#­Ý¼ +1¬» +ŽÑ.gÚå»òÖ[ +6"ÜD"œƒL¸+D8OS!üÈÌPLïJ  x·oÞQº@5uë·D•‡£N+s¨™ü&·„þÞåüH5ëçÍfZ‘Rs:‡ifH¸ÔõÍ@`Áúí?@¬Ý?p72üþxbßc'ôûb¡'~ã?JÝvpIÀ}ŒÍ½ùžäìDû“HÎ>¼÷þ_¡ã}txÁsnÅÕ…;'èè2d8¶Ä–¯†AgЙM: +í•raØ[&qî×~bõÿ.¡‰ ´ûúÞ«Wîþ“oud ` >’ó¤¬eèØ”´¤ÄÒ´*þ~>Øô7HxéÊÊMŽ ¬£ÙáÐáMÃæF´ Õ&×E”¤çç–H€ª'€ªÏÐÅV¬Û©FKв¡c™Öþž–êÚ;a}#T +Q¤¿w9nõ.Ï óc?uù,VmÙ»=ýnÚéŒmé[H¿-¾* E0‹fúŽúÊy_“ºDYž¦O2vßãZ{ûÖ»éíùŸˆ½B\¡xræ>¢ë7®Ýèop+¥ÏȬ ½}TYrªdŸÙ}W} +.òÌ+I/k«‹7Ho/ÕÅÄ´äXcúMëZ3èO"Ì,•íW%ØÒQihñ&Úáâò_ÿôþÆ?že¢ìÜ´Lߧؤ³Xµç$µª”7úa’Œ7XÛï·¬¯8q÷dÑ­­°R65ã +šm\8×-hb–ø<ÁÃi5“íIß.þAÍ:]E·ŸnnËU3ø©;L­‚ Ød1~Ævø¹"šÆƒà¹âŠ¬—Ý34Lj±"#~-É3ѵûB°æÓ}í Úß :Åz ÖMƒ;Šo?}°†~Jhž¤‚²¸LñAÜÇÂÁX¡(ùt/ŒÆ½qwܺ+š>=”Ð0ÀsÞ§ÊÖÖDÏ…&Xoð½bÖ§»ýTc=ò&~·¬Yh@»Ñ ÷W`öã+€Ì¢A/V+*>-t3Çà§x’7®©ÛSgØHúì"LvEsHº6;štf(IÒ§m8}¸é¼Z:¾¯nËÞ‚Ê<] *GdpË (ߊöJ¤Î¯jZŸš–¤F %™59»³7‡"­Äy¢ö„¯ OŽBÞ„Çj¡™„Y<<áRPVv|dØêðØp‡ußìõ8¯[‹Ö °x­ïúˆ´”&ýá±´uÑ9cÐoEU¨&eËúK‹6&íF»ÐŽêz¡ªVW†tR«œ¬V­¯ÇÔ’Ô®­¥ÕÌ ýÿÛªãáN‚åa++Áê3ñu·ÿžŒ1È endstream endobj 497 0 obj <> stream -xÚZ XSgÖ¾rsk-¶Æk¡KmÕ¶Z—ZglÇŽK­Ö¥¸/ˆB€°$! KHdÂ!$!awQQk]jµ­uì:m§ÖvÚi¬¶ýâ\þå» ˆöŸg}‚æÞï;ç{Ï9ïyϧ"$„àp8F®Z1ÍäIÊŽ4å2éòçÈ’cÙG/ù'|Op|OŽ$|‚ Ÿ0Ø7&d;³ûö+·î“üþ 2b?7?Œ?‰qøãéìÑ7ˆà\N)çÎ5ÎS§ÏzfÝê ÏNž<åU™\­Ä'¨D3^zé%ѵ¨ï‰h¡X)‰—Š&â?¤‹“eò±T5U´F,©Ä¢8I²Xôꊕ‘K"‹žY±N´X,+¢“E+Óv$KbDË%1b©Rü¬(N¦%þ"Š‘Ic%*‰Lªœ*š¯E‹”rqŒ/gƈåìƒ)"¹X‘"Q*ñŸE¥(^-U‰cE*™H"IN‹eÍãïãdR•H®áç)ø Þj¥L©RÆ($r•[\¹pQÀGUB´Šµ«”àÇ"Y~3V“Æžfà™*Z"UŠTâLkg‡X+QÊ“£ÕØ.ÞJ®ø]HSJ¤ñw¬O)ÄñÑŠØd±Ò¿/‹Êó‰:Z.OVû×Êüo Ø—¨”â丩wbðŸE%*"œ+2Ñr›-C¾!ÿibRÐb*5;hñgb>ñjðëœå!«ƒÖs¶ÑTWÁÓÙ‚àñ1‚xˆE|å‘ÍüðÈ¿FWðçð/És…Î6ö«G7‡=f +xÚZ XSgÖ¾rsk-¶Æk¡KmÕ¶Z—ZglÇŽK­Ö¥¸/ˆB€°$! KHdÂ!$!awQQk]jµ­uì:m§ÖvÚi¬¶ýâ\þå» ˆöŸg}‚æÞï;ç{Ï9ïyϧ"$„àp8F,˜??bãäIÊŽ4å2éòçÈ’cÙG/ù'|Op|OŽ$|‚ Ÿ0Ø7&d;³ûö+·î“üþ 2b?7?Œ?‰qøãéìÑ7ˆà\N)çÎ5ÎS§ÏzfÝê ÏNž<åU™\­Ä'¨D3^zé%ѵ¨ï‰h¡X)‰—Š&â?¤‹“eò±T5U´F,©Ä¢8I²Xôꊕ‘K"‹žY±N´X,+¢“E+Óv$KbDË%1b©Rü¬(N¦%þ"Š‘Ic%*‰Lªœ*š¯E‹”rqŒ/gƈåìƒ)"¹X‘"Q*ñŸE¥(^-U‰cE*™H"IN‹eÍãïãdR•H®áç)ø Þj¥L©RÆ($r•[\¹pQÀGUB´Šµ«”àÇ"Y~3V“Æžfà™*Z"UŠTâLkg‡X+QÊ“£ÕØ.ÞJ®ø]HSJ¤ñw¬O)ÄñÑŠØd±Ò¿/‹Êó‰:Z.OVû×Êüo Ø—¨”â丩wbðŸE%*"œ+2Ñr›-C¾!ÿibRÐb*5;hñgb>ñjðëœå!«ƒÖs¶ÑTWÁÓÙ‚àñ1‚xˆE|å‘ÍüðÈ¿FWðçð/És…Î6ö«G7‡=f Ÿ~í±‰}üxúÓž¸ôäÊ'ÿ&H …gEωŠE¿…2£ nÏY´ŠóÛ­?]¸Œnùþ‡†¦Â2³ÝP©±g´F}Ž)×b9•Ê›¥]¹ ^—O­û)ãCmØ[¹ ™@mJ\*X ë»Í&›Á–]ª ¬Õ™ô^Á…ÕPbph« ÕàûÎ*W[v‰å šJ v­Ûà†J¨´9*lŽ"´P_òny.\‚¯ávŸ¼9µ)¾êŠ¥®°e 4S]ûÏ Àþ¬âÌRy¶ª ²Ìá*³[ÐDµñÀ; mÍ™Õr0€Ñ’›—_”_TX”]f(6[óŠŒÖ<ȵR¡Hv;˜^ÄX rÁæp­Kç8Ái³U¡q¨6,¹Qp°oÉí‘täTñ Îvf ˆ€ êdxWnëæŠÜ Zëꚅഔꫡ¤àg¸±û‡Pˆ£ÊZ @@ -2408,56 +2409,47 @@ ddÔ€ °—Û÷gžÐŸa§ÇïÏa¹Ñzh[CŠ;¦|žc™Ý\”]¢)ÕÛÁNUsŸĘ·dø/õ¢Ç<Dâ,Hd»ë’þ€Ýã>É5²ÿß³úîœ 9Ø#=¤R3‡÷Y°‡I"ÿpe="'á3÷ñú½ng4` €S.˜,Y†­ª¨Üõ YYN…¹ÌbdzJ¨Î‹ÙŠã¯È`_Y âÃ'5{¿‰¥ä†µ ]$P+dõÇ…h7NÚ¡=ª]Öò¢°*ü&¬¬Ù¾?¥MyPwNC›«ç(õÞpÖa5ÿ8ŒÎiJ3”Ä-!ïÕ{û§‡»‹d@õ»Hô'æî-ü}íúM¿ÿ&²ß7Ñú ³„{üú¶ÝÊÞ„™d¦’é )0št£†½è «¿^ËÈæùôw&¹‚y!=ß6ìK¸Ë>XÉøw™† °K4Y€¥u‡å+æÛ°ïûñ=€ðl†‚:ŠùзzúàÕ2È*ÓÕè""Ã"Ž»Ëñ±«Ã¡›²ëm÷4Å^ß 1 'Œ™ÀŒ‘X2ÔÒ×bƒÙk°!4è+dΫo‡}¡0i3AŽ-d³×€Î‚ÆALì²;XŒweTK¬K|¾ `^1½–!¸“†ƒ= ·’†©Ì\òH”å‹hï?3{g¸ƒØ–A%Õ«˜‘Œ’!‘roQm5ì²Ó Ò4¸ÅȪջó©PT„‹ñ†OMC³ÍÞRÔjõÔâ1{WšG²hÅŠ…f6äfcjA»J -)ü¦‚RÈ(f>oáù´×yv  %£Vj•Yþß<8™çV¶Ö·”ºá6R‚”hi ²B©%#/O©Ëè¸|þüÂ6šKmMÅmÅnöþmW–;igj±Ù?ïÏç]YqþµÄ´ŒÈ<é­–‹ý¯ ¶±¡$«Aª’™³`;¶±ø—‚[£ù¹>­ 3@oÊ+uº\ÀÂߦ®¤øó¿#¯ŒÜ‘Õ±[¥IúLȤä ÊfA5ØJ›ÚšÛvØ ÂP«¦ø¹ç×íMßû`Wu×áö}6vŒðÿGh†Ç·ÄƒF{<R0"¸|ÂÿŽ|àƈ~g9òÆȇ|?Žù?Dàéñ +)ü¦‚RÈ(f>oáù´×yv  %£Vj•Yþß<8™çV¶Ö·”ºá6R‚”hi ²B©%#/O©Ëè¸|þüÂ6šKmMÅmÅnöþmW–;igj±Ù?ïÏç]YqþµÄ´ŒÈ<é­–‹ý¯ ¶±¡$«Aª’™³`;¶±ø—‚[£ù¹>­ 3@oÊ+uº\ÀÂߦ®¤øó¿#¯ŒÜ‘Õ±[¥IúLȤä ÊfA5ØJ›ÚšÛvØ ÂP«¦ø¹ç×íMßû`Wu×áö}6vŒðÿGh†Ç·ÄƒF{<R0"¸|ÂÿŽ|àƈ~g9òÆȇ|?Žù?ûéÓ endstream endobj 499 0 obj -<> +<> stream xÚ­x T׶v1Tu!8[@ÇVp@Aq DDdž•Iæ¡™¡A‰C®yû^£Æy@PF™AdTfDœ0q$jŒ ×x=Õ}Þ -½w%ÿ]o­·Þ{«EõªÚç|gïo{ŸV¡ÔÕ)O{?[;c÷¤ˆ„µ! ²ùŽ©!qÒ0á‘ûô1”ú^C=€Ýh‰Fö+$÷%l(ÍO¥x‰ -?M•Ÿ®Æsê;´T§Q”JÐDr¥ÞŽ®„«.¹ˆ×L¢ÔUThkß…¦ Íl¥QÒTiFD¸~xHjˆ~XbÒ–iTtª¾a˜‘þ"³…fóÉe¡‰¾}bbT\„þêÄ”¤Ä”Tib‚©T_@ªÿ鿾“µµhMj¬Êg”Du†ÚUcõ…Ìrj•8€€`(¥E£ÆSS©iÔtJšIÍ¢fSÔ\Ê2¢L¨ù”)µ€2£Q‹©%ÔRjõ9eNYP6ÔjÊ–ZCÙQö”åH9QΔ åJ¹Qî”åIyQk)oʇZG­§6P¾”åORËU)j–Šªµjj’j¡Ú85µ5jáj¥ê«Õ¯Ð6t£Â|Île1ïD_ˆ~eÏiŒÑ¸¬ñtŒý˜c~לªÙ¨¢uglò8Ýq§ÆwLX9aׄ¡‰¦WOü0iã¤L>9ÅjÊnwœÖ6ÑÎÖ¾­ó¹ÎF$‰úuä#¡/r…“ü1¹ §IÕœDý…|¬&'a6HèfálÌŒÜ&ïÑÈ„QˆåǸ -o¬¦vY+d‹Ò&8FG‡§kÝ…DzpïÈÃ3ƒ¹ƒ…=euµÕ¹õÀ¢¿bcž§ßk -kô8g+Á!Åkƒ×†À•1Ò93«Á¼36|/øu¦ @'´œl*cJ.4”^)ë*8ó4÷éáp›I–§qw>Øã•iŸé˜á‘î—æ+‹HLNLŠËŒ&0¢:Ž<Êù!çqQoymymMNÝ( “Âhú3 ©AÌŸ`øv]Fc)ÛXZS_Ú]Ö]x'çiγ#à;NBÈÓ$´-׶&Å… þ¥tSܦ¸¤Äèäèd—HÓï{I÷á! dwV×T×´¹,ΖàÅœ xæÕm¬Më„ÛÐ|øbvÍ™ª¢ŠÊÒÊÒžª'õ¨[¹Fw¥›S¨OšOÚÚ,O`•FHƦËõ;÷;ÿ‹Ôá ((º×ø°i` ]Èà tE¯Ñô~´PŒ-<ÞÑp™ >Ï‹uÛ -/64Ô UäTçVi€xžp˳գÕ2ß°˜ÆØÚÛ:F/¬Â‚qÙì›XÏ´Ÿcë¾Ú}Uü20dÇ)”ü1¹§ÔA3xþ34Sù?ÏPNUŠñLÑ8ùäv^Êñ©LZD+eÌ8þÄÅ»H%ŸÎ8qnçy¨‡Š“ç JŽÕ@#”ï,Ør*ãTê¡€ˆmÉq‰ñ™Ä›ìÿÐ -Q0ÄJ9½å£ÕEbUX\Pr¼šÙ›±åNÓ r[R\Ò§eJEúŠCÆ¢áè‘|/¢‘‘hÄX)£Dä)š,Ë)LÞˆ £¼¤Nîf’;áÁX~I‘˜· ß ^Fc#‘|»RD“¨'ËÛø®SA#+»\¢± 3\3šKž úš ùdÆ)§3h:òZTØUܕߕ׽3‡±ÆI¬I˜¦Þ#?"ä¡R“Á=‚-Æ +@’š¡‡C.#5@3` ½7¤5¬Å£Ò*‡=,zŸý¸¶«¯«¯èüÌ¢T<©ã Óñóa†{G0¢(æ5Üʨ—ÖEç®;ø<ÎÑÕÏÕÏ\6‹MoØžC,_G£,æÜI¿Ò–çV`»Òi“Ï‚$<Xå - ½˜û^¥¾ ¼‰fèÎiÅlÖ<ðgáXÓ’Œù˜YƒçÙb£h¼ ° `ë,yiør.šì‹–Âôîo9Ôr¨ýDgKœŽÇEèo6ÌÀÂJ绎ßž4ÐÜ$iE“ÚЄ×/ú^öý^‚Xí-¡§(T8@ký‘ñ[“ß°þ%ìB’ìõ'_¡÷ Z Ȥiß!ã·w·˜Œrd -Ȇ~9œÀáe Ú'QßO#;‰á·È›«nÚ”aÀ³ÈHÂSˆØø`µK \ Üñ˜8<•,­ðGG´‘Ž\æó™4ŸVæ1H•/¦ù>¦˜|–}@@ÆÈ{ä¹lB£ZÆXéa›¼4s6ˆñx0©°°’MN4/I.£±dÜyýòÆ«þ¿—!šˆCß®®Œ+í›/§^G&ºvEv¹öÇìŽÙ\x`q(ÖZŽµ,æc‘žc ¥øsÀö€W5ãÏ~÷ÆMóG¶€¦ÒÏC³/±ÈTî/€ŠWÜÒF½£œ´d°xX•6dȆTilõOßY1È@nKË }Þí‘OV q†°@jî`îàh€5Éá)€õ‹ò¶:¶:Þ‰yEÂhÒ÷HÍ' -“ŒI™3h»â'3ØšÎb’z"›üKü˼OºÞylá¼ (;®*®rk'|HåÔ»²7eoï_éìîì+º W¡9½2´24Û‡”eÃtð¹l˜Ñz g7gWç8§Ñ²›ÍצsïàeéãþGׯ½¬GcæYDôH(ùźëë®Û”ÎgpÝâáåæéjÉî$5J”÷Ûé§ÙOòÑ„2´TÈ<(‘ÿJ£‰Ì-dEfò<*›¤—¤}¤UvS¤sH³{%6&›VϘ=7Ú0Ðj­§[’#¬uÙ5QU›;I Ê~SóKÕ/­û{¯÷ö•\Ê£)¿/‚—9ƒµ,š% -ݲ5838sãnXnç665¦õÃøpúMÙËŠŸšîô\ºÚr#ï;¸¥l#š±¤lá)3R&U`^ìb×¥ÎvKü0MF -)œ‚~iW̹m{Ûv(Šì}Ô1$no¹9° v¹“…““™?Öôâ¦ý1!óÍZœZœ„¸õ•SÝåÝå½Ýýƒ$riBäô4(a¦ÐØ‚Y›-·-Èš-þ’ñD“ç÷ŽŠ†×H:‡5Ý¿GÄHõôû²·¿5Üïjëìè-臛в¹"¼"üôZXsÒ #ŒIØ,\HØ\|Åg¥s]Ðz éhÓ‘öœÞ"Í9Æz§íظ#xO,ç¼°¦Ké7àÙ7uK -hQR»‰Ôn´ÿ H $÷l¨ßPg•k†°0v¹órgÇ…¾˜ñÃl -Ö”såsoÙ°·l~‰BãIõi\ TíÈK=—z4¢Á:ÌsyøaX#›»ƒ°B­áÙÕÞ+½×Îß$0åÜ,e÷#Ü.jëjëªy™&¡mŠA]ô%“‡&Óx'ùGe?Íë.)—ÔŸì‚ Pÿååͧ»éPü¡ðoÃÆ~“úðE’ÏZoŸ“8,N«‹C3häÃàô‘þ «4¤PqRhø¦  ‘ƒO°x†¨r{íîÁUGO8¥ˆÙplÃÁõ€'€A¨¥ùæaäxÆ÷1¿‚‚вØÚMn qÒX©4#a]~hK«µ"ȃÿ™¡è¢Ê5þ¾— ɱд²_ûío~ Ä7O’ú¼ë|ê–á±duã!ûc¦§}›• ÐÒP÷ª<û«Â½•Dòà÷ª{ßÝÿ¾úïB—vm{kÒuNw$O‚ƒ9èι|±öbíÕ¢‡§Ðâ­ºÏv^ͨUÈNÇ@(XIÝíCì‚M6‘†y8..N»—Yt^þŸtiÉmÎi:_U•_SX¬Ú¡v{QBQ‰Pð¯,Ÿtÿ4ßøˆðÄðÄÀíë€]!'â‹â‹·]„Î|×F–Ìmt§ ¥æ#îÄÍo;H<~”Ýhòo²?·Ày‹{´k´›‡Ër6‹9}ãdï±®ã]Ç:Ž´m;ÚrøòÑËGZ¶ÿA ,™!>>÷%/êîŠk¿¿ÔÙQÝYÝu¦Ø7Í~†z´gãr.;…ÒµQ¦ tÄ2säÊ$4ñFü¡Tr"Ûš»«Š ÿØټܼ#ç¡’½’Pì1] -‰;6¥n’eÅA¤0žJ¸öÜÎoikm©úábéÑ^ë’ħ$Ø O[koâp?:J‘ŠíŠð‰‘ËËû·Å¼þ¿Å[Ñ ßA -UñÓ2¤[…Ö Ž;Zí>nÛŠyÌ ÒYìPæÐÈÁMr ^ÊGÑ8¶›¦žŒÊÙïÁ„Ô0…ÜEðÿ~oίÅOjn‰«ï4´µV“Ov4Cef®ì\ò‰»ý2í°á°ƒ®Ð¡Ì–/91pð -Ô‹áYêõÀú€z§³ËÀœÒÂœBÝ\½ÌÙ]Ìî{²«¡C/zæZƒ¸gxE{F{zyZ²_2¹(ˆÆzŸü.,1÷ýùç¾×Ümèl«i©i?Ó— <3'9'ùp9 -Û'ʳ„þo¯@«Súü| R12ðÿ‘ý¬èÁhr4¶·Ô´Õtœ¹ -åPþ—ò¤m– -Û(ˆ¾Š\†®qpaWÕ¶’me©Å±EñEëËlkVÕú•É -R v”@%4œ®,/./l>Ñàîöþ¶#¥ M›ÑŒUó0CZUX”è°ÖÁKº -€óiŠ€«Ïüîm¼u6ùlòÑXˆ€õ›‚ƒc‚c\2>6|¿õ9ásÂ77 Å‹D/‡RÉ©}¿ tßíª|¿“ ›ðzHƒ‹†¤Ã›Ïl>óeÁR| îh‘‘!]”O8BŠcÓŽöÓF žˆ7c×Ûm„ÞOV¾Ý±v/‰Á2×£>¼.ìZú œ‚}¥K~{ö‹8‘G†ÿÎÈOíÝzRýiš3l¾Íf·'„Šaé9ÇæÀæ€þÔ'¤yé9Ù]Ú]ÚÛÕ7È%ÍKÐhó²Uc f®21ufÌÂ`kq°µ¯—Wù¤{kä×ôZJ4í&¾¶Cä ¼™álì|_9íì',ÃΤ½†›»ÐØ­ÈÚ™—ë¹#G‰fùmÂðû>½o¯œ­÷F.Ž\”d³Ù‹ÝÃü­–nAï×Ïþ‚Ô#ùº¤¥ÇMÃîX7P?Μ̹ÿѾŸà û£h ÿB8}_ر‘AurµAäy ¡a3ÖÿÕkÑ)EÅÛqÈ[i'pïçÛx¾‚Æëˆ^+Í° o6ÚÂïR*•=4ZÏM½!nC#oWbI¤c„o¸Tá !è@ÈQOÕooÜÝDzÎÜ«õäó ‰ä.ZU÷£þ‘‘²>ÚZmàêI¶í{ïìùi÷ó=7v7¬âkÉb†ÜN;M¤•…ŒÜR~§éÓÃLžHó2fØiøu*Ö …_G«H±à$H‰ô$¬ºh\úÅ£ãèÝ/Œ2 DÓǨ¨M -ÒÒà‹¦ü?ÜÏj¼ +½w%ÿ]o­·Þ{«EõªÚç|gïo{ŸV¡ÔÕ)uë×zú:»'E$¬ IÍwL ‰“† ܧ¡Ô÷êüëFK4²_٠Ѹ/aCi~*ÅKTøiªüt5žSß¡¥:¢T‚&’+õv¼p˜ \uÉE¼f¥®¢B[{ø.4]hf+’¦J3"ÂõÃCRCôÓ¶¤H£¢Sõ ÃŒô™-4›O. Môí£â"ôW'¦$%¦„¤JL úRýHÿõ¬­E«hRcU>£$ª3Ô樫/d–S«ÄC‰(-j5žšJM£¦SzÔLj5›2 æR†”eBͧL©”µˆZL-¡–R˨Ï)sÊ‚²¡VS¶ÔÊŽ²§(Gʉr¦\(WÊr§<(OÊ‹ZKyS>Ô:j=µò¥ü(*Z®J©P³TlT­UƒT“T ÕÆ©™¨­Q W+U_­~…¶¡ãæsf+sˆy'úBô+{NcŒÆe§cìÇìó»æTÍF­­;c“ÇéŽ;5¾cÂÊ »& M4¸zâ‡I'ýcòÉ)VSp ¸ãÜ°¶‰v¶ömÏu6ê$IÔ¯# }‘“(œäÉh8M¢¨æ$ê/äc%ø3Ñ8 ³AB7 ¯`cfä6yF&ŒB,?Æ Txc5=°ËZ![”¶0Á1:8:8<-XÛè.$Òƒ{GžÌ,ì)««¨­Î­ýsð<ýFXSX£Ç9+X )^¼6®Œ1ÎɘX æ±¹à{Á¯3e:¡ådSÛPr¡¡ôJYWáÀ™§¹O?€ÛìH²<»ó@À¯LûLÇ t¿4_YDbrbR\f4Õ)ÀxpäQÎ9‹zËkËkkrêFa˜üFÓŸaH bþ÷ƒÀè"0KÙÆÒšúÒî²îÂ;9OsžywØq:@ž&¡m¹6¸°­0¡(þx(l€ð/¥›â6Å%%F'G'»DšxßKºa »³º¦º¦íÌ-`q¶/ælÀ3'¨ncmZ'܆æókÎTUT–V–öT=©GÝÊ5º+ÝœB}Ò|ÒÖfy«4B20]¶¨ß¹ßù§X¤/`ðø@Ñ@ѽƇýH[è¢@¡³h,Òx¦÷£…blÉøãñŽ†Ëlðy^¬ÛVx¹°¹ © ¶XX¨¨"§:·úH´Àó„[ž­­–ù†€5À4ÆÖÞÖ1z`ŒËfßĪx¦ý[÷Õî«â—!;N¡äÉõ8¥šÁë🡙ÊÏø©x†rªRŒgŠÆÉ'·óRŽOeÊÐ"Z)cÆñ'.Þå@z(ùtÆéŒs;ÏC=Tœ,8_Pr¬¡|gÁ–S§R%@DlKŽKŒÏ$Þdÿ‡fh‰‚á æPÊé-­.«Ââ‚’ãÕÐÌÞŒ-wš‘Û’â’>-£P*òÐW2 ï@ä;xŒD#ÆJm$"OÑdù[Na‚ôFLå%ur7“Ü ÆòÓHzˆƼý†Xð2‰äÛ•"zœD=YÞÆGpÊY1Ø…äm˜ášÑ\òdÐ×|ͧ 3N9AÓБТ®â®ü®¼î}˜9Œ5NbMÂ4õù!•š îlù0Y’Ô =zt©šé½!­a-•V9ìaÑûìǵ]}]}Eàg¥âÙH_˜ŽŸ3Ü;‚E1¯áVF½´.:w=ØÁçqŽ®~®~æ²Y„hzÃöbù:e1¯àNú¥æ°‰ú~Ù1H ¿EÞ\uÓ¦ «žEFžBÄÆ«­XjàjàŽÇÄá©di…?:¢täj4ŸÏ” ù´2Aª|1Í÷1Åäë°ì2FÞ#?ÈÅ`Õ2ÆJÛ䥙³AŒÇƒI…Ý€ý€”lr2 yùHr%ãÎë—7^õÿ½ ÑDúvue\Éhß|9õ:2ѵ+²Ëµ?fwÌæà +Às‹C±Ör¬e1‹ð{l(ÅŸ¶¼ªöë¼7Æhš?²4~š}‰E¦rT¼â–6êå¤%ƒÅêô°!C6¤Jc«úΊAr[ZnÈàYö¥ÓÙÚøüº|²|"#˜aa?d,÷û³ÑDþ²A:Mx\3{ 7c­f¬Ù„ÇÇ=N.cJ‘)­ìaP‘„–Ö¤àTË͉Kyˆ„žD`¶lˆÃ:qäFåŒÛ?WNc‘ ƒ:F!g3Ãs%Ø…ÞÉ`#‰úïýçò$˜^ +#ÍGûO Šÿpèúþ&ö[2;-Q—i£žQssÛ w$â±2<5‰÷0Ê ‰z'þ0µ¼¡éä!ý4W|€áƒ%x¹à9‚`—BpÎ!Í0}gúO¹,8]ð¤p¬f‰Õ-cugl@F,^ +Ø°CÖmøz.û¢•€f‘€W#•{,R¹ÿRíF3»ÑŒ"’ÈžU–ñVIêg‘½«z­ÏÏ&1<7O ÀcÉp1µpüÂÙ,†Ä^U:Ýuú.æÞ"ƒ³H\´Ø¤uíçÁþÁþWeïG“¤C>"¡—þÛœsÒ°x#Ö +Âc]M-,Lcfþ7ç$>W4p(Ò(‘ÁH¶ ‰^¡ebò×€¼¥ü/üÞ$SÿÏñï9´ŸAÊ÷4rcð.ùTôu?æÚ&F{±‡/MÇàáÓ Y0C0°¥!².ê¬'XÀŒh ;/;/ÃDÌô–Ì¡‹ÕÈýzLèxLaÀ[rк³qKMÆ…äÊèRi©cƒQ÷š çSΦœÝr.+/+Ïy¨€½mí wÎ>¶.ínßÖ¾­9½.å:š§ërÞ=ÇóØÚc®Guƒ _¼b±e‰ÒD°Êv¨ñªòºµvÈëµÏõ€²ðŠ°S°ž…űv.\|—¦` +°&©î…˜ê`±•¨1õòÖÖ/Ûvö|u©×­~uïçûH…H=Á¼ŸßªJ$´Í›µ1¦Gâ™lLóó\,Q<X-¡wŒvo$1CFÜŒ=Ä.ž‹°æÁê³~u~ ²«pÚöœ¸Ö*Æë +/{Ž¨nýb—øŠhWνkw×1Ñh> s@Úµ?ÿðË“>¤]‰V xòåþÂÀ«ÝH-éÌS,æ@ËF£áÀÈsGÓm-£”,vÀœ¦CÅ$ÕoIÔÖ–›Œ>ub”:##—á1¾$w2„¡½C{þ.–ÑØŽQ ¿ßhºOñÀËHªü°ï)ô}ý£nœB,(ÇÇÐiè“/E–¼Ê¹¶sg.Ÿjb00oßüýfÍ#¾ºã'ø2y‡íå;#´sÄk*hdÍ š¯’‹óiì#ðn|²bˆ3„RssGÓ¬I† O¬X”¿°Õ±ÕñNÌ+@“¾Gšh>Q˜dLʼ˜AÛh<™qÀÖt“ÔÙä_â_æ}ÒðÎkd çAÙqUq•[;á{@*§Þ•½){ÓxÿJgwg_ÑM¸ +Íé•¡•¡Ù>¤,¦†ÍeÃŒÖ[8»9»:Ç9–Ýl¾6{/K÷?º~íe=Ó€4Ï"¢Gz€DÉ/Ö]_wݦt>8ƒë÷·(7OWKv'©Q¢¼ßN?Í~’&”¡¥BàA‰üWMdn!+ú0“çQØ$½$íÈè#­²›"CšÝ+±1Ù´zÆŒè¹Ñ†Vk}<}Ü’a ¬ËŽ¨‰ªÚÜIJøPö›š_ª~i}Øß{½·¯äšPMù}éܼ̬eÑ,Qè–­Á™Á™wûà +p;·±1¨1­žÀ‡ÓoÊ^VüÔt§çÒÕ–yßÁuÈx(eÑŒ%e O™‘2©ób».u¶[â‡i2RHáôK»bÎmÛÛ¶CQd!q{ËͱË,œœÌü±¦¿7í ™oÖâÔâ$Ä­®œê.ï.ïíî$‘K"§Ç A 3…ÆÌ +¬Øl¹mAÖlñ—Œ'š<¿wT4¼FÒ9¬éþ="þ@ª§ß—½­ø­á~W[gGoA?Ü„–Íáá§×Â*˜“naLÂféàâ@Âæ"øã+>+ë‚ÖMG›Ž´çô±hŽÈ1Ö;-hÇÆÁ{B`)8ç…5…\J¿Ͼy¨[Ê P@‹ÊÚM¤v£ýg@Zð ¹gCý†:«\0„…±Ë—;;.ôÅŒfS°– 4˜+Ÿ{ˆ½eóKO‚¨§HãZ jG^ê¹Ô£ñ ÖažËÿÃéØØ„j Ï®ö^é½vþ&)çf)³¸ávQ[W[WÍË|4 mS ê¢/™<4™Æ;É?*ûi^wI©¸¸¤þd\€ú//o¾ˆ8ÝM‡â…~0ö›$Ї/’|Özû„˜Äaqê\]ê˜é@#§ôgX¥y$…Š“BÃ7m€Xˆ<|‚Å3D•Ûkw7®:¢x¢xÄ)Ĕc®< B-Í¿0#Ç3¼ù„„–ÅÖnrKˆ“ÆJ¥áëòC[’Xý¨Aþü7ÈÜEU®ððý»LHŽ5€¦•ýÚÿkók ¾y’Ôç]çS·¤%«kÙ{0í°8íÛ¬l(€–†ºWåÙ_î­$’¿WÝûîþ÷Õº´kÛ[“. ¨sº#yÌAwÎ勵k¯=<…oÕ}¶ójF…¬Bv:BÁJênbl²‰4ÌËÀéDpqpqڸ̢óòÿä óHKnsNÓùªªüšÂúc-еۋŠN„‚7xeù¤û§ùÆG„'†'n_ì:9__¼í"t~ä{¼6²dn£;M(5q'n~ÛAâñ£ìF@““ý¹%àÎ[Ü£]£Ý<\–³YÌé'{uï:Öq¤åhÛі×^>Òz´ýZ`É ññ¹ÿ(yQwW\ûý¥ÎŽêÎê®3ÝÀ¾iö3Ôƒ¤=w¸sÙ)”®2¥#–™#hT&¡‰7⥒ÙÖÜ]PùÇÎæåæ9•ì•„béRHܱ)u“,+"…9ðTµŸàv~K[kKÕçƒHöZ—¤ >%Á xÚZ{s‡CøÁÐQŠTl¿ P„O”ˆ\þ°XÞ¿-æõÿ-¦ØŠùR¨ŠŸ–!Ý*´qüÛÑj÷qÛVÌcÞ™Îb‡2‡Fî n’kðR>ŠÆŒ°Ý4môdTÈ~Ÿ&¤†)ä.‚ÿ?ð{s~-~RsK\}§¡­µš|²Û *3seç’DHÜí—i‡ ‡t…e¶|ɉƒW ^ ÏR¯ÖÔ;]Žà”îæêæêeÎîbvß“] ½zÑ3×ÜÀ=Ã+Ú3ÚÓËÓ’ý’ÉEA4Öûäw!`‰¹ïÏ?¿ð¸ænCg[MKMû™¸å™9É9ɇ£ÈáøSØ>Q†@˜E ô{ZÅ0˜ÒçßàÛèH Š‘áã.uõt¶ø/Ö)ùI Æ]BŒšÎD]2Ï‘>é¨B i·¦°Îv¹Žâ5‘b³xsws§¥~XÍ«Ë„g2`ŠÙÖÖ¿E )ð^?¾úøjßÓ&¤FÆ9¤IN|, Èw6ßÛÜ[E,X”¥œÅ‘Ú»mvì¢ø…AvÞ~Þ~.2;°$¥$¤1¸iMøpòMÉçŸÕßìjîlîËö6tÊ.Ôú縂՟Jç£>¡t6¥sÌY’áä4’_®»¶îúê3Afð„•X“H䣈Q7<—ÈûhÒXÞF/«ëâoŠ¿9û·SßTéf +Ü+šcšcþ/*§$ŽôÄy±æNËœøa-¬%ÖD5òÍÚœ[ïƾ‚kÐsúJÅ•Šž®ÞG¤ŽÅbÍ«öÄÏQ¦ê˜è¹„YB㉣H&“r5ªÑ¿, Ôû”p:ö&È¿ŠiBÊ+Óp¿»£»³·°úà2iB*BO{´³Óç†Í ·ÎÒÉÍÉÍ9ÎM¨-òÝaDì’nÞ³).).1,ÐßåßIóÿìgEF“£±½¥¦­¦ãÌU(‡ò¿”ï¬ m³ôPØþ@AôUä2tƒ »ª¶•l+K-Ž-Š/Z_f[³ªÖ¯LVZ°£*¡áteyqyaó‰xw·÷'°)mhÚŒf¬š‡Ò*¨Â¢D‡µ^ÒU°œO{WT\ xæwoã娳Ég“ÆB¬ßã’ñ9°àû­Ï Ÿ¾¹…,^$z8”JNÝè3ø½h ûnWå#ølØ„×C\4$Þ|fó™/‹–âuG»ˆŒ é¢|ÂR ˜v´Ÿ6bðD¼»®Øn#ô–x²ò펵{|!H –¹õáua×Òá ì+=Xz°ðÛ³‡Xĉ<2üwF~jïÖ“ê'HÓœaóm6»=!T KÏ966ô§>!ÍKÏÉîÒîÒÞ®¾Aö(i^‚F›—­‚[0s•‰©3c[‹ƒ­}½¼ÂÈ'ÝX#¿¦×zPz ñh7ñµ"áÍ ÿ£`cÇàûÊ¡hgFEmR–_4åÿPnjé endstream endobj 501 0 obj <> stream -xÚcd`aa`ddrŠŠp Ôö/HÍ NÌ+Öõ,IÌÉLIùËq1°thÈwwÃ<ìÿ&üÙ)ÃyS†#‰õ‡ ÃYÆrL?䙈²Ôó0É200<‘øAä)$/ 1°22rð¸‡'”æeº9ê¸d¦g–dV¥¦(¤$–$*$çTe¦g”(h$k*è C÷üüôœTçü¢‚ü¢Ä’Ìü<=ƒ@.V€¸ÎZÆh$Ú˜•_Ë°œý*úMTæ—×Ï»@ûßR™_›DeXžýä•ù-ÅÎ'ÃÒ«ü§Aôq÷¥<ºùùÒïBßk~Ý“øÞȶä»0ëï& Å0ïá’c«×H®\½cöÑî-Ý;÷Ulû.*Q6%wJÊä”IÙýÝ -ÝÖ¡Á!¡‰:9¿%KÔ%~'yÖy°~eû]þï\•]i@A’dARJYDwvwÚ¤„Y¿Ù7ÔnmÙÙÍñ+éGƒè÷º_wXÛ°ý®ûw‡õûZÖÑîÜ)%sªæT/l^Ö½¢{錅K-™¶ª{Çñ¼•r™Ýùõe%eÅ 9Ýi|åóÝ™ùýÓk¶? Ýìr\ŒÌBñ<œ?Vˆ¸¡»» +xÚcd`aa`ddw ÷ðrÒö/HÍ NÌ+Öõ,IÌÉLIùËq1°thÈwwÃ<ìÿ&üÙ)ÃyS†#‰õ‡ ÃYÆrL?䙈²Ôó0É200<‘øAä)$/ 1°22rð¸‡'”æeº9ê¸d¦g–dV¥¦(¤$–$*$çTe¦g”(h$k*è C÷üüôœTçü¢‚ü¢Ä’Ìü<=ƒ@.V€¸ÎZÆh$Ú˜•_Ë°œý*úMTæ—×Ï»@ûßR™_›DeXžýä•ù-ÅÎ'ÃÒ«ü§Aôq÷¥<ºùùÒïBßk~Ý“øÞȶä»0ëï& Å0ïá’c«×H®\½cöÑî-Ý;÷Ulû.*Q6%wJÊä”IÙýÝ +ÝÖ¡Á!¡‰:9¿%KÔ%~'yÖy°~eû]þï\•]i@A’dARJYDwvwÚ¤„Y¿Ù7ÔnmÙÙÍñ+éGƒè÷º_wXÛ°ý®ûw‡õûZÖÑîÜ)%sªæT/l^Ö½¢{錅K-™¶ª{Çñ¼•r™Ýùõe%eÅ 9Ýi|åóÝ™ùýÓk¶? Ýìr\ŒÌBñ<œ?Vˆ 8»® endstream endobj 503 0 obj -<> +<> stream -xÚ=’mLSgÇïm{o¯ ‹¯£ÐiTlDSŽ77:6PZK{±-TP¾$Ó-3!š8–„Œºj¡]7‰(–M‚nêbæžÛ>ÅìvKüò{þçåÃù?ç„DB$ùFöŽì=IyQš -½éã“E•a-)7–úJšÕ~„äôº5¯„¿ôåYo¯bÙ´‚ÑR|Á‡“|„ˆ_+æYÉ'þ¢7 ‚ }ÝGÿE+Á$I„I2²•¡áëUe‡×èÍœš³p&½@«Í§÷q•fßc¬òåLÆÿJ1ê˜è£Áh5ÖèuJ]‰µDYÊUT›†2«r]ézeltL´J@ÌFåŽ3”ë•Éœ¹‚3—XœIí³¥ôùRþïëU,L'©"Ïõ‚ü”âi ¢81)RHÆÐnå`žL÷œ ¤K• -O7«,¸—+pˆT¦p»;—bü;í~ÚU^á°±<¬ÌÍ…X\€EV¼ðjÀ!—Ã&Æß}¢CðÛf~`f~ù­I{Ó,$Q(ã CWÙûpËÜ•ß™gO…hÀ’#k¨ÊÕÅ)9ù9Y–4H„ì­Kë²MÂ#@dÃÓŽ‡LûÞ‰Aç s¤å02·…X…ê<Qx íÝ‚Ó˜@¿L ´5Ë[/67Ùíµú#[¼-þ˜æ¤¯ðNË<wïªv¤¦¼/êi´æ1bfGGo8××›úšzσð;wg—k—kkËZH‚ÔÚtsºù½Â-éÌß½9Ôéj’;çûá\;ÚƵüJ{A{b_µ±¦Ìd(Õiu©»Ö%{“ðX° Ë)™gÁ“û ÛŠäÖÓ¨Èó!…‹è¥Á—{-8€r‡Ò‰^)…Þ¦§y)…HÎzµ4œŸër¸n,ÊëÏN­JªÚ.¯J´%Ôledž¯ùÃüu6²NfEAüÎ`ÞN_B*j)šÆyKÛï}4ÔÐ{îÒ—òKg;¾è€y7;óûòZ2 °Ô›²3eg䘾þ2&Ç/]ÈA¢CHسIˆDI’oäoÏÙµ³`ƒú Þô‘ÆdQf[5•Æ2I½:€Š‰x%Å/OûäËîÉ-ÅE\ÉE ¸5BN*ú$Pð&Aá¯ûä§ ˜'ÊC”º‚ IF²2$̺›=§êð6Y’‹’ŠÕYš„’ÍÕ*x pH熱ì±÷>DÁ$Œžî`®·÷_êq2géR\ü>^›¨LTb²‡C +¼ÓßÉàxñmë|à 1<»à¾æ¾vgfôÉOO‡P`/ŠìEQv$$e|R4*½ Ç.^,h΄M >YX¯=ª­Ò¨0UØÒÚRÛÞãCìn1ô—÷׎ÃÏ o¯ãϱٱÙù¾g¼näW¢m4šàoŸÂÛh‰­Ù{ÿ> stream -xÚcd`aa`ddäó uŠòÒvö Ž44‰Øäý ùõáçlÖ2 ?dÈ1ýgþ!Î"÷Ћå?“,ÃAù“D~‘j@‚1Wˆ•‘‘[¨¡mjbQQ~yQfzF‰±ž‘s~A%˜¯ ‘¬©`hii®£`d``©à˜›Z”™œ˜§à›X’‘š›Xää(ç'g¦–T*hØd””Xéë———ë%æëå¥Ûiê(”g–d(¥§•¥¦(¸åç•(ø%æ¦*@¼¡¡œós JKR‹|óSR‹ò€.dTí LŒŒ,9?:ø~Õ|¯ÚÌxøóÏkß«DC ’šëâÜš}º»8ê§wO–›ÓÝÓÛ?wÑÛc÷¿³îœÞß×Û=©{Rk_gOüœß¼{S¿ÛtLïê«êæh®ï®—ïîœâ³Õc~mÙ«Ù*+»ËËçvÏ•ç+^üÓ~!Ûoéiìr\,æóy8'ñpõðpoæÚ̽y6ó~(Éc +xÚcd`aa`ddäós÷ópÓvö Ž44‰Øäý ùõáçlÖ2 ?dÈ1ýgþ!Î"÷Ћå?“,ÃAù“D~‘j@‚1Wˆ•‘‘[¨¡mjbQQ~yQfzF‰±ž‘s~A%˜¯ ‘¬©`hii®£`d``©à˜›Z”™œ˜§à›X’‘š›Xää(ç'g¦–T*hØd””Xéë———ë%æëå¥Ûiê(”g–d(¥§•¥¦(¸åç•(ø%æ¦*@¼¡¡œós JKR‹|óSR‹ò€.dTí LŒŒ,9?:ø~Õ|¯ÚÌxøóÏkß«DC ’šëâÜš}º»8ê§wO–›ÓÝÓÛ?wÑÛc÷¿³îœÞß×Û=©{Rk_gOüœß¼{S¿ÛtLïê«êæh®ï®—ïîœâ³Õc~mÙ«Ù*+»ËËçvÏ•ç+^üÓ~!Ûoéiìr\,æóy8'ñpõðpoæÚ̽y6ó~(¦SŒò endstream endobj 509 0 obj @@ -2473,26 +2465,30 @@ x endstream endobj 488 0 obj -<> +<> stream -xÚ͘mSÛ8€¿ß¯Ð÷Nºz—<Óé BËAZ´¦LÄ×ÄNã¤-ýõ·+‰PB‡Þ1¡÷ÕîãÕ®öŽq¦Τ—XK¦<õ5ÓKb™çkÏ„–ΙМBbCcÃzF•3ØwLXž0‰µs 3·$Š3äÀíF(&¥ÑÌ2©¥Æ¾fÒXÉnÑ(PàBOr¦¸ó8`™’Ê1«˜ÒÂá€gʘ„á©Ê‘d‘ ÚE(¦9êm$Ú <ª$qDYLìÙ„iÇ ¹g„d-Qt8jLö)êq<Ý*Æ5Ž“²x¼ÇÅgÎp§”ÅàPìã1Ò<\Å~óGsU ÅÅÚz´U°h Ó8n±hÏ¢q¶ZmÉ, âñÈÜ%†Yéâ ®6$-aÎà¨NªÖ%µ³-êo•ŒÀc©EÉÖ8„mâN[‰qÔ"[ZMEr ‡D«€ÇS =%rï>ÿu&ñyñ?ô³‰À,>rUbø«²üSªÚO4æ¥Þ{Šò»òŸòÔÿ«ÜµnH/ÓxŒ¶«zÉY>kÝçÓð¶ßÔòqÏd™šC߶v~{MkðæK#ï¹ÕLŒævÕx;1–bÌB‰t/5†Ië,³ï³ÓÌ+Ëu'i”þÒ6\Äào)²k‡·=žÂ›ZP 1%ÅX„u¢¢¾”/¨/Š#D¬)XÓ¸±¢ª±(ŒjZb<•7²pÎa,Ѩ)µµV•…Hu£¿”¡¸g(zòÛ¸kb|\¢ä$îÃ4„B^½‚£ëq€N‘Oápv>¥ø˜]L%ʸ§lRN7é„YØKošÂzØÎûÅE–_Å”A+Ûi¢¼Ýn·³{òâÝ8ä‡i^ÆC¶BÙŸdãi1‰Y׿~]Ób¾6Óñ›] ¦”\%l”ýcÛ ´Š:- ðvš³þF~5 ŒÃá4Œ>0ï¡3L¯Pÿ(µÝ.~œµ„–µÈ¤FG(ösœîdÃ@FV¦âH7…¦ Mï㥼ôœWÂqù¸ð¨8Î3 8’Ôn¼ß;:8º àÏ  ®l°&@Ó(¤_p9í -Ñd(da·Û}ófó Õschë ¬ÉÐÝiëNظ³Û½Ó½ww§µÚÅðb™™þ˜I‹hü"8‰Á¸EB: ÉRø¤.©ƒ[eÊzô~ÿÖÉ£®ðñþÎi¯÷Oóy&¢Îs•)kò”Oy£;ÛG;ïBjŸ%RUGºÊ”5‘êRµà£¨Æ"QWç×{»Ýi|ÑÍFç³r¿È÷Z½p5[&è×%ˆŸ‡·ñûjÎOx»’Ÿ7ül kÅ\|{òBÔ±™:¶Õ¬ Î6ÁÙuÁìv7]ízÉÚàüœ\'¹Y NðUäð•°%ñýÐ⛚w r®Nnµ k’ó rf!§È_䔃ӭÎÞÜË+Ó–¸É?ð6ƒnÕ¼´¶va9žÚ2:¡o±œŒ“FNYmÊZü _Ê*Éo§•^ûôÓÆÁÃHųCJ_Sõ˼Ҕ5‘>ib9Ø9øÔ>yª|†PUÓOW™²&Ô¥Ô¢æL±}Çkÿx§wºûbsÿðDðeLk¿XÛyäwˆxƒ~‰©å&ðDŽ/ ’ k%–Wÿ£uÎÔù42HMõJÇ­ìò2LBÞå™q˜Ž°U¦ùó0Nqz.§UkBÊ‚ “¬üãᬄ~1¥0¸BN2²âÊaZð]'‡EeeUkÊÂ×Y:„«IHQáÝ€6lÂlCvà Óváo؃}èÂ;xЃC8‚cøáœÀ)à <Ë/PÓ~1 ˜C!…sèø„+@ÿÀÂr(` _a%Laßà;ü€køIAüœb¹F£úY6͆xKbïãëIåÑè•!íϦáó25 _gш+QØl8 S -m³<ë´1yUµ¤Oª©nÄOÝ^UtÄ|#/³»þâtÁ†Iñ²(¡ÈUÓï±7LBì_³I¬³o±_f?b¾…œÑ騑g•€ËË*Þ>V•,œØªGB’þÛŒ¯ÿ +xÚ͘YSÛH€ß÷WÌ{Êé¹gT•J• !Ü$˜p„ʃ0Ö®-9–„üúí¶dLŠìR®aîžîO=ÝÚ;Æ™N8“^b-™òÔ×Lk,‰ež[¬=BXf8gBsjHl‰ ëUÎ`ß1ayÂ$ÖÎ%ÌÜ’(Î “·¡˜”F3ˤ–ûšIc%s¸E£@ =È™âÎã€eJ*ǬbJ ‡ž)c†§*G’E‚j;¡˜æ¨·‘hƒð¨’ÄeiD0m°g¦W8€æzœN´DÑá¨1Ù§¨Çñt«h×8NÊâñŸ;ÃœR>ƒC±ÇHoðpûÍÍU-këÑTÁ¢Nã¸Å¢=sˆÆÙjµ%°$ˆÇ#s—f¥‹3¸Ú´„9ƒ£:©vX—Ôζ¨¿U25>t¤%[㶉;yl%^ÄQ‹li5mÈ%­v|O5ô”ȼûò×¹ÄçÅÿÐÏ&O°ø\ÈU‰á¯ÊâO©j?ј•zï9ÊïÊÎSÿ¯rߺ%½Hã)Ú.ë=&gñ¬UŸOÃÛ~S˧=“Ej}ÛÚÙí5U¬Á›/|àfT31˜»TãíÄXŠ1 %Ò½Ô&­³Xüí +¼ÏN3¯,sÔ¤QúK7Úpƒ¿¥È®Þöx +ojA1Ä8”cÖ‰ŠúR¾ ¾4*Œ±¦`MãÆŠªÆ¢0ªi‰ñTÞÊÂ9‡±D£¦ÔÖZU"!Ôþb©ƒKêà–™²½„?|…uò¤+|v|Ðén>ÆÓ¼Dž‰¨ó\fÊŠ<åsÞè³­îþîécHí‹DªH—˜²"RÝ@ªæ|Õ˜'êêüOÏ:ÛWûÙðbZîùnë0\O úU âçá@ü¾šñÞ.å§Å-?[CÇZñßž¼ul¦Žm¹+‚³MpvUpûv{ÿtþØå®—¬ ÎÏÀÉ9p’›¥à_F_ [ß-¾©y× çêä–›°"9ß gærŠüEN9>é~<Û™yyeÚ7ùÞfЭš—ÖÖ.,ÇS[F'ôí “qÒÈ)ËMY‰Ÿá Y%ùí´Ò>Ù<øÜy©xqHékª†t¹)+"}ÖÄrÜÞþøáäq¨òBm$–妬u!µ¨SlÏâáû“ýÍWk{Ý3Á1­übmgaß#â >ú5¦–ÛüÁo9>‡H&¬•X^ýÖ9SçÓÈ 5Õ+׳««0y/”çFaLj@:ÄV™æ—ÌÃ(ÅéA¸šT­1)&Œ³ò ¦%ôŠá0…þͨr’‘—PÒ²ï +89(r(Ã0«ZƒP–¾NÓ\CŠro:°ëð6à=l2-av`ö`à|„CèÂ|‚c8S8ƒÏ 3ð4¿DM{Å8`…. —à +®¡ü ÿÀ†C#ø +c(aSøßáÜÀO +âË5Õ˲I6À["{¯ÝŒ+F¯ io: _©iø:-ˆF\‰Â¦ƒA˜Ph›æÙF“WUKú©šêV ùÔÝUEGÌÛy™Ý÷çÏ  þ3Œ‹×E E¨š|½Ibÿª˜Žc}‹ý2û«ð-äÔˆNG<«\]ÅP±õT]T2opb«9Iú²~°/ endstream endobj 524 0 obj -<<73d408f43c3219297bc0aeb795fd41f4>]/Size -525/W[1 3 2]/Filter/FlateDecode/Length 1261>> +<<1fc3b00cdb8184dd4523869777b7f018>]/Size +525/W[1 3 2]/Filter/FlateDecode/Length 1265>> stream -xÚ5ÖWPUWÆñ½n=GA¥Ùà‚Š±`‰QŒ-v…(ö -V¬%*ŠØÅ{TìbÆØ‚Ë‹™qR'3š<¤L^b&g2™˜{ÿ{ñò›5ß.gs8ì…1Ƽzå1’mîc. û«q1c°ŽÇ×q¿4†¤.‰ ½èC?0ˆºXkbFc-ŒÁÚ<ÅαOEûÜz‡ñ˜€‰˜„õ±6ÄFØ“1C˜ŠiØ›b3LÇæø¶À–Ø -[c¶Á¶bLLä…ëv¼á¥ü\öäíÅ„^êèëŒ.g4‰Iÿ]G;0º‚©§àTœÆûIùz€ÎÌgæêé"?æk>ƒü¨ÈËššÌ$9A= ?ÅÙ8G<þY:³@<­/‡Ïãɸ¥É\ÖžO·>š¼GršzÎOÖs-dôŒxÆFkò>Éyê¸a.Æ%XŒK±—árñän×=Wˆ7áxøœÞÄJMVò” ÔU¸ -W‹7ùºÎ)ï–ìȪ­Ó4ù€U©?Á5¸V¼»ªw^'¾Üï«|yh²žU—¨­p£ø¦T?k“øþ¨õmÜŒ¥âû{²æ[Ä?ìçðÎþá¯4ÙÊÎö$7pnÿ¨m:g‡&}^˜\}Û|È*û;½ƒ;q—fžÐ9»%ðÕ ­¯£ýþ÷Jà›(Í÷Ið`ø$,KÐd?;Ûïù2Ú/ü€¯Ó9Å ý¦õU<„eâ¤ù5?,Îæ‚H?*]«Év¶'9ŠÇÄÙ:LG3joHûÝ^Óx -ËÑ~‡gð,žg_QäYGbu·óìvSœÓŸkrä–8Wnjr‘ä¶8U{4ù˜ÄÞäöŽµ}äu/lön|HÝcÑö¾GÔØëaø„/¾ ;gGúrØ8ŒÇô`"&a}ôb6À†èÃFØÛb2ú1€)ÂT b3LÇæè í†í±ºØ›b+´±ÖDÛlïëˆQØ 3±3FcWl‚¶gÕÂîØm·ê‰1Xë`_,ÂEØûc6@Û¡lW²Èö,´ÂöšÁ8sp(ŽÀáh»ÀH…¶_ŒÁq8ÇãÌÅ<œˆ“Ðö‚)8§¡½ùí=lo{{ÃÏÂÙ8 ÐÞáópÎG{WÛûy!ÞÃ͸ c1Ú;ÖÞ™«p®Áu¸ËÐÞfövÚŽ{q'îÆC¸`ÃÃx -ípËÑþ…žÃ»x¯b%^ÃxˆóTôïî¡8Õú‘¸þúß²wéóˆQ£5q“£´öˆŠÓÚ+nú%­}âööiíwìS­âÎ{¬uPܵvÄ-Ú¨uk`ª¸Kò5Â4q‹Ë5©…öÿíX¬‡M0±>6ÄƘ"nI¡1ÿï£b +xÚ5ÖwLVWÇñó¼‹{D'¾€b8jëªÛV¡Š8ê‰[«VEqT©[ܸªâÞJ±ÖUÜ+iÚĤ+¦±ý£#ýÇ6mlMü£ô¾ßóðÏ'O~gÜÃÍå<¯1ÆTUùŒä˜x—zþn\ŒÅ8¬í3Æ5Fœ/_CR‡DЇ~ `C…º50c±&Æa-žbçاǣ}nÖÅDLÂd¬‡õ±6ÄFØS° †1Ó0›b3ÌÀæø¶À–Ø +[c&¶Á¶bL\äyu;Þð2þ.{òöbÂ/uôuFW0š„Ädü©£]I^OL»š¿A¾šú*^Çb:ÍÐ9×ÄduѺ£˜A¿iÝ ³°³˜ì +ÍßdÏb1¹?iÒ…d-uW1c§kÞ|=uwì!fj]}‹ÑÔ=ñ6öÂÞØûŠ™Ÿ¬«úa fAª÷Õ™¢::ú6{–ˆ)ÎÔä’-bJæj2d滛½ÕïùêlÌSÖÑw-¥ŒŸáÌsú?9T̳g‘SýøJ“<Ö‹Ãp¸˜_¾Ö9#D*²´)ri°Öï±v?õ(‘Ê\ÍG“L}ÇàX‡ù8'àD‘ÇO¼³É“DÝgû¤žŒS°€÷“"òí9•™G¨§‰üÉêy8_|ÙèèFÏŠot¬&\ ^ˆ‹p1â\ŠE¸ àr\!¾üíºçJñ'÷ÎéO®ÔäCžr‘ºWájñ§\×9Åâß’Yµµ@“XUN} ×àZñ—Vï¼NùO½Uñi²žUvþç¸7J`rõ³6IàŸZßÄÍX"'i¾E‚y¿z;‡Ui²•?¥¾‡Ûp»GnÓ9;$4ñ{oUhRõm³“Uöû¯Ä]X*¡'tÎn }óBëËh¿ÿ½ú.Fó}uÐ;‰D•%i²Ÿ¯PßBû…¨ÃëtÎAqÂϵ¶'?„eâ¤5?,Îæ9‘~T²V“#ìlo¿£xLœ­y:zœQûníwkÏpOái´ßáY<‡çÅÙWyÖ‘xÝí»ÝçÌWš\$¹%Ε›š”“ÜçþM>!±7¹½cmyHÝ [£½Q÷Áx´½ï1u&¶ÁôNøâ Ý9'Ò—=ëb"&¡“±ÖG?¦alˆl„±-¦`CØØŠQØ 3°9:h»a{l.¶Ä¦Ø +mgŒÆhû‘í}1;avÆXìŠéh{VMìŽ=Ðv«ž‡µ°6öÅB\Œý°?æà´Êv%Û‰lßÉFÛ)l¯ŒC0‡âp†¶ ŒÀ‘hûÅ(ƒÓp,ŽÃ|p"Ú^0§`Ú›ßÞÃö¶·7üLœ…³qÚ;|.Äùhïj{?/Â{¸—ã,B{ÇÚ;snÂ5¸7`ÚÛÌÞNÛq/îÂÝx÷á¬ÀcxO¡½Îái´ÿ¡çñ.^Æ«X‰×ðÞÁ‡âüP¥ÿwÄù{ˆÖÅ îÔ_ËFÜeÏ#ÆŒÐDÄM‰ÖÚ'n¸ŽÖ~q3ʵˆÛ[´Š;ú©Ö!qç}¡u”¸ ^iíˆ[¸Aë0Fcª¸K 4Á4q‹NiRíïíxLÀtLÄd¬ ±16·ØûÝõ?“Êcj endstream endobj startxref -623475 +623471 %%EOF From c44c6b13f3314afda7ef795f7e0ee2be8c5d4854 Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Thu, 11 May 2017 17:26:56 +0200 Subject: [PATCH 10/30] Adjust Katana event sort. CMake detection of Python 2.7 only. * Change: In all top CMakeLists.txt, force the use of Python 2.7 as we do not compile against 3.x flavors. Do not use the "EXACT" flags as it will not recognize 2.7.x versions. * Change: In Katana::RoutingEvent::Key::Compare(), preliminary experiments shows that the best sorting order is: - Lower layer first (i.e. M2 -> M3 -> M4 -> ... ) - Longer segments first. The later seems to be counter-intuitive. Guess is that placing the small ones first generate a more important fragmentation of the big ones. They are placed too early and are difficult to move afterwards. Another feature to test is *not* inserting pushed left/right segments if they are not *already* routed. * Change: In PyKatanaEngine.runNegociate() now takes a flag argument, provided through the new PyKatanaFlags exported object. (doChip.py must be changed accordingly) --- crlcore/CMakeLists.txt | 2 +- cumulus/CMakeLists.txt | 2 +- .../examples/code/engine/smurf/CMakeLists.txt | 2 +- etesian/CMakeLists.txt | 2 +- hurricane/CMakeLists.txt | 2 +- hurricane/CMakeLists.txt.orig | 42 +++++++ ispd/CMakeLists.txt | 2 +- katabatic/CMakeLists.txt | 2 +- katana/src/CMakeLists.txt | 2 + katana/src/PyKatana.cpp | 8 +- katana/src/PyKatanaEngine.cpp | 34 ++++-- katana/src/PyKatanaFlags.cpp | 107 ++++++++++++++++++ katana/src/RoutingEvent.cpp | 6 +- katana/src/katana/PyKatanaEngine.h | 5 +- katana/src/katana/PyKatanaFlags.h | 59 ++++++++++ kite/CMakeLists.txt | 2 +- mauka/CMakeLists.txt | 2 +- metis/CMakeLists.txt | 2 +- nimbus/CMakeLists.txt | 2 +- stratus1/CMakeLists.txt | 2 +- unicorn/CMakeLists.txt | 2 +- vlsisapd/CMakeLists.txt | 2 +- .../src/liberty/src/LibertyParserScanner.ll | 4 - 23 files changed, 263 insertions(+), 32 deletions(-) create mode 100644 hurricane/CMakeLists.txt.orig create mode 100644 katana/src/PyKatanaFlags.cpp create mode 100644 katana/src/katana/PyKatanaFlags.h diff --git a/crlcore/CMakeLists.txt b/crlcore/CMakeLists.txt index 071b5cf2..283684bb 100644 --- a/crlcore/CMakeLists.txt +++ b/crlcore/CMakeLists.txt @@ -21,7 +21,7 @@ setup_qt() find_package(LibXml2 REQUIRED) - find_package(PythonLibs REQUIRED) + find_package(PythonLibs 2.7 REQUIRED) find_package(PythonSitePackages REQUIRED) find_package(BISON REQUIRED) find_package(FLEX REQUIRED) diff --git a/cumulus/CMakeLists.txt b/cumulus/CMakeLists.txt index f951c0c5..2bf8c2ed 100644 --- a/cumulus/CMakeLists.txt +++ b/cumulus/CMakeLists.txt @@ -12,7 +12,7 @@ set_lib_link_mode() setup_sysconfdir("${CMAKE_INSTALL_PREFIX}") - find_package(PythonLibs REQUIRED) + find_package(PythonLibs 2.7 REQUIRED) find_package(PythonSitePackages REQUIRED) find_package(VLSISAPD REQUIRED) find_package(HURRICANE REQUIRED) diff --git a/documentation/examples/code/engine/smurf/CMakeLists.txt b/documentation/examples/code/engine/smurf/CMakeLists.txt index bf11021a..4fc2951c 100644 --- a/documentation/examples/code/engine/smurf/CMakeLists.txt +++ b/documentation/examples/code/engine/smurf/CMakeLists.txt @@ -16,7 +16,7 @@ setup_qt() find_package(LibXml2 REQUIRED) - find_package(PythonLibs REQUIRED) + find_package(PythonLibs 2.7 EXACT REQUIRED) find_package(PythonSitePackages REQUIRED) find_package(AXEP REQUIRED) find_package(VLSISAPD REQUIRED) diff --git a/etesian/CMakeLists.txt b/etesian/CMakeLists.txt index 32fa4753..ccab5323 100644 --- a/etesian/CMakeLists.txt +++ b/etesian/CMakeLists.txt @@ -16,7 +16,7 @@ set_lib_link_mode() setup_boost(program_options python regex) - find_package(PythonLibs REQUIRED) + find_package(PythonLibs 2.7 REQUIRED) find_package(PythonSitePackages REQUIRED) find_package(VLSISAPD REQUIRED) find_package(HURRICANE REQUIRED) diff --git a/hurricane/CMakeLists.txt b/hurricane/CMakeLists.txt index 565a0fd7..b412ea6f 100644 --- a/hurricane/CMakeLists.txt +++ b/hurricane/CMakeLists.txt @@ -21,7 +21,7 @@ find_package(BZip2 REQUIRED) find_package(BISON REQUIRED) find_package(FLEX REQUIRED) - find_package(PythonLibs REQUIRED) + find_package(PythonLibs 2.7 REQUIRED) find_package(PythonSitePackages REQUIRED) find_package(VLSISAPD REQUIRED) find_package(Libexecinfo REQUIRED) diff --git a/hurricane/CMakeLists.txt.orig b/hurricane/CMakeLists.txt.orig new file mode 100644 index 00000000..565a0fd7 --- /dev/null +++ b/hurricane/CMakeLists.txt.orig @@ -0,0 +1,42 @@ +# -*- mode: CMAKE explicit-buffer-name: "CMakeLists.txt" -*- + + set(CMAKE_LEGACY_CYGWIN_WIN32 0) + project(HURRICANE) + + option(BUILD_DOC "Build the documentation (doxygen)" OFF) + + cmake_minimum_required(VERSION 2.8.9) + + list(INSERT CMAKE_MODULE_PATH 0 "${DESTDIR}$ENV{CORIOLIS_TOP}/share/cmake/Modules") + find_package(Bootstrap REQUIRED) + setup_project_paths(CORIOLIS) + list(INSERT CMAKE_MODULE_PATH 0 "${HURRICANE_SOURCE_DIR}/cmake_modules/") + + set_cmake_policies() + set_lib_link_mode() + setup_boost(program_options regex) + setup_qt() + + find_package(LibXml2 REQUIRED) + find_package(BZip2 REQUIRED) + find_package(BISON REQUIRED) + find_package(FLEX REQUIRED) + find_package(PythonLibs REQUIRED) + find_package(PythonSitePackages REQUIRED) + find_package(VLSISAPD REQUIRED) + find_package(Libexecinfo REQUIRED) + find_package(Libbfd) + + add_subdirectory(src) + add_subdirectory(cmake_modules) +#add_subdirectory(tests) + + if(BUILD_DOC) + find_package(Doxygen) + if(DOXYGEN_FOUND) + add_subdirectory(doc) + endif() + endif() + +#enable_testing() +#add_test(HurricaneTest ${PROJECT_BINARY_DIR}/tests/htest) diff --git a/ispd/CMakeLists.txt b/ispd/CMakeLists.txt index 6ccec521..b5e2a90c 100644 --- a/ispd/CMakeLists.txt +++ b/ispd/CMakeLists.txt @@ -17,7 +17,7 @@ find_package(LibXml2 REQUIRED) set(QT_USE_QTXML "true") find_package(Qt4 REQUIRED) - find_package(PythonLibs REQUIRED) + find_package(PythonLibs 2.7 REQUIRED) find_package(PythonSitePackages REQUIRED) find_package(VLSISAPD REQUIRED) find_package(HURRICANE REQUIRED) diff --git a/katabatic/CMakeLists.txt b/katabatic/CMakeLists.txt index 44a54c7e..70f328cd 100644 --- a/katabatic/CMakeLists.txt +++ b/katabatic/CMakeLists.txt @@ -17,7 +17,7 @@ setup_boost(program_options filesystem python regex) setup_qt() - find_package(PythonLibs REQUIRED) + find_package(PythonLibs 2.7 REQUIRED) find_package(PythonSitePackages REQUIRED) find_package(VLSISAPD REQUIRED) find_package(HURRICANE REQUIRED) diff --git a/katana/src/CMakeLists.txt b/katana/src/CMakeLists.txt index 3eed1b87..b77aec7a 100644 --- a/katana/src/CMakeLists.txt +++ b/katana/src/CMakeLists.txt @@ -36,6 +36,7 @@ ) set( pyIncludes katana/PyKatanaEngine.h katana/PyGraphicKatanaEngine.h + katana/PyKatanaFlags.h ) set( mocIncludes katana/GraphicKatanaEngine.h ) set( cpps Constants.cpp @@ -73,6 +74,7 @@ set( pyCpps PyKatana.cpp PyKatanaEngine.cpp PyGraphicKatanaEngine.cpp + PyKatanaFlags.cpp ) qtX_wrap_cpp( mocCpps ${mocIncludes} ) diff --git a/katana/src/PyKatana.cpp b/katana/src/PyKatana.cpp index 07d041fa..784fb2dd 100644 --- a/katana/src/PyKatana.cpp +++ b/katana/src/PyKatana.cpp @@ -17,6 +17,7 @@ #include "hurricane/isobar/PyHurricane.h" #include "hurricane/isobar/PyCell.h" +#include "katana/PyKatanaFlags.h" #include "katana/PyKatanaEngine.h" #include "katana/PyGraphicKatanaEngine.h" @@ -67,9 +68,11 @@ extern "C" { DL_EXPORT(void) initKatana () { cdebug_log(40,0) << "initKatana()" << endl; + PyKatanaFlags_LinkPyType(); PyKatanaEngine_LinkPyType(); PyGraphicKatanaEngine_LinkPyType(); + PYTYPE_READY ( KatanaFlags ); PYTYPE_READY_SUB( KatanaEngine , ToolEngine ); PYTYPE_READY_SUB( GraphicKatanaEngine, GraphicTool ); @@ -85,12 +88,15 @@ extern "C" { PyModule_AddObject( module, "KatanaEngine", (PyObject*)&PyTypeKatanaEngine ); Py_INCREF( &PyTypeGraphicKatanaEngine ); PyModule_AddObject( module, "GraphicKatanaEngine", (PyObject*)&PyTypeGraphicKatanaEngine ); - + Py_INCREF( &PyTypeKatanaFlags ); + PyModule_AddObject( module, "Flags", (PyObject*)&PyTypeKatanaFlags ); // PyObject* dictionnary = PyModule_GetDict( module ); // PyObject* constant; // LoadObjectConstant( dictionnary, KtBuildGlobalRouting, "KtBuildGlobalRouting" ); // LoadObjectConstant( dictionnary, KtLoadGlobalRouting , "KtLoadGlobalRouting" ); + + PyKatanaEngine_postModuleInit(); } diff --git a/katana/src/PyKatanaEngine.cpp b/katana/src/PyKatanaEngine.cpp index d9ea2a7c..2b266fd8 100644 --- a/katana/src/PyKatanaEngine.cpp +++ b/katana/src/PyKatanaEngine.cpp @@ -19,6 +19,7 @@ #include "hurricane/viewer/ExceptionWidget.h" #include "hurricane/Cell.h" #include "katana/PyKatanaEngine.h" +#include "katana/PyKatanaFlags.h" #include # undef ACCESS_OBJECT @@ -264,19 +265,26 @@ extern "C" { } - static PyObject* PyKatanaEngine_runNegociate ( PyKatanaEngine* self ) + static PyObject* PyKatanaEngine_runNegociate ( PyKatanaEngine* self, PyObject* args ) { cdebug_log(40,0) << "PyKatanaEngine_runNegociate()" << endl; + + unsigned int flags = 0; HTRY - METHOD_HEAD("KatanaEngine.runNegociate()") - if (katana->getViewer()) { - if (ExceptionWidget::catchAllWrapper( std::bind(&KatanaEngine::runNegociate,katana,0) )) { - PyErr_SetString( HurricaneError, "EtesianEngine::runNegociate() has thrown an exception (C++)." ); + METHOD_HEAD("KatanaEngine.runNegociate()") + if (PyArg_ParseTuple(args,"I:KatanaEngine.runNegociate", &flags)) { + if (katana->getViewer()) { + if (ExceptionWidget::catchAllWrapper( std::bind(&KatanaEngine::runNegociate,katana,flags) )) { + PyErr_SetString( HurricaneError, "EtesianEngine::runNegociate() has thrown an exception (C++)." ); + return NULL; + } + } else { + katana->runNegociate( flags ); + } + } else { + PyErr_SetString( ConstructorError, "KatanaEngine.runNegociate(): Invalid number/bad type of parameter." ); return NULL; } - } else { - katana->runNegociate(); - } HCATCH Py_RETURN_NONE; } @@ -313,7 +321,7 @@ extern "C" { , "Run the layer assigment stage." } , { "runNegociatePreRouted", (PyCFunction)PyKatanaEngine_runNegociatePreRouted, METH_NOARGS , "Run the negociation stage for pre-routed of the detailed router." } - , { "runNegociate" , (PyCFunction)PyKatanaEngine_runNegociate , METH_NOARGS + , { "runNegociate" , (PyCFunction)PyKatanaEngine_runNegociate , METH_VARARGS , "Run the negociation stage of the detailed router." } , { "finalizeLayout" , (PyCFunction)PyKatanaEngine_finalizeLayout , METH_NOARGS , "Revert to a pure Hurricane database, remove router's additionnal data structures." } @@ -342,6 +350,14 @@ extern "C" { DBoLinkCreateMethod(KatanaEngine) + extern void PyKatanaEngine_postModuleInit () + { + PyKatanaFlags_postModuleInit(); + + PyDict_SetItemString( PyTypeKatanaEngine.tp_dict, "Flags", (PyObject*)&PyTypeKatanaFlags ); + } + + #endif // Shared Library Code Part. } // extern "C". diff --git a/katana/src/PyKatanaFlags.cpp b/katana/src/PyKatanaFlags.cpp new file mode 100644 index 00000000..0de7f5a7 --- /dev/null +++ b/katana/src/PyKatanaFlags.cpp @@ -0,0 +1,107 @@ +// -*- C++ -*- +// +// This file is part of the Coriolis Software. +// Copyright (c) UPMC 2017-2017, All Rights Reserved +// +// +-----------------------------------------------------------------+ +// | C O R I O L I S | +// | K i t e - D e t a i l e d R o u t e r | +// | | +// | Author : Jean-Paul CHAPUT | +// | E-mail : Jean-Paul.Chaput@lip6.fr | +// | =============================================================== | +// | C++ Module : "./PyKatanaFlags.cpp" | +// +-----------------------------------------------------------------+ + + +#include "katana/PyKatanaFlags.h" + + +namespace Katana { + + using std::cerr; + using std::endl; + using std::hex; + using std::ostringstream; + using Hurricane::tab; + using Hurricane::Error; + using Hurricane::Warning; + using Isobar::ProxyProperty; + using Isobar::ProxyError; + using Isobar::ConstructorError; + using Isobar::HurricaneError; + using Isobar::HurricaneWarning; + using Isobar::ParseOneArg; + using Isobar::ParseTwoArg; + + +extern "C" { + + +#define METHOD_HEAD(function) GENERIC_METHOD_HEAD(Flags,flags,function) + + +// +=================================================================+ +// | "PyKatanaFlags" Python Module Code Part | +// +=================================================================+ + +#if defined(__PYTHON_MODULE__) + + + // Standart Accessors (Attributes). + + + // Standart Destroy (Attribute). + // DBoDestroyAttribute(PyKatanaFlags_destroy,PyKatanaFlags) + + + PyMethodDef PyKatanaFlags_Methods[] = + { {NULL, NULL, 0, NULL} /* sentinel */ + }; + + + PythonOnlyDeleteMethod(KatanaFlags) + DirectReprMethod(PyKatanaFlags_Repr, PyKatanaFlags, Katana::Flags) + DirectStrMethod (PyKatanaFlags_Str, PyKatanaFlags, Katana::Flags) + DirectCmpMethod (PyKatanaFlags_Cmp, IsPyKatanaFlags, PyKatanaFlags) + DirectHashMethod(PyKatanaFlags_Hash, PyKatanaFlags) + + extern void PyKatanaFlags_LinkPyType() { + cdebug_log(20,0) << "PyKatanaFlags_LinkType()" << endl; + PyTypeKatanaFlags.tp_dealloc = (destructor) PyKatanaFlags_DeAlloc; + PyTypeKatanaFlags.tp_compare = (cmpfunc) PyKatanaFlags_Cmp; + PyTypeKatanaFlags.tp_repr = (reprfunc) PyKatanaFlags_Repr; + PyTypeKatanaFlags.tp_str = (reprfunc) PyKatanaFlags_Str; + PyTypeKatanaFlags.tp_hash = (hashfunc) PyKatanaFlags_Hash; + PyTypeKatanaFlags.tp_methods = PyKatanaFlags_Methods; + } + + +#else // End of Python Module Code Part. + + +// +=================================================================+ +// | "PyKatanaFlags" Shared Library Code Part | +// +=================================================================+ + + // Link/Creation Method. + PyTypeObjectDefinitions(KatanaFlags) + + + extern void PyKatanaFlags_postModuleInit () + { + PyObject* constant; + + LoadObjectConstant(PyTypeKatanaFlags.tp_dict,Katana::Flags::NoFlags ,"NoFlags" ); + LoadObjectConstant(PyTypeKatanaFlags.tp_dict,Katana::Flags::SlowMotion ,"SlowMotion" ); + LoadObjectConstant(PyTypeKatanaFlags.tp_dict,Katana::Flags::PreRoutedStage,"PreRoutedStage"); + LoadObjectConstant(PyTypeKatanaFlags.tp_dict,Katana::Flags::SymmetricStage,"SymmetricStage"); + } + + +#endif // Shared Library Code Part. + +} // extern "C". + +} // Katana namespace. + diff --git a/katana/src/RoutingEvent.cpp b/katana/src/RoutingEvent.cpp index f161e3ca..4bb61ef1 100644 --- a/katana/src/RoutingEvent.cpp +++ b/katana/src/RoutingEvent.cpp @@ -82,9 +82,11 @@ namespace Katana { // Process all M2 (terminal access) before any others. //if ((lhs._layerDepth == 1) and (rhs._layerDepth != 1)) return false; //if ((lhs._layerDepth != 1) and (rhs._layerDepth == 1)) return true; + if (lhs._layerDepth > rhs._layerDepth) return true; + if (lhs._layerDepth < rhs._layerDepth) return false; - if (lhs._priority > rhs._priority) return true; - if (lhs._priority < rhs._priority) return false; + if (lhs._priority > rhs._priority) return false; + if (lhs._priority < rhs._priority) return true; if (lhs._length > rhs._length) return false; if (lhs._length < rhs._length) return true; diff --git a/katana/src/katana/PyKatanaEngine.h b/katana/src/katana/PyKatanaEngine.h index ba20339f..0f1f4976 100644 --- a/katana/src/katana/PyKatanaEngine.h +++ b/katana/src/katana/PyKatanaEngine.h @@ -41,8 +41,9 @@ extern "C" { extern PyTypeObject PyTypeKatanaEngine; extern PyMethodDef PyKatanaEngine_Methods[]; - extern PyObject* PyKatanaEngine_Link ( Katana::KatanaEngine* ); - extern void PyKatanaEngine_LinkPyType (); + extern PyObject* PyKatanaEngine_Link ( Katana::KatanaEngine* ); + extern void PyKatanaEngine_LinkPyType (); + extern void PyKatanaEngine_postModuleInit (); #define IsPyKatanaEngine(v) ( (v)->ob_type == &PyTypeKatanaEngine ) diff --git a/katana/src/katana/PyKatanaFlags.h b/katana/src/katana/PyKatanaFlags.h new file mode 100644 index 00000000..1c915add --- /dev/null +++ b/katana/src/katana/PyKatanaFlags.h @@ -0,0 +1,59 @@ +// -*- C++ -*- +// +// This file is part of the Coriolis Software. +// Copyright (c) UPMC 2017-2017, All Rights Reserved +// +// +-----------------------------------------------------------------+ +// | C O R I O L I S | +// | K i t e - D e t a i l e d R o u t e r | +// | | +// | Author : Jean-Paul CHAPUT | +// | E-mail : Jean-Paul.Chaput@lip6.fr | +// | =============================================================== | +// | C++ Header : "./katana/PyKatanaFlags.h" | +// +-----------------------------------------------------------------+ + + +#ifndef PY_KATANA_FLAGS_H +#define PY_KATANA_FLAGS_H + + +#include "hurricane/isobar/PyHurricane.h" +#include "katana/Constants.h" + + +namespace Katana { + + extern "C" { + + +// ------------------------------------------------------------------- +// Python Object : "PyTransformation". + + typedef struct { + PyObject_HEAD + Katana::Flags* _object; + } PyKatanaFlags; + + +// ------------------------------------------------------------------- +// Functions & Types exported to "PyHurricane.ccp". + + extern PyTypeObject PyTypeKatanaFlags; + extern PyMethodDef PyKatanaFlags_Methods[]; + + extern PyObject* PyKatanaFlags_Link ( Katana::Flags* ); + extern void PyKatanaFlags_LinkPyType (); + extern void PyKatanaFlags_postModuleInit (); + + +# define IsPyKatanaFlags(v) ( (v)->ob_type == &PyTypeKatanaFlags ) +# define PYKATANAFLAGS(v) ( (PyKatanaFlags*)(v) ) +# define PYKATANAFLAGS_O(v) ( PYKATANAFLAGS(v)->_object ) + + + } // extern "C". + +} // Katana namespace. + +#endif // PY_KATANA_FLAGS_H diff --git a/kite/CMakeLists.txt b/kite/CMakeLists.txt index 05332ef8..5ba6993d 100644 --- a/kite/CMakeLists.txt +++ b/kite/CMakeLists.txt @@ -18,7 +18,7 @@ setup_qt() find_package(LibXml2 REQUIRED) - find_package(PythonLibs REQUIRED) + find_package(PythonLibs 2.7 REQUIRED) find_package(PythonSitePackages REQUIRED) find_package(VLSISAPD REQUIRED) find_package(LEFDEF REQUIRED) diff --git a/mauka/CMakeLists.txt b/mauka/CMakeLists.txt index 0c1ee3f1..47b944b6 100644 --- a/mauka/CMakeLists.txt +++ b/mauka/CMakeLists.txt @@ -15,7 +15,7 @@ setup_boost(program_options filesystem regex python) setup_qt() - find_package(PythonLibs REQUIRED) + find_package(PythonLibs 2.7 REQUIRED) find_package(PythonSitePackages REQUIRED) find_package(VLSISAPD REQUIRED) find_package(HURRICANE REQUIRED) diff --git a/metis/CMakeLists.txt b/metis/CMakeLists.txt index c6be2042..bc10d065 100644 --- a/metis/CMakeLists.txt +++ b/metis/CMakeLists.txt @@ -14,7 +14,7 @@ set_lib_link_mode() setup_boost() - find_package(PythonLibs REQUIRED) + find_package(PythonLibs 2.7 REQUIRED) find_package(PythonSitePackages REQUIRED) find_package(VLSISAPD REQUIRED) find_package(HURRICANE REQUIRED) diff --git a/nimbus/CMakeLists.txt b/nimbus/CMakeLists.txt index 70215b52..6f0d7764 100644 --- a/nimbus/CMakeLists.txt +++ b/nimbus/CMakeLists.txt @@ -14,7 +14,7 @@ setup_boost(program_options filesystem python regex) setup_qt() - find_package(PythonLibs REQUIRED) + find_package(PythonLibs 2.7 REQUIRED) find_package(PythonSitePackages REQUIRED) find_package(VLSISAPD REQUIRED) find_package(HURRICANE REQUIRED) diff --git a/stratus1/CMakeLists.txt b/stratus1/CMakeLists.txt index 5763e437..aac721ee 100644 --- a/stratus1/CMakeLists.txt +++ b/stratus1/CMakeLists.txt @@ -17,7 +17,7 @@ set_lib_link_mode() setup_sysconfdir("${CMAKE_INSTALL_PREFIX}") - find_package(PythonLibs REQUIRED) + find_package(PythonLibs 2.7 REQUIRED) find_package(PythonSitePackages REQUIRED) find_package(VLSISAPD REQUIRED) find_package(HURRICANE REQUIRED) diff --git a/unicorn/CMakeLists.txt b/unicorn/CMakeLists.txt index 3349bd1e..cd53b09b 100644 --- a/unicorn/CMakeLists.txt +++ b/unicorn/CMakeLists.txt @@ -17,7 +17,7 @@ find_package(Libbfd) find_package(LibXml2 REQUIRED) - find_package(PythonLibs REQUIRED) + find_package(PythonLibs 2.7 REQUIRED) find_package(PythonSitePackages REQUIRED) find_package(LEFDEF REQUIRED) find_package(COLOQUINTE) diff --git a/vlsisapd/CMakeLists.txt b/vlsisapd/CMakeLists.txt index 9799c64c..61fd8bda 100644 --- a/vlsisapd/CMakeLists.txt +++ b/vlsisapd/CMakeLists.txt @@ -16,7 +16,7 @@ find_package(LibXml2 REQUIRED) find_package(PythonSitePackages REQUIRED) - find_package(PythonLibs REQUIRED) + find_package(PythonLibs 2.7 REQUIRED) find_package(BISON REQUIRED) find_package(FLEX REQUIRED) find_package(Doxygen) diff --git a/vlsisapd/src/liberty/src/LibertyParserScanner.ll b/vlsisapd/src/liberty/src/LibertyParserScanner.ll index e03820d3..220a2565 100644 --- a/vlsisapd/src/liberty/src/LibertyParserScanner.ll +++ b/vlsisapd/src/liberty/src/LibertyParserScanner.ll @@ -13,11 +13,7 @@ static double floatToken; static std::string nameToken; -#ifndef FLEX_BETA - int Liberty_lineno = 1; -#else extern int Liberty_lineno; -#endif From 6d6ca6363c861c21db73828998491b1bf5fe6871 Mon Sep 17 00:00:00 2001 From: EricLaoGitHub Date: Mon, 15 May 2017 18:47:01 +0200 Subject: [PATCH 11/30] KatanaEngine.cpp: - DataSymmetric's destroy() cause some memory issues. TO BE INVESTIGATED. --- katana/src/KatanaEngine.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/katana/src/KatanaEngine.cpp b/katana/src/KatanaEngine.cpp index 3aaf36cc..ff0c63c7 100644 --- a/katana/src/KatanaEngine.cpp +++ b/katana/src/KatanaEngine.cpp @@ -675,7 +675,7 @@ namespace Katana { } _routingPlanes.clear(); - for ( auto symmetric : _symmetrics ) delete symmetric.second; + //for ( auto symmetric : _symmetrics ) delete symmetric.second; _symmetrics.clear(); Session::close(); From d07cdf03e9f5e9f0c56d10c5de5da593388668dc Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Tue, 16 May 2017 14:53:33 +0200 Subject: [PATCH 12/30] Replace "unsigned int" by "Flags" in all AutoSegments collections. * Change: In Anabatic::AutoSegments collections, change the type of all the flags that where in "unsigned int" (32 bits) to Flags (uint64_t) as there is now more than 32 flags for functions. * New: In Ababatic::Constants, added new flag Flags::WithPerpands, which makes the number of flags tip over 32 bits, thus making mandatory to uses Flags and not unsigned int. * New: In Anabatic::AutoSegments_Perpandiculars, manage a new flag Flags::WithDoglegs to allow to propagate through global segments that are connecteds via doglegs on local segments. Meaning that there is a good chance that they could be aligned. Slighly change the way we propagate on aligned segments: no longer check for VTee or HTee, but only for same direction and layer as master. * New: In Anabatic & Katana, replace all the "int", "long" and their variants by the less implementation ambiguous "int32_t", "int64_t" (and variant). This should help to better detect bit trucation in flags. Use the type to give a hint about the flags kind: - Type "Flags", for flags shared among Anabatic & Katana functions/methods (may also appear in some objects states). - Type "uint32_t" for flags belonging to an object internal state of from Hurricane functions flags (those should be grouped in a Flag subclass in a perfect world). --- anabatic/src/AnabaticEngine.cpp | 16 +-- anabatic/src/AutoContact.cpp | 18 +-- anabatic/src/AutoContactHTee.cpp | 4 +- anabatic/src/AutoContactTerminal.cpp | 6 +- anabatic/src/AutoContactTurn.cpp | 2 +- anabatic/src/AutoContactVTee.cpp | 4 +- anabatic/src/AutoHorizontal.cpp | 14 +- anabatic/src/AutoSegment.cpp | 129 ++++++++++-------- anabatic/src/AutoSegments.cpp | 81 ++++++++---- anabatic/src/AutoVertical.cpp | 8 +- anabatic/src/Constants.cpp | 91 ++++++------- anabatic/src/Dijkstra.cpp | 6 +- anabatic/src/GCell.cpp | 22 ++-- anabatic/src/LayerAssign.cpp | 4 +- anabatic/src/LoadGlobalRouting.cpp | 138 ++++++++++---------- anabatic/src/Session.cpp | 10 +- anabatic/src/anabatic/AnabaticEngine.h | 18 +-- anabatic/src/anabatic/AutoContact.h | 34 ++--- anabatic/src/anabatic/AutoContactHTee.h | 2 +- anabatic/src/anabatic/AutoContactTerminal.h | 2 +- anabatic/src/anabatic/AutoContactTurn.h | 2 +- anabatic/src/anabatic/AutoContactVTee.h | 2 +- anabatic/src/anabatic/AutoHorizontal.h | 8 +- anabatic/src/anabatic/AutoSegment.h | 125 +++++++++--------- anabatic/src/anabatic/AutoSegments.h | 61 +++++---- anabatic/src/anabatic/AutoVertical.h | 8 +- anabatic/src/anabatic/Constants.h | 7 +- anabatic/src/anabatic/Dijkstra.h | 41 +++--- anabatic/src/anabatic/GCell.h | 27 ++-- anabatic/src/anabatic/Session.h | 20 +-- katana/src/Configuration.cpp | 8 +- katana/src/DataSymmetric.cpp | 4 +- katana/src/GlobalRoute.cpp | 2 +- katana/src/GraphicKatanaEngine.cpp | 12 +- katana/src/HorizontalTrack.cpp | 4 +- katana/src/KatanaEngine.cpp | 10 +- katana/src/Manipulator.cpp | 50 +++---- katana/src/NegociateWindow.cpp | 12 +- katana/src/PowerRails.cpp | 68 +++++----- katana/src/PreProcess.cpp | 6 +- katana/src/ProtectRoutingPads.cpp | 2 +- katana/src/RoutingEvent.cpp | 38 +++--- katana/src/RoutingEventQueue.cpp | 2 +- katana/src/RoutingPlane.cpp | 10 +- katana/src/SegmentFsm.cpp | 64 ++++----- katana/src/Session.cpp | 4 +- katana/src/SymmetricRoute.cpp | 2 +- katana/src/Track.cpp | 46 +++---- katana/src/TrackCost.cpp | 12 +- katana/src/TrackElement.cpp | 32 ++--- katana/src/TrackElements.cpp | 6 +- katana/src/TrackFixedSegment.cpp | 4 +- katana/src/TrackMarker.cpp | 8 +- katana/src/TrackSegment.cpp | 34 ++--- katana/src/VerticalTrack.cpp | 4 +- katana/src/katana/Configuration.h | 44 +++---- katana/src/katana/Constants.h | 6 +- katana/src/katana/DataNegociate.h | 28 ++-- katana/src/katana/GraphicKatanaEngine.h | 2 +- katana/src/katana/HorizontalTrack.h | 4 +- katana/src/katana/KatanaEngine.h | 50 +++---- katana/src/katana/Manipulator.h | 44 +++---- katana/src/katana/NegociateWindow.h | 12 +- katana/src/katana/RoutingEvent.h | 98 +++++++------- katana/src/katana/RoutingEventQueue.h | 18 +-- katana/src/katana/RoutingPlane.h | 10 +- katana/src/katana/SegmentFsm.h | 44 +++---- katana/src/katana/Session.h | 6 +- katana/src/katana/Track.h | 46 +++---- katana/src/katana/TrackCost.h | 46 +++---- katana/src/katana/TrackElement.h | 42 +++--- katana/src/katana/TrackElements.h | 11 +- katana/src/katana/TrackMarker.h | 16 +-- katana/src/katana/TrackSegment.h | 32 ++--- katana/src/katana/TrackSegmentCost.h | 52 ++++---- katana/src/katana/VerticalTrack.h | 4 +- 76 files changed, 1016 insertions(+), 953 deletions(-) diff --git a/anabatic/src/AnabaticEngine.cpp b/anabatic/src/AnabaticEngine.cpp index 3e0dc106..a35fe28d 100644 --- a/anabatic/src/AnabaticEngine.cpp +++ b/anabatic/src/AnabaticEngine.cpp @@ -445,7 +445,7 @@ namespace Anabatic { } - NetData* AnabaticEngine::getNetData ( Net* net, unsigned int flags ) + NetData* AnabaticEngine::getNetData ( Net* net, Flags flags ) { NetData* data = NULL; NetDatas::iterator idata = _netDatas.find( net->getId() ); @@ -703,7 +703,7 @@ namespace Anabatic { } - void AnabaticEngine::loadGlobalRouting ( unsigned int method ) + void AnabaticEngine::loadGlobalRouting ( uint32_t method ) { if (_state < EngineGlobalLoaded) throw Error ("AnabaticEngine::loadGlobalRouting() : global routing not present yet."); @@ -711,15 +711,9 @@ namespace Anabatic { if (_state > EngineGlobalLoaded) throw Error ("AnabaticEngine::loadGlobalRouting() : global routing already loaded."); - switch ( method ) { - case EngineLoadGrByNet: _loadGrByNet(); break; - case EngineLoadGrByGCell: - default: - throw Error( badMethod - , "Anabatic::loadGlobalRouting()" - , method - , getString(_cell).c_str() - ); + if (method == EngineLoadGrByNet ) { _loadGrByNet(); } + else { + throw Error( badMethod, "Anabatic::loadGlobalRouting()", method, getString(_cell).c_str() ); } cleanupGlobal(); diff --git a/anabatic/src/AutoContact.cpp b/anabatic/src/AutoContact.cpp index d0cad25c..67af297b 100644 --- a/anabatic/src/AutoContact.cpp +++ b/anabatic/src/AutoContact.cpp @@ -157,7 +157,7 @@ namespace Anabatic { { return _goName; } - bool AutoContact::canDestroy ( unsigned int flags ) const + bool AutoContact::canDestroy ( Flags flags ) const { if (not _contact->getSlaveComponents().isEmpty()) { if (flags & Flags::WarnOnError) { @@ -248,7 +248,7 @@ namespace Anabatic { } - Interval AutoContact::getNativeUConstraints ( unsigned int direction ) const + Interval AutoContact::getNativeUConstraints ( Flags direction ) const { Box nativeConstraints = getNativeConstraintBox(); Interval constraint; @@ -262,7 +262,7 @@ namespace Anabatic { } - Interval AutoContact::getUConstraints ( unsigned int direction ) const + Interval AutoContact::getUConstraints ( Flags direction ) const { Interval constraint; if (direction & Flags::Horizontal) { @@ -275,7 +275,7 @@ namespace Anabatic { } - void AutoContact::invalidate ( unsigned int flags ) + void AutoContact::invalidate ( Flags flags ) { if (not isInvalidated()) { cdebug_log(145,1) << "AutoContact::invalidate() - " << this << endl; @@ -342,7 +342,7 @@ namespace Anabatic { } - void AutoContact::showTopologyError ( const std::string& message, unsigned int flags ) + void AutoContact::showTopologyError ( const std::string& message, Flags flags ) { Component* anchor = NULL; Horizontal** horizontals = new Horizontal* [10]; @@ -395,7 +395,7 @@ namespace Anabatic { - bool AutoContact::isTee ( unsigned int direction ) const + bool AutoContact::isTee ( Flags direction ) const { return (isHTee() and (direction & Flags::Horizontal)) or (isVTee() and (direction & Flags::Vertical )); @@ -442,9 +442,9 @@ namespace Anabatic { } - bool AutoContact::restrictConstraintBox ( DbU::Unit constraintMin - , DbU::Unit constraintMax - , unsigned int flags + bool AutoContact::restrictConstraintBox ( DbU::Unit constraintMin + , DbU::Unit constraintMax + , Flags flags ) { cdebug_log(149,0) << "restrictConstraintBox() - " << this << " " << getConstraintBox() << endl; diff --git a/anabatic/src/AutoContactHTee.cpp b/anabatic/src/AutoContactHTee.cpp index d14baa7d..324f38ef 100644 --- a/anabatic/src/AutoContactHTee.cpp +++ b/anabatic/src/AutoContactHTee.cpp @@ -110,9 +110,9 @@ namespace Anabatic { } - void AutoContactHTee::_invalidate ( unsigned int ) + void AutoContactHTee::_invalidate ( Flags ) { - unsigned int flags = Flags::Propagate; + Flags flags = Flags::Propagate; if (_horizontal1 and _horizontal2) { if (_horizontal1->isInvalidated() xor _horizontal2->isInvalidated()) flags = Flags::NoFlags; diff --git a/anabatic/src/AutoContactTerminal.cpp b/anabatic/src/AutoContactTerminal.cpp index 376a194b..fb0aafd8 100644 --- a/anabatic/src/AutoContactTerminal.cpp +++ b/anabatic/src/AutoContactTerminal.cpp @@ -255,7 +255,7 @@ namespace Anabatic { } - void AutoContactTerminal::_invalidate ( unsigned int flags ) + void AutoContactTerminal::_invalidate ( Flags flags ) { if (_segment) _segment->invalidate(); } @@ -364,7 +364,7 @@ namespace Anabatic { _segment->getConstraints( intv ); message << "\n Segment constraints: " << intv << endl; - unsigned int flags = 0; + Flags flags = Flags::NoFlags; if (_segment->isCreated()) flags |= Flags::CParanoid; showTopologyError( message.str(), flags ); } else @@ -375,7 +375,7 @@ namespace Anabatic { message << "Terminal vertical segment X" << DbU::getValueString(_segment->getX()) << " axis is outside RoutingPad " << getUConstraints(Flags::Horizontal) << "."; - unsigned int flags = 0; + Flags flags = Flags::NoFlags; if (_segment->isCreated()) flags |= Flags::CParanoid; showTopologyError( message.str(), flags ); } else diff --git a/anabatic/src/AutoContactTurn.cpp b/anabatic/src/AutoContactTurn.cpp index 540c7140..1f004f71 100644 --- a/anabatic/src/AutoContactTurn.cpp +++ b/anabatic/src/AutoContactTurn.cpp @@ -104,7 +104,7 @@ namespace Anabatic { } - void AutoContactTurn::_invalidate ( unsigned int flags ) + void AutoContactTurn::_invalidate ( Flags flags ) { if (_horizontal1) _horizontal1->invalidate(); if (_vertical1 ) _vertical1 ->invalidate(); diff --git a/anabatic/src/AutoContactVTee.cpp b/anabatic/src/AutoContactVTee.cpp index d5816618..d6ad9744 100644 --- a/anabatic/src/AutoContactVTee.cpp +++ b/anabatic/src/AutoContactVTee.cpp @@ -106,9 +106,9 @@ namespace Anabatic { } - void AutoContactVTee::_invalidate ( unsigned int ) + void AutoContactVTee::_invalidate ( Flags ) { - unsigned int flags = Flags::Propagate; + Flags flags = Flags::Propagate; if (_vertical1 and _vertical2) { if (_vertical1->isInvalidated() xor _vertical2->isInvalidated()) flags = Flags::NoFlags; diff --git a/anabatic/src/AutoHorizontal.cpp b/anabatic/src/AutoHorizontal.cpp index 776b6932..889c4cc4 100644 --- a/anabatic/src/AutoHorizontal.cpp +++ b/anabatic/src/AutoHorizontal.cpp @@ -120,7 +120,7 @@ namespace Anabatic { } - Interval AutoHorizontal::getSourceConstraints ( unsigned int flags ) const + Interval AutoHorizontal::getSourceConstraints ( Flags flags ) const { if (flags & Flags::NativeConstraints) { Box nativeBox ( getAutoSource()->getNativeConstraintBox() ); @@ -130,7 +130,7 @@ namespace Anabatic { } - Interval AutoHorizontal::getTargetConstraints ( unsigned int flags ) const + Interval AutoHorizontal::getTargetConstraints ( Flags flags ) const { if (flags & Flags::NativeConstraints) { Box nativeBox ( getAutoTarget()->getNativeConstraintBox() ); @@ -240,7 +240,7 @@ namespace Anabatic { } - bool AutoHorizontal::_slacken ( unsigned int flags ) + bool AutoHorizontal::_slacken ( Flags flags ) { cdebug_log(149,0) << "AutoHorizontal::_slacken() " << this << endl; @@ -410,19 +410,19 @@ namespace Anabatic { cdebug_log(145,0) << "updateOrient() " << this << " (before S/T swap)" << endl; _horizontal->invert(); - unsigned int spinFlags = _flags & SegDepthSpin; + Flags spinFlags = _flags & SegDepthSpin; unsetFlags( SegDepthSpin ); if (spinFlags & SegSourceTop ) setFlags( SegTargetTop ); if (spinFlags & SegSourceBottom) setFlags( SegTargetBottom ); if (spinFlags & SegTargetTop ) setFlags( SegSourceTop ); if (spinFlags & SegTargetBottom) setFlags( SegSourceBottom ); - unsigned int invalidatedFlags = _flags & (SegInvalidatedSource|SegInvalidatedTarget); + Flags invalidatedFlags = _flags & (SegInvalidatedSource|SegInvalidatedTarget); unsetFlags( SegInvalidatedSource|SegInvalidatedTarget ); if (invalidatedFlags & SegInvalidatedSource) setFlags( SegInvalidatedTarget ); if (invalidatedFlags & SegInvalidatedTarget) setFlags( SegInvalidatedSource ); - unsigned int terminalFlags = _flags & SegStrongTerminal; + Flags terminalFlags = _flags & SegStrongTerminal; unsetFlags( SegStrongTerminal ); if (terminalFlags & SegSourceTerminal) setFlags( SegTargetTerminal ); if (terminalFlags & SegTargetTerminal) setFlags( SegSourceTerminal ); @@ -728,7 +728,7 @@ namespace Anabatic { } - unsigned int AutoHorizontal::_makeDogleg ( GCell* doglegGCell, unsigned int flags ) + Flags AutoHorizontal::_makeDogleg ( GCell* doglegGCell, Flags flags ) { DebugSession::open( getNet(), 140, 150 ); cdebug_log(149,0) << "AutoHorizontal::_makeDogleg(GCell*) in " << doglegGCell << endl; diff --git a/anabatic/src/AutoSegment.cpp b/anabatic/src/AutoSegment.cpp index 1dc88802..7f8f116d 100644 --- a/anabatic/src/AutoSegment.cpp +++ b/anabatic/src/AutoSegment.cpp @@ -412,7 +412,7 @@ namespace Anabatic { } - void AutoSegment::invalidate ( unsigned int flags ) + void AutoSegment::invalidate ( Flags flags ) { if (Session::doDestroyTool()) return; if (flags & Flags::Source) setFlags( SegInvalidatedSource ); @@ -463,7 +463,7 @@ namespace Anabatic { updateOrient (); updatePositions(); - unsigned int oldSpinFlags = _flags & SegDepthSpin; + uint32_t oldSpinFlags = _flags & SegDepthSpin; if (_flags & (SegInvalidatedSource|SegCreated)) { AutoContact* source = getAutoSource(); @@ -509,13 +509,13 @@ namespace Anabatic { } - bool AutoSegment::isStrongTerminal ( unsigned int flags ) const + bool AutoSegment::isStrongTerminal ( Flags flags ) const { if (_flags & SegStrongTerminal) return true; if ((flags & Flags::Propagate) and not isNotAligned()) { - forEach( AutoSegment*, isegment, const_cast(this)->getAligneds() ) { - if (isegment->_flags & SegStrongTerminal) return true; + for ( AutoSegment* segment : const_cast(this)->getAligneds() ) { + if (segment->_flags & SegStrongTerminal) return true; } } return false; @@ -606,36 +606,36 @@ namespace Anabatic { } - AutoSegments AutoSegment::getOnSourceContact ( unsigned int direction ) + AutoSegments AutoSegment::getOnSourceContact ( Flags direction ) { return AutoSegments_OnContact ( this, getSource() ).getSubSet( AutoSegments_InDirection(direction) ); } - AutoSegments AutoSegment::getOnTargetContact ( unsigned int direction ) + AutoSegments AutoSegment::getOnTargetContact ( Flags direction ) { return AutoSegments_OnContact ( this, getTarget() ).getSubSet( AutoSegments_InDirection(direction) ); } - AutoSegments AutoSegment::getCachedOnSourceContact ( unsigned int direction ) + AutoSegments AutoSegment::getCachedOnSourceContact ( Flags direction ) { return AutoSegments_CachedOnContact( getAutoSource(), direction ); } - AutoSegments AutoSegment::getCachedOnTargetContact ( unsigned int direction ) + AutoSegments AutoSegment::getCachedOnTargetContact ( Flags direction ) { return AutoSegments_CachedOnContact( getAutoTarget(), direction ); } - AutoSegments AutoSegment::getAligneds ( unsigned int flags ) + AutoSegments AutoSegment::getAligneds ( Flags flags ) { cdebug_log(145,0) << "AutoSegment::getAligneds() - flags:" << flags << endl; return AutoSegments_Aligneds( this, flags ); } - AutoSegments AutoSegment::getConnecteds ( unsigned int flags ) + AutoSegments AutoSegment::getConnecteds ( Flags flags ) { cdebug_log(145,0) << "AutoSegment::getConnecteds() - flags:" << flags << endl; return AutoSegments_Connecteds( this, flags ); @@ -689,7 +689,7 @@ namespace Anabatic { } - void AutoSegment::setFlagsOnAligneds ( unsigned int flags ) + void AutoSegment::setFlagsOnAligneds ( uint32_t flags ) { setFlags( flags ); if (not isNotAligned()) { @@ -769,7 +769,7 @@ namespace Anabatic { } - bool AutoSegment::toConstraintAxis ( unsigned int flags ) + bool AutoSegment::toConstraintAxis ( Flags flags ) { cdebug_log(149,1) << "toConstraintAxis() " << this << endl; @@ -807,7 +807,7 @@ namespace Anabatic { } - bool AutoSegment::toOptimalAxis ( unsigned int flags ) + bool AutoSegment::toOptimalAxis ( Flags flags ) { cdebug_log(149,1) << "toOptimalAxis() " << this << endl; @@ -843,7 +843,7 @@ namespace Anabatic { } - void AutoSegment::setAxis ( DbU::Unit axis, unsigned int flags ) + void AutoSegment::setAxis ( DbU::Unit axis, Flags flags ) { if (not isCanonical()) return; @@ -886,7 +886,7 @@ namespace Anabatic { if (not source->isTerminal()) source->setFlags( CntWeakTerminal ); } else { - unsigned int terminalFlag = 0; + uint32_t terminalFlag = 0; switch ( _getFlags() & SegWeakTerminal ) { case 0: break; case SegSourceTerminal|SegTargetTerminal: @@ -975,6 +975,8 @@ namespace Anabatic { if (perpandMax > maxGCell) attractors.addAttractor( maxGCell ); } else if (autoSegment->isLocal()) { if (autoSegment->isStrongTerminal()) { + cdebug_log(145,0) << "Used as strong terminal." << endl; + DbU::Unit terminalMin; DbU::Unit terminalMax; @@ -988,7 +990,7 @@ namespace Anabatic { attractors.addAttractor( terminalMax ); } } else if (autoSegment->isLongLocal()) { - cdebug_log(145,0) << "| Used as long global attractor." << endl; + cdebug_log(145,0) << "Used as long global attractor." << endl; DbU::Unit perpandMin = autoSegment->getSourceU(); DbU::Unit perpandMax = autoSegment->getTargetU(); @@ -1009,6 +1011,8 @@ namespace Anabatic { optimalMin = attractors.getLowerMedian(); optimalMax = attractors.getUpperMedian(); } else { + cdebug_log(145,0) << "No attractors, reverting to GCell bounding box" << endl; + optimalMin = 0; optimalMax = (isHorizontal()) ? _gcell->getBoundingBox().getYMax() : _gcell->getBoundingBox().getXMax(); @@ -1035,7 +1039,7 @@ namespace Anabatic { } - AutoSegment* AutoSegment::canonize ( unsigned int flags ) + AutoSegment* AutoSegment::canonize ( Flags flags ) { cdebug_log(149,0) << "canonize() - " << this << endl; @@ -1128,10 +1132,10 @@ namespace Anabatic { getAlignedContacts( contacts ); - DbU::Unit spanMin = DbU::Min; - DbU::Unit spanMax = DbU::Max; - Interval constraints; - unsigned int direction = getDirection(); + DbU::Unit spanMin = DbU::Min; + DbU::Unit spanMax = DbU::Max; + Interval constraints; + Flags direction = getDirection(); for ( icontact=contacts.begin() ; icontact != contacts.end() ; icontact++ ) { constraints = icontact->first->getUConstraints( direction ); @@ -1278,7 +1282,7 @@ namespace Anabatic { } - void AutoSegment::changeDepth ( unsigned int depth, unsigned int flags ) + void AutoSegment::changeDepth ( unsigned int depth, Flags flags ) { cdebug_log(149,1) << "changeDepth() " << depth << " - " << this << endl; Session::invalidate( getNet() ); @@ -1295,7 +1299,7 @@ namespace Anabatic { } - void AutoSegment::_changeDepth ( unsigned int depth, unsigned int flags ) + void AutoSegment::_changeDepth ( unsigned int depth, Flags flags ) { cdebug_log(149,1) << "_changeDepth() - " << this << endl; @@ -1346,7 +1350,7 @@ namespace Anabatic { } - bool AutoSegment::canSlacken ( unsigned int flags ) const + bool AutoSegment::canSlacken ( Flags flags ) const { cdebug_log(149,0) << "AutoSegment::canSlacken()" << endl; @@ -1363,7 +1367,7 @@ namespace Anabatic { } - bool AutoSegment::slacken ( unsigned int flags ) + bool AutoSegment::slacken ( Flags flags ) { bool success = false; @@ -1379,7 +1383,7 @@ namespace Anabatic { } - float AutoSegment::getMaxUnderDensity ( unsigned int flags ) + float AutoSegment::getMaxUnderDensity ( Flags flags ) { cdebug_log(149,0) << "AutoSegment::getMaxUnderDensity() " << endl; @@ -1407,7 +1411,7 @@ namespace Anabatic { } - bool AutoSegment::canPivotUp ( float reserve, unsigned int flags ) const + bool AutoSegment::canPivotUp ( float reserve, Flags flags ) const { cdebug_log(149,0) << "AutoSegment::canPivotUp() - " << flags << " (reserve:" << reserve << ")" << endl; @@ -1456,7 +1460,7 @@ namespace Anabatic { } - bool AutoSegment::canPivotDown ( float reserve, unsigned int flags ) const + bool AutoSegment::canPivotDown ( float reserve, Flags flags ) const { cdebug_log(149,0) << "AutoSegment::canPivotDown()" << " (reserve:" << reserve << ")" << endl; @@ -1503,7 +1507,7 @@ namespace Anabatic { } - bool AutoSegment::canMoveUp ( float reserve, unsigned int flags ) const + bool AutoSegment::canMoveUp ( float reserve, Flags flags ) const { cdebug_log(159,0) << "AutoSegment::canMoveUp() " << flags << " (reserve:" << reserve << ") " << this << endl; @@ -1601,7 +1605,7 @@ namespace Anabatic { } - bool AutoSegment::moveUp ( unsigned int flags ) + bool AutoSegment::moveUp ( Flags flags ) { //if ( not canMoveUp(0.0,flags) ) return false; changeDepth( Session::getRoutingGauge()->getLayerDepth(getLayer()) + 2, flags&Flags::Propagate ); @@ -1610,7 +1614,7 @@ namespace Anabatic { } - bool AutoSegment::moveDown ( unsigned int flags ) + bool AutoSegment::moveDown ( Flags flags ) { //if ( not canPivotDown(0.0,flags) ) return false; changeDepth( Session::getRoutingGauge()->getLayerDepth(getLayer()) - 2, flags&Flags::Propagate ); @@ -1648,7 +1652,7 @@ namespace Anabatic { #if THIS_IS_DISABLED - bool AutoSegment::shearUp ( GCell* upGCell, AutoSegment*& movedUp, float reserve, unsigned int flags ) + bool AutoSegment::shearUp ( GCell* upGCell, AutoSegment*& movedUp, float reserve, Flags flags ) { cdebug_log(149,0) << "AutoSegment::shearUp() " << this << endl; @@ -1719,7 +1723,7 @@ namespace Anabatic { #endif - unsigned int AutoSegment::canDogleg ( Interval interval ) + Flags AutoSegment::canDogleg ( Interval interval ) { cdebug_log(149,0) << "AutoSegment::canDogleg(Interval) " << interval << endl; @@ -1823,12 +1827,12 @@ namespace Anabatic { } - unsigned int AutoSegment::makeDogleg ( Interval interval, unsigned int flags ) + Flags AutoSegment::makeDogleg ( Interval interval, Flags flags ) { cdebug_log(149,1) << "AutoSegment::makeDogleg(Interval) - " << interval << endl; bool leftDogleg = true; - unsigned int rflags = 0; + Flags rflags = Flags::NoFlags; size_t leftDoglegCount = 0; size_t rightDoglegCount = 0; AutoSegment* leftCandidate = NULL; @@ -1875,9 +1879,9 @@ namespace Anabatic { cdebug_log(149,0) << "Break @" << DbU::getValueString(axis) << " " << leftCandidate << endl; - unsigned int direction = getDirection(); - GCell* gcell = leftCandidate->getAutoSource()->getGCell(); - GCell* end = leftCandidate->getAutoTarget()->getGCell(); + Flags direction = getDirection(); + GCell* gcell = leftCandidate->getAutoSource()->getGCell(); + GCell* end = leftCandidate->getAutoTarget()->getGCell(); while ( gcell != end ) { if (gcell->getSide(direction).contains(axis)) break; gcell = (direction == Flags::Horizontal) ? gcell->getEast (getNativeMin()) @@ -1899,13 +1903,13 @@ namespace Anabatic { } - unsigned int AutoSegment::makeDogleg ( GCell* doglegGCell, unsigned int flags ) + Flags AutoSegment::makeDogleg ( GCell* doglegGCell, Flags flags ) { cdebug_log(9000,0) << "Deter| AutoSegment::makeDogleg(GCell*) " << doglegGCell << endl; cdebug_log(9000,0) << "Deter| in " << this << endl; cdebug_tabw(149,1); - unsigned int rflags = 0; + Flags rflags = Flags::NoFlags; if ( doglegGCell->isIoPad() and (Session::getAnabatic()->getState() != EngineGlobalLoaded) ) { @@ -2130,10 +2134,10 @@ namespace Anabatic { } - AutoSegment* AutoSegment::create ( AutoContact* source - , AutoContact* target - , unsigned int dir - , size_t depth + AutoSegment* AutoSegment::create ( AutoContact* source + , AutoContact* target + , Flags dir + , size_t depth ) { // Hardcoded: make the assumption that, @@ -2213,7 +2217,28 @@ namespace Anabatic { } - bool AutoSegment::isTopologicalBound ( AutoSegment* seed, unsigned int flags ) + AutoSegment* AutoSegment::getGlobalThroughDogleg ( AutoSegment* dogleg, AutoContact* from ) + { + AutoContact* source = dogleg->getAutoSource(); + AutoContact* target = dogleg->getAutoTarget(); + if (not source->isTurn() or not target->isTurn()) return NULL; + + AutoSegment* fromSegment = (source == from) ? source->getPerpandicular(dogleg) : target->getPerpandicular(dogleg); + AutoSegment* toSegment = (source != from) ? source->getPerpandicular(dogleg) : target->getPerpandicular(dogleg); + + if (not toSegment->isGlobal() or (toSegment->getLayer() != fromSegment->getLayer())) return NULL; + + Interval fromConstraints; + Interval toConstraints; + fromSegment->getConstraints( fromConstraints ); + toSegment ->getConstraints( toConstraints ); + if (not fromConstraints.intersect(toConstraints)) return NULL; + + return toSegment; + } + + + bool AutoSegment::isTopologicalBound ( AutoSegment* seed, Flags flags ) { cdebug_log(145,1) << "isTopologicalBound() - " << seed << endl; @@ -2288,13 +2313,13 @@ namespace Anabatic { #if THIS_IS_DISABLED - unsigned int AutoSegment::getPerpandicularState ( AutoContact* contact - , AutoSegment* source - , AutoSegment* current - , bool isHorizontalMaster - , const Layer* masterLayer ) + Flags AutoSegment::getPerpandicularState ( AutoContact* contact + , AutoSegment* source + , AutoSegment* current + , bool isHorizontalMaster + , const Layer* masterLayer ) { - unsigned int state = 0; + Flags state = Flags::NoFlags; bool sourcePerpandicular = arePerpandiculars ( isHorizontalMaster, source ); bool currentPerpandicular = arePerpandiculars ( isHorizontalMaster, current ); diff --git a/anabatic/src/AutoSegments.cpp b/anabatic/src/AutoSegments.cpp index f2739655..5559ba57 100644 --- a/anabatic/src/AutoSegments.cpp +++ b/anabatic/src/AutoSegments.cpp @@ -196,7 +196,7 @@ namespace Anabatic { // ------------------------------------------------------------------- // Class : "AutoSegments_Connecteds". - AutoSegments_Connecteds::Locator::Locator ( AutoSegment* segment, unsigned int flags ) + AutoSegments_Connecteds::Locator::Locator ( AutoSegment* segment, Flags flags ) : AutoSegmentHL() , _stack () { @@ -292,7 +292,7 @@ namespace Anabatic { // ------------------------------------------------------------------- // Class : "AutoSegments_Aligneds". - AutoSegments_Aligneds::Locator::Locator ( AutoSegment* segment, unsigned int flags ) + AutoSegments_Aligneds::Locator::Locator ( AutoSegment* segment, Flags flags ) : AutoSegmentHL() , _flags (flags) , _master(segment) @@ -389,9 +389,10 @@ namespace Anabatic { // ------------------------------------------------------------------- // Class : "AutoSegments_Perpandiculars". - AutoSegments_Perpandiculars::Locator::Locator ( AutoSegment* master ) + AutoSegments_Perpandiculars::Locator::Locator ( AutoSegment* master, Flags flags ) : AutoSegmentHL() - , _flags (Flags::WithPerpands) + //, _flags (Flags::WithPerpands|Flags::WithDoglegs) + , _flags (Flags::WithPerpands|flags) , _master (master) , _stack () , _perpandiculars() @@ -422,7 +423,7 @@ namespace Anabatic { void AutoSegments_Perpandiculars::Locator::progress () { - cdebug_log(145,0) << "AutoSegments_Perpandiculars::Locator::progress()" << endl; + cdebug_log(145,1) << "AutoSegments_Perpandiculars::Locator::progress()" << endl; if (not _perpandiculars.empty()) _perpandiculars.pop_back(); if (not _perpandiculars.empty()) return; @@ -432,31 +433,61 @@ namespace Anabatic { AutoSegment* sourceSegment = _stack.getAutoSegment(); _stack.pop(); + cdebug_log(145,0) << "Iterate over: " << sourceContact << endl; LocatorHelper helper (sourceContact, _flags); for ( ; helper.isValid() ; helper.progress() ) { AutoSegment* currentSegment = helper.getSegment(); if (currentSegment == sourceSegment) continue; - if (AutoSegment::areAligneds(currentSegment,_master)) { - AutoContact* targetContact = currentSegment->getOppositeAnchor( sourceContact ); - if (targetContact) { - if ( (_master->isHorizontal() and sourceContact->isHTee()) - or (_master->isVertical () and sourceContact->isVTee()) ) { - if (AutoSegment::areAlignedsAndDiffLayer(currentSegment,_master)) { - cerr << Error("Aligned segments not in same layer (perpandicular locator)\n" - " %s\n" - " %s." - ,getString(_master).c_str() - ,getString(currentSegment).c_str()) << endl; - continue; - } + cdebug_log(145,0) << "| " << currentSegment << endl; - cdebug_log(145,0) << "Stacking target. " << endl; - _stack.push( targetContact, currentSegment ); + if (AutoSegment::areAligneds(currentSegment,_master)) { + AutoContact* targetContact = currentSegment->getOppositeAnchor( sourceContact ); + + if (targetContact) { + if (_master->getLayer() != currentSegment->getLayer()) { + continue; } + cdebug_log(145,0) << "Stacking target. " << endl; + _stack.push( targetContact, currentSegment ); + + // if ( (_master->isHorizontal() and sourceContact->isHTee()) + // or (_master->isVertical () and sourceContact->isVTee()) ) { + // if (AutoSegment::areAlignedsAndDiffLayer(currentSegment,_master)) { + // cerr << Error("Aligned segments not in same layer (perpandicular locator)\n" + // " %s\n" + // " %s." + // ,getString(_master).c_str() + // ,getString(currentSegment).c_str()) << endl; + // continue; + // } + + // cdebug_log(145,0) << "Stacking target. " << endl; + // _stack.push( targetContact, currentSegment ); + // } + } else { + cdebug_log(145,0) << "No opposite anchor to: " << sourceContact << endl; } } else { + if ( (_flags & Flags::WithDoglegs) and currentSegment->isLocal() and sourceContact->isTurn() ) { + AutoContact* targetContact = currentSegment->getOppositeAnchor( sourceContact ); + if (targetContact->isTurn()) { + AutoSegment* targetGlobal = targetContact->getPerpandicular( currentSegment ); + if (targetGlobal->isGlobal() and (_master->getLayer() == targetGlobal->getLayer())) { + cdebug_log(145,0) << "Global aligned though dogleg:" << targetGlobal << endl; + Interval masterConstraints; + Interval targetConstraints; + _master ->getConstraints( masterConstraints ); + targetGlobal->getConstraints( targetConstraints ); + if (targetConstraints.intersect(masterConstraints)) { + cdebug_log(145,0) << "Stacking dogleg global. " << endl; + _stack.push( targetContact, currentSegment ); + continue; + } + } + } + } _perpandiculars.push_back( currentSegment ); } } @@ -465,6 +496,8 @@ namespace Anabatic { if (_stack.getAutoSegment() == _master) continue; if (not _perpandiculars.empty()) break; } + + cdebug_tabw(145,-1); } @@ -481,7 +514,7 @@ namespace Anabatic { AutoSegmentHL* AutoSegments_Perpandiculars::getLocator () const - { return new Locator(_segment); } + { return new Locator(_master,_flags); } string AutoSegments_Perpandiculars::Locator::_getString () const @@ -494,7 +527,7 @@ namespace Anabatic { string AutoSegments_Perpandiculars::_getString () const { string s = "<" + _TName("AutoSegments_Perpandiculars") + " " - + getString(_segment) + + getString(_master) + ">"; return s; } @@ -503,7 +536,7 @@ namespace Anabatic { // ------------------------------------------------------------------- // Class : "AutoSegments_AnchorOnGCell". - AutoSegments_AnchorOnGCell::Locator::Locator ( GCell* fcell, unsigned int flags ) + AutoSegments_AnchorOnGCell::Locator::Locator ( GCell* fcell, Flags flags ) : AutoSegmentHL() , _flags (flags) , _itContact (fcell->getContacts().begin()) @@ -600,7 +633,7 @@ namespace Anabatic { // ------------------------------------------------------------------- // Class : "Anabatic::AutoSegments_CachedOnContact". - AutoSegments_CachedOnContact::Locator::Locator ( AutoContact* sourceContact, unsigned int direction ) + AutoSegments_CachedOnContact::Locator::Locator ( AutoContact* sourceContact, Flags direction ) : AutoSegmentHL() , _helper(new LocatorHelper(sourceContact,direction)) { } diff --git a/anabatic/src/AutoVertical.cpp b/anabatic/src/AutoVertical.cpp index 49213d86..958b1db1 100644 --- a/anabatic/src/AutoVertical.cpp +++ b/anabatic/src/AutoVertical.cpp @@ -115,7 +115,7 @@ namespace Anabatic { } - Interval AutoVertical::getSourceConstraints ( unsigned int flags ) const + Interval AutoVertical::getSourceConstraints ( Flags flags ) const { if (flags & Flags::NativeConstraints) { Box nativeBox ( getAutoSource()->getNativeConstraintBox() ); @@ -125,7 +125,7 @@ namespace Anabatic { } - Interval AutoVertical::getTargetConstraints ( unsigned int flags ) const + Interval AutoVertical::getTargetConstraints ( Flags flags ) const { if (flags & Flags::NativeConstraints) { Box nativeBox ( getAutoTarget()->getNativeConstraintBox() ); @@ -230,7 +230,7 @@ namespace Anabatic { } - bool AutoVertical::_slacken ( unsigned int flags ) + bool AutoVertical::_slacken ( Flags flags ) { cdebug_log(149,1) << "AutoVertical::_slacken() " << this << endl; @@ -646,7 +646,7 @@ namespace Anabatic { } - unsigned int AutoVertical::_makeDogleg ( GCell* doglegGCell, unsigned int flags ) + Flags AutoVertical::_makeDogleg ( GCell* doglegGCell, Flags flags ) { cdebug_log(149,0) << "AutoVertical::_makeDogleg(GCell*)" << endl; diff --git a/anabatic/src/Constants.cpp b/anabatic/src/Constants.cpp index ab784cc3..66b2a2d4 100644 --- a/anabatic/src/Constants.cpp +++ b/anabatic/src/Constants.cpp @@ -24,27 +24,27 @@ namespace Anabatic { const uint64_t Flags::NoFlags = 0; // Flags used for both objects states & functions arguments. - const uint64_t Flags::Horizontal = (1 << 0); - const uint64_t Flags::Vertical = (1 << 1); - const uint64_t Flags::Source = (1 << 2); - const uint64_t Flags::Target = (1 << 3); - const uint64_t Flags::Invalidated = (1 << 4); + const uint64_t Flags::Horizontal = (1L << 0); + const uint64_t Flags::Vertical = (1L << 1); + const uint64_t Flags::Source = (1L << 2); + const uint64_t Flags::Target = (1L << 3); + const uint64_t Flags::Invalidated = (1L << 4); // Flags for GCell objects states only. - const uint64_t Flags::DeviceGCell = (1 << 5); - const uint64_t Flags::HChannelGCell = (1 << 6); - const uint64_t Flags::VChannelGCell = (1 << 7); - const uint64_t Flags::StrutGCell = (1 << 8); - const uint64_t Flags::MatrixGCell = (1 << 9); - const uint64_t Flags::IoPadGCell = (1 << 10); - const uint64_t Flags::Saturated = (1 << 11); + const uint64_t Flags::DeviceGCell = (1L << 5); + const uint64_t Flags::HChannelGCell = (1L << 6); + const uint64_t Flags::VChannelGCell = (1L << 7); + const uint64_t Flags::StrutGCell = (1L << 8); + const uint64_t Flags::MatrixGCell = (1L << 9); + const uint64_t Flags::IoPadGCell = (1L << 10); + const uint64_t Flags::Saturated = (1L << 11); // Flags for Anabatic objects states only. - const uint64_t Flags::DemoMode = (1 << 5); - const uint64_t Flags::WarnOnGCellOverload = (1 << 6); - const uint64_t Flags::DestroyGCell = (1 << 7); - const uint64_t Flags::DestroyBaseContact = (1 << 8); - const uint64_t Flags::DestroyBaseSegment = (1 << 9); + const uint64_t Flags::DemoMode = (1L << 5); + const uint64_t Flags::WarnOnGCellOverload = (1L << 6); + const uint64_t Flags::DestroyGCell = (1L << 7); + const uint64_t Flags::DestroyBaseContact = (1L << 8); + const uint64_t Flags::DestroyBaseSegment = (1L << 9); // Flags for NetDatas objects states only. - const uint64_t Flags::GlobalRouted = (1 << 5); + const uint64_t Flags::GlobalRouted = (1L << 5); // Masks. const uint64_t Flags::WestSide = Horizontal|Target; const uint64_t Flags::EastSide = Horizontal|Source; @@ -56,33 +56,34 @@ namespace Anabatic { const uint64_t Flags::DestroyMask = DestroyGCell|DestroyBaseContact|DestroyBaseSegment; const uint64_t Flags::GCellTypeMask = DeviceGCell|HChannelGCell|VChannelGCell|StrutGCell|MatrixGCell|IoPadGCell; // Flags for functions arguments only. - const uint64_t Flags::Create = (1 << 5); - const uint64_t Flags::WithPerpands = (1 << 6); - const uint64_t Flags::WithSelf = (1 << 7); - const uint64_t Flags::AboveLayer = (1 << 8); - const uint64_t Flags::BelowLayer = (1 << 9); - const uint64_t Flags::OpenSession = (1 << 10); - const uint64_t Flags::Realignate = (1 << 11); - const uint64_t Flags::NativeConstraints = (1 << 12); - const uint64_t Flags::ForceMove = (1 << 13); - const uint64_t Flags::WarnOnError = (1 << 14); - const uint64_t Flags::Topology = (1 << 15); - const uint64_t Flags::GlobalSegment = (1 << 16); - const uint64_t Flags::AllowTerminal = (1 << 17); - const uint64_t Flags::AllowLocal = (1 << 18); - const uint64_t Flags::IgnoreContacts = (1 << 19); - const uint64_t Flags::Propagate = (1 << 20); - const uint64_t Flags::Superior = (1 << 21); - const uint64_t Flags::DoglegOnLeft = (1 << 22); - const uint64_t Flags::DoglegOnRight = (1 << 23); - const uint64_t Flags::WithNeighbors = (1 << 24); - const uint64_t Flags::NoCheckLayer = (1 << 25); - const uint64_t Flags::HalfSlacken = (1 << 26); - const uint64_t Flags::NoGCellShrink = (1 << 27); - const uint64_t Flags::CParanoid = (1 << 28); - const uint64_t Flags::CheckLowDensity = (1 << 29); - const uint64_t Flags::CheckLowUpDensity = (1 << 30); - const uint64_t Flags::NoUpdate = (1 << 31); + const uint64_t Flags::Create = (1L << 5); + const uint64_t Flags::WithPerpands = (1L << 6); + const uint64_t Flags::WithDoglegs = (1L << 7); + const uint64_t Flags::WithSelf = (1L << 8); + const uint64_t Flags::AboveLayer = (1L << 9); + const uint64_t Flags::BelowLayer = (1L << 10); + const uint64_t Flags::OpenSession = (1L << 11); + const uint64_t Flags::Realignate = (1L << 12); + const uint64_t Flags::NativeConstraints = (1L << 13); + const uint64_t Flags::ForceMove = (1L << 14); + const uint64_t Flags::WarnOnError = (1L << 15); + const uint64_t Flags::Topology = (1L << 16); + const uint64_t Flags::GlobalSegment = (1L << 17); + const uint64_t Flags::AllowTerminal = (1L << 18); + const uint64_t Flags::AllowLocal = (1L << 19); + const uint64_t Flags::IgnoreContacts = (1L << 20); + const uint64_t Flags::Propagate = (1L << 21); + const uint64_t Flags::Superior = (1L << 22); + const uint64_t Flags::DoglegOnLeft = (1L << 23); + const uint64_t Flags::DoglegOnRight = (1L << 24); + const uint64_t Flags::WithNeighbors = (1L << 25); + const uint64_t Flags::NoCheckLayer = (1L << 26); + const uint64_t Flags::HalfSlacken = (1L << 27); + const uint64_t Flags::NoGCellShrink = (1L << 28); + const uint64_t Flags::CParanoid = (1L << 29); + const uint64_t Flags::CheckLowDensity = (1L << 30); + const uint64_t Flags::CheckLowUpDensity = (1L << 31); + const uint64_t Flags::NoUpdate = (1L << 32); Flags::~Flags () diff --git a/anabatic/src/Dijkstra.cpp b/anabatic/src/Dijkstra.cpp index f6ef3702..998e6300 100644 --- a/anabatic/src/Dijkstra.cpp +++ b/anabatic/src/Dijkstra.cpp @@ -989,7 +989,7 @@ namespace Anabatic { } - IntervalC Vertex::getIntervFrom( unsigned int criteria ) const + IntervalC Vertex::getIntervFrom( uint32_t criteria ) const { if (_adata){ switch (criteria){ @@ -1017,13 +1017,13 @@ namespace Anabatic { return _adata->getIntervFrom(); } } else { - cdebug_log(112,1) << "DbU::Unit Vertex::getIntervFrom(unsigned int criteria) const: Inappropriate usage of GRAData. " << endl; + cdebug_log(112,1) << "DbU::Unit Vertex::getIntervFrom(Flags criteria) const: Inappropriate usage of GRAData. " << endl; return IntervalC(); } } - GCell* Vertex::getGPrev( unsigned int criteria ) const + GCell* Vertex::getGPrev( uint32_t criteria ) const { if (_adata){ switch (criteria){ diff --git a/anabatic/src/GCell.cpp b/anabatic/src/GCell.cpp index 31d149a4..a864a438 100644 --- a/anabatic/src/GCell.cpp +++ b/anabatic/src/GCell.cpp @@ -271,12 +271,12 @@ namespace Anabatic { // ------------------------------------------------------------------- // Class : "Anabatic::GCell". - Name GCell::_extensionName = "Anabatic::GCell"; - unsigned int GCell::_displayMode = GCell::Boundary; + Name GCell::_extensionName = "Anabatic::GCell"; + uint32_t GCell::_displayMode = GCell::Boundary; - unsigned int GCell::getDisplayMode () { return _displayMode; } - void GCell::setDisplayMode ( unsigned int mode ) { _displayMode = mode; } + uint32_t GCell::getDisplayMode () { return _displayMode; } + void GCell::setDisplayMode ( uint32_t mode ) { _displayMode = mode; } GCell::GCell ( AnabaticEngine* anabatic, DbU::Unit xmin, DbU::Unit ymin ) @@ -1065,11 +1065,11 @@ namespace Anabatic { { return getDensity(depth) > Session::getSaturateRatio(); } - Interval GCell::getSide ( unsigned int direction ) const - { - if (direction & Flags::Vertical) return Interval( getYMin(), getYMax() ); - return Interval( getXMin(), getXMax() ); - } + // Interval GCell::getSide ( Flags direction ) const + // { + // if (direction & Flags::Vertical) return Interval( getYMin(), getYMax() ); + // return Interval( getXMin(), getXMax() ); + // } AutoSegments GCell::getHStartSegments () @@ -1154,7 +1154,7 @@ namespace Anabatic { } - float GCell::getDensity ( unsigned int flags ) const + float GCell::getDensity ( Flags flags ) const { if (isInvalidated() and not(flags & Flags::NoUpdate)) const_cast(this)->updateDensity(); @@ -1552,7 +1552,7 @@ namespace Anabatic { bool GCell::stepDesaturate ( size_t depth , set& globalNets , AutoSegment*& moved - , unsigned int flags + , Flags flags ) { cdebug_log(9000,0) << "Deter| GCell::stepDesaturate() [" << getId() << "] depth:" << depth << endl; diff --git a/anabatic/src/LayerAssign.cpp b/anabatic/src/LayerAssign.cpp index 88591ba0..759c18d8 100644 --- a/anabatic/src/LayerAssign.cpp +++ b/anabatic/src/LayerAssign.cpp @@ -45,7 +45,7 @@ namespace Anabatic { using Hurricane::NetRoutingExtension; - void AnabaticEngine::_desaturate ( unsigned int depth + void AnabaticEngine::_desaturate ( unsigned int depth , set& globalNets , unsigned long& total , unsigned long& globals ) @@ -472,7 +472,7 @@ namespace Anabatic { #endif - void AnabaticEngine::layerAssign ( unsigned int method ) + void AnabaticEngine::layerAssign ( uint32_t method ) { cdebug_log(9000,0) << "Deter| Layer Assignment" << endl; diff --git a/anabatic/src/LoadGlobalRouting.cpp b/anabatic/src/LoadGlobalRouting.cpp index 92bfea85..2b75b81f 100644 --- a/anabatic/src/LoadGlobalRouting.cpp +++ b/anabatic/src/LoadGlobalRouting.cpp @@ -102,7 +102,7 @@ namespace { //! request the creation of a contact on the target point. -//! \function unsigned int checkRoutingPadSize ( Component* rp ); +//! \function uint64_t checkRoutingPadSize ( Component* rp ); //! //! Look at the geometrical size of the Component and assess if //! it's span is too narrow either horizontally or vertically. @@ -127,7 +127,7 @@ namespace { * call the canonization, which needs all the caches to be up to date. */ -//! \function void GCellTopology::doRp_AutoContacts ( GCell* gcell, Component* rp, AutoContact*& source, AutoContact*& target, unsigned int flags ); +//! \function void GCellTopology::doRp_AutoContacts ( GCell* gcell, Component* rp, AutoContact*& source, AutoContact*& target, uint64_t flags ); //! \param gcell The GCell into which create the AutoContact. //! \param rp The Component we want to access. //! \param source The AutoContact created on the \c source (\e returned). @@ -166,7 +166,7 @@ namespace { //! //! \image html doRp_AutoContacts.png "doRp_AutoContacts()" -//! \function AutoContact* GCellTopology::doRp_Access ( GCell* gcell, Component* rp, unsigned int flags ); +//! \function AutoContact* GCellTopology::doRp_Access ( GCell* gcell, Component* rp, uint64_t flags ); //! \param gcell The GCell into which create the AutoContact. //! \param rp The Component onto which anchor the access contact. //! \param flags Relevant flags are: @@ -185,7 +185,7 @@ namespace { //! //! \image html doRp_Access.png "doRp_Access()" -//! \function AutoContact* GCellTopology::doRp_AccessPad ( RoutingPad* rp, unsigned int flags ); +//! \function AutoContact* GCellTopology::doRp_AccessPad ( RoutingPad* rp, uint64_t flags ); //! \param rp The Component onto which anchor the access contact. //! \param flags Relevant flags are: //! - HAccess, the terminal is to be accessed through an horizontal @@ -405,21 +405,21 @@ namespace { // --------------------------------------------------------------- // Local Enum/Types. - enum LocalFunctionFlag { NoFlags = 0x00000000 - , SortDecreasing = 0x00000001 - , HAccess = 0x00000002 - , VSmall = 0x00000004 - , HSmall = 0x00000008 - , Punctual = 0x00000010 - , HCollapse = 0x00000020 - , VCollapse = 0x00000040 - , Terminal = 0x00000080 - , DoSourceContact = 0x00000100 - , DoTargetContact = 0x00000200 - , SouthBound = 0x00010000 - , NorthBound = 0x00020000 - , WestBound = 0x00040000 - , EastBound = 0x00080000 + enum LocalFunctionFlag { NoFlags = (1 << 0) + , SortDecreasing = (1 << 1) + , HAccess = (1 << 2) + , VSmall = (1 << 3) + , HSmall = (1 << 4) + , Punctual = (1 << 5) + , HCollapse = (1 << 6) + , VCollapse = (1 << 7) + , Terminal = (1 << 8) + , DoSourceContact = (1 << 9) + , DoTargetContact = (1 << 10) + , SouthBound = (1 << 11) + , NorthBound = (1 << 12) + , WestBound = (1 << 13) + , EastBound = (1 << 14) }; @@ -483,7 +483,7 @@ namespace { } - unsigned int checkRoutingPadSize ( Component* anchor ) + uint64_t checkRoutingPadSize ( Component* anchor ) { Point source; Point target; @@ -496,7 +496,7 @@ namespace { DbU::Unit width = abs( target.getX() - source.getX() ); DbU::Unit height = abs( target.getY() - source.getY() ); - unsigned int flags = 0; + uint64_t flags = 0; flags |= (width < 3*Session::getPitch(anchorDepth)) ? HSmall : 0; flags |= (height < 3*Session::getPitch(anchorDepth)) ? VSmall : 0; flags |= ((width == 0) && (height == 0)) ? Punctual : 0; @@ -518,7 +518,7 @@ namespace { } - unsigned int getSegmentHookType ( Hook* hook ) + uint64_t getSegmentHookType ( Hook* hook ) { Horizontal* horizontal = dynamic_cast( hook->getComponent() ); if (horizontal) { @@ -548,14 +548,14 @@ namespace { class SortHkByX { public: - inline SortHkByX ( unsigned int flags ); + inline SortHkByX ( uint64_t flags ); inline bool operator() ( Hook* h1, Hook* h2 ); protected: - unsigned int _flags; + uint64_t _flags; }; - inline SortHkByX::SortHkByX ( unsigned int flags ) + inline SortHkByX::SortHkByX ( uint64_t flags ) : _flags(flags) { } @@ -586,14 +586,14 @@ namespace { class SortHkByY { public: - inline SortHkByY ( unsigned int flags ); + inline SortHkByY ( uint64_t flags ); inline bool operator() ( Hook* h1, Hook* h2 ); protected: - unsigned int _flags; + uint64_t _flags; }; - inline SortHkByY::SortHkByY ( unsigned int flags ) + inline SortHkByY::SortHkByY ( uint64_t flags ) : _flags(flags) { } @@ -624,14 +624,14 @@ namespace { class SortRpByX { public: - inline SortRpByX ( unsigned int flags ); + inline SortRpByX ( uint64_t flags ); inline bool operator() ( Component* rp1, Component* rp2 ); protected: - unsigned int _flags; + uint64_t _flags; }; - inline SortRpByX::SortRpByX ( unsigned int flags ) + inline SortRpByX::SortRpByX ( uint64_t flags ) : _flags(flags) { } @@ -651,14 +651,14 @@ namespace { class SortRpByY { public: - inline SortRpByY ( unsigned int flags ); + inline SortRpByY ( uint64_t flags ); inline bool operator() ( Component* rp1, Component* rp2 ); protected: - unsigned int _flags; + uint64_t _flags; }; - inline SortRpByY::SortRpByY ( unsigned int flags ) + inline SortRpByY::SortRpByY ( uint64_t flags ) : _flags(flags) { } @@ -718,10 +718,10 @@ namespace { void construct ( ForkStack& forks ); inline unsigned int getStateG () const; inline GCell* getGCell () const; - static void doRp_AutoContacts ( GCell*, Component*, AutoContact*& source, AutoContact*& target, unsigned int flags ); - static AutoContact* doRp_Access ( GCell*, Component*, unsigned int flags ); - static AutoContact* doRp_AccessPad ( RoutingPad*, unsigned int flags ); - static AutoContact* doRp_AccessAnalog ( GCell*, RoutingPad*, unsigned int flags ); + static void doRp_AutoContacts ( GCell*, Component*, AutoContact*& source, AutoContact*& target, uint64_t flags ); + static AutoContact* doRp_Access ( GCell*, Component*, uint64_t flags ); + static AutoContact* doRp_AccessPad ( RoutingPad*, uint64_t flags ); + static AutoContact* doRp_AccessAnalog ( GCell*, RoutingPad*, uint64_t flags ); static void doRp_StairCaseH ( GCell*, Component* rp1, Component* rp2 ); static void doRp_StairCaseV ( GCell*, Component* rp1, Component* rp2 ); private: @@ -1207,7 +1207,7 @@ namespace { , Component* rp , AutoContact*& source , AutoContact*& target - , unsigned int flags + , uint64_t flags ) { cdebug_log(145,1) << "doRp_AutoContacts()" << endl; @@ -1219,7 +1219,7 @@ namespace { Point targetPosition; const Layer* rpLayer = rp->getLayer(); size_t rpDepth = Session::getLayerDepth( rp->getLayer() ); - unsigned int direction = Session::getDirection ( rpDepth ); + Flags direction = Session::getDirection ( rpDepth ); DbU::Unit viaSide = Session::getWireWidth ( rpDepth ); getPositions( rp, sourcePosition, targetPosition ); @@ -1293,7 +1293,7 @@ namespace { } - AutoContact* GCellTopology::doRp_Access ( GCell* gcell, Component* rp, unsigned int flags ) + AutoContact* GCellTopology::doRp_Access ( GCell* gcell, Component* rp, uint64_t flags ) { cdebug_log(145,1) << "doRp_Access() - flags:" << flags << endl; @@ -1326,7 +1326,7 @@ namespace { } - AutoContact* GCellTopology::doRp_AccessPad ( RoutingPad* rp, unsigned int flags ) + AutoContact* GCellTopology::doRp_AccessPad ( RoutingPad* rp, uint64_t flags ) { cdebug_log(145,1) << "doRp_AccessPad()" << endl; cdebug_log(145,0) << rp << endl; @@ -1473,7 +1473,7 @@ namespace { } - AutoContact* GCellTopology::doRp_AccessAnalog ( GCell* gcell, RoutingPad* rp, unsigned int flags ) + AutoContact* GCellTopology::doRp_AccessAnalog ( GCell* gcell, RoutingPad* rp, uint64_t flags ) { cdebug_log(145,1) << "doRp_AccessAnalog()" << endl; cdebug_log(145,0) << rp << endl; @@ -1637,12 +1637,12 @@ namespace { cdebug_log(145,1) << "_do_xG_1Pad() [Managed Configuration - Optimized] " << _topology << endl; cdebug_log(145,0) << "_connexity.globals:" << (int)_connexity.fields.globals << endl; - unsigned int flags = NoFlags; - bool eastPad = false; - bool westPad = false; - bool northPad = false; - bool southPad = false; - Instance* padInstance = _routingPads[0]->getOccurrence().getPath().getHeadInstance(); + uint64_t flags = NoFlags; + bool eastPad = false; + bool westPad = false; + bool northPad = false; + bool southPad = false; + Instance* padInstance = _routingPads[0]->getOccurrence().getPath().getHeadInstance(); switch ( padInstance->getTransformation().getOrientation() ) { case Transformation::Orientation::ID: northPad = true; break; @@ -1657,10 +1657,10 @@ namespace { break; } cdebug_log(145,0) << "eastPad:" << eastPad << ", " - << "westPad:" << westPad << ", " - << "northPad:" << northPad << ", " - << "southPad:" << southPad - << endl; + << "westPad:" << westPad << ", " + << "northPad:" << northPad << ", " + << "southPad:" << southPad + << endl; AutoContact* source = doRp_AccessPad( _routingPads[0], flags ); // Point position = _routingPads[0]->getCenter(); @@ -1759,7 +1759,7 @@ namespace { { cdebug_log(145,1) << "_do_1G_1M1() [Managed Configuration - Optimized] " << _topology << endl; - unsigned int flags = NoFlags; + uint64_t flags = NoFlags; if (_east ) { flags |= HAccess; } else if (_west ) { flags |= HAccess; } else if (_north) { flags |= VSmall; } @@ -1776,7 +1776,7 @@ namespace { cdebug_log(145,1) << "_do_1G_" << (int)_connexity.fields.M1 << "M1() [Managed Configuration]" << endl; sort( _routingPads.begin(), _routingPads.end(), SortRpByX(NoFlags) ); // increasing X. - for ( unsigned int i=1 ; i<_routingPads.size() ; ++i ) { + for ( size_t i=1 ; i<_routingPads.size() ; ++i ) { AutoContact* leftContact = doRp_Access( _gcell, _routingPads[i-1], HAccess ); AutoContact* rightContact = doRp_Access( _gcell, _routingPads[i ], HAccess ); AutoSegment::create( leftContact, rightContact, Flags::Horizontal ); @@ -1789,7 +1789,7 @@ namespace { globalRp = _routingPads[0]; cdebug_log(145,0) << "| Initial N/S Global RP: " << globalRp << endl; - for ( unsigned int i=1 ; i<_routingPads.size() ; ++i ) { + for ( size_t i=1 ; i<_routingPads.size() ; ++i ) { if (_routingPads[i]->getBoundingBox().getHeight() > globalRp->getBoundingBox().getHeight()) { cdebug_log(145,0) << "| Better RP: " << globalRp << endl; globalRp = _routingPads[i]; @@ -1889,7 +1889,7 @@ namespace { rpM3 = _routingPads[0]; sort( _routingPads.begin(), _routingPads.end(), SortRpByX(NoFlags) ); // increasing X. - for ( unsigned int i=1 ; i<_routingPads.size() ; ++i ) { + for ( size_t i=1 ; i<_routingPads.size() ; ++i ) { AutoContact* leftContact = doRp_Access( _gcell, _routingPads[i-1], HAccess ); AutoContact* rightContact = doRp_Access( _gcell, _routingPads[i ], HAccess ); AutoSegment::create( leftContact, rightContact, Flags::Horizontal ); @@ -1927,7 +1927,7 @@ namespace { // All RoutingPad are M1. Component* southWestRp = _routingPads[0]; cdebug_log(145,0) << "| Initial S-W Global RP: " << southWestRp << endl; - for ( unsigned int i=1 ; i<_routingPads.size() ; ++i ) { + for ( size_t i=1 ; i<_routingPads.size() ; ++i ) { if (southWestRp->getBoundingBox().getHeight() >= 4*Session::getPitch(1)) break; if (_routingPads[i]->getBoundingBox().getHeight() > southWestRp->getBoundingBox().getHeight()) { cdebug_log(145,0) << "| Better RP: " << southWestRp << endl; @@ -1951,7 +1951,7 @@ namespace { cdebug_log(145,0) << "| Initial N-E Global RP: " << northEastRp << endl; if (_routingPads.size() > 1) { - for ( unsigned int i=_routingPads.size()-1; i != 0 ; ) { + for ( size_t i=_routingPads.size()-1; i != 0 ; ) { i -= 1; if (northEastRp->getBoundingBox().getHeight() >= 4*Session::getPitch(1)) break; if (_routingPads[i]->getBoundingBox().getHeight() > northEastRp->getBoundingBox().getHeight()) { @@ -2006,7 +2006,7 @@ namespace { << (int)_connexity.fields.M2 << "M2() [Managed Configuration - x]" << endl; Component* biggestRp = _routingPads[0]; - for ( unsigned int i=1 ; i<_routingPads.size() ; ++i ) { + for ( size_t i=1 ; i<_routingPads.size() ; ++i ) { doRp_StairCaseH( _gcell, _routingPads[i-1], _routingPads[i] ); if (_routingPads[i]->getBoundingBox().getWidth() > biggestRp->getBoundingBox().getWidth()) biggestRp = _routingPads[i]; @@ -2042,7 +2042,7 @@ namespace { { cdebug_log(145,1) << "_do_1G_1M3() [Optimised Configuration]" << endl; - unsigned int flags = (_east or _west) ? HAccess : NoFlags; + uint64_t flags = (_east or _west) ? HAccess : NoFlags; flags |= (_north) ? DoTargetContact : NoFlags; flags |= (_south) ? DoSourceContact : NoFlags; @@ -2091,7 +2091,7 @@ namespace { cdebug_log(145,0) << "_north:" << _north << endl; sort( _routingPads.begin(), _routingPads.end(), SortRpByY(NoFlags) ); // increasing Y. - for ( unsigned int i=1 ; i<_routingPads.size() ; i++ ) { + for ( size_t i=1 ; i<_routingPads.size() ; i++ ) { doRp_StairCaseV( _gcell, _routingPads[i-1], _routingPads[i] ); } @@ -2263,7 +2263,7 @@ namespace { { cdebug_log(145,1) << "void GCellTopology::_doDevice ()" << _gcell << endl; // #0: Check if all RoutingPads are set to a component. - for ( unsigned int i=0; i<_routingPads.size() ; i++ ) { + for ( size_t i=0; i<_routingPads.size() ; i++ ) { if ( ( _routingPads[i]->getSourcePosition().getX() == _routingPads[i]->getTargetPosition().getX() ) &&( _routingPads[i]->getSourcePosition().getY() == _routingPads[i]->getTargetPosition().getY() ) ){ @@ -2294,7 +2294,7 @@ namespace { rpNE = _routingPads[0]; rpSW = _routingPads[0]; - for ( unsigned int i=1 ; i<_routingPads.size() ; i++ ) { + for ( size_t i=1 ; i<_routingPads.size() ; i++ ) { rpNE = returnNE( _gcell, rpNE, _routingPads[i] ); rpSW = returnSW( _gcell, rpSW, _routingPads[i] ); } @@ -3409,14 +3409,14 @@ namespace Anabatic { startMeasures(); openSession(); - forEach ( Net*, inet, getCell()->getNets() ) { - if (NetRoutingExtension::isAutomaticGlobalRoute(*inet)) { - DebugSession::open( *inet, 140, 150 ); - _loadNetGlobalRouting( *inet ); + for ( Net* net : getCell()->getNets() ) { + if (NetRoutingExtension::isAutomaticGlobalRoute(net)) { + DebugSession::open( net, 145, 150 ); + _loadNetGlobalRouting( net ); Session::revalidate(); DebugSession::close(); } - } // forEach(Net*) + } #if defined(CHECK_DATABASE) _check ( "after Anabatic loading" ); diff --git a/anabatic/src/Session.cpp b/anabatic/src/Session.cpp index 86636abf..b5866b07 100644 --- a/anabatic/src/Session.cpp +++ b/anabatic/src/Session.cpp @@ -248,7 +248,7 @@ namespace Anabatic { _segmentInvalidateds.clear(); cdebug_log(145,0) << "AutoSegments/AutoContacts queued deletion." << endl; - unsigned int flags = _anabatic->flags() & Flags::DestroyMask; + Flags flags = _anabatic->flags() & Flags::DestroyMask; _anabatic->flags() = Flags::DestroyMask; set::iterator isegment = _destroyedSegments.begin(); for ( ; isegment != _destroyedSegments.end() ; isegment++ ) { @@ -300,18 +300,18 @@ namespace Anabatic { } - unsigned int Session::getDirection ( size_t depth ) + Flags Session::getDirection ( size_t depth ) { RoutingGauge* rg = get("getDirection()")->_routingGauge; switch ( rg->getLayerDirection(depth) ) { case Constant::Horizontal: return Flags::Horizontal; case Constant::Vertical: return Flags::Vertical; } - return 0; + return Flags::NoFlags; } - DbU::Unit Session::_getPitch ( size_t depth, unsigned int flags ) const + DbU::Unit Session::_getPitch ( size_t depth, Flags flags ) const { if (flags == Flags::NoFlags) return _routingGauge->getLayerPitch(depth); @@ -380,7 +380,7 @@ namespace Anabatic { { return get("doWarnGCellOverload()")->_anabatic->doWarnOnGCellOverload(); } - void Session::setAnabaticFlags ( unsigned int flags ) + void Session::setAnabaticFlags ( Flags flags ) { get("setKabaticFlags()")->_anabatic->flags() = flags; } diff --git a/anabatic/src/anabatic/AnabaticEngine.h b/anabatic/src/anabatic/AnabaticEngine.h index 7b93b3fd..22241070 100644 --- a/anabatic/src/anabatic/AnabaticEngine.h +++ b/anabatic/src/anabatic/AnabaticEngine.h @@ -163,7 +163,7 @@ namespace Anabatic { // Class : "Anabatic::AnabaticEngine". typedef std::set NetSet; - typedef std::map NetDatas; + typedef std::map NetDatas; class AnabaticEngine : public ToolEngine { @@ -184,7 +184,7 @@ namespace Anabatic { static const Name& staticGetName (); virtual const Name& getName () const; virtual Configuration* getConfiguration (); - inline unsigned int getDensityMode () const; + inline uint64_t getDensityMode () const; inline CellViewer* getViewer () const; inline void setViewer ( CellViewer* ); inline EngineState getState () const; @@ -200,11 +200,11 @@ namespace Anabatic { size_t getNetsFromEdge ( const Edge*, NetSet& ); virtual void openSession (); inline void setState ( EngineState state ); - inline void setDensityMode ( unsigned int ); + inline void setDensityMode ( uint64_t ); inline void addOv ( Edge* ); inline void removeOv ( Edge* ); inline const NetDatas& getNetDatas () const; - NetData* getNetData ( Net*, unsigned int flags=Flags::NoFlags ); + NetData* getNetData ( Net*, Flags flags=Flags::NoFlags ); void setupNetDatas (); void updateMatrix (); // Dijkstra related functions. @@ -239,12 +239,12 @@ namespace Anabatic { void chipPrep (); void setupSpecialNets (); void setupPreRouteds (); - void loadGlobalRouting ( unsigned int method ); + void loadGlobalRouting ( uint32_t method ); void computeNetConstraints ( Net* ); void toOptimals ( Net* ); void updateNetTopology ( Net* ); bool moveUpNetTrunk ( AutoSegment*, set& globalNets, GCell::Set& invalidateds ); - void layerAssign ( unsigned int method ); + void layerAssign ( uint32_t method ); void finalizeLayout (); inline const AutoContactLut& _getAutoContactLut () const; inline const AutoSegmentLut& _getAutoSegmentLut () const; @@ -304,7 +304,7 @@ namespace Anabatic { CellViewer* _viewer; Flags _flags; int _stamp; - unsigned int _densityMode; + uint64_t _densityMode; AutoSegmentLut _autoSegmentLut; AutoContactLut _autoContactLut; Net* _blockageNet; @@ -322,8 +322,8 @@ namespace Anabatic { inline GCell* AnabaticEngine::getGCellUnder ( DbU::Unit x, DbU::Unit y ) const { return _matrix.getUnder(x,y); } inline GCell* AnabaticEngine::getGCellUnder ( Point p ) const { return _matrix.getUnder(p); } inline GCellsUnder AnabaticEngine::getGCellsUnder ( Segment* s ) const { return std::shared_ptr( new RawGCellsUnder(this,s) ); } - inline unsigned int AnabaticEngine::getDensityMode () const { return _densityMode; } - inline void AnabaticEngine::setDensityMode ( unsigned int mode ) { _densityMode=mode; } + inline uint64_t AnabaticEngine::getDensityMode () const { return _densityMode; } + inline void AnabaticEngine::setDensityMode ( uint64_t mode ) { _densityMode=mode; } inline void AnabaticEngine::setBlockageNet ( Net* net ) { _blockageNet = net; } inline const AutoContactLut& AnabaticEngine::_getAutoContactLut () const { return _autoContactLut; } inline const AutoSegmentLut& AnabaticEngine::_getAutoSegmentLut () const { return _autoSegmentLut; } diff --git a/anabatic/src/anabatic/AutoContact.h b/anabatic/src/anabatic/AutoContact.h index 53ee3b33..d738d42e 100644 --- a/anabatic/src/anabatic/AutoContact.h +++ b/anabatic/src/anabatic/AutoContact.h @@ -106,13 +106,13 @@ namespace Anabatic { inline bool isInvalidatedCache () const; inline bool isTerminal () const; inline bool isTurn () const; - bool isTee ( unsigned int direction ) const; + bool isTee ( Flags direction ) const; inline bool isHTee () const; inline bool isVTee () const; inline bool isFixed () const; inline bool isUserNativeConstraints () const; inline bool hasBadTopology () const; - bool canDestroy ( unsigned int flags=0 ) const; + bool canDestroy ( Flags flags=Flags::NoFlags ) const; bool canMoveUp ( const AutoSegment* moved ) const; // Accessors. inline Contact* base () const; @@ -130,8 +130,8 @@ namespace Anabatic { inline unsigned int getMaxDepth () const; void getLengths ( DbU::Unit* lengths, AutoSegment::DepthLengthSet& ); virtual Box getNativeConstraintBox () const; - Interval getNativeUConstraints ( unsigned int direction ) const; - Interval getUConstraints ( unsigned int direction ) const; + Interval getNativeUConstraints ( Flags direction ) const; + Interval getUConstraints ( Flags direction ) const; inline DbU::Unit getCBXMin () const; inline DbU::Unit getCBXMax () const; inline DbU::Unit getCBYMin () const; @@ -141,17 +141,17 @@ namespace Anabatic { // Collections. AutoSegments getAutoSegments (); // Modifiers. - void invalidate ( unsigned int flags=0 ); + void invalidate ( Flags flags=Flags::NoFlags ); virtual void cacheDetach ( AutoSegment* ) = 0; virtual void cacheAttach ( AutoSegment* ) = 0; virtual void updateCache () = 0; virtual void updateGeometry () = 0; virtual void updateTopology () = 0; - void showTopologyError ( const std::string&, unsigned int flags=0 ); + void showTopologyError ( const std::string&, Flags flags=Flags::NoFlags ); virtual void checkTopology (); virtual void forceOnGrid ( Point ); - inline void setFlags ( unsigned int ); - inline void unsetFlags ( unsigned int ); + inline void setFlags ( Flags ); + inline void unsetFlags ( Flags ); void setGCell ( GCell* ); inline void setCBXMin ( DbU::Unit xMin ); inline void setCBXMax ( DbU::Unit xMax ); @@ -160,7 +160,7 @@ namespace Anabatic { void setConstraintBox ( const Box& box ); bool restrictConstraintBox ( DbU::Unit constraintMin , DbU::Unit constraintMax - , unsigned int flags=Flags::WarnOnError ); + , Flags flags=Flags::WarnOnError ); void restoreNativeConstraintBox (); void migrateConstraintBox ( AutoContact* other ); void destroy (); @@ -179,7 +179,7 @@ namespace Anabatic { size_t _id; Contact* _contact; GCell* _gcell; - unsigned int _flags; + Flags _flags; DbU::Unit _xMin; DbU::Unit _xMax; DbU::Unit _yMin; @@ -200,7 +200,7 @@ namespace Anabatic { inline int _boundX ( DbU::Unit x ) const; inline int _boundY ( DbU::Unit x ) const; static void _getTopology ( Contact*, Component*& anchor, Horizontal**&, Vertical**&, size_t ); - virtual void _invalidate ( unsigned int flags ) = 0; + virtual void _invalidate ( Flags flags ) = 0; }; @@ -251,8 +251,8 @@ namespace Anabatic { inline void AutoContact::setCBXMax ( DbU::Unit xMax ) { _xMax = _boundX(xMax); } inline void AutoContact::setCBYMin ( DbU::Unit yMin ) { _yMin = _boundY(yMin); } inline void AutoContact::setCBYMax ( DbU::Unit yMax ) { _yMax = _boundY(yMax); } - inline void AutoContact::setFlags ( unsigned int flags ) { _flags|= flags; } - inline void AutoContact::unsetFlags ( unsigned int flags ) { _flags&=~flags; } + inline void AutoContact::setFlags ( Flags flags ) { _flags|= flags; } + inline void AutoContact::unsetFlags ( Flags flags ) { _flags&=~flags; } inline DbU::Unit AutoContact::getCBXMin () const { return isFixed() ? _contact->getX() : _xMin; } inline DbU::Unit AutoContact::getCBXMax () const { return isFixed() ? _contact->getX() : _xMax; } inline DbU::Unit AutoContact::getCBYMin () const { return isFixed() ? _contact->getY() : _yMin; } @@ -277,7 +277,7 @@ namespace Anabatic { class LocatorHelper { public: - inline LocatorHelper ( AutoContact*, unsigned int flags=0 ); + inline LocatorHelper ( AutoContact*, Flags flags=Flags::NoFlags ); inline bool isValid () const; inline AutoSegment* getSegment () const; inline void progress (); @@ -285,13 +285,13 @@ namespace Anabatic { inline unsigned int _min () const; inline unsigned int _max () const; private: - unsigned int _flags; + Flags _flags; unsigned int _index; AutoContact* _contact; }; - inline LocatorHelper::LocatorHelper ( AutoContact* contact, unsigned int flags ) + inline LocatorHelper::LocatorHelper ( AutoContact* contact, Flags flags ) : _flags(flags), _index(_min()), _contact(contact) { cdebug_tabw(145,1); @@ -314,7 +314,7 @@ namespace Anabatic { inline AutoSegment* LocatorHelper::getSegment () const { - cdebug_log(145,0) << "LocatorHelper::getSegment(" << _index << ") - " << _contact->getSegment(_index) << endl; + cdebug_log(145,0) << " LocatorHelper::getSegment(" << _index << ") - " << _contact->getSegment(_index) << endl; return (_index < _max()) ? _contact->getSegment(_index) : NULL; } diff --git a/anabatic/src/anabatic/AutoContactHTee.h b/anabatic/src/anabatic/AutoContactHTee.h index b46c0b7a..590dd179 100644 --- a/anabatic/src/anabatic/AutoContactHTee.h +++ b/anabatic/src/anabatic/AutoContactHTee.h @@ -39,7 +39,7 @@ namespace Anabatic { // Constructors & Destructors. AutoContactHTee ( GCell*, Contact* ); virtual ~AutoContactHTee (); - virtual void _invalidate ( unsigned int flags ); + virtual void _invalidate ( Flags flags ); public: inline AutoHorizontal* getHorizontal1 () const; inline AutoHorizontal* getHorizontal2 () const; diff --git a/anabatic/src/anabatic/AutoContactTerminal.h b/anabatic/src/anabatic/AutoContactTerminal.h index 0b134311..74268c8d 100644 --- a/anabatic/src/anabatic/AutoContactTerminal.h +++ b/anabatic/src/anabatic/AutoContactTerminal.h @@ -57,7 +57,7 @@ namespace Anabatic { // Constructors & Destructors. AutoContactTerminal ( GCell*, Contact* ); virtual ~AutoContactTerminal (); - virtual void _invalidate ( unsigned int flags ); + virtual void _invalidate ( Flags flags ); public: bool isEndPoint () const; virtual Box getNativeConstraintBox () const; diff --git a/anabatic/src/anabatic/AutoContactTurn.h b/anabatic/src/anabatic/AutoContactTurn.h index 3c3f87df..d03aad1d 100644 --- a/anabatic/src/anabatic/AutoContactTurn.h +++ b/anabatic/src/anabatic/AutoContactTurn.h @@ -38,7 +38,7 @@ namespace Anabatic { // Constructors & Destructors. AutoContactTurn ( GCell*, Contact* ); virtual ~AutoContactTurn (); - virtual void _invalidate ( unsigned int flags ); + virtual void _invalidate ( Flags flags ); public: inline AutoHorizontal* getHorizontal1 () const; inline AutoVertical* getVertical1 () const; diff --git a/anabatic/src/anabatic/AutoContactVTee.h b/anabatic/src/anabatic/AutoContactVTee.h index e819fe88..91ce30f8 100644 --- a/anabatic/src/anabatic/AutoContactVTee.h +++ b/anabatic/src/anabatic/AutoContactVTee.h @@ -36,7 +36,7 @@ namespace Anabatic { // Constructors & Destructors. AutoContactVTee ( GCell*, Contact* ); virtual ~AutoContactVTee (); - virtual void _invalidate ( unsigned int flags ); + virtual void _invalidate ( Flags flags ); public: inline AutoHorizontal* getHorizontal1 () const; inline AutoVertical* getVertical1 () const; diff --git a/anabatic/src/anabatic/AutoHorizontal.h b/anabatic/src/anabatic/AutoHorizontal.h index 1726c3f0..ad37bdbe 100644 --- a/anabatic/src/anabatic/AutoHorizontal.h +++ b/anabatic/src/anabatic/AutoHorizontal.h @@ -46,8 +46,8 @@ namespace Anabatic { virtual DbU::Unit getDuTarget () const; virtual Interval getSpanU () const; virtual bool getConstraints ( DbU::Unit& min , DbU::Unit& max ) const; - virtual Interval getSourceConstraints ( unsigned int flags=0 ) const; - virtual Interval getTargetConstraints ( unsigned int flags=0 ) const; + virtual Interval getSourceConstraints ( Flags flags=0 ) const; + virtual Interval getTargetConstraints ( Flags flags=0 ) const; virtual Flags getDirection () const; virtual size_t getGCells ( vector& ) const; // Modifiers. @@ -59,10 +59,10 @@ namespace Anabatic { virtual void updateNativeConstraints (); virtual bool checkPositions () const; virtual bool checkConstraints () const; - virtual unsigned int _makeDogleg ( GCell*, unsigned int flags ); + virtual Flags _makeDogleg ( GCell*, Flags flags ); virtual bool moveULeft (); virtual bool moveURight (); - virtual bool _slacken ( unsigned int flags ); + virtual bool _slacken ( Flags flags ); #if THIS_IS_DISABLED virtual void desalignate ( AutoContact* ); #endif diff --git a/anabatic/src/anabatic/AutoSegment.h b/anabatic/src/anabatic/AutoSegment.h index 810ecdf0..c32c654a 100644 --- a/anabatic/src/anabatic/AutoSegment.h +++ b/anabatic/src/anabatic/AutoSegment.h @@ -118,11 +118,11 @@ namespace Anabatic { Observable& operator= ( const StaticObservable& ); }; public: - enum ObserverFlag { Create = 0x000000001 - , Destroy = 0x000000002 - , Invalidate = 0x000000004 - , Revalidate = 0x000000008 - , RevalidatePPitch = 0x000000010 + enum ObserverFlag { Create = (1 << 0) + , Destroy = (1 << 1) + , Invalidate = (1 << 2) + , Revalidate = (1 << 3) + , RevalidatePPitch = (1 << 4) }; public: typedef std::function< void(AutoSegment*) > RevalidateCb_t; @@ -134,7 +134,7 @@ namespace Anabatic { ); static AutoSegment* create ( AutoContact* source , AutoContact* target - , unsigned int dir + , Flags dir , size_t depth=RoutingGauge::nlayerdepth ); void destroy (); @@ -181,7 +181,7 @@ namespace Anabatic { inline bool isNotSourceAligned () const; inline bool isNotTargetAligned () const; inline bool isNotAligned () const; - bool isStrongTerminal ( unsigned int flags=0 ) const; + bool isStrongTerminal ( Flags flags=Flags::NoFlags ) const; inline bool isSourceTerminal () const; inline bool isTargetTerminal () const; inline bool isLayerChange () const; @@ -204,19 +204,19 @@ namespace Anabatic { virtual bool _canSlacken () const = 0; bool canReduce () const; bool mustRaise () const; - unsigned int canDogleg ( Interval ); + Flags canDogleg ( Interval ); virtual bool canMoveULeft ( float reserve=0.0 ) const = 0; virtual bool canMoveURight ( float reserve=0.0 ) const = 0; - bool canMoveUp ( float reserve=0.0, unsigned int flags=0 ) const; - bool canPivotUp ( float reserve=0.0, unsigned int flags=0 ) const; - bool canPivotDown ( float reserve=0.0, unsigned int flags=0 ) const; - bool canSlacken ( unsigned int flags=0 ) const; + bool canMoveUp ( float reserve=0.0, Flags flags=Flags::NoFlags ) const; + bool canPivotUp ( float reserve=0.0, Flags flags=Flags::NoFlags ) const; + bool canPivotDown ( float reserve=0.0, Flags flags=Flags::NoFlags ) const; + bool canSlacken ( Flags flags=Flags::NoFlags ) const; virtual bool checkPositions () const = 0; virtual bool checkConstraints () const = 0; bool checkDepthSpin () const; // Accessors. inline unsigned long getId () const; - inline unsigned int getFlags () const; + inline uint32_t getFlags () const; virtual Flags getDirection () const = 0; inline GCell* getGCell () const; virtual size_t getGCells ( vector& ) const = 0; @@ -237,8 +237,8 @@ namespace Anabatic { inline DbU::Unit getExtremity () const; virtual Interval getSpanU () const = 0; Interval getMinSpanU () const; - virtual Interval getSourceConstraints ( unsigned int flags=0 ) const = 0; - virtual Interval getTargetConstraints ( unsigned int flags=0 ) const = 0; + virtual Interval getSourceConstraints ( Flags flags=Flags::NoFlags ) const = 0; + virtual Interval getTargetConstraints ( Flags flags=Flags::NoFlags ) const = 0; virtual bool getConstraints ( DbU::Unit& min, DbU::Unit& max ) const = 0; inline bool getConstraints ( Interval& i ) const; inline const Interval& getUserConstraints () const; @@ -252,11 +252,11 @@ namespace Anabatic { virtual DbU::Unit getCost ( DbU::Unit axis ) const; virtual AutoSegment* getCanonical ( DbU::Unit& min , DbU::Unit& max ); inline AutoSegment* getCanonical ( Interval& i ); - float getMaxUnderDensity ( unsigned int flags ); + float getMaxUnderDensity ( Flags flags ); // Modifiers. - inline void unsetFlags ( unsigned int ); - inline void setFlags ( unsigned int ); - void setFlagsOnAligneds ( unsigned int ); + inline void unsetFlags ( uint32_t ); + inline void setFlags ( uint32_t ); + void setFlagsOnAligneds ( uint32_t ); inline void incReduceds (); inline void decReduceds (); virtual void setDuSource ( DbU::Unit du ) = 0; @@ -283,35 +283,35 @@ namespace Anabatic { inline void setParent ( AutoSegment* ); void revalidate (); AutoSegment* makeDogleg ( AutoContact* ); - unsigned int makeDogleg ( Interval, unsigned int flags=Flags::NoFlags ); - unsigned int makeDogleg ( GCell*, unsigned int flags=Flags::NoFlags ); - virtual unsigned int _makeDogleg ( GCell*, unsigned int flags ) = 0; + Flags makeDogleg ( Interval, Flags flags=Flags::NoFlags ); + Flags makeDogleg ( GCell* , Flags flags=Flags::NoFlags ); + virtual Flags _makeDogleg ( GCell* , Flags flags ) = 0; virtual bool moveULeft () = 0; virtual bool moveURight () = 0; - bool slacken ( unsigned int flags ); - virtual bool _slacken ( unsigned int flags ) = 0; - void _changeDepth ( unsigned int depth, unsigned int flags ); - void changeDepth ( unsigned int depth, unsigned int flags ); - bool moveUp ( unsigned int flags=Flags::NoFlags ); - bool moveDown ( unsigned int flags=Flags::NoFlags ); + bool slacken ( Flags flags ); + virtual bool _slacken ( Flags flags ) = 0; + void _changeDepth ( unsigned int depth, Flags flags ); + void changeDepth ( unsigned int depth, Flags flags ); + bool moveUp ( Flags flags=Flags::NoFlags ); + bool moveDown ( Flags flags=Flags::NoFlags ); bool reduceDoglegLayer (); bool reduce (); bool raise (); // Canonical Modifiers. - AutoSegment* canonize ( unsigned int flags=Flags::NoFlags ); - virtual void invalidate ( unsigned int flags=Flags::Propagate ); + AutoSegment* canonize ( Flags flags=Flags::NoFlags ); + virtual void invalidate ( Flags flags=Flags::Propagate ); void invalidate ( AutoContact* ); void computeOptimal ( set& processeds ); - void setAxis ( DbU::Unit, unsigned int flags=Flags::NoFlags ); - bool toConstraintAxis ( unsigned int flags=Flags::Realignate ); - bool toOptimalAxis ( unsigned int flags=Flags::Realignate ); + void setAxis ( DbU::Unit, Flags flags=Flags::NoFlags ); + bool toConstraintAxis ( Flags flags=Flags::Realignate ); + bool toOptimalAxis ( Flags flags=Flags::Realignate ); // Collections & Filters. - AutoSegments getOnSourceContact ( unsigned int direction ); - AutoSegments getOnTargetContact ( unsigned int direction ); - AutoSegments getCachedOnSourceContact ( unsigned int direction ); - AutoSegments getCachedOnTargetContact ( unsigned int direction ); - AutoSegments getAligneds ( unsigned int flags=Flags::NoFlags ); - AutoSegments getConnecteds ( unsigned int flags=Flags::NoFlags ); + AutoSegments getOnSourceContact ( Flags direction ); + AutoSegments getOnTargetContact ( Flags direction ); + AutoSegments getCachedOnSourceContact ( Flags direction ); + AutoSegments getCachedOnTargetContact ( Flags direction ); + AutoSegments getAligneds ( Flags flags=Flags::NoFlags ); + AutoSegments getConnecteds ( Flags flags=Flags::NoFlags ); AutoSegments getPerpandiculars (); size_t getAlignedContacts ( map& ) const ; // Observers. @@ -330,7 +330,7 @@ namespace Anabatic { bool shearUp ( GCell* , AutoSegment*& movedUp , float reserve - , unsigned int flags ); + , Flags flags ); #endif protected: @@ -343,7 +343,7 @@ namespace Anabatic { // Internal: Attributes. const unsigned long _id; GCell* _gcell; - unsigned int _flags; + uint32_t _flags; unsigned int _depth : 8; unsigned int _optimalMin :16; unsigned int _optimalMax :16; @@ -367,7 +367,7 @@ namespace Anabatic { AutoSegment& operator= ( const AutoSegment& ); protected: void _invalidate (); - inline unsigned int _getFlags () const; + inline uint32_t _getFlags () const; std::string _getStringFlags () const; virtual void _setAxis ( DbU::Unit ) = 0; @@ -388,19 +388,20 @@ namespace Anabatic { // Static Utilities. public: - static inline unsigned int swapSourceTargetFlags ( AutoSegment* ); + static inline uint32_t swapSourceTargetFlags ( AutoSegment* ); static inline bool areAlignedsAndDiffLayer ( AutoSegment*, AutoSegment* ); - static bool isTopologicalBound ( AutoSegment* seed, unsigned int flags ); + static AutoSegment* getGlobalThroughDogleg ( AutoSegment* dogleg, AutoContact* from ); + static bool isTopologicalBound ( AutoSegment* seed, Flags flags ); static inline bool arePerpandiculars ( AutoSegment* a, AutoSegment* b ); static inline bool arePerpandiculars ( bool isHorizontalA, AutoSegment* b ); static inline bool areAligneds ( AutoSegment* a, AutoSegment* b ); - static unsigned int getPerpandicularState ( AutoContact* contact + static Flags getPerpandicularState ( AutoContact* contact , AutoSegment* source , AutoSegment* current , bool isHorizontalMaster , const Layer* masterLayer=NULL ); - static inline unsigned int getPerpandicularState ( AutoContact* contact + static inline Flags getPerpandicularState ( AutoContact* contact , AutoSegment* source , AutoSegment* current , AutoSegment* master @@ -491,11 +492,11 @@ namespace Anabatic { inline bool AutoSegment::isInvalidatedLayer () const { return _flags & SegInvalidatedLayer; } inline bool AutoSegment::isCreated () const { return _flags & SegCreated; } inline bool AutoSegment::isUserDefined () const { return _flags & SegUserDefined; } - inline void AutoSegment::setFlags ( unsigned int flags ) { _flags |= flags; } - inline void AutoSegment::unsetFlags ( unsigned int flags ) { _flags &= ~flags; } + inline void AutoSegment::setFlags ( uint32_t flags ) { _flags |= flags; } + inline void AutoSegment::unsetFlags ( uint32_t flags ) { _flags &= ~flags; } - inline unsigned int AutoSegment::getFlags () const { return _flags; } - inline unsigned int AutoSegment::_getFlags () const { return _flags; } + inline uint32_t AutoSegment::getFlags () const { return _flags; } + inline uint32_t AutoSegment::_getFlags () const { return _flags; } inline void AutoSegment::incReduceds () { if (_reduceds<3) ++_reduceds; } inline void AutoSegment::decReduceds () { if (_reduceds>0) --_reduceds; } inline void AutoSegment::setLayer ( const Layer* layer ) { base()->setLayer(layer); _depth=Session::getLayerDepth(layer); } @@ -522,15 +523,15 @@ namespace Anabatic { inline unsigned long AutoSegment::getMaxId () { return _maxId; } - inline unsigned int AutoSegment::swapSourceTargetFlags ( AutoSegment* segment ) + inline uint32_t AutoSegment::swapSourceTargetFlags ( AutoSegment* segment ) { - unsigned int segFlags = segment->getFlags(); - unsigned int swapFlags = segment->getFlags() & ~(SegSourceTop |SegTargetTop - |SegSourceBottom |SegTargetBottom - |SegSourceTerminal |SegTargetTerminal - |SegNotSourceAligned |SegNotTargetAligned - |SegInvalidatedSource|SegInvalidatedTarget - ); + uint32_t segFlags = segment->getFlags(); + uint32_t swapFlags = segment->getFlags() & ~(SegSourceTop |SegTargetTop + |SegSourceBottom |SegTargetBottom + |SegSourceTerminal |SegTargetTerminal + |SegNotSourceAligned |SegNotTargetAligned + |SegInvalidatedSource|SegInvalidatedTarget + ); swapFlags |= (segFlags & SegSourceTop ) ? SegTargetTop : SegNoFlags; swapFlags |= (segFlags & SegSourceBottom ) ? SegTargetBottom : SegNoFlags; @@ -560,10 +561,10 @@ namespace Anabatic { inline bool AutoSegment::areAligneds ( AutoSegment* a, AutoSegment* b ) { return a and b and (a->isHorizontal() == b->isHorizontal()); } - inline unsigned int AutoSegment::getPerpandicularState ( AutoContact* contact - , AutoSegment* source - , AutoSegment* current - , AutoSegment* master ) + inline Flags AutoSegment::getPerpandicularState ( AutoContact* contact + , AutoSegment* source + , AutoSegment* current + , AutoSegment* master ) { return getPerpandicularState ( contact, source, current, master->isHorizontal(), master->getLayer() ); } diff --git a/anabatic/src/anabatic/AutoSegments.h b/anabatic/src/anabatic/AutoSegments.h index 84151f20..979ad288 100644 --- a/anabatic/src/anabatic/AutoSegments.h +++ b/anabatic/src/anabatic/AutoSegments.h @@ -218,7 +218,7 @@ namespace Anabatic { // Sub-Class: Locator. class Locator : public AutoSegmentHL { public: - inline Locator ( AutoSegment* segment , unsigned int flags ); + inline Locator ( AutoSegment* segment , Flags flags ); inline Locator ( const Locator &locator ); virtual AutoSegment* getElement () const; virtual AutoSegmentHL* getClone () const; @@ -226,14 +226,14 @@ namespace Anabatic { virtual void progress (); virtual string _getString () const; protected: - unsigned int _flags; + Flags _flags; AutoSegment* _master; AutoSegmentStack _stack; }; public: // AutoSegments_Aligneds Methods. - AutoSegments_Aligneds ( AutoSegment*, unsigned int flags=Flags::NoFlags ); + AutoSegments_Aligneds ( AutoSegment*, Flags flags=Flags::NoFlags ); AutoSegments_Aligneds ( const AutoSegments_Aligneds& ); virtual AutoSegmentHC* getClone () const; virtual AutoSegmentHL* getLocator () const; @@ -241,7 +241,7 @@ namespace Anabatic { protected: // AutoSegments_Aligneds Attributes. - unsigned int _flags; + Flags _flags; AutoSegment* _segment; }; @@ -254,7 +254,7 @@ namespace Anabatic { { } - inline AutoSegments_Aligneds::AutoSegments_Aligneds ( AutoSegment* segment, unsigned int flags ) + inline AutoSegments_Aligneds::AutoSegments_Aligneds ( AutoSegment* segment, Flags flags ) : AutoSegmentHC() , _flags (flags) , _segment(segment) @@ -277,7 +277,7 @@ namespace Anabatic { // Sub-Class: Locator. class Locator : public AutoSegmentHL { public: - inline Locator ( AutoSegment* segment, unsigned int flags ); + inline Locator ( AutoSegment* segment, Flags flags ); inline Locator ( const Locator &locator ); virtual AutoSegment* getElement () const; virtual AutoSegmentHL* getClone () const; @@ -290,7 +290,7 @@ namespace Anabatic { public: // AutoSegments_Connecteds Methods. - AutoSegments_Connecteds ( AutoSegment*, unsigned int flags ); + AutoSegments_Connecteds ( AutoSegment*, Flags flags ); AutoSegments_Connecteds ( const AutoSegments_Connecteds& ); virtual AutoSegmentHC* getClone () const; virtual AutoSegmentHL* getLocator () const; @@ -298,7 +298,7 @@ namespace Anabatic { protected: // AutoSegments_Connecteds Attributes. - unsigned int _flags; + Flags _flags; AutoSegment* _segment; }; @@ -309,7 +309,7 @@ namespace Anabatic { { } - inline AutoSegments_Connecteds::AutoSegments_Connecteds ( AutoSegment* segment, unsigned int flags ) + inline AutoSegments_Connecteds::AutoSegments_Connecteds ( AutoSegment* segment, Flags flags ) : AutoSegmentHC() , _flags (flags) , _segment(segment) @@ -332,7 +332,7 @@ namespace Anabatic { // Sub-Class: Locator. class Locator : public AutoSegmentHL { public: - Locator ( AutoSegment* master ); + Locator ( AutoSegment* master, Flags flags ); inline Locator ( const Locator& ); virtual AutoSegment* getElement () const; virtual AutoSegmentHL* getClone () const; @@ -340,7 +340,7 @@ namespace Anabatic { virtual void progress (); virtual string _getString () const; protected: - unsigned int _flags; + Flags _flags; AutoSegment* _master; AutoSegmentStack _stack; vector _perpandiculars; @@ -348,7 +348,7 @@ namespace Anabatic { public: // AutoSegments_Perpandiculars Methods. - inline AutoSegments_Perpandiculars ( AutoSegment* master ); + inline AutoSegments_Perpandiculars ( AutoSegment*, Flags flags=Flags::NoFlags ); inline AutoSegments_Perpandiculars ( const AutoSegments_Perpandiculars& ); virtual AutoSegmentHC* getClone () const; virtual AutoSegmentHL* getLocator () const; @@ -356,7 +356,8 @@ namespace Anabatic { protected: // AutoSegments_Perpandiculars Attributes. - AutoSegment* _segment; + Flags _flags; + AutoSegment* _master; }; @@ -370,16 +371,18 @@ namespace Anabatic { inline AutoSegments_Perpandiculars::AutoSegments_Perpandiculars - ( AutoSegment* segment ) + ( AutoSegment* master, Flags flags ) : AutoSegmentHC() - , _segment(segment) + , _flags (flags) + , _master(master) { } inline AutoSegments_Perpandiculars::AutoSegments_Perpandiculars ( const AutoSegments_Perpandiculars& autosegments ) : AutoSegmentHC() - , _segment(autosegments._segment) + , _flags (autosegments._flags) + , _master(autosegments._master) { } @@ -392,7 +395,7 @@ namespace Anabatic { // Sub-Class: Locator. class Locator : public AutoSegmentHL { public: - Locator ( GCell* fcell, unsigned int flags ); + Locator ( GCell* fcell, Flags flags ); inline Locator ( const Locator& ); virtual ~Locator (); virtual AutoSegment* getElement () const; @@ -401,7 +404,7 @@ namespace Anabatic { virtual void progress (); virtual string _getString () const; protected: - unsigned int _flags; + Flags _flags; vector::const_iterator _itContact; vector::const_iterator _itEnd; Hurricane::Locator* _hookLocator; @@ -410,7 +413,7 @@ namespace Anabatic { public: // AutoSegments_Perpandiculars Methods. - inline AutoSegments_AnchorOnGCell ( GCell* fcell, unsigned int flags ); + inline AutoSegments_AnchorOnGCell ( GCell* fcell, Flags flags ); inline AutoSegments_AnchorOnGCell ( const AutoSegments_AnchorOnGCell& ); virtual AutoSegmentHC* getClone () const; virtual AutoSegmentHL* getLocator () const; @@ -418,8 +421,8 @@ namespace Anabatic { public: // AutoSegments_Perpandiculars Attributes. - GCell* _fcell; - unsigned int _flags; + GCell* _fcell; + Flags _flags; }; @@ -433,7 +436,7 @@ namespace Anabatic { { } - inline AutoSegments_AnchorOnGCell::AutoSegments_AnchorOnGCell ( GCell* fcell, unsigned int flags ) + inline AutoSegments_AnchorOnGCell::AutoSegments_AnchorOnGCell ( GCell* fcell, Flags flags ) : AutoSegmentHC() , _fcell(fcell) , _flags(flags) @@ -457,7 +460,7 @@ namespace Anabatic { // Sub-Class: Locator. class Locator : public AutoSegmentHL { public: - Locator ( AutoContact* sourceAnchor, unsigned int direction ); + Locator ( AutoContact* sourceAnchor, Flags direction ); inline Locator ( const Locator& ); virtual ~Locator (); virtual AutoSegment* getElement () const; @@ -473,7 +476,7 @@ namespace Anabatic { public: // AutoSegments_CachedOnContact Methods. inline AutoSegments_CachedOnContact ( AutoContact* sourceContact - , unsigned int direction=Flags::Horizontal|Flags::Vertical ); + , Flags direction=Flags::Horizontal|Flags::Vertical ); inline AutoSegments_CachedOnContact ( const AutoSegments_CachedOnContact& ); virtual AutoSegmentHC* getClone () const; virtual AutoSegmentHL* getLocator () const; @@ -481,7 +484,7 @@ namespace Anabatic { protected: // AutoSegments_CachedOnContact Attributes. - unsigned int _direction; + Flags _direction; AutoContact* _sourceContact; }; @@ -494,7 +497,7 @@ namespace Anabatic { inline AutoSegments_CachedOnContact::AutoSegments_CachedOnContact - ( AutoContact* sourceContact, unsigned int direction ) + ( AutoContact* sourceContact, Flags direction ) : AutoSegmentHC() , _direction (direction) , _sourceContact(sourceContact) @@ -527,17 +530,17 @@ namespace Anabatic { class AutoSegments_InDirection : public AutoSegmentHF { public: - inline AutoSegments_InDirection ( unsigned int direction ); + inline AutoSegments_InDirection ( Flags direction ); inline AutoSegments_InDirection ( const AutoSegments_InDirection& ); virtual AutoSegmentHF* getClone () const; virtual bool accept ( AutoSegment* segment ) const; virtual string _getString () const; protected: - unsigned int _direction; + Flags _direction; }; - inline AutoSegments_InDirection::AutoSegments_InDirection ( unsigned int direction ) + inline AutoSegments_InDirection::AutoSegments_InDirection ( Flags direction ) : AutoSegmentHF() , _direction(direction) {} diff --git a/anabatic/src/anabatic/AutoVertical.h b/anabatic/src/anabatic/AutoVertical.h index f212a2e5..83026120 100644 --- a/anabatic/src/anabatic/AutoVertical.h +++ b/anabatic/src/anabatic/AutoVertical.h @@ -46,8 +46,8 @@ namespace Anabatic { virtual DbU::Unit getDuTarget () const; virtual Interval getSpanU () const; virtual bool getConstraints ( DbU::Unit& min, DbU::Unit& max ) const; - virtual Interval getSourceConstraints ( unsigned int flags=0 ) const; - virtual Interval getTargetConstraints ( unsigned int flags=0 ) const; + virtual Interval getSourceConstraints ( Flags flags=0 ) const; + virtual Interval getTargetConstraints ( Flags flags=0 ) const; virtual Flags getDirection () const; virtual size_t getGCells ( vector& ) const; // Modifiers. @@ -59,10 +59,10 @@ namespace Anabatic { virtual void updateNativeConstraints (); virtual bool checkPositions () const; virtual bool checkConstraints () const; - virtual unsigned int _makeDogleg ( GCell*, unsigned int flags ); + virtual Flags _makeDogleg ( GCell*, Flags flags ); virtual bool moveULeft (); virtual bool moveURight (); - virtual bool _slacken ( unsigned int flags ); + virtual bool _slacken ( Flags flags ); #if THIS_IS_DISABLED virtual void desalignate ( AutoContact* ); #endif diff --git a/anabatic/src/anabatic/Constants.h b/anabatic/src/anabatic/Constants.h index 279f6883..7092fa11 100644 --- a/anabatic/src/anabatic/Constants.h +++ b/anabatic/src/anabatic/Constants.h @@ -60,6 +60,7 @@ namespace Anabatic { // Flags for functions arguments only. static const uint64_t Create ; // = (1 << 5); static const uint64_t WithPerpands ; + static const uint64_t WithDoglegs ; static const uint64_t WithSelf ; static const uint64_t AboveLayer ; static const uint64_t BelowLayer ; @@ -87,15 +88,15 @@ namespace Anabatic { static const uint64_t NoUpdate ; public: inline Flags ( uint64_t flags = NoFlags ); - inline Flags ( BaseFlags ); + inline Flags ( const Hurricane::BaseFlags& ); virtual ~Flags (); virtual std::string _getTypeName () const; virtual std::string _getString () const; }; - Flags::Flags ( uint64_t flags ) : BaseFlags(flags) { } - Flags::Flags ( BaseFlags base ) : BaseFlags(base) { } + Flags::Flags ( uint64_t flags ) : BaseFlags(flags) { } + Flags::Flags ( const Hurricane::BaseFlags& flags ) : BaseFlags(flags) { } enum EngineState { EngineCreation = 1 diff --git a/anabatic/src/anabatic/Dijkstra.h b/anabatic/src/anabatic/Dijkstra.h index 90f83397..092871b9 100644 --- a/anabatic/src/anabatic/Dijkstra.h +++ b/anabatic/src/anabatic/Dijkstra.h @@ -73,11 +73,11 @@ namespace Anabatic { inline bool isiSet () const; void reset (); - unsigned int getFlags () const; - void setFlags (unsigned int); + Flags getFlags () const; + void setFlags (Flags); private: - unsigned int _flags; + Flags _flags; DbU::Unit _min; DbU::Unit _max; DbU::Unit _axis; @@ -94,8 +94,8 @@ namespace Anabatic { inline bool IntervalC::isiSet () const { return _flags & iSet; } inline bool IntervalC::isH () const { return _flags & iHorizontal; } inline bool IntervalC::isV () const { return _flags & iVertical ; } - inline void IntervalC::setFlags ( unsigned int f ) { _flags = f ; } - inline unsigned int IntervalC::getFlags () const { return _flags; } + inline void IntervalC::setFlags ( Flags flags ) { _flags = flags; } + inline Flags IntervalC::getFlags () const { return _flags; } // ------------------------------------------------------------------- // Class : "Anabatic::GRAData". @@ -252,8 +252,8 @@ namespace Anabatic { inline bool isAxisTarget () const; inline bool isiHorizontal() const; inline bool isiVertical () const; - inline void setFlags ( unsigned int ); - inline void unsetFlags ( unsigned int ); + inline void setFlags ( uint32_t ); + inline void unsetFlags ( uint32_t ); bool isH () const; bool isV () const; inline void createAData (); @@ -282,11 +282,11 @@ namespace Anabatic { DbU::Unit getPIMin2 () const; DbU::Unit getPIAxis2 () const; IntervalC getIntervFrom2 () const; - IntervalC getIntervFrom ( unsigned int criteria = 0 ) const; + IntervalC getIntervFrom ( uint32_t criteria=0 ) const; IntervalC getInterv () const; void printInterv () const; void printIntervfrom () const; - GCell* getGPrev ( unsigned int criteria = 0 ) const; + GCell* getGPrev ( uint32_t criteria=0 ) const; // Inspector support. string _getString () const; @@ -305,7 +305,7 @@ namespace Anabatic { int _stamp; DbU::Unit _distance; Edge* _from; - unsigned int _flags; + uint32_t _flags; GRAData* _adata; }; @@ -384,8 +384,8 @@ namespace Anabatic { inline bool Vertex::isAxisTarget () const { return (_flags & Vertex::AxisTarget ); } inline bool Vertex::isiHorizontal() const { return (_flags & Vertex::iHorizontal ); } inline bool Vertex::isiVertical () const { return (_flags & Vertex::iVertical ); } - inline void Vertex::setFlags ( unsigned int mask ) { _flags |= mask ; } - inline void Vertex::unsetFlags ( unsigned int mask ) { _flags &= ~mask; } + inline void Vertex::setFlags ( uint32_t mask ) { _flags |= mask ; } + inline void Vertex::unsetFlags ( uint32_t mask ) { _flags &= ~mask; } // ------------------------------------------------------------------- // Class : "Anabatic::PriorityQueue". @@ -466,7 +466,7 @@ namespace Anabatic { , AxisTarget = (1<<2) }; public: - inline Mode ( unsigned int flags=NoMode ); + inline Mode ( Flag flags=NoMode ); inline Mode ( BaseFlags ); virtual ~Mode (); virtual std::string _getTypeName () const; @@ -504,8 +504,8 @@ namespace Anabatic { inline void setAxisTarget (); inline bool needAxisTarget () const; - inline void setFlags ( unsigned int ); - inline void unsetFlags ( unsigned int ); + inline void setFlags ( Flags ); + inline void unsetFlags ( Flags ); void setAxisTargets (); void unsetAxisTargets (); @@ -532,12 +532,12 @@ namespace Anabatic { DbU::Unit _searchAreaHalo; int _connectedsId; PriorityQueue _queue; - unsigned int _flags; + Flags _flags; }; - inline Dijkstra::Mode::Mode ( unsigned int flags ) : BaseFlags(flags) { } - inline Dijkstra::Mode::Mode ( BaseFlags base ) : BaseFlags(base) { } + inline Dijkstra::Mode::Mode ( Dijkstra::Mode::Flag flags ) : BaseFlags(flags) { } + inline Dijkstra::Mode::Mode ( BaseFlags base ) : BaseFlags(base) { } inline bool Dijkstra::isBipoint () const { return _net and (_targets.size()+_sources.size() == 2); } inline bool Dijkstra::isSourceVertex ( Vertex* v ) const { return (_sources.find(v) != _sources.end()); } @@ -548,9 +548,10 @@ namespace Anabatic { template inline DistanceT* Dijkstra::setDistance ( DistanceT cb ) { _distanceCb = cb; return _distanceCb.target(); } - inline void Dijkstra::setFlags ( unsigned int mask ) { _flags |= mask; } + inline void Dijkstra::setFlags ( Flags mask ) { _flags |= mask; } inline bool Dijkstra::needAxisTarget () const { return (_flags & Mode::AxisTarget); } - inline void Dijkstra::unsetFlags ( unsigned int mask ) { _flags &= ~mask; } + inline void Dijkstra::unsetFlags ( Flags mask ) { _flags &= ~mask; } + } // Anabatic namespace. diff --git a/anabatic/src/anabatic/GCell.h b/anabatic/src/anabatic/GCell.h index ae8edcf7..2e6662f9 100644 --- a/anabatic/src/anabatic/GCell.h +++ b/anabatic/src/anabatic/GCell.h @@ -123,8 +123,8 @@ namespace Anabatic { float _density; }; public: - static unsigned int getDisplayMode (); - static void setDisplayMode ( unsigned int ); + static uint32_t getDisplayMode (); + static void setDisplayMode ( uint32_t ); static Box getBorder ( const GCell*, const GCell* ); public: static GCell* create ( AnabaticEngine* ); @@ -193,14 +193,13 @@ namespace Anabatic { // Detailed routing functions. bool hasFreeTrack ( size_t depth, float reserve ) const; inline size_t getDepth () const; - Interval getSide ( unsigned int ) const; float getHCapacity () const; float getVCapacity () const; - float getDensity ( unsigned int flags=Flags::NoFlags ) const; + float getDensity ( Flags flags=Flags::NoFlags ) const; float getAverageHVDensity () const; float getMaxHVDensity () const; - inline float getCDensity ( unsigned int flags=Flags::NoFlags ) const; - inline float getWDensity ( size_t depth, unsigned int flags=Flags::NoFlags ) const; + inline float getCDensity ( Flags flags=Flags::NoFlags ) const; + inline float getWDensity ( size_t depth, Flags flags=Flags::NoFlags ) const; inline DbU::Unit getBlockage ( size_t depth ) const; inline float getFragmentation ( size_t depth ) const; inline float getFeedthroughs ( size_t depth ) const; @@ -212,8 +211,8 @@ namespace Anabatic { AutoSegments getVStartSegments (); AutoSegments getHStopSegments (); AutoSegments getVStopSegments (); - inline AutoSegments getStartSegments ( unsigned int direction ); - inline AutoSegments getStopSegments ( unsigned int direction ); + inline AutoSegments getStartSegments ( Flags direction ); + inline AutoSegments getStopSegments ( Flags direction ); size_t getRoutingPads ( set& ); inline const Key& getKey () const; size_t checkDensity () const; @@ -234,7 +233,7 @@ namespace Anabatic { void rpDesaturate ( set& ); bool stepDesaturate ( size_t depth , set&, AutoSegment*& moved - , unsigned int flags=Flags::NoFlags ); + , Flags flags=Flags::NoFlags ); bool stepNetDesaturate ( size_t depth , set& globalNets , Set& invalidateds ); @@ -274,7 +273,7 @@ namespace Anabatic { GCell& operator= ( const GCell& ); private: static Name _extensionName; - static unsigned int _displayMode; + static uint32_t _displayMode; Observable _observable; AnabaticEngine* _anabatic; Flags _flags; @@ -381,16 +380,16 @@ namespace Anabatic { inline GCell::Observable::Observable () : StaticObservable<1>() { } - inline AutoSegments GCell::getStartSegments ( unsigned int direction ) + inline AutoSegments GCell::getStartSegments ( Flags direction ) { return (direction&Flags::Horizontal) ? getHStartSegments() : getVStartSegments(); } - inline AutoSegments GCell::getStopSegments ( unsigned int direction ) + inline AutoSegments GCell::getStopSegments ( Flags direction ) { return (direction&Flags::Horizontal) ? getHStopSegments() : getVStopSegments(); } - inline float GCell::getCDensity ( unsigned int flags ) const + inline float GCell::getCDensity ( Flags flags ) const { if (isInvalidated() and not(flags & Flags::NoUpdate)) const_cast(this)->updateDensity(); return _cDensity; } - inline float GCell::getWDensity ( size_t depth, unsigned int flags ) const + inline float GCell::getWDensity ( size_t depth, Flags flags ) const { if (isInvalidated() and not(flags & Flags::NoUpdate)) const_cast(this)->updateDensity(); return _densities[depth]; } inline float GCell::getFragmentation ( size_t depth ) const diff --git a/anabatic/src/anabatic/Session.h b/anabatic/src/anabatic/Session.h index 28a6dc3d..490ab453 100644 --- a/anabatic/src/anabatic/Session.h +++ b/anabatic/src/anabatic/Session.h @@ -94,13 +94,13 @@ namespace Anabatic { static inline size_t getLayerDepth ( const Layer* layer ); static inline const Layer* getRoutingLayer ( size_t ); static inline const Layer* getContactLayer ( size_t ); - static unsigned int getDirection ( size_t depth ); - static inline DbU::Unit getPitch ( size_t depth, unsigned int flags ); + static Flags getDirection ( size_t depth ); + static inline DbU::Unit getPitch ( size_t depth, Flags flags ); static inline DbU::Unit getOffset ( size_t depth ); static inline DbU::Unit getWireWidth ( size_t depth ); static inline DbU::Unit getViaWidth ( size_t depth ); - static inline unsigned int getDirection ( const Layer* ); - static inline DbU::Unit getPitch ( const Layer*, unsigned int flags ); + static inline Flags getDirection ( const Layer* ); + static inline DbU::Unit getPitch ( const Layer*, Flags flags ); static inline DbU::Unit getOffset ( const Layer* ); static inline DbU::Unit getWireWidth ( const Layer* ); static inline DbU::Unit getViaWidth ( const Layer* ); @@ -114,11 +114,11 @@ namespace Anabatic { static inline const vector& getDoglegs (); static inline const set& getNetsModificateds (); static void close (); - static void setAnabaticFlags ( unsigned int ); + static void setAnabaticFlags ( Flags ); static inline void dogleg ( AutoSegment* ); static inline void doglegReset (); static inline void revalidateTopology (); - static inline void setInvalidateMask ( unsigned int ); + static inline void setInvalidateMask ( Flags ); static inline void invalidate ( Net* ); static inline void invalidate ( AutoContact* ); static inline void invalidate ( AutoSegment* ); @@ -145,7 +145,7 @@ namespace Anabatic { void _canonize (); void _revalidateTopology (); virtual size_t _revalidate (); - DbU::Unit _getPitch ( size_t depth, unsigned int flags ) const; + DbU::Unit _getPitch ( size_t depth, Flags flags ) const; Point _getNearestGridPoint ( Point, Box constraints ); Record* _getRecord () const; string _getString () const; @@ -212,16 +212,16 @@ namespace Anabatic { inline size_t Session::getLayerDepth ( const Layer* layer ) { return getRoutingGauge()->getLayerDepth(layer); } inline const Layer* Session::getRoutingLayer ( size_t depth ) { return getRoutingGauge()->getRoutingLayer(depth); } inline const Layer* Session::getContactLayer ( size_t depth ) { return getRoutingGauge()->getContactLayer(depth); } - inline DbU::Unit Session::getPitch ( size_t depth, unsigned int flags=Flags::NoFlags ) { return get("getPitch(depth,flags)")->_getPitch( depth, flags ); } + inline DbU::Unit Session::getPitch ( size_t depth, Flags flags=Flags::NoFlags ) { return get("getPitch(depth,flags)")->_getPitch( depth, flags ); } inline DbU::Unit Session::getOffset ( size_t depth ) { return getRoutingGauge()->getLayerOffset(depth); } inline DbU::Unit Session::getWireWidth ( size_t depth ) { return getRoutingGauge()->getLayerWireWidth(depth); } inline DbU::Unit Session::getViaWidth ( size_t depth ) { return getRoutingGauge()->getViaWidth(depth); } - inline DbU::Unit Session::getPitch ( const Layer* layer, unsigned int flags=Flags::NoFlags ) { return getPitch( getLayerDepth(layer), flags ); } + inline DbU::Unit Session::getPitch ( const Layer* layer, Flags flags=Flags::NoFlags ) { return getPitch( getLayerDepth(layer), flags ); } inline DbU::Unit Session::getOffset ( const Layer* layer ) { return getOffset ( getLayerDepth(layer) ); } inline DbU::Unit Session::getWireWidth ( const Layer* layer ) { return getWireWidth( getLayerDepth(layer) ); } inline DbU::Unit Session::getViaWidth ( const Layer* layer ) { return getViaWidth ( getViaDepth(layer) ); } inline DbU::Unit Session::getExtensionCap ( const Layer* layer ) { return getConfiguration()->getExtensionCap(layer); } - inline unsigned int Session::getDirection ( const Layer* layer ) { return getDirection( getLayerDepth(layer) ); } + inline Flags Session::getDirection ( const Layer* layer ) { return getDirection( getLayerDepth(layer) ); } inline Point Session::getNearestGridPoint ( Point p, Box b ) { return get("getNearestGridPoint()")->_getNearestGridPoint(p,b); } inline void Session::_dogleg ( AutoSegment* segment ) { _doglegs.push_back(segment); } diff --git a/katana/src/Configuration.cpp b/katana/src/Configuration.cpp index c42f1bf4..f2805ad2 100644 --- a/katana/src/Configuration.cpp +++ b/katana/src/Configuration.cpp @@ -99,7 +99,7 @@ namespace Katana { { return new Configuration(*this); } - void Configuration::setRipupLimit ( unsigned int type, unsigned int limit ) + void Configuration::setRipupLimit ( uint32_t type, uint32_t limit ) { if ( type >= RipupLimitsTableSize ) { cerr << Error("setRipupLimit(): Bad ripup limit index: %ud (> %ud)." @@ -111,7 +111,7 @@ namespace Katana { } - void Configuration::setHTracksReservedLocal ( size_t reserved ) + void Configuration::setHTracksReservedLocal ( uint32_t reserved ) { // if (reserved > getHEdgeCapacity()) // throw Error( "Configuration::setHTracksReservedLocal(): tracks reserved for local routing (%d) is greater than edge capacity %d." @@ -121,7 +121,7 @@ namespace Katana { } - void Configuration::setVTracksReservedLocal ( size_t reserved ) + void Configuration::setVTracksReservedLocal ( uint32_t reserved ) { // if (reserved > 1.0) // throw Error( "Configuration::setVTracksReservedLocal(): tracks reserved for local routing (%d) is greater than edge capacity %d." @@ -131,7 +131,7 @@ namespace Katana { } - unsigned int Configuration::getRipupLimit ( unsigned int type ) const + uint32_t Configuration::getRipupLimit ( uint32_t type ) const { if ( type >= RipupLimitsTableSize ) { cerr << Error("getRipupLimit(): Bad ripup limit index: %u (> %u)." diff --git a/katana/src/DataSymmetric.cpp b/katana/src/DataSymmetric.cpp index cab79906..2524a1d4 100644 --- a/katana/src/DataSymmetric.cpp +++ b/katana/src/DataSymmetric.cpp @@ -122,8 +122,8 @@ namespace Katana { bool DataSymmetric::checkPairing () { - const unsigned int mask = ~(AutoSegmentFlag::SegIsReduced); - Message errors ( 0, "[ERROR]" ); + const uint32_t mask = ~(AutoSegmentFlag::SegIsReduced); + Message errors ( 0, "[ERROR]" ); // Temporary hardwired: M2 (depth 1) for H pitch, M3 (depth 2) for V pitch. DbU::Unit hPitch = Session::getPitch( 1 ); diff --git a/katana/src/GlobalRoute.cpp b/katana/src/GlobalRoute.cpp index 169b03d1..64311fd6 100644 --- a/katana/src/GlobalRoute.cpp +++ b/katana/src/GlobalRoute.cpp @@ -107,7 +107,7 @@ namespace Katana { using Anabatic::NetData; - void KatanaEngine::setupGlobalGraph ( unsigned int mode ) + void KatanaEngine::setupGlobalGraph ( uint32_t mode ) { Cell* cell = getCell(); diff --git a/katana/src/GraphicKatanaEngine.cpp b/katana/src/GraphicKatanaEngine.cpp index 6070257a..c3284830 100644 --- a/katana/src/GraphicKatanaEngine.cpp +++ b/katana/src/GraphicKatanaEngine.cpp @@ -86,7 +86,7 @@ namespace Katana { QRect pixelBb = widget->dbuToScreenRect(bb); if (GCell::getDisplayMode() == GCell::Density) { - unsigned int density = (unsigned int)( 255.0 * gcell->getDensity() ); + uint32_t density = (unsigned int)( 255.0 * gcell->getDensity() ); if (density > 255) density = 255; painter.setBrush( Graphics::getColorScale( ColorScale::Fire ).getBrush( density, widget->getDarkening() ) ); @@ -138,10 +138,10 @@ namespace Katana { const Edge* edge = static_cast(go); if (edge) { - Box bb = edge->getBoundingBox(); - unsigned int occupancy = 255; + Box bb = edge->getBoundingBox(); + uint32_t occupancy = 255; if (edge->getRealOccupancy() < edge->getCapacity()) - occupancy = (unsigned int)( 255.0 * ( (float)edge->getRealOccupancy() / (float)edge->getCapacity() ) ); + occupancy = (uint32_t)( 255.0 * ( (float)edge->getRealOccupancy() / (float)edge->getCapacity() ) ); QPainter& painter = widget->getPainter(); if (edge->getRealOccupancy() > edge->getCapacity()) { @@ -203,7 +203,7 @@ namespace Katana { } - KatanaEngine* GraphicKatanaEngine::getForFramework ( unsigned int flags ) + KatanaEngine* GraphicKatanaEngine::getForFramework ( uint32_t flags ) { // Currently, only one framework is avalaible: Alliance. @@ -322,7 +322,7 @@ namespace Katana { void GraphicKatanaEngine::postEvent () { - static unsigned int count = 0; + static uint32_t count = 0; if (not (count++ % 500)) { QApplication::processEvents(); diff --git a/katana/src/HorizontalTrack.cpp b/katana/src/HorizontalTrack.cpp index 0a444f73..7d52aaca 100644 --- a/katana/src/HorizontalTrack.cpp +++ b/katana/src/HorizontalTrack.cpp @@ -25,7 +25,7 @@ namespace Katana { // Class : "HorizontalTrack". - HorizontalTrack::HorizontalTrack ( RoutingPlane* routingPlane, unsigned int index ) + HorizontalTrack::HorizontalTrack ( RoutingPlane* routingPlane, uint32_t index ) : Track(routingPlane,index) { } @@ -34,7 +34,7 @@ namespace Katana { { } - HorizontalTrack* HorizontalTrack::create ( RoutingPlane* routingPlane, unsigned int index ) + HorizontalTrack* HorizontalTrack::create ( RoutingPlane* routingPlane, uint32_t index ) { HorizontalTrack* track = new HorizontalTrack ( routingPlane, index ); diff --git a/katana/src/KatanaEngine.cpp b/katana/src/KatanaEngine.cpp index 3aaf36cc..62d4acb6 100644 --- a/katana/src/KatanaEngine.cpp +++ b/katana/src/KatanaEngine.cpp @@ -295,7 +295,7 @@ namespace Katana { { return _configuration; } - unsigned int KatanaEngine::getRipupLimit ( const TrackElement* segment ) const + uint32_t KatanaEngine::getRipupLimit ( const TrackElement* segment ) const { if (segment->isBlockage()) return 0; @@ -328,7 +328,7 @@ namespace Katana { } - Track* KatanaEngine::getTrackByPosition ( const Layer* layer, DbU::Unit axis, unsigned int mode ) const + Track* KatanaEngine::getTrackByPosition ( const Layer* layer, DbU::Unit axis, uint32_t mode ) const { RoutingPlane* plane = getRoutingPlaneByLayer( layer ); if (not plane) return NULL; @@ -428,7 +428,7 @@ namespace Katana { } - void KatanaEngine::runNegociate ( unsigned int flags ) + void KatanaEngine::runNegociate ( Flags flags ) { if (_negociateWindow) return; @@ -449,7 +449,7 @@ namespace Katana { printMeasures( "algo" ); openSession(); - unsigned int overlaps = 0; + uint32_t overlaps = 0; // size_t hTracksReservedLocal = getHTracksReservedLocal(); // size_t vTracksReservedLocal = getVTracksReservedLocal(); @@ -610,7 +610,7 @@ namespace Katana { } - bool KatanaEngine::_check ( unsigned int& overlap, const char* message ) const + bool KatanaEngine::_check ( uint32_t& overlap, const char* message ) const { cmess1 << " o Checking Katana Database coherency." << endl; diff --git a/katana/src/Manipulator.cpp b/katana/src/Manipulator.cpp index 78cf667b..ade9adf7 100644 --- a/katana/src/Manipulator.cpp +++ b/katana/src/Manipulator.cpp @@ -106,13 +106,13 @@ namespace Katana { { DebugSession::close(); } - bool Manipulator::canRipup ( unsigned int flags ) const + bool Manipulator::canRipup ( uint32_t flags ) const { if (_data) { if (not _event or _event->isUnimplemented()) return false; - unsigned int limit = Session::getKatanaEngine()->getRipupLimit(_segment); - unsigned int count = _data->getRipupCount() + ((flags & NotOnLastRipup) ? 1 : 0); + uint32_t limit = Session::getKatanaEngine()->getRipupLimit(_segment); + uint32_t count = _data->getRipupCount() + ((flags & NotOnLastRipup) ? 1 : 0); return (count < limit); } @@ -141,7 +141,7 @@ namespace Katana { } - bool Manipulator::ripup ( unsigned int type, DbU::Unit axisHint ) + bool Manipulator::ripup ( uint32_t type, DbU::Unit axisHint ) { cdebug_log(159,0) << "Manipulator::ripup() " << endl; @@ -155,17 +155,17 @@ namespace Katana { } - bool Manipulator::ripupPerpandiculars ( unsigned int flags ) + bool Manipulator::ripupPerpandiculars ( uint32_t flags ) { cdebug_log(159,0) << "Manipulator::ripupPerpandiculars() - " << flags << endl; - bool success = true; - bool cagedPerpandiculars = false; - Interval constraints ( _event->getConstraints() ); - Interval perpandicularConstraints ( constraints ); - size_t placedPerpandiculars = 0; - unsigned int parallelActionFlags = SegmentAction::SelfRipup|SegmentAction::EventLevel4; - unsigned int perpandicularActionFlags = SegmentAction::SelfRipupPerpand; + bool success = true; + bool cagedPerpandiculars = false; + Interval constraints ( _event->getConstraints() ); + Interval perpandicularConstraints ( constraints ); + size_t placedPerpandiculars = 0; + uint32_t parallelActionFlags = SegmentAction::SelfRipup|SegmentAction::EventLevel4; + uint32_t perpandicularActionFlags = SegmentAction::SelfRipupPerpand; if (flags & Manipulator::PerpandicularsFirst) { parallelActionFlags &= ~SegmentAction::EventLevel4; @@ -269,7 +269,7 @@ namespace Katana { } - bool Manipulator::relax ( Interval interval, unsigned int flags ) + bool Manipulator::relax ( Interval interval, uint32_t flags ) { interval.inflate( - Session::getExtensionCap(getLayer()) ); cdebug_log(159,0) << "Manipulator::relax() of: " << _segment << " " << interval << endl; @@ -301,12 +301,12 @@ namespace Katana { return false; } - unsigned int depth = Session::getRoutingGauge()->getLayerDepth(_segment->getLayer()); - Interval uside; - size_t dogLegCount = 0; - size_t iminconflict = gcells.size(); - size_t imaxconflict = gcells.size(); - size_t igcell; + uint32_t depth = Session::getRoutingGauge()->getLayerDepth(_segment->getLayer()); + Interval uside; + size_t dogLegCount = 0; + size_t iminconflict = gcells.size(); + size_t imaxconflict = gcells.size(); + size_t igcell; // Look for closest enclosing min & max GCells indexes. for ( igcell=0 ; igcellgetAxis() ); - unsigned int flags = 0; + uint32_t flags = 0; if ( rightIntrication ) flags |= RightAxisHint; if ( leftIntrication ) flags |= LeftAxisHint; if ( flags ) @@ -858,7 +858,7 @@ namespace Katana { } - bool Manipulator::shrinkToTrack ( size_t i, unsigned int flags, DbU::Unit leftAxisHint, DbU::Unit rightAxisHint ) + bool Manipulator::shrinkToTrack ( size_t i, uint32_t flags, DbU::Unit leftAxisHint, DbU::Unit rightAxisHint ) { #if THIS_IS_DISABLED Track* track = _fsm.getTrack(i); @@ -990,7 +990,7 @@ namespace Katana { } - bool Manipulator::slacken ( unsigned int flags ) + bool Manipulator::slacken ( Flags flags ) { cdebug_log(159,0) << "Manipulator::slacken() " << _segment << endl; @@ -1081,11 +1081,11 @@ namespace Katana { } - bool Manipulator::moveUp ( unsigned int flags ) + bool Manipulator::moveUp ( uint32_t flags ) { cdebug_log(159,0) << "Manipulator::moveUp() " << _segment << endl; - unsigned int kflags = Flags::WithNeighbors; + Flags kflags = Flags::WithNeighbors; //kflags |= (flags & AllowLocalMoveUp ) ? Flags::AutoSegment::AllowLocal : 0; kflags |= (flags & AllowTerminalMoveUp) ? Flags::AllowTerminal : 0; kflags |= (flags & IgnoreContacts ) ? Flags::IgnoreContacts : 0; @@ -1156,7 +1156,7 @@ namespace Katana { if ( _segment->isFixed () ) return false; if (not _segment->canDogleg(overlap)) return false; - unsigned int flags = 0; + Flags flags = Flags::NoFlags; TrackElement* dogleg = _segment->makeDogleg(overlap,flags); if (dogleg) { cdebug_log(159,0) << "Manipulator::makeDogleg(Interval) - Push dogleg to the " diff --git a/katana/src/NegociateWindow.cpp b/katana/src/NegociateWindow.cpp index eeca94a9..a779854c 100644 --- a/katana/src/NegociateWindow.cpp +++ b/katana/src/NegociateWindow.cpp @@ -207,7 +207,7 @@ namespace Katana { } - void NegociateWindow::addRoutingEvent ( TrackElement* segment, unsigned int level ) + void NegociateWindow::addRoutingEvent ( TrackElement* segment, uint32_t level ) { DataNegociate* data = segment->getDataNegociate(); if (not data or not data->hasRoutingEvent()) @@ -221,7 +221,7 @@ namespace Katana { } - TrackElement* NegociateWindow::createTrackSegment ( AutoSegment* autoSegment, unsigned int flags ) + TrackElement* NegociateWindow::createTrackSegment ( AutoSegment* autoSegment, Flags flags ) { cdebug_log(159,1) << "NegociateWindow::createTrackSegment() - " << autoSegment << endl; @@ -370,8 +370,8 @@ namespace Katana { void NegociateWindow::_pack ( size_t& count, bool last ) { - unsigned long limit = _katana->getEventsLimit(); - unsigned int pushStage = RoutingEvent::getStage(); + uint64_t limit = _katana->getEventsLimit(); + uint32_t pushStage = RoutingEvent::getStage(); RoutingEvent::setStage( RoutingEvent::Pack ); RoutingEventQueue packQueue; @@ -548,7 +548,7 @@ namespace Katana { } - void NegociateWindow::run ( unsigned int flags ) + void NegociateWindow::run ( Flags flags ) { cdebug_log(159,1) << "NegociateWindow::run()" << endl; @@ -570,7 +570,7 @@ namespace Katana { _katana->setMinimumWL( computeWirelength() ); #if defined(CHECK_DATABASE) - unsigned int overlaps = 0; + uint32_t overlaps = 0; Session::getKatanaEngine()->_check( overlaps, "after _createRouting(GCell*)" ); #endif diff --git a/katana/src/PowerRails.cpp b/katana/src/PowerRails.cpp index 88cbf6fe..863021a9 100644 --- a/katana/src/PowerRails.cpp +++ b/katana/src/PowerRails.cpp @@ -119,23 +119,23 @@ namespace { private: bool guessGlobalNet ( const Name&, Net* ); private: - unsigned int _flags; - Name _vddePadNetName; - Name _vddiPadNetName; - Name _vssePadNetName; - Name _vssiPadNetName; - Name _ckPadNetName; - Name _ckiPadNetName; - Name _ckoPadNetName; - Net* _vdde; - Net* _vddi; - Net* _vsse; - Net* _vssi; - Net* _ck; // Clock net on the (external) pad. - Net* _cki; // Clock net in the pad ring. - Net* _cko; // Clock net of the core (design). - Net* _blockage; - Cell* _topCell; + uint32_t _flags; + Name _vddePadNetName; + Name _vddiPadNetName; + Name _vssePadNetName; + Name _vssiPadNetName; + Name _ckPadNetName; + Name _ckiPadNetName; + Name _ckoPadNetName; + Net* _vdde; + Net* _vddi; + Net* _vsse; + Net* _vssi; + Net* _ck; // Clock net on the (external) pad. + Net* _cki; // Clock net in the pad ring. + Net* _cko; // Clock net of the core (design). + Net* _blockage; + Cell* _topCell; }; @@ -457,7 +457,7 @@ namespace { inline DbU::Unit getWidth () const; inline Rails* getRails () const; inline RoutingPlane* getRoutingPlane () const; - inline unsigned int getDirection () const; + inline Flags getDirection () const; inline Net* getNet () const; void merge ( DbU::Unit source, DbU::Unit target ); void doLayout ( const Layer* ); @@ -487,17 +487,17 @@ namespace { public: class Rails { public: - Rails ( Plane*, unsigned int direction, Net* ); + Rails ( Plane*, Flags direction, Net* ); ~Rails (); inline Plane* getPlane (); inline RoutingPlane* getRoutingPlane (); - inline unsigned int getDirection () const; + inline Flags getDirection () const; inline Net* getNet () const; void merge ( const Box& ); void doLayout ( const Layer* ); private: Plane* _plane; - unsigned int _direction; + Flags _direction; Net* _net; vector _rails; }; @@ -511,8 +511,8 @@ namespace { ~Plane (); inline const Layer* getLayer () const; inline RoutingPlane* getRoutingPlane (); - inline unsigned int getDirection () const; - inline unsigned int getPowerDirection () const; + inline Flags getDirection () const; + inline Flags getPowerDirection () const; void merge ( const Box&, Net* ); void doLayout (); private: @@ -520,7 +520,7 @@ namespace { RoutingPlane* _routingPlane; RailsMap _horizontalRails; RailsMap _verticalRails; - unsigned int _powerDirection; + Flags _powerDirection; }; public: @@ -562,7 +562,7 @@ namespace { inline DbU::Unit PowerRailsPlanes::Rail::getWidth () const { return _width; } inline PowerRailsPlanes::Rails* PowerRailsPlanes::Rail::getRails () const { return _rails; } inline RoutingPlane* PowerRailsPlanes::Rail::getRoutingPlane () const { return _rails->getRoutingPlane(); } - inline unsigned int PowerRailsPlanes::Rail::getDirection () const { return _rails->getDirection(); } + inline Flags PowerRailsPlanes::Rail::getDirection () const { return _rails->getDirection(); } inline Net* PowerRailsPlanes::Rail::getNet () const { return _rails->getNet(); } @@ -774,7 +774,7 @@ namespace { { return (rail->getAxis() == _axis) and (rail->getWidth() == _width); } - PowerRailsPlanes::Rails::Rails ( PowerRailsPlanes::Plane* plane , unsigned int direction , Net* net ) + PowerRailsPlanes::Rails::Rails ( PowerRailsPlanes::Plane* plane , Flags direction , Net* net ) : _plane (plane) , _direction (direction) , _net (net) @@ -798,7 +798,7 @@ namespace { inline PowerRailsPlanes::Plane* PowerRailsPlanes::Rails::getPlane () { return _plane; } inline RoutingPlane* PowerRailsPlanes::Rails::getRoutingPlane () { return getPlane()->getRoutingPlane(); } - inline unsigned int PowerRailsPlanes::Rails::getDirection () const { return _direction; } + inline Flags PowerRailsPlanes::Rails::getDirection () const { return _direction; } inline Net* PowerRailsPlanes::Rails::getNet () const { return _net; } @@ -876,8 +876,8 @@ namespace { inline const Layer* PowerRailsPlanes::Plane::getLayer () const { return _layer; } inline RoutingPlane* PowerRailsPlanes::Plane::getRoutingPlane () { return _routingPlane; } - inline unsigned int PowerRailsPlanes::Plane::getDirection () const { return _routingPlane->getDirection(); } - inline unsigned int PowerRailsPlanes::Plane::getPowerDirection () const { return _powerDirection; } + inline Flags PowerRailsPlanes::Plane::getDirection () const { return _routingPlane->getDirection(); } + inline Flags PowerRailsPlanes::Plane::getPowerDirection () const { return _powerDirection; } void PowerRailsPlanes::Plane::merge ( const Box& bb, Net* net ) @@ -886,7 +886,7 @@ namespace { cdebug_log(159,0) << " Plane::merge() " << net->getName() << " " << bb << endl; - unsigned int direction = getDirection(); + Flags direction = getDirection(); if ( (net->getType() == Net::Type::POWER) or (net->getType() == Net::Type::GROUND) ) direction = getPowerDirection(); @@ -1057,7 +1057,7 @@ namespace { void ringAddToPowerRails (); virtual void doQuery (); inline void doLayout (); - inline unsigned int getGoMatchCount () const; + inline uint32_t getGoMatchCount () const; private: AllianceFramework* _framework; KatanaEngine* _katana; @@ -1067,7 +1067,7 @@ namespace { bool _isBlockagePlane; vector _hRingSegments; vector _vRingSegments; - unsigned int _goMatchCount; + uint32_t _goMatchCount; }; @@ -1092,7 +1092,7 @@ namespace { } - inline unsigned int QueryPowerRails::getGoMatchCount () const + inline uint32_t QueryPowerRails::getGoMatchCount () const { return _goMatchCount; } @@ -1181,7 +1181,7 @@ namespace { Box bb = segment->getBoundingBox ( basicLayer ); - unsigned int depth = _routingGauge->getLayerDepth ( segment->getLayer() ); + uint32_t depth = _routingGauge->getLayerDepth ( segment->getLayer() ); if ( _chipTools.isChip() and ((depth == 2) or (depth == 3)) diff --git a/katana/src/PreProcess.cpp b/katana/src/PreProcess.cpp index ef368468..b2891273 100644 --- a/katana/src/PreProcess.cpp +++ b/katana/src/PreProcess.cpp @@ -100,8 +100,8 @@ namespace { cdebug_log(159,0) << "Propagate caging: " << segment << endl; Track* track = segment->getTrack(); - //unsigned int direction = Session::getRoutingGauge()->getLayerDirection(segment->getLayer()); - unsigned int direction = segment->getDirection(); + //Flags direction = Session::getRoutingGauge()->getLayerDirection(segment->getLayer()); + Flags direction = segment->getDirection(); Anabatic::AutoContact* source = segment->base()->getAutoSource(); RoutingPad* rp = NULL; Interval uside = source->getGCell()->getSide(direction); @@ -225,7 +225,7 @@ namespace { cdebug_log(159,1) << "protectCagedTerminals() " << track << endl; DbU::Unit lastMovedUp = track->getMin(); - unsigned int moveUpCount = 0; + uint32_t moveUpCount = 0; Configuration* configuration = Session::getConfiguration(); const Layer* metal2 = configuration->getRoutingLayer( 1 ); diff --git a/katana/src/ProtectRoutingPads.cpp b/katana/src/ProtectRoutingPads.cpp index 71ef58f4..bd2c8068 100644 --- a/katana/src/ProtectRoutingPads.cpp +++ b/katana/src/ProtectRoutingPads.cpp @@ -96,7 +96,7 @@ namespace { for ( size_t i=0 ; igetRoutingPlaneByLayer(segments[i]->getLayer()); - unsigned int direction = plane->getDirection(); + Flags direction = plane->getDirection(); DbU::Unit wireWidth = plane->getLayerGauge()->getWireWidth(); DbU::Unit delta = plane->getLayerGauge()->getHalfPitch() + wireWidth/2 diff --git a/katana/src/RoutingEvent.cpp b/katana/src/RoutingEvent.cpp index 4bb61ef1..fb3a9efe 100644 --- a/katana/src/RoutingEvent.cpp +++ b/katana/src/RoutingEvent.cpp @@ -141,22 +141,22 @@ namespace Katana { // Class : "RoutingEvent". - unsigned int RoutingEvent::_idCounter = 0; - unsigned int RoutingEvent::_stage = RoutingEvent::Negociate; - size_t RoutingEvent::_allocateds = 0; - size_t RoutingEvent::_processeds = 0; - size_t RoutingEvent::_cloneds = 0; + uint32_t RoutingEvent::_idCounter = 0; + uint32_t RoutingEvent::_stage = RoutingEvent::Negociate; + uint32_t RoutingEvent::_allocateds = 0; + uint32_t RoutingEvent::_processeds = 0; + uint32_t RoutingEvent::_cloneds = 0; - unsigned int RoutingEvent::getStage () { return _stage; } - size_t RoutingEvent::getAllocateds () { return _allocateds; } - size_t RoutingEvent::getProcesseds () { return _processeds; } - size_t RoutingEvent::getCloneds () { return _cloneds; } - void RoutingEvent::setStage ( unsigned int stage ) { _stage = stage; } - void RoutingEvent::resetProcesseds () { _processeds = 0; } + uint32_t RoutingEvent::getStage () { return _stage; } + uint32_t RoutingEvent::getAllocateds () { return _allocateds; } + uint32_t RoutingEvent::getProcesseds () { return _processeds; } + uint32_t RoutingEvent::getCloneds () { return _cloneds; } + void RoutingEvent::setStage ( uint32_t stage ) { _stage = stage; } + void RoutingEvent::resetProcesseds () { _processeds = 0; } - RoutingEvent::RoutingEvent ( TrackElement* segment, unsigned int mode ) + RoutingEvent::RoutingEvent ( TrackElement* segment, uint32_t mode ) : _cloned (false) , _processed (false) , _disabled (false) @@ -180,9 +180,9 @@ namespace Katana { , _priority (0.0) , _key (this) { - if (_idCounter == std::numeric_limits::max()) { + if (_idCounter == std::numeric_limits::max()) { throw Error( "RoutingEvent::RoutingEvent(): Identifier counter has reached it's limit (%d bits)." - , std::numeric_limits::digits ); + , std::numeric_limits::digits ); } DataNegociate* data = _segment->getDataNegociate(); @@ -199,7 +199,7 @@ namespace Katana { } - RoutingEvent* RoutingEvent::create ( TrackElement* segment, unsigned int mode ) + RoutingEvent* RoutingEvent::create ( TrackElement* segment, uint32_t mode ) { // if (not dynamic_cast(segment)) { // cerr << Error( "RoutingEvent::create() Can only create event from TrackSegment:\n" @@ -256,18 +256,18 @@ namespace Katana { { return getState() == DataNegociate::Unimplemented; } - void RoutingEvent::setMode ( unsigned int mode ) + void RoutingEvent::setMode ( uint32_t mode ) { _mode = mode; } - unsigned int RoutingEvent::getState () const + uint32_t RoutingEvent::getState () const { DataNegociate* data = _segment->getDataNegociate(); return (data) ? data->getState() : 0; } - void RoutingEvent::setState ( unsigned int state ) + void RoutingEvent::setState ( uint32_t state ) { DataNegociate* data = _segment->getDataNegociate(); if (data) data->setState( state ); @@ -306,7 +306,7 @@ namespace Katana { } - RoutingEvent* RoutingEvent::reschedule ( RoutingEventQueue& queue, unsigned int eventLevel ) + RoutingEvent* RoutingEvent::reschedule ( RoutingEventQueue& queue, uint32_t eventLevel ) { RoutingEvent* active = _segment->getDataNegociate()->getRoutingEvent(); if (active != this) return active->reschedule( queue, eventLevel ); diff --git a/katana/src/RoutingEventQueue.cpp b/katana/src/RoutingEventQueue.cpp index e36bac60..55db0b8c 100644 --- a/katana/src/RoutingEventQueue.cpp +++ b/katana/src/RoutingEventQueue.cpp @@ -73,7 +73,7 @@ namespace Katana { } - void RoutingEventQueue::add ( TrackElement* segment, unsigned int level ) + void RoutingEventQueue::add ( TrackElement* segment, uint32_t level ) { if (segment->getTrack()) { cinfo << "[INFO] Already in Track " << (void*)segment->base()->base() diff --git a/katana/src/RoutingPlane.cpp b/katana/src/RoutingPlane.cpp index af675d6f..53a47905 100644 --- a/katana/src/RoutingPlane.cpp +++ b/katana/src/RoutingPlane.cpp @@ -95,9 +95,9 @@ namespace Katana { if (not plane->_layerGauge) throw Error( badLayerGauge, depth, getString(katana->getConfiguration()->getRoutingGauge()).c_str() ); - DbU::Unit hExtension = 0; - DbU::Unit vExtension = 0; - unsigned int gaugeDepth = 0; + DbU::Unit hExtension = 0; + DbU::Unit vExtension = 0; + uint32_t gaugeDepth = 0; if (Session::getLayerGauge(gaugeDepth)->getType() == Constant::PinOnly) ++gaugeDepth; bool HV = (Session::getLayerGauge(gaugeDepth)->getDirection() == Constant::Horizontal); @@ -161,7 +161,7 @@ namespace Katana { } - Track* RoutingPlane::getTrackByPosition ( DbU::Unit axis, unsigned int mode ) const + Track* RoutingPlane::getTrackByPosition ( DbU::Unit axis, uint32_t mode ) const { return getTrackByIndex( getLayerGauge()->getTrackIndex( getAxisMin() , getAxisMax() @@ -171,7 +171,7 @@ namespace Katana { } - bool RoutingPlane::_check ( unsigned int& overlaps ) const + bool RoutingPlane::_check ( uint32_t& overlaps ) const { bool coherency = true; diff --git a/katana/src/SegmentFsm.cpp b/katana/src/SegmentFsm.cpp index 73abf1e7..6288c3e5 100644 --- a/katana/src/SegmentFsm.cpp +++ b/katana/src/SegmentFsm.cpp @@ -41,14 +41,14 @@ namespace { class CompareCostArray { public: - inline CompareCostArray ( unsigned int flags=0 ); + inline CompareCostArray ( uint32_t flags=0 ); inline bool operator() ( const array& lhs, const array& rhs ); private: TrackCost::Compare _compare; }; - inline CompareCostArray::CompareCostArray ( unsigned int flags ) + inline CompareCostArray::CompareCostArray ( uint32_t flags ) : _compare(flags) { } @@ -366,9 +366,9 @@ namespace Katana { // Class : "SegmentAction". SegmentAction::SegmentAction ( TrackElement* segment - , unsigned int type + , uint32_t type , DbU::Unit axisHint - , unsigned int toState + , uint32_t toState ) : _segment (segment) , _type (type) @@ -427,12 +427,12 @@ namespace Katana { } if (_type & ToRipupLimit) { - unsigned int limit = Session::getKatanaEngine()->getRipupLimit(_segment); + uint32_t limit = Session::getKatanaEngine()->getRipupLimit(_segment); if (limit > data->getRipupCount()) data->setRipupCount( limit ); } - unsigned int eventLevel = 0; + uint32_t eventLevel = 0; if (_type & EventLevel1) eventLevel = 1; if (_type & EventLevel2) eventLevel = 2; if (_type & EventLevel3) eventLevel = 3; @@ -443,7 +443,7 @@ namespace Katana { RoutingEvent* fork = event->reschedule( queue, eventLevel ); if (fork) { - unsigned int mode = RoutingEvent::Repair; + uint32_t mode = RoutingEvent::Repair; if (RoutingEvent::getStage() < RoutingEvent::Repair) mode = (_type&PackingMode) ? RoutingEvent::Pack : RoutingEvent::Negociate; fork->setMode( mode ); @@ -479,7 +479,7 @@ namespace Katana { DataSymmetric* symData = NULL; TrackElement* segment1 = _event1->getSegment(); TrackElement* segment2 = segment1->getSymmetric(); - unsigned int depth = Session::getRoutingGauge()->getLayerDepth(segment1->getLayer()); + uint32_t depth = Session::getRoutingGauge()->getLayerDepth(segment1->getLayer()); _event1->setTracksFree( 0 ); _data1 = segment1->getDataNegociate(); @@ -565,7 +565,7 @@ namespace Katana { RoutingPlane* plane = Session::getKatanaEngine()->getRoutingPlaneByLayer(segment1->getLayer()); for ( Track* track1 : Tracks_Range::get(plane,_constraint) ) { - unsigned int costflags = 0; + uint32_t costflags = 0; costflags |= (segment1->isLocal() and (depth >= 3)) ? TrackCost::LocalAndTopDepth : 0; Track* track2 = NULL; @@ -629,7 +629,7 @@ namespace Katana { _state = EmptyTrackList; } - unsigned int flags = 0; + uint32_t flags = 0; flags |= (segment1->isStrap()) ? TrackCost::IgnoreAxisWeight : 0; flags |= (segment1->isLocal() and (_data1->getState() < DataNegociate::Minimize) @@ -656,7 +656,7 @@ namespace Katana { } - void SegmentFsm::setDataState ( unsigned int state ) + void SegmentFsm::setDataState ( uint32_t state ) { _data1->setState( state ); if (_data2) _data2->setState( state ); @@ -664,9 +664,9 @@ namespace Katana { void SegmentFsm::addAction ( TrackElement* segment - , unsigned int type + , uint32_t type , DbU::Unit axisHint - , unsigned int toSegmentFsm ) + , uint32_t toSegmentFsm ) { if ( not segment->isFixed() ) { _actions.push_back ( SegmentAction(segment,type,axisHint,toSegmentFsm) ); @@ -796,7 +796,7 @@ namespace Katana { } - bool SegmentFsm::canRipup ( unsigned int flags ) + bool SegmentFsm::canRipup ( uint32_t flags ) { return Manipulator(getSegment1(),*this).canRipup(flags) and (not _event2 or Manipulator(getSegment2(),*this).canRipup(flags)); @@ -894,7 +894,7 @@ namespace Katana { vector candidates; TrackElement* segment = getEvent()->getSegment(); bool canMoveUp = (segment->isLocal()) ? segment->canPivotUp(0.5,Flags::NoFlags) : segment->canMoveUp(1.0,Flags::CheckLowDensity); // MARK 1 - unsigned int relaxFlags = Manipulator::NoDoglegReuse + uint32_t relaxFlags = Manipulator::NoDoglegReuse | ((_data1 and (_data1->getStateCount() < 2)) ? Manipulator::AllowExpand : Manipulator::NoExpand); @@ -1169,13 +1169,13 @@ namespace Katana { } - bool SegmentFsm::_slackenStrap ( TrackElement*& segment, DataNegociate*& data, unsigned int flags ) + bool SegmentFsm::_slackenStrap ( TrackElement*& segment, DataNegociate*& data, uint32_t flags ) { cdebug_log(159,0) << "Strap segment Fsm." << endl; - bool success = false; - unsigned int nextState = data->getState(); - Manipulator manipulator ( segment, *this ); + bool success = false; + uint32_t nextState = data->getState(); + Manipulator manipulator ( segment, *this ); switch ( data->getState() ) { case DataNegociate::RipupPerpandiculars: @@ -1211,13 +1211,13 @@ namespace Katana { } - bool SegmentFsm::_slackenLocal ( TrackElement*& segment, DataNegociate*& data, unsigned int flags ) + bool SegmentFsm::_slackenLocal ( TrackElement*& segment, DataNegociate*& data, uint32_t flags ) { cdebug_log(159,0) << "Local segment Fsm." << endl; - bool success = false; - unsigned int nextState = data->getState(); - Manipulator manipulator ( segment, *this ); + bool success = false; + uint32_t nextState = data->getState(); + Manipulator manipulator ( segment, *this ); switch (data->getState()) { case DataNegociate::RipupPerpandiculars: @@ -1289,12 +1289,12 @@ namespace Katana { } - bool SegmentFsm::_slackenGlobal ( TrackElement*& segment, DataNegociate*& data, unsigned int flags ) + bool SegmentFsm::_slackenGlobal ( TrackElement*& segment, DataNegociate*& data, uint32_t flags ) { - bool success = false; - unsigned int nextState = data->getState(); - Manipulator manipulator ( segment, *this ); - unsigned int moveUpFlags = Manipulator::AllowShortPivotUp|Manipulator::IgnoreContacts; + bool success = false; + uint32_t nextState = data->getState(); + Manipulator manipulator ( segment, *this ); + uint32_t moveUpFlags = Manipulator::AllowShortPivotUp|Manipulator::IgnoreContacts; switch ( data->getState() ) { case DataNegociate::RipupPerpandiculars: @@ -1385,11 +1385,11 @@ namespace Katana { } - bool SegmentFsm::slackenTopology ( unsigned int flags ) + bool SegmentFsm::slackenTopology ( uint32_t flags ) { - bool success = false; - TrackElement* segment1 = getSegment1(); - unsigned int actionFlags = SegmentAction::SelfInsert|SegmentAction::EventLevel5; + bool success = false; + TrackElement* segment1 = getSegment1(); + uint32_t actionFlags = SegmentAction::SelfInsert|SegmentAction::EventLevel5; DebugSession::open( segment1->getNet(), 156, 160 ); cdebug_log(159,1) << "Slacken Topology for " << segment1->getNet() diff --git a/katana/src/Session.cpp b/katana/src/Session.cpp index a1f5b6a3..0f543dd0 100644 --- a/katana/src/Session.cpp +++ b/katana/src/Session.cpp @@ -126,7 +126,7 @@ namespace Katana { { return _getKatanaEngine()->getNegociateWindow(); }; - unsigned int Session::_getRipupCost () + uint32_t Session::_getRipupCost () { return _getKatanaEngine()->getRipupCost(); }; @@ -197,7 +197,7 @@ namespace Katana { _doglegReset(); # if defined(CHECK_DATABASE) - unsigned int overlaps = 0; + uint32_t overlaps = 0; # endif for ( Track* track : _sortEvents ) { track->doReorder(); diff --git a/katana/src/SymmetricRoute.cpp b/katana/src/SymmetricRoute.cpp index 4c8296d8..1818b58c 100644 --- a/katana/src/SymmetricRoute.cpp +++ b/katana/src/SymmetricRoute.cpp @@ -185,7 +185,7 @@ namespace { if (not autoTerminal->isEndPoint()) continue; _seed = autoTerminal->getSegment(); - unsigned int flags = (_seed->getAutoSource() == autoTerminal) ? Flags::Target : Flags::Source; + Flags flags = (_seed->getAutoSource() == autoTerminal) ? Flags::Target : Flags::Source; for ( AutoSegment* segment : _seed->getConnecteds(flags) ) _data->addReference( segment ); diff --git a/katana/src/Track.cpp b/katana/src/Track.cpp index 7424c1eb..62dc1d26 100644 --- a/katana/src/Track.cpp +++ b/katana/src/Track.cpp @@ -116,7 +116,7 @@ namespace Katana { { return _routingPlane->getKatanaEngine(); } - unsigned int Track::getDepth () const + uint32_t Track::getDepth () const { return _routingPlane->getDepth(); } @@ -148,8 +148,8 @@ namespace Katana { TrackElement* Track::getSegment ( DbU::Unit position ) const { - unsigned int state; - size_t begin; + uint32_t state; + size_t begin; getBeginIndex( position, begin, state ); if (state & (BeginIsTrackMin|EndIsTrackMax)) return NULL; @@ -194,7 +194,7 @@ namespace Katana { } - void Track::getBeginIndex ( DbU::Unit position, size_t& begin, unsigned int& state ) const + void Track::getBeginIndex ( DbU::Unit position, size_t& begin, uint32_t& state ) const { if (_segments.empty()) { state = EmptyTrack; @@ -256,7 +256,7 @@ namespace Katana { void Track::getOverlapBounds ( Interval interval, size_t& begin, size_t& end ) const { - unsigned int iState; + uint32_t iState; if ( _segments.empty() or (interval.getVMax() <= _min) @@ -277,11 +277,11 @@ namespace Katana { } - TrackCost Track::getOverlapCost ( Interval interval - , Net* net - , size_t begin - , size_t end - , unsigned int flags ) const + TrackCost Track::getOverlapCost ( Interval interval + , Net* net + , size_t begin + , size_t end + , uint32_t flags ) const { TrackCost cost ( const_cast(this), interval, begin, end, net, flags ); @@ -326,7 +326,7 @@ namespace Katana { } - TrackCost Track::getOverlapCost ( Interval interval, Net* net, unsigned int flags ) const + TrackCost Track::getOverlapCost ( Interval interval, Net* net, uint32_t flags ) const { size_t begin; size_t end; @@ -337,11 +337,11 @@ namespace Katana { } - TrackCost Track::getOverlapCost ( TrackElement* segment, unsigned int flags ) const + TrackCost Track::getOverlapCost ( TrackElement* segment, uint32_t flags ) const { return getOverlapCost ( segment->getCanonicalInterval(), segment->getNet(), flags ); } - void Track::getTerminalWeight ( Interval interval, Net* net, size_t& count, unsigned int& weight ) const + void Track::getTerminalWeight ( Interval interval, Net* net, size_t& count, uint32_t& weight ) const { cdebug_log(155,1) << "getTerminalWeight() @" << DbU::getValueString(_axis) << " [" << interval.getVMin() << " " << interval.getVMax() << "]" << endl; @@ -390,9 +390,9 @@ namespace Katana { Interval Track::getFreeInterval ( DbU::Unit position, Net* net ) const { - unsigned int state; - size_t begin; - size_t end; + uint32_t state; + size_t begin; + size_t end; if (_segments.empty()) return Interval(_min,_max); @@ -405,7 +405,7 @@ namespace Katana { } - Interval Track::expandFreeInterval ( size_t& begin, size_t& end, unsigned int state, Net* net ) const + Interval Track::expandFreeInterval ( size_t& begin, size_t& end, uint32_t state, Net* net ) const { cdebug_log(155,1) << "Track::expandFreeInterval() begin:" << begin << " end:" << end << " " << net << endl; cdebug_log(155,0) << _segments[begin] << endl; @@ -481,7 +481,7 @@ namespace Katana { } - bool Track::check ( unsigned int& overlaps, const char* message ) const + bool Track::check ( uint32_t& overlaps, const char* message ) const { bool coherency = true; bool holes = false; @@ -554,7 +554,7 @@ namespace Katana { } - DbU::Unit Track::getMinimalPosition ( size_t index, unsigned int state ) const + DbU::Unit Track::getMinimalPosition ( size_t index, uint32_t state ) const { Interval canonical; @@ -564,14 +564,14 @@ namespace Katana { case BeginIsSegmentMax: return _segments[index]->getTargetU (); } - cerr << Bug( " Track::getMinimalPosition(size_t,unsigned int) :" + cerr << Bug( " Track::getMinimalPosition(size_t,uint32_t) :" " invalid state value %ud.", state ) << endl; return _min; } - DbU::Unit Track::getMaximalPosition ( size_t index, unsigned int state ) const + DbU::Unit Track::getMaximalPosition ( size_t index, uint32_t state ) const { Interval canonical; @@ -583,7 +583,7 @@ namespace Katana { case EndIsSegmentMax: return _segments[index ]->getTargetU (); } - cerr << Bug( " Track::getMaximalPosition(size_t,unsigned int) :" + cerr << Bug( " Track::getMaximalPosition(size_t,uint32_t) :" " invalid state value %ud.", state ) << endl; return _min; @@ -667,7 +667,7 @@ namespace Katana { } - unsigned int Track::checkOverlap ( unsigned int& overlaps ) const + uint32_t Track::checkOverlap ( uint32_t& overlaps ) const { if ( !_segments.size() ) return 0; diff --git a/katana/src/TrackCost.cpp b/katana/src/TrackCost.cpp index 2f6501de..1ec1a559 100644 --- a/katana/src/TrackCost.cpp +++ b/katana/src/TrackCost.cpp @@ -59,12 +59,12 @@ namespace Katana { { } - TrackCost::TrackCost ( Track* track - , const Interval& interval - , size_t begin - , size_t end - , Net* net - , unsigned int flags + TrackCost::TrackCost ( Track* track + , const Interval& interval + , size_t begin + , size_t end + , Net* net + , uint32_t flags ) : _flags (flags) , _track (track) diff --git a/katana/src/TrackElement.cpp b/katana/src/TrackElement.cpp index 8ea7a561..2b28774b 100644 --- a/katana/src/TrackElement.cpp +++ b/katana/src/TrackElement.cpp @@ -137,7 +137,7 @@ namespace Katana { bool TrackElement::isGlobal () const { return not isLocal(); } bool TrackElement::isBipoint () const { return false; } bool TrackElement::isTerminal () const { return false; } - bool TrackElement::isStrongTerminal ( unsigned int ) const { return false; } + bool TrackElement::isStrongTerminal ( Flags ) const { return false; } bool TrackElement::isStrap () const { return false; } bool TrackElement::isSlackened () const { return false; } bool TrackElement::isDogleg () const { return false; } @@ -147,23 +147,23 @@ namespace Katana { // Predicates. bool TrackElement::hasSymmetric () const { return false; } bool TrackElement::canSlacken () const { return false; } - bool TrackElement::canPivotUp ( float, unsigned int ) const { return false; }; - bool TrackElement::canPivotDown ( float, unsigned int ) const { return false; }; - bool TrackElement::canMoveUp ( float, unsigned int ) const { return false; }; + bool TrackElement::canPivotUp ( float, Flags ) const { return false; }; + bool TrackElement::canPivotDown ( float, Flags ) const { return false; }; + bool TrackElement::canMoveUp ( float, Flags ) const { return false; }; bool TrackElement::canDogleg () { return false; }; bool TrackElement::canDogleg ( Interval ) { return false; }; - bool TrackElement::canDogleg ( Anabatic::GCell*, unsigned int ) { return false; }; + bool TrackElement::canDogleg ( Anabatic::GCell*, Flags ) { return false; }; // Accessors. unsigned long TrackElement::getId () const { return 0; } unsigned long TrackElement::getFreedomDegree () const { return 0; } DbU::Unit TrackElement::getPitch () const { return 0; } DbU::Unit TrackElement::getPPitch () const { return 0; } - float TrackElement::getMaxUnderDensity ( unsigned int ) const { return 0.0; }; - unsigned int TrackElement::getDoglegLevel () const { return 0; } + float TrackElement::getMaxUnderDensity ( Flags ) const { return 0.0; }; + uint32_t TrackElement::getDoglegLevel () const { return 0; } TrackElement* TrackElement::getParent () const { return NULL; } Interval TrackElement::getSourceConstraints () const { return Interval(); } Interval TrackElement::getTargetConstraints () const { return Interval(); } - DataNegociate* TrackElement::getDataNegociate ( unsigned int ) const { return NULL; } + DataNegociate* TrackElement::getDataNegociate ( Flags ) const { return NULL; } TrackElements TrackElement::getPerpandiculars () { return new TrackElements_Perpandiculars(NULL); } void TrackElement::invalidate () { } TrackElement* TrackElement::getCanonical ( Interval& i ) { i=Interval(getSourceU(),getTargetU()); return this; } @@ -174,21 +174,21 @@ namespace Katana { void TrackElement::setTrack ( Track* track ) { _track = track; } void TrackElement::setSymmetric ( TrackElement* ) { } void TrackElement::updateFreedomDegree () { } - void TrackElement::setDoglegLevel ( unsigned int ) { } + void TrackElement::setDoglegLevel ( uint32_t ) { } void TrackElement::swapTrack ( TrackElement* ) { } - void TrackElement::reschedule ( unsigned int ) { } + void TrackElement::reschedule ( uint32_t ) { } void TrackElement::detach () { } void TrackElement::revalidate () { } void TrackElement::updatePPitch () { } - void TrackElement::setAxis ( DbU::Unit, unsigned int flags ) { } + void TrackElement::setAxis ( DbU::Unit, uint32_t flags ) { } TrackElement* TrackElement::makeDogleg () { return NULL; } - TrackElement* TrackElement::makeDogleg ( Interval, unsigned int& ) { return NULL; } + TrackElement* TrackElement::makeDogleg ( Interval, Flags& ) { return NULL; } TrackElement* TrackElement::makeDogleg ( Anabatic::GCell*, TrackElement*&, TrackElement*& ) { return NULL; } void TrackElement::_postDoglegs ( TrackElement*&, TrackElement*& ) { } - bool TrackElement::moveAside ( unsigned int ) { return false; } - bool TrackElement::slacken ( unsigned int ) { return false; } - bool TrackElement::moveUp ( unsigned int ) { return false; } - bool TrackElement::moveDown ( unsigned int ) { return false; } + bool TrackElement::moveAside ( Flags ) { return false; } + bool TrackElement::slacken ( Flags ) { return false; } + bool TrackElement::moveUp ( Flags ) { return false; } + bool TrackElement::moveDown ( Flags ) { return false; } #if THIS_IS_DISABLED void TrackElement::desalignate () { } #endif diff --git a/katana/src/TrackElements.cpp b/katana/src/TrackElements.cpp index fec16ff7..3bdb5247 100644 --- a/katana/src/TrackElements.cpp +++ b/katana/src/TrackElements.cpp @@ -34,9 +34,9 @@ namespace Katana { // Class : "TrackElements_Perpandiculars". - TrackElements_Perpandiculars::Locator::Locator ( TrackElement* segment ) + TrackElements_Perpandiculars::Locator::Locator ( TrackElement* segment, Flags flags ) : TrackElementHL () - , _locator (segment->base()) + , _locator (segment->base(),flags) , _element (NULL) { cdebug_log(155,0) << "TrackElements_Perpandiculars::Locator::Locator()" << endl; @@ -91,7 +91,7 @@ namespace Katana { TrackElementHL* TrackElements_Perpandiculars::getLocator () const - { return new Locator(_segment); } + { return new Locator(_segment,_flags); } string TrackElements_Perpandiculars::Locator::_getString () const diff --git a/katana/src/TrackFixedSegment.cpp b/katana/src/TrackFixedSegment.cpp index 99946ef2..d928ddcd 100644 --- a/katana/src/TrackFixedSegment.cpp +++ b/katana/src/TrackFixedSegment.cpp @@ -65,11 +65,11 @@ namespace Katana { { Box boundingBox = segment->getBoundingBox(); - unsigned int flags = TElemFixed | ((segment->getNet() == _blockageNet) ? TElemBlockage : 0); + uint32_t flags = TElemFixed | ((segment->getNet() == _blockageNet) ? TElemBlockage : 0); setFlags( flags ); if (track) { - unsigned int depth = track->getDepth(); + uint32_t depth = track->getDepth(); Technology* technology = DataBase::getDB()->getTechnology(); const Layer* layer1 = track->getLayer()->getBlockageLayer(); RegularLayer* layer2 = dynamic_cast(technology->getLayer(layer1->getMask())); diff --git a/katana/src/TrackMarker.cpp b/katana/src/TrackMarker.cpp index 43103c33..c79293cd 100644 --- a/katana/src/TrackMarker.cpp +++ b/katana/src/TrackMarker.cpp @@ -67,7 +67,7 @@ namespace Katana { RoutingGauge* rg = Session::getRoutingGauge(); RoutingPlane* rp = Session::getKatanaEngine()->getRoutingPlaneByIndex(depth); DbU::Unit pitch = DbU::toLambda(Session::getPitch(depth)); - unsigned int rpDirection = rg->getLayerDirection(depth); + Flags rpDirection = rg->getLayerDirection(depth); Interval trackSpan; if ( rpDirection == Constant::Horizontal ) { @@ -80,10 +80,10 @@ namespace Katana { trackSpan = Interval ( sourcePoint.getX(), targetPoint.getX() ); } - if ( rpDirection xor rg->getLayerDirection(rg->getLayerDepth(pad->getLayer())) ) { - _weight = (unsigned int)(( pitch / (pitch+DbU::toLambda(trackSpan.getSize())) ) * 100.0) ; + if ( rpDirection xor (uint64_t)rg->getLayerDirection(rg->getLayerDepth(pad->getLayer())) ) { + _weight = (uint32_t)(( pitch / (pitch+DbU::toLambda(trackSpan.getSize())) ) * 100.0) ; } else { - _weight = (unsigned int)( (pitch + DbU::toLambda(trackSpan.getSize())) * 20.0 ); + _weight = (uint32_t)( (pitch + DbU::toLambda(trackSpan.getSize())) * 20.0 ); } Track* track = rp->getTrackByPosition ( trackSpan.getVMin() ); diff --git a/katana/src/TrackSegment.cpp b/katana/src/TrackSegment.cpp index c76f6e3f..c2289eaf 100644 --- a/katana/src/TrackSegment.cpp +++ b/katana/src/TrackSegment.cpp @@ -154,7 +154,7 @@ namespace Katana { bool TrackSegment::isGlobal () const { return _base->isWeakGlobal() or _base->isGlobal(); } bool TrackSegment::isBipoint () const { return _base->isBipoint(); } bool TrackSegment::isTerminal () const { return _base->isTerminal(); } - bool TrackSegment::isStrongTerminal ( unsigned int flags ) const { return _base->isStrongTerminal(flags); } + bool TrackSegment::isStrongTerminal ( Flags flags ) const { return _base->isStrongTerminal(flags); } bool TrackSegment::isStrap () const { return _base->isStrap(); } bool TrackSegment::isSlackened () const { return _base->isSlackened(); } bool TrackSegment::isDogleg () const { return _base->isDogleg(); } @@ -172,7 +172,7 @@ namespace Katana { DbU::Unit TrackSegment::getPPitch () const { return _ppitch; } DbU::Unit TrackSegment::getAxis () const { return _base->getAxis(); } unsigned long TrackSegment::getFreedomDegree () const { return _freedomDegree; } - unsigned int TrackSegment::getDoglegLevel () const { return _dogLegLevel; } + uint32_t TrackSegment::getDoglegLevel () const { return _dogLegLevel; } Interval TrackSegment::getSourceConstraints () const { return _base->getSourceConstraints(); } Interval TrackSegment::getTargetConstraints () const { return _base->getTargetConstraints(); } TrackElement* TrackSegment::getCanonical ( Interval& i ) { return Session::lookup( _base->getCanonical(i)->base() ); } @@ -182,7 +182,7 @@ namespace Katana { void TrackSegment::invalidate () { setFlags( TElemInvalidated ); _base->invalidate(); } - DataNegociate* TrackSegment::getDataNegociate ( unsigned int flags ) const + DataNegociate* TrackSegment::getDataNegociate ( Flags flags ) const { if (flags & Flags::DataSelf) return _data; @@ -292,7 +292,7 @@ namespace Katana { } - void TrackSegment::setDoglegLevel ( unsigned int level ) + void TrackSegment::setDoglegLevel ( uint32_t level ) { if (level > 15) { cerr << Bug("%s has reached maximum dog leg count (15)." @@ -344,7 +344,7 @@ namespace Katana { } - void TrackSegment::setAxis ( DbU::Unit axis, unsigned int flags ) + void TrackSegment::setAxis ( DbU::Unit axis, uint32_t flags ) { _base->setAxis( axis, flags ); invalidate(); @@ -393,7 +393,7 @@ namespace Katana { } - void TrackSegment::reschedule ( unsigned int level ) + void TrackSegment::reschedule ( uint32_t level ) { cdebug_log(159,1) << "TrackSegment::reschedule() - " << this << endl; @@ -409,19 +409,19 @@ namespace Katana { } - float TrackSegment::getMaxUnderDensity ( unsigned int flags ) const + float TrackSegment::getMaxUnderDensity ( Flags flags ) const { return _base->getMaxUnderDensity( flags ); } - bool TrackSegment::canPivotUp ( float reserve, unsigned int flags ) const + bool TrackSegment::canPivotUp ( float reserve, Flags flags ) const { return _base->canPivotUp( reserve, flags ); } - bool TrackSegment::canPivotDown ( float reserve, unsigned int flags ) const + bool TrackSegment::canPivotDown ( float reserve, Flags flags ) const { return _base->canPivotDown( reserve, flags ); } - bool TrackSegment::canMoveUp ( float reserve, unsigned int flags ) const + bool TrackSegment::canMoveUp ( float reserve, Flags flags ) const { return _base->canMoveUp( reserve, flags ); } @@ -432,7 +432,7 @@ namespace Katana { } - bool TrackSegment::slacken ( unsigned int flags ) + bool TrackSegment::slacken ( Flags flags ) { cdebug_log(159,0) << "TrackSegment::slacken()" << endl; @@ -456,7 +456,7 @@ namespace Katana { } - bool TrackSegment::moveUp ( unsigned int flags ) + bool TrackSegment::moveUp ( Flags flags ) { bool success = false; @@ -477,7 +477,7 @@ namespace Katana { } - bool TrackSegment::moveDown ( unsigned int flags ) + bool TrackSegment::moveDown ( Flags flags ) { bool success = false; @@ -498,7 +498,7 @@ namespace Katana { } - bool TrackSegment::moveAside ( unsigned int flags ) + bool TrackSegment::moveAside ( Flags flags ) { bool success = true; @@ -585,7 +585,7 @@ namespace Katana { } - bool TrackSegment::canDogleg ( Anabatic::GCell* doglegGCell, unsigned int flags ) + bool TrackSegment::canDogleg ( Anabatic::GCell* doglegGCell, Flags flags ) { cdebug_log(159,1) << "TrackSegment::canDogleg(GCell*) " << doglegGCell << endl; @@ -747,7 +747,7 @@ namespace Katana { } - TrackElement* TrackSegment::makeDogleg ( Interval interval, unsigned int& flags ) + TrackElement* TrackSegment::makeDogleg ( Interval interval, Flags& flags ) { TrackElement* perpandicular = NULL; TrackElement* parallel = NULL; @@ -764,7 +764,7 @@ namespace Katana { { cdebug_log(159,1) << "TrackSegment::_postDoglegs()" << endl; - unsigned int doglegLevel = 0; + uint32_t doglegLevel = 0; const vector& doglegs = Session::getDoglegs(); vector segments; diff --git a/katana/src/VerticalTrack.cpp b/katana/src/VerticalTrack.cpp index f4e20958..0595b1a3 100644 --- a/katana/src/VerticalTrack.cpp +++ b/katana/src/VerticalTrack.cpp @@ -25,7 +25,7 @@ namespace Katana { // Class : "VerticalTrack". - VerticalTrack::VerticalTrack ( RoutingPlane* routingPlane, unsigned int index ) + VerticalTrack::VerticalTrack ( RoutingPlane* routingPlane, uint32_t index ) : Track(routingPlane,index) { } @@ -34,7 +34,7 @@ namespace Katana { { } - VerticalTrack* VerticalTrack::create ( RoutingPlane* routingPlane, unsigned int index ) + VerticalTrack* VerticalTrack::create ( RoutingPlane* routingPlane, uint32_t index ) { VerticalTrack* track = new VerticalTrack ( routingPlane, index ); diff --git a/katana/src/katana/Configuration.h b/katana/src/katana/Configuration.h index 2f6c0bc5..0c68480b 100644 --- a/katana/src/katana/Configuration.h +++ b/katana/src/katana/Configuration.h @@ -66,16 +66,16 @@ namespace Katana { inline const Anabatic::Configuration* base () const; inline PostEventCb_t& getPostEventCb (); inline unsigned long getEventsLimit () const; - inline unsigned int getRipupCost () const; - unsigned int getRipupLimit ( unsigned int type ) const; - inline size_t getHTracksReservedLocal () const; - inline size_t getVTracksReservedLocal () const; - inline void setEventsLimit ( unsigned long ); - inline void setRipupCost ( unsigned int ); - void setRipupLimit ( unsigned int limit, unsigned int type ); + inline uint32_t getRipupCost () const; + uint32_t getRipupLimit ( uint32_t type ) const; + inline uint32_t getHTracksReservedLocal () const; + inline uint32_t getVTracksReservedLocal () const; + inline void setEventsLimit ( uint64_t ); + inline void setRipupCost ( uint32_t ); + void setRipupLimit ( uint32_t limit, uint32_t type ); inline void setPostEventCb ( PostEventCb_t ); - void setHTracksReservedLocal ( size_t ); - void setVTracksReservedLocal ( size_t ); + void setHTracksReservedLocal ( uint32_t ); + void setVTracksReservedLocal ( uint32_t ); inline void setFlags ( unsigned int ); inline void unsetFlags ( unsigned int ); inline void setProfileEventCosts ( bool ); @@ -85,14 +85,14 @@ namespace Katana { virtual string _getTypeName () const; private: // Attributes. - PostEventCb_t _postEventCb; - size_t _hTracksReservedLocal; - size_t _vTracksReservedLocal; - unsigned int _ripupLimits [RipupLimitsTableSize]; - unsigned int _ripupCost; - unsigned long _eventsLimit; - unsigned int _flags; - bool _profileEventCosts; + PostEventCb_t _postEventCb; + uint32_t _hTracksReservedLocal; + uint32_t _vTracksReservedLocal; + uint32_t _ripupLimits [RipupLimitsTableSize]; + uint32_t _ripupCost; + uint64_t _eventsLimit; + unsigned int _flags; + bool _profileEventCosts; private: Configuration ( const Configuration& other ); Configuration& operator= ( const Configuration& ); @@ -103,11 +103,11 @@ namespace Katana { inline const Anabatic::Configuration* Configuration::base () const { return dynamic_cast(this); } inline Anabatic::Configuration* Configuration::base () { return dynamic_cast(this); } inline Configuration::PostEventCb_t& Configuration::getPostEventCb () { return _postEventCb; } - inline unsigned long Configuration::getEventsLimit () const { return _eventsLimit; } - inline unsigned int Configuration::getRipupCost () const { return _ripupCost; } - inline size_t Configuration::getHTracksReservedLocal () const { return _hTracksReservedLocal; } - inline size_t Configuration::getVTracksReservedLocal () const { return _vTracksReservedLocal; } - inline void Configuration::setRipupCost ( unsigned int cost ) { _ripupCost = cost; } + inline uint64_t Configuration::getEventsLimit () const { return _eventsLimit; } + inline uint32_t Configuration::getRipupCost () const { return _ripupCost; } + inline uint32_t Configuration::getHTracksReservedLocal () const { return _hTracksReservedLocal; } + inline uint32_t Configuration::getVTracksReservedLocal () const { return _vTracksReservedLocal; } + inline void Configuration::setRipupCost ( uint32_t cost ) { _ripupCost = cost; } inline void Configuration::setPostEventCb ( PostEventCb_t cb ) { _postEventCb = cb; } inline void Configuration::setEventsLimit ( unsigned long limit ) { _eventsLimit = limit; } inline bool Configuration::useClockTree () const { return _flags & UseClockTree; } diff --git a/katana/src/katana/Constants.h b/katana/src/katana/Constants.h index 8ecf5093..b28e5cd2 100644 --- a/katana/src/katana/Constants.h +++ b/katana/src/katana/Constants.h @@ -41,11 +41,13 @@ namespace Katana { public: inline Flags ( uint64_t ); inline Flags ( const Super& ); + inline Flags ( const Hurricane::BaseFlags& ); }; - inline Flags::Flags ( uint64_t flags ) : Super(flags) { } - inline Flags::Flags ( const Flags::Super& base ) : Super(base) { } + inline Flags::Flags ( uint64_t flags ) : Super(flags) { } + inline Flags::Flags ( const Flags::Super& flags ) : Super(flags) { } + inline Flags::Flags ( const Hurricane::BaseFlags& flags ) : Super(flags) { } } // Katana namespace. diff --git a/katana/src/katana/DataNegociate.h b/katana/src/katana/DataNegociate.h index 5a6af59b..daafd37b 100644 --- a/katana/src/katana/DataNegociate.h +++ b/katana/src/katana/DataNegociate.h @@ -71,19 +71,19 @@ namespace Katana { inline Track* getTrack () const; inline DbU::Unit getLeftMinExtend () const; inline DbU::Unit getRightMinExtend () const; - inline unsigned int getTerminals () const; + inline uint32_t getTerminals () const; inline Net* getNet () const; - inline unsigned int getState () const; - inline unsigned int getStateCount () const; - inline unsigned int getRipupCount () const; - inline unsigned int getStateAndRipupCount () const; + inline uint32_t getState () const; + inline uint32_t getStateCount () const; + inline uint32_t getRipupCount () const; + inline uint32_t getStateAndRipupCount () const; DbU::Unit getWiringDelta ( DbU::Unit axis ) const; inline const vector& getPerpandiculars () const; inline const Interval& getPerpandicularFree () const; - inline void setState ( unsigned int, unsigned int flags=0 ); + inline void setState ( uint32_t, Flags flags=Flags::NoFlags ); inline void setRoutingEvent ( RoutingEvent* ); inline void setChildSegment ( TrackElement* ); - inline void setRipupCount ( unsigned int ); + inline void setRipupCount ( uint32_t ); inline void incRipupCount (); inline void decRipupCount (); inline void resetRipupCount (); @@ -121,25 +121,25 @@ namespace Katana { inline TrackElement* DataNegociate::getTrackSegment () const { return _trackSegment; } inline TrackElement* DataNegociate::getChildSegment () const { return _childSegment; } inline Track* DataNegociate::getTrack () const { return _trackSegment->getTrack(); } - inline unsigned int DataNegociate::getState () const { return _state; } - inline unsigned int DataNegociate::getTerminals () const { return _terminals; } - inline unsigned int DataNegociate::getRipupCount () const { return _ripupCount; } + inline uint32_t DataNegociate::getState () const { return _state; } + inline uint32_t DataNegociate::getTerminals () const { return _terminals; } + inline uint32_t DataNegociate::getRipupCount () const { return _ripupCount; } inline DbU::Unit DataNegociate::getLeftMinExtend () const { return _leftMinExtend; } inline DbU::Unit DataNegociate::getRightMinExtend () const { return _rightMinExtend; } inline Net* DataNegociate::getNet () const { return _net; } inline const vector& DataNegociate::getPerpandiculars () const { return _perpandiculars; } inline const Interval& DataNegociate::getPerpandicularFree () const { return _perpandicularFree; } - inline unsigned int DataNegociate::getStateCount () const { return _stateCount; } + inline uint32_t DataNegociate::getStateCount () const { return _stateCount; } inline void DataNegociate::resetStateCount () { _stateCount=0; } inline void DataNegociate::setRoutingEvent ( RoutingEvent* event ) { _routingEvent = event; } inline void DataNegociate::setChildSegment ( TrackElement* child ) { _childSegment = child; } - inline void DataNegociate::setRipupCount ( unsigned int count ) { _ripupCount = count; } + inline void DataNegociate::setRipupCount ( uint32_t count ) { _ripupCount = count; } inline void DataNegociate::incRipupCount () { _ripupCount++; } inline void DataNegociate::decRipupCount () { if (_ripupCount) _ripupCount--; } inline void DataNegociate::resetRipupCount () { _ripupCount = 0; } inline string DataNegociate::_getTypeName () const { return "DataNegociate"; } - inline void DataNegociate::setState ( unsigned int state, unsigned int flags ) + inline void DataNegociate::setState ( uint32_t state, Flags flags ) { if ( (_state != state) or (flags & Flags::ResetCount) ) { //std::cerr << "Changing state to:" << state << std::endl; @@ -149,7 +149,7 @@ namespace Katana { _stateCount++; } - inline unsigned int DataNegociate::getStateAndRipupCount () const + inline uint32_t DataNegociate::getStateAndRipupCount () const { return (_state << 4) + _ripupCount; } diff --git a/katana/src/katana/GraphicKatanaEngine.h b/katana/src/katana/GraphicKatanaEngine.h index b831ce6e..c8d9eabc 100644 --- a/katana/src/katana/GraphicKatanaEngine.h +++ b/katana/src/katana/GraphicKatanaEngine.h @@ -68,7 +68,7 @@ namespace Katana { , const Transformation& ); KatanaEngine* createEngine (); - KatanaEngine* getForFramework ( unsigned int flags ); + KatanaEngine* getForFramework ( uint32_t flags ); static GraphicKatanaEngine* grab (); virtual const Name& getName () const; Cell* getCell (); diff --git a/katana/src/katana/HorizontalTrack.h b/katana/src/katana/HorizontalTrack.h index f4d769f5..13a95195 100644 --- a/katana/src/katana/HorizontalTrack.h +++ b/katana/src/katana/HorizontalTrack.h @@ -30,7 +30,7 @@ namespace Katana { class HorizontalTrack : public Track { public: - static HorizontalTrack* create ( RoutingPlane*, unsigned int index ); + static HorizontalTrack* create ( RoutingPlane*, uint32_t index ); virtual bool isHorizontal () const; virtual bool isVertical () const; virtual Flags getDirection () const; @@ -40,7 +40,7 @@ namespace Katana { protected: // Constructors & Destructors. - HorizontalTrack ( RoutingPlane*, unsigned int index ); + HorizontalTrack ( RoutingPlane*, uint32_t index ); virtual ~HorizontalTrack (); virtual void _postCreate (); virtual void _preDestroy (); diff --git a/katana/src/katana/KatanaEngine.h b/katana/src/katana/KatanaEngine.h index 2b6694a0..9ae57127 100644 --- a/katana/src/katana/KatanaEngine.h +++ b/katana/src/katana/KatanaEngine.h @@ -72,12 +72,12 @@ namespace Katana { inline Configuration* getKatanaConfiguration (); virtual Configuration* getConfiguration (); inline bool getToolSuccess () const; - inline unsigned long getEventsLimit () const; - inline unsigned int getRipupLimit ( unsigned int type ) const; - unsigned int getRipupLimit ( const TrackElement* ) const; - inline unsigned int getRipupCost () const; - inline size_t getHTracksReservedLocal () const; - inline size_t getVTracksReservedLocal () const; + inline uint64_t getEventsLimit () const; + inline uint32_t getRipupLimit ( uint32_t type ) const; + uint32_t getRipupLimit ( const TrackElement* ) const; + inline uint32_t getRipupCost () const; + inline uint32_t getHTracksReservedLocal () const; + inline uint32_t getVTracksReservedLocal () const; inline bool profileEventCosts () const; virtual const Name& getName () const; inline Configuration::PostEventCb_t& @@ -86,7 +86,7 @@ namespace Katana { inline size_t getRoutingPlanesSize () const; RoutingPlane* getRoutingPlaneByIndex ( size_t index ) const; RoutingPlane* getRoutingPlaneByLayer ( const Layer* ) const; - Track* getTrackByPosition ( const Layer*, DbU::Unit axis, unsigned int mode=Constant::Nearest ) const; + Track* getTrackByPosition ( const Layer*, DbU::Unit axis, uint32_t mode=Constant::Nearest ) const; DataSymmetric* getDataSymmetric ( Net* ); inline const std::map& getSymmetrics () const; @@ -97,24 +97,24 @@ namespace Katana { virtual void openSession (); inline void setViewer ( CellViewer* ); inline void setPostEventCb ( Configuration::PostEventCb_t ); - inline void setEventLimit ( unsigned long ); + inline void setEventLimit ( uint64_t ); inline void setMinimumWL ( double ); - inline void setRipupLimit ( unsigned int type, unsigned int ); - inline void setRipupCost ( unsigned int ); - inline void setHTracksReservedLocal ( size_t ); - inline void setVTracksReservedLocal ( size_t ); + inline void setRipupLimit ( uint32_t type, uint32_t ); + inline void setRipupCost ( uint32_t ); + inline void setHTracksReservedLocal ( uint32_t ); + inline void setVTracksReservedLocal ( uint32_t ); DataSymmetric* addDataSymmetric ( Net* ); void setupPowerRails (); void protectRoutingPads (); void preProcess (); void setInterrupt ( bool ); void setupRoutingPlanes (); - void setupGlobalGraph ( unsigned int mode ); + void setupGlobalGraph ( uint32_t mode ); void annotateGlobalGraph (); void setFixedPreRouted (); void digitalInit (); void analogInit (); - void runNegociate ( unsigned int flags=Flags::NoFlags ); + void runNegociate ( Flags flags=Flags::NoFlags ); void runGlobalRouter (); void runSymmetricRouter (); void runTest (); @@ -124,7 +124,7 @@ namespace Katana { void _computeCagedConstraints (); TrackElement* _lookup ( Segment* ) const; inline TrackElement* _lookup ( AutoSegment* ) const; - bool _check ( unsigned int& overlap, const char* message=NULL ) const; + bool _check ( uint32_t& overlap, const char* message=NULL ) const; void _check ( Net* ) const; virtual Record* _getRecord () const; virtual string _getString () const; @@ -159,22 +159,22 @@ namespace Katana { inline Configuration* KatanaEngine::getKatanaConfiguration () { return _configuration; } inline Configuration::PostEventCb_t& KatanaEngine::getPostEventCb () { return _configuration->getPostEventCb(); } inline bool KatanaEngine::getToolSuccess () const { return _toolSuccess; } - inline unsigned long KatanaEngine::getEventsLimit () const { return _configuration->getEventsLimit(); } - inline unsigned int KatanaEngine::getRipupCost () const { return _configuration->getRipupCost(); } - inline size_t KatanaEngine::getHTracksReservedLocal () const { return _configuration->getHTracksReservedLocal(); } - inline size_t KatanaEngine::getVTracksReservedLocal () const { return _configuration->getVTracksReservedLocal(); } - inline unsigned int KatanaEngine::getRipupLimit ( unsigned int type ) const { return _configuration->getRipupLimit(type); } + inline uint64_t KatanaEngine::getEventsLimit () const { return _configuration->getEventsLimit(); } + inline uint32_t KatanaEngine::getRipupCost () const { return _configuration->getRipupCost(); } + inline uint32_t KatanaEngine::getHTracksReservedLocal () const { return _configuration->getHTracksReservedLocal(); } + inline uint32_t KatanaEngine::getVTracksReservedLocal () const { return _configuration->getVTracksReservedLocal(); } + inline uint32_t KatanaEngine::getRipupLimit ( uint32_t type ) const { return _configuration->getRipupLimit(type); } inline bool KatanaEngine::profileEventCosts () const { return _configuration->profileEventCosts(); } inline const std::map& KatanaEngine::getSymmetrics () const { return _symmetrics; } inline NegociateWindow* KatanaEngine::getNegociateWindow () { return _negociateWindow; } inline size_t KatanaEngine::getRoutingPlanesSize () const { return _routingPlanes.size(); } inline void KatanaEngine::setViewer ( CellViewer* viewer ) { _viewer=viewer; } - inline void KatanaEngine::setEventLimit ( unsigned long limit ) { _configuration->setEventsLimit(limit); } - inline void KatanaEngine::setRipupLimit ( unsigned int type, unsigned int limit ) { _configuration->setRipupLimit(limit,type); } - inline void KatanaEngine::setRipupCost ( unsigned int cost ) { _configuration->setRipupCost(cost); } - inline void KatanaEngine::setHTracksReservedLocal ( size_t reserved ) { _configuration->setHTracksReservedLocal(reserved); } - inline void KatanaEngine::setVTracksReservedLocal ( size_t reserved ) { _configuration->setVTracksReservedLocal(reserved); } + inline void KatanaEngine::setEventLimit ( uint64_t limit ) { _configuration->setEventsLimit(limit); } + inline void KatanaEngine::setRipupLimit ( uint32_t type, uint32_t limit ) { _configuration->setRipupLimit(limit,type); } + inline void KatanaEngine::setRipupCost ( uint32_t cost ) { _configuration->setRipupCost(cost); } + inline void KatanaEngine::setHTracksReservedLocal ( uint32_t reserved ) { _configuration->setHTracksReservedLocal(reserved); } + inline void KatanaEngine::setVTracksReservedLocal ( uint32_t reserved ) { _configuration->setVTracksReservedLocal(reserved); } inline void KatanaEngine::setMinimumWL ( double minimum ) { _minimumWL = minimum; } inline void KatanaEngine::setPostEventCb ( Configuration::PostEventCb_t cb ) { _configuration->setPostEventCb(cb); } inline void KatanaEngine::printConfiguration () const { _configuration->print(getCell()); } diff --git a/katana/src/katana/Manipulator.h b/katana/src/katana/Manipulator.h index 80881105..619d7391 100644 --- a/katana/src/katana/Manipulator.h +++ b/katana/src/katana/Manipulator.h @@ -36,19 +36,19 @@ namespace Katana { class Manipulator { public: - enum FunctionFlag { ToRipupLimit = 0x0001 - , AllowExpand = 0x0002 - , NoExpand = 0x0004 - , PerpandicularsFirst = 0x0008 - , ToMoveUp = 0x0010 - , AllowLocalMoveUp = 0x0020 - , AllowTerminalMoveUp = 0x0040 - , AllowShortPivotUp = 0x0080 - , NoDoglegReuse = 0x0100 - , LeftAxisHint = 0x0200 - , RightAxisHint = 0x0400 - , NotOnLastRipup = 0x0800 - , IgnoreContacts = 0x1000 + enum FunctionFlag { ToRipupLimit = (1 << 0) + , AllowExpand = (1 << 1) + , NoExpand = (1 << 2) + , PerpandicularsFirst = (1 << 3) + , ToMoveUp = (1 << 4) + , AllowLocalMoveUp = (1 << 5) + , AllowTerminalMoveUp = (1 << 6) + , AllowShortPivotUp = (1 << 7) + , NoDoglegReuse = (1 << 8) + , LeftAxisHint = (1 << 9) + , RightAxisHint = (1 << 10) + , NotOnLastRipup = (1 << 11) + , IgnoreContacts = (1 << 12) }; public: Manipulator ( TrackElement*, SegmentFsm& ); @@ -59,27 +59,27 @@ namespace Katana { inline const Layer* getLayer () const; inline DbU::Unit getPitch () const; inline DbU::Unit getPPitch () const; - bool canRipup ( unsigned int flags=0 ) const; + bool canRipup ( uint32_t flags=0 ) const; bool isCaged ( DbU::Unit ) const; - bool ripup ( unsigned int type, DbU::Unit axisHint=0 ); - bool ripupPerpandiculars ( unsigned int flags=0 ); + bool ripup ( uint32_t type, DbU::Unit axisHint=0 ); + bool ripupPerpandiculars ( uint32_t flags=0 ); void repackPerpandiculars (); void reprocessPerpandiculars (); bool ripple (); bool minimize (); - bool slacken ( unsigned int flags=Flags::NoFlags ); + bool slacken ( Flags flags=Flags::NoFlags ); bool pivotUp (); bool pivotDown (); - bool moveUp ( unsigned int flags=0 ); + bool moveUp ( uint32_t flags=0 ); bool makeDogleg (); bool makeDogleg ( DbU::Unit ); bool makeDogleg ( Interval ); - bool relax ( Interval, unsigned int flags=AllowExpand ); + bool relax ( Interval, uint32_t flags=AllowExpand ); bool insertInTrack ( size_t ); bool shrinkToTrack ( size_t - , unsigned int flags=0 - , DbU::Unit leftAxisHint=0 - , DbU::Unit rightAxisHint=0 + , uint32_t flags=0 + , DbU::Unit leftAxisHint=0 + , DbU::Unit rightAxisHint=0 ); bool forceToTrack ( size_t ); bool forceOverLocals (); diff --git a/katana/src/katana/NegociateWindow.h b/katana/src/katana/NegociateWindow.h index cfb32d93..0a35dcdd 100644 --- a/katana/src/katana/NegociateWindow.h +++ b/katana/src/katana/NegociateWindow.h @@ -109,10 +109,10 @@ namespace Katana { inline void setInterrupt ( bool ); inline void setStage ( Stage ); double computeWirelength (); - TrackElement* createTrackSegment ( AutoSegment*, unsigned int flags ); - void addRoutingEvent ( TrackElement*, unsigned int level ); - inline void rescheduleEvent ( RoutingEvent*, unsigned int level ); - void run ( unsigned int flags ); + TrackElement* createTrackSegment ( AutoSegment*, Flags flags ); + void addRoutingEvent ( TrackElement*, uint32_t level ); + inline void rescheduleEvent ( RoutingEvent*, uint32_t level ); + void run ( Flags flags ); void printStatistics () const; void _createRouting ( Anabatic::GCell* ); void _associateSymmetrics (); @@ -124,7 +124,7 @@ namespace Katana { private: // Attributes. - unsigned int _flags; + Flags _flags; bool _interrupt; KatanaEngine* _katana; vector _gcells; @@ -151,7 +151,7 @@ namespace Katana { inline RoutingEventQueue& NegociateWindow::getEventQueue () { return _eventQueue; } inline RoutingEventHistory& NegociateWindow::getEventHistory () { return _eventHistory; } inline void NegociateWindow::setInterrupt ( bool state ) { _interrupt = state; } - inline void NegociateWindow::rescheduleEvent ( RoutingEvent* event, unsigned int level ) { event->reschedule(_eventQueue,level); } + inline void NegociateWindow::rescheduleEvent ( RoutingEvent* event, uint32_t level ) { event->reschedule(_eventQueue,level); } inline std::string NegociateWindow::_getTypeName () const { return "NegociateWindow"; } diff --git a/katana/src/katana/RoutingEvent.h b/katana/src/katana/RoutingEvent.h index 16a2be13..4aea9a8d 100644 --- a/katana/src/katana/RoutingEvent.h +++ b/katana/src/katana/RoutingEvent.h @@ -65,16 +65,16 @@ namespace Katana { Key ( const RoutingEvent* ); void update ( const RoutingEvent* ); private: - unsigned int _tracksNb:16; - float _priority; - unsigned int _eventLevel; - unsigned int _segFlags; - unsigned int _layerDepth; - DbU::Unit _length; - DbU::Unit _axis; - DbU::Unit _sourceU; - Net* _net; - unsigned long _id; + unsigned int _tracksNb:16; + float _priority; + uint32_t _eventLevel; + uint32_t _segFlags; + uint32_t _layerDepth; + DbU::Unit _length; + DbU::Unit _axis; + DbU::Unit _sourceU; + Net* _net; + uint64_t _id; friend class Compare; }; @@ -95,14 +95,14 @@ namespace Katana { enum Mode { Negociate=1, Pack=2, Repair=3 }; public: - static unsigned int getStage (); - static size_t getAllocateds (); - static size_t getProcesseds (); - static size_t getCloneds (); + static uint32_t getStage (); + static uint32_t getAllocateds (); + static uint32_t getProcesseds (); + static uint32_t getCloneds (); static void resetProcesseds (); - static void setStage ( unsigned int ); + static void setStage ( uint32_t ); public: - static RoutingEvent* create ( TrackElement*, unsigned int mode=Negociate ); + static RoutingEvent* create ( TrackElement*, uint32_t mode=Negociate ); RoutingEvent* clone () const; void destroy (); inline bool isCloned () const; @@ -114,11 +114,11 @@ namespace Katana { inline bool isSheared () const; inline bool isRipedByLocal () const; inline bool isOverConstrained () const; - inline unsigned int getId () const; - inline unsigned int getTimeStamp () const; + inline uint32_t getId () const; + inline uint32_t getTimeStamp () const; inline bool getMode () const; inline bool canMinimize () const; - unsigned int getState () const; + uint32_t getState () const; inline const Key& getKey () const; inline TrackElement* getSegment () const; inline const vector& getPerpandiculars () const; @@ -129,10 +129,10 @@ namespace Katana { inline const Interval& getOptimal () const; inline const Interval& getPerpandicularFree () const; inline float getPriority () const; - inline unsigned int getTracksNb () const; - inline unsigned int getTracksFree () const; - inline unsigned int getInsertState () const; - inline unsigned int getEventLevel () const; + inline uint32_t getTracksNb () const; + inline uint32_t getTracksFree () const; + inline uint32_t getInsertState () const; + inline uint32_t getEventLevel () const; void revalidate (); inline void updateKey (); void process ( RoutingEventQueue& @@ -140,23 +140,23 @@ namespace Katana { , RoutingEventLoop& ); void setSegment ( TrackElement* ); - RoutingEvent* reschedule ( RoutingEventQueue&, unsigned int eventLevel ); - void setMode ( unsigned int ); - void setState ( unsigned int ); - inline void setTimeStamp ( unsigned int ); + RoutingEvent* reschedule ( RoutingEventQueue&, uint32_t eventLevel ); + void setMode ( uint32_t ); + void setState ( uint32_t ); + inline void setTimeStamp ( uint32_t ); inline void setProcessed ( bool state=true ); inline void setDisabled ( bool state=true ); inline void setMinimized ( bool state=true ); inline void setRipedByLocal ( bool state=true ); - inline void setTracksFree ( unsigned int ); + inline void setTracksFree ( uint32_t ); inline void setForcedToHint ( bool state = true ); void setAxisHint ( DbU::Unit ); void setAxisHintFromParent (); inline void updateAxisHistory (); - inline void setInsertState ( unsigned int ); + inline void setInsertState ( uint32_t ); inline void incInsertState (); inline void resetInsertState (); - inline void setEventLevel ( unsigned int ); + inline void setEventLevel ( uint32_t ); void _processNegociate ( RoutingEventQueue&, RoutingEventHistory& ); void _processPack ( RoutingEventQueue&, RoutingEventHistory& ); void _processRepair ( RoutingEventQueue&, RoutingEventHistory& ); @@ -164,16 +164,16 @@ namespace Katana { string _getString () const; string _getTypeName () const; private: - RoutingEvent ( TrackElement*, unsigned int mode ); + RoutingEvent ( TrackElement*, uint32_t mode ); ~RoutingEvent (); protected: // Attributes. - static unsigned int _idCounter; - static unsigned int _stage; - static size_t _allocateds; - static size_t _processeds; - static size_t _cloneds; + static uint32_t _idCounter; + static uint32_t _stage; + static uint32_t _allocateds; + static uint32_t _processeds; + static uint32_t _cloneds; mutable bool _cloned; bool _processed; bool _disabled; @@ -181,8 +181,8 @@ namespace Katana { bool _minimized; bool _forceToHint; bool _ripedByLocal; - unsigned int _id; - unsigned int _timeStamp; + uint32_t _id; + uint32_t _timeStamp; TrackElement* _segment; DataNegociate* _dataNegociate; DbU::Unit _axisHistory; @@ -195,7 +195,7 @@ namespace Katana { unsigned int _insertState : 6; unsigned int _mode : 4; unsigned int _rippleState : 4; - unsigned int _eventLevel; + uint32_t _eventLevel; float _priority; //vector _perpandiculars; Key _key; @@ -209,8 +209,8 @@ namespace Katana { inline bool RoutingEvent::isForcedToHint () const { return _forceToHint; } inline bool RoutingEvent::isRipedByLocal () const { return _ripedByLocal; } inline bool RoutingEvent::isOverConstrained () const { return _overConstrained; } - inline unsigned int RoutingEvent::getId () const { return _id; } - inline unsigned int RoutingEvent::getTimeStamp () const { return _timeStamp; } + inline uint32_t RoutingEvent::getId () const { return _id; } + inline uint32_t RoutingEvent::getTimeStamp () const { return _timeStamp; } inline bool RoutingEvent::getMode () const { return _mode; } inline bool RoutingEvent::canMinimize () const { return not _minimized; } inline const RoutingEvent::Key& RoutingEvent::getKey () const { return _key; } @@ -225,22 +225,22 @@ namespace Katana { inline const Interval& RoutingEvent::getPerpandicularFree () const { return _dataNegociate->getPerpandicularFree(); } //inline const Interval& RoutingEvent::getPerpandicular () const { return _perpandicular; } inline float RoutingEvent::getPriority () const { return _priority; } - inline unsigned int RoutingEvent::getEventLevel () const { return _eventLevel; } - inline unsigned int RoutingEvent::getTracksNb () const { return _tracksNb; } - inline unsigned int RoutingEvent::getTracksFree () const { return _tracksFree; } - inline unsigned int RoutingEvent::getInsertState () const { return _insertState; } - inline void RoutingEvent::setTimeStamp ( unsigned int stamp ) { _timeStamp = stamp; } + inline uint32_t RoutingEvent::getEventLevel () const { return _eventLevel; } + inline uint32_t RoutingEvent::getTracksNb () const { return _tracksNb; } + inline uint32_t RoutingEvent::getTracksFree () const { return _tracksFree; } + inline uint32_t RoutingEvent::getInsertState () const { return _insertState; } + inline void RoutingEvent::setTimeStamp ( uint32_t stamp ) { _timeStamp = stamp; } inline void RoutingEvent::setProcessed ( bool state ) { _processed = state; } inline void RoutingEvent::setDisabled ( bool state ) { _disabled = state; } inline void RoutingEvent::setMinimized ( bool state ) { _minimized = state; } inline void RoutingEvent::setRipedByLocal ( bool state ) { _ripedByLocal = state; } - inline void RoutingEvent::setTracksFree ( unsigned int nb ) { _tracksFree = nb; } + inline void RoutingEvent::setTracksFree ( uint32_t nb ) { _tracksFree = nb; } inline void RoutingEvent::setForcedToHint ( bool state ) { _forceToHint = state; } inline void RoutingEvent::updateAxisHistory () { _axisHistory = _segment->getAxis(); } - inline void RoutingEvent::setInsertState ( unsigned int state ) { _insertState = state; } + inline void RoutingEvent::setInsertState ( uint32_t state ) { _insertState = state; } inline void RoutingEvent::incInsertState () { _insertState++; } inline void RoutingEvent::resetInsertState () { _insertState = 0; } - inline void RoutingEvent::setEventLevel ( unsigned int level ) { _eventLevel = level; } + inline void RoutingEvent::setEventLevel ( uint32_t level ) { _eventLevel = level; } inline void RoutingEvent::updateKey () { revalidate(); _key.update(this); } inline bool RoutingEvent::CompareById::operator() ( const RoutingEvent* lhs, const RoutingEvent* rhs ) const diff --git a/katana/src/katana/RoutingEventQueue.h b/katana/src/katana/RoutingEventQueue.h index fcf3257b..c650e81f 100644 --- a/katana/src/katana/RoutingEventQueue.h +++ b/katana/src/katana/RoutingEventQueue.h @@ -10,7 +10,7 @@ // | Author : Jean-Paul CHAPUT | // | E-mail : Jean-Paul.Chaput@asim.lip6.fr | // | =============================================================== | -// | C++ Header : "./katana/RoutingEventQueue.h" | +// | C++ Header : "./katana/RoutingEventQueue.h" | // +-----------------------------------------------------------------+ @@ -39,10 +39,10 @@ namespace Katana { ~RoutingEventQueue (); inline bool empty () const; inline size_t size () const; - inline unsigned int getTopEventLevel () const; + inline uint32_t getTopEventLevel () const; RoutingEvent* pop (); void load ( const vector& ); - void add ( TrackElement*, unsigned int level ); + void add ( TrackElement*, uint32_t level ); inline void push ( RoutingEvent* ); void repush ( RoutingEvent* ); void repushInvalidateds (); @@ -57,7 +57,7 @@ namespace Katana { protected: // Attributes. - unsigned int _topEventLevel; + uint32_t _topEventLevel; RoutingEventSet _pushRequests; multiset _events; @@ -69,11 +69,11 @@ namespace Katana { // Inline Functions. - inline bool RoutingEventQueue::empty () const { return _events.empty(); } - inline size_t RoutingEventQueue::size () const { return _events.size(); } - inline unsigned int RoutingEventQueue::getTopEventLevel () const { return _topEventLevel; } - inline string RoutingEventQueue::_getTypeName () const { return "EventQueue"; } - inline void RoutingEventQueue::push ( RoutingEvent* event ) { _pushRequests.insert( event ); } + inline bool RoutingEventQueue::empty () const { return _events.empty(); } + inline size_t RoutingEventQueue::size () const { return _events.size(); } + inline uint32_t RoutingEventQueue::getTopEventLevel () const { return _topEventLevel; } + inline string RoutingEventQueue::_getTypeName () const { return "EventQueue"; } + inline void RoutingEventQueue::push ( RoutingEvent* event ) { _pushRequests.insert( event ); } } // Katana namespace. diff --git a/katana/src/katana/RoutingPlane.h b/katana/src/katana/RoutingPlane.h index 4300532e..88103168 100644 --- a/katana/src/katana/RoutingPlane.h +++ b/katana/src/katana/RoutingPlane.h @@ -39,7 +39,7 @@ namespace Katana { inline bool isVertical () const; inline KatanaEngine* getKatanaEngine () const; inline RoutingLayerGauge* getLayerGauge () const; - inline unsigned int getDirection () const; + inline Flags getDirection () const; inline size_t getDepth () const; inline DbU::Unit getAxisMin () const; inline DbU::Unit getAxisMax () const; @@ -53,8 +53,8 @@ namespace Katana { inline size_t computeTracksSize () const; inline DbU::Unit getTrackPosition ( size_t index ) const; Track* getTrackByIndex ( size_t index ) const; - Track* getTrackByPosition ( DbU::Unit axis, unsigned int mode=Flags::Nearest ) const; - bool _check ( unsigned int& overlaps ) const; + Track* getTrackByPosition ( DbU::Unit axis, uint32_t mode=Constant::Nearest ) const; + bool _check ( uint32_t& overlaps ) const; Record* _getRecord () const; string _getString () const; inline string _getTypeName () const; @@ -70,7 +70,7 @@ namespace Katana { KatanaEngine* _katana; RoutingLayerGauge* _layerGauge; size_t _depth; - unsigned int _flags; + Flags _flags; DbU::Unit _axisMin; DbU::Unit _axisMax; DbU::Unit _trackMin; @@ -93,7 +93,7 @@ namespace Katana { inline KatanaEngine* RoutingPlane::getKatanaEngine () const { return _katana; } inline RoutingLayerGauge* RoutingPlane::getLayerGauge () const { return _layerGauge; } - inline unsigned int RoutingPlane::getDirection () const { return _flags & Flags::DirectionMask; } + inline Flags RoutingPlane::getDirection () const { return _flags & Flags::DirectionMask; } inline size_t RoutingPlane::getDepth () const { return _depth; } inline DbU::Unit RoutingPlane::getAxisMin () const { return _axisMin; } inline DbU::Unit RoutingPlane::getAxisMax () const { return _axisMax; } diff --git a/katana/src/katana/SegmentFsm.h b/katana/src/katana/SegmentFsm.h index 5658d0c4..426379bc 100644 --- a/katana/src/katana/SegmentFsm.h +++ b/katana/src/katana/SegmentFsm.h @@ -62,27 +62,27 @@ namespace Katana { }; public: SegmentAction ( TrackElement* - , unsigned int type + , uint32_t type , DbU::Unit axisHint=0 - , unsigned int toState =0 + , uint32_t toState =0 ); inline TrackElement* getSegment () const; - inline unsigned int getType () const; + inline uint32_t getType () const; inline void setAxisHint ( DbU::Unit ); - inline unsigned int setFlag ( unsigned int ); + inline uint32_t setFlag ( uint32_t ); bool doAction ( RoutingEventQueue& ); private: TrackElement* _segment; - unsigned int _type; + uint32_t _type; DbU::Unit _axisHint; - unsigned int _toState; + uint32_t _toState; }; inline TrackElement* SegmentAction::getSegment () const { return _segment; } - inline unsigned int SegmentAction::getType () const { return _type; } + inline uint32_t SegmentAction::getType () const { return _type; } inline void SegmentAction::setAxisHint ( DbU::Unit axis ) { _axisHint = axis; } - inline unsigned int SegmentAction::setFlag ( unsigned int flag ) { _type |= flag; return _type; } + inline uint32_t SegmentAction::setFlag ( uint32_t flag ) { _type |= flag; return _type; } // ------------------------------------------------------------------- @@ -120,7 +120,7 @@ namespace Katana { inline RoutingEventHistory& getHistory () const; inline TrackElement* getSegment1 () const; inline TrackElement* getSegment2 () const; - inline unsigned int getState () const; + inline uint32_t getState () const; inline DataNegociate* getData (); inline DataNegociate* getData1 (); inline DataNegociate* getData2 (); @@ -134,12 +134,12 @@ namespace Katana { inline size_t getBegin ( size_t ); inline size_t getEnd ( size_t ); inline vector& getActions (); - inline void setState ( unsigned int ); - void setDataState ( unsigned int ); + inline void setState ( uint32_t ); + void setDataState ( uint32_t ); void addAction ( TrackElement* - , unsigned int type - , DbU::Unit axisHint=0 - , unsigned int toState =0 + , uint32_t type + , DbU::Unit axisHint=0 + , uint32_t toState =0 ); void doActions (); inline void clearActions (); @@ -150,29 +150,29 @@ namespace Katana { void bindToTrack ( size_t ); void moveToTrack ( size_t ); void ripupPerpandiculars (); - bool canRipup ( unsigned int flags=0 ); + bool canRipup ( uint32_t flags=0 ); bool conflictSolveByHistory (); bool conflictSolveByPlaceds (); bool solveTerminalVsGlobal (); bool desaturate (); - bool slackenTopology ( unsigned int flags=0 ); + bool slackenTopology ( uint32_t flags=0 ); bool solveFullBlockages (); private: bool _slackenStrap ( TrackElement*& , DataNegociate*& - , unsigned int flags ); + , uint32_t flags ); bool _slackenLocal ( TrackElement*& , DataNegociate*& - , unsigned int flags ); + , uint32_t flags ); bool _slackenGlobal ( TrackElement*& , DataNegociate*& - , unsigned int flags ); + , uint32_t flags ); private: RoutingEvent* _event1; RoutingEvent* _event2; RoutingEventQueue& _queue; RoutingEventHistory& _history; - unsigned int _state; + uint32_t _state; DataNegociate* _data1; DataNegociate* _data2; Interval _constraint; @@ -192,7 +192,7 @@ namespace Katana { inline RoutingEvent* SegmentFsm::getEvent2 () const { return _event2; } inline RoutingEventQueue& SegmentFsm::getQueue () const { return _queue; } inline RoutingEventHistory& SegmentFsm::getHistory () const { return _history; } - inline unsigned int SegmentFsm::getState () const { return _state; } + inline uint32_t SegmentFsm::getState () const { return _state; } inline TrackElement* SegmentFsm::getSegment1 () const { return _event1->getSegment(); } inline TrackElement* SegmentFsm::getSegment2 () const { return (_event2) ? _event2->getSegment() : NULL; } inline DataNegociate* SegmentFsm::getData () { return (_useEvent2) ? _data2 : _data1; } @@ -208,7 +208,7 @@ namespace Katana { inline size_t SegmentFsm::getBegin ( size_t i ) { return (_useEvent2) ? _costs[i][1].getBegin() : _costs[i][0].getBegin(); } inline size_t SegmentFsm::getEnd ( size_t i ) { return (_useEvent2) ? _costs[i][1].getEnd () : _costs[i][0].getEnd (); } inline vector& SegmentFsm::getActions () { return _actions; } - inline void SegmentFsm::setState ( unsigned int state ) { _state = state; } + inline void SegmentFsm::setState ( uint32_t state ) { _state = state; } inline void SegmentFsm::clearActions () { _actions.clear(); } inline SegmentFsm& SegmentFsm::useEvent1 () { _useEvent2 = false; return *this; } inline SegmentFsm& SegmentFsm::useEvent2 () { _useEvent2 = true ; return *this; } diff --git a/katana/src/katana/Session.h b/katana/src/katana/Session.h index 16edc456..e35132ef 100644 --- a/katana/src/katana/Session.h +++ b/katana/src/katana/Session.h @@ -72,7 +72,7 @@ namespace Katana { static Configuration* getConfiguration (); inline static Net* getBlockageNet (); inline static NegociateWindow* getNegociateWindow (); - inline static unsigned int getRipupCost (); + inline static uint32_t getRipupCost (); inline static Anabatic::GCell* getGCellUnder ( DbU::Unit, DbU::Unit ); static void setInterrupt ( bool ); inline static void addInsertEvent ( TrackMarker* , Track* ); @@ -88,7 +88,7 @@ namespace Katana { private: KatanaEngine* _getKatanaEngine (); Net* _getBlockageNet (); - unsigned int _getRipupCost (); + uint32_t _getRipupCost (); Anabatic::GCell* _getGCellUnder ( DbU::Unit, DbU::Unit ); void _doRemovalEvents (); virtual size_t _revalidate (); @@ -155,7 +155,7 @@ namespace Katana { inline NegociateWindow* Session::getNegociateWindow () { return get("getNegociateWindow()")->_getNegociateWindow(); } - inline unsigned int Session::getRipupCost () + inline uint32_t Session::getRipupCost () { return get("getRipupCost()")->_getRipupCost(); } inline Anabatic::GCell* Session::getGCellUnder ( DbU::Unit x, DbU::Unit y ) diff --git a/katana/src/katana/Track.h b/katana/src/katana/Track.h index bf050381..1b7e2a2a 100644 --- a/katana/src/katana/Track.h +++ b/katana/src/katana/Track.h @@ -42,13 +42,13 @@ namespace Katana { class Track { public: - enum IndexState { BeginIsTrackMin = 0x00000001 - , BeginIsSegmentMin = 0x00000002 - , BeginIsSegmentMax = 0x00000004 - , EndIsTrackMax = 0x00000008 - , EndIsSegmentMin = 0x00000010 - , EndIsNextSegmentMin = 0x00000020 - , EndIsSegmentMax = 0x00000040 + enum IndexState { BeginIsTrackMin = (1 << 0) + , BeginIsSegmentMin = (1 << 1) + , BeginIsSegmentMax = (1 << 2) + , EndIsTrackMax = (1 << 3) + , EndIsSegmentMin = (1 << 4) + , EndIsNextSegmentMin = (1 << 5) + , EndIsSegmentMax = (1 << 6) , BeforeFirstElement = BeginIsTrackMin |EndIsSegmentMin , InsideElement = BeginIsSegmentMin|EndIsSegmentMax , OutsideElement = BeginIsSegmentMax|EndIsNextSegmentMin @@ -71,7 +71,7 @@ namespace Katana { KatanaEngine* getKatanaEngine () const; virtual Flags getDirection () const = 0; inline size_t getIndex () const; - unsigned int getDepth () const; + uint32_t getDepth () const; const Layer* getLayer () const; const Layer* getBlockageLayer () const; inline DbU::Unit getAxis () const; @@ -88,20 +88,20 @@ namespace Katana { TrackElement* getNextFixed ( size_t& index ) const; size_t find ( const TrackElement* ) const; DbU::Unit getSourcePosition ( vector::iterator ) const; - DbU::Unit getMinimalPosition ( size_t index, unsigned int state ) const; - DbU::Unit getMaximalPosition ( size_t index, unsigned int state ) const; + DbU::Unit getMinimalPosition ( size_t index, uint32_t state ) const; + DbU::Unit getMaximalPosition ( size_t index, uint32_t state ) const; Interval getFreeInterval ( DbU::Unit position, Net* net=NULL ) const; Interval getOccupiedInterval ( size_t& begin ) const; - Interval expandFreeInterval ( size_t& begin, size_t& end, unsigned int state, Net* ) const; - void getBeginIndex ( DbU::Unit position, size_t& begin, unsigned int& state ) const; + Interval expandFreeInterval ( size_t& begin, size_t& end, uint32_t state, Net* ) const; + void getBeginIndex ( DbU::Unit position, size_t& begin, uint32_t& state ) const; void getOverlapBounds ( Interval, size_t& begin, size_t& end ) const; - TrackCost getOverlapCost ( Interval, Net*, size_t begin, size_t end, unsigned int flags ) const; - TrackCost getOverlapCost ( Interval, Net*, unsigned int flags ) const; - TrackCost getOverlapCost ( TrackElement*, unsigned int flags ) const; - void getTerminalWeight ( Interval, Net*, size_t& count, unsigned int& weight ) const; + TrackCost getOverlapCost ( Interval, Net*, size_t begin, size_t end, uint32_t flags ) const; + TrackCost getOverlapCost ( Interval, Net*, uint32_t flags ) const; + TrackCost getOverlapCost ( TrackElement*, uint32_t flags ) const; + void getTerminalWeight ( Interval, Net*, size_t& count, uint32_t& weight ) const; DbU::Unit getSourcePosition ( size_t index ) const; - bool check ( unsigned int& overlaps, const char* message=NULL ) const; - unsigned int checkOverlap ( unsigned int& overlaps ) const; + bool check ( uint32_t& overlaps, const char* message=NULL ) const; + uint32_t checkOverlap ( uint32_t& overlaps ) const; inline void setLocalAssigned ( bool ); void invalidate (); void insert ( TrackElement* ); @@ -128,7 +128,7 @@ namespace Katana { protected: // Constructors & Destructors. - Track ( RoutingPlane*, unsigned int index ); + Track ( RoutingPlane*, uint32_t index ); virtual ~Track (); virtual void _postCreate (); virtual void _preDestroy (); @@ -137,8 +137,8 @@ namespace Katana { Track& operator= ( const Track& ); protected: // Protected functions. - inline unsigned int setMinimalFlags ( unsigned int& state, unsigned int flags ) const; - inline unsigned int setMaximalFlags ( unsigned int& state, unsigned int flags ) const; + inline uint32_t setMinimalFlags ( uint32_t& state, uint32_t flags ) const; + inline uint32_t setMaximalFlags ( uint32_t& state, uint32_t flags ) const; protected: // Sub-Classes. @@ -195,14 +195,14 @@ namespace Katana { inline size_t Track::getSize () const { return _segments.size(); } inline void Track::setLocalAssigned ( bool state ) { _localAssigned=state; } - inline unsigned int Track::setMinimalFlags ( unsigned int& state, unsigned int flags ) const + inline uint32_t Track::setMinimalFlags ( uint32_t& state, uint32_t flags ) const { state &= ~BeginMask; state |= (flags & BeginMask); return state; } - inline unsigned int Track::setMaximalFlags ( unsigned int& state, unsigned int flags ) const + inline uint32_t Track::setMaximalFlags ( uint32_t& state, uint32_t flags ) const { state &= ~EndMask; state |= (flags & EndMask); diff --git a/katana/src/katana/TrackCost.h b/katana/src/katana/TrackCost.h index ad489644..eba1e076 100644 --- a/katana/src/katana/TrackCost.h +++ b/katana/src/katana/TrackCost.h @@ -54,20 +54,20 @@ namespace Katana { }; class Compare { public: - inline Compare ( unsigned int flags=0 ); + inline Compare ( uint32_t flags=0 ); bool operator() ( const TrackCost& lhs, const TrackCost& rhs ); private: - unsigned int _flags; + uint32_t _flags; }; public: - TrackCost ( Track* track ); - TrackCost ( Track* track - , const Interval& interval - , size_t begin - , size_t end - , Net* net - , unsigned int flags + TrackCost ( Track* track ); + TrackCost ( Track* track + , const Interval& interval + , size_t begin + , size_t end + , Net* net + , uint32_t flags ); ~TrackCost (); inline bool isForGlobal () const; @@ -81,18 +81,18 @@ namespace Katana { inline bool isOverlapGlobal () const; inline bool isGlobalEnclosed () const; bool isFree () const; - inline unsigned int getFlags () const; + inline uint32_t getFlags () const; inline Track* getTrack () const; inline size_t getBegin () const; inline size_t getEnd () const; inline const Interval& getInterval () const; - inline unsigned int getTerminals () const; + inline uint32_t getTerminals () const; inline DbU::Unit getDelta () const; inline DbU::Unit getDeltaPerpand () const; inline DbU::Unit getLongestOverlap () const; inline long getAxisWeight () const; inline int getRipupCount () const; - inline unsigned int getDataState () const; + inline uint32_t getDataState () const; inline void setForGlobal (); inline void setBlockage (); inline void setFixed (); @@ -103,14 +103,14 @@ namespace Katana { inline void setHardOverlap (); inline void setOverlapGlobal (); inline void setGlobalEnclosed (); - inline void incTerminals ( unsigned int ); + inline void incTerminals ( uint32_t ); inline void incDelta ( DbU::Unit ); inline void incDeltaPerpand ( DbU::Unit ); inline void incDeltaShared ( DbU::Unit ); inline void setAxisWeight ( DbU::Unit ); inline void setLonguestOverlap ( DbU::Unit ); inline void mergeRipupCount ( int ); - inline void mergeDataState ( unsigned int ); + inline void mergeDataState ( uint32_t ); void merge ( const TrackCost& ); void consolidate (); Record* _getRecord () const; @@ -120,7 +120,7 @@ namespace Katana { // Attributes. protected: - unsigned int _flags; + uint32_t _flags; Track* _track; size_t _begin; size_t _end; @@ -135,14 +135,14 @@ namespace Katana { bool _rightOverlap; bool _overlapGlobal; bool _globalEnclosed; - unsigned int _terminals; + uint32_t _terminals; DbU::Unit _delta; DbU::Unit _deltaShared; DbU::Unit _deltaPerpand; DbU::Unit _axisWeight; DbU::Unit _distanceToFixed; DbU::Unit _longuestOverlap; - unsigned int _dataState; + uint32_t _dataState; int _ripupCount; }; @@ -159,17 +159,17 @@ namespace Katana { inline bool TrackCost::isHardOverlap () const { return _hardOverlap; } inline bool TrackCost::isOverlapGlobal () const { return _overlapGlobal; } inline bool TrackCost::isGlobalEnclosed () const { return _globalEnclosed; } - inline unsigned int TrackCost::getFlags () const { return _flags; } + inline uint32_t TrackCost::getFlags () const { return _flags; } inline Track* TrackCost::getTrack () const { return _track; } inline size_t TrackCost::getBegin () const { return _begin; } inline size_t TrackCost::getEnd () const { return _end; } inline const Interval& TrackCost::getInterval () const { return _interval; } - inline unsigned int TrackCost::getTerminals () const { return _terminals; } + inline uint32_t TrackCost::getTerminals () const { return _terminals; } inline DbU::Unit TrackCost::getLongestOverlap () const { return _longuestOverlap; } inline DbU::Unit TrackCost::getDelta () const { return _delta; } inline long TrackCost::getAxisWeight () const { return _axisWeight; } inline int TrackCost::getRipupCount () const { return _ripupCount; } - inline unsigned int TrackCost::getDataState () const { return _dataState; } + inline uint32_t TrackCost::getDataState () const { return _dataState; } inline void TrackCost::setForGlobal () { _forGlobal = true; } inline void TrackCost::setBlockage () { _blockage = true; } inline void TrackCost::setFixed () { _fixed = true; } @@ -180,17 +180,17 @@ namespace Katana { inline void TrackCost::setHardOverlap () { _hardOverlap = true; } inline void TrackCost::setOverlapGlobal () { _overlapGlobal = true; } inline void TrackCost::setGlobalEnclosed () { _globalEnclosed = true; } - inline void TrackCost::incTerminals ( unsigned int terminals ) { _terminals += terminals; } + inline void TrackCost::incTerminals ( uint32_t terminals ) { _terminals += terminals; } inline void TrackCost::incDelta ( DbU::Unit delta ) { _delta += delta; } inline void TrackCost::incDeltaPerpand ( DbU::Unit delta ) { _deltaPerpand += delta; } inline void TrackCost::incDeltaShared ( DbU::Unit delta ) { _deltaShared += delta; } inline void TrackCost::setAxisWeight ( DbU::Unit weight ) { _axisWeight = weight; } inline void TrackCost::setLonguestOverlap ( DbU::Unit overlap ) { _longuestOverlap = (overlap > _longuestOverlap) ? overlap : _longuestOverlap; } inline void TrackCost::mergeRipupCount ( int count ) { _ripupCount = (count>_ripupCount)?count:_ripupCount; } - inline void TrackCost::mergeDataState ( unsigned int state ) { _dataState = (state>_dataState)?state:_dataState; } + inline void TrackCost::mergeDataState ( uint32_t state ) { _dataState = (state>_dataState)?state:_dataState; } inline string TrackCost::_getTypeName () const { return "TrackCost"; } - inline TrackCost::Compare::Compare ( unsigned int flags ) : _flags(flags) { } + inline TrackCost::Compare::Compare ( uint32_t flags ) : _flags(flags) { } } // Katana namespace. diff --git a/katana/src/katana/TrackElement.h b/katana/src/katana/TrackElement.h index c8455bad..082ef524 100644 --- a/katana/src/katana/TrackElement.h +++ b/katana/src/katana/TrackElement.h @@ -98,7 +98,7 @@ namespace Katana { virtual bool isGlobal () const; virtual bool isBipoint () const; virtual bool isTerminal () const; - virtual bool isStrongTerminal ( unsigned int flags=0 ) const; + virtual bool isStrongTerminal ( Flags flags=Flags::NoFlags ) const; virtual bool isStrap () const; virtual bool isSlackened () const; virtual bool isDogleg () const; @@ -116,12 +116,12 @@ namespace Katana { inline bool hasTargetDogleg () const; inline bool canRipple () const; virtual bool canSlacken () const; - virtual bool canPivotUp ( float reserve, unsigned int flags ) const; - virtual bool canPivotDown ( float reserve, unsigned int flags ) const; - virtual bool canMoveUp ( float reserve, unsigned int flags=Flags::WithPerpands ) const; + virtual bool canPivotUp ( float reserve, Flags flags ) const; + virtual bool canPivotDown ( float reserve, Flags flags ) const; + virtual bool canMoveUp ( float reserve, Flags flags=Flags::WithPerpands ) const; virtual bool canDogleg (); virtual bool canDogleg ( Interval ); - virtual bool canDogleg ( Anabatic::GCell*, unsigned int flags=0 ); + virtual bool canDogleg ( Anabatic::GCell*, Flags flags=0 ); // Accessors inline Observer* getObserver (); virtual unsigned long getId () const; @@ -133,7 +133,7 @@ namespace Katana { inline Track* getTrack () const; inline size_t getIndex () const; virtual unsigned long getFreedomDegree () const; - virtual float getMaxUnderDensity ( unsigned int flags=0 ) const; + virtual float getMaxUnderDensity ( Flags flags=Flags::NoFlags ) const; inline Box getBoundingBox () const; virtual TrackElement* getNext () const; virtual TrackElement* getPrevious () const; @@ -145,41 +145,41 @@ namespace Katana { virtual Interval getFreeInterval () const; virtual Interval getSourceConstraints () const; virtual Interval getTargetConstraints () const; - virtual DataNegociate* getDataNegociate ( unsigned int flags=Flags::DataSelf ) const; + virtual DataNegociate* getDataNegociate ( Flags flags=Flags::DataSelf ) const; virtual TrackElement* getCanonical ( Interval& ); virtual size_t getGCells ( vector& ) const; virtual TrackElement* getParent () const; - virtual unsigned int getDoglegLevel () const; + virtual uint32_t getDoglegLevel () const; virtual TrackElement* getSourceDogleg (); virtual TrackElement* getTargetDogleg (); virtual TrackElement* getSymmetric (); virtual TrackElements getPerpandiculars (); // Mutators. - inline void setFlags ( unsigned int ); - inline void unsetFlags ( unsigned int ); + inline void setFlags ( uint32_t ); + inline void unsetFlags ( uint32_t ); inline void setRouted (); virtual void setTrack ( Track* ); inline void setIndex ( size_t ); virtual void setSymmetric ( TrackElement* ); virtual void updateFreedomDegree (); - virtual void setDoglegLevel ( unsigned int ); + virtual void setDoglegLevel ( uint32_t ); virtual void swapTrack ( TrackElement* ); - virtual void reschedule ( unsigned int level ); + virtual void reschedule ( uint32_t level ); virtual void detach (); virtual void invalidate (); virtual void revalidate (); virtual void updatePPitch (); virtual void incOverlapCost ( Net*, TrackCost& ) const; - virtual void setAxis ( DbU::Unit, unsigned int flags=Anabatic::SegAxisSet ); + virtual void setAxis ( DbU::Unit, uint32_t flags=Anabatic::SegAxisSet ); virtual TrackElement* makeDogleg (); inline bool makeDogleg ( Anabatic::GCell* ); virtual TrackElement* makeDogleg ( Anabatic::GCell*, TrackElement*& perpandicular, TrackElement*& parallel ); - virtual TrackElement* makeDogleg ( Interval, unsigned int& flags ); + virtual TrackElement* makeDogleg ( Interval, Flags& flags ); virtual void _postDoglegs ( TrackElement*& perpandicular, TrackElement*& parallel ); - virtual bool moveAside ( unsigned int flags ); - virtual bool slacken ( unsigned int flags=Flags::NoFlags ); - virtual bool moveUp ( unsigned int flags ); - virtual bool moveDown ( unsigned int flags ); + virtual bool moveAside ( Flags flags ); + virtual bool slacken ( Flags flags=Flags::NoFlags ); + virtual bool moveUp ( Flags flags ); + virtual bool moveDown ( Flags flags ); #if THIS_IS_DISABLED virtual void desalignate (); #endif @@ -192,7 +192,7 @@ namespace Katana { // Static Attributes. static SegmentOverlapCostCB* _overlapCostCallback; // Attributes. - unsigned int _flags; + uint32_t _flags; Track* _track; size_t _index; DbU::Unit _sourceU; @@ -214,8 +214,8 @@ namespace Katana { // Inline functions. inline Observer* TrackElement::getObserver () { return &_observer; } - inline void TrackElement::setFlags ( unsigned int flags ) { _flags|= flags; } - inline void TrackElement::unsetFlags ( unsigned int flags ) { _flags&=~flags; } + inline void TrackElement::setFlags ( uint32_t flags ) { _flags|= flags; } + inline void TrackElement::unsetFlags ( uint32_t flags ) { _flags&=~flags; } inline bool TrackElement::isCreated () const { return _flags & TElemCreated; } inline bool TrackElement::isInvalidated () const { return _flags & TElemInvalidated; } inline bool TrackElement::isBlockage () const { return _flags & TElemBlockage; } diff --git a/katana/src/katana/TrackElements.h b/katana/src/katana/TrackElements.h index 33a70cfd..762372cf 100644 --- a/katana/src/katana/TrackElements.h +++ b/katana/src/katana/TrackElements.h @@ -11,7 +11,7 @@ // | Author : Jean-Paul CHAPUT | // | E-mail : Jean-Paul.Chaput@asim.lip6.fr | // | =============================================================== | -// | C++ Header : "./katana/TrackElements.h" | +// | C++ Header : "./katana/TrackElements.h" | // +-----------------------------------------------------------------+ @@ -66,7 +66,7 @@ namespace Katana { // Sub-Class: Locator. class Locator : public TrackElementHL { public: - Locator ( TrackElement* segment ); + Locator ( TrackElement* segment, Flags flags ); inline Locator ( const Locator& ); virtual TrackElement* getElement () const; virtual TrackElementHL* getClone () const; @@ -80,7 +80,7 @@ namespace Katana { public: // TrackElements_Perpandiculars Methods. - inline TrackElements_Perpandiculars ( TrackElement* segment ); + inline TrackElements_Perpandiculars ( TrackElement* segment, Flags flags=Flags::NoFlags ); inline TrackElements_Perpandiculars ( const TrackElements_Perpandiculars& ); virtual TrackElementHC* getClone () const; virtual TrackElementHL* getLocator () const; @@ -88,6 +88,7 @@ namespace Katana { protected: // TrackElements_Perpandiculars Attributes. + Flags _flags; TrackElement* _segment; }; @@ -99,14 +100,16 @@ namespace Katana { { } - inline TrackElements_Perpandiculars::TrackElements_Perpandiculars ( TrackElement* segment ) + inline TrackElements_Perpandiculars::TrackElements_Perpandiculars ( TrackElement* segment, Flags flags ) : TrackElementHC() + , _flags (flags) , _segment (segment) { } inline TrackElements_Perpandiculars::TrackElements_Perpandiculars ( const TrackElements_Perpandiculars& tracksegments ) : TrackElementHC() + , _flags (tracksegments._flags) , _segment (tracksegments._segment) { } diff --git a/katana/src/katana/TrackMarker.h b/katana/src/katana/TrackMarker.h index db8c6ac6..ae7df36e 100644 --- a/katana/src/katana/TrackMarker.h +++ b/katana/src/katana/TrackMarker.h @@ -50,7 +50,7 @@ namespace Katana { inline DbU::Unit getSourceU () const; inline DbU::Unit getTargetU () const; inline Track* getTrack () const; - inline unsigned int getWeight ( const Track* ) const; + inline uint32_t getWeight ( const Track* ) const; inline void setTrack ( Track* ); Record* _getRecord () const; std::string _getString () const; @@ -67,12 +67,12 @@ namespace Katana { protected: // Attributes. - RoutingPad* _routingPad; - DbU::Unit _sourcePosition; - DbU::Unit _targetPosition; - Track* _track; - unsigned int _weight; - unsigned int _refcount; + RoutingPad* _routingPad; + DbU::Unit _sourcePosition; + DbU::Unit _targetPosition; + Track* _track; + uint32_t _weight; + uint32_t _refcount; protected: // Constructors & destructors. @@ -88,7 +88,7 @@ namespace Katana { inline DbU::Unit TrackMarker::getSourceU () const { return _sourcePosition; } inline DbU::Unit TrackMarker::getTargetU () const { return _targetPosition; } inline Track* TrackMarker::getTrack () const { return _track; } - inline unsigned int TrackMarker::getWeight ( const Track* track ) const { return _weight; } + inline uint32_t TrackMarker::getWeight ( const Track* track ) const { return _weight; } inline void TrackMarker::setTrack ( Track* track ) { _track = track; } inline bool TrackMarker::Compare::operator() ( const TrackMarker* lhs, const TrackMarker* rhs ) const diff --git a/katana/src/katana/TrackSegment.h b/katana/src/katana/TrackSegment.h index 89ea3e53..ea6dbce7 100644 --- a/katana/src/katana/TrackSegment.h +++ b/katana/src/katana/TrackSegment.h @@ -64,7 +64,7 @@ namespace Katana { virtual bool isGlobal () const; virtual bool isBipoint () const; virtual bool isTerminal () const; - virtual bool isStrongTerminal ( unsigned int flags=0 ) const; + virtual bool isStrongTerminal ( Flags flags=Flags::NoFlags ) const; virtual bool isStrap () const; virtual bool isSlackened () const; virtual bool isDogleg () const; @@ -75,12 +75,12 @@ namespace Katana { virtual bool hasSymmetric () const; virtual bool canDogleg (); virtual bool canDogleg ( Interval ); - virtual bool canDogleg ( Anabatic::GCell*, unsigned int flags=0 ); - virtual bool canPivotUp ( float reserve, unsigned int flags ) const; - virtual bool canPivotDown ( float reserve, unsigned int flags ) const; - virtual bool canMoveUp ( float reserve, unsigned int flags ) const; + virtual bool canDogleg ( Anabatic::GCell*, Flags flags=0 ); + virtual bool canPivotUp ( float reserve, Flags flags ) const; + virtual bool canPivotDown ( float reserve, Flags flags ) const; + virtual bool canMoveUp ( float reserve, Flags flags ) const; virtual bool canSlacken () const; - virtual float getMaxUnderDensity ( unsigned int flags ) const; + virtual float getMaxUnderDensity ( Flags flags ) const; virtual unsigned long getId () const; virtual Flags getDirection () const; virtual Net* getNet () const; @@ -88,7 +88,7 @@ namespace Katana { virtual DbU::Unit getPitch () const; virtual DbU::Unit getPPitch () const; virtual unsigned long getFreedomDegree () const; - virtual unsigned int getDoglegLevel () const; + virtual uint32_t getDoglegLevel () const; virtual TrackElement* getNext () const; virtual TrackElement* getPrevious () const; virtual TrackElement* getParent () const; @@ -96,7 +96,7 @@ namespace Katana { virtual Interval getFreeInterval () const; virtual Interval getSourceConstraints () const; virtual Interval getTargetConstraints () const; - virtual DataNegociate* getDataNegociate ( unsigned int flags=Flags::DataSelf ) const; + virtual DataNegociate* getDataNegociate ( Flags flags=Flags::DataSelf ) const; virtual TrackElement* getCanonical ( Interval& ); virtual size_t getGCells ( vector& ) const; virtual TrackElement* getSourceDogleg (); @@ -108,22 +108,22 @@ namespace Katana { virtual void setTrack ( Track* ); virtual void setSymmetric ( TrackElement* ); virtual void updateFreedomDegree (); - virtual void setDoglegLevel ( unsigned int ); + virtual void setDoglegLevel ( uint32_t ); virtual void swapTrack ( TrackElement* ); - virtual void reschedule ( unsigned int level ); + virtual void reschedule ( uint32_t level ); virtual void detach (); virtual void invalidate (); virtual void revalidate (); virtual void updatePPitch (); - virtual void setAxis ( DbU::Unit, unsigned int flags ); + virtual void setAxis ( DbU::Unit, uint32_t flags ); virtual TrackElement* makeDogleg (); virtual TrackElement* makeDogleg ( Anabatic::GCell*, TrackElement*& perpandicular, TrackElement*& parallel ); - virtual TrackElement* makeDogleg ( Interval, unsigned int& flags ); + virtual TrackElement* makeDogleg ( Interval, Flags& flags ); virtual void _postDoglegs ( TrackElement*& perpandicular, TrackElement*& parallel ); - virtual bool moveAside ( unsigned int flags ); - virtual bool slacken ( unsigned int flags=Flags::NoFlags ); - virtual bool moveUp ( unsigned int flags ); - virtual bool moveDown ( unsigned int flags ); + virtual bool moveAside ( Flags flags ); + virtual bool slacken ( Flags flags=Flags::NoFlags ); + virtual bool moveUp ( Flags flags ); + virtual bool moveDown ( Flags flags ); #if THIS_IS_DISABLED virtual void desalignate (); #endif diff --git a/katana/src/katana/TrackSegmentCost.h b/katana/src/katana/TrackSegmentCost.h index 5c5b44ff..ee015db8 100644 --- a/katana/src/katana/TrackSegmentCost.h +++ b/katana/src/katana/TrackSegmentCost.h @@ -48,22 +48,22 @@ namespace Katana { class TrackSegmentCost { public: - TrackSegmentCost ( TrackElement* ); - ~TrackSegmentCost (); - inline unsigned int getTerminals () const; - inline unsigned int getRipupCount () const; - inline DbU::Unit getLeftMinExtend () const; - inline DbU::Unit getRightMinExtend() const; - inline Net* getNet () const; - DbU::Unit getWiringDelta ( DbU::Unit axis ) const; - inline void setRipupCount ( unsigned int ); - inline void incRipupCount (); - inline void decRipupCount (); - inline void resetRipupCount (); - void update ( TrackElement* ); - Record* _getRecord () const; - string _getString () const; - inline string _getTypeName () const; + TrackSegmentCost ( TrackElement* ); + ~TrackSegmentCost (); + inline uint32_t getTerminals () const; + inline uint32_t getRipupCount () const; + inline DbU::Unit getLeftMinExtend () const; + inline DbU::Unit getRightMinExtend() const; + inline Net* getNet () const; + DbU::Unit getWiringDelta ( DbU::Unit axis ) const; + inline void setRipupCount ( uint32_t ); + inline void incRipupCount (); + inline void decRipupCount (); + inline void resetRipupCount (); + void update ( TrackElement* ); + Record* _getRecord () const; + string _getString () const; + inline string _getTypeName () const; protected: // Attributes. @@ -77,16 +77,16 @@ namespace Katana { }; // Inline Functions. - inline unsigned int TrackSegmentCost::getTerminals () const { return _terminals; } - inline unsigned int TrackSegmentCost::getRipupCount () const { return _ripupCount; } - inline DbU::Unit TrackSegmentCost::getLeftMinExtend () const { return _leftMinExtend; } - inline DbU::Unit TrackSegmentCost::getRightMinExtend () const { return _rightMinExtend; } - inline Net* TrackSegmentCost::getNet () const { return _net; } - inline void TrackSegmentCost::setRipupCount ( unsigned int count ) { _ripupCount = count; } - inline void TrackSegmentCost::incRipupCount () { _ripupCount++; } - inline void TrackSegmentCost::decRipupCount () { if (_ripupCount) _ripupCount--; } - inline void TrackSegmentCost::resetRipupCount () { _ripupCount = 0; } - inline string TrackSegmentCost::_getTypeName () const { return "TrackSegmentCost"; } + inline uint32_t TrackSegmentCost::getTerminals () const { return _terminals; } + inline uint32_t TrackSegmentCost::getRipupCount () const { return _ripupCount; } + inline DbU::Unit TrackSegmentCost::getLeftMinExtend () const { return _leftMinExtend; } + inline DbU::Unit TrackSegmentCost::getRightMinExtend () const { return _rightMinExtend; } + inline Net* TrackSegmentCost::getNet () const { return _net; } + inline void TrackSegmentCost::setRipupCount ( uint32_t count ) { _ripupCount = count; } + inline void TrackSegmentCost::incRipupCount () { _ripupCount++; } + inline void TrackSegmentCost::decRipupCount () { if (_ripupCount) _ripupCount--; } + inline void TrackSegmentCost::resetRipupCount () { _ripupCount = 0; } + inline string TrackSegmentCost::_getTypeName () const { return "TrackSegmentCost"; } } // End of Katana namespace. diff --git a/katana/src/katana/VerticalTrack.h b/katana/src/katana/VerticalTrack.h index 32fc22aa..581cc2fd 100644 --- a/katana/src/katana/VerticalTrack.h +++ b/katana/src/katana/VerticalTrack.h @@ -30,7 +30,7 @@ namespace Katana { class VerticalTrack : public Track { public: - static VerticalTrack* create ( RoutingPlane*, unsigned int index ); + static VerticalTrack* create ( RoutingPlane*, uint32_t index ); virtual bool isHorizontal () const; virtual bool isVertical () const; virtual Flags getDirection () const; @@ -40,7 +40,7 @@ namespace Katana { protected: // Constructors & Destructors. - VerticalTrack ( RoutingPlane*, unsigned int index ); + VerticalTrack ( RoutingPlane*, uint32_t index ); virtual ~VerticalTrack (); virtual void _postCreate (); virtual void _preDestroy (); From e78c3f21ef77f22a4a4244d8a7f3e181a7377dad Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Sat, 20 May 2017 12:33:12 +0200 Subject: [PATCH 13/30] Added analog type on segment NetRoutingProperty. * New: In Anabatic_AutoSegments collection, added a Flag to the constructors to allow different behavior between digital and analog modes. For "Aligneds" and "Perpandiculars" collections, now manage a new Flag WithDoglegs to follow aligned globals through local doglegs (for analog nets). Adjust the log level of collections to 144 (formerly 145). * New: In Anabatic::AutoSegment, new flag SegAnalog for segments that are part of an analog net. Note that with this flag, we reach the 32 bits limit... * Change: In Anabatic::Constants, Flags are now declared as BaseFlags objects and *not* uint64_t. This avoids overload resolution problems with arithmetical overload of the operators. The BaseFlags/Flags types are now completly "isolated" from the uint64_t, it has the advantage of showing where unwanted previous implicit conversions where occuring. * Change: In Katana::Constants, Flags values are now of BaseFlags type instead of uint64_t. * Change: In Anabatic::Dijkstra, lots of log cleanup. * Change: In Anabatic::GCell::getSide(), make the "shrink" parameter visible to allow to substract the topmost and rightmost track for axis span computation in AutoSegment::computeOptimal(). Used for analog mode. * Change: In NetRoutingState, added a flag for analog mode. Use uint32_t for the flags type. * New: In Isobar, export the NetRoutingState and NetRoutingExtension objects. --- anabatic/src/AutoHorizontal.cpp | 7 +- anabatic/src/AutoSegment.cpp | 95 +++++-- anabatic/src/AutoSegments.cpp | 102 ++++++-- anabatic/src/AutoVertical.cpp | 7 +- anabatic/src/Constants.cpp | 189 +++++++++----- anabatic/src/Dijkstra.cpp | 174 +++++++------ anabatic/src/GCell.cpp | 8 +- anabatic/src/LoadGlobalRouting.cpp | 5 +- anabatic/src/NetOptimals.cpp | 2 +- anabatic/src/anabatic/AutoContact.h | 22 +- anabatic/src/anabatic/AutoSegment.h | 17 +- anabatic/src/anabatic/AutoSegments.h | 4 +- anabatic/src/anabatic/Constants.h | 117 +++++---- anabatic/src/anabatic/GCell.h | 22 +- crlcore/src/cyclop/Cyclop.cpp | 2 +- hurricane/src/hurricane/Flags.cpp | 8 + hurricane/src/hurricane/Net.cpp | 5 + .../src/hurricane/NetRoutingProperty.cpp | 21 +- hurricane/src/hurricane/hurricane/Flags.h | 16 +- hurricane/src/hurricane/hurricane/Net.h | 1 + .../hurricane/hurricane/NetRoutingProperty.h | 47 ++-- hurricane/src/isobar/CMakeLists.txt | 4 + hurricane/src/isobar/PyHurricane.cpp | 11 + hurricane/src/isobar/PyNet.cpp | 89 +------ hurricane/src/isobar/PyNetRoutingProperty.cpp | 240 ++++++++++++++++++ hurricane/src/isobar/PyNetRoutingState.cpp | 159 ++++++++++++ .../src/isobar/hurricane/isobar/PyHurricane.h | 31 ++- .../hurricane/isobar/PyNetRoutingProperty.h | 59 +++++ .../hurricane/isobar/PyNetRoutingState.h | 59 +++++ katana/src/Constants.cpp | 24 +- katana/src/KatanaEngine.cpp | 2 +- katana/src/Manipulator.cpp | 4 +- katana/src/PyKatanaFlags.cpp | 8 +- katana/src/RoutingEvent.cpp | 5 +- katana/src/katana/Constants.h | 24 +- 35 files changed, 1155 insertions(+), 435 deletions(-) create mode 100644 hurricane/src/isobar/PyNetRoutingProperty.cpp create mode 100644 hurricane/src/isobar/PyNetRoutingState.cpp create mode 100644 hurricane/src/isobar/hurricane/isobar/PyNetRoutingProperty.h create mode 100644 hurricane/src/isobar/hurricane/isobar/PyNetRoutingState.h diff --git a/anabatic/src/AutoHorizontal.cpp b/anabatic/src/AutoHorizontal.cpp index 889c4cc4..820b3167 100644 --- a/anabatic/src/AutoHorizontal.cpp +++ b/anabatic/src/AutoHorizontal.cpp @@ -185,7 +185,7 @@ namespace Anabatic { GCell* gcell = getAutoSource()->getGCell(); GCell* end = getAutoTarget()->getGCell(); - cdebug_log(149,0) << "yprobe: " << DbU::getValueString(yprobe) << endl; + cdebug_log(144,0) << "yprobe: " << DbU::getValueString(yprobe) << endl; if (gcell->getXMin() > end->getXMin()) std::swap( gcell, end ); if (yprobe == gcell->getConstraintYMax()) yprobe--; @@ -808,6 +808,11 @@ namespace Anabatic { segment2->setFlags( SegWeakTerminal1 ); } + if (isAnalog()) { + segment1->setFlags( SegAnalog ); + segment2->setFlags( SegAnalog ); + } + cdebug_log(149,0) << "Session::dogleg[x+1] perpand: " << segment1 << endl; cdebug_log(149,0) << "Session::dogleg[x+2] new paral: " << segment2 << endl; cdebug_log(149,0) << "Session::dogleg[x+0] original: " << this << endl; diff --git a/anabatic/src/AutoSegment.cpp b/anabatic/src/AutoSegment.cpp index 7f8f116d..e8afa042 100644 --- a/anabatic/src/AutoSegment.cpp +++ b/anabatic/src/AutoSegment.cpp @@ -303,9 +303,13 @@ namespace Anabatic { // Class : "Anabatic::AutoSegment". - size_t AutoSegment::_allocateds = 0; - size_t AutoSegment::_globalsCount = 0; - unsigned long AutoSegment::_maxId = 0; + size_t AutoSegment::_allocateds = 0; + size_t AutoSegment::_globalsCount = 0; + bool AutoSegment::_analogMode = false; + + + void AutoSegment::setAnalogMode ( bool state ) { _analogMode = state; } + bool AutoSegment::getAnalogMode () { return _analogMode; } AutoSegment::AutoSegment ( Segment* segment ) @@ -334,6 +338,7 @@ namespace Anabatic { if (source->isTerminal()) setFlags( SegSourceTerminal ); if (target->isTerminal()) setFlags( SegTargetTerminal ); + if (_analogMode) setFlags( SegAnalog ); source->invalidate( Flags::Topology ); } @@ -630,20 +635,20 @@ namespace Anabatic { AutoSegments AutoSegment::getAligneds ( Flags flags ) { - cdebug_log(145,0) << "AutoSegment::getAligneds() - flags:" << flags << endl; + cdebug_log(145,0) << "AutoSegment::getAligneds() - flags:" << flags.asString(FlagsFunction) << endl; return AutoSegments_Aligneds( this, flags ); } AutoSegments AutoSegment::getConnecteds ( Flags flags ) { - cdebug_log(145,0) << "AutoSegment::getConnecteds() - flags:" << flags << endl; + cdebug_log(145,0) << "AutoSegment::getConnecteds() - flags:" << flags.asString(FlagsFunction) << endl; return AutoSegments_Connecteds( this, flags ); } - AutoSegments AutoSegment::getPerpandiculars () - { return AutoSegments_Perpandiculars( this ); } + AutoSegments AutoSegment::getPerpandiculars ( Flags flags ) + { return AutoSegments_Perpandiculars( this, flags ); } bool AutoSegment::checkDepthSpin () const @@ -916,21 +921,50 @@ namespace Anabatic { { cdebug_log(145,1) << "computeOptimal() - " << this << endl; - DbU::Unit optimalMin; - DbU::Unit optimalMax; - DbU::Unit constraintMin; - DbU::Unit constraintMax; + DbU::Unit optimalMin; + DbU::Unit optimalMax; + DbU::Unit constraintMin; + DbU::Unit constraintMax; + vector aligneds; getConstraints( constraintMin, constraintMax ); if (isUserDefined()) { optimalMin = optimalMax = getAxis(); + aligneds.push_back( this ); } else { DbU::Unit minGCell = getOrigin(); DbU::Unit maxGCell = getExtremity(); DbU::Unit terminalMin; DbU::Unit terminalMax; AttractorsMap attractors; + + Flags flags = (isAnalog() ? Flags::WithDoglegs : Flags::NoFlags); + Flags f2 = flags | Flags::WithSelf; + cdebug_log(145,0) << "Test | :" << flags.asString(FlagsFunction) << endl; + + getAligneds( Flags::WithSelf|flags ).fill( aligneds ); + + if (not getGCell()->isMatrix()) { + Flags direction = (isHorizontal()) ? Flags::Vertical : Flags::Horizontal; + Interval gcellSide ( false ); + vector gcells; + DbU::Unit pitch = getPitch(); + + cdebug_log(145,0) << "Using pitch for L/T shrink:" << DbU::getValueString(pitch) << endl; + for ( AutoSegment* aligned : aligneds ) { + aligned->getGCells( gcells ); + for ( GCell* gcell : gcells ) { + gcellSide.intersection( gcell->getSide(direction,pitch) ); + cdebug_log(145,0) << "| gcellSide:" << gcellSide << " (from " << gcell << ")" << endl; + } + } + minGCell = gcellSide.getVMin(); + maxGCell = gcellSide.getVMax(); + } + + cdebug_log(145,0) << "GCell interval [" << DbU::getValueString(minGCell) + << ":" << DbU::getValueString(maxGCell) << "]" << endl; AutoContact* anchor = getAutoSource(); if (anchor->isTerminal()) { @@ -964,9 +998,11 @@ namespace Anabatic { attractors.addAttractor( terminalMax ); } - forEach( AutoSegment*, autoSegment, getPerpandiculars() ) { - cdebug_log(145,1) << "| Perpandicular " << *autoSegment << endl; + for ( AutoSegment* autoSegment : getPerpandiculars(flags) ) { + cdebug_log(145,1) << "| Perpandicular " << autoSegment << endl; if (autoSegment->isGlobal()) { + cdebug_log(145,0) << "Used as global." << endl; + // Sloppy implentation. DbU::Unit perpandMin = autoSegment->getSourceU(); DbU::Unit perpandMax = autoSegment->getTargetU(); @@ -980,7 +1016,7 @@ namespace Anabatic { DbU::Unit terminalMin; DbU::Unit terminalMax; - if (getTerminalInterval( *autoSegment + if (getTerminalInterval( autoSegment , NULL , isHorizontal() , terminalMin @@ -1022,19 +1058,26 @@ namespace Anabatic { setInBound( constraintMin, constraintMax, optimalMin ); setInBound( constraintMin, constraintMax, optimalMax ); - cdebug_log(145,0) << "Applying constraint on: " << this << endl; - setOptimalMin( optimalMin ); - setOptimalMax( optimalMax ); - processeds.insert( this ); - if (not isNotAligned()) { - for ( AutoSegment* autoSegment : getAligneds() ) { - cdebug_log(145,0) << "Applying constraint on: " << autoSegment << endl; - autoSegment->setOptimalMin( optimalMin ); - autoSegment->setOptimalMax( optimalMax ); - processeds.insert( autoSegment ); - } + for ( AutoSegment* aligned : aligneds ) { + cdebug_log(145,0) << "Applying constraint on: " << aligned << endl; + aligned->setOptimalMin( optimalMin ); + aligned->setOptimalMax( optimalMax ); + processeds.insert( aligned ); } + // cdebug_log(145,0) << "Applying constraint on: " << this << endl; + // setOptimalMin( optimalMin ); + // setOptimalMax( optimalMax ); + // processeds.insert( this ); + // if (not isNotAligned()) { + // for ( AutoSegment* autoSegment : getAligneds() ) { + // cdebug_log(145,0) << "Applying constraint on: " << autoSegment << endl; + // autoSegment->setOptimalMin( optimalMin ); + // autoSegment->setOptimalMax( optimalMax ); + // processeds.insert( autoSegment ); + // } + // } + cdebug_tabw(145,-1); } @@ -2295,7 +2338,7 @@ namespace Anabatic { continue; } - if (autoSegment->isHorizontal() xor (flags & Flags::Horizontal)) continue; + if (autoSegment->isHorizontal() xor (bool)(flags & Flags::Horizontal)) continue; cdebug_log(145,0) << "| " << autoSegment << endl; diff --git a/anabatic/src/AutoSegments.cpp b/anabatic/src/AutoSegments.cpp index 5559ba57..0bb8ad8c 100644 --- a/anabatic/src/AutoSegments.cpp +++ b/anabatic/src/AutoSegments.cpp @@ -20,6 +20,36 @@ #include "anabatic/AutoSegment.h" +namespace { + + using namespace Anabatic; + + + AutoContact* isLocalDogleg ( AutoSegment* current, AutoContact* from, AutoSegment* master ) + { + if (not current->isLocal() or not from->isTurn()) return NULL; + + AutoContact* to = current->getOppositeAnchor( from ); + if (not to->isTurn()) return NULL; + + AutoSegment* targetGlobal = to->getPerpandicular( current ); + if (not targetGlobal->isGlobal() or (master->getLayer() != targetGlobal->getLayer())) return NULL; + + cdebug_log(144,0) << "Global aligned though dogleg:" << targetGlobal << endl; + + Interval masterConstraints; + Interval targetConstraints; + master ->getConstraints( masterConstraints ); + targetGlobal->getConstraints( targetConstraints ); + if (not targetConstraints.intersect(masterConstraints)) return NULL; + + return to; + } + + +} // Anonymous namespace. + + namespace Anabatic { using namespace std; @@ -36,7 +66,7 @@ namespace Anabatic { void AutoSegmentStack::push ( AutoContact* contact, AutoSegment* segment ) { - cdebug_log(145,0) << "Stacking " << contact << " + " << segment << endl; + cdebug_log(144,0) << "Stacking " << contact << " + " << segment << endl; push_back( make_pair(contact,segment) ); } @@ -299,9 +329,13 @@ namespace Anabatic { , _stack () { if (not _master) return; - _flags |= (_master->isHorizontal()) ? Flags::Horizontal : Flags::Vertical; - cdebug_log(145,0) << "AutoSegments_Aligneds::Locator::Locator() - _flags:" << _flags << endl; + cdebug_log(145,0) << "Flags:" << _flags.asString(FlagsFunction) << endl; + + _flags |= (_master->isHorizontal()) ? Flags::Horizontal : Flags::Vertical; + if (_flags & Flags::WithDoglegs) _flags |= Flags::WithPerpands; + + cdebug_log(144,0) << "AutoSegments_Aligneds::Locator::Locator() _flags:" << _flags.asString(FlagsFunction) << endl; AutoContact* contact = segment->getAutoSource(); if (contact) _stack.push( contact, segment ); @@ -330,29 +364,45 @@ namespace Anabatic { AutoSegment* sourceSegment = _stack.getAutoSegment (); _stack.pop (); + cdebug_log(144,1) << "Iterate over: " << sourceContact << endl; LocatorHelper helper (sourceContact, _flags); for ( ; helper.isValid() ; helper.progress() ) { AutoSegment* currentSegment = helper.getSegment(); - cdebug_log(145,0) << "Looking at: " << currentSegment << endl; + cdebug_log(144,0) << "| " << currentSegment << endl; if (currentSegment == sourceSegment) continue; - if ( (not (_flags & Flags::NoCheckLayer)) - and AutoSegment::areAlignedsAndDiffLayer(currentSegment,_master)) { - cerr << Error("Aligned segments not in same layer (aligneds locator)\n" - " %s\n" - " %s." - ,getString(_master).c_str() - ,getString(currentSegment).c_str()) << endl; - continue; - } + if (AutoSegment::areAligneds(currentSegment,_master)) { + if ( (not (_flags & Flags::NoCheckLayer)) + and AutoSegment::areAlignedsAndDiffLayer(currentSegment,_master)) { + cerr << Error( "Aligned segments not in same layer (aligneds locator)\n" + " %s\n" + " %s." + ,getString(_master).c_str() + ,getString(currentSegment).c_str() ) << endl; + continue; + } - AutoContact* targetContact = currentSegment->getOppositeAnchor( sourceContact ); - if (targetContact) _stack.push( targetContact, currentSegment ); + AutoContact* targetContact = currentSegment->getOppositeAnchor( sourceContact ); + if (targetContact) _stack.push( targetContact, currentSegment ); + } else { + if (_flags & Flags::WithDoglegs) { + AutoContact* targetContact = isLocalDogleg( currentSegment, sourceContact, _master ); + + if (targetContact) { + cdebug_log(144,0) << "Stacking dogleg global. " << endl; + _stack.push( targetContact, currentSegment ); + continue; + } + } + } } + cdebug_tabw(144,-1); + if (_stack.getAutoSegment() == _master) continue; + if (not AutoSegment::areAligneds(_stack.getAutoSegment(),_master)) continue; break; } } @@ -397,8 +447,8 @@ namespace Anabatic { , _stack () , _perpandiculars() { - cdebug_log(145,0) << "AutoSegments_Perpandiculars::Locator::Locator()" << endl; - cdebug_log(145,0) << " " << _master << endl; + cdebug_log(144,0) << "AutoSegments_Perpandiculars::Locator::Locator(): _flags:" << _flags.asString(FlagsFunction) << endl; + cdebug_log(144,0) << " " << _master << endl; if (not _master) return; if (_master->isHorizontal()) _flags |= Flags::Horizontal; @@ -423,7 +473,7 @@ namespace Anabatic { void AutoSegments_Perpandiculars::Locator::progress () { - cdebug_log(145,1) << "AutoSegments_Perpandiculars::Locator::progress()" << endl; + cdebug_log(144,1) << "AutoSegments_Perpandiculars::Locator::progress()" << endl; if (not _perpandiculars.empty()) _perpandiculars.pop_back(); if (not _perpandiculars.empty()) return; @@ -433,14 +483,14 @@ namespace Anabatic { AutoSegment* sourceSegment = _stack.getAutoSegment(); _stack.pop(); - cdebug_log(145,0) << "Iterate over: " << sourceContact << endl; + cdebug_log(144,0) << "Iterate over: " << sourceContact << endl; LocatorHelper helper (sourceContact, _flags); for ( ; helper.isValid() ; helper.progress() ) { AutoSegment* currentSegment = helper.getSegment(); if (currentSegment == sourceSegment) continue; - cdebug_log(145,0) << "| " << currentSegment << endl; + cdebug_log(144,0) << "| " << currentSegment << endl; if (AutoSegment::areAligneds(currentSegment,_master)) { AutoContact* targetContact = currentSegment->getOppositeAnchor( sourceContact ); @@ -449,7 +499,7 @@ namespace Anabatic { if (_master->getLayer() != currentSegment->getLayer()) { continue; } - cdebug_log(145,0) << "Stacking target. " << endl; + cdebug_log(144,0) << "Stacking target. " << endl; _stack.push( targetContact, currentSegment ); // if ( (_master->isHorizontal() and sourceContact->isHTee()) @@ -463,11 +513,11 @@ namespace Anabatic { // continue; // } - // cdebug_log(145,0) << "Stacking target. " << endl; + // cdebug_log(144,0) << "Stacking target. " << endl; // _stack.push( targetContact, currentSegment ); // } } else { - cdebug_log(145,0) << "No opposite anchor to: " << sourceContact << endl; + cdebug_log(144,0) << "No opposite anchor to: " << sourceContact << endl; } } else { if ( (_flags & Flags::WithDoglegs) and currentSegment->isLocal() and sourceContact->isTurn() ) { @@ -475,13 +525,13 @@ namespace Anabatic { if (targetContact->isTurn()) { AutoSegment* targetGlobal = targetContact->getPerpandicular( currentSegment ); if (targetGlobal->isGlobal() and (_master->getLayer() == targetGlobal->getLayer())) { - cdebug_log(145,0) << "Global aligned though dogleg:" << targetGlobal << endl; + cdebug_log(144,0) << "Global aligned though dogleg:" << targetGlobal << endl; Interval masterConstraints; Interval targetConstraints; _master ->getConstraints( masterConstraints ); targetGlobal->getConstraints( targetConstraints ); if (targetConstraints.intersect(masterConstraints)) { - cdebug_log(145,0) << "Stacking dogleg global. " << endl; + cdebug_log(144,0) << "Stacking dogleg global. " << endl; _stack.push( targetContact, currentSegment ); continue; } @@ -497,7 +547,7 @@ namespace Anabatic { if (not _perpandiculars.empty()) break; } - cdebug_tabw(145,-1); + cdebug_tabw(144,-1); } diff --git a/anabatic/src/AutoVertical.cpp b/anabatic/src/AutoVertical.cpp index 958b1db1..a44da88d 100644 --- a/anabatic/src/AutoVertical.cpp +++ b/anabatic/src/AutoVertical.cpp @@ -181,7 +181,7 @@ namespace Anabatic { GCell* gcell = getAutoSource()->getGCell(); GCell* end = getAutoTarget()->getGCell(); - cdebug_log(149,0) << "xprobe: " << DbU::getValueString(xprobe) << endl; + cdebug_log(144,0) << "xprobe: " << DbU::getValueString(xprobe) << endl; if (gcell->getYMin() > end->getYMin()) std::swap( gcell, end ); if (xprobe == gcell->getConstraintXMax()) xprobe--; @@ -722,6 +722,11 @@ namespace Anabatic { segment2->setFlags( SegWeakTerminal1 ); } + if (isAnalog()) { + segment1->setFlags( SegAnalog ); + segment2->setFlags( SegAnalog ); + } + cdebug_log(149,0) << "Session::dogleg[x+1] perpand: " << segment1 << endl; cdebug_log(149,0) << "Session::dogleg[x+2] new paral: " << segment2 << endl; cdebug_log(149,0) << "Session::dogleg[x+0] original: " << this << endl; diff --git a/anabatic/src/Constants.cpp b/anabatic/src/Constants.cpp index 66b2a2d4..3ebe5f6a 100644 --- a/anabatic/src/Constants.cpp +++ b/anabatic/src/Constants.cpp @@ -14,82 +14,131 @@ // +-----------------------------------------------------------------+ -#include #include "anabatic/Constants.h" namespace Anabatic { using std::string; + using std::ostringstream; + using Hurricane::BaseFlags; - const uint64_t Flags::NoFlags = 0; + + const BaseFlags Flags::NoFlags = 0; // Flags used for both objects states & functions arguments. - const uint64_t Flags::Horizontal = (1L << 0); - const uint64_t Flags::Vertical = (1L << 1); - const uint64_t Flags::Source = (1L << 2); - const uint64_t Flags::Target = (1L << 3); - const uint64_t Flags::Invalidated = (1L << 4); + const BaseFlags Flags::Horizontal = (1L << 0); + const BaseFlags Flags::Vertical = (1L << 1); + const BaseFlags Flags::Source = (1L << 2); + const BaseFlags Flags::Target = (1L << 3); + const BaseFlags Flags::Invalidated = (1L << 4); // Flags for GCell objects states only. - const uint64_t Flags::DeviceGCell = (1L << 5); - const uint64_t Flags::HChannelGCell = (1L << 6); - const uint64_t Flags::VChannelGCell = (1L << 7); - const uint64_t Flags::StrutGCell = (1L << 8); - const uint64_t Flags::MatrixGCell = (1L << 9); - const uint64_t Flags::IoPadGCell = (1L << 10); - const uint64_t Flags::Saturated = (1L << 11); + const BaseFlags Flags::DeviceGCell = (1L << 5); + const BaseFlags Flags::HChannelGCell = (1L << 6); + const BaseFlags Flags::VChannelGCell = (1L << 7); + const BaseFlags Flags::StrutGCell = (1L << 8); + const BaseFlags Flags::MatrixGCell = (1L << 9); + const BaseFlags Flags::IoPadGCell = (1L << 10); + const BaseFlags Flags::Saturated = (1L << 11); // Flags for Anabatic objects states only. - const uint64_t Flags::DemoMode = (1L << 5); - const uint64_t Flags::WarnOnGCellOverload = (1L << 6); - const uint64_t Flags::DestroyGCell = (1L << 7); - const uint64_t Flags::DestroyBaseContact = (1L << 8); - const uint64_t Flags::DestroyBaseSegment = (1L << 9); + const BaseFlags Flags::DemoMode = (1L << 5); + const BaseFlags Flags::WarnOnGCellOverload = (1L << 6); + const BaseFlags Flags::DestroyGCell = (1L << 7); + const BaseFlags Flags::DestroyBaseContact = (1L << 8); + const BaseFlags Flags::DestroyBaseSegment = (1L << 9); // Flags for NetDatas objects states only. - const uint64_t Flags::GlobalRouted = (1L << 5); + const BaseFlags Flags::GlobalRouted = (1L << 5); // Masks. - const uint64_t Flags::WestSide = Horizontal|Target; - const uint64_t Flags::EastSide = Horizontal|Source; - const uint64_t Flags::SouthSide = Vertical |Target; - const uint64_t Flags::NorthSide = Vertical |Source; - const uint64_t Flags::AllSides = WestSide|EastSide|SouthSide|NorthSide ; - const uint64_t Flags::EndsMask = Source|Target; - const uint64_t Flags::DirectionMask = Horizontal|Vertical; - const uint64_t Flags::DestroyMask = DestroyGCell|DestroyBaseContact|DestroyBaseSegment; - const uint64_t Flags::GCellTypeMask = DeviceGCell|HChannelGCell|VChannelGCell|StrutGCell|MatrixGCell|IoPadGCell; + const BaseFlags Flags::WestSide = Horizontal|Target; + const BaseFlags Flags::EastSide = Horizontal|Source; + const BaseFlags Flags::SouthSide = Vertical |Target; + const BaseFlags Flags::NorthSide = Vertical |Source; + const BaseFlags Flags::AllSides = WestSide|EastSide|SouthSide|NorthSide ; + const BaseFlags Flags::EndsMask = Source|Target; + const BaseFlags Flags::DirectionMask = Horizontal|Vertical; + const BaseFlags Flags::DestroyMask = DestroyGCell|DestroyBaseContact|DestroyBaseSegment; + const BaseFlags Flags::GCellTypeMask = DeviceGCell|HChannelGCell|VChannelGCell|StrutGCell|MatrixGCell|IoPadGCell; // Flags for functions arguments only. - const uint64_t Flags::Create = (1L << 5); - const uint64_t Flags::WithPerpands = (1L << 6); - const uint64_t Flags::WithDoglegs = (1L << 7); - const uint64_t Flags::WithSelf = (1L << 8); - const uint64_t Flags::AboveLayer = (1L << 9); - const uint64_t Flags::BelowLayer = (1L << 10); - const uint64_t Flags::OpenSession = (1L << 11); - const uint64_t Flags::Realignate = (1L << 12); - const uint64_t Flags::NativeConstraints = (1L << 13); - const uint64_t Flags::ForceMove = (1L << 14); - const uint64_t Flags::WarnOnError = (1L << 15); - const uint64_t Flags::Topology = (1L << 16); - const uint64_t Flags::GlobalSegment = (1L << 17); - const uint64_t Flags::AllowTerminal = (1L << 18); - const uint64_t Flags::AllowLocal = (1L << 19); - const uint64_t Flags::IgnoreContacts = (1L << 20); - const uint64_t Flags::Propagate = (1L << 21); - const uint64_t Flags::Superior = (1L << 22); - const uint64_t Flags::DoglegOnLeft = (1L << 23); - const uint64_t Flags::DoglegOnRight = (1L << 24); - const uint64_t Flags::WithNeighbors = (1L << 25); - const uint64_t Flags::NoCheckLayer = (1L << 26); - const uint64_t Flags::HalfSlacken = (1L << 27); - const uint64_t Flags::NoGCellShrink = (1L << 28); - const uint64_t Flags::CParanoid = (1L << 29); - const uint64_t Flags::CheckLowDensity = (1L << 30); - const uint64_t Flags::CheckLowUpDensity = (1L << 31); - const uint64_t Flags::NoUpdate = (1L << 32); + const BaseFlags Flags::Create = (1L << 5); + const BaseFlags Flags::WithPerpands = (1L << 6); + const BaseFlags Flags::WithDoglegs = (1L << 7); + const BaseFlags Flags::WithSelf = (1L << 8); + const BaseFlags Flags::AboveLayer = (1L << 9); + const BaseFlags Flags::BelowLayer = (1L << 10); + const BaseFlags Flags::OpenSession = (1L << 11); + const BaseFlags Flags::Realignate = (1L << 12); + const BaseFlags Flags::NativeConstraints = (1L << 13); + const BaseFlags Flags::ForceMove = (1L << 14); + const BaseFlags Flags::WarnOnError = (1L << 15); + const BaseFlags Flags::Topology = (1L << 16); + const BaseFlags Flags::GlobalSegment = (1L << 17); + const BaseFlags Flags::AllowTerminal = (1L << 18); + const BaseFlags Flags::AllowLocal = (1L << 19); + const BaseFlags Flags::IgnoreContacts = (1L << 20); + const BaseFlags Flags::Propagate = (1L << 21); + const BaseFlags Flags::Superior = (1L << 22); + const BaseFlags Flags::DoglegOnLeft = (1L << 23); + const BaseFlags Flags::DoglegOnRight = (1L << 24); + const BaseFlags Flags::WithNeighbors = (1L << 25); + const BaseFlags Flags::NoCheckLayer = (1L << 26); + const BaseFlags Flags::HalfSlacken = (1L << 27); + const BaseFlags Flags::NoGCellShrink = (1L << 28); + const BaseFlags Flags::CParanoid = (1L << 29); + const BaseFlags Flags::CheckLowDensity = (1L << 30); + const BaseFlags Flags::CheckLowUpDensity = (1L << 31); + const BaseFlags Flags::NoUpdate = (1L << 32); Flags::~Flags () { } + string Flags::asString ( uint32_t mode ) const + { + ostringstream s; + + s << ((_flags & (uint64_t)Horizontal ) ? "h" : "-"); + s << ((_flags & (uint64_t)Vertical ) ? "v" : "-"); + s << ((_flags & (uint64_t)Source ) ? "S" : "-"); + s << ((_flags & (uint64_t)Target ) ? "T" : "-"); + s << ((_flags & (uint64_t)Invalidated) ? "i" : "-"); + + switch ( mode ) { + case FlagsFunction: + s << ((_flags & (uint64_t)Create ) ? "C" : "-"); + s << ((_flags & (uint64_t)WithPerpands ) ? "P" : "-"); + s << ((_flags & (uint64_t)WithDoglegs ) ? "D" : "-"); + s << ((_flags & (uint64_t)WithSelf ) ? "s" : "-"); + s << ((_flags & (uint64_t)AboveLayer ) ? "a" : "-"); + s << ((_flags & (uint64_t)BelowLayer ) ? "b" : "-"); + s << ((_flags & (uint64_t)OpenSession ) ? "o" : "-"); + s << ((_flags & (uint64_t)Realignate ) ? "R" : "-"); + s << ((_flags & (uint64_t)NativeConstraints) ? "N" : "-"); + s << ((_flags & (uint64_t)ForceMove ) ? "m" : "-"); + s << ((_flags & (uint64_t)WarnOnError ) ? "w" : "-"); + s << ((_flags & (uint64_t)Topology ) ? "t" : "-"); + s << ((_flags & (uint64_t)GlobalSegment ) ? "G" : "-"); + s << ((_flags & (uint64_t)AllowTerminal ) ? "t" : "-"); + s << ((_flags & (uint64_t)AllowLocal ) ? "l" : "-"); + s << ((_flags & (uint64_t)IgnoreContacts ) ? "i" : "-"); + s << ((_flags & (uint64_t)Propagate ) ? "p" : "-"); + s << ((_flags & (uint64_t)Superior ) ? "S" : "-"); + s << ((_flags & (uint64_t)DoglegOnLeft ) ? "L" : "-"); + s << ((_flags & (uint64_t)DoglegOnRight ) ? "R" : "-"); + s << ((_flags & (uint64_t)WithNeighbors ) ? "N" : "-"); + s << ((_flags & (uint64_t)NoCheckLayer ) ? "L" : "-"); + s << ((_flags & (uint64_t)HalfSlacken ) ? "h" : "-"); + s << ((_flags & (uint64_t)NoGCellShrink ) ? "s" : "-"); + s << ((_flags & (uint64_t)CParanoid ) ? "p" : "-"); + s << ((_flags & (uint64_t)CheckLowDensity ) ? "l" : "-"); + s << ((_flags & (uint64_t)CheckLowUpDensity) ? "u" : "-"); + s << ((_flags & (uint64_t)NoUpdate ) ? "u" : "-"); + break; + } + + s << " (" << value() << ")"; + return s.str(); + } + string Flags::_getTypeName () const { return "Anabatic::Flags"; } @@ -97,20 +146,20 @@ namespace Anabatic { string Flags::_getString () const { string s = ""; - s += (_flags & Horizontal ) ? 'h' : '-'; - s += (_flags & Vertical ) ? 'v' : '-'; - s += (_flags & Source ) ? 'S' : '-'; - s += (_flags & Target ) ? 'T' : '-'; - s += (_flags & DeviceGCell ) ? 'd' : '-'; - s += (_flags & HChannelGCell) ? 'c' : '-'; - s += (_flags & VChannelGCell) ? 'c' : '-'; - s += (_flags & StrutGCell ) ? 's' : '-'; - s += (_flags & MatrixGCell ) ? 'm' : '-'; + s += (_flags & (uint64_t)Horizontal ) ? 'h' : '-'; + s += (_flags & (uint64_t)Vertical ) ? 'v' : '-'; + s += (_flags & (uint64_t)Source ) ? 'S' : '-'; + s += (_flags & (uint64_t)Target ) ? 'T' : '-'; + s += (_flags & (uint64_t)DeviceGCell ) ? 'd' : '-'; + s += (_flags & (uint64_t)HChannelGCell) ? 'c' : '-'; + s += (_flags & (uint64_t)VChannelGCell) ? 'c' : '-'; + s += (_flags & (uint64_t)StrutGCell ) ? 's' : '-'; + s += (_flags & (uint64_t)MatrixGCell ) ? 'm' : '-'; s += ","; - s += (_flags & Invalidated ) ? 'i' : '-'; - s += (_flags & DestroyGCell ) ? 'D' : '-'; - s += (_flags & AboveLayer ) ? 'A' : '-'; - s += (_flags & BelowLayer ) ? 'B' : '-'; + s += (_flags & (uint64_t)Invalidated ) ? 'i' : '-'; + s += (_flags & (uint64_t)DestroyGCell ) ? 'D' : '-'; + s += (_flags & (uint64_t)AboveLayer ) ? 'A' : '-'; + s += (_flags & (uint64_t)BelowLayer ) ? 'B' : '-'; return s; } diff --git a/anabatic/src/Dijkstra.cpp b/anabatic/src/Dijkstra.cpp index 998e6300..b3ad7cf7 100644 --- a/anabatic/src/Dijkstra.cpp +++ b/anabatic/src/Dijkstra.cpp @@ -1106,21 +1106,22 @@ namespace Anabatic { + "-" + DbU::getValueString(_gcell->getYMin()) + "-" + DbU::getValueString(_gcell->getXMax()) + "-" + DbU::getValueString(_gcell->getYMax()) + ")" - /*+ " rps:" + getString(_rpCount) - + " deg:" + getString(_degree) - + " connexId:" + ((_connexId >= 0) ? getString(_connexId) : "None")*/ + //+ " rps:" + getString(_rpCount) + //+ " deg:" + getString(_degree) + + " connexId:" + ((_connexId >= 0) ? getString(_connexId) : "None") + " d:" + ((_distance == unreached) ? "unreached" : ((_distance == unreachable) ? "unreachable" : DbU::getValueString(_distance)) ) - /*+ "+" + getString(_branchId) - + " stamp:" + (hasValidStamp() ? "valid" : "outdated")*/ + //+ "+" + getString(_branchId) + //+ " stamp:" + (hasValidStamp() ? "valid" : "outdated") + " from:" + ((_from) ? "set" : "NULL") - //+ " from2:" + ((_adata) ? _adata->getFrom2() : "NULL") - + " restricted:" + (isNRestricted() ? "N" : "-") + //+ " from2:" + ((_adata) ? _adata->getFrom2() : "NULL") + + " restricted:" + + (isNRestricted() ? "N" : "-") + (isSRestricted() ? "S" : "-") + (isERestricted() ? "E" : "-") + (isWRestricted() ? "W" : "-") - //+ " isiSet:" +(isiSet() ? "1" : "0") + //+ " isiSet:" +(isiSet() ? "1" : "0") + ">"; return s; } @@ -1241,9 +1242,10 @@ namespace Anabatic { for ( Component* component : _net->getComponents() ) { RoutingPad* rp = dynamic_cast( component ); if (rp) { - if ( _attachSymContactsHook( rp ) ) continue; // ANALOG - rps.push_back( rp ); + if (_attachSymContactsHook(rp)) continue; // ANALOG + cdebug_log(112,0) << "| " << rp << endl; + rps.push_back( rp ); continue; } } @@ -1267,9 +1269,9 @@ namespace Anabatic { continue; } - cdebug_log(112,0) << "Current Search area: " << _searchArea << ", gcell: " << gcell << endl; + cdebug_log(112,0) << "Merge search area: " << _searchArea << ", gcell: " << gcell << endl; _searchArea.merge( gcell->getBoundingBox() ); - cdebug_log(112,0) << "New Search area: " << _searchArea << endl; + cdebug_log(112,0) << "Search area: " << _searchArea << endl; Vertex* seed = gcell->getObserver(GCell::Observable::Vertex); GCell* gseed = seed->getGCell(); @@ -1302,6 +1304,7 @@ namespace Anabatic { } _searchArea.inflate( _searchAreaHalo ); + cdebug_log(112,0) << "Search halo: " << _searchAreaHalo << endl; cdebug_log(112,0) << "Search area: " << _searchArea << endl; setAxisTargets(); @@ -1514,95 +1517,109 @@ namespace Anabatic { { cdebug_log(112,1) << "Dijkstra::_propagate() " << _net << endl; while ( not _queue.empty() ) { - cdebug_log(111,0) << "Number of targets left: " << _targets.size() << " and needaxis? " << needAxisTarget() << endl; + cdebug_log(111,0) << "Number of targets left: " << _targets.size() + << " and needaxis? " << needAxisTarget() << endl; + _queue.dump(); Vertex* current = _queue.top(); GCell* gcurrent = current->getGCell(); - cdebug_log(111,0) << endl << "[Current Vertex]: " << current << ", current->getConnexId() == _connectedsId):" << (current->getConnexId() == _connectedsId)<< ", (current->getConnexId() < 0): " << current->getConnexId() << endl; + cdebug_log(111,1) << "Current:" << current << endl; _queue.pop(); if ( current->isAxisTarget() and needAxisTarget()) unsetFlags(Mode::AxisTarget); else if ((current->getConnexId() == _connectedsId) or (current->getConnexId() < 0)) { + cdebug_log(111,1) << "Looking for neighbors:" << endl; for ( Edge* edge : current->getGCell()->getEdges() ) { - cdebug_log(111,0) << endl << "===================================================================================" << endl << endl; + cdebug_log(111,0) << "@ Edge " << edge << endl; + if (edge == current->getFrom()) { - cdebug_log(111,0) << "edge == current->getFrom()" << endl; + cdebug_log(111,0) << "| Reject: edge == current->getFrom()" << endl; continue; - } else cdebug_log(111,0) << "edge != current->getFrom()" << endl; + } - if (_checkFrom2(edge, current)) continue; // ANALOG + if (_checkFrom2(edge, current)) { // ANALOG + cdebug_log(111,0) << "| Reject: _checkFrom2()" << endl; + continue; + } GCell* gneighbor = edge->getOpposite(current->getGCell()); - Vertex* vneighbor = gneighbor->getObserver(GCell::Observable::Vertex); - if (!gneighbor->isMatrix()) vneighbor->createAData(); + Vertex* vneighbor = gneighbor->getObserver( GCell::Observable::Vertex ); + if (not gneighbor->isMatrix()) vneighbor->createAData(); + + cdebug_log(111,0) << "+ Neighbor:" << vneighbor << endl; if (vneighbor->getConnexId() == _connectedsId) { - cdebug_log(111,0) << "ConnectedsId" << endl; + cdebug_log(111,0) << "| Reject: Neighbor already reached (has connectedsId)" << endl; continue; } if (not _searchArea.intersect(gneighbor->getBoundingBox())) { - cdebug_log(111,0) << "not in _searchArea: " << _searchArea << ", gneighbor area: " << gneighbor->getBoundingBox() << endl; + cdebug_log(111,0) << "| Reject: not in _searchArea: " << _searchArea << ", gneighbor area: " << gneighbor->getBoundingBox() << endl; continue; } ////////////////////////////////////// DEBUG ////////////////////////////////////// - cdebug_log(111,0) << "| Net : " << _net << endl; - cdebug_log(111,0) << "| [Curr]: " << current << endl; + cdebug_tabw(111,1); if (current->getFrom()) { cdebug_log(111,0) << "| From: " << current->getFrom()->getOpposite(gcurrent) << endl; current->getIntervFrom().print(); } if (current->getFrom2()) { - cdebug_log(111,0) << "| FROM2: " << current->getFrom2()->getOpposite(gcurrent) << endl; + cdebug_log(111,0) << "| From2: " << current->getFrom2()->getOpposite(gcurrent) << endl; current->getIntervFrom2().print(); } - cdebug_log(111,0) << "| Edge " << edge << endl; - cdebug_log(111,0) << "+ Neighbor: " << vneighbor << endl; - if ((vneighbor->getFrom() != NULL)&&(vneighbor->hasValidStamp())) { + if ( (vneighbor->getFrom() != NULL) and (vneighbor->hasValidStamp()) ) { cdebug_log(111,0) << "| Neighbor GETFROM:" << vneighbor->getFrom()->getOpposite( gneighbor ) << endl; cdebug_log(111,0) << "Distance prev : " << DbU::getValueString(vneighbor->getDistance()) << endl; } /////////////////////////////////////////////////////////////////////////////////// - cdebug_log(111,0) << "Calc distance1" << endl; DbU::Unit distance = _distanceCb( current, vneighbor, edge ); bool isDistance2shorter = _isDistance2Shorter ( distance, current, vneighbor, edge ); // ANALOG - if ( (distance == vneighbor->getDistance()) and ((!gcurrent->isMatrix()) and (!gneighbor->isMatrix())) ){ + if ( (distance == vneighbor->getDistance()) + and ( (not gcurrent->isMatrix()) and (not gneighbor->isMatrix()) ) ) { _pushEqualDistance( distance, isDistance2shorter, current, vneighbor, edge ); // ANALOG - - } else if ( (distance < vneighbor->getDistance()) and (distance != Vertex::unreachable) ){ - if (vneighbor->getDistance() != Vertex::unreached) _queue.erase( vneighbor ); - else { - if (not vneighbor->hasValidStamp()) { - cdebug_log(111,0) << "[case: Distance FIRST]" << endl; - vneighbor->setConnexId( -1 ); - vneighbor->setStamp ( _stamp ); - vneighbor->setDegree ( 1 ); - vneighbor->setRpCount ( 0 ); - vneighbor->unsetFlags(Vertex::AxisTarget); + } else + if ( (distance < vneighbor->getDistance()) and (distance != Vertex::unreachable) ) { + if (vneighbor->getDistance() != Vertex::unreached) _queue.erase( vneighbor ); + else { + if (not vneighbor->hasValidStamp()) { + cdebug_log(111,0) << "Vertex reached for the first time" << endl; + vneighbor->setConnexId( -1 ); + vneighbor->setStamp ( _stamp ); + vneighbor->setDegree ( 1 ); + vneighbor->setRpCount ( 0 ); + vneighbor->unsetFlags(Vertex::AxisTarget); + } } + cdebug_log(111,0) << "Vertex reached through a shorter path" << endl; + _updateGRAData( vneighbor, isDistance2shorter, current ); // ANALOG + + vneighbor->setBranchId( current->getBranchId() ); + vneighbor->setDistance( distance ); + vneighbor->setFrom ( edge ); + _queue.push( vneighbor ); + cdebug_log(111,0) << "Push: (size:" << _queue.size() << ") " << vneighbor << endl; + } else { + cdebug_log(111,0) << "Reject: Vertex reached through a *longer* path" << endl; } - cdebug_log(111,0) << "[case: Distance INFERIOR]" << endl; - _updateGRAData ( vneighbor, isDistance2shorter, current ); // ANALOG - vneighbor->setBranchId( current->getBranchId() ); - vneighbor->setDistance( distance ); - vneighbor->setFrom ( edge ); - _queue.push( vneighbor ); - cdebug_log(111,0) << "Push: (size:" << _queue.size() << ") " << vneighbor << endl; - } + cdebug_tabw(111,-1); } + cdebug_tabw(111,-2); continue; } + cdebug_tabw(111,-1); + // We did reach another target (different ). // Tag back the path, with a higher . _traceback( current ); + cdebug_tabw(112,-1); return true; } @@ -1611,11 +1628,9 @@ namespace Anabatic { , getString(_net).c_str() ) << endl; - cdebug_tabw(112, 0) << "Targets are: " << endl; - for ( Vertex* v : _targets ) { - cdebug_tabw(112, 0) << v << endl; - } - cdebug_tabw(112, 0) << "End Targets are." << endl; + cdebug_log(112, 0) << "Unreached targets:" << endl; + for ( Vertex* v : _targets ) + cdebug_log(112, 0) << "| " << v << endl; cdebug_tabw(112,-1); return false; @@ -1792,7 +1807,7 @@ namespace Anabatic { void Dijkstra::run ( Dijkstra::Mode mode ) { - DebugSession::open( _net, 112, 120 ); + DebugSession::open( _net, 111, 120 ); cdebug_log(112,1) << "Dijkstra::run() on " << _net << " mode:" << mode << endl; _mode = mode; @@ -2029,14 +2044,14 @@ namespace Anabatic { { if (current->getFrom2()){ if (edge == current->getFrom2()) { - cdebug_log(111,0) << "edge == current->getFrom2()" << endl; + //cdebug_log(111,0) << "edge == current->getFrom2()" << endl; return true; } else { - cdebug_log(111,0) << "edge != current->getFrom2(): " << current->getFrom2() << endl; + //cdebug_log(111,0) << "edge != current->getFrom2(): " << current->getFrom2() << endl; return false; } } else { - cdebug_log(111,0) << "current->getFrom2() = NULL" << endl; + //cdebug_log(111,0) << "current->getFrom2() = NULL" << endl; return false; } } @@ -2044,42 +2059,53 @@ namespace Anabatic { bool Dijkstra::_isDistance2Shorter ( DbU::Unit& distance, Vertex* current, Vertex* vneighbor, Edge* edge ) { + cdebug_log(111,1) << "Dijkstra::_isDistance2Shorter()" << endl; + DbU::Unit distance2 = Vertex::unreachable; bool isDistance2shorter = false; GCell* gneighbor = edge->getOpposite(current->getGCell()); + if (current->getFrom2()) { - cdebug_log(111,0) << "HAS 2nd getfrom" << edge << endl; + cdebug_log(111,0) << "Has second ::getFrom()" << edge << endl; + current->setFlags(Vertex::From2Mode); - cdebug_log(111,0) << "Calc distance2" << endl; distance2 = _distanceCb( current, vneighbor, edge ); current->unsetFlags(Vertex::From2Mode); - cdebug_log(111,0) << "Distance1 curr: " << DbU::getValueString(distance) << endl; - cdebug_log(111,0) << "Distance2 curr: " << DbU::getValueString(distance2) << endl; - if (distance > distance2){ - cdebug_log(111,0) << "=> distance2 is shorter" << endl; + + cdebug_log(111,0) << "Distance 1 from current: " << DbU::getValueString(distance) << endl; + cdebug_log(111,0) << "Distance 2 from current: " << DbU::getValueString(distance2) << endl; + + if (distance > distance2) { + cdebug_log(111,0) << "* Distance 2 is shorter" << endl; + isDistance2shorter = true; distance = distance2; } else if (distance == distance2) { - cdebug_log(111,0) << "distance == distance2" << endl; + cdebug_log(111,0) << "* Distance 1 equal Distance 2" << endl; + Point pcurr = current->getStartPathPoint(vneighbor); - current->setFlags(Vertex::From2Mode); + current->setFlags( Vertex::From2Mode ); Point pcurr2 = current->getStartPathPoint(vneighbor); - current->unsetFlags(Vertex::From2Mode); + current->unsetFlags( Vertex::From2Mode ); Point pnext = gneighbor->getCenter(); - if (calcDistance(pcurr, pnext) > calcDistance(pcurr2, pnext)) { - cdebug_log(111,0) << "=> distance2 is shorter" << endl; + + if (calcDistance(pcurr,pnext) > calcDistance(pcurr2,pnext)) { + cdebug_log(111,0) << "* Distance 2 is shorter" << endl; + isDistance2shorter = true; distance = distance2; } else { - cdebug_log(111,0) << "=> distance1 is shorter" << endl; + cdebug_log(111,0) << "* Distance 1 is shorter" << endl; } } else { - cdebug_log(111,0) << "=> distance1 is shorter" << endl; + cdebug_log(111,0) << "* Distance 1 is shorter" << endl; } } else { - cdebug_log(111,0) << "NO 2nd getfrom" << endl; - cdebug_log(111,0) << "Distance1 curr: " << DbU::getValueString(distance) << endl; + cdebug_log(111,0) << "No second ::getFrom()" << endl; + cdebug_log(111,0) << "Distance 1 from current: " << DbU::getValueString(distance) << endl; } + + cdebug_tabw(111,-1); return isDistance2shorter; } @@ -2245,6 +2271,8 @@ namespace Anabatic { , _net->getCell()->getAbutmentBox().getYMax() ) ); + } else if (gcell->isDevice()){ + _searchArea.merge( _net->getCell()->getAbutmentBox() ); } } else if (gcell->isDevice()){ _searchArea.merge( _net->getCell()->getAbutmentBox() ); diff --git a/anabatic/src/GCell.cpp b/anabatic/src/GCell.cpp index a864a438..67ed9dbf 100644 --- a/anabatic/src/GCell.cpp +++ b/anabatic/src/GCell.cpp @@ -581,10 +581,10 @@ namespace Anabatic { Box GCell::getBorder ( const GCell* s, const GCell* t ) { Flags flags = Flags::NoFlags; - flags |= (s->getXMax() == t->getXMin()) ? Flags::EastSide : 0; - flags |= (t->getXMax() == s->getXMin()) ? Flags::WestSide : 0; - flags |= (s->getYMax() == t->getYMin()) ? Flags::NorthSide : 0; - flags |= (t->getYMax() == s->getYMin()) ? Flags::SouthSide : 0; + flags |= (s->getXMax() == t->getXMin()) ? Flags::EastSide : Flags::NoFlags; + flags |= (t->getXMax() == s->getXMin()) ? Flags::WestSide : Flags::NoFlags; + flags |= (s->getYMax() == t->getYMin()) ? Flags::NorthSide : Flags::NoFlags; + flags |= (t->getYMax() == s->getYMin()) ? Flags::SouthSide : Flags::NoFlags; if (flags & Flags::Vertical) { if (flags & Flags::Horizontal) return Box(); diff --git a/anabatic/src/LoadGlobalRouting.cpp b/anabatic/src/LoadGlobalRouting.cpp index 2b75b81f..fe4801bb 100644 --- a/anabatic/src/LoadGlobalRouting.cpp +++ b/anabatic/src/LoadGlobalRouting.cpp @@ -3411,12 +3411,15 @@ namespace Anabatic { for ( Net* net : getCell()->getNets() ) { if (NetRoutingExtension::isAutomaticGlobalRoute(net)) { - DebugSession::open( net, 145, 150 ); + DebugSession::open( net, 144, 150 ); + AutoSegment::setAnalogMode( NetRoutingExtension::isAnalog(net) ); + cerr << net << " AnalogMode:" << NetRoutingExtension::get(net) << endl; _loadNetGlobalRouting( net ); Session::revalidate(); DebugSession::close(); } } + AutoSegment::setAnalogMode( false ); #if defined(CHECK_DATABASE) _check ( "after Anabatic loading" ); diff --git a/anabatic/src/NetOptimals.cpp b/anabatic/src/NetOptimals.cpp index 90470f59..df9f6301 100644 --- a/anabatic/src/NetOptimals.cpp +++ b/anabatic/src/NetOptimals.cpp @@ -37,7 +37,7 @@ namespace Anabatic { void AnabaticEngine::_computeNetOptimals ( Net* net ) { - DebugSession::open( net, 140, 150 ); + DebugSession::open( net, 144, 150 ); cdebug_log(149,0) << "Anabatic::_computeNetOptimals( " << net << " )" << endl; cdebug_tabw(145,1); diff --git a/anabatic/src/anabatic/AutoContact.h b/anabatic/src/anabatic/AutoContact.h index d738d42e..ae817945 100644 --- a/anabatic/src/anabatic/AutoContact.h +++ b/anabatic/src/anabatic/AutoContact.h @@ -294,13 +294,13 @@ namespace Anabatic { inline LocatorHelper::LocatorHelper ( AutoContact* contact, Flags flags ) : _flags(flags), _index(_min()), _contact(contact) { - cdebug_tabw(145,1); - cdebug_log(145,0) << "CTOR LocatorHelper " << contact->_getString() << endl; - cdebug_log(145,0) << "+ _min():" << _min() << endl; - cdebug_log(145,0) << "+ _max():" << _max() << endl; - cdebug_log(145,0) << "+ getSegment(_min()):" << _contact->getSegment(_min()) << endl; + cdebug_tabw(144,1); + cdebug_log(144,0) << "CTOR LocatorHelper " << contact->_getString() << endl; + cdebug_log(144,0) << "+ _min():" << _min() << endl; + cdebug_log(144,0) << "+ _max():" << _max() << endl; + cdebug_log(144,0) << "+ getSegment(_min()):" << _contact->getSegment(_min()) << endl; if (not _contact->getSegment(_index)) progress(); - cdebug_tabw(145,-1); + cdebug_tabw(144,-1); } inline bool LocatorHelper::isValid () const @@ -314,20 +314,20 @@ namespace Anabatic { inline AutoSegment* LocatorHelper::getSegment () const { - cdebug_log(145,0) << " LocatorHelper::getSegment(" << _index << ") - " << _contact->getSegment(_index) << endl; + cdebug_log(144,0) << " LocatorHelper::getSegment(" << _index << ") - " << _contact->getSegment(_index) << endl; return (_index < _max()) ? _contact->getSegment(_index) : NULL; } inline void LocatorHelper::progress () { - cdebug_tabw(145,1); + cdebug_tabw(144,1); ++_index; - cdebug_log(145,0) << "LocatorHelper::progress() [" << _index << "] " << _contact->getSegment(_index) << endl; + cdebug_log(144,0) << "LocatorHelper::progress() [" << _index << "] " << _contact->getSegment(_index) << endl; while ((_index < _max()) and (_contact->getSegment(_index) == NULL)) { ++_index; - cdebug_log(145,0) << "LocatorHelper::progress() [" << _index << "] " << _contact->getSegment(_index) << endl; + cdebug_log(144,0) << "LocatorHelper::progress() [" << _index << "] " << _contact->getSegment(_index) << endl; } - cdebug_tabw(145,-1); + cdebug_tabw(144,-1); } diff --git a/anabatic/src/anabatic/AutoSegment.h b/anabatic/src/anabatic/AutoSegment.h index c32c654a..8e88f3cf 100644 --- a/anabatic/src/anabatic/AutoSegment.h +++ b/anabatic/src/anabatic/AutoSegment.h @@ -93,6 +93,7 @@ namespace Anabatic { , SegInvalidatedLayer = (1<<28) , SegCreated = (1<<29) , SegUserDefined = (1<<30) + , SegAnalog = (1<<31) // Masks. , SegWeakTerminal = SegStrongTerminal|SegWeakTerminal1|SegWeakTerminal2 , SegNotAligned = SegNotSourceAligned|SegNotTargetAligned @@ -127,7 +128,8 @@ namespace Anabatic { public: typedef std::function< void(AutoSegment*) > RevalidateCb_t; public: - static void setDestroyMode ( bool ); + static void setAnalogMode ( bool ); + static bool getAnalogMode (); static AutoSegment* create ( AutoContact* source , AutoContact* target , Segment* hurricaneSegment @@ -201,6 +203,7 @@ namespace Anabatic { inline bool isUserDefined () const; bool isReduceCandidate () const; bool isUTurn () const; + inline bool isAnalog () const; virtual bool _canSlacken () const = 0; bool canReduce () const; bool mustRaise () const; @@ -312,7 +315,7 @@ namespace Anabatic { AutoSegments getCachedOnTargetContact ( Flags direction ); AutoSegments getAligneds ( Flags flags=Flags::NoFlags ); AutoSegments getConnecteds ( Flags flags=Flags::NoFlags ); - AutoSegments getPerpandiculars (); + AutoSegments getPerpandiculars ( Flags flags=Flags::NoFlags ); size_t getAlignedContacts ( map& ) const ; // Observers. template< typename OwnerT > @@ -337,9 +340,7 @@ namespace Anabatic { // Internal: Static Attributes. static size_t _allocateds; static size_t _globalsCount; - static bool _destroyBase; - static bool _destroyTool; - static unsigned long _maxId; + static bool _analogMode; // Internal: Attributes. const unsigned long _id; GCell* _gcell; @@ -492,6 +493,7 @@ namespace Anabatic { inline bool AutoSegment::isInvalidatedLayer () const { return _flags & SegInvalidatedLayer; } inline bool AutoSegment::isCreated () const { return _flags & SegCreated; } inline bool AutoSegment::isUserDefined () const { return _flags & SegUserDefined; } + inline bool AutoSegment::isAnalog () const { return _flags & SegAnalog; } inline void AutoSegment::setFlags ( uint32_t flags ) { _flags |= flags; } inline void AutoSegment::unsetFlags ( uint32_t flags ) { _flags &= ~flags; } @@ -519,10 +521,7 @@ namespace Anabatic { inline bool AutoSegment::CompareId::operator() ( const AutoSegment* lhs, const AutoSegment* rhs ) const { return lhs->getId() < rhs->getId(); } - - inline unsigned long AutoSegment::getMaxId () - { return _maxId; } - + inline uint32_t AutoSegment::swapSourceTargetFlags ( AutoSegment* segment ) { uint32_t segFlags = segment->getFlags(); diff --git a/anabatic/src/anabatic/AutoSegments.h b/anabatic/src/anabatic/AutoSegments.h index 979ad288..44a84447 100644 --- a/anabatic/src/anabatic/AutoSegments.h +++ b/anabatic/src/anabatic/AutoSegments.h @@ -258,7 +258,9 @@ namespace Anabatic { : AutoSegmentHC() , _flags (flags) , _segment(segment) - { } + { + cdebug_log(145,0) << "Flags:" << _flags.asString(FlagsFunction) << std::endl; + } inline AutoSegments_Aligneds::AutoSegments_Aligneds ( const AutoSegments_Aligneds& autosegments ) diff --git a/anabatic/src/anabatic/Constants.h b/anabatic/src/anabatic/Constants.h index 7092fa11..3c482aa1 100644 --- a/anabatic/src/anabatic/Constants.h +++ b/anabatic/src/anabatic/Constants.h @@ -24,72 +24,73 @@ namespace Anabatic { class Flags : public Hurricane::BaseFlags { public: - static const uint64_t NoFlags ; // = 0; + static const BaseFlags NoFlags ; // = 0; // Flags used for both objects states & functions arguments. - static const uint64_t Horizontal ; // = (1 << 0); - static const uint64_t Vertical ; // = (1 << 1); - static const uint64_t Source ; // = (1 << 2); - static const uint64_t Target ; // = (1 << 3); - static const uint64_t Invalidated ; // = (1 << 4); + static const BaseFlags Horizontal ; // = (1 << 0); + static const BaseFlags Vertical ; // = (1 << 1); + static const BaseFlags Source ; // = (1 << 2); + static const BaseFlags Target ; // = (1 << 3); + static const BaseFlags Invalidated ; // = (1 << 4); // Flags for GCell objects states only. - static const uint64_t DeviceGCell ; // = (1 << 5); - static const uint64_t HChannelGCell ; // = (1 << 6); - static const uint64_t VChannelGCell ; // = (1 << 7); - static const uint64_t StrutGCell ; // = (1 << 8); - static const uint64_t MatrixGCell ; // = (1 << 9); - static const uint64_t IoPadGCell ; // = (1 << 10); - static const uint64_t Saturated ; // = (1 << 11); + static const BaseFlags DeviceGCell ; // = (1 << 5); + static const BaseFlags HChannelGCell ; // = (1 << 6); + static const BaseFlags VChannelGCell ; // = (1 << 7); + static const BaseFlags StrutGCell ; // = (1 << 8); + static const BaseFlags MatrixGCell ; // = (1 << 9); + static const BaseFlags IoPadGCell ; // = (1 << 10); + static const BaseFlags Saturated ; // = (1 << 11); // Flags for Anabatic objects states only. - static const uint64_t DemoMode ; // = (1 << 5); - static const uint64_t WarnOnGCellOverload ; // = (1 << 6); - static const uint64_t DestroyGCell ; // = (1 << 7); - static const uint64_t DestroyBaseContact ; // = (1 << 8); - static const uint64_t DestroyBaseSegment ; // = (1 << 9); + static const BaseFlags DemoMode ; // = (1 << 5); + static const BaseFlags WarnOnGCellOverload ; // = (1 << 6); + static const BaseFlags DestroyGCell ; // = (1 << 7); + static const BaseFlags DestroyBaseContact ; // = (1 << 8); + static const BaseFlags DestroyBaseSegment ; // = (1 << 9); // Flags for NetDatas objects states only. - static const uint64_t GlobalRouted ; // = (1 << 5); + static const BaseFlags GlobalRouted ; // = (1 << 5); // Masks. - static const uint64_t WestSide ; // = Horizontal|Target; - static const uint64_t EastSide ; // = Horizontal|Source; - static const uint64_t SouthSide ; // = Vertical |Target; - static const uint64_t NorthSide ; // = Vertical |Source; - static const uint64_t AllSides ; // = WestSide|EastSide|SouthSide|NorthSide ; - static const uint64_t EndsMask ; // = Source|Target; - static const uint64_t DirectionMask ; // = Horizontal|Vertical; - static const uint64_t DestroyMask ; // = DestroyGCell|DestroyBaseContact|DestroyBaseSegment; - static const uint64_t GCellTypeMask ; // = DeviceGCell|HChannelGCell|VChannelGCell|StrutGCell|MatrixGCell|IoPadGCell; + static const BaseFlags WestSide ; // = Horizontal|Target; + static const BaseFlags EastSide ; // = Horizontal|Source; + static const BaseFlags SouthSide ; // = Vertical |Target; + static const BaseFlags NorthSide ; // = Vertical |Source; + static const BaseFlags AllSides ; // = WestSide|EastSide|SouthSide|NorthSide ; + static const BaseFlags EndsMask ; // = Source|Target; + static const BaseFlags DirectionMask ; // = Horizontal|Vertical; + static const BaseFlags DestroyMask ; // = DestroyGCell|DestroyBaseContact|DestroyBaseSegment; + static const BaseFlags GCellTypeMask ; // = DeviceGCell|HChannelGCell|VChannelGCell|StrutGCell|MatrixGCell|IoPadGCell; // Flags for functions arguments only. - static const uint64_t Create ; // = (1 << 5); - static const uint64_t WithPerpands ; - static const uint64_t WithDoglegs ; - static const uint64_t WithSelf ; - static const uint64_t AboveLayer ; - static const uint64_t BelowLayer ; - static const uint64_t OpenSession ; - static const uint64_t Realignate ; - static const uint64_t NativeConstraints ; - static const uint64_t ForceMove ; - static const uint64_t WarnOnError ; - static const uint64_t Topology ; - static const uint64_t GlobalSegment ; - static const uint64_t AllowTerminal ; - static const uint64_t AllowLocal ; - static const uint64_t IgnoreContacts ; - static const uint64_t Propagate ; - static const uint64_t Superior ; - static const uint64_t DoglegOnLeft ; - static const uint64_t DoglegOnRight ; - static const uint64_t WithNeighbors ; - static const uint64_t NoCheckLayer ; - static const uint64_t HalfSlacken ; - static const uint64_t NoGCellShrink ; - static const uint64_t CParanoid ; - static const uint64_t CheckLowDensity ; - static const uint64_t CheckLowUpDensity ; - static const uint64_t NoUpdate ; + static const BaseFlags Create ; // = (1 << 5); + static const BaseFlags WithPerpands ; + static const BaseFlags WithDoglegs ; + static const BaseFlags WithSelf ; + static const BaseFlags AboveLayer ; + static const BaseFlags BelowLayer ; + static const BaseFlags OpenSession ; + static const BaseFlags Realignate ; + static const BaseFlags NativeConstraints ; + static const BaseFlags ForceMove ; + static const BaseFlags WarnOnError ; + static const BaseFlags Topology ; + static const BaseFlags GlobalSegment ; + static const BaseFlags AllowTerminal ; + static const BaseFlags AllowLocal ; + static const BaseFlags IgnoreContacts ; + static const BaseFlags Propagate ; + static const BaseFlags Superior ; + static const BaseFlags DoglegOnLeft ; + static const BaseFlags DoglegOnRight ; + static const BaseFlags WithNeighbors ; + static const BaseFlags NoCheckLayer ; + static const BaseFlags HalfSlacken ; + static const BaseFlags NoGCellShrink ; + static const BaseFlags CParanoid ; + static const BaseFlags CheckLowDensity ; + static const BaseFlags CheckLowUpDensity ; + static const BaseFlags NoUpdate ; public: inline Flags ( uint64_t flags = NoFlags ); inline Flags ( const Hurricane::BaseFlags& ); virtual ~Flags (); + virtual std::string asString ( uint32_t mode ) const; virtual std::string _getTypeName () const; virtual std::string _getString () const; }; @@ -99,6 +100,10 @@ namespace Anabatic { Flags::Flags ( const Hurricane::BaseFlags& flags ) : BaseFlags(flags) { } + enum FlagsMode { FlagsFunction = 1 + }; + + enum EngineState { EngineCreation = 1 , EngineGlobalLoaded = 2 , EngineActive = 3 diff --git a/anabatic/src/anabatic/GCell.h b/anabatic/src/anabatic/GCell.h index 2e6662f9..8958fcc7 100644 --- a/anabatic/src/anabatic/GCell.h +++ b/anabatic/src/anabatic/GCell.h @@ -155,9 +155,9 @@ namespace Anabatic { inline DbU::Unit getYMax ( int shrink=0 ) const; inline DbU::Unit getXCenter () const; inline DbU::Unit getYCenter () const; - inline DbU::Unit getConstraintXMax () const; - inline DbU::Unit getConstraintYMax () const; - inline Interval getSide ( Flags direction ) const; + inline DbU::Unit getConstraintXMax ( int shrink=0 ) const; + inline DbU::Unit getConstraintYMax ( int shrink=0 ) const; + inline Interval getSide ( Flags direction, int shrink=0 ) const; inline Point getCenter () const; inline Box getConstraintBox () const; inline const vector& getWestEdges () const; @@ -340,7 +340,7 @@ namespace Anabatic { inline Flags& GCell::flags () { return _flags; } inline DbU::Unit GCell::getXMax ( int shrink ) const - { return _eastEdges.empty() ? getCell()->getAbutmentBox().getXMax() - shrink + { return _eastEdges.empty() ? getCell()->getAbutmentBox().getXMax() - shrink : _eastEdges[0]->getOpposite(this)->getXMin() - shrink; } inline DbU::Unit GCell::getYMax ( int shrink ) const @@ -350,11 +350,11 @@ namespace Anabatic { inline DbU::Unit GCell::getXCenter () const { return (getXMin()+getXMax())/2; } inline DbU::Unit GCell::getYCenter () const { return (getYMin()+getYMax())/2; } - inline DbU::Unit GCell::getConstraintXMax () const - { return getXMax( _eastEdges.empty() ? 0 : 1 ); } + inline DbU::Unit GCell::getConstraintXMax ( int shrink ) const + { return getXMax( shrink + (_eastEdges.empty() ? 0 : 1) ); } - inline DbU::Unit GCell::getConstraintYMax () const - { return getYMax( _northEdges.empty() ? 0 : 1 ); } + inline DbU::Unit GCell::getConstraintYMax ( int shrink ) const + { return getYMax( shrink + (_northEdges.empty() ? 0 : 1) ); } inline Point GCell::getCenter () const { return Point( (getXMin()+getXMax())/2, (getYMin()+getYMax())/2); } @@ -362,10 +362,10 @@ namespace Anabatic { inline Box GCell::getConstraintBox () const { return Box( getXMin(), getYMin(), getConstraintXMax(), getConstraintYMax() ); } - inline Interval GCell::getSide ( Flags direction ) const + inline Interval GCell::getSide ( Flags direction, int shrink ) const { - if (direction.isset(Flags::Vertical)) return Interval( getYMin(), getConstraintYMax() ); - return Interval( getXMin(), getConstraintXMax() ); + if (direction.isset(Flags::Vertical)) return Interval( getYMin(), getConstraintYMax(shrink) ); + return Interval( getXMin(), getConstraintXMax(shrink) ); } inline void GCell::setObserver ( size_t slot, BaseObserver* observer ) diff --git a/crlcore/src/cyclop/Cyclop.cpp b/crlcore/src/cyclop/Cyclop.cpp index 70ee6adf..2b5a8d8f 100644 --- a/crlcore/src/cyclop/Cyclop.cpp +++ b/crlcore/src/cyclop/Cyclop.cpp @@ -71,7 +71,7 @@ namespace CRL { connect ( openAction, SIGNAL(triggered()), this, SLOT(openCell()) ); } - QMenu* debugMenu = createDebugMenu (); + /*QMenu* debugMenu =*/ createDebugMenu (); _stressDisplayAction = new QAction ( tr("Stress Display"), this ); _stressDisplayAction->setObjectName ( "viewer.menuBar.debug.stressDisplay" ); _stressDisplayAction->setStatusTip ( tr("Intensive use of display redrawing") ); diff --git a/hurricane/src/hurricane/Flags.cpp b/hurricane/src/hurricane/Flags.cpp index b764800e..5e6d2e74 100644 --- a/hurricane/src/hurricane/Flags.cpp +++ b/hurricane/src/hurricane/Flags.cpp @@ -41,6 +41,14 @@ namespace Hurricane { { } + string BaseFlags::asString ( uint32_t ) const + { + std::ostringstream formatted; + formatted << _flags; + return formatted.str(); + } + + string BaseFlags::_getTypeName () const { return "Flags"; } diff --git a/hurricane/src/hurricane/Net.cpp b/hurricane/src/hurricane/Net.cpp index d4861668..7fd24af7 100644 --- a/hurricane/src/hurricane/Net.cpp +++ b/hurricane/src/hurricane/Net.cpp @@ -32,6 +32,7 @@ #include "hurricane/Pad.h" #include "hurricane/UpdateSession.h" #include "hurricane/NetExternalComponents.h" +#include "hurricane/NetRoutingProperty.h" namespace Hurricane { @@ -514,6 +515,10 @@ void Net::setDirection(const Direction& direction) _direction = direction; } +void Net::setRoutingState(uint32_t state) +// ************************************** +{ NetRoutingExtension::get(this)->setFlags( state ); } + bool Net::hasAlias(const Name& name) const // *************************************** { diff --git a/hurricane/src/hurricane/NetRoutingProperty.cpp b/hurricane/src/hurricane/NetRoutingProperty.cpp index a067d706..915b1755 100644 --- a/hurricane/src/hurricane/NetRoutingProperty.cpp +++ b/hurricane/src/hurricane/NetRoutingProperty.cpp @@ -49,6 +49,7 @@ namespace Hurricane { s += (isSymHorizontal ()) ? 'h' : '-'; s += (isSymVertical ()) ? 'v' : '-'; s += (isSymMaster ()) ? 'M' : '-'; + s += (isAnalog ()) ? 'A' : '-'; return s; } @@ -164,8 +165,8 @@ namespace Hurricane { { check( stack, "JsonNetRoutingProperty::toData" ); - string sflags = get( stack, "_state" ); - unsigned int flags = 0; + string sflags = get( stack, "_state" ); + uint32_t flags = 0; flags |= (sflags[0] == 'e') ? NetRoutingState::Excluded : 0; flags |= (sflags[1] == 'f') ? NetRoutingState::Fixed : 0; @@ -176,6 +177,7 @@ namespace Hurricane { flags |= (sflags[6] == 'h') ? NetRoutingState::Horizontal : 0; flags |= (sflags[7] == 'v') ? NetRoutingState::Vertical : 0; flags |= (sflags[8] == 'M') ? NetRoutingState::SymmetricMaster : 0; + flags |= (sflags[9] == 'A') ? NetRoutingState::Analog : 0; NetRoutingProperty* property = NULL; DBo* dbo = stack.back_dbo(); @@ -188,7 +190,7 @@ namespace Hurricane { , getString(net).c_str() ) << endl; NetRoutingState* state = property->getState(); - state->unsetFlags( (unsigned int)-1 ); + state->unsetFlags( (uint32_t)-1 ); state->setFlags ( flags ); state->setSymAxis( DbU::fromDb( get(stack,"_axis") ) ); } else { @@ -231,15 +233,16 @@ namespace Hurricane { } - NetRoutingState* NetRoutingExtension::create ( Net* net ) + NetRoutingState* NetRoutingExtension::create ( Net* net, uint32_t flags ) { get( net ); - if (_cache) return _cache; + if (not _cache) { + NetRoutingProperty* property = new NetRoutingProperty( net ); + net->put( property ); - NetRoutingProperty* property = new NetRoutingProperty( net ); - net->put( property ); - - _cache = property->getState(); + _cache = property->getState(); + } + _cache->setFlags( flags ); return _cache; } diff --git a/hurricane/src/hurricane/hurricane/Flags.h b/hurricane/src/hurricane/hurricane/Flags.h index be243968..46085480 100644 --- a/hurricane/src/hurricane/hurricane/Flags.h +++ b/hurricane/src/hurricane/hurricane/Flags.h @@ -85,6 +85,9 @@ namespace Hurricane { inline bool operator < ( uint64_t ) const; inline bool operator > ( uint64_t ) const; inline operator bool () const; + inline uint64_t value () const; + virtual std::string asString ( uint32_t mode ) const; + inline operator uint64_t () const; //inline operator unsigned int () const; // Hurricane Managment. virtual std::string _getTypeName () const; @@ -97,7 +100,7 @@ namespace Hurricane { // Inline Functions. - inline BaseFlags::BaseFlags ( uint64_t flags ) : _flags(flags) { } + inline BaseFlags::BaseFlags ( uint64_t flags ) : _flags(flags) { } inline bool BaseFlags::zero () const { return _flags == 0; } inline BaseFlags& BaseFlags::reset ( BaseFlags flags ) { _flags &= ~flags._flags; return *this; } inline bool BaseFlags::isset ( BaseFlags flags ) const { return _flags & flags._flags; } @@ -137,6 +140,8 @@ namespace Hurricane { inline bool BaseFlags::operator < ( uint64_t flags ) const { return _flags < flags; } inline bool BaseFlags::operator > ( uint64_t flags ) const { return _flags > flags; } inline BaseFlags::operator bool () const { return _flags != 0; } + inline uint64_t BaseFlags::value () const { return _flags; } + inline BaseFlags::operator uint64_t () const { return _flags; } //inline BaseFlags::operator unsigned int () const { return _flags; } //inline BaseFlags::operator unsigned int () const { return _flags; } @@ -164,6 +169,15 @@ namespace Hurricane { return record; } + // inline BaseFlags operator bitor ( const BaseFlags& lhs, const BaseFlags& rhs ) { BaseFlags r( lhs ); r |= rhs; return r; } + // inline BaseFlags operator bitor ( const BaseFlags& lhs, uint64_t rhs ) { BaseFlags r( lhs ); r |= rhs; return r; } + // inline BaseFlags operator bitor ( uint64_t lhs, const BaseFlags& rhs ) { BaseFlags r( rhs ); r |= lhs; return r; } + // inline BaseFlags operator bitand ( const BaseFlags& lhs, const BaseFlags& rhs ) { BaseFlags r( lhs ); r &= rhs; return r; } + // inline BaseFlags operator bitand ( const BaseFlags& lhs, uint64_t rhs ) { BaseFlags r( lhs ); r &= rhs; return r; } + // inline BaseFlags operator bitand ( uint64_t lhs, const BaseFlags& rhs ) { BaseFlags r( rhs ); r &= lhs; return r; } + // inline BaseFlags operator^ ( const BaseFlags& lhs, const BaseFlags& rhs ) { BaseFlags r( lhs ); r ^= rhs; return r; } + // inline BaseFlags operator^ ( const BaseFlags& lhs, uint64_t rhs ) { BaseFlags r( lhs ); r ^= rhs; return r; } + // inline BaseFlags operator^ ( uint64_t lhs, const BaseFlags& rhs ) { BaseFlags r( rhs ); r ^= lhs; return r; } } // Hurricane namespace. diff --git a/hurricane/src/hurricane/hurricane/Net.h b/hurricane/src/hurricane/hurricane/Net.h index 7eddc371..66da21cb 100644 --- a/hurricane/src/hurricane/hurricane/Net.h +++ b/hurricane/src/hurricane/hurricane/Net.h @@ -233,6 +233,7 @@ class Net : public Entity { public: void setType(const Type& type); public: void setDirection(const Direction& direction); public: void setPosition(const Point& position); + public: void setRoutingState(uint32_t state); public: void materialize(); public: void unmaterialize(); public: bool addAlias(const Name& name); diff --git a/hurricane/src/hurricane/hurricane/NetRoutingProperty.h b/hurricane/src/hurricane/hurricane/NetRoutingProperty.h index 33aa3b6a..4b063254 100644 --- a/hurricane/src/hurricane/hurricane/NetRoutingProperty.h +++ b/hurricane/src/hurricane/hurricane/NetRoutingProperty.h @@ -48,6 +48,7 @@ namespace Hurricane { , Vertical = (1<< 6) , Symmetric = (1<< 7) , SymmetricMaster = (1<< 8) + , Analog = (1<< 9) }; public: inline bool isExcluded () const; @@ -61,31 +62,32 @@ namespace Hurricane { inline bool isSymVertical () const; inline bool isSymMaster () const; inline bool isSymSlave () const; + inline bool isAnalog () const; inline Net* getNet () const; inline Net* getSymNet () const; inline DbU::Unit getSymAxis () const; - inline unsigned int getFlags () const; + inline uint32_t getFlags () const; inline void setSymNet ( Net* ); inline void setSymAxis ( DbU::Unit ); - inline void setFlags ( unsigned int mask ); - inline void unsetFlags ( unsigned int mask ); + inline void setFlags ( uint32_t mask ); + inline void unsetFlags ( uint32_t mask ); inline bool isSelfSym () const; DbU::Unit getSymValue ( DbU::Unit ) const; std::string _getString () const; Record* _getRecord () const; private: - inline NetRoutingState ( Net*, unsigned int flags=0 ); + inline NetRoutingState ( Net*, uint32_t flags=0 ); NetRoutingState ( const NetRoutingState& ) = delete; inline void setNet ( Net* ); private: Net* _net; Net* _symNet; - unsigned int _flags; + uint32_t _flags; DbU::Unit _axis; }; - inline NetRoutingState::NetRoutingState ( Net* net, unsigned int flags ) : _net(net), _symNet(NULL), _flags(flags), _axis(0) { } + inline NetRoutingState::NetRoutingState ( Net* net, uint32_t flags ) : _net(net), _symNet(NULL), _flags(flags), _axis(0) { } inline bool NetRoutingState::isExcluded () const { return _flags & Excluded; }; inline bool NetRoutingState::isFixed () const { return _flags & Fixed; }; @@ -97,17 +99,18 @@ namespace Hurricane { inline bool NetRoutingState::isSymHorizontal () const { return _flags & Horizontal; } inline bool NetRoutingState::isSymVertical () const { return _flags & Vertical; } inline bool NetRoutingState::isSymMaster () const { return _flags & SymmetricMaster; } + inline bool NetRoutingState::isAnalog () const { return _flags & Analog; } inline Net* NetRoutingState::getSymNet () const { return _symNet; } inline DbU::Unit NetRoutingState::getSymAxis () const { return _axis; } - inline unsigned int NetRoutingState::getFlags () const { return _flags; }; + inline uint32_t NetRoutingState::getFlags () const { return _flags; }; inline Net* NetRoutingState::getNet () const { return _net; } - inline void NetRoutingState::setFlags ( unsigned int mask ) { _flags |= mask; } - inline void NetRoutingState::unsetFlags ( unsigned int mask ) { _flags &= ~mask; } + inline void NetRoutingState::setFlags ( uint32_t mask ) { _flags |= mask; } + inline void NetRoutingState::unsetFlags ( uint32_t mask ) { _flags &= ~mask; } inline void NetRoutingState::setNet ( Net* net ) { _net = net; } inline void NetRoutingState::setSymNet ( Net* symNet ) { _symNet = symNet; } inline void NetRoutingState::setSymAxis ( DbU::Unit axis ) { _axis = axis; } - inline bool NetRoutingState::isSelfSym () const { return ( (_symNet == NULL) and (isSymmetric()) ); } - inline bool NetRoutingState::isSymSlave () const { return ( (_symNet != NULL) and (!isSymMaster()) ); } + inline bool NetRoutingState::isSelfSym () const { return (_symNet == NULL) and (isSymmetric()); } + inline bool NetRoutingState::isSymSlave () const { return (_symNet != NULL) and (not isSymMaster()); } // ------------------------------------------------------------------- @@ -169,15 +172,16 @@ namespace Hurricane { static inline bool isSymHorizontal ( const Net* ); static inline bool isSymVertical ( const Net* ); static inline bool isSymMaster ( const Net* ); - static inline unsigned int getFlags ( const Net* ); + static inline bool isAnalog ( const Net* ); + static inline uint32_t getFlags ( const Net* ); static inline Net* getSymNet ( const Net* ); static inline DbU::Unit getSymAxis ( const Net* ); static inline void setSymNet ( const Net*, Net* ); static inline void setSymAxis ( const Net*, DbU::Unit ); - static inline void setFlags ( const Net*, unsigned int mask ); - static inline void unsetFlags ( const Net*, unsigned int mask ); + static inline void setFlags ( const Net*, uint32_t mask ); + static inline void unsetFlags ( const Net*, uint32_t mask ); static NetRoutingState* get ( const Net* ); - static NetRoutingState* create ( Net* ); + static NetRoutingState* create ( Net*, uint32_t flags=0 ); private: static const Net* _owner; static NetRoutingState* _cache; @@ -247,7 +251,14 @@ namespace Hurricane { } - inline unsigned int NetRoutingExtension::getFlags ( const Net* net ) + inline bool NetRoutingExtension::isAnalog ( const Net* net ) + { + NetRoutingState* state = get( net ); + return (state == NULL) ? false : state->isAnalog(); + } + + + inline uint32_t NetRoutingExtension::getFlags ( const Net* net ) { NetRoutingState* state = get( net ); return (state == NULL) ? 0 : state->getFlags(); @@ -268,7 +279,7 @@ namespace Hurricane { } - inline void NetRoutingExtension::setFlags ( const Net* net, unsigned int mask ) + inline void NetRoutingExtension::setFlags ( const Net* net, uint32_t mask ) { NetRoutingState* state = get( net ); if (state != NULL) state->setFlags( mask ); @@ -289,7 +300,7 @@ namespace Hurricane { } - inline void NetRoutingExtension::unsetFlags ( const Net* net, unsigned int mask ) + inline void NetRoutingExtension::unsetFlags ( const Net* net, uint32_t mask ) { NetRoutingState* state = get( net ); if (state != NULL) state->unsetFlags( mask ); diff --git a/hurricane/src/isobar/CMakeLists.txt b/hurricane/src/isobar/CMakeLists.txt index 70a2273d..16e22c7b 100644 --- a/hurricane/src/isobar/CMakeLists.txt +++ b/hurricane/src/isobar/CMakeLists.txt @@ -44,6 +44,8 @@ PyNetDirection.cpp PyNetCollection.cpp PyNetExternalComponents.cpp + PyNetRoutingState.cpp + PyNetRoutingProperty.cpp PyOccurrence.cpp PyOccurrenceCollection.cpp PyHook.cpp @@ -108,6 +110,8 @@ hurricane/isobar/PyNetDirection.h hurricane/isobar/PyNetCollection.h hurricane/isobar/PyNetExternalComponents.h + hurricane/isobar/PyNetRoutingState.h + hurricane/isobar/PyNetRoutingProperty.h hurricane/isobar/PyOccurrence.h hurricane/isobar/PyOccurrenceCollection.h hurricane/isobar/PyHook.h diff --git a/hurricane/src/isobar/PyHurricane.cpp b/hurricane/src/isobar/PyHurricane.cpp index 0a492e1a..3063e5a9 100644 --- a/hurricane/src/isobar/PyHurricane.cpp +++ b/hurricane/src/isobar/PyHurricane.cpp @@ -56,6 +56,8 @@ #include "hurricane/isobar/PyNetDirection.h" #include "hurricane/isobar/PyNetCollection.h" #include "hurricane/isobar/PyNetExternalComponents.h" +#include "hurricane/isobar/PyNetRoutingState.h" +#include "hurricane/isobar/PyNetRoutingProperty.h" #include "hurricane/isobar/PyHyperNet.h" #include "hurricane/isobar/PyHook.h" #include "hurricane/isobar/PyHookCollection.h" @@ -539,6 +541,8 @@ extern "C" { PyPlugCollection_LinkPyType (); PyNetCollection_LinkPyType (); PyNetExternalComponents_LinkPyType (); + PyNetRoutingState_LinkPyType (); + PyNetRoutingExtension_LinkPyType (); PyCellCollection_LinkPyType (); PyPinPlacementStatus_LinkPyType (); PyPinDirection_LinkPyType (); @@ -606,6 +610,8 @@ extern "C" { PYTYPE_READY ( NetDirection ) PYTYPE_READY ( NetCollection ) PYTYPE_READY ( NetCollectionLocator ) + PYTYPE_READY ( NetRoutingState ) + PYTYPE_READY ( NetRoutingExtension ) PYTYPE_READY ( CellCollection ) PYTYPE_READY ( CellCollectionLocator ) PYTYPE_READY ( PinPlacementStatus ) @@ -762,6 +768,10 @@ extern "C" { PyModule_AddObject ( module, "ViaLayer" , (PyObject*)&PyTypeViaLayer ); Py_INCREF ( &PyTypeNetExternalComponents ); PyModule_AddObject ( module, "NetExternalComponents", (PyObject*)&PyTypeNetExternalComponents ); + Py_INCREF ( &PyTypeNetRoutingState ); + PyModule_AddObject ( module, "NetRoutingState" , (PyObject*)&PyTypeNetRoutingState ); + Py_INCREF ( &PyTypeNetRoutingExtension ); + PyModule_AddObject ( module, "NetRoutingExtension" , (PyObject*)&PyTypeNetRoutingExtension ); Py_INCREF ( &PyTypeDebugSession ); PyModule_AddObject ( module, "DebugSession" , (PyObject*)&PyTypeDebugSession ); Py_INCREF ( &PyTypeUpdateSession ); @@ -813,6 +823,7 @@ extern "C" { PyPin_postModuleInit(); PyRoutingPad_postModuleInit(); PyNet_postModuleInit(); + PyNetRoutingState_postModuleInit(); PyInstance_postModuleInit(); PyQuery_postModuleInit(); diff --git a/hurricane/src/isobar/PyNet.cpp b/hurricane/src/isobar/PyNet.cpp index f08981c3..db7765af 100644 --- a/hurricane/src/isobar/PyNet.cpp +++ b/hurricane/src/isobar/PyNet.cpp @@ -46,20 +46,12 @@ extern "C" { Py_DECREF ( constant ); -// x=================================================================x +// +=================================================================+ // | "PyNet" Python Module Code Part | -// x=================================================================x +// +=================================================================+ #if defined(__PYTHON_MODULE__) - - // x-------------------------------------------------------------x - // | "PyNet" Local Functions | - // x-------------------------------------------------------------x - - - // --------------------------------------------------------------- - // Local Function : "PyInt_AsType ()" static Net::Type PyInt_AsType ( PyObject* object ) { switch ( PyAny_AsLong(object) ) { @@ -75,10 +67,6 @@ extern "C" { } - - // --------------------------------------------------------------- - // Local Function : "PyInt_AsDirection ()" - static Net::Direction PyInt_AsDirection ( PyObject* object ) { switch ( PyAny_AsLong(object) ) { @@ -93,9 +81,9 @@ extern "C" { } - // x-------------------------------------------------------------x + // +-------------------------------------------------------------+ // | "PyNet" Attribute Methods | - // x-------------------------------------------------------------x + // +-------------------------------------------------------------+ // Standart Accessors (Attributes). @@ -112,20 +100,15 @@ extern "C" { DirectGetBoolAttribute(PyNet_isSupply ,isSupply ,PyNet,Net) GetBoundStateAttribute(PyNet_IsPyBound ,PyNet,Net) + GetNameMethod(Net, net) + + // Standart modificators. + DirectSetUInt32Attribute(PyNet_setRoutingState,setRoutingState,PyNet,Net) // Standart destroy (Attribute). DBoDestroyAttribute(PyNet_destroy, PyNet) - // --------------------------------------------------------------- - // Attribute Method : "PyNet_getName ()" - - GetNameMethod(Net, net) - - - // --------------------------------------------------------------- - // Attribute Method : "PyNet_create ()" - static PyObject* PyNet_create ( PyObject*, PyObject *args ) { cdebug_log(20,0) << "PyNet_create()" << endl; @@ -146,9 +129,6 @@ extern "C" { } - // --------------------------------------------------------------- - // Attribute Method : "PyNet_getType ()" - static PyObject* PyNet_getType ( PyNet *self ) { cdebug_log(20,0) << "PyNet_getType ()" << endl; @@ -159,10 +139,6 @@ extern "C" { } - - // --------------------------------------------------------------- - // Attribute Method : "PyNet_getDirection ()" - static PyObject* PyNet_getDirection ( PyNet *self ) { cdebug_log(20,0) << "PyNet_getDirection ()" << endl; @@ -173,9 +149,6 @@ extern "C" { } - // --------------------------------------------------------------- - // Attribute Method : "PyNet_getPlugs()" - static PyObject* PyNet_getPlugs(PyNet *self) { cdebug_log(20,0) << "PyNet_getPlugs()" << endl; @@ -198,9 +171,6 @@ extern "C" { } - // --------------------------------------------------------------- - // Attribute Method : "PyNet_getSegments()" - static PyObject* PyNet_getSegments(PyNet *self) { cdebug_log(20,0) << "PyNet_getSegments()" << endl; @@ -223,9 +193,6 @@ extern "C" { } - // --------------------------------------------------------------- - // Attribute Method : "PyNet_getPins()" - static PyObject* PyNet_getPins(PyNet *self) { cdebug_log(20,0) << "PyNet_getPins()" << endl; @@ -248,9 +215,6 @@ extern "C" { } - // --------------------------------------------------------------- - // Attribute Method : "PyNet_getComponents()" - static PyObject* PyNet_getComponents(PyNet *self) { cdebug_log(20,0) << "PyNet_getComponents()" << endl; @@ -271,9 +235,6 @@ extern "C" { } - // --------------------------------------------------------------- - // Attribute Method : "PyNet_getExternalComponents()" - static PyObject* PyNet_getExternalComponents(PyNet *self) { cdebug_log(20,0) << "PyNet_getExternalComponents()" << endl; @@ -294,15 +255,9 @@ extern "C" { } - // --------------------------------------------------------------- - // Attribute Method : "PyNet_setName ()" - SetNameMethod(Net, net) - // --------------------------------------------------------------- - // Attribute Method : "PyNet_setGlobal ()" - static PyObject* PyNet_setGlobal ( PyNet *self, PyObject* args ) { cdebug_log(20,0) << "PyNet_setGlobal()" << endl; @@ -321,10 +276,6 @@ extern "C" { } - - // --------------------------------------------------------------- - // Attribute Method : "PyNet_setExternal ()" - static PyObject* PyNet_setExternal ( PyNet *self, PyObject* args ) { cdebug_log(20,0) << "PyNet_setExternal()" << endl; @@ -343,10 +294,6 @@ extern "C" { } - - // --------------------------------------------------------------- - // Attribute Method : "PyNet_setType ()" - static PyObject* PyNet_setType ( PyNet *self, PyObject* args ) { cdebug_log(20,0) << "PyNet_setType()" << endl; @@ -369,10 +316,6 @@ extern "C" { } - - // --------------------------------------------------------------- - // Attribute Method : "PyNet_setDirection ()" - static PyObject* PyNet_setDirection ( PyNet *self, PyObject* args ) { cdebug_log(20,0) << "PyNet_setDirection()" << endl; @@ -392,9 +335,6 @@ extern "C" { } - // --------------------------------------------------------------- - // Attribute Method : "PyNet_addAlias ()" - static PyObject* PyNet_addAlias ( PyNet *self, PyObject* args ) { cdebug_log(20,0) << "PyNet_addAlias()" << endl; @@ -416,9 +356,6 @@ extern "C" { } - // --------------------------------------------------------------- - // Attribute Method : "PyNet_removeAlias ()" - static PyObject* PyNet_removeAlias ( PyNet *self, PyObject* args ) { cdebug_log(20,0) << "PyNet_removeAlias()" << endl; @@ -440,9 +377,6 @@ extern "C" { } - // --------------------------------------------------------------- - // Attribute Method : "PyNet_setPosition ()" - static PyObject* PyNet_setPosition ( PyNet *self, PyObject* args ) { cdebug_log(20,0) << "PyNet_setPosition()" << endl; @@ -462,9 +396,6 @@ extern "C" { } - // --------------------------------------------------------------- - // Attribute Method : "PyNet_merge ()" - static PyObject* PyNet_merge ( PyNet *self, PyObject* args ) { cdebug_log(20,0) << "PyNet_merge()" << endl; @@ -482,9 +413,6 @@ extern "C" { } - // --------------------------------------------------------------- - // Attribute Method : "PyNet_merge ()" - static PyObject* PyNet_getClone ( PyNet *self, PyObject* args ) { cdebug_log(20,0) << "PyNet_getClone()" << endl; @@ -534,6 +462,7 @@ extern "C" { , { "setType" , (PyCFunction)PyNet_setType , METH_VARARGS, "set the type of the net." } , { "setDirection" , (PyCFunction)PyNet_setDirection , METH_VARARGS, "set the direction of the net." } , { "setPosition" , (PyCFunction)PyNet_setPosition , METH_VARARGS, "set the X,Y location of the net." } + , { "setRoutingState" , (PyCFunction)PyNet_setRoutingState , METH_VARARGS, "set the NetRoutingstate flag (proxy method)." } , { "addAlias" , (PyCFunction)PyNet_addAlias , METH_VARARGS, "Add an alias name to the net." } , { "removeAlias" , (PyCFunction)PyNet_removeAlias , METH_VARARGS, "Remove an alias name from the net." } , { "merge" , (PyCFunction)PyNet_merge , METH_VARARGS, "Merges the net to the net which keeps its characteristics (arity, global, external and direction)." } diff --git a/hurricane/src/isobar/PyNetRoutingProperty.cpp b/hurricane/src/isobar/PyNetRoutingProperty.cpp new file mode 100644 index 00000000..11d179ce --- /dev/null +++ b/hurricane/src/isobar/PyNetRoutingProperty.cpp @@ -0,0 +1,240 @@ +// -*- C++ -*- +// +// This file is part of the Coriolis Software. +// Copyright (c) UPMC 2017-2017, All Rights Reserved +// +// +-----------------------------------------------------------------+ +// | C O R I O L I S | +// | I s o b a r - Hurricane / Python Interface | +// | | +// | Author : Jean-Paul CHAPUT | +// | E-mail : Jean-Paul.Chaput@lip6.fr | +// | =============================================================== | +// | C++ Module : "./PyNetRoutingProperty.cpp" | +// +-----------------------------------------------------------------+ + + +#include "hurricane/isobar/PyNetRoutingProperty.h" +#include "hurricane/isobar/PyNetRoutingState.h" +#include "hurricane/isobar/PyNet.h" + + +namespace Isobar { + + using std::cerr; + using std::endl; + using std::hex; + using std::ostringstream; + using Hurricane::tab; + using Hurricane::Error; + using Hurricane::Warning; + + +extern "C" { + + +#define METHOD_HEAD(function) GENERIC_METHOD_HEAD(NetRoutingExtension,extension,function) + + +// +=================================================================+ +// | "PyNetRoutingExtension" Python Module Code Part | +// +=================================================================+ + +#if defined(__PYTHON_MODULE__) + +# define ExtensionGetBoolFunction(FUNC_NAME,SELF_TYPE) \ + static PyObject* Py##SELF_TYPE##_##FUNC_NAME ( PyObject*, PyObject* args ) \ + { \ + cdebug_log(20,0) << "Py"#FUNC_NAME"()" << endl; \ + bool flag = false; \ + HTRY \ + PyObject* arg0; \ + if (not ParseOneArg(#SELF_TYPE"."#FUNC_NAME"()", args, NET_ARG, &arg0)) return NULL; \ + flag = SELF_TYPE::FUNC_NAME( PYNET_O(arg0) ); \ + HCATCH \ + if (flag) Py_RETURN_TRUE; \ + Py_RETURN_FALSE; \ + } + +# define ExtensionGetUIntFunction(FUNC_NAME,SELF_TYPE) \ + static PyObject* Py##SELF_TYPE##_##FUNC_NAME ( PyObject*, PyObject* args ) \ + { \ + cdebug_log(20,0) << "Py"#FUNC_NAME"()" << endl; \ + uint32_t value = 0; \ + HTRY \ + PyObject* arg0; \ + if (not ParseOneArg(#SELF_TYPE"."#FUNC_NAME"()", args, NET_ARG, &arg0)) return NULL; \ + value = SELF_TYPE::FUNC_NAME( PYNET_O(arg0) ); \ + HCATCH \ + return Py_BuildValue( "I", value ); \ + } + +# define ExtensionGetLongFunction(FUNC_NAME,SELF_TYPE) \ + static PyObject* Py##SELF_TYPE##_##FUNC_NAME ( PyObject*, PyObject* args ) \ + { \ + cdebug_log(20,0) << "Py"#FUNC_NAME"()" << endl; \ + long value = 0; \ + HTRY \ + PyObject* arg0; \ + if (not ParseOneArg(#SELF_TYPE"."#FUNC_NAME"()", args, NET_ARG, &arg0)) return NULL; \ + value = SELF_TYPE::FUNC_NAME( PYNET_O(arg0) ); \ + HCATCH \ + return Py_BuildValue("L",value); \ + } + +# define ExtensionSetUIntFunction(FUNC_NAME,SELF_TYPE) \ + static PyObject* Py##SELF_TYPE##_##FUNC_NAME ( PyObject*, PyObject* args ) \ + { \ + cdebug_log(20,0) << "Py"#FUNC_NAME"()" << endl; \ + HTRY \ + PyObject* arg0 = NULL; \ + PyObject* pyNet = NULL; \ + if (not PyArg_ParseTuple(args,"OO:"#SELF_TYPE"."#FUNC_NAME"()", &pyNet, &arg0)) return NULL; \ + if (not IsPyNet(pyNet)) return NULL; \ + SELF_TYPE::FUNC_NAME( PYNET_O(pyNet), Isobar::PyAny_AsUInt32(arg0) ); \ + HCATCH \ + Py_RETURN_NONE; \ + } + +# define ExtensionSetLongFunction(FUNC_NAME,SELF_TYPE) \ + static PyObject* Py##SELF_TYPE##_##FUNC_NAME ( PyObject*, PyObject* args ) \ + { \ + cdebug_log(20,0) << "Py"#FUNC_NAME"()" << endl; \ + HTRY \ + PyObject* arg0 = NULL; \ + PyObject* pyNet = NULL; \ + if (not PyArg_ParseTuple(args,"OO:"#SELF_TYPE"."#FUNC_NAME"()", &pyNet, &arg0)) return NULL; \ + if (not IsPyNet(pyNet)) return NULL; \ + SELF_TYPE::FUNC_NAME( PYNET_O(pyNet), Isobar::PyAny_AsLong(arg0) ); \ + HCATCH \ + Py_RETURN_NONE; \ + } + + + static void PyNetRoutingExtension_DeAlloc ( PyNetRoutingExtension* self ) + { + cdebug_log(20,0) << "PySingletonObject_DeAlloc(" << hex << self << ")" << endl; + } + + +//ExtensionGetBoolFunction(isExcluded ,NetRoutingExtension) + ExtensionGetBoolFunction(isFixed ,NetRoutingExtension) + ExtensionGetBoolFunction(isUnconnected ,NetRoutingExtension) + ExtensionGetBoolFunction(isManualGlobalRoute ,NetRoutingExtension) + ExtensionGetBoolFunction(isAutomaticGlobalRoute,NetRoutingExtension) + ExtensionGetBoolFunction(isMixedPreRoute ,NetRoutingExtension) + ExtensionGetBoolFunction(isSymmetric ,NetRoutingExtension) + ExtensionGetBoolFunction(isSymHorizontal ,NetRoutingExtension) + ExtensionGetBoolFunction(isSymVertical ,NetRoutingExtension) + ExtensionGetBoolFunction(isSymMaster ,NetRoutingExtension) +//ExtensionGetBoolFunction(isSymSlave ,NetRoutingExtension) +//ExtensionGetBoolFunction(isSelfSym ,NetRoutingExtension) + ExtensionGetBoolFunction(isAnalog ,NetRoutingExtension) + ExtensionGetUIntFunction(getFlags ,NetRoutingExtension) + ExtensionGetLongFunction(getSymAxis ,NetRoutingExtension) + + ExtensionSetUIntFunction(setFlags ,NetRoutingExtension) + ExtensionSetUIntFunction(unsetFlags ,NetRoutingExtension) + ExtensionSetLongFunction(setSymAxis ,NetRoutingExtension) + + + static PyObject* PyNetRoutingExtension_getSymNet ( PyObject*, PyObject* args ) + { + cdebug_log(20,0) << "PyNetRoutingExtension_getSymNet()" << endl; + Net* symNet = NULL; + HTRY + PyObject* arg0; + if (not ParseOneArg("NetRoutingExtension.getSymNet()", args, NET_ARG, &arg0)) return NULL; + symNet = NetRoutingExtension::getSymNet( PYNET_O(arg0) ); + HCATCH + return PyNet_Link(symNet); + } + + + static PyObject* PyNetRoutingExtension_get ( PyObject*, PyObject* args ) + { + cdebug_log(20,0) << "PyNetRoutingExtension_get()" << endl; + + NetRoutingState* state = NULL; + PyObject* arg0 = NULL; + HTRY + if (not ParseOneArg("NetRoutingExtension.get", args, ":ent", &arg0)) return NULL; + state = NetRoutingExtension::get( PYNET_O(arg0) ); + HCATCH + return PyNetRoutingState_Link( state ); + } + + + static PyObject* PyNetRoutingExtension_create ( PyObject*, PyObject* args ) + { + cdebug_log(20,0) << "PyNetRoutingExtension_create()" << endl; + + NetRoutingState* state = NULL; + HTRY + PyObject* pyNet = NULL; + PyObject* pyFlags = NULL; + __cs.init( "NetRoutingExtension.create" ); + + if (not PyArg_ParseTuple(args,"O&|O&:NetRoutingExtension.create", + Converter, &pyNet, + Converter, &pyFlags)) + return NULL; + + if (__cs.getObjectIds() == ":ent" ) { state = NetRoutingExtension::create( PYNET_O(pyNet) ); } + else if (__cs.getObjectIds() == ":ent:int") { state = NetRoutingExtension::create( PYNET_O(pyNet), PyAny_AsLong(pyFlags) ); } + else { + PyErr_SetString( ConstructorError, "invalid/bad number of parameters for NetRoutingExtension.create()." ); + return NULL; + } + HCATCH + return PyNetRoutingState_Link( state ); + } + + + PyMethodDef PyNetRoutingExtension_Methods[] = + { { "isFixed" , (PyCFunction)PyNetRoutingExtension_isFixed , METH_NOARGS |METH_CLASS , "To be documented." } + , { "isUnconnected" , (PyCFunction)PyNetRoutingExtension_isUnconnected , METH_NOARGS |METH_CLASS , "To be documented." } + , { "isManualGlobalRoute" , (PyCFunction)PyNetRoutingExtension_isManualGlobalRoute , METH_NOARGS |METH_CLASS , "To be documented." } + , { "isAutomaticGlobalRoute", (PyCFunction)PyNetRoutingExtension_isAutomaticGlobalRoute, METH_NOARGS |METH_CLASS , "To be documented." } + , { "isMixedPreRoute" , (PyCFunction)PyNetRoutingExtension_isMixedPreRoute , METH_NOARGS |METH_CLASS , "To be documented." } + , { "isSymmetric" , (PyCFunction)PyNetRoutingExtension_isSymmetric , METH_NOARGS |METH_CLASS , "To be documented." } + , { "isSymHorizontal" , (PyCFunction)PyNetRoutingExtension_isSymHorizontal , METH_NOARGS |METH_CLASS , "To be documented." } + , { "isSymVertical" , (PyCFunction)PyNetRoutingExtension_isSymVertical , METH_NOARGS |METH_CLASS , "To be documented." } + , { "isSymMaster" , (PyCFunction)PyNetRoutingExtension_isSymMaster , METH_NOARGS |METH_CLASS , "To be documented." } + //, { "isSymSlave" , (PyCFunction)PyNetRoutingExtension_isSymSlave , METH_NOARGS |METH_CLASS , "To be documented." } + //, { "isSelfSym" , (PyCFunction)PyNetRoutingExtension_isSelfSym , METH_NOARGS |METH_CLASS , "To be documented." } + , { "isAnalog" , (PyCFunction)PyNetRoutingExtension_isAnalog , METH_NOARGS |METH_CLASS , "To be documented." } + , { "getFlags" , (PyCFunction)PyNetRoutingExtension_getFlags , METH_NOARGS |METH_CLASS , "To be documented." } + , { "getSymAxis" , (PyCFunction)PyNetRoutingExtension_getSymAxis , METH_NOARGS |METH_CLASS , "To be documented." } + , { "setFlags" , (PyCFunction)PyNetRoutingExtension_setFlags , METH_VARARGS|METH_CLASS , "To be documented." } + , { "unsetFlags" , (PyCFunction)PyNetRoutingExtension_unsetFlags , METH_VARARGS|METH_CLASS , "To be documented." } + , { "setSymAxis" , (PyCFunction)PyNetRoutingExtension_setSymAxis , METH_VARARGS|METH_CLASS , "To be documented." } + , { "getSymNet" , (PyCFunction)PyNetRoutingExtension_getSymNet , METH_VARARGS|METH_CLASS , "To be documented." } + , { "get" , (PyCFunction)PyNetRoutingExtension_get , METH_VARARGS|METH_CLASS + , "Returns the NetRoutingState, or None has not been created yet." } + , { "create" , (PyCFunction)PyNetRoutingExtension_create , METH_VARARGS|METH_CLASS + , "Returns the NetRoutingState, create it if needs be." } + , {NULL, NULL, 0, NULL} /* sentinel */ + }; + + + PyTypeObjectLinkPyTypeWithoutObject(NetRoutingExtension,NetRoutingExtension) + + +#else // End of Python Module Code Part. + + +// +=================================================================+ +// | "PyNetRoutingExtension" Shared Library Code Part | +// +=================================================================+ + + // Link/Creation Method. + PyTypeObjectDefinitions(NetRoutingExtension) + + +#endif // Shared Library Code Part. + +} // extern "C". + +} // Isobar namespace. + diff --git a/hurricane/src/isobar/PyNetRoutingState.cpp b/hurricane/src/isobar/PyNetRoutingState.cpp new file mode 100644 index 00000000..5cda5a74 --- /dev/null +++ b/hurricane/src/isobar/PyNetRoutingState.cpp @@ -0,0 +1,159 @@ +// -*- C++ -*- +// +// This file is part of the Coriolis Software. +// Copyright (c) UPMC 2017-2017, All Rights Reserved +// +// +-----------------------------------------------------------------+ +// | C O R I O L I S | +// | I s o b a r - Hurricane / Python Interface | +// | | +// | Author : Jean-Paul CHAPUT | +// | E-mail : Jean-Paul.Chaput@lip6.fr | +// | =============================================================== | +// | C++ Module : "./PyNetRoutingState.cpp" | +// +-----------------------------------------------------------------+ + + +#include "hurricane/isobar/PyNetRoutingState.h" +#include "hurricane/isobar/PyNet.h" + + +namespace Isobar { + + using std::cerr; + using std::endl; + using std::hex; + using std::ostringstream; + using Hurricane::tab; + using Hurricane::Error; + using Hurricane::Warning; + + +extern "C" { + + +#define METHOD_HEAD(function) GENERIC_METHOD_HEAD(NetRoutingState,state,function) + + +// +=================================================================+ +// | "PyNetRoutingState" Python Module Code Part | +// +=================================================================+ + +#if defined(__PYTHON_MODULE__) + + + static PyObject* PyNetRoutingState_getNet ( PyNetRoutingState *self ) + { + cdebug_log(20,0) << "PyNetRoutingState_getNet()" << endl; + Net* net = NULL; + HTRY + METHOD_HEAD( "NetRoutingState.getNet()" ) + net = state->getNet(); + HCATCH + return PyNet_Link( net ); + } + + + static PyObject* PyNetRoutingState_getSymNet ( PyNetRoutingState *self ) + { + cdebug_log(20,0) << "PyNetRoutingState_getSymNet()" << endl; + Net* net = NULL; + HTRY + METHOD_HEAD( "NetRoutingState.getSymNet()" ) + net = state->getSymNet(); + HCATCH + return PyNet_Link( net ); + } + + + + // Standart Accessors (Attributes). + DirectGetBoolAttribute(PyNetRoutingState_isExcluded ,isExcluded ,PyNetRoutingState,NetRoutingState) + DirectGetBoolAttribute(PyNetRoutingState_isFixed ,isFixed ,PyNetRoutingState,NetRoutingState) + DirectGetBoolAttribute(PyNetRoutingState_isUnconnected ,isUnconnected ,PyNetRoutingState,NetRoutingState) + DirectGetBoolAttribute(PyNetRoutingState_isManualGlobalRoute ,isManualGlobalRoute ,PyNetRoutingState,NetRoutingState) + DirectGetBoolAttribute(PyNetRoutingState_isAutomaticGlobalRoute,isAutomaticGlobalRoute,PyNetRoutingState,NetRoutingState) + DirectGetBoolAttribute(PyNetRoutingState_isMixedPreRoute ,isMixedPreRoute ,PyNetRoutingState,NetRoutingState) + DirectGetBoolAttribute(PyNetRoutingState_isSymmetric ,isSymmetric ,PyNetRoutingState,NetRoutingState) + DirectGetBoolAttribute(PyNetRoutingState_isSymHorizontal ,isSymHorizontal ,PyNetRoutingState,NetRoutingState) + DirectGetBoolAttribute(PyNetRoutingState_isSymVertical ,isSymVertical ,PyNetRoutingState,NetRoutingState) + DirectGetBoolAttribute(PyNetRoutingState_isSymMaster ,isSymMaster ,PyNetRoutingState,NetRoutingState) + DirectGetBoolAttribute(PyNetRoutingState_isSymSlave ,isSymSlave ,PyNetRoutingState,NetRoutingState) + DirectGetBoolAttribute(PyNetRoutingState_isSelfSym ,isSelfSym ,PyNetRoutingState,NetRoutingState) + DirectGetBoolAttribute(PyNetRoutingState_isAnalog ,isAnalog ,PyNetRoutingState,NetRoutingState) + DirectGetUIntAttribute(PyNetRoutingState_getFlags ,getFlags ,PyNetRoutingState,NetRoutingState) + DirectGetLongAttribute(PyNetRoutingState_getSymAxis ,getSymAxis ,PyNetRoutingState,NetRoutingState) + + // Standart Mutators (Attributes). + DirectSetUInt32Attribute(PyNetRoutingState_setFlags ,setFlags ,PyNetRoutingState,NetRoutingState) + DirectSetUInt32Attribute(PyNetRoutingState_unsetFlags,unsetFlags,PyNetRoutingState,NetRoutingState) + DirectSetLongAttribute (PyNetRoutingState_setSymAxis,setSymAxis,PyNetRoutingState,NetRoutingState) + + + PyMethodDef PyNetRoutingState_Methods[] = + { { "isExcluded" , (PyCFunction)PyNetRoutingState_isExcluded , METH_NOARGS , "To be documented." } + , { "isFixed" , (PyCFunction)PyNetRoutingState_isFixed , METH_NOARGS , "To be documented." } + , { "isUnconnected" , (PyCFunction)PyNetRoutingState_isUnconnected , METH_NOARGS , "To be documented." } + , { "isManualGlobalRoute" , (PyCFunction)PyNetRoutingState_isManualGlobalRoute , METH_NOARGS , "To be documented." } + , { "isAutomaticGlobalRoute", (PyCFunction)PyNetRoutingState_isAutomaticGlobalRoute, METH_NOARGS , "To be documented." } + , { "isMixedPreRoute" , (PyCFunction)PyNetRoutingState_isMixedPreRoute , METH_NOARGS , "To be documented." } + , { "isSymmetric" , (PyCFunction)PyNetRoutingState_isSymmetric , METH_NOARGS , "To be documented." } + , { "isSymHorizontal" , (PyCFunction)PyNetRoutingState_isSymHorizontal , METH_NOARGS , "To be documented." } + , { "isSymVertical" , (PyCFunction)PyNetRoutingState_isSymVertical , METH_NOARGS , "To be documented." } + , { "isSymMaster" , (PyCFunction)PyNetRoutingState_isSymMaster , METH_NOARGS , "To be documented." } + , { "isSymSlave" , (PyCFunction)PyNetRoutingState_isSymSlave , METH_NOARGS , "To be documented." } + , { "isSelfSym" , (PyCFunction)PyNetRoutingState_isSelfSym , METH_NOARGS , "To be documented." } + , { "isAnalog" , (PyCFunction)PyNetRoutingState_isAnalog , METH_NOARGS , "To be documented." } + , { "getFlags" , (PyCFunction)PyNetRoutingState_getFlags , METH_NOARGS , "To be documented." } + , { "getSymAxis" , (PyCFunction)PyNetRoutingState_getSymAxis , METH_NOARGS , "To be documented." } + , { "setFlags" , (PyCFunction)PyNetRoutingState_setFlags , METH_VARARGS , "To be documented." } + , { "unsetFlags" , (PyCFunction)PyNetRoutingState_unsetFlags , METH_VARARGS , "To be documented." } + , { "setSymAxis" , (PyCFunction)PyNetRoutingState_setSymAxis , METH_VARARGS , "To be documented." } + , { "getNet" , (PyCFunction)PyNetRoutingState_getNet , METH_VARARGS , "To be documented." } + , { "getSymNet" , (PyCFunction)PyNetRoutingState_getSymNet , METH_VARARGS , "To be documented." } + , {NULL, NULL, 0, NULL} /* sentinel */ + }; + + PythonOnlyDeleteMethod(NetRoutingState) + PyTypeObjectLinkPyType(NetRoutingState) + + +#else // End of Python Module Code Part. + + +// +=================================================================+ +// | "PyNetRoutingState" Shared Library Code Part | +// +=================================================================+ + + // Link/Creation Method. + PyTypeObjectDefinitions(NetRoutingState) + + + // Link/Creation Method. + LinkCreateMethod(NetRoutingState) + + + extern void PyNetRoutingState_postModuleInit () + { + PyObject* constant; + + LoadObjectConstant(PyTypeNetRoutingState.tp_dict,NetRoutingState::Excluded ,"Excluded" ); + LoadObjectConstant(PyTypeNetRoutingState.tp_dict,NetRoutingState::Fixed ,"Fixed" ); + LoadObjectConstant(PyTypeNetRoutingState.tp_dict,NetRoutingState::Unconnected ,"Unconnected" ); + LoadObjectConstant(PyTypeNetRoutingState.tp_dict,NetRoutingState::ManualGlobalRoute ,"ManualGlobalRoute" ); + LoadObjectConstant(PyTypeNetRoutingState.tp_dict,NetRoutingState::AutomaticGlobalRoute,"AutomaticGlobalRoute"); + LoadObjectConstant(PyTypeNetRoutingState.tp_dict,NetRoutingState::MixedPreRoute ,"MixedPreRoute" ); + LoadObjectConstant(PyTypeNetRoutingState.tp_dict,NetRoutingState::Horizontal ,"Horizontal" ); + LoadObjectConstant(PyTypeNetRoutingState.tp_dict,NetRoutingState::Vertical ,"Vertical" ); + LoadObjectConstant(PyTypeNetRoutingState.tp_dict,NetRoutingState::Symmetric ,"Symmetric" ); + LoadObjectConstant(PyTypeNetRoutingState.tp_dict,NetRoutingState::SymmetricMaster ,"SymmetricMaster" ); + LoadObjectConstant(PyTypeNetRoutingState.tp_dict,NetRoutingState::Analog ,"Analog" ); + } + + +#endif // Shared Library Code Part. + +} // extern "C". + +} // Isobar namespace. + diff --git a/hurricane/src/isobar/hurricane/isobar/PyHurricane.h b/hurricane/src/isobar/hurricane/isobar/PyHurricane.h index aa1e266c..10ac47b4 100644 --- a/hurricane/src/isobar/hurricane/isobar/PyHurricane.h +++ b/hurricane/src/isobar/hurricane/isobar/PyHurricane.h @@ -119,6 +119,15 @@ namespace Isobar { } + inline uint32_t PyAny_AsUInt32 ( PyObject* object ) + { + int64_t value = 0; + if (PyObject_IsInstance(object,(PyObject*)&PyInt_Type )) value = PyInt_AsLong ( object ); + else if (PyObject_IsInstance(object,(PyObject*)&PyLong_Type)) value = PyLong_AsLong( object ); + return (uint32_t)value; + } + + template< typename T = DbU::Unit, typename enable_if< is_same::value, T >::type = 0 > inline T PyAny_AsLong ( PyObject* object ) { @@ -609,15 +618,33 @@ extern "C" { \ HTRY \ PyObject* arg0; \ - if ( ! PyArg_ParseTuple ( args, "O:" #SELF_TYPE"."#FUNC_NAME"()", &arg0 ) ) \ + if (not PyArg_ParseTuple ( args, "O:" #SELF_TYPE"."#FUNC_NAME"()", &arg0 ) ) \ return ( NULL ); \ - cobject->FUNC_NAME ( Isobar::PyAny_AsInt(arg0) ); \ + cobject->FUNC_NAME ( Isobar::PyAny_AsInt(arg0) ); \ HCATCH \ \ Py_RETURN_NONE; \ } +// ------------------------------------------------------------------- +// Attribute Method Macro For uint32_t. + +#define DirectSetUInt32Attribute(PY_FUNC_NAME,FUNC_NAME,PY_SELF_TYPE,SELF_TYPE) \ + static PyObject* PY_FUNC_NAME ( PY_SELF_TYPE *self, PyObject* args ) \ + { \ + GENERIC_METHOD_HEAD(SELF_TYPE,cobject,#FUNC_NAME"()") \ + \ + HTRY \ + PyObject* arg0; \ + if (not PyArg_ParseTuple ( args, "O:" #SELF_TYPE"."#FUNC_NAME"()", &arg0 ) ) \ + return ( NULL ); \ + cobject->FUNC_NAME ( Isobar::PyAny_AsUInt32(arg0) ); \ + HCATCH \ + \ + Py_RETURN_NONE; \ + } + // ------------------------------------------------------------------- // Attribute Method Macro For Long. diff --git a/hurricane/src/isobar/hurricane/isobar/PyNetRoutingProperty.h b/hurricane/src/isobar/hurricane/isobar/PyNetRoutingProperty.h new file mode 100644 index 00000000..9950f814 --- /dev/null +++ b/hurricane/src/isobar/hurricane/isobar/PyNetRoutingProperty.h @@ -0,0 +1,59 @@ +// -*- C++ -*- +// +// This file is part of the Coriolis Software. +// Copyright (c) UPMC 2017-2017, All Rights Reserved +// +// +-----------------------------------------------------------------+ +// | C O R I O L I S | +// | I s o b a r - Hurricane / Python Interface | +// | | +// | Author : Jean-Paul CHAPUT | +// | E-mail : Jean-Paul.Chaput@lip6.fr | +// | =============================================================== | +// | C++ Header : "./hurricane/isobar/PyNetRoutingProperty.h" | +// +-----------------------------------------------------------------+ + + +#ifndef PY_NET_ROUTING_PROPERTY_H +#define PY_NET_ROUTING_PROPERTY_H + + +#include "hurricane/isobar/PyHurricane.h" +#include "hurricane/NetRoutingProperty.h" + + +namespace Isobar { + + extern "C" { + + +// ------------------------------------------------------------------- +// Python Object : "PyNetRoutingExtension". + + typedef struct { + PyObject_HEAD + Hurricane::NetRoutingExtension* _object; + } PyNetRoutingExtension; + + +// ------------------------------------------------------------------- +// Functions & Types exported to "PyHurricane.ccp". + + extern PyTypeObject PyTypeNetRoutingExtension; + extern PyMethodDef PyNetRoutingExtension_Methods[]; + + extern PyObject* PyNetRoutingExtension_Link ( Hurricane::NetRoutingExtension* ); + extern void PyNetRoutingExtension_LinkPyType (); + extern void PyNetRoutingExtension_postModuleInit (); + + +# define IsPyNetRoutingExtension(v) ( (v)->ob_type == &PyTypeNetRoutingExtension ) +# define PYNETROUTINGEXTENSION(v) ( (PyNetRoutingExtension*)(v) ) +# define PYNETROUTINGEXTENSION_O(v) ( PYNETROUTINGEXTENSION(v)->_object ) + + + } // extern "C". + +} // Isobar namespace. + +#endif // PY_NET_ROUTING_PROPERTY_H diff --git a/hurricane/src/isobar/hurricane/isobar/PyNetRoutingState.h b/hurricane/src/isobar/hurricane/isobar/PyNetRoutingState.h new file mode 100644 index 00000000..2ce43b34 --- /dev/null +++ b/hurricane/src/isobar/hurricane/isobar/PyNetRoutingState.h @@ -0,0 +1,59 @@ +// -*- C++ -*- +// +// This file is part of the Coriolis Software. +// Copyright (c) UPMC 2017-2017, All Rights Reserved +// +// +-----------------------------------------------------------------+ +// | C O R I O L I S | +// | I s o b a r - Hurricane / Python Interface | +// | | +// | Author : Jean-Paul CHAPUT | +// | E-mail : Jean-Paul.Chaput@lip6.fr | +// | =============================================================== | +// | C++ Header : "./hurricane/isobar/PyNetRoutingState.h" | +// +-----------------------------------------------------------------+ + + +#ifndef PY_NET_ROUTING_STATE_H +#define PY_NET_ROUTING_STATE_H + + +#include "hurricane/isobar/PyHurricane.h" +#include "hurricane/NetRoutingProperty.h" + + +namespace Isobar { + + extern "C" { + + +// ------------------------------------------------------------------- +// Python Object : "PyNetRoutingState". + + typedef struct { + PyObject_HEAD + Hurricane::NetRoutingState* _object; + } PyNetRoutingState; + + +// ------------------------------------------------------------------- +// Functions & Types exported to "PyHurricane.ccp". + + extern PyTypeObject PyTypeNetRoutingState; + extern PyMethodDef PyNetRoutingState_Methods[]; + + extern PyObject* PyNetRoutingState_Link ( Hurricane::NetRoutingState* ); + extern void PyNetRoutingState_LinkPyType (); + extern void PyNetRoutingState_postModuleInit (); + + +# define IsPyNetRoutingState(v) ( (v)->ob_type == &PyTypeNetRoutingState ) +# define PYNETROUTINGSTATE(v) ( (PyNetRoutingState*)(v) ) +# define PYNETROUTINGSTATE_O(v) ( PYNETROUTINGSTATE(v)->_object ) + + + } // extern "C". + +} // Isobar namespace. + +#endif // PY_NET_ROUTING_STATE_H diff --git a/katana/src/Constants.cpp b/katana/src/Constants.cpp index 13e8e283..f968d204 100644 --- a/katana/src/Constants.cpp +++ b/katana/src/Constants.cpp @@ -21,18 +21,18 @@ namespace Katana { - const uint64_t Flags::AllowDoglegReuse = (1 << 20); - const uint64_t Flags::DataSelf = (1 << 21); - const uint64_t Flags::Nearest = (1 << 22); - const uint64_t Flags::Force = (1 << 23); - const uint64_t Flags::ResetCount = (1 << 24); - const uint64_t Flags::WithConstraints = (1 << 25); - const uint64_t Flags::MoveToLeft = (1 << 26); - const uint64_t Flags::MoveToRight = (1 << 27); - const uint64_t Flags::LoadingStage = (1 << 28); - const uint64_t Flags::SlowMotion = (1 << 29); - const uint64_t Flags::PreRoutedStage = (1 << 30); - const uint64_t Flags::SymmetricStage = (1 << 31); + const Hurricane::BaseFlags Flags::AllowDoglegReuse = (1 << 20); + const Hurricane::BaseFlags Flags::DataSelf = (1 << 21); + const Hurricane::BaseFlags Flags::Nearest = (1 << 22); + const Hurricane::BaseFlags Flags::Force = (1 << 23); + const Hurricane::BaseFlags Flags::ResetCount = (1 << 24); + const Hurricane::BaseFlags Flags::WithConstraints = (1 << 25); + const Hurricane::BaseFlags Flags::MoveToLeft = (1 << 26); + const Hurricane::BaseFlags Flags::MoveToRight = (1 << 27); + const Hurricane::BaseFlags Flags::LoadingStage = (1 << 28); + const Hurricane::BaseFlags Flags::SlowMotion = (1 << 29); + const Hurricane::BaseFlags Flags::PreRoutedStage = (1 << 30); + const Hurricane::BaseFlags Flags::SymmetricStage = (1 << 31); } // Anabatic namespace. diff --git a/katana/src/KatanaEngine.cpp b/katana/src/KatanaEngine.cpp index b835a74a..1bf2ed0e 100644 --- a/katana/src/KatanaEngine.cpp +++ b/katana/src/KatanaEngine.cpp @@ -212,7 +212,7 @@ namespace Katana { Super::chipPrep(); - setupGlobalGraph( Flags::NoFlags ); + setupGlobalGraph( 0 ); setupRoutingPlanes(); setupSpecialNets(); setupPreRouteds(); diff --git a/katana/src/Manipulator.cpp b/katana/src/Manipulator.cpp index ade9adf7..3db1b0a2 100644 --- a/katana/src/Manipulator.cpp +++ b/katana/src/Manipulator.cpp @@ -1087,8 +1087,8 @@ namespace Katana { Flags kflags = Flags::WithNeighbors; //kflags |= (flags & AllowLocalMoveUp ) ? Flags::AutoSegment::AllowLocal : 0; - kflags |= (flags & AllowTerminalMoveUp) ? Flags::AllowTerminal : 0; - kflags |= (flags & IgnoreContacts ) ? Flags::IgnoreContacts : 0; + kflags |= (flags & AllowTerminalMoveUp) ? Flags::AllowTerminal : Flags::NoFlags; + kflags |= (flags & IgnoreContacts ) ? Flags::IgnoreContacts : Flags::NoFlags; if (_segment->isFixed()) return false; if (not (flags & AllowLocalMoveUp)) { diff --git a/katana/src/PyKatanaFlags.cpp b/katana/src/PyKatanaFlags.cpp index 0de7f5a7..658472da 100644 --- a/katana/src/PyKatanaFlags.cpp +++ b/katana/src/PyKatanaFlags.cpp @@ -92,10 +92,10 @@ extern "C" { { PyObject* constant; - LoadObjectConstant(PyTypeKatanaFlags.tp_dict,Katana::Flags::NoFlags ,"NoFlags" ); - LoadObjectConstant(PyTypeKatanaFlags.tp_dict,Katana::Flags::SlowMotion ,"SlowMotion" ); - LoadObjectConstant(PyTypeKatanaFlags.tp_dict,Katana::Flags::PreRoutedStage,"PreRoutedStage"); - LoadObjectConstant(PyTypeKatanaFlags.tp_dict,Katana::Flags::SymmetricStage,"SymmetricStage"); + LoadObjectConstant(PyTypeKatanaFlags.tp_dict,(uint64_t)Katana::Flags::NoFlags ,"NoFlags" ); + LoadObjectConstant(PyTypeKatanaFlags.tp_dict,(uint64_t)Katana::Flags::SlowMotion ,"SlowMotion" ); + LoadObjectConstant(PyTypeKatanaFlags.tp_dict,(uint64_t)Katana::Flags::PreRoutedStage,"PreRoutedStage"); + LoadObjectConstant(PyTypeKatanaFlags.tp_dict,(uint64_t)Katana::Flags::SymmetricStage,"SymmetricStage"); } diff --git a/katana/src/RoutingEvent.cpp b/katana/src/RoutingEvent.cpp index fb3a9efe..2df4a67a 100644 --- a/katana/src/RoutingEvent.cpp +++ b/katana/src/RoutingEvent.cpp @@ -53,6 +53,7 @@ namespace Katana { using Hurricane::DebugSession; using Hurricane::Bug; using Hurricane::Error; + using Hurricane::BaseFlags; using Hurricane::ForEachIterator; using Hurricane::Net; using Hurricane::Layer; @@ -91,8 +92,8 @@ namespace Katana { if (lhs._length > rhs._length) return false; if (lhs._length < rhs._length) return true; - if ((lhs._segFlags & Flags::Horizontal) xor (rhs._segFlags & Flags::Horizontal)) - return (rhs._segFlags & Flags::Horizontal); + if ((lhs._segFlags & Anabatic::SegHorizontal) xor (rhs._segFlags & Anabatic::SegHorizontal)) + return (rhs._segFlags & Anabatic::SegHorizontal); if (lhs._axis > rhs._axis) return true; if (lhs._axis < rhs._axis) return false; diff --git a/katana/src/katana/Constants.h b/katana/src/katana/Constants.h index b28e5cd2..016699aa 100644 --- a/katana/src/katana/Constants.h +++ b/katana/src/katana/Constants.h @@ -26,18 +26,18 @@ namespace Katana { public: typedef Anabatic::Flags Super; public: - static const uint64_t AllowDoglegReuse; - static const uint64_t DataSelf; - static const uint64_t Nearest; - static const uint64_t Force; - static const uint64_t ResetCount; - static const uint64_t WithConstraints; - static const uint64_t MoveToLeft; - static const uint64_t MoveToRight; - static const uint64_t LoadingStage; - static const uint64_t SlowMotion; - static const uint64_t PreRoutedStage; - static const uint64_t SymmetricStage; + static const Hurricane::BaseFlags AllowDoglegReuse; + static const Hurricane::BaseFlags DataSelf; + static const Hurricane::BaseFlags Nearest; + static const Hurricane::BaseFlags Force; + static const Hurricane::BaseFlags ResetCount; + static const Hurricane::BaseFlags WithConstraints; + static const Hurricane::BaseFlags MoveToLeft; + static const Hurricane::BaseFlags MoveToRight; + static const Hurricane::BaseFlags LoadingStage; + static const Hurricane::BaseFlags SlowMotion; + static const Hurricane::BaseFlags PreRoutedStage; + static const Hurricane::BaseFlags SymmetricStage; public: inline Flags ( uint64_t ); inline Flags ( const Super& ); From 3e825cc228a90238926078eee45bd07b12d149c5 Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Tue, 23 May 2017 00:20:31 +0200 Subject: [PATCH 14/30] Katana routing algorithm adjustements for analog routing. * Bug: In Hurricane::Interval, the ::getSize() method was returning a negative length when the Interval was empty. Now return zero. This was causing slight cost functions side effect when computing the overlap of a segment with another one belonging to the same net (i.e. shareDelta) * Bug: In Katana::AutoSegment::computeOptimal(), checks that the optimal position for the axis is indeed inside the GCell interval. * Bug: In Katana::DataSymmetric::getSymmetrical(Interval&), reverse the shrink applied to GCells sides. Interval are of the type [min:max[ so after symmetric transformation they become ]smax:smin]. Apply a correction so that they are [smax:smin[ and could be merged with the paired interval (the one without symmetry applied). * Bug: In katana::TrackCost::consolidate(), the overlap (now) always positive, and must be *substracted* to the "delta" (not *added*). * Bug: In Katana::_computeNetOptimals(), now skip the already processeds AutoSegments instead of re-processing them. * New: In Katana::AutoSegment::computeOptimal(), improved computation of the axis hint: - For analog net, propagate through the simple doglegs to find attractors. - Restrict the allowed interval to the union of GCell sides and segments constraints that are terminals. - Consider a local as "long" if it's length exceed 20 the P-pitch. (maybe make that a tool parameter). --- anabatic/src/AutoHorizontal.cpp | 8 ++-- anabatic/src/AutoSegment.cpp | 30 ++++++++------ anabatic/src/AutoSegments.cpp | 4 +- anabatic/src/LoadGlobalRouting.cpp | 42 ++++++++++---------- anabatic/src/NetOptimals.cpp | 12 +++--- anabatic/src/anabatic/AutoContact.h | 13 +----- anabatic/src/anabatic/AutoSegments.h | 4 +- hurricane/src/hurricane/Interval.cpp | 12 ------ hurricane/src/hurricane/hurricane/Commons.h | 10 +++++ hurricane/src/hurricane/hurricane/Interval.h | 6 +-- katana/src/RoutingEvent.cpp | 16 ++++---- katana/src/SegmentFsm.cpp | 10 +++-- katana/src/Track.cpp | 6 ++- katana/src/TrackCost.cpp | 18 ++++++--- katana/src/Tracks.cpp | 9 ++++- katana/src/katana/DataSymmetric.h | 10 +++-- 16 files changed, 112 insertions(+), 98 deletions(-) diff --git a/anabatic/src/AutoHorizontal.cpp b/anabatic/src/AutoHorizontal.cpp index 820b3167..c6807e23 100644 --- a/anabatic/src/AutoHorizontal.cpp +++ b/anabatic/src/AutoHorizontal.cpp @@ -145,26 +145,26 @@ namespace Anabatic { constraintMin = getNativeMin(); constraintMax = getNativeMax(); - cdebug_log(149,0) << "Native constraints: [" + cdebug_log(144,0) << "Native constraints: [" << DbU::getValueString(constraintMin) << ":" << DbU::getValueString(constraintMax) << "]" << endl; constraintMin = std::max ( constraintMin, getAutoSource()->getCBYMin() ); constraintMax = std::min ( constraintMax, getAutoSource()->getCBYMax() ); - cdebug_log(149,0) << "Merge with source constraints: [" + cdebug_log(144,0) << "Merge with source constraints: [" << DbU::getValueString(getAutoSource()->getCBYMin()) << ":" << DbU::getValueString(getAutoSource()->getCBYMax()) << "]" << endl; constraintMin = std::max ( constraintMin, getUserConstraints().getVMin() ); constraintMax = std::min ( constraintMax, getUserConstraints().getVMax() ); - cdebug_log(149,0) << "Merge with user constraints: [" + cdebug_log(144,0) << "Merge with user constraints: [" << DbU::getValueString(getUserConstraints().getVMin()) << ":" << DbU::getValueString(getUserConstraints().getVMax()) << "]" << endl; - cdebug_log(149,0) << "Resulting constraints: " << " [" + cdebug_log(145,0) << "Resulting constraints: " << " [" << DbU::getValueString(constraintMin) << ":" << DbU::getValueString(constraintMax) << "]" << endl; diff --git a/anabatic/src/AutoSegment.cpp b/anabatic/src/AutoSegment.cpp index e8afa042..71e5cc80 100644 --- a/anabatic/src/AutoSegment.cpp +++ b/anabatic/src/AutoSegment.cpp @@ -634,17 +634,11 @@ namespace Anabatic { AutoSegments AutoSegment::getAligneds ( Flags flags ) - { - cdebug_log(145,0) << "AutoSegment::getAligneds() - flags:" << flags.asString(FlagsFunction) << endl; - return AutoSegments_Aligneds( this, flags ); - } + { return AutoSegments_Aligneds( this, flags ); } AutoSegments AutoSegment::getConnecteds ( Flags flags ) - { - cdebug_log(145,0) << "AutoSegment::getConnecteds() - flags:" << flags.asString(FlagsFunction) << endl; - return AutoSegments_Connecteds( this, flags ); - } + { return AutoSegments_Connecteds( this, flags ); } AutoSegments AutoSegment::getPerpandiculars ( Flags flags ) @@ -928,6 +922,8 @@ namespace Anabatic { vector aligneds; getConstraints( constraintMin, constraintMax ); + cdebug_log(145,0) << "Constraints: [" << DbU::getValueString(constraintMin) + << " " << DbU::getValueString(constraintMax) << "]" << endl; if (isUserDefined()) { optimalMin = optimalMax = getAxis(); @@ -941,7 +937,6 @@ namespace Anabatic { Flags flags = (isAnalog() ? Flags::WithDoglegs : Flags::NoFlags); Flags f2 = flags | Flags::WithSelf; - cdebug_log(145,0) << "Test | :" << flags.asString(FlagsFunction) << endl; getAligneds( Flags::WithSelf|flags ).fill( aligneds ); @@ -958,6 +953,12 @@ namespace Anabatic { gcellSide.intersection( gcell->getSide(direction,pitch) ); cdebug_log(145,0) << "| gcellSide:" << gcellSide << " (from " << gcell << ")" << endl; } + if (aligned->isStrongTerminal()) { + Interval terminalConstraints; + aligned->getConstraints( terminalConstraints ); + gcellSide.intersection( terminalConstraints ); + cdebug_log(145,0) << "| gcellSide:" << gcellSide << " (from " << aligned << ")" << endl; + } } minGCell = gcellSide.getVMin(); maxGCell = gcellSide.getVMax(); @@ -1025,7 +1026,7 @@ namespace Anabatic { if (terminalMin != terminalMax) attractors.addAttractor( terminalMax ); } - } else if (autoSegment->isLongLocal()) { + } else if (autoSegment->isLongLocal() or (autoSegment->getLength() > getPPitch()*20)) { cdebug_log(145,0) << "Used as long global attractor." << endl; DbU::Unit perpandMin = autoSegment->getSourceU(); @@ -1041,9 +1042,6 @@ namespace Anabatic { } if (attractors.getAttractorsCount()) { - cdebug_log(145,0) << "Lower Median " << DbU::getValueString(attractors.getLowerMedian()) << endl; - cdebug_log(145,0) << "Upper Median " << DbU::getValueString(attractors.getUpperMedian()) << endl; - optimalMin = attractors.getLowerMedian(); optimalMax = attractors.getUpperMedian(); } else { @@ -1053,6 +1051,12 @@ namespace Anabatic { optimalMax = (isHorizontal()) ? _gcell->getBoundingBox().getYMax() : _gcell->getBoundingBox().getXMax(); } + + setInBound( minGCell, maxGCell, optimalMin ); + setInBound( minGCell, maxGCell, optimalMax ); + + cdebug_log(145,0) << "optimalMin: " << DbU::getValueString(optimalMin) << endl; + cdebug_log(145,0) << "optimalMax: " << DbU::getValueString(optimalMax) << endl; } setInBound( constraintMin, constraintMax, optimalMin ); diff --git a/anabatic/src/AutoSegments.cpp b/anabatic/src/AutoSegments.cpp index 0bb8ad8c..a01ced8f 100644 --- a/anabatic/src/AutoSegments.cpp +++ b/anabatic/src/AutoSegments.cpp @@ -330,8 +330,6 @@ namespace Anabatic { { if (not _master) return; - cdebug_log(145,0) << "Flags:" << _flags.asString(FlagsFunction) << endl; - _flags |= (_master->isHorizontal()) ? Flags::Horizontal : Flags::Vertical; if (_flags & Flags::WithDoglegs) _flags |= Flags::WithPerpands; @@ -357,7 +355,7 @@ namespace Anabatic { void AutoSegments_Aligneds::Locator::progress () { - cdebug_log(145,0) << "AutoSegments_Aligneds::Locator::progress()" << endl; + cdebug_log(144,0) << "AutoSegments_Aligneds::Locator::progress()" << endl; while (not _stack.isEmpty()) { AutoContact* sourceContact = _stack.getAutoContact (); diff --git a/anabatic/src/LoadGlobalRouting.cpp b/anabatic/src/LoadGlobalRouting.cpp index fe4801bb..f73d92ee 100644 --- a/anabatic/src/LoadGlobalRouting.cpp +++ b/anabatic/src/LoadGlobalRouting.cpp @@ -1196,7 +1196,7 @@ namespace { , targetContact , static_cast( _fromHook->getComponent() ) ); - cdebug_log(145,0) << "[Create global segment]: " << globalSegment << endl; + cdebug_log(145,0) << "[Create global segment (1)]: " << globalSegment << endl; } } cdebug_tabw(145,-1); @@ -2470,7 +2470,7 @@ namespace { , horizontalWidth ) ); - cdebug_log(145,0) << "[Create global segment]: " << globalSegment << endl; + cdebug_log(145,0) << "[Create global segment (2)]: " << globalSegment << endl; } } // There are only 2 AutoContacts to create @@ -2506,7 +2506,7 @@ namespace { , horizontalWidth ) ); - cdebug_log(145,0) << "[Create global segment]: " << globalSegment << endl; + cdebug_log(145,0) << "[Create global segment (3)]: " << globalSegment << endl; if (_fromHook->getComponent() == hooks[0]->getComponent()){ cdebug_log(145,0) << "Found from:" << hooks[0]->getComponent() << endl; @@ -2559,7 +2559,7 @@ namespace { , verticalWidth ) ); - cdebug_log(145,0) << "[Create global segment]: " << globalSegment << endl; + cdebug_log(145,0) << "[Create global segment (4)]: " << globalSegment << endl; if (_fromHook->getComponent() == hooks[0]->getComponent()){ cdebug_log(145,0) << "Found from:" << hooks[0]->getComponent() << endl; @@ -2708,7 +2708,7 @@ namespace { ) ); if (not globalSegment->isGlobal()) globalSegment->setFlags( SegLongLocal ); - cdebug_log(145,0) << "[Create global segment]: " << globalSegment << endl; + cdebug_log(145,0) << "[Create global segment (5)]: " << globalSegment << endl; } } // There are only 2 AutoContacts to create @@ -2747,7 +2747,7 @@ namespace { ) ); if (not globalSegment->isGlobal()) globalSegment->setFlags( SegLongLocal ); - cdebug_log(145,0) << "[Create global segment]: " << globalSegment << endl; + cdebug_log(145,0) << "[Create global segment (6)]: " << globalSegment << endl; if (_fromHook->getComponent() == hooks[0]->getComponent()){ cdebug_log(145,0) << "Found from:" << hooks[0]->getComponent() << endl; @@ -2802,7 +2802,7 @@ namespace { ) ); if (not globalSegment->isGlobal()) globalSegment->setFlags( SegLongLocal ); - cdebug_log(145,0) << "[Create global segment]: " << globalSegment << endl; + cdebug_log(145,0) << "[Create global segment (7)]: " << globalSegment << endl; if (_fromHook->getComponent() == hooks[0]->getComponent()){ cdebug_log(145,0) << "Found from:" << hooks[0]->getComponent() << endl; @@ -2957,7 +2957,7 @@ namespace { ) ); if (not globalSegment->isGlobal()) globalSegment->setFlags( SegLongLocal ); - cdebug_log(145,0) << "[Create global segment]: " << globalSegment << endl; + cdebug_log(145,0) << "[Create global segment (8)]: " << globalSegment << endl; } else if ((_east != NULL) && (_west != NULL) ) { cdebug_log(145,0) << "Case EW" << endl; @@ -3008,7 +3008,7 @@ namespace { ) ); if (not globalSegment->isGlobal()) globalSegment->setFlags( SegLongLocal ); - cdebug_log(145,0) << "[Create global segment]: " << globalSegment << endl; + cdebug_log(145,0) << "[Create global segment (9)]: " << globalSegment << endl; } else { cerr << Warning( "Something is wrong with the globals in this Strut. 5 " @@ -3057,7 +3057,7 @@ namespace { ) ); if (not globalSegment->isGlobal()) globalSegment->setFlags( SegLongLocal ); - cdebug_log(145,0) << "[Create global segment]: " << globalSegment << endl; + cdebug_log(145,0) << "[Create global segment (10)]: " << globalSegment << endl; } else if ((_north != NULL) && (_south != NULL) && (_west != NULL)){ cdebug_log(145,0) << "Case NSW " << endl; @@ -3095,7 +3095,7 @@ namespace { ) ); if (not globalSegment->isGlobal()) globalSegment->setFlags( SegLongLocal ); - cdebug_log(145,0) << "[Create global segment]: " << globalSegment << endl; + cdebug_log(145,0) << "[Create global segment (11)]: " << globalSegment << endl; } else if ((_east != NULL) && (_north != NULL) && (_west != NULL)){ @@ -3134,7 +3134,7 @@ namespace { ) ); if (not globalSegment->isGlobal()) globalSegment->setFlags( SegLongLocal ); - cdebug_log(145,0) << "[Create global segment]: " << globalSegment << endl; + cdebug_log(145,0) << "[Create global segment (12)]: " << globalSegment << endl; } else if ((_east != NULL) && (_south != NULL) && (_west != NULL)){ cdebug_log(145,0) << "Case EWS " << endl; @@ -3172,7 +3172,7 @@ namespace { ) ); if (not globalSegment->isGlobal()) globalSegment->setFlags( SegLongLocal ); - cdebug_log(145,0) << "[Create global segment]: " << globalSegment << endl; + cdebug_log(145,0) << "[Create global segment (13)]: " << globalSegment << endl; } else { cerr << Warning( "Something is wrong with the globals in this Strut. 6" @@ -3228,8 +3228,8 @@ namespace { , verticalWidth ) ); - cdebug_log(145,0) << "[Create global segment]: " << globalSegment1 << endl; - cdebug_log(145,0) << "[Create global segment]: " << globalSegment2 << endl; + cdebug_log(145,0) << "[Create global segment (14.1)]: " << globalSegment1 << endl; + cdebug_log(145,0) << "[Create global segment (14.2)]: " << globalSegment2 << endl; } else if ( (_north->getComponent()->getX() > _south->getComponent()->getX() ) && (_east->getComponent ()->getY() < _west->getComponent ()->getY() ) @@ -3274,8 +3274,8 @@ namespace { , verticalWidth ) ); - cdebug_log(145,0) << "[Create global segment]: " << globalSegment1 << endl; - cdebug_log(145,0) << "[Create global segment]: " << globalSegment2 << endl; + cdebug_log(145,0) << "[Create global segment (15.1)]: " << globalSegment1 << endl; + cdebug_log(145,0) << "[Create global segment (15.2)]: " << globalSegment2 << endl; } else if ( (_north->getComponent()->getX() < _south->getComponent()->getX() ) && (_east->getComponent ()->getY() > _west->getComponent ()->getY() ) @@ -3320,8 +3320,8 @@ namespace { , verticalWidth ) ); - cdebug_log(145,0) << "[Create global segment]: " << globalSegment1 << endl; - cdebug_log(145,0) << "[Create global segment]: " << globalSegment2 << endl; + cdebug_log(145,0) << "[Create global segment (16.1)]: " << globalSegment1 << endl; + cdebug_log(145,0) << "[Create global segment (16.2)]: " << globalSegment2 << endl; } else { cdebug_log(145,0) << "(N.X > S.X) & (E.Y > W.Y)" << endl; @@ -3364,8 +3364,8 @@ namespace { , verticalWidth ) ); - cdebug_log(145,0) << "[Create global segment]: " << globalSegment1 << endl; - cdebug_log(145,0) << "[Create global segment]: " << globalSegment2 << endl; + cdebug_log(145,0) << "[Create global segment (17.1)]: " << globalSegment1 << endl; + cdebug_log(145,0) << "[Create global segment (17.2)]: " << globalSegment2 << endl; } } else { cerr << Warning( "Something is wrong with the number of globals in this Strut. 7" diff --git a/anabatic/src/NetOptimals.cpp b/anabatic/src/NetOptimals.cpp index df9f6301..18bf6375 100644 --- a/anabatic/src/NetOptimals.cpp +++ b/anabatic/src/NetOptimals.cpp @@ -37,20 +37,22 @@ namespace Anabatic { void AnabaticEngine::_computeNetOptimals ( Net* net ) { - DebugSession::open( net, 144, 150 ); + DebugSession::open( net, 145, 150 ); cdebug_log(149,0) << "Anabatic::_computeNetOptimals( " << net << " )" << endl; cdebug_tabw(145,1); vector segments; - forEach ( Segment*, segment, net->getSegments() ) { - AutoSegment* autoSegment = Session::lookup( *segment ); + for ( Segment* segment : net->getSegments() ) { + AutoSegment* autoSegment = Session::lookup( segment ); if (autoSegment) segments.push_back( autoSegment ); } sort( segments.begin(), segments.end(), AutoSegment::CompareId() ); set processeds; - for ( size_t i=0 ; icomputeOptimal( processeds ); + for ( AutoSegment* segment : segments ) { + if (processeds.find(segment) != processeds.end()) continue; + segment->computeOptimal( processeds ); + } cdebug_tabw(145,-1); DebugSession::close(); diff --git a/anabatic/src/anabatic/AutoContact.h b/anabatic/src/anabatic/AutoContact.h index ae817945..3797c772 100644 --- a/anabatic/src/anabatic/AutoContact.h +++ b/anabatic/src/anabatic/AutoContact.h @@ -31,6 +31,8 @@ namespace Anabatic { using std::cerr; using std::endl; + using Hurricane::order; + using Hurricane::setInBound; using Hurricane::tab; using Hurricane::Name; using Hurricane::Net; @@ -334,17 +336,6 @@ namespace Anabatic { // ------------------------------------------------------------------- // Helper Functions. - - templateinline void order ( Type& a, Type& b ) { if (a>b) std::swap(a,b); } - - inline DbU::Unit setInBound ( DbU::Unit lower, DbU::Unit upper, DbU::Unit& value ) - { - if ( lower > value ) value = lower; - if ( upper < value ) value = upper; - - return value; - } - inline size_t abssub ( size_t a, size_t b ) { return (a>b) ? a-b : b-a; } diff --git a/anabatic/src/anabatic/AutoSegments.h b/anabatic/src/anabatic/AutoSegments.h index 44a84447..979ad288 100644 --- a/anabatic/src/anabatic/AutoSegments.h +++ b/anabatic/src/anabatic/AutoSegments.h @@ -258,9 +258,7 @@ namespace Anabatic { : AutoSegmentHC() , _flags (flags) , _segment(segment) - { - cdebug_log(145,0) << "Flags:" << _flags.asString(FlagsFunction) << std::endl; - } + { } inline AutoSegments_Aligneds::AutoSegments_Aligneds ( const AutoSegments_Aligneds& autosegments ) diff --git a/hurricane/src/hurricane/Interval.cpp b/hurricane/src/hurricane/Interval.cpp index 073be0ae..86183d1c 100644 --- a/hurricane/src/hurricane/Interval.cpp +++ b/hurricane/src/hurricane/Interval.cpp @@ -93,18 +93,6 @@ Interval Interval::getIntersection(const Interval& interval) const return Interval(max(_vMin, interval._vMin), min(_vMax, interval._vMax)); } -bool Interval::isEmpty() const -// *************************** -{ - return (_vMax < _vMin); -} - -bool Interval::isPonctual() const -// ****************************** -{ - return (_vMax == _vMin); -} - bool Interval::contains(const DbU::Unit& v) const // ***************************************** { diff --git a/hurricane/src/hurricane/hurricane/Commons.h b/hurricane/src/hurricane/hurricane/Commons.h index 035517b1..eafed47a 100644 --- a/hurricane/src/hurricane/hurricane/Commons.h +++ b/hurricane/src/hurricane/hurricane/Commons.h @@ -136,6 +136,16 @@ namespace Hurricane { inline float roundfp ( float value, float precision=100.0 ) { return roundf(value*precision)/precision; } + template inline void order ( Type& a, Type& b ) { if (a>b) std::swap(a,b); } + + template inline Type setInBound ( Type lower, Type upper, Type& value ) + { + if (value < lower) value = lower; + else if (value > upper) value = upper; + return value; + } + + } // End of Hurricane namespace. diff --git a/hurricane/src/hurricane/hurricane/Interval.h b/hurricane/src/hurricane/hurricane/Interval.h index 76b14f7a..3446124a 100644 --- a/hurricane/src/hurricane/hurricane/Interval.h +++ b/hurricane/src/hurricane/hurricane/Interval.h @@ -63,7 +63,7 @@ class Interval { public: DbU::Unit& getVMin() {return _vMin;}; public: DbU::Unit& getVMax() {return _vMax;}; public: DbU::Unit getCenter() const {return ((_vMin + _vMax) / 2);}; - public: DbU::Unit getSize() const {return (_vMax - _vMin);}; + public: DbU::Unit getSize() const {return (isEmpty() ? 0 : (_vMax - _vMin));}; public: DbU::Unit getHalfSize() const {return (getSize() / 2);}; public: Interval getUnion(const Interval& interval) const; public: Interval getIntersection(const Interval& interval) const; @@ -71,8 +71,8 @@ class Interval { // Predicates // ********** - public: bool isEmpty() const; - public: bool isPonctual() const; + public: bool isEmpty() const { return (_vMax < _vMin);}; + public: bool isPonctual() const { return (_vMax == _vMin);}; public: bool contains(const DbU::Unit& v) const; public: bool contains(const Interval& interval) const; public: bool intersect(const Interval& interval) const; diff --git a/katana/src/RoutingEvent.cpp b/katana/src/RoutingEvent.cpp index 2df4a67a..63a7d5c2 100644 --- a/katana/src/RoutingEvent.cpp +++ b/katana/src/RoutingEvent.cpp @@ -394,7 +394,7 @@ namespace Katana { #endif } - DebugSession::open( _segment->getNet(), 156, 160 ); + DebugSession::open( _segment->getNet(), 155, 160 ); cdebug_log(9000,0) << "Deter| Event " << getProcesseds() @@ -654,15 +654,17 @@ namespace Katana { } double length = DbU::toLambda(_segment->getLength()); + double slack = DbU::toLambda(_segment->base()->getSlack()); - // if (length > 200.0) length = 200.0 - std::log(length)*20.0; - // if (length < 0.0) length = 0.0; + //if (length > 200.0) length = 200.0 - std::log(length)*20.0; + //if (length < 0.0) length = 0.0; + //if (slack / DbU::toLambda(_segment->getPitch()) < 2.0) slack = 999.0; - _priority = (length + 1.0) * (DbU::toLambda(_segment->base()->getSlack()) + 1.0); + _priority = (length + 1.0) * (slack + 1.0); - // if (_priority > 10000.0) cerr << "_priority:" << _priority - // << " length:" << DbU::toLambda(_segment->getLength()) - // << " slack:" << DbU::toLambda(_segment->base()->getSlack()) << endl; + //if (_priority > 10000.0) cerr << "_priority:" << _priority + // << " length:" << DbU::toLambda(_segment->getLength()) + // << " slack:" << DbU::toLambda(_segment->base()->getSlack()) << endl; cdebug_log(159,0) << _segment << " has " << (int)_tracksNb << " choices " << perpandicular << endl; cdebug_tabw(159,-1); diff --git a/katana/src/SegmentFsm.cpp b/katana/src/SegmentFsm.cpp index 6288c3e5..08ebe923 100644 --- a/katana/src/SegmentFsm.cpp +++ b/katana/src/SegmentFsm.cpp @@ -515,6 +515,8 @@ namespace Katana { cdebug_log(159,0) << "* Perpandicular (master): " << perpandicular << endl; _constraint = _event1->getConstraints(); + cdebug_log(159,0) << "* Constraints: " << _constraint << " (" << _constraint.getVMin() << " " << _constraint.getVMax() << ")" << endl; + _optimal = _event1->getOptimal(); if (_event2) { if (_sameAxis) { @@ -529,12 +531,13 @@ namespace Katana { cdebug_log(159,0) << "* Perpandicular (slave): PP axis " << symData->getSymmetrical(_event2->getPerpandicularFree()) << endl; + cdebug_log(159,0) << "* Constraints: " << _constraint << " (" << _constraint.getVMin() << " " << _constraint.getVMax() << ")" << endl; } } - cdebug_log(159,0) << "Anabatic intervals:" << endl; - cdebug_log(159,0) << "* Optimal: " << _optimal << endl; - cdebug_log(159,0) << "* Constraints: " << _constraint << endl; + cdebug_log(159,0) << "Anabatic intervals:" << endl; + cdebug_log(159,0) << "* Optimal: " << _optimal << " (" << _optimal.getVMin() << " " << _optimal.getVMax() << ")" << endl; + cdebug_log(159,0) << "* Constraints: " << _constraint << " (" << _constraint.getVMin() << " " << _constraint.getVMax() << ")" << endl; cdebug_log(159,0) << "* Perpandicular: " << perpandicular << endl; cdebug_log(159,0) << "* AxisHint: " << DbU::getValueString(_event1->getAxisHint()) << endl; @@ -589,6 +592,7 @@ namespace Katana { _costs.back()[1].setAxisWeight ( _event2->getAxisWeight(track2->getAxis()) ); _costs.back()[1].incDeltaPerpand( _data2->getWiringDelta(track2->getAxis()) ); _costs.back()[0].merge( _costs.back()[1] ); + } if (segment1->isGlobal()) { diff --git a/katana/src/Track.cpp b/katana/src/Track.cpp index 62dc1d26..56487d26 100644 --- a/katana/src/Track.cpp +++ b/katana/src/Track.cpp @@ -273,7 +273,7 @@ namespace Katana { if (_segments[end]->getSourceU() >= interval.getVMax()) break; } - cdebug_log(155,0) << "Track::getOverlapBounds(): begin:" << begin << " end:" << end << endl; + cdebug_log(155,0) << "Track::getOverlapBounds(): begin:" << begin << " end:" << end << " AfterLastElement:" << (iState == AfterLastElement) << endl; } @@ -313,10 +313,12 @@ namespace Katana { for ( ; begin < end ; begin++ ) { Interval overlap = interval.getIntersection( _segments[begin]->getCanonicalInterval() ); if ( _segments[begin]->getNet() == net ) { + cdebug_log(155,0) << "overlap:" << overlap << " size:" << overlap.getSize() << endl; cost.incDeltaShared ( overlap.getSize() ); } - cdebug_log(155,0) << "| overlap: " << _segments[begin] << endl; _segments[begin]->incOverlapCost( net, cost ); + cdebug_log(155,0) << "| overlap: " << _segments[begin] << " cost:" << cost << endl; + if (cost.isInfinite()) break; } diff --git a/katana/src/TrackCost.cpp b/katana/src/TrackCost.cpp index 1ec1a559..57a04d86 100644 --- a/katana/src/TrackCost.cpp +++ b/katana/src/TrackCost.cpp @@ -160,10 +160,15 @@ namespace Katana { if ( lhs._terminals < rhs._terminals ) return true; if ( lhs._terminals > rhs._terminals ) return false; - if ( not (_flags & TrackCost::IgnoreSharedLength) - or (lhs._delta > 0) or (rhs._delta > 0) ) { - if ( lhs._delta < rhs._delta ) return true; - if ( lhs._delta > rhs._delta ) return false; + if (lhs._delta != rhs._delta) { + //cdebug_log(155,0) << "TrackCost::Compare() lhs._delta:" << lhs._delta << " rhs._delta:" << rhs._delta << endl; + if ( not (_flags & TrackCost::IgnoreSharedLength) or (lhs._delta > 0) or (rhs._delta > 0) ) { + //if ( (lhs._delta > 0) or (rhs._delta > 0) ) { + if (lhs._delta < rhs._delta) return true; + if (lhs._delta > rhs._delta) return false; + } + + return lhs._delta < rhs._delta; } #if 0 @@ -203,8 +208,10 @@ namespace Katana { void TrackCost::consolidate () { if ( not _infinite and not _hardOverlap ) { + cdebug_log(159,0) << "TrackCost::consolidate() " << _delta << " - " << _deltaShared << endl; //_deltaPerpand += - (_deltaShared << 1); _delta += - _deltaShared; + //_delta += _deltaShared; } } @@ -238,7 +245,8 @@ namespace Katana { s += string ( (_overlapGlobal )?"g":"-" ); s += string ( (_globalEnclosed)?"e":"-" ); s += " " + getString(_terminals); - s += "/" + DbU::getValueString(_delta); + s += "/" + /*DbU::getValueString(_delta)*/ getString(_delta); + s += "-" + /*DbU::getValueString(_deltaShared)*/ getString(_deltaShared); s += "/" + DbU::getValueString(_axisWeight); s += "/" + DbU::getValueString(_deltaPerpand); s += "/" + DbU::getValueString(_distanceToFixed); diff --git a/katana/src/Tracks.cpp b/katana/src/Tracks.cpp index a0469b35..30ed89c0 100644 --- a/katana/src/Tracks.cpp +++ b/katana/src/Tracks.cpp @@ -42,6 +42,8 @@ namespace Katana { cdebug_log(155,0) << "* Constraints: " << _constraints << endl; _track = routingPlane->getTrackByPosition ( _constraints.getVMin() ); + cdebug_log(155,0) << "* Nearest track: " << _track << endl;; + cdebug_log(155,0) << "* axis:" << _track->getAxis() << " vmin:" << _constraints.getVMin() << endl; if ( _track and (_track->getAxis() < _constraints.getVMin()) ) _track = _track->getNextTrack(); if ( _track and (_track->getAxis() > _constraints.getVMax()) ) _track = NULL; @@ -66,13 +68,16 @@ namespace Katana { Track* Tracks_Range::Locator::getElement () const - { return _track; } + { + cdebug_log(155,0) << "Tracks_Range::Locator::getElement() - " << _track << endl;; + return _track; + } void Tracks_Range::Locator::progress () { - if ( !_track ) return; + if (not _track) return; _track = _track->getNextTrack(); if ( _track and (_track->getAxis() > _constraints.getVMax()) ) _track = NULL; diff --git a/katana/src/katana/DataSymmetric.h b/katana/src/katana/DataSymmetric.h index 3f95a5a4..30d32d88 100644 --- a/katana/src/katana/DataSymmetric.h +++ b/katana/src/katana/DataSymmetric.h @@ -103,11 +103,13 @@ namespace Katana { inline Interval DataSymmetric::getSymmetrical ( const Interval& interval ) const { - DbU::Unit vmin = interval.getVMin(); - if ( (vmin != DbU::Min) and (vmin != DbU::Max) ) vmin = 2*getSymAxis() - vmin; + DbU::Unit delta = 0; + DbU::Unit vmin = interval.getVMin(); + DbU::Unit vmax = interval.getVMax(); - DbU::Unit vmax = interval.getVMax(); - if ( (vmax != DbU::Max) and (vmax != DbU::Max) ) vmax = 2*getSymAxis() - vmax; + if ( (vmin != DbU::Min) and (vmin != DbU::Max) ) delta = -1; + if ( (vmin != DbU::Min) and (vmin != DbU::Max) ) vmin = 2*getSymAxis() - vmin + delta; + if ( (vmax != DbU::Max) and (vmax != DbU::Max) ) vmax = 2*getSymAxis() - vmax + delta; return Interval( vmin, vmax ); } From e12e45e4951d0026481083102f31e1ef29275c27 Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Fri, 26 May 2017 13:32:30 +0200 Subject: [PATCH 15/30] Rename SymmetricStage into PairSymmetrics, plus small cleanup. --- anabatic/src/LoadGlobalRouting.cpp | 1 - crlcore/etc/common/display.conf | 2 +- documentation/UsersGuide/CMakeLists.txt | 2 +- katana/src/Constants.cpp | 2 +- katana/src/GraphicKatanaEngine.cpp | 6 +++-- katana/src/KatanaEngine.cpp | 10 +++++-- katana/src/NegociateWindow.cpp | 36 ++++++++++++------------- katana/src/PyKatanaFlags.cpp | 2 +- katana/src/SymmetricRoute.cpp | 2 +- katana/src/katana/Constants.h | 2 +- katana/src/katana/KatanaEngine.h | 2 +- 11 files changed, 37 insertions(+), 30 deletions(-) diff --git a/anabatic/src/LoadGlobalRouting.cpp b/anabatic/src/LoadGlobalRouting.cpp index f73d92ee..f3762ff4 100644 --- a/anabatic/src/LoadGlobalRouting.cpp +++ b/anabatic/src/LoadGlobalRouting.cpp @@ -3413,7 +3413,6 @@ namespace Anabatic { if (NetRoutingExtension::isAutomaticGlobalRoute(net)) { DebugSession::open( net, 144, 150 ); AutoSegment::setAnalogMode( NetRoutingExtension::isAnalog(net) ); - cerr << net << " AnalogMode:" << NetRoutingExtension::get(net) << endl; _loadNetGlobalRouting( net ); Session::revalidate(); DebugSession::close(); diff --git a/crlcore/etc/common/display.conf b/crlcore/etc/common/display.conf index 24bf85fe..2f319819 100644 --- a/crlcore/etc/common/display.conf +++ b/crlcore/etc/common/display.conf @@ -192,7 +192,7 @@ stylesTable = \ , (Drawing, 'gmetalv' , { 'color':'200,200,255', 'pattern':'light_antihash1.8', 'border':1 }) , (Drawing, 'gcut' , { 'color':'255,255,190', 'border':1 }) , (Drawing, 'Anabatic::Edge' , { 'color':'255,255,190', 'pattern':'0000000000000000', 'border':4, 'threshold':0.02*scale }) - , (Drawing, 'Anabatic::GCell', { 'color':'255,255,190', 'pattern':'0000000000000000', 'border':4, 'threshold':0.10*scale }) + , (Drawing, 'Anabatic::GCell', { 'color':'255,255,190', 'pattern':'0000000000000000', 'border':2, 'threshold':0.10*scale }) ) # ---------------------------------------------------------------------- diff --git a/documentation/UsersGuide/CMakeLists.txt b/documentation/UsersGuide/CMakeLists.txt index 73573c91..870a0f14 100644 --- a/documentation/UsersGuide/CMakeLists.txt +++ b/documentation/UsersGuide/CMakeLists.txt @@ -17,7 +17,7 @@ && latex UsersGuide && dvipdfm UsersGuide ) - add_dependencies ( doc_HTML socstyle.tex UsersGuide_LaTeX.rst UsersGuide.rst ) + add_dependencies ( doc_LaTeX socstyle.tex UsersGuide_LaTeX.rst UsersGuide.rst ) install ( DIRECTORY images/ DESTINATION ${htmlInstallDir}/images diff --git a/katana/src/Constants.cpp b/katana/src/Constants.cpp index f968d204..a946de42 100644 --- a/katana/src/Constants.cpp +++ b/katana/src/Constants.cpp @@ -32,7 +32,7 @@ namespace Katana { const Hurricane::BaseFlags Flags::LoadingStage = (1 << 28); const Hurricane::BaseFlags Flags::SlowMotion = (1 << 29); const Hurricane::BaseFlags Flags::PreRoutedStage = (1 << 30); - const Hurricane::BaseFlags Flags::SymmetricStage = (1 << 31); + const Hurricane::BaseFlags Flags::PairSymmetrics = (1 << 31); } // Anabatic namespace. diff --git a/katana/src/GraphicKatanaEngine.cpp b/katana/src/GraphicKatanaEngine.cpp index c3284830..7dff815d 100644 --- a/katana/src/GraphicKatanaEngine.cpp +++ b/katana/src/GraphicKatanaEngine.cpp @@ -256,7 +256,7 @@ namespace Katana { void GraphicKatanaEngine::_runNegociate () { KatanaEngine* katana = getForFramework( NoFlags ); - katana->runNegociate(); + katana->runNegociate( Flags::PairSymmetrics ); } @@ -277,7 +277,7 @@ namespace Katana { katana->loadGlobalRouting( Anabatic::EngineLoadGrByNet ); // Now done through Horus. //katana->runTest(); - katana->runNegociate( Flags::SymmetricStage ); + katana->runNegociate( Flags::PairSymmetrics ); //katana->runNegociate(); } } @@ -387,11 +387,13 @@ namespace Katana { , "Save routed design (temporary hack)" , std::bind(&GraphicKatanaEngine::_save,this) ); +#if NO_NEED_OF_IT_NOW _viewer->addToMenu( "placeAndRoute.katana.stepByStep.runTest" , "Katana - Run &Test" , "Run Test Program (symmetric routing of gmChamla)" , std::bind(&GraphicKatanaEngine::_runTest,this) ); +#endif } diff --git a/katana/src/KatanaEngine.cpp b/katana/src/KatanaEngine.cpp index 1bf2ed0e..a752861f 100644 --- a/katana/src/KatanaEngine.cpp +++ b/katana/src/KatanaEngine.cpp @@ -468,6 +468,7 @@ namespace Katana { void KatanaEngine::runTest () { +#if PUT_HERE_WHATEVER_YOU_WANT_TO_TEST if (getCell()->getName() != "gmchamla") throw Error( "KatanaEngine::runTest() Work only on \"gmchamla\" (loaded:\"%s\")." , getString(getCell()->getName()).c_str() @@ -482,6 +483,7 @@ namespace Katana { setSymmetricPair( getCell(), "ampp_4" , "ampn_4" ); setSymmetricPair( getCell(), "ampp_2" , "ampn_2" ); setSymmetricPair( getCell(), "ampp_1" , "ampn_1" ); +#endif } void KatanaEngine::printCompletion () const @@ -674,9 +676,13 @@ namespace Katana { _routingPlanes[depth]->destroy(); } _routingPlanes.clear(); + + while ( not _symmetrics.empty() ) { + auto element = _symmetrics.begin(); - //for ( auto symmetric : _symmetrics ) delete symmetric.second; - _symmetrics.clear(); + if (element->first == element->second->getNet()) delete element->second; + _symmetrics.erase( element->first ); + } Session::close(); } diff --git a/katana/src/NegociateWindow.cpp b/katana/src/NegociateWindow.cpp index a779854c..20d4b396 100644 --- a/katana/src/NegociateWindow.cpp +++ b/katana/src/NegociateWindow.cpp @@ -443,22 +443,6 @@ namespace Katana { while ( not _eventQueue.empty() and not isInterrupted() ) { RoutingEvent* event = _eventQueue.pop(); - if (tty::enabled()) { - cmess2 << " " << tty::cr; - cmess2.flush (); - } else { - cmess2 << " getEventLevel() << ":" << event->getPriority() << "> " - << event->getSegment() - << endl; - cmess2.flush(); - } - if (ofprofile.is_open()) { size_t depth = _katana->getConfiguration()->getLayerDepth( event->getSegment()->getLayer() ); if (depth < 6) { @@ -477,6 +461,22 @@ namespace Katana { event->process( _eventQueue, _eventHistory, _eventLoop ); count++; + if (tty::enabled()) { + cmess2 << " " << tty::cr; + cmess2.flush (); + } else { + cmess2 << " getEventLevel() << ":" << event->getPriority() << "> " + << event->getSegment() + << endl; + cmess2.flush(); + } + //if (count and not (count % 500)) { // _pack( count, false ); //} @@ -574,8 +574,8 @@ namespace Katana { Session::getKatanaEngine()->_check( overlaps, "after _createRouting(GCell*)" ); #endif - if (flags & Flags::SymmetricStage) { - _katana->runSymmetricRouter(); + if (flags & Flags::PairSymmetrics) { + _katana->pairSymmetrics(); Session::revalidate(); } diff --git a/katana/src/PyKatanaFlags.cpp b/katana/src/PyKatanaFlags.cpp index 658472da..ce291ab1 100644 --- a/katana/src/PyKatanaFlags.cpp +++ b/katana/src/PyKatanaFlags.cpp @@ -95,7 +95,7 @@ extern "C" { LoadObjectConstant(PyTypeKatanaFlags.tp_dict,(uint64_t)Katana::Flags::NoFlags ,"NoFlags" ); LoadObjectConstant(PyTypeKatanaFlags.tp_dict,(uint64_t)Katana::Flags::SlowMotion ,"SlowMotion" ); LoadObjectConstant(PyTypeKatanaFlags.tp_dict,(uint64_t)Katana::Flags::PreRoutedStage,"PreRoutedStage"); - LoadObjectConstant(PyTypeKatanaFlags.tp_dict,(uint64_t)Katana::Flags::SymmetricStage,"SymmetricStage"); + LoadObjectConstant(PyTypeKatanaFlags.tp_dict,(uint64_t)Katana::Flags::PairSymmetrics,"PairSymmetrics"); } diff --git a/katana/src/SymmetricRoute.cpp b/katana/src/SymmetricRoute.cpp index 1818b58c..aa7afd2f 100644 --- a/katana/src/SymmetricRoute.cpp +++ b/katana/src/SymmetricRoute.cpp @@ -392,7 +392,7 @@ namespace Katana { using namespace std; - void KatanaEngine::runSymmetricRouter () + void KatanaEngine::pairSymmetrics () { for ( Net* net : getCell()->getNets() ) { if (not NetRoutingExtension::isSymmetric(net)) continue; diff --git a/katana/src/katana/Constants.h b/katana/src/katana/Constants.h index 016699aa..c326dbcd 100644 --- a/katana/src/katana/Constants.h +++ b/katana/src/katana/Constants.h @@ -37,7 +37,7 @@ namespace Katana { static const Hurricane::BaseFlags LoadingStage; static const Hurricane::BaseFlags SlowMotion; static const Hurricane::BaseFlags PreRoutedStage; - static const Hurricane::BaseFlags SymmetricStage; + static const Hurricane::BaseFlags PairSymmetrics; public: inline Flags ( uint64_t ); inline Flags ( const Super& ); diff --git a/katana/src/katana/KatanaEngine.h b/katana/src/katana/KatanaEngine.h index 9ae57127..97f97dff 100644 --- a/katana/src/katana/KatanaEngine.h +++ b/katana/src/katana/KatanaEngine.h @@ -114,9 +114,9 @@ namespace Katana { void setFixedPreRouted (); void digitalInit (); void analogInit (); + void pairSymmetrics (); void runNegociate ( Flags flags=Flags::NoFlags ); void runGlobalRouter (); - void runSymmetricRouter (); void runTest (); virtual void finalizeLayout (); void _runKatanaInit (); From 1e49da1976cd09187af900eb7e4554e442b0c987 Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Sat, 27 May 2017 20:35:28 +0200 Subject: [PATCH 16/30] Select S/T in AutoSegments_Aligneds. Priority moved to TrackSegment. * In Katana::AutoSegments_Aligneds, allow the the caller to select if we are propagating through source or target only (or both). Note that if no flag is given, it is assumed that we want to propagate the old way on both source and target. * In Katana::TrackElement, Katana::TrackSegment and Katana::RoutingEvent, move the event priority from RoutingEvent to TrackSegment. Add accessor and mutators associated in TrackElement (virtual methods). --- anabatic/src/AutoHorizontal.cpp | 2 +- anabatic/src/AutoSegment.cpp | 2 ++ anabatic/src/AutoSegments.cpp | 14 ++++++++++---- anabatic/src/AutoVertical.cpp | 2 +- anabatic/src/anabatic/AutoSegments.h | 2 +- katana/src/RoutingEvent.cpp | 17 ++++------------- katana/src/TrackFixedSegment.cpp | 8 ++++++++ katana/src/TrackSegment.cpp | 22 ++++++++++++++++++++++ katana/src/katana/RoutingEvent.h | 3 +-- katana/src/katana/TrackElement.h | 4 ++++ katana/src/katana/TrackFixedSegment.h | 5 ++--- katana/src/katana/TrackSegment.h | 3 +++ 12 files changed, 59 insertions(+), 25 deletions(-) diff --git a/anabatic/src/AutoHorizontal.cpp b/anabatic/src/AutoHorizontal.cpp index c6807e23..ea4bde74 100644 --- a/anabatic/src/AutoHorizontal.cpp +++ b/anabatic/src/AutoHorizontal.cpp @@ -389,7 +389,7 @@ namespace Anabatic { if (_horizontal->getY() == axis) return; - cdebug_log(145,0) << "_setAxis() @Y " << DbU::getValueString(axis) << " " << this << endl; + cdebug_log(144,0) << "_setAxis() @Y " << DbU::getValueString(axis) << " " << this << endl; _horizontal->setY( axis ); invalidate(); diff --git a/anabatic/src/AutoSegment.cpp b/anabatic/src/AutoSegment.cpp index 71e5cc80..07ea93a3 100644 --- a/anabatic/src/AutoSegment.cpp +++ b/anabatic/src/AutoSegment.cpp @@ -837,6 +837,8 @@ namespace Anabatic { if (flags & Flags::Realignate) setAxis( getAxis(), flags ); + //setAxis( optimalMin, flags ); + cdebug_tabw(149,-1); return false; } diff --git a/anabatic/src/AutoSegments.cpp b/anabatic/src/AutoSegments.cpp index a01ced8f..767c546b 100644 --- a/anabatic/src/AutoSegments.cpp +++ b/anabatic/src/AutoSegments.cpp @@ -329,17 +329,23 @@ namespace Anabatic { , _stack () { if (not _master) return; + if (not _flags.intersect(Flags::Source|Flags::Target)) + _flags |= Flags::Source | Flags::Target; _flags |= (_master->isHorizontal()) ? Flags::Horizontal : Flags::Vertical; if (_flags & Flags::WithDoglegs) _flags |= Flags::WithPerpands; cdebug_log(144,0) << "AutoSegments_Aligneds::Locator::Locator() _flags:" << _flags.asString(FlagsFunction) << endl; - AutoContact* contact = segment->getAutoSource(); - if (contact) _stack.push( contact, segment ); + if (_flags & Flags::Source) { + AutoContact* contact = segment->getAutoSource(); + if (contact) _stack.push( contact, segment ); + } - contact = segment->getAutoTarget(); - if (contact) _stack.push( contact, segment ); + if (_flags & Flags::Target) { + AutoContact* contact = segment->getAutoTarget(); + if (contact) _stack.push( contact, segment ); + } if (not (_flags & Flags::WithSelf)) progress(); } diff --git a/anabatic/src/AutoVertical.cpp b/anabatic/src/AutoVertical.cpp index a44da88d..b0092f5b 100644 --- a/anabatic/src/AutoVertical.cpp +++ b/anabatic/src/AutoVertical.cpp @@ -328,7 +328,7 @@ namespace Anabatic { if (_vertical->getX() == axis) return; - cdebug_log(149,0) << "_setAxis() @X " << DbU::getValueString(axis) << " " << this << endl; + cdebug_log(144,0) << "_setAxis() @X " << DbU::getValueString(axis) << " " << this << endl; _vertical->setX( axis ); invalidate(); diff --git a/anabatic/src/anabatic/AutoSegments.h b/anabatic/src/anabatic/AutoSegments.h index 979ad288..3dbdb66b 100644 --- a/anabatic/src/anabatic/AutoSegments.h +++ b/anabatic/src/anabatic/AutoSegments.h @@ -233,7 +233,7 @@ namespace Anabatic { public: // AutoSegments_Aligneds Methods. - AutoSegments_Aligneds ( AutoSegment*, Flags flags=Flags::NoFlags ); + AutoSegments_Aligneds ( AutoSegment*, Flags flags ); AutoSegments_Aligneds ( const AutoSegments_Aligneds& ); virtual AutoSegmentHC* getClone () const; virtual AutoSegmentHL* getLocator () const; diff --git a/katana/src/RoutingEvent.cpp b/katana/src/RoutingEvent.cpp index 63a7d5c2..865c3846 100644 --- a/katana/src/RoutingEvent.cpp +++ b/katana/src/RoutingEvent.cpp @@ -80,6 +80,9 @@ namespace Katana { if (lhs._eventLevel > rhs._eventLevel) return false; if (lhs._eventLevel < rhs._eventLevel) return true; + //if (lhs._net->getName() != rhs._net->getName()) + // return lhs._net->getName() < rhs._net->getName(); + // Process all M2 (terminal access) before any others. //if ((lhs._layerDepth == 1) and (rhs._layerDepth != 1)) return false; //if ((lhs._layerDepth != 1) and (rhs._layerDepth == 1)) return true; @@ -178,7 +181,6 @@ namespace Katana { , _mode (mode) , _rippleState (0) , _eventLevel (0) - , _priority (0.0) , _key (this) { if (_idCounter == std::numeric_limits::max()) { @@ -653,18 +655,7 @@ namespace Katana { and _segment->base()->getAutoTarget()->isTerminal(); } - double length = DbU::toLambda(_segment->getLength()); - double slack = DbU::toLambda(_segment->base()->getSlack()); - - //if (length > 200.0) length = 200.0 - std::log(length)*20.0; - //if (length < 0.0) length = 0.0; - //if (slack / DbU::toLambda(_segment->getPitch()) < 2.0) slack = 999.0; - - _priority = (length + 1.0) * (slack + 1.0); - - //if (_priority > 10000.0) cerr << "_priority:" << _priority - // << " length:" << DbU::toLambda(_segment->getLength()) - // << " slack:" << DbU::toLambda(_segment->base()->getSlack()) << endl; + _segment->updatePriority(); cdebug_log(159,0) << _segment << " has " << (int)_tracksNb << " choices " << perpandicular << endl; cdebug_tabw(159,-1); diff --git a/katana/src/TrackFixedSegment.cpp b/katana/src/TrackFixedSegment.cpp index d928ddcd..fb465ce6 100644 --- a/katana/src/TrackFixedSegment.cpp +++ b/katana/src/TrackFixedSegment.cpp @@ -171,6 +171,14 @@ namespace Katana { } + float TrackFixedSegment::getPriority () const + { return 0.0; } + + + void TrackFixedSegment::updatePriority ( float ) + { } + + string TrackFixedSegment::_getTypeName () const { return "TrackFixedSegment"; } diff --git a/katana/src/TrackSegment.cpp b/katana/src/TrackSegment.cpp index c2289eaf..6cf9628f 100644 --- a/katana/src/TrackSegment.cpp +++ b/katana/src/TrackSegment.cpp @@ -65,6 +65,7 @@ namespace Katana { , _freedomDegree(0) , _ppitch (0) , _data (NULL) + , _priority (0.0) , _dogLegLevel (0) { cdebug_log(155,0) << "CTOR TrackSegment " << (void*)this << ":" << this << endl; @@ -172,6 +173,7 @@ namespace Katana { DbU::Unit TrackSegment::getPPitch () const { return _ppitch; } DbU::Unit TrackSegment::getAxis () const { return _base->getAxis(); } unsigned long TrackSegment::getFreedomDegree () const { return _freedomDegree; } + float TrackSegment::getPriority () const { return _priority; } uint32_t TrackSegment::getDoglegLevel () const { return _dogLegLevel; } Interval TrackSegment::getSourceConstraints () const { return _base->getSourceConstraints(); } Interval TrackSegment::getTargetConstraints () const { return _base->getTargetConstraints(); } @@ -307,6 +309,26 @@ namespace Katana { { _freedomDegree = _base->getSlack(); } + void TrackSegment::updatePriority ( float forced ) + { + if (forced != 0.0) { _priority = forced; return; } + + double length = DbU::toLambda(getLength()); + double slack = DbU::toLambda(base()->getSlack()); + + //if (length > 200.0) length = 200.0 - std::log(length)*20.0; + //if (length < 0.0) length = 0.0; + //if (slack / DbU::toLambda(_segment->getPitch()) < 2.0 ) slack = 999.0; + if (slack / DbU::toLambda(getPitch()) > 10.0) slack = 10.0*getPitch(); + + _priority = (length + 1.0) * (slack + 1.0); + + //if (_priority > 10000.0) cerr << "_priority:" << _priority + // << " length:" << DbU::toLambda(getLength()) + // << " slack:" << DbU::toLambda(base()->getSlack()) << endl; + } + + void TrackSegment::updatePPitch () { _ppitch = _base->getPPitch(); diff --git a/katana/src/katana/RoutingEvent.h b/katana/src/katana/RoutingEvent.h index 4aea9a8d..2367bca9 100644 --- a/katana/src/katana/RoutingEvent.h +++ b/katana/src/katana/RoutingEvent.h @@ -196,7 +196,6 @@ namespace Katana { unsigned int _mode : 4; unsigned int _rippleState : 4; uint32_t _eventLevel; - float _priority; //vector _perpandiculars; Key _key; }; @@ -224,7 +223,7 @@ namespace Katana { inline const Interval& RoutingEvent::getOptimal () const { return _optimal; } inline const Interval& RoutingEvent::getPerpandicularFree () const { return _dataNegociate->getPerpandicularFree(); } //inline const Interval& RoutingEvent::getPerpandicular () const { return _perpandicular; } - inline float RoutingEvent::getPriority () const { return _priority; } + inline float RoutingEvent::getPriority () const { return _segment->getPriority(); } inline uint32_t RoutingEvent::getEventLevel () const { return _eventLevel; } inline uint32_t RoutingEvent::getTracksNb () const { return _tracksNb; } inline uint32_t RoutingEvent::getTracksFree () const { return _tracksFree; } diff --git a/katana/src/katana/TrackElement.h b/katana/src/katana/TrackElement.h index 082ef524..692e9be0 100644 --- a/katana/src/katana/TrackElement.h +++ b/katana/src/katana/TrackElement.h @@ -132,6 +132,7 @@ namespace Katana { virtual DbU::Unit getPPitch () const; inline Track* getTrack () const; inline size_t getIndex () const; + virtual float getPriority () const = 0; virtual unsigned long getFreedomDegree () const; virtual float getMaxUnderDensity ( Flags flags=Flags::NoFlags ) const; inline Box getBoundingBox () const; @@ -161,6 +162,8 @@ namespace Katana { virtual void setTrack ( Track* ); inline void setIndex ( size_t ); virtual void setSymmetric ( TrackElement* ); + inline void updatePriority (); + virtual void updatePriority ( float priority ) = 0; virtual void updateFreedomDegree (); virtual void setDoglegLevel ( uint32_t ); virtual void swapTrack ( TrackElement* ); @@ -231,6 +234,7 @@ namespace Katana { inline DbU::Unit TrackElement::getTargetU () const { return _targetU; } inline Interval TrackElement::getCanonicalInterval () const { return Interval(getSourceU(),getTargetU()); } inline void TrackElement::setIndex ( size_t index ) { _index=index; } + inline void TrackElement::updatePriority () { updatePriority( 0.0 ); } inline void TrackElement::setRouted() { diff --git a/katana/src/katana/TrackFixedSegment.h b/katana/src/katana/TrackFixedSegment.h index 3af7060b..b9772cee 100644 --- a/katana/src/katana/TrackFixedSegment.h +++ b/katana/src/katana/TrackFixedSegment.h @@ -53,15 +53,15 @@ namespace Katana { virtual TrackElement* getPrevious () const; virtual DbU::Unit getAxis () const; virtual Interval getFreeInterval () const; + virtual float getPriority () const; + virtual void updatePriority ( float ); virtual Record* _getRecord () const; virtual string _getString () const; virtual string _getTypeName () const; - protected: // Attributes. static Net* _blockageNet; Segment* _segment; - protected: // Constructors & Destructors. TrackFixedSegment ( Track*, Segment* ) ; @@ -71,7 +71,6 @@ namespace Katana { private: TrackFixedSegment ( const TrackFixedSegment& ); TrackFixedSegment& operator= ( const TrackFixedSegment& ); - }; diff --git a/katana/src/katana/TrackSegment.h b/katana/src/katana/TrackSegment.h index ea6dbce7..9b3ab788 100644 --- a/katana/src/katana/TrackSegment.h +++ b/katana/src/katana/TrackSegment.h @@ -88,6 +88,7 @@ namespace Katana { virtual DbU::Unit getPitch () const; virtual DbU::Unit getPPitch () const; virtual unsigned long getFreedomDegree () const; + virtual float getPriority () const; virtual uint32_t getDoglegLevel () const; virtual TrackElement* getNext () const; virtual TrackElement* getPrevious () const; @@ -107,6 +108,7 @@ namespace Katana { // Mutators. virtual void setTrack ( Track* ); virtual void setSymmetric ( TrackElement* ); + virtual void updatePriority ( float ); virtual void updateFreedomDegree (); virtual void setDoglegLevel ( uint32_t ); virtual void swapTrack ( TrackElement* ); @@ -140,6 +142,7 @@ namespace Katana { unsigned long _freedomDegree; DbU::Unit _ppitch; DataNegociate* _data; + float _priority; unsigned int _dogLegLevel:4; protected: From 8a73b03fd8c6fb8c2702865a2b28e88fa31a3083 Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Tue, 30 May 2017 22:33:06 +0200 Subject: [PATCH 17/30] Synchronize priority of TrackSegments connecteds through doglegs. * Bug: In Anabatic::Dijsktra, correct the indentation in cdebug calls (lots of them causing a big shift right). * New: In Anabatic::TrackSegment, new helper structure SideStack to manage a set of aligned GCells and their various sides sizes. * Change: In Anabatic::TrackSegment::computeOptimal(), more accurate computation of attractors from global segments and variable size GCells using SideStack. * Change: In Katana::DataSymmetric::checkPairing(), increase the tolerance for misaligned symmetrics from 2 to 5 tracks (should be enough for our narrow channel routing). * New: In Katana::TrackSegment, add a first flag to enable locking of priority. If it is set, calls to either "computePriority()" or "forcePriority()" will have no effect. Added the uint32_t flags paraphernalia. * New: In ::computeNetPriority(), overall function to control the call of TrackSegment::computeAlignedPriority(). The call is done from NegociateWindow::run(). * New: Katana::TrackSegment::computeAlignedPriority(), order the TrackSegments aligneds through doglegs to the one with the highest priority is routed first and others progressively from him. Done by forcing an ever decreasing priority on the aligneds ones. The amount of decrease is small so the aligned segments got routed (ordered) in close, if not contiguous, sequence. Priority is locked for the order to remain. * Bug: In Katana::TrackSegment::computePriority(), correct computation of the priority when there is more than 10 free tracks (a DbU::toLambda() call was missing, leading to very big priorities). * Change: In katana::TrackCost CTOR, do not compute a distance to fixed in the case of analog segments, this is backfiring. Slight change of the compare function when delta differs. Seems to improve a little. --- anabatic/src/AnabaticEngine.cpp | 1 - anabatic/src/AutoSegment.cpp | 121 +++++++++++--- anabatic/src/Dijkstra.cpp | 50 +++--- katana/src/DataSymmetric.cpp | 12 +- katana/src/KatanaEngine.cpp | 5 +- katana/src/NegociateWindow.cpp | 43 +++++ katana/src/RoutingEvent.cpp | 2 +- katana/src/SegmentFsm.cpp | 1 + katana/src/Session.cpp | 5 +- katana/src/TrackCost.cpp | 51 +++--- katana/src/TrackElement.cpp | 1 + katana/src/TrackFixedSegment.cpp | 33 ++-- katana/src/TrackSegment.cpp | 68 +++++++- katana/src/katana/NegociateWindow.h | 1 + katana/src/katana/TrackCost.h | 11 +- katana/src/katana/TrackElement.h | 217 +++++++++++++------------- katana/src/katana/TrackFixedSegment.h | 44 +++--- katana/src/katana/TrackSegment.h | 13 +- 18 files changed, 453 insertions(+), 226 deletions(-) diff --git a/anabatic/src/AnabaticEngine.cpp b/anabatic/src/AnabaticEngine.cpp index a35fe28d..093a0499 100644 --- a/anabatic/src/AnabaticEngine.cpp +++ b/anabatic/src/AnabaticEngine.cpp @@ -606,7 +606,6 @@ namespace Anabatic { void AnabaticEngine::ripup ( Segment* seed, Flags flags ) { - Net* net = seed->getNet(); DebugSession::open( net, 112, 120 ); diff --git a/anabatic/src/AutoSegment.cpp b/anabatic/src/AutoSegment.cpp index 07ea93a3..eb1c7fb3 100644 --- a/anabatic/src/AutoSegment.cpp +++ b/anabatic/src/AutoSegment.cpp @@ -233,6 +233,77 @@ namespace { } + // --------------------------------------------------------------- + // Class : "SideStack". + + class SideStack { + public: + SideStack ( Flags direction, DbU::Unit pitch ); + const Interval& getSideAt ( DbU::Unit ) const; + inline const Interval& getGSide () const; + inline DbU::Unit getGSideMin () const; + inline DbU::Unit getGSideMax () const; + void addGCell ( const GCell* ); + inline void restrictGSide ( const Interval& ); + void show () const; + private: + Flags _direction; + DbU::Unit _pitch; + Interval _full; + Interval _gside; + map _sides; + }; + + + SideStack::SideStack ( Flags direction, DbU::Unit pitch ) + : _direction( (direction & Flags::Horizontal) ? Flags::Vertical : Flags::Horizontal ) + , _pitch (pitch) + , _full (false) + , _gside (false) + , _sides () + { } + + + inline const Interval& SideStack::getGSide () const { return _gside; } + inline DbU::Unit SideStack::getGSideMin () const { return _gside.getVMin(); } + inline DbU::Unit SideStack::getGSideMax () const { return _gside.getVMax(); } + inline void SideStack::restrictGSide ( const Interval& restrict ) { _gside.intersection( restrict ); } + + + const Interval& SideStack::getSideAt ( DbU::Unit position ) const + { + if (_sides.empty()) return _full; + if (_sides.size() == 1) return _sides.begin()->second; + + if (_sides.begin()->first > position) return _sides.begin()->second; + for ( auto iside = ++_sides.begin() ; iside != _sides.end() ; ++iside ) { + if (iside->first >= position) return (--iside)->second; + } + return _sides.rbegin()->second; + } + + + void SideStack::addGCell ( const GCell* gcell ) + { + Interval side = gcell->getSide( _direction, _pitch ); + DbU::Unit position = (_direction & Flags::Vertical) ? gcell->getBoundingBox().getXMin() + : gcell->getBoundingBox().getYMin(); + + _gside.intersection( side ); + _sides.insert( make_pair(position,side) ); + } + + + void SideStack::show () const + { + cdebug_log(145,0) << "SideStack::show()" << endl; + for ( auto pside : _sides ) { + cdebug_log(145,0) << "@ " << DbU::getValueString(pside.first) + << " " << pside.second << endl; + } + } + + } // End of local namespace. @@ -828,7 +899,7 @@ namespace Anabatic { cdebug_tabw(149,-1); return true; } - + if (getAxis() > optimalMax) { setAxis( optimalMax, flags ); cdebug_tabw(149,-1); @@ -922,6 +993,7 @@ namespace Anabatic { DbU::Unit constraintMin; DbU::Unit constraintMax; vector aligneds; + SideStack sideStack ( (isHorizontal() ? Flags::Horizontal : Flags::Vertical), getPitch() ); getConstraints( constraintMin, constraintMax ); cdebug_log(145,0) << "Constraints: [" << DbU::getValueString(constraintMin) @@ -931,43 +1003,37 @@ namespace Anabatic { optimalMin = optimalMax = getAxis(); aligneds.push_back( this ); } else { - DbU::Unit minGCell = getOrigin(); - DbU::Unit maxGCell = getExtremity(); DbU::Unit terminalMin; DbU::Unit terminalMax; AttractorsMap attractors; Flags flags = (isAnalog() ? Flags::WithDoglegs : Flags::NoFlags); - Flags f2 = flags | Flags::WithSelf; getAligneds( Flags::WithSelf|flags ).fill( aligneds ); - if (not getGCell()->isMatrix()) { - Flags direction = (isHorizontal()) ? Flags::Vertical : Flags::Horizontal; - Interval gcellSide ( false ); + if (getGCell()->isMatrix()) { + sideStack.addGCell( getGCell() ); + } else { vector gcells; - DbU::Unit pitch = getPitch(); - cdebug_log(145,0) << "Using pitch for L/T shrink:" << DbU::getValueString(pitch) << endl; + cdebug_log(145,0) << "Using pitch for L/T shrink:" << DbU::getValueString(getPitch()) << endl; for ( AutoSegment* aligned : aligneds ) { aligned->getGCells( gcells ); for ( GCell* gcell : gcells ) { - gcellSide.intersection( gcell->getSide(direction,pitch) ); - cdebug_log(145,0) << "| gcellSide:" << gcellSide << " (from " << gcell << ")" << endl; + sideStack.addGCell( gcell ); + cdebug_log(145,0) << "| gcellSide:" << sideStack.getGSide() << " (from " << gcell << ")" << endl; } if (aligned->isStrongTerminal()) { Interval terminalConstraints; aligned->getConstraints( terminalConstraints ); - gcellSide.intersection( terminalConstraints ); - cdebug_log(145,0) << "| gcellSide:" << gcellSide << " (from " << aligned << ")" << endl; + sideStack.restrictGSide( terminalConstraints ); + cdebug_log(145,0) << "| gcellSide:" << sideStack.getGSide() << " (from " << aligned << ")" << endl; } } - minGCell = gcellSide.getVMin(); - maxGCell = gcellSide.getVMax(); } + sideStack.show(); - cdebug_log(145,0) << "GCell interval [" << DbU::getValueString(minGCell) - << ":" << DbU::getValueString(maxGCell) << "]" << endl; + cdebug_log(145,0) << "GCell interval " << sideStack.getGSide() << endl; AutoContact* anchor = getAutoSource(); if (anchor->isTerminal()) { @@ -1006,12 +1072,19 @@ namespace Anabatic { if (autoSegment->isGlobal()) { cdebug_log(145,0) << "Used as global." << endl; - // Sloppy implentation. - DbU::Unit perpandMin = autoSegment->getSourceU(); - DbU::Unit perpandMax = autoSegment->getTargetU(); + const Interval& side = sideStack.getSideAt( autoSegment->getAxis() ); + cdebug_log(145,0) << "Side @" << DbU::getValueString(autoSegment->getAxis()) + << " " << side << endl; - if (perpandMin < minGCell) attractors.addAttractor( minGCell ); - if (perpandMax > maxGCell) attractors.addAttractor( maxGCell ); + if (autoSegment->getSourceU() < side.getVMin()) attractors.addAttractor( sideStack.getGSideMin() ); + if (autoSegment->getTargetU() > side.getVMax()) attractors.addAttractor( sideStack.getGSideMax() ); + + // // Sloppy implentation. + // DbU::Unit perpandMin = autoSegment->getSourceU(); + // DbU::Unit perpandMax = autoSegment->getTargetU(); + + // if (perpandMin < minGCell) attractors.addAttractor( minGCell ); + // if (perpandMax > maxGCell) attractors.addAttractor( maxGCell ); } else if (autoSegment->isLocal()) { if (autoSegment->isStrongTerminal()) { cdebug_log(145,0) << "Used as strong terminal." << endl; @@ -1054,8 +1127,8 @@ namespace Anabatic { : _gcell->getBoundingBox().getXMax(); } - setInBound( minGCell, maxGCell, optimalMin ); - setInBound( minGCell, maxGCell, optimalMax ); + setInBound( sideStack.getGSideMin(), sideStack.getGSideMax(), optimalMin ); + setInBound( sideStack.getGSideMin(), sideStack.getGSideMax(), optimalMax ); cdebug_log(145,0) << "optimalMin: " << DbU::getValueString(optimalMin) << endl; cdebug_log(145,0) << "optimalMax: " << DbU::getValueString(optimalMax) << endl; diff --git a/anabatic/src/Dijkstra.cpp b/anabatic/src/Dijkstra.cpp index b3ad7cf7..5dbc0d1d 100644 --- a/anabatic/src/Dijkstra.cpp +++ b/anabatic/src/Dijkstra.cpp @@ -394,7 +394,8 @@ namespace Anabatic { IntervalC intervfrom = IntervalC(); if (_adata == NULL){ - cdebug_log(112,1) << "Point Vertex::getStartPathPoint( const Vertex* next ) const: GRAData unset." << endl; + cdebug_log(112,0) << "Point Vertex::getStartPathPoint( const Vertex* next ) const: GRAData unset." << endl; + cdebug_tabw(112,-1); return Point(0,0); } @@ -754,6 +755,7 @@ namespace Anabatic { } else { cdebug_log(112,0) << "[ERROR](void Vertex::setIntervals(...)): Something is wrong." << endl; + cdebug_tabw(112,-1); return; } cdebug_log(112,0) << "IntervFrom => min: " << DbU::getValueString(min) << ", max: " << DbU::getValueString(max) << ", axis:" << DbU::getValueString(axis) << endl; @@ -792,7 +794,7 @@ namespace Anabatic { if (_adata){ return _adata->isiSet(); } else { - cdebug_log(112,1) << "bool Vertex::isiSet() const: Inappropriate usage of GRAData. " << endl; + cdebug_log(112,0) << "bool Vertex::isiSet() const: Inappropriate usage of GRAData. " << endl; return false; } } @@ -803,7 +805,7 @@ namespace Anabatic { if (_adata){ return _adata->getIAxis(); } else { - cdebug_log(112,1) << "DbU::Unit Vertex::getIAxis() const: Inappropriate usage of GRAData. " << endl; + cdebug_log(112,0) << "DbU::Unit Vertex::getIAxis() const: Inappropriate usage of GRAData. " << endl; return 0; } } @@ -814,7 +816,7 @@ namespace Anabatic { if (_adata){ return _adata->getIMax(); } else { - cdebug_log(112,1) << "DbU::Unit Vertex::getIMax() const: Inappropriate usage of GRAData. " << endl; + cdebug_log(112,0) << "DbU::Unit Vertex::getIMax() const: Inappropriate usage of GRAData. " << endl; return 0; } } @@ -825,7 +827,7 @@ namespace Anabatic { if (_adata){ return _adata->getIMin(); } else { - cdebug_log(112,1) << "DbU::Unit Vertex::getIMin() const: Inappropriate usage of GRAData. " << endl; + cdebug_log(112,0) << "DbU::Unit Vertex::getIMin() const: Inappropriate usage of GRAData. " << endl; return 0; } } @@ -836,7 +838,7 @@ namespace Anabatic { if (_adata){ return _adata->getPIAxis(); } else { - cdebug_log(112,1) << "DbU::Unit Vertex::getPIAxis() const: Inappropriate usage of GRAData. " << endl; + cdebug_log(112,0) << "DbU::Unit Vertex::getPIAxis() const: Inappropriate usage of GRAData. " << endl; return 0; } } @@ -847,7 +849,7 @@ namespace Anabatic { if (_adata){ return _adata->getPIMax(); } else { - cdebug_log(112,1) << "DbU::Unit Vertex::getPIMax() const: Inappropriate usage of GRAData. " << endl; + cdebug_log(112,0) << "DbU::Unit Vertex::getPIMax() const: Inappropriate usage of GRAData. " << endl; return 0; } } @@ -858,7 +860,7 @@ namespace Anabatic { if (_adata){ return _adata->getPIMin(); } else { - cdebug_log(112,1) << "DbU::Unit Vertex::getPIMin() const: Inappropriate usage of GRAData. " << endl; + cdebug_log(112,0) << "DbU::Unit Vertex::getPIMin() const: Inappropriate usage of GRAData. " << endl; return 0; } } @@ -869,7 +871,7 @@ namespace Anabatic { if (_adata){ _adata->setInterv(min, max, axis); } else { - cdebug_log(112,1) << "void Vertex::setInterv( DbU::Unit min, DbU::Unit max, DbU::Unit axis ): Inappropriate usage of GRAData. " << endl; + cdebug_log(112,0) << "void Vertex::setInterv( DbU::Unit min, DbU::Unit max, DbU::Unit axis ): Inappropriate usage of GRAData. " << endl; } } @@ -879,7 +881,7 @@ namespace Anabatic { if (_adata){ _adata->setIntervfrom(min, max, axis); } else { - cdebug_log(112,1) << "void Vertex::setIntervfrom( DbU::Unit min, DbU::Unit max, DbU::Unit axis ): Inappropriate usage of GRAData. " << endl; + cdebug_log(112,0) << "void Vertex::setIntervfrom( DbU::Unit min, DbU::Unit max, DbU::Unit axis ): Inappropriate usage of GRAData. " << endl; } } @@ -889,7 +891,7 @@ namespace Anabatic { if (_adata){ _adata->setIntervfrom2(min, max, axis); } else { - cdebug_log(112,1) << "void Vertex::setIntervfrom2( DbU::Unit min, DbU::Unit max, DbU::Unit axis ): Inappropriate usage of GRAData. " << endl; + cdebug_log(112,0) << "void Vertex::setIntervfrom2( DbU::Unit min, DbU::Unit max, DbU::Unit axis ): Inappropriate usage of GRAData. " << endl; } } @@ -899,7 +901,7 @@ namespace Anabatic { if (_adata){ _adata->resetIntervals(); } else { - cdebug_log(112,1) << "void Vertex::resetIntervals(): Inappropriate usage of GRAData. " << endl; + cdebug_log(112,0) << "void Vertex::resetIntervals(): Inappropriate usage of GRAData. " << endl; } } @@ -909,7 +911,7 @@ namespace Anabatic { if (_adata){ _adata->clearFrom2(); } else { - cdebug_log(112,1) << "void Vertex::clearfrom2(): Inappropriate usage of GRAData. " << endl; + cdebug_log(112,0) << "void Vertex::clearfrom2(): Inappropriate usage of GRAData. " << endl; } } @@ -919,7 +921,7 @@ namespace Anabatic { if (_adata){ return _adata->getFrom2(); } else { - cdebug_log(112,1) << "Edge* Vertex::getFrom2() const: Inappropriate usage of GRAData. " << endl; + cdebug_log(112,0) << "Edge* Vertex::getFrom2() const: Inappropriate usage of GRAData. " << endl; return NULL; } } @@ -930,7 +932,7 @@ namespace Anabatic { if (_adata){ _adata->setFrom2(from); } else { - cdebug_log(112,1) << "void Vertex::setFrom2( Edge* from ): Inappropriate usage of GRAData. " << endl; + cdebug_log(112,0) << "void Vertex::setFrom2( Edge* from ): Inappropriate usage of GRAData. " << endl; } } @@ -940,7 +942,7 @@ namespace Anabatic { if (_adata){ //_adata->createIntervFrom2(); } else { - cdebug_log(112,1) << "void Vertex::createIntervFrom2(): Inappropriate usage of GRAData. " << endl; + cdebug_log(112,0) << "void Vertex::createIntervFrom2(): Inappropriate usage of GRAData. " << endl; } } @@ -950,7 +952,7 @@ namespace Anabatic { if (_adata){ return _adata->getPIMax2(); } else { - cdebug_log(112,1) << "DbU::Unit Vertex::getPIMax2() const: Inappropriate usage of GRAData. " << endl; + cdebug_log(112,0) << "DbU::Unit Vertex::getPIMax2() const: Inappropriate usage of GRAData. " << endl; return 0; } } @@ -961,7 +963,7 @@ namespace Anabatic { if (_adata){ return _adata->getPIMin2(); } else { - cdebug_log(112,1) << "DbU::Unit Vertex::getPIMin2() const: Inappropriate usage of GRAData. " << endl; + cdebug_log(112,0) << "DbU::Unit Vertex::getPIMin2() const: Inappropriate usage of GRAData. " << endl; return 0; } } @@ -972,7 +974,7 @@ namespace Anabatic { if (_adata){ return _adata->getPIAxis2(); } else { - cdebug_log(112,1) << "DbU::Unit Vertex::getPIAxis2() const: Inappropriate usage of GRAData. " << endl; + cdebug_log(112,0) << "DbU::Unit Vertex::getPIAxis2() const: Inappropriate usage of GRAData. " << endl; return 0; } } @@ -983,7 +985,7 @@ namespace Anabatic { if (_adata){ return _adata->getIntervFrom2(); } else { - cdebug_log(112,1) << "DbU::Unit Vertex::getIntervFrom2() const: Inappropriate usage of GRAData. " << endl; + cdebug_log(112,0) << "DbU::Unit Vertex::getIntervFrom2() const: Inappropriate usage of GRAData. " << endl; return IntervalC(); } } @@ -1017,7 +1019,7 @@ namespace Anabatic { return _adata->getIntervFrom(); } } else { - cdebug_log(112,1) << "DbU::Unit Vertex::getIntervFrom(Flags criteria) const: Inappropriate usage of GRAData. " << endl; + cdebug_log(112,0) << "DbU::Unit Vertex::getIntervFrom(Flags criteria) const: Inappropriate usage of GRAData. " << endl; return IntervalC(); } } @@ -1066,7 +1068,7 @@ namespace Anabatic { if (_adata){ return _adata->getInterv(); } else { - cdebug_log(112,1) << "DbU::Unit Vertex::getInterv() const: Inappropriate usage of GRAData. " << endl; + cdebug_log(112,0) << "DbU::Unit Vertex::getInterv() const: Inappropriate usage of GRAData. " << endl; return IntervalC(); } } @@ -1077,7 +1079,7 @@ namespace Anabatic { if (_adata){ _adata->printInterv(); } else { - cdebug_log(112,1) << "void Vertex::printInterv() const: Inappropriate usage of GRAData. " << endl; + cdebug_log(112,0) << "void Vertex::printInterv() const: Inappropriate usage of GRAData. " << endl; } } @@ -1087,7 +1089,7 @@ namespace Anabatic { if (_adata){ _adata->printIntervfrom(); } else { - cdebug_log(112,1) << "void Vertex::printIntervfrom() const: Inappropriate usage of GRAData. " << endl; + cdebug_log(112,0) << "void Vertex::printIntervfrom() const: Inappropriate usage of GRAData. " << endl; } } diff --git a/katana/src/DataSymmetric.cpp b/katana/src/DataSymmetric.cpp index 2524a1d4..aaf69f69 100644 --- a/katana/src/DataSymmetric.cpp +++ b/katana/src/DataSymmetric.cpp @@ -167,12 +167,13 @@ namespace Katana { _valid = false; } - if (std::abs( 2*getSymAxis() - paired[0]->getAxis() - paired[1]->getAxis() ) > 2*vPitch ) { + if (std::abs( 2*getSymAxis() - paired[0]->getAxis() - paired[1]->getAxis() ) > 5*vPitch ) { errors.newline() << "Mirror axis mismatch @ [" << index << "] " << DbU::getValueString(paired[1]->getAxis()) << " (should be: " << DbU::getValueString(2*getSymAxis() - paired[0]->getAxis()) << ")"; errors.newline() << "| " << paired[0]; errors.newline() << "| " << paired[1]; + errors.newline() << "| Tolerance (5*vPitch): " << DbU::getValueString(5*vPitch); _valid = false; } } else { @@ -184,32 +185,35 @@ namespace Katana { _valid = false; } - if ( std::abs( paired[0]->getAxis() - paired[1]->getAxis() ) > 2*hPitch ) { + if ( std::abs( paired[0]->getAxis() - paired[1]->getAxis() ) > 5*hPitch ) { errors.newline() << "Axis mismatch index " << index << " " << DbU::getValueString(paired[1]->getAxis()) << " (should be:" << DbU::getValueString(paired[0]->getAxis()) << ")"; errors.newline() << "| " << paired[0]; errors.newline() << "| " << paired[1]; + errors.newline() << "| Tolerance (5*hPitch): " << DbU::getValueString(5*hPitch); _valid = false; } } } else { if (paired[0]->isHorizontal()) { - if ( std::abs( 2*getSymAxis() - paired[0]->getAxis() - paired[1]->getAxis() ) > 2*hPitch ) { + if ( std::abs( 2*getSymAxis() - paired[0]->getAxis() - paired[1]->getAxis() ) > 5*hPitch ) { errors.newline() << "Mirror axis mismatch index " << index << " " << DbU::getValueString(paired[1]->getAxis()) << " (should be:" << DbU::getValueString(2*getSymAxis() - paired[0]->getAxis()) << ")"; errors.newline() << "| " << paired[0]; errors.newline() << "| " << paired[1]; + errors.newline() << "| Tolerance (5*hPitch): " << DbU::getValueString(5*hPitch); _valid = false; } } else { - if ( std::abs( paired[0]->getAxis() != paired[1]->getAxis() ) > 2*vPitch ) { + if ( std::abs( paired[0]->getAxis() != paired[1]->getAxis() ) > 5*vPitch ) { errors.newline() << "Axis mismatch index " << index << " " << DbU::getValueString(paired[1]->getAxis()) << " (should be:" << DbU::getValueString(paired[0]->getAxis()) << ")"; errors.newline() << "| " << paired[0]; errors.newline() << "| " << paired[1]; + errors.newline() << "| Tolerance (5*vPitch): " << DbU::getValueString(5*vPitch); _valid = false; } } diff --git a/katana/src/KatanaEngine.cpp b/katana/src/KatanaEngine.cpp index a752861f..d5ccc604 100644 --- a/katana/src/KatanaEngine.cpp +++ b/katana/src/KatanaEngine.cpp @@ -54,6 +54,9 @@ namespace { using Hurricane::NetRoutingExtension; using Hurricane::Net; using Hurricane::Cell; + using Hurricane::Segment; + using Katana::Session; + using Katana::TrackSegment; void setSymmetricSelf ( Cell* cell, string name ) @@ -562,7 +565,7 @@ namespace Katana { addMeasure( getCell(), "DWL(l)" , totalWireLength , 12 ); addMeasure( getCell(), "fWL(l)" , totalWireLength-routedWireLength , 12 ); addMeasure ( getCell(), "WLER(%)", (expandRatio-1.0)*100.0 ); -} + } void KatanaEngine::dumpMeasures ( ostream& out ) const diff --git a/katana/src/NegociateWindow.cpp b/katana/src/NegociateWindow.cpp index 20d4b396..d09ea9cb 100644 --- a/katana/src/NegociateWindow.cpp +++ b/katana/src/NegociateWindow.cpp @@ -18,6 +18,7 @@ #include #include #include +#include "hurricane/DebugSession.h" #include "hurricane/Warning.h" #include "hurricane/Bug.h" #include "hurricane/RoutingPad.h" @@ -133,6 +134,38 @@ namespace { } + class CompareByPriority { + public: + inline bool operator() ( const TrackSegment* lhs, const TrackSegment* rhs ) + { return lhs->getPriority() > rhs->getPriority(); } + }; + + + void computeNetPriority ( Net* net ) + { + DebugSession::open( net, 159, 160 ); + + cdebug_log(159,1) << "::computeNetPriority() " << net << endl; + + vector segments; + for ( Segment* segment : net->getSegments() ) { + TrackSegment* canonical = dynamic_cast( Session::lookup( segment ) ); + if (canonical) segments.push_back( canonical ); + } + + for ( TrackSegment* segment : segments ) segment->computePriority(); + sort( segments.begin(), segments.end(), CompareByPriority() ); + + for ( TrackSegment* segment : segments ) { + segment->computeAlignedPriority(); + } + + cdebug_tabw(159,-1); + + DebugSession::close(); + } + + } // Anonymous namespace. @@ -149,6 +182,7 @@ namespace Katana { using Hurricane::Bug; using Hurricane::tab; using Hurricane::ForEachIterator; + using Hurricane::DebugSession; using CRL::Histogram; using CRL::addMeasure; using Anabatic::AutoContact; @@ -343,6 +377,14 @@ namespace Katana { } + void NegociateWindow::_computePriorities () + { + for ( Net* net : getCell()->getNets() ) { + if (NetRoutingExtension::isAnalog(net)) computeNetPriority( net ); + } + } + + void NegociateWindow::_createRouting ( Anabatic::GCell* gcell ) { cdebug_log(159,1) << "NegociateWindow::_createRouting() - " << gcell << endl; @@ -561,6 +603,7 @@ namespace Katana { _createRouting( _gcells[igcell] ); } Session::revalidate(); + _computePriorities(); if (not (flags & Flags::PreRoutedStage)) { _katana->preProcess(); diff --git a/katana/src/RoutingEvent.cpp b/katana/src/RoutingEvent.cpp index 865c3846..ec7a3ef2 100644 --- a/katana/src/RoutingEvent.cpp +++ b/katana/src/RoutingEvent.cpp @@ -655,7 +655,7 @@ namespace Katana { and _segment->base()->getAutoTarget()->isTerminal(); } - _segment->updatePriority(); + _segment->computePriority(); cdebug_log(159,0) << _segment << " has " << (int)_tracksNb << " choices " << perpandicular << endl; cdebug_tabw(159,-1); diff --git a/katana/src/SegmentFsm.cpp b/katana/src/SegmentFsm.cpp index 08ebe923..26053225 100644 --- a/katana/src/SegmentFsm.cpp +++ b/katana/src/SegmentFsm.cpp @@ -570,6 +570,7 @@ namespace Katana { for ( Track* track1 : Tracks_Range::get(plane,_constraint) ) { uint32_t costflags = 0; costflags |= (segment1->isLocal() and (depth >= 3)) ? TrackCost::LocalAndTopDepth : 0; + costflags |= (segment1->isAnalog()) ? TrackCost::Analog : 0; Track* track2 = NULL; if (_event2) { diff --git a/katana/src/Session.cpp b/katana/src/Session.cpp index 0f543dd0..fe6df948 100644 --- a/katana/src/Session.cpp +++ b/katana/src/Session.cpp @@ -226,9 +226,10 @@ namespace Katana { cdebug_log(159,0) << "Session: reduce:" << revalidateds[i] << endl; } if (revalidateds[i]->mustRaise()) { - revalidateds[i]->raise(); - lookup( revalidateds[i] )->reschedule( 0 ); cdebug_log(159,0) << "Session: raise:" << revalidateds[i] << endl; + revalidateds[i]->raise(); + TrackElement* trackSegment = lookup( revalidateds[i] ); + if (trackSegment) trackSegment->reschedule( 0 ); } } diff --git a/katana/src/TrackCost.cpp b/katana/src/TrackCost.cpp index 57a04d86..e173ede2 100644 --- a/katana/src/TrackCost.cpp +++ b/katana/src/TrackCost.cpp @@ -91,34 +91,36 @@ namespace Katana { , _dataState (0) , _ripupCount (0) { - // This is the GCell side (it is *one* cell height from the gauge). - DbU::Unit cellHeight = Session::getSliceHeight(); + if (not (_flags & Analog)) { + // This is the GCell side (it is *one* cell height from the gauge). + DbU::Unit cellHeight = Session::getSliceHeight(); - TrackElement* neighbor; - if ( _begin != Track::npos ) { - neighbor = _track->getSegment(_begin); - if ( neighbor and (neighbor->getNet() != net) ) { - DbU::Unit distance = interval.getVMin() - neighbor->getTargetU(); - if ( distance < cellHeight ) - _distanceToFixed = distance; - } + TrackElement* neighbor; + if ( _begin != Track::npos ) { + neighbor = _track->getSegment(_begin); + if ( neighbor and (neighbor->getNet() != net) ) { + DbU::Unit distance = interval.getVMin() - neighbor->getTargetU(); + if ( distance < cellHeight ) + _distanceToFixed = distance; + } // if ( neighbor and neighbor->isFixed() ) { // if ( _distanceToFixed == DbU::Max ) _distanceToFixed = 0; // _distanceToFixed += interval.getVMin() - neighbor->getTargetU(); // } - } - if ( _end != Track::npos ) { - neighbor = _track->getSegment(_end); - if ( neighbor and (neighbor->getNet() != net) ) { - DbU::Unit distance = neighbor->getSourceU() - interval.getVMax(); - if ( _distanceToFixed == 2*cellHeight ) _distanceToFixed = 0; - if ( distance < cellHeight ) - _distanceToFixed += distance; } + if ( _end != Track::npos ) { + neighbor = _track->getSegment(_end); + if ( neighbor and (neighbor->getNet() != net) ) { + DbU::Unit distance = neighbor->getSourceU() - interval.getVMax(); + if ( _distanceToFixed == 2*cellHeight ) _distanceToFixed = 0; + if ( distance < cellHeight ) + _distanceToFixed += distance; + } // if ( neighbor and neighbor->isFixed() ) { // if ( _distanceToFixed == DbU::Max ) _distanceToFixed = 0; // _distanceToFixed += neighbor->getSourceU() - interval.getVMax(); // } + } } } @@ -162,12 +164,14 @@ namespace Katana { if (lhs._delta != rhs._delta) { //cdebug_log(155,0) << "TrackCost::Compare() lhs._delta:" << lhs._delta << " rhs._delta:" << rhs._delta << endl; - if ( not (_flags & TrackCost::IgnoreSharedLength) or (lhs._delta > 0) or (rhs._delta > 0) ) { + //if ( not (_flags & TrackCost::IgnoreSharedLength) or (lhs._delta > 0) or (rhs._delta > 0) ) { //if ( (lhs._delta > 0) or (rhs._delta > 0) ) { if (lhs._delta < rhs._delta) return true; if (lhs._delta > rhs._delta) return false; - } + //} + // Both delta should be negative, chose the least one. + //return lhs._delta > rhs._delta; return lhs._delta < rhs._delta; } @@ -210,8 +214,9 @@ namespace Katana { if ( not _infinite and not _hardOverlap ) { cdebug_log(159,0) << "TrackCost::consolidate() " << _delta << " - " << _deltaShared << endl; //_deltaPerpand += - (_deltaShared << 1); - _delta += - _deltaShared; - //_delta += _deltaShared; + _delta -= _deltaShared; + //if (_delta > 0) _delta -= _deltaShared; + //else _delta += _deltaShared; } } @@ -249,7 +254,7 @@ namespace Katana { s += "-" + /*DbU::getValueString(_deltaShared)*/ getString(_deltaShared); s += "/" + DbU::getValueString(_axisWeight); s += "/" + DbU::getValueString(_deltaPerpand); - s += "/" + DbU::getValueString(_distanceToFixed); + s += "/f:" + DbU::getValueString(_distanceToFixed); s += "/" + DbU::getValueString(_longuestOverlap); s += " " + getString(_dataState); s += ">"; diff --git a/katana/src/TrackElement.cpp b/katana/src/TrackElement.cpp index 2b28774b..c36399d9 100644 --- a/katana/src/TrackElement.cpp +++ b/katana/src/TrackElement.cpp @@ -144,6 +144,7 @@ namespace Katana { bool TrackElement::isReduced () const { return false; } bool TrackElement::isUTurn () const { return false; } bool TrackElement::isUserDefined () const { return false; } + bool TrackElement::isAnalog () const { return false; } // Predicates. bool TrackElement::hasSymmetric () const { return false; } bool TrackElement::canSlacken () const { return false; } diff --git a/katana/src/TrackFixedSegment.cpp b/katana/src/TrackFixedSegment.cpp index fb465ce6..dd763853 100644 --- a/katana/src/TrackFixedSegment.cpp +++ b/katana/src/TrackFixedSegment.cpp @@ -130,15 +130,16 @@ namespace Katana { } - AutoSegment* TrackFixedSegment::base () const { return NULL; } - Segment* TrackFixedSegment::getSegment () const { return _segment; } - DbU::Unit TrackFixedSegment::getAxis () const { return getTrack()->getAxis(); } - bool TrackFixedSegment::isHorizontal () const { return getTrack()->isHorizontal(); } - bool TrackFixedSegment::isVertical () const { return getTrack()->isVertical(); } - bool TrackFixedSegment::isFixed () const { return true; } - Flags TrackFixedSegment::getDirection () const { return getTrack()->getDirection(); } - const Layer* TrackFixedSegment::getLayer () const { return _segment->getLayer(); } - Interval TrackFixedSegment::getFreeInterval () const { return Interval(); } + AutoSegment* TrackFixedSegment::base () const { return NULL; } + Segment* TrackFixedSegment::getSegment () const { return _segment; } + DbU::Unit TrackFixedSegment::getAxis () const { return getTrack()->getAxis(); } + bool TrackFixedSegment::isHorizontal () const { return getTrack()->isHorizontal(); } + bool TrackFixedSegment::isVertical () const { return getTrack()->isVertical(); } + bool TrackFixedSegment::isFixed () const { return true; } + bool TrackFixedSegment::isPriorityLocked () const { return false; } + Flags TrackFixedSegment::getDirection () const { return getTrack()->getDirection(); } + const Layer* TrackFixedSegment::getLayer () const { return _segment->getLayer(); } + Interval TrackFixedSegment::getFreeInterval () const { return Interval(); } unsigned long TrackFixedSegment::getId () const @@ -175,7 +176,19 @@ namespace Katana { { return 0.0; } - void TrackFixedSegment::updatePriority ( float ) + void TrackFixedSegment::setPriorityLock ( bool ) + { } + + + void TrackFixedSegment::forcePriority ( float ) + { } + + + void TrackFixedSegment::computePriority () + { } + + + void TrackFixedSegment::computeAlignedPriority () { } diff --git a/katana/src/TrackSegment.cpp b/katana/src/TrackSegment.cpp index 6cf9628f..2554e2d2 100644 --- a/katana/src/TrackSegment.cpp +++ b/katana/src/TrackSegment.cpp @@ -67,6 +67,7 @@ namespace Katana { , _data (NULL) , _priority (0.0) , _dogLegLevel (0) + , _flags (NoFlags) { cdebug_log(155,0) << "CTOR TrackSegment " << (void*)this << ":" << this << endl; cdebug_log(155,0) << " over " << (void*)segment << ":" << segment << endl; @@ -162,6 +163,8 @@ namespace Katana { bool TrackSegment::isReduced () const { return _base->isReduced(); } bool TrackSegment::isUserDefined () const { return _base->isUserDefined(); } bool TrackSegment::isUTurn () const { return _base->isUTurn(); } + bool TrackSegment::isAnalog () const { return _base->isAnalog(); } + bool TrackSegment::isPriorityLocked () const { return _flags & PriorityLocked; } // Predicates. bool TrackSegment::hasSymmetric () const { return _symmetric != NULL; } // Accessors. @@ -305,22 +308,38 @@ namespace Katana { } + void TrackSegment::setPriorityLock ( bool state ) + { + if (state) _flags |= PriorityLocked; + else _flags &= ~PriorityLocked; + } + + void TrackSegment::updateFreedomDegree () { _freedomDegree = _base->getSlack(); } - void TrackSegment::updatePriority ( float forced ) + void TrackSegment::forcePriority ( float forced ) + { if (not isPriorityLocked()) _priority = forced; } + + + void TrackSegment::computePriority () { - if (forced != 0.0) { _priority = forced; return; } + if (isPriorityLocked()) return; + if (isAnalog() and isTerminal()) { _priority = 0.0; return; } double length = DbU::toLambda(getLength()); double slack = DbU::toLambda(base()->getSlack()); + double pitch = DbU::toLambda(getPitch()); //if (length > 200.0) length = 200.0 - std::log(length)*20.0; //if (length < 0.0) length = 0.0; //if (slack / DbU::toLambda(_segment->getPitch()) < 2.0 ) slack = 999.0; - if (slack / DbU::toLambda(getPitch()) > 10.0) slack = 10.0*getPitch(); + if (slack / pitch > 10.0) slack = 10.0*pitch; + //cerr << "TrackSegment::computePriority() length:" << length << " slack:" << slack + // << " pri:" << (length + 1.0) * (slack + 1.0) << " pitch:" << DbU::toLambda(getPitch()) << endl; + _priority = (length + 1.0) * (slack + 1.0); //if (_priority > 10000.0) cerr << "_priority:" << _priority @@ -431,6 +450,48 @@ namespace Katana { } + void TrackSegment::computeAlignedPriority () + { + if (isPriorityLocked() or isTerminal()) return; + + computePriority(); + + AutoSegment* canonical = base(); + + vector sourceAligneds; + vector targetAligneds; + for ( AutoSegment* segment : canonical->getAligneds(Flags::Source|Flags::WithDoglegs) ) { + if (not segment->isCanonical()) continue; + sourceAligneds.push_back( Session::lookup(segment) ); + } + for ( AutoSegment* segment : canonical->getAligneds(Flags::Target|Flags::WithDoglegs) ) { + if (not segment->isCanonical()) continue; + sourceAligneds.push_back( Session::lookup(segment) ); + } + + if (sourceAligneds.empty() and targetAligneds.empty()) return; + + setPriorityLock( true ); + + cdebug_log(159,0) << "TrackSegment::computeAlignedPriority() " << this << endl; + cdebug_log(159,0) << "Aligneds on:" << getPriority() << ":" << this << endl; + for ( size_t i=0 ; iforcePriority( getPriority() - 2.0*(i+1) + 1.0 ); + sourceAligneds[i]->setPriorityLock( true ); + + cdebug_log(159,0) << "| S:" << i << " " << sourceAligneds[i]->getPriority() + << ":" << sourceAligneds[i] << endl; + } + for ( size_t i=0 ; iforcePriority( getPriority() - 2.0*(i+1) ); + targetAligneds[i]->setPriorityLock( true ); + + cdebug_log(159,0) << "| T:" << i << " " << targetAligneds[i]->getPriority() + << ":" << targetAligneds[i] << endl; + } + } + + float TrackSegment::getMaxUnderDensity ( Flags flags ) const { return _base->getMaxUnderDensity( flags ); } @@ -911,6 +972,7 @@ namespace Katana { Record* record = TrackElement::_getRecord(); record->add( getSlot( "_base" , _base ) ); record->add( getSlot( "_symmetric", _symmetric ) ); + record->add( getSlot( "_flags" , _flags ) ); return record; } diff --git a/katana/src/katana/NegociateWindow.h b/katana/src/katana/NegociateWindow.h index 0a35dcdd..22350714 100644 --- a/katana/src/katana/NegociateWindow.h +++ b/katana/src/katana/NegociateWindow.h @@ -115,6 +115,7 @@ namespace Katana { void run ( Flags flags ); void printStatistics () const; void _createRouting ( Anabatic::GCell* ); + void _computePriorities (); void _associateSymmetrics (); void _pack ( size_t& count, bool last ); size_t _negociate (); diff --git a/katana/src/katana/TrackCost.h b/katana/src/katana/TrackCost.h index eba1e076..c0ba9ff3 100644 --- a/katana/src/katana/TrackCost.h +++ b/katana/src/katana/TrackCost.h @@ -39,11 +39,12 @@ namespace Katana { class TrackCost { public: - enum Flags { IgnoreAxisWeight = 0x0001 - , DiscardGlobals = 0x0002 - , IgnoreSharedLength = 0x0004 - , LocalAndTopDepth = 0x0008 - , ZeroCost = 0x0010 + enum Flags { IgnoreAxisWeight = (1 << 0) + , DiscardGlobals = (1 << 1) + , IgnoreSharedLength = (1 << 2) + , LocalAndTopDepth = (1 << 3) + , ZeroCost = (1 << 4) + , Analog = (1 << 5) }; public: diff --git a/katana/src/katana/TrackElement.h b/katana/src/katana/TrackElement.h index 692e9be0..b89691fe 100644 --- a/katana/src/katana/TrackElement.h +++ b/katana/src/katana/TrackElement.h @@ -84,112 +84,116 @@ namespace Katana { class TrackElement { public: - static SegmentOverlapCostCB* setOverlapCostCB ( SegmentOverlapCostCB* ); - static void notify ( TrackElement*, unsigned int flags ); - public: - void destroy (); - virtual AutoSegment* base () const; - virtual Segment* getSegment () const = 0; - // Wrapped AutoSegment Functions (when applicable). - virtual bool isFixed () const; - virtual bool isHorizontal () const = 0; - virtual bool isVertical () const = 0; - virtual bool isLocal () const; - virtual bool isGlobal () const; - virtual bool isBipoint () const; - virtual bool isTerminal () const; - virtual bool isStrongTerminal ( Flags flags=Flags::NoFlags ) const; - virtual bool isStrap () const; - virtual bool isSlackened () const; - virtual bool isDogleg () const; - virtual bool isReduced () const; - virtual bool isUTurn () const; - virtual bool isUserDefined () const; - // Predicates. - inline bool isCreated () const; - inline bool isInvalidated () const; - inline bool isBlockage () const; - inline bool isLocked () const; - inline bool isRouted () const; - virtual bool hasSymmetric () const; - inline bool hasSourceDogleg () const; - inline bool hasTargetDogleg () const; - inline bool canRipple () const; - virtual bool canSlacken () const; - virtual bool canPivotUp ( float reserve, Flags flags ) const; - virtual bool canPivotDown ( float reserve, Flags flags ) const; - virtual bool canMoveUp ( float reserve, Flags flags=Flags::WithPerpands ) const; - virtual bool canDogleg (); - virtual bool canDogleg ( Interval ); - virtual bool canDogleg ( Anabatic::GCell*, Flags flags=0 ); - // Accessors - inline Observer* getObserver (); - virtual unsigned long getId () const; - virtual Flags getDirection () const = 0; - virtual Net* getNet () const = 0; - virtual const Layer* getLayer () const = 0; - virtual DbU::Unit getPitch () const; - virtual DbU::Unit getPPitch () const; - inline Track* getTrack () const; - inline size_t getIndex () const; - virtual float getPriority () const = 0; - virtual unsigned long getFreedomDegree () const; - virtual float getMaxUnderDensity ( Flags flags=Flags::NoFlags ) const; - inline Box getBoundingBox () const; - virtual TrackElement* getNext () const; - virtual TrackElement* getPrevious () const; - virtual DbU::Unit getAxis () const = 0; - inline DbU::Unit getSourceU () const; - inline DbU::Unit getTargetU () const; - inline DbU::Unit getLength () const; - inline Interval getCanonicalInterval () const; - virtual Interval getFreeInterval () const; - virtual Interval getSourceConstraints () const; - virtual Interval getTargetConstraints () const; - virtual DataNegociate* getDataNegociate ( Flags flags=Flags::DataSelf ) const; - virtual TrackElement* getCanonical ( Interval& ); - virtual size_t getGCells ( vector& ) const; - virtual TrackElement* getParent () const; - virtual uint32_t getDoglegLevel () const; - virtual TrackElement* getSourceDogleg (); - virtual TrackElement* getTargetDogleg (); - virtual TrackElement* getSymmetric (); - virtual TrackElements getPerpandiculars (); - // Mutators. - inline void setFlags ( uint32_t ); - inline void unsetFlags ( uint32_t ); - inline void setRouted (); - virtual void setTrack ( Track* ); - inline void setIndex ( size_t ); - virtual void setSymmetric ( TrackElement* ); - inline void updatePriority (); - virtual void updatePriority ( float priority ) = 0; - virtual void updateFreedomDegree (); - virtual void setDoglegLevel ( uint32_t ); - virtual void swapTrack ( TrackElement* ); - virtual void reschedule ( uint32_t level ); - virtual void detach (); - virtual void invalidate (); - virtual void revalidate (); - virtual void updatePPitch (); - virtual void incOverlapCost ( Net*, TrackCost& ) const; - virtual void setAxis ( DbU::Unit, uint32_t flags=Anabatic::SegAxisSet ); - virtual TrackElement* makeDogleg (); - inline bool makeDogleg ( Anabatic::GCell* ); - virtual TrackElement* makeDogleg ( Anabatic::GCell*, TrackElement*& perpandicular, TrackElement*& parallel ); - virtual TrackElement* makeDogleg ( Interval, Flags& flags ); - virtual void _postDoglegs ( TrackElement*& perpandicular, TrackElement*& parallel ); - virtual bool moveAside ( Flags flags ); - virtual bool slacken ( Flags flags=Flags::NoFlags ); - virtual bool moveUp ( Flags flags ); - virtual bool moveDown ( Flags flags ); -#if THIS_IS_DISABLED - virtual void desalignate (); -#endif - virtual bool _check () const; - virtual Record* _getRecord () const; - virtual string _getString () const; - virtual string _getTypeName () const; + static SegmentOverlapCostCB* setOverlapCostCB ( SegmentOverlapCostCB* ); + static void notify ( TrackElement*, unsigned int flags ); + public: + void destroy (); + virtual AutoSegment* base () const; + virtual Segment* getSegment () const = 0; + // Wrapped AutoSegment Functions (when applicable). + virtual bool isFixed () const; + virtual bool isHorizontal () const = 0; + virtual bool isVertical () const = 0; + virtual bool isLocal () const; + virtual bool isGlobal () const; + virtual bool isBipoint () const; + virtual bool isTerminal () const; + virtual bool isStrongTerminal ( Flags flags=Flags::NoFlags ) const; + virtual bool isStrap () const; + virtual bool isSlackened () const; + virtual bool isDogleg () const; + virtual bool isReduced () const; + virtual bool isUTurn () const; + virtual bool isUserDefined () const; + virtual bool isAnalog () const; + virtual bool isPriorityLocked () const = 0; + // Predicates. + inline bool isCreated () const; + inline bool isInvalidated () const; + inline bool isBlockage () const; + inline bool isLocked () const; + inline bool isRouted () const; + virtual bool hasSymmetric () const; + inline bool hasSourceDogleg () const; + inline bool hasTargetDogleg () const; + inline bool canRipple () const; + virtual bool canSlacken () const; + virtual bool canPivotUp ( float reserve, Flags flags ) const; + virtual bool canPivotDown ( float reserve, Flags flags ) const; + virtual bool canMoveUp ( float reserve, Flags flags=Flags::WithPerpands ) const; + virtual bool canDogleg (); + virtual bool canDogleg ( Interval ); + virtual bool canDogleg ( Anabatic::GCell*, Flags flags=0 ); + // Accessors + inline Observer* getObserver (); + virtual unsigned long getId () const; + virtual Flags getDirection () const = 0; + virtual Net* getNet () const = 0; + virtual const Layer* getLayer () const = 0; + virtual DbU::Unit getPitch () const; + virtual DbU::Unit getPPitch () const; + inline Track* getTrack () const; + inline size_t getIndex () const; + virtual float getPriority () const = 0; + virtual unsigned long getFreedomDegree () const; + virtual float getMaxUnderDensity ( Flags flags=Flags::NoFlags ) const; + inline Box getBoundingBox () const; + virtual TrackElement* getNext () const; + virtual TrackElement* getPrevious () const; + virtual DbU::Unit getAxis () const = 0; + inline DbU::Unit getSourceU () const; + inline DbU::Unit getTargetU () const; + inline DbU::Unit getLength () const; + inline Interval getCanonicalInterval () const; + virtual Interval getFreeInterval () const; + virtual Interval getSourceConstraints () const; + virtual Interval getTargetConstraints () const; + virtual DataNegociate* getDataNegociate ( Flags flags=Flags::DataSelf ) const; + virtual TrackElement* getCanonical ( Interval& ); + virtual size_t getGCells ( vector& ) const; + virtual TrackElement* getParent () const; + virtual uint32_t getDoglegLevel () const; + virtual TrackElement* getSourceDogleg (); + virtual TrackElement* getTargetDogleg (); + virtual TrackElement* getSymmetric (); + virtual TrackElements getPerpandiculars (); + // Mutators. + inline void setFlags ( uint32_t ); + inline void unsetFlags ( uint32_t ); + inline void setRouted (); + virtual void setTrack ( Track* ); + inline void setIndex ( size_t ); + virtual void setSymmetric ( TrackElement* ); + virtual void setPriorityLock ( bool state ) = 0; + virtual void forcePriority ( float priority ) = 0; + virtual void computePriority () = 0; + virtual void computeAlignedPriority () = 0; + virtual void updateFreedomDegree (); + virtual void setDoglegLevel ( uint32_t ); + virtual void swapTrack ( TrackElement* ); + virtual void reschedule ( uint32_t level ); + virtual void detach (); + virtual void invalidate (); + virtual void revalidate (); + virtual void updatePPitch (); + virtual void incOverlapCost ( Net*, TrackCost& ) const; + virtual void setAxis ( DbU::Unit, uint32_t flags=Anabatic::SegAxisSet ); + virtual TrackElement* makeDogleg (); + inline bool makeDogleg ( Anabatic::GCell* ); + virtual TrackElement* makeDogleg ( Anabatic::GCell*, TrackElement*& perpandicular, TrackElement*& parallel ); + virtual TrackElement* makeDogleg ( Interval, Flags& flags ); + virtual void _postDoglegs ( TrackElement*& perpandicular, TrackElement*& parallel ); + virtual bool moveAside ( Flags flags ); + virtual bool slacken ( Flags flags=Flags::NoFlags ); + virtual bool moveUp ( Flags flags ); + virtual bool moveDown ( Flags flags ); +#if THIS_IS_DISABLED + virtual void desalignate (); +#endif + virtual bool _check () const; + virtual Record* _getRecord () const; + virtual string _getString () const; + virtual string _getTypeName () const; protected: // Static Attributes. @@ -234,7 +238,6 @@ namespace Katana { inline DbU::Unit TrackElement::getTargetU () const { return _targetU; } inline Interval TrackElement::getCanonicalInterval () const { return Interval(getSourceU(),getTargetU()); } inline void TrackElement::setIndex ( size_t index ) { _index=index; } - inline void TrackElement::updatePriority () { updatePriority( 0.0 ); } inline void TrackElement::setRouted() { diff --git a/katana/src/katana/TrackFixedSegment.h b/katana/src/katana/TrackFixedSegment.h index b9772cee..b5f623f3 100644 --- a/katana/src/katana/TrackFixedSegment.h +++ b/katana/src/katana/TrackFixedSegment.h @@ -38,26 +38,30 @@ namespace Katana { class TrackFixedSegment : public TrackElement { public: - static TrackElement* create ( Katana::Track* track , Segment* segment ); - public: - virtual AutoSegment* base () const; - virtual Segment* getSegment () const; - virtual bool isHorizontal () const; - virtual bool isVertical () const; - virtual bool isFixed () const; - virtual unsigned long getId () const; - virtual Flags getDirection () const; - virtual Net* getNet () const; - virtual const Layer* getLayer () const; - virtual TrackElement* getNext () const; - virtual TrackElement* getPrevious () const; - virtual DbU::Unit getAxis () const; - virtual Interval getFreeInterval () const; - virtual float getPriority () const; - virtual void updatePriority ( float ); - virtual Record* _getRecord () const; - virtual string _getString () const; - virtual string _getTypeName () const; + static TrackElement* create ( Katana::Track* track , Segment* segment ); + public: + virtual AutoSegment* base () const; + virtual Segment* getSegment () const; + virtual bool isHorizontal () const; + virtual bool isVertical () const; + virtual bool isFixed () const; + virtual bool isPriorityLocked () const; + virtual unsigned long getId () const; + virtual Flags getDirection () const; + virtual Net* getNet () const; + virtual const Layer* getLayer () const; + virtual TrackElement* getNext () const; + virtual TrackElement* getPrevious () const; + virtual DbU::Unit getAxis () const; + virtual Interval getFreeInterval () const; + virtual float getPriority () const; + virtual void setPriorityLock ( bool ); + virtual void forcePriority ( float ); + virtual void computePriority (); + virtual void computeAlignedPriority (); + virtual Record* _getRecord () const; + virtual string _getString () const; + virtual string _getTypeName () const; protected: // Attributes. static Net* _blockageNet; diff --git a/katana/src/katana/TrackSegment.h b/katana/src/katana/TrackSegment.h index 9b3ab788..c7135093 100644 --- a/katana/src/katana/TrackSegment.h +++ b/katana/src/katana/TrackSegment.h @@ -43,6 +43,11 @@ namespace Katana { // ------------------------------------------------------------------- // Class : "TrackSegment". + enum TrackSegmentFlag { NoFlags = 0 + , PriorityLocked = (1 << 0) + }; + + class TrackSegment : public TrackElement { public: class CompareById : public binary_function { @@ -71,6 +76,8 @@ namespace Katana { virtual bool isReduced () const; virtual bool isUTurn () const; virtual bool isUserDefined () const; + virtual bool isAnalog () const; + virtual bool isPriorityLocked () const; // Predicates. virtual bool hasSymmetric () const; virtual bool canDogleg (); @@ -108,7 +115,10 @@ namespace Katana { // Mutators. virtual void setTrack ( Track* ); virtual void setSymmetric ( TrackElement* ); - virtual void updatePriority ( float ); + virtual void setPriorityLock ( bool state ); + virtual void forcePriority ( float ); + virtual void computePriority (); + virtual void computeAlignedPriority (); virtual void updateFreedomDegree (); virtual void setDoglegLevel ( uint32_t ); virtual void swapTrack ( TrackElement* ); @@ -144,6 +154,7 @@ namespace Katana { DataNegociate* _data; float _priority; unsigned int _dogLegLevel:4; + uint32_t _flags; protected: // Constructors & Destructors. From 8d4fdf34711786febc67d06f3a4c1c00044c875e Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Sat, 10 Jun 2017 12:27:25 +0200 Subject: [PATCH 18/30] TrackCost clean support for symmetric and wide segments. * New: In Katana::TrackCost, the TrackElement and it's optional symmetric are now kept as attribute of a TrackCost. The cost is completly computed inside the constructor. TrackCost now support any mix of symmetric event and wide segments. The cost is now computed by adding directly to the current one instead of creating secondaries that are merged afterwards. As a consequence, remove all copy construction and merge capabilities. All the various methods used to compute the cost are renamed "addOverlapcost()" in all the various related objects. As a reminder, the overal cost method call is as follow: 1. TrackCost constructor on a TrackElement. 2. Call TrackElement::addOverlapcost() 3. For all Track under the TrackElement, call Track::addOverlapCost() 4. For all other TrackElement intersecting with the overlap interval call: TrackElement::incOverlapCost() 5. The callback overlap function for segments is called (defined in NegociateWidow). Don't confuse: - TrackElement::addOverlapCost(), which compute the cost of inserting the segment inside a track (or a set of). - TrackElement::incOverlapCost(), which compute the cost of overlaping with this already inserted segment. It is the other way around of the previous one. * Change: In Katana::SegmentFsm, use a vector of pointer to TrackCost instead of an object to avoid copy construction. --- anabatic/src/AutoHorizontal.cpp | 8 +- anabatic/src/AutoSegment.cpp | 7 + anabatic/src/AutoVertical.cpp | 8 +- anabatic/src/anabatic/AutoSegment.h | 1 + cumulus/src/plugins/__init__.py | 4 +- .../src/hurricane/hurricane/DebugSession.h | 6 + katana/src/CMakeLists.txt | 4 + katana/src/Manipulator.cpp | 16 +- katana/src/NegociateWindow.cpp | 2 +- katana/src/RoutingEvent.cpp | 14 +- katana/src/SegmentFsm.cpp | 109 ++----- katana/src/Track.cpp | 40 +-- katana/src/TrackCost.cpp | 281 +++++++++--------- katana/src/TrackElement.cpp | 4 +- katana/src/TrackFixedSegment.cpp | 10 + katana/src/TrackSegment.cpp | 33 +- katana/src/TrackSegmentRegular.cpp | 111 +++++++ katana/src/TrackSegmentWide.cpp | 121 ++++++++ katana/src/katana/SegmentFsm.h | 215 +++++++------- katana/src/katana/Track.h | 4 +- katana/src/katana/TrackCost.h | 203 ++++++++----- katana/src/katana/TrackElement.h | 47 +-- katana/src/katana/TrackFixedSegment.h | 2 + katana/src/katana/TrackSegmentRegular.h | 68 +++++ katana/src/katana/TrackSegmentWide.h | 70 +++++ 25 files changed, 899 insertions(+), 489 deletions(-) create mode 100644 katana/src/TrackSegmentRegular.cpp create mode 100644 katana/src/TrackSegmentWide.cpp create mode 100644 katana/src/katana/TrackSegmentRegular.h create mode 100644 katana/src/katana/TrackSegmentWide.h diff --git a/anabatic/src/AutoHorizontal.cpp b/anabatic/src/AutoHorizontal.cpp index ea4bde74..2af7fb54 100644 --- a/anabatic/src/AutoHorizontal.cpp +++ b/anabatic/src/AutoHorizontal.cpp @@ -432,8 +432,8 @@ namespace Anabatic { void AutoHorizontal::updatePositions () { - _sourcePosition = _horizontal->getSourceX() - Session::getExtensionCap(getLayer()); - _targetPosition = _horizontal->getTargetX() + Session::getExtensionCap(getLayer()); + _sourcePosition = _horizontal->getSourceX() - getExtensionCap(); + _targetPosition = _horizontal->getTargetX() + getExtensionCap(); } @@ -453,8 +453,8 @@ namespace Anabatic { bool AutoHorizontal::checkPositions () const { bool coherency = true; - DbU::Unit sourcePosition = _horizontal->getSourceX() - Session::getExtensionCap(getLayer()); - DbU::Unit targetPosition = _horizontal->getTargetX() + Session::getExtensionCap(getLayer()); + DbU::Unit sourcePosition = _horizontal->getSourceX() - getExtensionCap(); + DbU::Unit targetPosition = _horizontal->getTargetX() + getExtensionCap(); if ( _sourcePosition != sourcePosition ) { cerr << Error ( "%s\n Source position incoherency: " diff --git a/anabatic/src/AutoSegment.cpp b/anabatic/src/AutoSegment.cpp index eb1c7fb3..d448de08 100644 --- a/anabatic/src/AutoSegment.cpp +++ b/anabatic/src/AutoSegment.cpp @@ -608,6 +608,13 @@ namespace Anabatic { } + DbU::Unit AutoSegment::getExtensionCap () const + { + DbU::Unit mWidth = std::max( Session::getWireWidth(getLayer()), Session::getViaWidth(getLayer()) ); + if (getWidth() <= mWidth) return Session::getExtensionCap( getLayer() ); + return getWidth() / 2; + } + DbU::Unit AutoSegment::getSlack () const { DbU::Unit constraintMin; diff --git a/anabatic/src/AutoVertical.cpp b/anabatic/src/AutoVertical.cpp index b0092f5b..98e8369b 100644 --- a/anabatic/src/AutoVertical.cpp +++ b/anabatic/src/AutoVertical.cpp @@ -371,8 +371,8 @@ namespace Anabatic { void AutoVertical::updatePositions () { - _sourcePosition = _vertical->getSourceY() - Session::getExtensionCap(getLayer()); - _targetPosition = _vertical->getTargetY() + Session::getExtensionCap(getLayer()); + _sourcePosition = _vertical->getSourceY() - getExtensionCap(); + _targetPosition = _vertical->getTargetY() + getExtensionCap(); } @@ -392,8 +392,8 @@ namespace Anabatic { bool AutoVertical::checkPositions () const { bool coherency = true; - DbU::Unit sourcePosition = _vertical->getSourceY() - Session::getExtensionCap(getLayer()); - DbU::Unit targetPosition = _vertical->getTargetY() + Session::getExtensionCap(getLayer()); + DbU::Unit sourcePosition = _vertical->getSourceY() - getExtensionCap(); + DbU::Unit targetPosition = _vertical->getTargetY() + getExtensionCap(); if ( _sourcePosition != sourcePosition ) { cerr << Error ( "%s\n Source position incoherency: " diff --git a/anabatic/src/anabatic/AutoSegment.h b/anabatic/src/anabatic/AutoSegment.h index 8e88f3cf..84b226ce 100644 --- a/anabatic/src/anabatic/AutoSegment.h +++ b/anabatic/src/anabatic/AutoSegment.h @@ -231,6 +231,7 @@ namespace Anabatic { inline unsigned int getDepth () const; inline DbU::Unit getPitch () const; DbU::Unit getPPitch () const; + DbU::Unit getExtensionCap () const; inline DbU::Unit getAxis () const; virtual DbU::Unit getSourceU () const = 0; virtual DbU::Unit getTargetU () const = 0; diff --git a/cumulus/src/plugins/__init__.py b/cumulus/src/plugins/__init__.py index 8ef8ebc0..e8d4e5cf 100644 --- a/cumulus/src/plugins/__init__.py +++ b/cumulus/src/plugins/__init__.py @@ -41,8 +41,8 @@ def kwParseMain ( **kw ): editor = kw['editor'] if cell == None: cell = editor.getCell() - if cell == None: - raise ErrorMessage( 3, 'Chip: No cell loaded yet.' ) + #if cell == None: + # raise ErrorMessage( 3, 'Chip: No cell loaded yet.' ) return cell, editor diff --git a/hurricane/src/hurricane/hurricane/DebugSession.h b/hurricane/src/hurricane/hurricane/DebugSession.h index a01d893b..c62b7131 100644 --- a/hurricane/src/hurricane/hurricane/DebugSession.h +++ b/hurricane/src/hurricane/hurricane/DebugSession.h @@ -96,6 +96,9 @@ namespace Hurricane { void DebugSession::open ( int minLevel, int maxLevel ) { + if (cdebug.getMinLevel() < minLevel) minLevel = cdebug.getMinLevel(); + if (cdebug.getMaxLevel() > maxLevel) maxLevel = cdebug.getMaxLevel(); + _singleton->_levels.push( make_pair( cdebug.setMinLevel(minLevel) , cdebug.setMaxLevel(maxLevel) ) ); } @@ -103,6 +106,9 @@ namespace Hurricane { void DebugSession::open ( const void* symbol, int minLevel, int maxLevel ) { + if (cdebug.getMinLevel() < minLevel) minLevel = cdebug.getMinLevel(); + if (cdebug.getMaxLevel() > maxLevel) maxLevel = cdebug.getMaxLevel(); + if ( _singleton->_isTraced(symbol) ) _singleton->_levels.push( make_pair( cdebug.setMinLevel(minLevel) , cdebug.setMaxLevel(maxLevel) ) ); diff --git a/katana/src/CMakeLists.txt b/katana/src/CMakeLists.txt index b77aec7a..7fae19eb 100644 --- a/katana/src/CMakeLists.txt +++ b/katana/src/CMakeLists.txt @@ -15,6 +15,8 @@ katana/DataSymmetric.h katana/TrackElement.h katana/TrackElements.h katana/TrackSegment.h + katana/TrackSegmentRegular.h + katana/TrackSegmentWide.h katana/TrackFixedSegment.h katana/TrackMarker.h katana/Track.h @@ -47,6 +49,8 @@ TrackElement.cpp TrackElements.cpp TrackSegment.cpp + TrackSegmentRegular.cpp + TrackSegmentWide.cpp TrackFixedSegment.cpp TrackMarker.cpp Track.cpp diff --git a/katana/src/Manipulator.cpp b/katana/src/Manipulator.cpp index 3db1b0a2..ad0a459c 100644 --- a/katana/src/Manipulator.cpp +++ b/katana/src/Manipulator.cpp @@ -781,7 +781,7 @@ namespace Katana { _fsm.setState ( SegmentFsm::OtherRipup ); _fsm.addAction( _segment , SegmentAction::SelfInsert|SegmentAction::MoveToAxis|SegmentAction::EventLevel4 - , _fsm.getCost(itrack).getTrack()->getAxis() ); + , _fsm.getTrack1(itrack)->getAxis() ); uint32_t flags = 0; if ( rightIntrication ) flags |= RightAxisHint; @@ -850,7 +850,7 @@ namespace Katana { _fsm.setState ( SegmentFsm::OtherRipup ); _fsm.addAction( _segment , SegmentAction::SelfInsert|SegmentAction::MoveToAxis - , _fsm.getCost(itrack).getTrack()->getAxis() ); + , _fsm.getTrack(itrack)->getAxis() ); } cdebug_tabw(159,-1); @@ -932,15 +932,15 @@ namespace Katana { { cdebug_log(159,1) << "Manipulator::forceOverLocals()" << endl; - vector< array >& costs = _fsm.getCosts(); + vector& costs = _fsm.getCosts(); size_t itrack = 0; for ( ; itrackisFixed() + or costs[itrack]->isBlockage() + or costs[itrack]->isInfinite() + or costs[itrack]->isOverlapGlobal() ) continue; bool success = true; @@ -979,7 +979,7 @@ namespace Katana { _fsm.setState ( SegmentFsm::OtherRipup ); _fsm.addAction( _segment , SegmentAction::SelfInsert|SegmentAction::MoveToAxis - , _fsm.getCost(itrack).getTrack()->getAxis() + , _fsm.getTrack(itrack)->getAxis() ); break; } diff --git a/katana/src/NegociateWindow.cpp b/katana/src/NegociateWindow.cpp index d09ea9cb..88713fce 100644 --- a/katana/src/NegociateWindow.cpp +++ b/katana/src/NegociateWindow.cpp @@ -507,7 +507,7 @@ namespace Katana { cmess2 << " " << tty::cr; cmess2.flush (); } else { diff --git a/katana/src/RoutingEvent.cpp b/katana/src/RoutingEvent.cpp index ec7a3ef2..1bb6c676 100644 --- a/katana/src/RoutingEvent.cpp +++ b/katana/src/RoutingEvent.cpp @@ -475,7 +475,7 @@ namespace Katana { itrack = 0; if ( (not isOverConstrained()) and fsm.canRipup() ) { - if (fsm.getCosts().size() and fsm.getCost(itrack).isFree()) { + if (fsm.getCosts().size() and fsm.getCost(itrack)->isFree()) { cdebug_log(159,0) << "Insert in free space " << this << endl; fsm.bindToTrack( itrack ); } else { @@ -491,7 +491,7 @@ namespace Katana { } for ( itrack=0 ; itrackisInfinite()) break; if (fsm.insertInTrack(itrack)) break; resetInsertState(); } // Next ripup is possible. @@ -516,7 +516,7 @@ namespace Katana { fsm.doActions(); if (itrack < fsm.getCosts().size()) { - cdebug_log(159,0) << "Placed: @" << DbU::getValueString(fsm.getCost(itrack).getTrack()->getAxis()) + cdebug_log(159,0) << "Placed: @" << DbU::getValueString(fsm.getTrack1(itrack)->getAxis()) << " " << this << endl; } @@ -541,10 +541,10 @@ namespace Katana { if ( _segment->getTrack() and fsm.getCosts().size() - and fsm.getCost(0).isFree() - and (fsm.getCost(0).getTrack() != _segment->getTrack()) ) { + and fsm.getCost(0)->isFree() + and (fsm.getTrack1(0) != _segment->getTrack()) ) { - cerr << "_processPack(): move to " << fsm.getCost(0).getTrack() << endl; + cerr << "_processPack(): move to " << fsm.getTrack1(0) << endl; fsm.moveToTrack( 0 ); } } @@ -569,7 +569,7 @@ namespace Katana { cdebug_log(159,0) << "| " << fsm.getCost(i) << endl; cdebug_tabw(159,-1); - if (fsm.getCosts().size() and fsm.getCost(0).isFree()) { + if (fsm.getCosts().size() and fsm.getCost(0)->isFree()) { cdebug_log(159,0) << "Insert in free space." << endl; fsm.bindToTrack( 0 ); } else { diff --git a/katana/src/SegmentFsm.cpp b/katana/src/SegmentFsm.cpp index 26053225..b0a14db7 100644 --- a/katana/src/SegmentFsm.cpp +++ b/katana/src/SegmentFsm.cpp @@ -36,26 +36,6 @@ namespace { using namespace Katana; -// ------------------------------------------------------------------- -// Class : "CompareCostArray". - - class CompareCostArray { - public: - inline CompareCostArray ( uint32_t flags=0 ); - inline bool operator() ( const array& lhs, const array& rhs ); - private: - TrackCost::Compare _compare; - }; - - - inline CompareCostArray::CompareCostArray ( uint32_t flags ) - : _compare(flags) - { } - - inline bool CompareCostArray::operator() ( const array& lhs, const array& rhs ) - { return _compare( lhs[0], rhs[0] ); } - - // ------------------------------------------------------------------- // Class : "Cs1Candidate". @@ -479,7 +459,6 @@ namespace Katana { DataSymmetric* symData = NULL; TrackElement* segment1 = _event1->getSegment(); TrackElement* segment2 = segment1->getSymmetric(); - uint32_t depth = Session::getRoutingGauge()->getLayerDepth(segment1->getLayer()); _event1->setTracksFree( 0 ); _data1 = segment1->getDataNegociate(); @@ -562,58 +541,20 @@ namespace Katana { // if ( segment->isLocal() and (_data->getState() >= DataNegociate::MaximumSlack) ) // _constraint.inflate ( 0, DbU::lambda(1.0) ); - bool inLocalDepth = (depth < 3); - bool isOneLocalTrack = (segment1->isLocal()) - and (segment1->base()->getAutoSource()->getGCell()->getGlobalsCount(depth) >= 9.0); - RoutingPlane* plane = Session::getKatanaEngine()->getRoutingPlaneByLayer(segment1->getLayer()); for ( Track* track1 : Tracks_Range::get(plane,_constraint) ) { - uint32_t costflags = 0; - costflags |= (segment1->isLocal() and (depth >= 3)) ? TrackCost::LocalAndTopDepth : 0; - costflags |= (segment1->isAnalog()) ? TrackCost::Analog : 0; - Track* track2 = NULL; if (_event2) { track2 = (_sameAxis) ? track1 : plane->getTrackByPosition( symData->getSymmetrical( track1->getAxis() ) ); } - _costs.push_back( array( { TrackCost(NULL), TrackCost(NULL) } ) ); - if (not segment1->isReduced()) { - _costs.back()[0] = track1->getOverlapCost(segment1,costflags); - if (_event2) _costs.back()[1] = track2->getOverlapCost(segment2,costflags); - } else { - _costs.back()[0] = TrackCost(track1); - if (_event2) _costs.back()[1] = TrackCost(track2); - } + _costs.push_back( new TrackCost(segment1,segment2,track1,track2) ); - _costs.back()[0].setAxisWeight ( _event1->getAxisWeight(track1->getAxis()) ); - _costs.back()[0].incDeltaPerpand( _data1->getWiringDelta(track1->getAxis()) ); - if (_event2) { - _costs.back()[1].setAxisWeight ( _event2->getAxisWeight(track2->getAxis()) ); - _costs.back()[1].incDeltaPerpand( _data2->getWiringDelta(track2->getAxis()) ); - _costs.back()[0].merge( _costs.back()[1] ); - - } - - if (segment1->isGlobal()) { - cdebug_log(9000,0) << "Deter| setForGlobal() on " << track1 << endl; - _costs.back()[0].setForGlobal(); - } - - if ( inLocalDepth and (_costs.back()[0].getDataState() == DataNegociate::MaximumSlack) ) - _costs.back()[0].setInfinite(); - - if ( isOneLocalTrack - and _costs.back()[0].isOverlapGlobal() - and (_costs.back()[0].getDataState() >= DataNegociate::ConflictSolveByHistory) ) - _costs.back()[0].setInfinite(); - - _costs.back()[0].consolidate(); - if ( _fullBlocked and (not _costs.back()[0].isBlockage() and not _costs.back()[0].isFixed()) ) + if ( _fullBlocked and (not _costs.back()->isBlockage() and not _costs.back()->isFixed()) ) _fullBlocked = false; - cdebug_log(155,0) << "| " << _costs.back()[0] << ((_fullBlocked)?" FB ": " -- ") << track1 << endl; + cdebug_log(155,0) << "| " << _costs.back() << ((_fullBlocked)?" FB ": " -- ") << track1 << endl; } cdebug_tabw(159,-1); @@ -648,16 +589,18 @@ namespace Katana { // FOR ANALOG ONLY. //flags |= TrackCost::IgnoreSharedLength; - sort( _costs.begin(), _costs.end(), CompareCostArray(flags) ); + sort( _costs.begin(), _costs.end(), TrackCost::Compare(flags) ); size_t i=0; - for ( ; (i<_costs.size()) and _costs[i][0].isFree() ; i++ ); - _event1->setTracksFree ( i ); + for ( ; (i<_costs.size()) and _costs[i]->isFree() ; i++ ); + _event1->setTracksFree( i ); + if (_event2) _event2->setTracksFree( i ); + } - if (_event2) { - for ( ; (i<_costs.size()) and _costs[i][1].isFree() ; i++ ); - _event2->setTracksFree ( i ); - } + + SegmentFsm::~SegmentFsm () + { + for ( TrackCost* cost : _costs ) delete cost; } @@ -720,7 +663,7 @@ namespace Katana { bool SegmentFsm::insertInTrack ( size_t i ) { cdebug_log(159,0) << "SegmentFsm::insertInTrack() istate:" << _event1->getInsertState() - << " track:" << i << endl; + << " track:" << i << endl; bool success = true; @@ -761,8 +704,8 @@ namespace Katana { _event1->updateAxisHistory(); _event1->setEventLevel( 0 ); - cdebug_log(9000,0) << "Deter| addInsertEvent() @" << getCost1(i).getTrack() << endl; - Session::addInsertEvent( getSegment1(), getCost1(i).getTrack() ); + cdebug_log(9000,0) << "Deter| addInsertEvent() @" << getTrack1(i) << endl; + Session::addInsertEvent( getSegment1(), getTrack1(i) ); if (_event2) { _event2->resetInsertState(); @@ -770,8 +713,8 @@ namespace Katana { _event2->setEventLevel( 0 ); _event2->setProcessed( true ); - cdebug_log(9000,0) << "Deter| addInsertEvent() @" << getCost1(i).getTrack() << endl; - Session::addInsertEvent( getSegment2(), getCost2(i).getTrack() ); + cdebug_log(9000,0) << "Deter| addInsertEvent() @" << getTrack1(i) << endl; + Session::addInsertEvent( getSegment2(), getTrack2(i) ); } setState( SegmentFsm::SelfInserted ); @@ -782,11 +725,11 @@ namespace Katana { { cdebug_log(159,0) << "SegmentFsm::moveToTrack() :" << " track:" << i << endl; - Session::addMoveEvent( getSegment1(), getCost1(i).getTrack() ); + Session::addMoveEvent( getSegment1(), getTrack1(i) ); if (_event2) { - cdebug_log(9000,0) << "Deter| addInsertEvent() @" << getCost1(i).getTrack() << endl; - Session::addMoveEvent( getSegment2(), getCost2(i).getTrack() ); + cdebug_log(9000,0) << "Deter| addInsertEvent() @" << getTrack1(i) << endl; + Session::addMoveEvent( getSegment2(), getTrack2(i) ); } setState( SegmentFsm::SelfInserted ); @@ -1045,10 +988,10 @@ namespace Katana { Interval overlap = segment->getCanonicalInterval(); size_t begin; size_t end; - getCost(icost).getTrack()->getOverlapBounds( overlap, begin, end ); + getTrack1(icost)->getOverlapBounds( overlap, begin, end ); for ( ; begingetSegment(begin); + TrackElement* other = getTrack1(icost)->getSegment(begin); Interval otherOverlap = other->getCanonicalInterval(); if (other->getNet() == segment->getNet()) continue; @@ -1087,9 +1030,9 @@ namespace Katana { size_t begin; size_t end; - getCost(0).getTrack()->getOverlapBounds ( overlap, begin, end ); + getTrack1(0)->getOverlapBounds ( overlap, begin, end ); for ( ; begingetSegment(begin); + TrackElement* other = getTrack1(0)->getSegment(begin); Interval otherOverlap = other->getCanonicalInterval(); if ( other->getNet() == segment->getNet() ) continue; @@ -1124,7 +1067,7 @@ namespace Katana { for ( ; itrackisGlobalEnclosed() ) { Track* track = getTrack(itrack); size_t begin = getBegin(itrack); size_t end = getEnd (itrack); @@ -1161,7 +1104,7 @@ namespace Katana { setState ( SegmentFsm::OtherRipup ); addAction( segment , SegmentAction::SelfInsert|SegmentAction::MoveToAxis - , getCost(itrack).getTrack()->getAxis() + , getTrack1(itrack)->getAxis() ); break; } diff --git a/katana/src/Track.cpp b/katana/src/Track.cpp index 56487d26..1e548f1d 100644 --- a/katana/src/Track.cpp +++ b/katana/src/Track.cpp @@ -277,15 +277,16 @@ namespace Katana { } - TrackCost Track::getOverlapCost ( Interval interval - , Net* net - , size_t begin - , size_t end - , uint32_t flags ) const + TrackCost& Track::addOverlapCost ( TrackCost& cost ) const { - TrackCost cost ( const_cast(this), interval, begin, end, net, flags ); + size_t begin = Track::npos; + size_t end = Track::npos; + const Interval& interval = cost.getInterval(); - cdebug_log(155,1) << "getOverlapCost() @" << DbU::getValueString(_axis) + getOverlapBounds( cost.getInterval(), begin, end ); + cost.setTrack( const_cast(this), begin, end ); + + cdebug_log(155,1) << "addOverlapCost() @" << DbU::getValueString(_axis) << " [" << DbU::getValueString(interval.getVMin()) << ":" << DbU::getValueString(interval.getVMax()) << "] <-> [" << begin << ":" << end << "]" @@ -298,7 +299,7 @@ namespace Katana { for ( ; (mbegin < _markers.size()) and (_markers[mbegin]->getSourceU() <= interval.getVMax()) ; mbegin++ ) { cdebug_log(155,0) << "| @" << DbU::getValueString(_axis) << _markers[mbegin] << endl; - if ( _markers[mbegin]->getNet() != net ) { + if (_markers[mbegin]->getNet() != cost.getNet()) { cdebug_log(155,0) << "* Mark: @" << DbU::getValueString(_axis) << " " << _markers[mbegin] << endl; cost.incTerminals( _markers[mbegin]->getWeight(this) ); } @@ -312,12 +313,12 @@ namespace Katana { for ( ; begin < end ; begin++ ) { Interval overlap = interval.getIntersection( _segments[begin]->getCanonicalInterval() ); - if ( _segments[begin]->getNet() == net ) { + if (_segments[begin]->getNet() == cost.getNet()) { cdebug_log(155,0) << "overlap:" << overlap << " size:" << overlap.getSize() << endl; cost.incDeltaShared ( overlap.getSize() ); } - _segments[begin]->incOverlapCost( net, cost ); - cdebug_log(155,0) << "| overlap: " << _segments[begin] << " cost:" << cost << endl; + _segments[begin]->incOverlapCost( cost ); + cdebug_log(155,0) << "| overlap: " << _segments[begin] << " cost:" << &cost << endl; if (cost.isInfinite()) break; } @@ -328,21 +329,6 @@ namespace Katana { } - TrackCost Track::getOverlapCost ( Interval interval, Net* net, uint32_t flags ) const - { - size_t begin; - size_t end; - - getOverlapBounds( interval, begin, end ); - - return getOverlapCost( interval, net, begin, end, flags ); - } - - - TrackCost Track::getOverlapCost ( TrackElement* segment, uint32_t flags ) const - { return getOverlapCost ( segment->getCanonicalInterval(), segment->getNet(), flags ); } - - void Track::getTerminalWeight ( Interval interval, Net* net, size_t& count, uint32_t& weight ) const { cdebug_log(155,1) << "getTerminalWeight() @" << DbU::getValueString(_axis) @@ -468,10 +454,10 @@ namespace Katana { ,getString(segment).c_str()) << endl; } - segment->setAxis ( getAxis() ); _segments.push_back ( segment ); _segmentsValid = false; + //segment->setAxis ( getAxis() ); segment->setTrack ( this ); } diff --git a/katana/src/TrackCost.cpp b/katana/src/TrackCost.cpp index e173ede2..991a00dc 100644 --- a/katana/src/TrackCost.cpp +++ b/katana/src/TrackCost.cpp @@ -19,6 +19,7 @@ #include #include "katana/Track.h" #include "katana/TrackCost.h" +#include "katana/TrackElement.h" #include "katana/Session.h" @@ -26,63 +27,27 @@ namespace Katana { using std::cerr; using std::endl; + using Hurricane::Error; // ------------------------------------------------------------------- // Class : "TrackCost". - TrackCost::TrackCost ( Track* track ) - : _flags (ZeroCost) - , _track (track) - , _begin (Track::npos) - , _end (Track::npos) - , _interval () - , _forGlobal (false) - , _blockage (false) - , _fixed (false) - , _infinite (false) - , _hardOverlap (false) - , _overlap (false) - , _leftOverlap (false) - , _rightOverlap (false) - , _overlapGlobal (false) - , _globalEnclosed (false) - , _terminals (0) - , _delta (0) - , _deltaShared (0) - , _deltaPerpand (0) - , _axisWeight (0) - , _distanceToFixed(2*Session::getSliceHeight()) - , _longuestOverlap(0) - , _dataState (0) - , _ripupCount (0) - { } - - - TrackCost::TrackCost ( Track* track - , const Interval& interval - , size_t begin - , size_t end - , Net* net - , uint32_t flags + TrackCost::TrackCost ( TrackElement* refSegment + , TrackElement* symSegment + , Track* refTrack + , Track* symTrack ) - : _flags (flags) - , _track (track) - , _begin (begin) - , _end (end) - , _interval (interval) - , _forGlobal (false) - , _blockage (false) - , _fixed (false) - , _infinite (false) - , _hardOverlap (false) - , _overlap (false) - , _leftOverlap (false) - , _rightOverlap (false) - , _overlapGlobal (false) - , _globalEnclosed (false) + : _flags ((symSegment) ? Symmetric : NoFlags) + , _span (1) + , _tracks ( _span * ((symSegment) ? 2 : 1) + , std::tuple(NULL,Track::npos,Track::npos) ) + , _segment1 (refSegment) + , _segment2 (symSegment) + , _interval1 (refSegment->getCanonicalInterval()) + , _interval2 ((symSegment) ? symSegment->getCanonicalInterval() : Interval()) , _terminals (0) - , _delta (-interval.getSize()) + , _delta (-_interval1.getSize() -_interval2.getSize()) , _deltaShared (0) , _deltaPerpand (0) , _axisWeight (0) @@ -90,94 +55,76 @@ namespace Katana { , _longuestOverlap(0) , _dataState (0) , _ripupCount (0) + , _selectFlags (NoFlags) + , _selectIndex (0) { - if (not (_flags & Analog)) { - // This is the GCell side (it is *one* cell height from the gauge). - DbU::Unit cellHeight = Session::getSliceHeight(); + std::get<0>( _tracks[0] ) = refTrack; + _segment1->addOverlapCost( *this ); - TrackElement* neighbor; - if ( _begin != Track::npos ) { - neighbor = _track->getSegment(_begin); - if ( neighbor and (neighbor->getNet() != net) ) { - DbU::Unit distance = interval.getVMin() - neighbor->getTargetU(); - if ( distance < cellHeight ) - _distanceToFixed = distance; - } - // if ( neighbor and neighbor->isFixed() ) { - // if ( _distanceToFixed == DbU::Max ) _distanceToFixed = 0; - // _distanceToFixed += interval.getVMin() - neighbor->getTargetU(); - // } - } - if ( _end != Track::npos ) { - neighbor = _track->getSegment(_end); - if ( neighbor and (neighbor->getNet() != net) ) { - DbU::Unit distance = neighbor->getSourceU() - interval.getVMax(); - if ( _distanceToFixed == 2*cellHeight ) _distanceToFixed = 0; - if ( distance < cellHeight ) - _distanceToFixed += distance; - } - // if ( neighbor and neighbor->isFixed() ) { - // if ( _distanceToFixed == DbU::Max ) _distanceToFixed = 0; - // _distanceToFixed += neighbor->getSourceU() - interval.getVMax(); - // } - } + if (symTrack) { + std::get<0>( _tracks[_span] ) = symTrack; + select( 0, Symmetric ); + _segment2->addOverlapCost( *this ); } + + consolidate(); } + TrackCost::~TrackCost () { } bool TrackCost::isFree () const { - return /*(not _terminals) and*/ (not _overlap) and (not _infinite); + return /*(not _terminals) and*/ (not isOverlap()) and (not isInfinite()); } - bool TrackCost::Compare::operator() ( const TrackCost& lhs, const TrackCost& rhs ) + bool TrackCost::Compare::operator() ( const TrackCost* lhs, const TrackCost* rhs ) { - if ( lhs._infinite xor rhs._infinite ) return rhs._infinite; + if ( lhs->isInfinite() xor rhs->isInfinite() ) return rhs->isInfinite(); if ( (_flags & TrackCost::DiscardGlobals) - and (lhs._overlapGlobal xor rhs._overlapGlobal) ) - return rhs._overlapGlobal; + and (lhs->isOverlapGlobal() xor rhs->isOverlapGlobal()) ) + return rhs->isOverlapGlobal(); - if ( lhs._hardOverlap xor rhs._hardOverlap ) return rhs._hardOverlap; + if ( lhs->isHardOverlap() xor rhs->isHardOverlap() ) return rhs->isHardOverlap(); - if ( lhs._ripupCount + (int)Session::getRipupCost() < rhs._ripupCount ) return true; - if ( lhs._ripupCount > (int)Session::getRipupCost() + rhs._ripupCount ) return false; + if ( lhs->_ripupCount + (int)Session::getRipupCost() < rhs->_ripupCount ) return true; + if ( lhs->_ripupCount > (int)Session::getRipupCost() + rhs->_ripupCount ) return false; - //int lhsRipupCost = (lhs._dataState<<2) + lhs._ripupCount; - //int rhsRipupCost = (rhs._dataState<<2) + rhs._ripupCount; + //int lhsRipupCost = (lhs->_dataState<<2) + lhs->_ripupCount; + //int rhsRipupCost = (rhs->_dataState<<2) + rhs->_ripupCount; //if ( lhsRipupCost + (int)Session::getRipupCost() < rhsRipupCost ) return true; //if ( lhsRipupCost > (int)Session::getRipupCost() + rhsRipupCost ) return false; //if ( _flags & TrackCost::DiscardGlobals ) { - // if ( lhs._longuestOverlap < rhs._longuestOverlap ) return true; - // if ( lhs._longuestOverlap > rhs._longuestOverlap ) return false; + // if ( lhs->_longuestOverlap < rhs->_longuestOverlap ) return true; + // if ( lhs->_longuestOverlap > rhs->_longuestOverlap ) return false; //} - if ( lhs._overlap xor rhs._overlap ) return rhs._overlap; + if ( lhs->isOverlap() xor rhs->isOverlap() ) return rhs->isOverlap(); - if ( lhs._terminals < rhs._terminals ) return true; - if ( lhs._terminals > rhs._terminals ) return false; + if ( lhs->_terminals < rhs->_terminals ) return true; + if ( lhs->_terminals > rhs->_terminals ) return false; - if (lhs._delta != rhs._delta) { - //cdebug_log(155,0) << "TrackCost::Compare() lhs._delta:" << lhs._delta << " rhs._delta:" << rhs._delta << endl; - //if ( not (_flags & TrackCost::IgnoreSharedLength) or (lhs._delta > 0) or (rhs._delta > 0) ) { - //if ( (lhs._delta > 0) or (rhs._delta > 0) ) { - if (lhs._delta < rhs._delta) return true; - if (lhs._delta > rhs._delta) return false; + if (lhs->_delta != rhs->_delta) { + //cdebug_log(155,0) << "TrackCost::Compare() lhs->_delta:" << lhs->_delta << " rhs->_delta:" << rhs->_delta << endl; + //if ( not (_flags & TrackCost::IgnoreSharedLength) or (lhs->_delta > 0) or (rhs->_delta > 0) ) { + //if ( (lhs->_delta > 0) or (rhs->_delta > 0) ) { + if (lhs->_delta < rhs->_delta) return true; + if (lhs->_delta > rhs->_delta) return false; //} // Both delta should be negative, chose the least one. - //return lhs._delta > rhs._delta; - return lhs._delta < rhs._delta; + //return lhs->_delta > rhs->_delta; + return lhs->_delta < rhs->_delta; } #if 0 - DbU::Unit lhsMixedWeight = 0.5*lhs._deltaPerpand; - DbU::Unit rhsMixedWeight = 0.5*rhs._deltaPerpand; + DbU::Unit lhsMixedWeight = 0.5*lhs->_deltaPerpand; + DbU::Unit rhsMixedWeight = 0.5*rhs->_deltaPerpand; if ( not (_flags & TrackCost::IgnoreAxisWeight) ) { lhsMixedWeight += lhsMixedWeight; @@ -189,29 +136,46 @@ namespace Katana { #endif if ( not (_flags & TrackCost::IgnoreAxisWeight) ) { - if ( lhs._axisWeight < rhs._axisWeight ) return true; - if ( lhs._axisWeight > rhs._axisWeight ) return false; + if ( lhs->_axisWeight < rhs->_axisWeight ) return true; + if ( lhs->_axisWeight > rhs->_axisWeight ) return false; } - if ( lhs._deltaPerpand < rhs._deltaPerpand ) return true; - if ( lhs._deltaPerpand > rhs._deltaPerpand ) return false; + if ( lhs->_deltaPerpand < rhs->_deltaPerpand ) return true; + if ( lhs->_deltaPerpand > rhs->_deltaPerpand ) return false; - if ( lhs._distanceToFixed > rhs._distanceToFixed ) return true; - if ( lhs._distanceToFixed < rhs._distanceToFixed ) return false; + if ( lhs->_distanceToFixed > rhs->_distanceToFixed ) return true; + if ( lhs->_distanceToFixed < rhs->_distanceToFixed ) return false; - return lhs.getTrack()->getAxis() < rhs.getTrack()->getAxis(); + return lhs->getTrack(0)->getAxis() < rhs->getTrack(0)->getAxis(); } - bool TrackCost::CompareByDelta::operator() ( const TrackCost& lhs, const TrackCost& rhs ) + bool TrackCost::CompareByDelta::operator() ( const TrackCost* lhs, const TrackCost* rhs ) { - return lhs.getDelta() < rhs.getDelta(); + return lhs->getDelta() < rhs->getDelta(); + } + + + Net* TrackCost::getNet1 () const { return (_segment1) ? _segment1->getNet() : NULL; } + Net* TrackCost::getNet2 () const { return (_segment2) ? _segment2->getNet() : NULL; } + + + size_t TrackCost::getBegin ( size_t i, uint32_t flags ) const + { + if (i >= _span) return Track::npos; + return std::get<1>( _tracks[i + ((flags & Symmetric) ? _span : 0)] ); + } + + size_t TrackCost::getEnd ( size_t i, uint32_t flags ) const + { + if (i >= _span) return Track::npos; + return std::get<2>( _tracks[i + ((flags & Symmetric) ? _span : 0)] ); } void TrackCost::consolidate () { - if ( not _infinite and not _hardOverlap ) { + if ( not isInfinite() and not isHardOverlap() ) { cdebug_log(159,0) << "TrackCost::consolidate() " << _delta << " - " << _deltaShared << endl; //_deltaPerpand += - (_deltaShared << 1); _delta -= _deltaShared; @@ -221,16 +185,41 @@ namespace Katana { } - void TrackCost::merge ( const TrackCost& other ) + void TrackCost::setDistanceToFixed () { - _terminals += other._terminals; - _delta += other._delta; - _deltaShared += other._deltaShared; - _deltaPerpand += other._deltaPerpand; - _axisWeight += other._axisWeight; - _distanceToFixed = std::min( _distanceToFixed, other._distanceToFixed ); - _longuestOverlap = std::min( _longuestOverlap, other._longuestOverlap ); - _dataState = std::max( _dataState, other._dataState ); + if (_flags & Analog) return; + + // This is the GCell side (it is *one* cell height from the gauge). + DbU::Unit cellHeight = Session::getSliceHeight(); + + cdebug_log(159,0) << "TrackCost::setDistanceToFixed() begin:" << getBegin(0) << endl; + + TrackElement* neighbor; + if (getBegin(0) != Track::npos) { + neighbor = getTrack(0)->getSegment(getBegin(0)); + if ( neighbor and (neighbor->getNet() != getNet()) ) { + DbU::Unit distance = getInterval().getVMin() - neighbor->getTargetU(); + if ( distance < cellHeight ) + _distanceToFixed = distance; + } + // if ( neighbor and neighbor->isFixed() ) { + // if ( _distanceToFixed == DbU::Max ) _distanceToFixed = 0; + // _distanceToFixed += _interval.getVMin() - neighbor->getTargetU(); + // } + } + if (getEnd(0) != Track::npos) { + neighbor = getTrack(0)->getSegment(getEnd(0)); + if ( neighbor and (neighbor->getNet() != getNet()) ) { + DbU::Unit distance = neighbor->getSourceU() - getInterval().getVMax(); + if ( _distanceToFixed == 2*cellHeight ) _distanceToFixed = 0; + if ( distance < cellHeight ) + _distanceToFixed += distance; + } + // if ( neighbor and neighbor->isFixed() ) { + // if ( _distanceToFixed == DbU::Max ) _distanceToFixed = 0; + // _distanceToFixed += neighbor->getSourceU() - _interval.getVMax(); + // } + } } @@ -238,25 +227,25 @@ namespace Katana { { string s = "<" + _getTypeName(); - s += " " + getString(_track); - s += " " + getString(_dataState); - s += "+" + getString(_ripupCount); - s += ":" + getString((_dataState<<2)+_ripupCount); - s += " " + string ( (_infinite )?"I":"-" ); - s += string ( (_blockage )?"b":"-" ); - s += string ( (_fixed )?"f":"-" ); - s += string ( (_hardOverlap )?"h":"-" ); - s += string ( (_overlap )?"o":"-" ); - s += string ( (_overlapGlobal )?"g":"-" ); - s += string ( (_globalEnclosed)?"e":"-" ); - s += " " + getString(_terminals); - s += "/" + /*DbU::getValueString(_delta)*/ getString(_delta); - s += "-" + /*DbU::getValueString(_deltaShared)*/ getString(_deltaShared); - s += "/" + DbU::getValueString(_axisWeight); - s += "/" + DbU::getValueString(_deltaPerpand); + s += " " + getString(getTrack(0)); + s += " " + getString(_dataState); + s += "+" + getString(_ripupCount); + s += ":" + getString((_dataState<<2)+_ripupCount); + s += " " + string ( (isInfinite() )?"I":"-" ); + s += string ( (isBlockage() )?"b":"-" ); + s += string ( (isFixed() )?"f":"-" ); + s += string ( (isHardOverlap() )?"h":"-" ); + s += string ( (isOverlap() )?"o":"-" ); + s += string ( (isOverlapGlobal() )?"g":"-" ); + s += string ( (isGlobalEnclosed())?"e":"-" ); + s += " " + getString(_terminals); + s += "/" + /*DbU::getValueString(_delta)*/ getString(_delta); + s += "-" + /*DbU::getValueString(_deltaShared)*/ getString(_deltaShared); + s += "/" + DbU::getValueString(_axisWeight); + s += "/" + DbU::getValueString(_deltaPerpand); s += "/f:" + DbU::getValueString(_distanceToFixed); - s += "/" + DbU::getValueString(_longuestOverlap); - s += " " + getString(_dataState); + s += "/" + DbU::getValueString(_longuestOverlap); + s += " " + getString(_dataState); s += ">"; return s; @@ -266,12 +255,10 @@ namespace Katana { Record* TrackCost::_getRecord () const { Record* record = new Record ( _getString() ); - record->add( getSlot ( "_track" , _track ) ); - record->add( getSlot ( "_begin" , &_begin ) ); - record->add( getSlot ( "_end" , &_end ) ); - record->add( getSlot ( "_interval" , &_interval ) ); - record->add( getSlot ( "_infinite" , _infinite ) ); - record->add( getSlot ( "_overlap" , _overlap ) ); + record->add( getSlot ( "_flags" , _flags ) ); + record->add( getSlot ( "_tracks" , _tracks ) ); + record->add( getSlot ( "_interval1" , &_interval1 ) ); + record->add( getSlot ( "_interval2" , &_interval2 ) ); record->add( getSlot ( "_terminals" , _terminals ) ); record->add( DbU::getValueSlot( "_delta" , &_delta ) ); record->add( DbU::getValueSlot( "_deltaShared" , &_deltaShared ) ); diff --git a/katana/src/TrackElement.cpp b/katana/src/TrackElement.cpp index c36399d9..7d896f6d 100644 --- a/katana/src/TrackElement.cpp +++ b/katana/src/TrackElement.cpp @@ -256,9 +256,9 @@ namespace Katana { } - void TrackElement::incOverlapCost ( Net* net, TrackCost& cost ) const + void TrackElement::incOverlapCost ( TrackCost& cost ) const { - if (not _track or (getNet() == net)) return; + if (not _track or (getNet() == cost.getNet())) return; _overlapCostCallback( this, cost ); } diff --git a/katana/src/TrackFixedSegment.cpp b/katana/src/TrackFixedSegment.cpp index dd763853..8201d250 100644 --- a/katana/src/TrackFixedSegment.cpp +++ b/katana/src/TrackFixedSegment.cpp @@ -140,6 +140,7 @@ namespace Katana { Flags TrackFixedSegment::getDirection () const { return getTrack()->getDirection(); } const Layer* TrackFixedSegment::getLayer () const { return _segment->getLayer(); } Interval TrackFixedSegment::getFreeInterval () const { return Interval(); } + size_t TrackFixedSegment::getTrackSpan () const { return 1; } unsigned long TrackFixedSegment::getId () const @@ -172,6 +173,15 @@ namespace Katana { } + void TrackFixedSegment::addOverlapCost ( TrackCost& cost ) const + { + Track* track = cost.getTrack(); + + if (not track) return; + track->addOverlapCost( cost ); + } + + float TrackFixedSegment::getPriority () const { return 0.0; } diff --git a/katana/src/TrackSegment.cpp b/katana/src/TrackSegment.cpp index 2554e2d2..dc54a625 100644 --- a/katana/src/TrackSegment.cpp +++ b/katana/src/TrackSegment.cpp @@ -26,7 +26,8 @@ #include "anabatic/GCell.h" #include "crlcore/RoutingGauge.h" #include "katana/DataNegociate.h" -#include "katana/TrackSegment.h" +#include "katana/TrackSegmentRegular.h" +#include "katana/TrackSegmentWide.h" #include "katana/Track.h" #include "katana/Session.h" #include "katana/RoutingEvent.h" @@ -69,8 +70,8 @@ namespace Katana { , _dogLegLevel (0) , _flags (NoFlags) { - cdebug_log(155,0) << "CTOR TrackSegment " << (void*)this << ":" << this << endl; - cdebug_log(155,0) << " over " << (void*)segment << ":" << segment << endl; + cdebug_log(155,0) << "CTOR TrackSegment " << /*(void*)this <<*/ ":" << this << endl; + cdebug_log(155,0) << " over " << /*(void*)segment <<*/ ":" << segment << endl; setFlags( TElemCreated|TElemLocked ); if (segment) { @@ -129,16 +130,23 @@ namespace Katana { { created = false; - TrackElement* trackElement = Session::lookup( segment->base() ); + DbU::Unit defaultWireWidth = Session::getWireWidth( segment->base()->getLayer() ); + TrackElement* trackElement = Session::lookup( segment->base() ); if (not trackElement) { - TrackSegment* trackSegment = new TrackSegment( segment, track ); - trackSegment->_postCreate(); - created = true; + if (segment->base()->getWidth() <= defaultWireWidth) { + trackElement = new TrackSegmentRegular( segment, track ); + trackElement->_postCreate(); + created = true; - trackSegment->invalidate(); + trackElement->invalidate(); - cdebug_log(159,0) << "TrackSegment::create(): " << trackSegment << endl; - trackElement = trackSegment; + cdebug_log(159,0) << "TrackSegment::create(): " << trackElement << endl; + } else { + throw Error( "TrackSegment::create() Non-regular TrackSegment are not supported yet.\n" + " (on: %s)" + , getString(segment).c_str() + ); + } } return trackElement; @@ -356,7 +364,10 @@ namespace Katana { void TrackSegment::setTrack ( Track* track ) - { TrackElement::setTrack( track ); } + { + if (track) setAxis( track->getAxis(), Anabatic::SegAxisSet ); + TrackElement::setTrack( track ); + } void TrackSegment::setSymmetric ( TrackElement* segment ) diff --git a/katana/src/TrackSegmentRegular.cpp b/katana/src/TrackSegmentRegular.cpp new file mode 100644 index 00000000..0a64bdcf --- /dev/null +++ b/katana/src/TrackSegmentRegular.cpp @@ -0,0 +1,111 @@ +// -*- C++ -*- +// +// This file is part of the Coriolis Software. +// Copyright (c) UPMC 2008-2016, All Rights Reserved +// +// +-----------------------------------------------------------------+ +// | C O R I O L I S | +// | K i t e - D e t a i l e d R o u t e r | +// | | +// | Author : Jean-Paul CHAPUT | +// | E-mail : Jean-Paul.Chaput@asim.lip6.fr | +// | =============================================================== | +// | C++ Module : "./TrackSegmentRegular.cpp" | +// +-----------------------------------------------------------------+ + + +#include +#include +#include "hurricane/Bug.h" +#include "hurricane/Warning.h" +#include "hurricane/BasicLayer.h" +#include "hurricane/Net.h" +#include "hurricane/Name.h" +#include "hurricane/RoutingPad.h" +#include "anabatic/AutoContact.h" +#include "anabatic/GCell.h" +#include "crlcore/RoutingGauge.h" +#include "katana/DataNegociate.h" +#include "katana/TrackSegmentRegular.h" +#include "katana/Track.h" +#include "katana/Session.h" +#include "katana/RoutingEvent.h" +#include "katana/NegociateWindow.h" +#include "katana/KatanaEngine.h" + + +namespace Katana { + + using namespace std; + using Hurricane::tab; + using Hurricane::Bug; + using Hurricane::Error; + using Hurricane::BasicLayer; + using Hurricane::Net; + using Hurricane::Name; + using Hurricane::RoutingPad; + using Anabatic::SegSlackened; + using Anabatic::perpandicularTo; + +// ------------------------------------------------------------------- +// Class : "TrackSegmentRegular". + + + TrackSegmentRegular::TrackSegmentRegular ( AutoSegment* segment, Track* track ) + : Super(segment,track) + { + // cdebug_log(155,0) << "CTOR TrackSegmentRegular " << (void*)this << ":" << this << endl; + // cdebug_log(155,0) << " over " << (void*)segment << ":" << segment << endl; + } + + + void TrackSegmentRegular::_postCreate () + { + Super::_postCreate(); + } + + + TrackSegmentRegular::~TrackSegmentRegular () + { + } + + + void TrackSegmentRegular::_preDestroy () + { + Super::_preDestroy(); + } + + + size_t TrackSegmentRegular::getTrackSpan () const { return 1; } + + + void TrackSegmentRegular::addOverlapCost ( TrackCost& cost ) const + { + uint32_t depth = Session::getRoutingGauge()->getLayerDepth(getLayer()); + bool inLocalDepth = (depth < 3); + bool isOneLocalTrack = (isLocal()) and (base()->getAutoSource()->getGCell()->getGlobalsCount(depth) >= 9.0); + Track* track = cost.getTrack(); + + if (not track) return; + + cost.setFlags( (isLocal() and (depth >= 3)) ? TrackCost::LocalAndTopDepth : 0 ); + cost.setFlags( (isAnalog()) ? TrackCost::Analog : 0 ); + + track->addOverlapCost( cost ); + + cost.setDistanceToFixed(); + cost.incAxisWeight ( getDataNegociate()->getRoutingEvent()->getAxisWeight(track->getAxis()) ); + cost.incDeltaPerpand ( getDataNegociate()->getWiringDelta(track->getAxis()) ); + if (isGlobal()) cost.setForGlobal(); + + if ( inLocalDepth and (cost.getDataState() == DataNegociate::MaximumSlack) ) + cost.setInfinite(); + + if ( isOneLocalTrack + and cost.isOverlapGlobal() + and (cost.getDataState() >= DataNegociate::ConflictSolveByHistory) ) + cost.setInfinite(); + } + + +} // Katana namespace. diff --git a/katana/src/TrackSegmentWide.cpp b/katana/src/TrackSegmentWide.cpp new file mode 100644 index 00000000..74304d16 --- /dev/null +++ b/katana/src/TrackSegmentWide.cpp @@ -0,0 +1,121 @@ +// -*- C++ -*- +// +// This file is part of the Coriolis Software. +// Copyright (c) UPMC 2008-2016, All Rights Reserved +// +// +-----------------------------------------------------------------+ +// | C O R I O L I S | +// | K i t e - D e t a i l e d R o u t e r | +// | | +// | Author : Jean-Paul CHAPUT | +// | E-mail : Jean-Paul.Chaput@asim.lip6.fr | +// | =============================================================== | +// | C++ Module : "./TrackSegmentWide.cpp" | +// +-----------------------------------------------------------------+ + + +#include +#include +#include "hurricane/Bug.h" +#include "hurricane/Warning.h" +#include "hurricane/BasicLayer.h" +#include "hurricane/Net.h" +#include "hurricane/Name.h" +#include "hurricane/RoutingPad.h" +#include "anabatic/AutoContact.h" +#include "anabatic/GCell.h" +#include "crlcore/RoutingGauge.h" +#include "katana/DataNegociate.h" +#include "katana/TrackSegmentWide.h" +#include "katana/Track.h" +#include "katana/Session.h" +#include "katana/RoutingEvent.h" +#include "katana/NegociateWindow.h" +#include "katana/KatanaEngine.h" + + +namespace Katana { + + using namespace std; + using Hurricane::tab; + using Hurricane::Bug; + using Hurricane::Error; + using Hurricane::BasicLayer; + using Hurricane::Net; + using Hurricane::Name; + using Hurricane::RoutingPad; + using Anabatic::SegSlackened; + using Anabatic::perpandicularTo; + + +// ------------------------------------------------------------------- +// Class : "TrackSegmentWide". + + + TrackSegmentWide::TrackSegmentWide ( AutoSegment* segment, Track* track, size_t trackSpan ) + : Super(segment,track) + , _trackSpan(trackSpan) + { + cdebug_log(155,0) << "CTOR TrackSegmentWide " << (void*)this << ":" << this << endl; + cdebug_log(155,0) << " over " << (void*)segment << ":" << segment << endl; + + if (not _trackSpan) { + DbU::Unit mWidth = std::max( Session::getWireWidth(getLayer()), Session::getViaWidth(getLayer()) ); + if (segment->getWidth() < mWidth) { + _trackSpan = 1; + } else { + _trackSpan = ((segment->getWidth() - mWidth) / Session::getPitch(segment->getLayer())) + 2; + } + } + } + + + void TrackSegmentWide::_postCreate () + { + Super::_postCreate(); + } + + + TrackSegmentWide::~TrackSegmentWide () + { + } + + + void TrackSegmentWide::_preDestroy () + { + Super::_preDestroy(); + } + + + size_t TrackSegmentWide::getTrackSpan () const { return _trackSpan; } + + + void TrackSegmentWide::addOverlapCost ( TrackCost& cost ) const + { + uint32_t depth = Session::getRoutingGauge()->getLayerDepth(getLayer()); + bool inLocalDepth = (depth < 3); + Track* track = cost.getTrack(); + + if (not track) return; + + cost.setFlags( (isLocal() and (depth >= 3)) ? TrackCost::LocalAndTopDepth : 0 ); + cost.setFlags( (isAnalog()) ? TrackCost::Analog : 0 ); + + for ( size_t span=0 ; (span < _trackSpan) and (track != NULL) ; ++span ) { + track->addOverlapCost( cost ); + // Todo: have to choose here wether we go *next* or *previous* according + // to the symmetry kind. + track = track->getNextTrack(); + } + + cost.setDistanceToFixed(); + cost.incAxisWeight ( getDataNegociate()->getRoutingEvent()->getAxisWeight(track->getAxis()) ); + cost.incDeltaPerpand ( getDataNegociate()->getWiringDelta(track->getAxis()) ); + if (isGlobal()) cost.setForGlobal(); + + if ( inLocalDepth and (cost.getDataState() == DataNegociate::MaximumSlack) ) + cost.setInfinite(); + } + + +} // Katana namespace. diff --git a/katana/src/katana/SegmentFsm.h b/katana/src/katana/SegmentFsm.h index 426379bc..bcbb69e9 100644 --- a/katana/src/katana/SegmentFsm.h +++ b/katana/src/katana/SegmentFsm.h @@ -17,12 +17,10 @@ #ifndef KATANA_SEGMENT_FSM_H #define KATANA_SEGMENT_FSM_H -#include #include "katana/TrackCost.h" namespace Katana { - using std::array; class TrackElement; class DataNegociate; class RoutingEvent; @@ -107,111 +105,120 @@ namespace Katana { }; public: - SegmentFsm ( RoutingEvent* - , RoutingEventQueue& - , RoutingEventHistory& - ); - inline bool isFullBlocked () const; - inline bool isSymmetric () const; - inline RoutingEvent* getEvent () const; - inline RoutingEvent* getEvent1 () const; - inline RoutingEvent* getEvent2 () const; - inline RoutingEventQueue& getQueue () const; - inline RoutingEventHistory& getHistory () const; - inline TrackElement* getSegment1 () const; - inline TrackElement* getSegment2 () const; - inline uint32_t getState () const; - inline DataNegociate* getData (); - inline DataNegociate* getData1 (); - inline DataNegociate* getData2 (); - inline Interval& getConstraint (); - inline Interval& getOptimal (); - inline vector< array >& getCosts (); - inline TrackCost& getCost ( size_t ); - inline TrackCost& getCost1 ( size_t ); - inline TrackCost& getCost2 ( size_t ); - inline Track* getTrack ( size_t ); - inline size_t getBegin ( size_t ); - inline size_t getEnd ( size_t ); - inline vector& getActions (); - inline void setState ( uint32_t ); - void setDataState ( uint32_t ); - void addAction ( TrackElement* - , uint32_t type - , DbU::Unit axisHint=0 - , uint32_t toState =0 - ); - void doActions (); - inline void clearActions (); - inline SegmentFsm& useEvent1 (); - inline SegmentFsm& useEvent2 (); - void incRipupCount (); - bool insertInTrack ( size_t ); - void bindToTrack ( size_t ); - void moveToTrack ( size_t ); - void ripupPerpandiculars (); - bool canRipup ( uint32_t flags=0 ); - bool conflictSolveByHistory (); - bool conflictSolveByPlaceds (); - bool solveTerminalVsGlobal (); - bool desaturate (); - bool slackenTopology ( uint32_t flags=0 ); - bool solveFullBlockages (); - private: - bool _slackenStrap ( TrackElement*& - , DataNegociate*& - , uint32_t flags ); - bool _slackenLocal ( TrackElement*& - , DataNegociate*& - , uint32_t flags ); - bool _slackenGlobal ( TrackElement*& - , DataNegociate*& - , uint32_t flags ); - private: - RoutingEvent* _event1; - RoutingEvent* _event2; - RoutingEventQueue& _queue; - RoutingEventHistory& _history; - uint32_t _state; - DataNegociate* _data1; - DataNegociate* _data2; - Interval _constraint; - Interval _optimal; - vector< array > _costs; - vector _actions; - bool _fullBlocked; - bool _sameAxis; - bool _useEvent2; + SegmentFsm ( RoutingEvent* + , RoutingEventQueue& + , RoutingEventHistory& + ); + ~SegmentFsm (); + inline bool isFullBlocked () const; + inline bool isSymmetric () const; + inline RoutingEvent* getEvent () const; + inline RoutingEvent* getEvent1 () const; + inline RoutingEvent* getEvent2 () const; + inline RoutingEventQueue& getQueue () const; + inline RoutingEventHistory& getHistory () const; + inline TrackElement* getSegment1 () const; + inline TrackElement* getSegment2 () const; + inline uint32_t getState () const; + inline DataNegociate* getData (); + inline DataNegociate* getData1 (); + inline DataNegociate* getData2 (); + inline Interval& getConstraint (); + inline Interval& getOptimal (); + inline vector& getCosts (); + inline TrackCost* getCost ( size_t ); + inline Track* getTrack ( size_t ); + inline Track* getTrack1 ( size_t ); + inline Track* getTrack2 ( size_t ); + inline size_t getBegin ( size_t ); + inline size_t getBegin1 ( size_t ); + inline size_t getBegin2 ( size_t ); + inline size_t getEnd ( size_t ); + inline size_t getEnd1 ( size_t ); + inline size_t getEnd2 ( size_t ); + inline vector& getActions (); + inline void setState ( uint32_t ); + void setDataState ( uint32_t ); + void addAction ( TrackElement* + , uint32_t type + , DbU::Unit axisHint=0 + , uint32_t toState =0 + ); + void doActions (); + inline void clearActions (); + inline SegmentFsm& useEvent1 (); + inline SegmentFsm& useEvent2 (); + void incRipupCount (); + bool insertInTrack ( size_t ); + void bindToTrack ( size_t ); + void moveToTrack ( size_t ); + void ripupPerpandiculars (); + bool canRipup ( uint32_t flags=0 ); + bool conflictSolveByHistory (); + bool conflictSolveByPlaceds (); + bool solveTerminalVsGlobal (); + bool desaturate (); + bool slackenTopology ( uint32_t flags=0 ); + bool solveFullBlockages (); + private: + bool _slackenStrap ( TrackElement*& + , DataNegociate*& + , uint32_t flags ); + bool _slackenLocal ( TrackElement*& + , DataNegociate*& + , uint32_t flags ); + bool _slackenGlobal ( TrackElement*& + , DataNegociate*& + , uint32_t flags ); + private: + RoutingEvent* _event1; + RoutingEvent* _event2; + RoutingEventQueue& _queue; + RoutingEventHistory& _history; + uint32_t _state; + DataNegociate* _data1; + DataNegociate* _data2; + Interval _constraint; + Interval _optimal; + vector _costs; + vector _actions; + bool _fullBlocked; + bool _sameAxis; + bool _useEvent2; }; - inline bool SegmentFsm::isSymmetric () const { return _event2 != NULL; } - inline bool SegmentFsm::isFullBlocked () const { return _fullBlocked and _costs.size(); } - inline RoutingEvent* SegmentFsm::getEvent () const { return (_useEvent2) ? _event2 : _event1; } - inline RoutingEvent* SegmentFsm::getEvent1 () const { return _event1; } - inline RoutingEvent* SegmentFsm::getEvent2 () const { return _event2; } - inline RoutingEventQueue& SegmentFsm::getQueue () const { return _queue; } - inline RoutingEventHistory& SegmentFsm::getHistory () const { return _history; } - inline uint32_t SegmentFsm::getState () const { return _state; } - inline TrackElement* SegmentFsm::getSegment1 () const { return _event1->getSegment(); } - inline TrackElement* SegmentFsm::getSegment2 () const { return (_event2) ? _event2->getSegment() : NULL; } - inline DataNegociate* SegmentFsm::getData () { return (_useEvent2) ? _data2 : _data1; } - inline DataNegociate* SegmentFsm::getData1 () { return _data1; } - inline DataNegociate* SegmentFsm::getData2 () { return _data2; } - inline Interval& SegmentFsm::getConstraint () { return _constraint; } - inline Interval& SegmentFsm::getOptimal () { return _optimal; } - inline vector< array >& SegmentFsm::getCosts () { return _costs; } - inline TrackCost& SegmentFsm::getCost ( size_t i ) { return _costs[i][0]; } - inline TrackCost& SegmentFsm::getCost1 ( size_t i ) { return _costs[i][0]; } - inline TrackCost& SegmentFsm::getCost2 ( size_t i ) { return _costs[i][1]; } - inline Track* SegmentFsm::getTrack ( size_t i ) { return (_useEvent2) ? _costs[i][1].getTrack() : _costs[i][0].getTrack(); } - inline size_t SegmentFsm::getBegin ( size_t i ) { return (_useEvent2) ? _costs[i][1].getBegin() : _costs[i][0].getBegin(); } - inline size_t SegmentFsm::getEnd ( size_t i ) { return (_useEvent2) ? _costs[i][1].getEnd () : _costs[i][0].getEnd (); } - inline vector& SegmentFsm::getActions () { return _actions; } - inline void SegmentFsm::setState ( uint32_t state ) { _state = state; } - inline void SegmentFsm::clearActions () { _actions.clear(); } - inline SegmentFsm& SegmentFsm::useEvent1 () { _useEvent2 = false; return *this; } - inline SegmentFsm& SegmentFsm::useEvent2 () { _useEvent2 = true ; return *this; } + inline bool SegmentFsm::isSymmetric () const { return _event2 != NULL; } + inline bool SegmentFsm::isFullBlocked () const { return _fullBlocked and _costs.size(); } + inline RoutingEvent* SegmentFsm::getEvent () const { return (_useEvent2) ? _event2 : _event1; } + inline RoutingEvent* SegmentFsm::getEvent1 () const { return _event1; } + inline RoutingEvent* SegmentFsm::getEvent2 () const { return _event2; } + inline RoutingEventQueue& SegmentFsm::getQueue () const { return _queue; } + inline RoutingEventHistory& SegmentFsm::getHistory () const { return _history; } + inline uint32_t SegmentFsm::getState () const { return _state; } + inline TrackElement* SegmentFsm::getSegment1 () const { return _event1->getSegment(); } + inline TrackElement* SegmentFsm::getSegment2 () const { return (_event2) ? _event2->getSegment() : NULL; } + inline DataNegociate* SegmentFsm::getData () { return (_useEvent2) ? _data2 : _data1; } + inline DataNegociate* SegmentFsm::getData1 () { return _data1; } + inline DataNegociate* SegmentFsm::getData2 () { return _data2; } + inline Interval& SegmentFsm::getConstraint () { return _constraint; } + inline Interval& SegmentFsm::getOptimal () { return _optimal; } + inline vector& SegmentFsm::getCosts () { return _costs; } + inline TrackCost* SegmentFsm::getCost ( size_t i ) { return _costs[i]; } + inline Track* SegmentFsm::getTrack ( size_t i ) { return (_useEvent2) ? getTrack2(i) : getTrack1(i); } + inline size_t SegmentFsm::getBegin ( size_t i ) { return (_useEvent2) ? getBegin2(i) : getBegin1(i); } + inline size_t SegmentFsm::getEnd ( size_t i ) { return (_useEvent2) ? getEnd2 (i) : getEnd1 (i); } + inline Track* SegmentFsm::getTrack1 ( size_t i ) { return _costs[i]->getTrack(0,TrackCost::NoFlags ); } + inline Track* SegmentFsm::getTrack2 ( size_t i ) { return _costs[i]->getTrack(0,TrackCost::Symmetric); } + inline size_t SegmentFsm::getBegin1 ( size_t i ) { return _costs[i]->getBegin(0,TrackCost::NoFlags ); } + inline size_t SegmentFsm::getBegin2 ( size_t i ) { return _costs[i]->getBegin(0,TrackCost::Symmetric); } + inline size_t SegmentFsm::getEnd1 ( size_t i ) { return _costs[i]->getEnd (0,TrackCost::NoFlags ); } + inline size_t SegmentFsm::getEnd2 ( size_t i ) { return _costs[i]->getEnd (0,TrackCost::Symmetric); } + inline vector& SegmentFsm::getActions () { return _actions; } + inline void SegmentFsm::setState ( uint32_t state ) { _state = state; } + inline void SegmentFsm::clearActions () { _actions.clear(); } + inline SegmentFsm& SegmentFsm::useEvent1 () { _useEvent2 = false; return *this; } + inline SegmentFsm& SegmentFsm::useEvent2 () { _useEvent2 = true ; return *this; } } // Katana namespace. diff --git a/katana/src/katana/Track.h b/katana/src/katana/Track.h index 1b7e2a2a..95b4689b 100644 --- a/katana/src/katana/Track.h +++ b/katana/src/katana/Track.h @@ -95,9 +95,7 @@ namespace Katana { Interval expandFreeInterval ( size_t& begin, size_t& end, uint32_t state, Net* ) const; void getBeginIndex ( DbU::Unit position, size_t& begin, uint32_t& state ) const; void getOverlapBounds ( Interval, size_t& begin, size_t& end ) const; - TrackCost getOverlapCost ( Interval, Net*, size_t begin, size_t end, uint32_t flags ) const; - TrackCost getOverlapCost ( Interval, Net*, uint32_t flags ) const; - TrackCost getOverlapCost ( TrackElement*, uint32_t flags ) const; + TrackCost& addOverlapCost ( TrackCost& ) const; void getTerminalWeight ( Interval, Net*, size_t& count, uint32_t& weight ) const; DbU::Unit getSourcePosition ( size_t index ) const; bool check ( uint32_t& overlaps, const char* message=NULL ) const; diff --git a/katana/src/katana/TrackCost.h b/katana/src/katana/TrackCost.h index c0ba9ff3..9e70eeb9 100644 --- a/katana/src/katana/TrackCost.h +++ b/katana/src/katana/TrackCost.h @@ -18,6 +18,7 @@ #define KATANA_TRACK_COST_H #include +#include #include "hurricane/Interval.h" namespace Hurricane { class Net; @@ -32,6 +33,7 @@ namespace Katana { using Hurricane::Interval; using Hurricane::Net; class Track; + class TrackElement; // ------------------------------------------------------------------- @@ -39,36 +41,48 @@ namespace Katana { class TrackCost { public: - enum Flags { IgnoreAxisWeight = (1 << 0) - , DiscardGlobals = (1 << 1) - , IgnoreSharedLength = (1 << 2) - , LocalAndTopDepth = (1 << 3) - , ZeroCost = (1 << 4) - , Analog = (1 << 5) + enum Flags { NoFlags = 0 + , IgnoreAxisWeight = (1 << 0) + , DiscardGlobals = (1 << 1) + , IgnoreSharedLength = (1 << 2) + , LocalAndTopDepth = (1 << 3) + , ZeroCost = (1 << 4) + , Analog = (1 << 5) + , Symmetric = (1 << 6) + , ForGlobal = (1 << 7) + , Blockage = (1 << 8) + , Fixed = (1 << 9) + , Infinite = (1 << 10) + , HardOverlap = (1 << 11) + , Overlap = (1 << 12) + , LeftOverlap = (1 << 13) + , RightOverlap = (1 << 14) + , OverlapGlobal = (1 << 15) + , GlobalEnclosed = (1 << 16) + , MergeMask = ForGlobal |Blockage|Fixed |Infinite + |HardOverlap |Overlap |RightOverlap|LeftOverlap|OverlapGlobal + |GlobalEnclosed }; public: // Sub-Class: "CompareByDelta()". class CompareByDelta { public: - bool operator() ( const TrackCost& lhs, const TrackCost& rhs ); + bool operator() ( const TrackCost* lhs, const TrackCost* rhs ); }; class Compare { public: inline Compare ( uint32_t flags=0 ); - bool operator() ( const TrackCost& lhs, const TrackCost& rhs ); + bool operator() ( const TrackCost* lhs, const TrackCost* rhs ); private: uint32_t _flags; }; public: - TrackCost ( Track* track ); - TrackCost ( Track* track - , const Interval& interval - , size_t begin - , size_t end - , Net* net - , uint32_t flags + TrackCost ( TrackElement* refSegment + , TrackElement* symSegment + , Track* refTrack + , Track* symTrack ); ~TrackCost (); inline bool isForGlobal () const; @@ -82,11 +96,25 @@ namespace Katana { inline bool isOverlapGlobal () const; inline bool isGlobalEnclosed () const; bool isFree () const; + inline bool isSymmetric () const; + inline bool isWide () const; inline uint32_t getFlags () const; + inline size_t getSpan () const; + inline Net* getNet () const; + Net* getNet1 () const; + Net* getNet2 () const; inline Track* getTrack () const; inline size_t getBegin () const; inline size_t getEnd () const; + inline Track* getTrack ( size_t i ) const; + inline size_t getBegin ( size_t i ) const; + inline size_t getEnd ( size_t i ) const; + inline Track* getTrack ( size_t i, uint32_t flags ) const; + size_t getBegin ( size_t i, uint32_t flags ) const; + size_t getEnd ( size_t i, uint32_t flags ) const; inline const Interval& getInterval () const; + inline const Interval& getInterval1 () const; + inline const Interval& getInterval2 () const; inline uint32_t getTerminals () const; inline DbU::Unit getDelta () const; inline DbU::Unit getDeltaPerpand () const; @@ -94,6 +122,8 @@ namespace Katana { inline long getAxisWeight () const; inline int getRipupCount () const; inline uint32_t getDataState () const; + inline uint32_t setFlags ( uint32_t ); + inline void setTrack ( Track*, size_t begin, size_t end ); inline void setForGlobal (); inline void setBlockage (); inline void setFixed (); @@ -108,34 +138,29 @@ namespace Katana { inline void incDelta ( DbU::Unit ); inline void incDeltaPerpand ( DbU::Unit ); inline void incDeltaShared ( DbU::Unit ); - inline void setAxisWeight ( DbU::Unit ); + inline void incAxisWeight ( DbU::Unit ); inline void setLonguestOverlap ( DbU::Unit ); inline void mergeRipupCount ( int ); inline void mergeDataState ( uint32_t ); - void merge ( const TrackCost& ); + inline bool select ( size_t index, uint32_t flags ); void consolidate (); + void setDistanceToFixed (); Record* _getRecord () const; string _getString () const; inline string _getTypeName () const; - // Operators. - + private: + TrackCost ( const TrackCost& ) = delete; + TrackCost& operator= ( const TrackCost& ) = delete; // Attributes. - protected: + private: uint32_t _flags; - Track* _track; - size_t _begin; - size_t _end; - Interval _interval; - bool _forGlobal; - bool _blockage; - bool _fixed; - bool _infinite; - bool _hardOverlap; - bool _overlap; - bool _leftOverlap; - bool _rightOverlap; - bool _overlapGlobal; - bool _globalEnclosed; + size_t _span; + std::vector< std::tuple > + _tracks; + TrackElement* _segment1; + TrackElement* _segment2; + Interval _interval1; + Interval _interval2; uint32_t _terminals; DbU::Unit _delta; DbU::Unit _deltaShared; @@ -145,59 +170,101 @@ namespace Katana { DbU::Unit _longuestOverlap; uint32_t _dataState; int _ripupCount; - + uint32_t _selectFlags; + size_t _selectIndex; }; // Inline Functions. - inline bool TrackCost::isForGlobal () const { return _forGlobal; } - inline bool TrackCost::isBlockage () const { return _blockage; } - inline bool TrackCost::isFixed () const { return _fixed; } - inline bool TrackCost::isInfinite () const { return _infinite; } - inline bool TrackCost::isOverlap () const { return _overlap; } - inline bool TrackCost::isLeftOverlap () const { return _leftOverlap; } - inline bool TrackCost::isRightOverlap () const { return _rightOverlap; } - inline bool TrackCost::isHardOverlap () const { return _hardOverlap; } - inline bool TrackCost::isOverlapGlobal () const { return _overlapGlobal; } - inline bool TrackCost::isGlobalEnclosed () const { return _globalEnclosed; } + inline bool TrackCost::isForGlobal () const { return _flags & ForGlobal; } + inline bool TrackCost::isBlockage () const { return _flags & Blockage; } + inline bool TrackCost::isFixed () const { return _flags & Fixed; } + inline bool TrackCost::isInfinite () const { return _flags & Infinite; } + inline bool TrackCost::isOverlap () const { return _flags & Overlap; } + inline bool TrackCost::isLeftOverlap () const { return _flags & LeftOverlap; } + inline bool TrackCost::isRightOverlap () const { return _flags & RightOverlap; } + inline bool TrackCost::isHardOverlap () const { return _flags & HardOverlap; } + inline bool TrackCost::isOverlapGlobal () const { return _flags & OverlapGlobal; } + inline bool TrackCost::isGlobalEnclosed () const { return _flags & GlobalEnclosed; } + inline bool TrackCost::isSymmetric () const { return _flags & Symmetric; } + inline bool TrackCost::isWide () const { return (_span > 1); } inline uint32_t TrackCost::getFlags () const { return _flags; } - inline Track* TrackCost::getTrack () const { return _track; } - inline size_t TrackCost::getBegin () const { return _begin; } - inline size_t TrackCost::getEnd () const { return _end; } - inline const Interval& TrackCost::getInterval () const { return _interval; } + inline size_t TrackCost::getSpan () const { return _span; } + inline Net* TrackCost::getNet () const { return (_selectFlags & Symmetric) ? getNet2() : getNet1(); } + inline Track* TrackCost::getTrack () const { return getTrack(_selectIndex,_selectFlags); } + inline Track* TrackCost::getTrack ( size_t i ) const { return getTrack(i,NoFlags); } + inline size_t TrackCost::getBegin () const { return getBegin(_selectIndex,_selectFlags); } + inline size_t TrackCost::getBegin ( size_t i ) const { return getBegin(i,NoFlags); } + inline size_t TrackCost::getEnd () const { return getEnd (_selectIndex,_selectFlags); } + inline size_t TrackCost::getEnd ( size_t i ) const { return getEnd (i,NoFlags); } + inline const Interval& TrackCost::getInterval () const { return (_selectFlags & Symmetric) ? getInterval2() : getInterval1(); } + inline const Interval& TrackCost::getInterval1 () const { return _interval1; } + inline const Interval& TrackCost::getInterval2 () const { return _interval2; } inline uint32_t TrackCost::getTerminals () const { return _terminals; } inline DbU::Unit TrackCost::getLongestOverlap () const { return _longuestOverlap; } inline DbU::Unit TrackCost::getDelta () const { return _delta; } inline long TrackCost::getAxisWeight () const { return _axisWeight; } inline int TrackCost::getRipupCount () const { return _ripupCount; } inline uint32_t TrackCost::getDataState () const { return _dataState; } - inline void TrackCost::setForGlobal () { _forGlobal = true; } - inline void TrackCost::setBlockage () { _blockage = true; } - inline void TrackCost::setFixed () { _fixed = true; } - inline void TrackCost::setInfinite () { _infinite = true; } - inline void TrackCost::setOverlap () { _overlap = true; } - inline void TrackCost::setLeftOverlap () { _leftOverlap = true; } - inline void TrackCost::setRightOverlap () { _rightOverlap = true; } - inline void TrackCost::setHardOverlap () { _hardOverlap = true; } - inline void TrackCost::setOverlapGlobal () { _overlapGlobal = true; } - inline void TrackCost::setGlobalEnclosed () { _globalEnclosed = true; } - inline void TrackCost::incTerminals ( uint32_t terminals ) { _terminals += terminals; } - inline void TrackCost::incDelta ( DbU::Unit delta ) { _delta += delta; } - inline void TrackCost::incDeltaPerpand ( DbU::Unit delta ) { _deltaPerpand += delta; } - inline void TrackCost::incDeltaShared ( DbU::Unit delta ) { _deltaShared += delta; } - inline void TrackCost::setAxisWeight ( DbU::Unit weight ) { _axisWeight = weight; } - inline void TrackCost::setLonguestOverlap ( DbU::Unit overlap ) { _longuestOverlap = (overlap > _longuestOverlap) ? overlap : _longuestOverlap; } - inline void TrackCost::mergeRipupCount ( int count ) { _ripupCount = (count>_ripupCount)?count:_ripupCount; } - inline void TrackCost::mergeDataState ( uint32_t state ) { _dataState = (state>_dataState)?state:_dataState; } + inline uint32_t TrackCost::setFlags ( uint32_t mask ) { _flags |= mask; return _flags; } + inline void TrackCost::setForGlobal () { _flags |= ForGlobal; } + inline void TrackCost::setBlockage () { _flags |= Blockage; } + inline void TrackCost::setFixed () { _flags |= Fixed; } + inline void TrackCost::setInfinite () { _flags |= Infinite; } + inline void TrackCost::setOverlap () { _flags |= Overlap; } + inline void TrackCost::setLeftOverlap () { _flags |= LeftOverlap; } + inline void TrackCost::setRightOverlap () { _flags |= RightOverlap; } + inline void TrackCost::setHardOverlap () { _flags |= HardOverlap; } + inline void TrackCost::setOverlapGlobal () { _flags |= OverlapGlobal; } + inline void TrackCost::setGlobalEnclosed () { _flags |= GlobalEnclosed; } + inline void TrackCost::incTerminals ( uint32_t terminals ) { _terminals += terminals; } + inline void TrackCost::incDelta ( DbU::Unit delta ) { _delta += delta; } + inline void TrackCost::incDeltaPerpand ( DbU::Unit delta ) { _deltaPerpand += delta; } + inline void TrackCost::incDeltaShared ( DbU::Unit delta ) { _deltaShared += delta; } + inline void TrackCost::incAxisWeight ( DbU::Unit weight ) { _axisWeight += weight; } + inline void TrackCost::setLonguestOverlap ( DbU::Unit overlap ) { _longuestOverlap = std::max( overlap, _longuestOverlap ); } + inline void TrackCost::mergeRipupCount ( int count ) { _ripupCount = std::max( count , _ripupCount ); } + inline void TrackCost::mergeDataState ( uint32_t state ) { _dataState = std::max( state , _dataState ); } inline string TrackCost::_getTypeName () const { return "TrackCost"; } + inline TrackCost::Compare::Compare ( uint32_t flags ) : _flags(flags) { } + inline bool TrackCost::select ( size_t index, uint32_t flags ) + { + if ( (index >= _span) or ((flags & Symmetric) and not (_flags & Symmetric)) ) { + _selectIndex = 0; + _selectFlags = NoFlags; + return false; + } + + _selectIndex = index; + _selectFlags = flags; + return true; + } + + + inline Track* TrackCost::getTrack ( size_t i, uint32_t flags ) const + { + if (i >= _span) return NULL; + return std::get<0>( _tracks[i + ((flags & Symmetric) ? _span : 0)] ); + } + + + inline void TrackCost::setTrack ( Track* track, size_t begin, size_t end ) + { + auto& entry = _tracks[_selectIndex + ((_selectFlags & Symmetric) ? _span : 0)]; + std::get<0>( entry ) = track; + std::get<1>( entry ) = begin; + std::get<2>( entry ) = end; + } + + } // Katana namespace. -INSPECTOR_V_SUPPORT(Katana::TrackCost); +INSPECTOR_P_SUPPORT(Katana::TrackCost); #endif // KATANA_TRACK_COST_H diff --git a/katana/src/katana/TrackElement.h b/katana/src/katana/TrackElement.h index b89691fe..45b62c3d 100644 --- a/katana/src/katana/TrackElement.h +++ b/katana/src/katana/TrackElement.h @@ -31,6 +31,7 @@ namespace Hurricane { #include "anabatic/AutoSegment.h" #include "katana/Constants.h" #include "katana/Session.h" +#include "katana/TrackCost.h" #include "katana/TrackElements.h" @@ -51,6 +52,7 @@ namespace Katana { class DataNegociate; class Track; class TrackCost; + class TrackSegment; typedef map TrackElementLut; @@ -60,15 +62,19 @@ namespace Katana { // ------------------------------------------------------------------- // Class : "TrackElement". - enum TrackElementFlags { TElemCreated =0x00000001 - , TElemBlockage =0x00000002 - , TElemFixed =0x00000004 - , TElemLocked =0x00000008 - , TElemRouted =0x00000010 - , TElemSourceDogleg=0x00000020 - , TElemTargetDogleg=0x00000040 - , TElemRipple =0x00000080 - , TElemInvalidated =0x00000100 + enum TrackElementFlags { TElemCreated = (1 << 0) + , TElemBlockage = (1 << 1) + , TElemFixed = (1 << 2) + , TElemWide = (1 << 3) + , TElemLocked = (1 << 4) + , TElemRouted = (1 << 5) + , TElemSourceDogleg = (1 << 6) + , TElemTargetDogleg = (1 << 7) + , TElemAlignBottom = (1 << 8) + , TElemAlignCenter = (1 << 9) + , TElemAlignTop = (1 << 10) + , TElemRipple = (1 << 11) + , TElemInvalidated = (1 << 12) }; @@ -82,6 +88,7 @@ namespace Katana { class TrackElement { + friend class TrackSegment; public: static SegmentOverlapCostCB* setOverlapCostCB ( SegmentOverlapCostCB* ); @@ -94,6 +101,7 @@ namespace Katana { virtual bool isFixed () const; virtual bool isHorizontal () const = 0; virtual bool isVertical () const = 0; + inline bool isWide () const; virtual bool isLocal () const; virtual bool isGlobal () const; virtual bool isBipoint () const; @@ -132,6 +140,7 @@ namespace Katana { virtual const Layer* getLayer () const = 0; virtual DbU::Unit getPitch () const; virtual DbU::Unit getPPitch () const; + virtual size_t getTrackSpan () const = 0; inline Track* getTrack () const; inline size_t getIndex () const; virtual float getPriority () const = 0; @@ -157,6 +166,7 @@ namespace Katana { virtual TrackElement* getTargetDogleg (); virtual TrackElement* getSymmetric (); virtual TrackElements getPerpandiculars (); + virtual void addOverlapCost ( TrackCost& ) const = 0; // Mutators. inline void setFlags ( uint32_t ); inline void unsetFlags ( uint32_t ); @@ -176,7 +186,7 @@ namespace Katana { virtual void invalidate (); virtual void revalidate (); virtual void updatePPitch (); - virtual void incOverlapCost ( Net*, TrackCost& ) const; + virtual void incOverlapCost ( TrackCost& ) const; virtual void setAxis ( DbU::Unit, uint32_t flags=Anabatic::SegAxisSet ); virtual TrackElement* makeDogleg (); inline bool makeDogleg ( Anabatic::GCell* ); @@ -199,12 +209,12 @@ namespace Katana { // Static Attributes. static SegmentOverlapCostCB* _overlapCostCallback; // Attributes. - uint32_t _flags; - Track* _track; - size_t _index; - DbU::Unit _sourceU; - DbU::Unit _targetU; - Observer _observer; + uint32_t _flags; + Track* _track; + size_t _index; + DbU::Unit _sourceU; + DbU::Unit _targetU; + Observer _observer; protected: // Constructors & Destructors. @@ -221,8 +231,9 @@ namespace Katana { // Inline functions. inline Observer* TrackElement::getObserver () { return &_observer; } - inline void TrackElement::setFlags ( uint32_t flags ) { _flags|= flags; } - inline void TrackElement::unsetFlags ( uint32_t flags ) { _flags&=~flags; } + inline void TrackElement::setFlags ( uint32_t flags ) { _flags |= flags; } + inline void TrackElement::unsetFlags ( uint32_t flags ) { _flags &= ~flags; } + inline bool TrackElement::isWide () const { return _flags & TElemWide; } inline bool TrackElement::isCreated () const { return _flags & TElemCreated; } inline bool TrackElement::isInvalidated () const { return _flags & TElemInvalidated; } inline bool TrackElement::isBlockage () const { return _flags & TElemBlockage; } diff --git a/katana/src/katana/TrackFixedSegment.h b/katana/src/katana/TrackFixedSegment.h index b5f623f3..259ae556 100644 --- a/katana/src/katana/TrackFixedSegment.h +++ b/katana/src/katana/TrackFixedSegment.h @@ -50,10 +50,12 @@ namespace Katana { virtual Flags getDirection () const; virtual Net* getNet () const; virtual const Layer* getLayer () const; + virtual size_t getTrackSpan () const; virtual TrackElement* getNext () const; virtual TrackElement* getPrevious () const; virtual DbU::Unit getAxis () const; virtual Interval getFreeInterval () const; + virtual void addOverlapCost ( TrackCost& ) const; virtual float getPriority () const; virtual void setPriorityLock ( bool ); virtual void forcePriority ( float ); diff --git a/katana/src/katana/TrackSegmentRegular.h b/katana/src/katana/TrackSegmentRegular.h new file mode 100644 index 00000000..a561f089 --- /dev/null +++ b/katana/src/katana/TrackSegmentRegular.h @@ -0,0 +1,68 @@ +// -*- C++ -*- +// +// This file is part of the Coriolis Software. +// Copyright (c) UPMC 2008-2016, All Rights Reserved +// +// +-----------------------------------------------------------------+ +// | C O R I O L I S | +// | K i t e - D e t a i l e d R o u t e r | +// | | +// | Author : Jean-Paul CHAPUT | +// | E-mail : Jean-Paul.Chaput@asim.lip6.fr | +// | =============================================================== | +// | C++ Header : "./katana/TrackSegmentRegular.h" | +// +-----------------------------------------------------------------+ + + +#ifndef KATANA_TRACK_SEGMENT_REGULAR_H +#define KATANA_TRACK_SEGMENT_REGULAR_H + +#include +#include +#include "katana/TrackSegment.h" + + +namespace Katana { + + using std::string; + using std::map; + using std::set; + using std::binary_function; + using Hurricane::Record; + using Hurricane::Interval; + using Hurricane::DbU; + using Hurricane::Net; + using Hurricane::Layer; + using Anabatic::AutoSegment; + + class DataNegociate; + class Track; + class TrackCost; + + +// ------------------------------------------------------------------- +// Class : "TrackSegmentRegular". + + class TrackSegmentRegular : public TrackSegment { + friend class TrackSegment; + public: + typedef TrackSegment Super; + protected: + TrackSegmentRegular ( AutoSegment*, Track* ) ; + virtual ~TrackSegmentRegular (); + virtual void _postCreate (); + virtual void _preDestroy (); + virtual size_t getTrackSpan () const; + virtual void addOverlapCost ( TrackCost& ) const; + private: + TrackSegmentRegular ( const TrackSegmentRegular& ) = delete; + TrackSegmentRegular& operator= ( const TrackSegmentRegular& ) = delete; + }; + + +} // Katana namespace. + + +INSPECTOR_P_SUPPORT(Katana::TrackSegmentRegular); + +#endif // KATANA_TRACK_SEGMENT_REGULAR_H diff --git a/katana/src/katana/TrackSegmentWide.h b/katana/src/katana/TrackSegmentWide.h new file mode 100644 index 00000000..8a31fc67 --- /dev/null +++ b/katana/src/katana/TrackSegmentWide.h @@ -0,0 +1,70 @@ +// -*- C++ -*- +// +// This file is part of the Coriolis Software. +// Copyright (c) UPMC 2008-2016, All Rights Reserved +// +// +-----------------------------------------------------------------+ +// | C O R I O L I S | +// | K i t e - D e t a i l e d R o u t e r | +// | | +// | Author : Jean-Paul CHAPUT | +// | E-mail : Jean-Paul.Chaput@asim.lip6.fr | +// | =============================================================== | +// | C++ Header : "./katana/TrackSegmentWide.h" | +// +-----------------------------------------------------------------+ + + +#ifndef KATANA_TRACK_SEGMENT_WIDE_H +#define KATANA_TRACK_SEGMENT_WIDE_H + +#include +#include +#include "katana/TrackSegment.h" + + +namespace Katana { + + using std::string; + using std::map; + using std::set; + using std::binary_function; + using Hurricane::Record; + using Hurricane::Interval; + using Hurricane::DbU; + using Hurricane::Net; + using Hurricane::Layer; + using Anabatic::AutoSegment; + + class DataNegociate; + class Track; + class TrackCost; + + +// ------------------------------------------------------------------- +// Class : "TrackSegmentWide". + + class TrackSegmentWide : public TrackSegment { + friend class TrackSegment; + public: + typedef TrackSegment Super; + protected: + TrackSegmentWide ( AutoSegment*, Track*, size_t trackSpan=0 ) ; + virtual ~TrackSegmentWide (); + virtual void _postCreate (); + virtual void _preDestroy (); + virtual size_t getTrackSpan () const; + virtual void addOverlapCost ( TrackCost& ) const; + private: + TrackSegmentWide ( const TrackSegmentWide& ) = delete; + TrackSegmentWide& operator= ( const TrackSegmentWide& ) = delete; + private: + size_t _trackSpan; + }; + + +} // Katana namespace. + + +INSPECTOR_P_SUPPORT(Katana::TrackSegmentWide); + +#endif // KATANA_TRACK_SEGMENT_WIDE_H From e1724ca785b972cdc0b75a36676e96848c283675 Mon Sep 17 00:00:00 2001 From: EricLaoGitHub Date: Wed, 14 Jun 2017 10:46:54 +0200 Subject: [PATCH 19/30] Dijkstra and Net can manage different wire width. in Dijkstra.cpp/.h, Edge.cpp/.h, GCell.cpp/.h: *Change: GlobalRouting wires can have different wires' width. One Net's wires has one width only. in NetRoutingProperty.cpp/.h, PyNetRoutingProperty.cpp/.h: *New: A wire width parameter is added. It can be set through python script. --- anabatic/src/Dijkstra.cpp | 72 +++++++++++++------ anabatic/src/Edge.cpp | 28 +++++++- anabatic/src/GCell.cpp | 14 ++++ anabatic/src/anabatic/Dijkstra.h | 3 +- anabatic/src/anabatic/Edge.h | 12 +++- anabatic/src/anabatic/GCell.h | 14 ++++ .../src/hurricane/NetRoutingProperty.cpp | 4 ++ .../hurricane/hurricane/NetRoutingProperty.h | 26 ++++++- hurricane/src/isobar/PyNetRoutingProperty.cpp | 4 ++ hurricane/src/isobar/PyNetRoutingState.cpp | 4 ++ 10 files changed, 154 insertions(+), 27 deletions(-) diff --git a/anabatic/src/Dijkstra.cpp b/anabatic/src/Dijkstra.cpp index 5dbc0d1d..ede13cf2 100644 --- a/anabatic/src/Dijkstra.cpp +++ b/anabatic/src/Dijkstra.cpp @@ -231,7 +231,7 @@ namespace Anabatic { } - bool Vertex::isRestricted ( const Vertex* v1, const Vertex* v2, DbU::Unit hpitch, DbU::Unit vpitch ) + bool Vertex::isRestricted ( const Vertex* v1, const Vertex* v2, const Edge* e, DbU::Unit hpitch, DbU::Unit vpitch, Net* net ) { bool restricted = true; GCell* c1 = v1->getGCell(); @@ -274,7 +274,12 @@ namespace Anabatic { ||(c2->getHeight() < vpitch) ||(restricted) ) return true; - else return false; + else { + if ((v2->getGCell()->isStrut())){ + if (e->isMaxCapacity(net)) return true; + else return false; + } else return false; + } } } @@ -1160,8 +1165,8 @@ namespace Anabatic { DbU::Unit Dijkstra::_distance ( const Vertex* current, const Vertex* vneighbour, const Edge* e ) { - if (Vertex::isRestricted(current, vneighbour)) return Vertex::unreachable; - else return current->getDistance() + e->getDistance(); + if (Vertex::isRestricted(current, vneighbour, e)) return Vertex::unreachable; + else return current->getDistance() + e->getDistance(); } @@ -1526,7 +1531,7 @@ namespace Anabatic { Vertex* current = _queue.top(); GCell* gcurrent = current->getGCell(); - cdebug_log(111,1) << "Current:" << current << endl; + //cdebug_log(111,1) << "Current:" << current << endl; _queue.pop(); if ( current->isAxisTarget() and needAxisTarget()) unsetFlags(Mode::AxisTarget); @@ -1534,6 +1539,7 @@ namespace Anabatic { cdebug_log(111,1) << "Looking for neighbors:" << endl; for ( Edge* edge : current->getGCell()->getEdges() ) { + cdebug_log(111,0) << "[Current]: " << current << endl; cdebug_log(111,0) << "@ Edge " << edge << endl; if (edge == current->getFrom()) { @@ -1565,7 +1571,7 @@ namespace Anabatic { cdebug_tabw(111,1); if (current->getFrom()) { cdebug_log(111,0) << "| From: " << current->getFrom()->getOpposite(gcurrent) << endl; - current->getIntervFrom().print(); + //current->getIntervFrom().print(); } if (current->getFrom2()) { cdebug_log(111,0) << "| From2: " << current->getFrom2()->getOpposite(gcurrent) << endl; @@ -1582,7 +1588,10 @@ namespace Anabatic { bool isDistance2shorter = _isDistance2Shorter ( distance, current, vneighbor, edge ); // ANALOG if ( (distance == vneighbor->getDistance()) - and ( (not gcurrent->isMatrix()) and (not gneighbor->isMatrix()) ) ) { + and (not gcurrent->isMatrix() ) + and (not gneighbor->isMatrix()) + and (vneighbor->getFrom2() == NULL) + ) { _pushEqualDistance( distance, isDistance2shorter, current, vneighbor, edge ); // ANALOG } else if ( (distance < vneighbor->getDistance()) and (distance != Vertex::unreachable) ) { @@ -1602,7 +1611,9 @@ namespace Anabatic { vneighbor->setBranchId( current->getBranchId() ); vneighbor->setDistance( distance ); + cdebug_log(111,0) << "setFrom1: " << vneighbor << endl; vneighbor->setFrom ( edge ); + vneighbor->setFrom2( NULL ); _queue.push( vneighbor ); cdebug_log(111,0) << "Push: (size:" << _queue.size() << ") " << vneighbor << endl; } else { @@ -1661,6 +1672,8 @@ namespace Anabatic { while ( current ) { cdebug_log(112,0) << endl; cdebug_log(112,0) << "| " << current << " | " << endl; + if (current->getFrom()) cdebug_log(112,0) << " | From :" << current->getFrom()->getOpposite(current->getGCell()) << " | " << endl; + if (current->getFrom2()) cdebug_log(112,0) << " | From2:" << current->getFrom2()->getOpposite(current->getGCell()) << " | " << endl; if (!current->getGCell()->isMatrix()){ //////////////////////////////////////////////////////////////////////////////////////////// ANALOG @@ -1764,7 +1777,7 @@ namespace Anabatic { if (target->getFrom()) targetContact = target->getGContact( _net ); else targetContact = target->breakGoThrough( _net ); } - + if (aligneds.front()->isHorizontal()) { if (sourceContact->getX() > targetContact->getX()) std::swap( sourceContact, targetContact ); @@ -1773,7 +1786,7 @@ namespace Anabatic { , targetContact , _anabatic->getConfiguration()->getGHorizontalLayer() , constraint.getCenter() - , DbU::fromLambda(2.0) + , state->getWPitch()*Session::getPitch(Hurricane::DataBase::getDB()->getTechnology()->getLayer("METAL2"))//DbU::fromLambda(2.0) ); for ( Edge* through : aligneds ) through->add( segment ); if (state){ @@ -1787,7 +1800,7 @@ namespace Anabatic { , targetContact , _anabatic->getConfiguration()->getGVerticalLayer() , constraint.getCenter() - , DbU::fromLambda(2.0) + , state->getWPitch()*Session::getPitch(Hurricane::DataBase::getDB()->getTechnology()->getLayer("METAL3"))//DbU::fromLambda(2.0) ); for ( Edge* through : aligneds ) through->add( segment ); if (state){ @@ -1995,7 +2008,7 @@ namespace Anabatic { , targetSym , _anabatic->getConfiguration()->getGHorizontalLayer() , axis - , DbU::fromLambda(2.0) + , state->getWPitch()*Session::getPitch(Hurricane::DataBase::getDB()->getTechnology()->getLayer("METAL2")) ); cdebug_log(112,0) << "|| " << segment2 << endl; } else if (v) { @@ -2034,7 +2047,7 @@ namespace Anabatic { , targetSym , _anabatic->getConfiguration()->getGVerticalLayer() , axis - , DbU::fromLambda(2.0) + , state->getWPitch()*Session::getPitch(Hurricane::DataBase::getDB()->getTechnology()->getLayer("METAL3")) ); cdebug_log(112,0) << "|| " << segment2 << endl; } @@ -2115,15 +2128,15 @@ namespace Anabatic { void Dijkstra::_pushEqualDistance ( DbU::Unit distance, bool isDistance2shorter, Vertex* current, Vertex* vneighbor, Edge* edge ) { GCell* gneighbor = edge->getOpposite(current->getGCell()); - cdebug_log(111,0) << "[case: Distance EQUAL + SameSide]" << endl; - cdebug_log(111,0) << "Previous getfrom:" << vneighbor->getFrom()->getOpposite( gneighbor ) << endl; - GCell* gnext = vneighbor->getGCell(); GCell* gprev = vneighbor->getFrom()->getOpposite(gnext); Vertex* vprev = gprev->getObserver(GCell::Observable::Vertex); if ((distance == vneighbor->getDistance()) and vneighbor->areSameSide(vprev, current)){ + cdebug_log(111,0) << "[case: Distance EQUAL + SameSide]" << endl; + cdebug_log(111,0) << "Previous getfrom:" << vneighbor->getFrom()->getOpposite( gneighbor ) << endl; cdebug_log(111,0) << "[case: Other GetFROM]" << endl; + cdebug_log(111,0) << "setFrom2: " << vneighbor << endl; vneighbor->setFrom2 ( edge ); vneighbor->setFlags(Vertex::From2Mode); //vneighbor->createIntervFrom2(); @@ -2131,9 +2144,11 @@ namespace Anabatic { vneighbor->unsetFlags(Vertex::From2Mode); if (isDistance2shorter) { vneighbor->setFlags(Vertex::UseFromFrom2); - cdebug_log(111,0) << "setFromFrom2: " << vneighbor << endl; + //cdebug_log(111,0) << "setFromFrom2: " << vneighbor << endl; } cdebug_log(111,0) << "Push BIS : " << vneighbor << endl; + cdebug_log(111,0) << "From1: " << vneighbor->getFrom()->getOpposite(vneighbor->getGCell()) << endl; + cdebug_log(111,0) << "From2: " << vneighbor->getFrom2()->getOpposite(vneighbor->getGCell()) << endl; vneighbor->getIntervFrom().print(); vneighbor->getIntervFrom2().print(); } @@ -2143,12 +2158,12 @@ namespace Anabatic { void Dijkstra::_updateGRAData ( Vertex* vneighbor, bool isDistance2shorter, Vertex* current ) { vneighbor->unsetFlags(Vertex::UseFromFrom2); - cdebug_log(111,0) << "unsetFromFrom2: " << vneighbor << endl; + //cdebug_log(111,0) << "unsetFromFrom2: " << vneighbor << endl; vneighbor->clearFrom2(); if (isDistance2shorter) { vneighbor->setFlags(Vertex::UseFromFrom2); - cdebug_log(111,0) << "setFromFrom2: " << vneighbor << endl; - } else cdebug_log(111,0) << "DON'T setFromFrom2: " << vneighbor << endl; + //cdebug_log(111,0) << "setFromFrom2: " << vneighbor << endl; + }// else cdebug_log(111,0) << "setFrom1: " << vneighbor << endl; vneighbor->setIntervals( current ); vneighbor->getIntervFrom().print(); @@ -2204,7 +2219,7 @@ namespace Anabatic { if (current->getConnexId() == _connectedsId) return true; from = NULL; if (useFrom2) { - cdebug_log(112,0) << "USE FROM2: " << current->getFrom2() << endl; + cdebug_log(112,0) << "USE FROM2: " << current->getFrom2()->getOpposite(current->getGCell()) << endl; current->setFrom(current->getFrom2()); current->setIntervfrom(current->getPIMin2(), current->getPIMax2(), current->getPIAxis2()); current->clearFrom2(); @@ -2226,6 +2241,7 @@ namespace Anabatic { cdebug_log(112,0) << ", axis: " << DbU::getValueString(current->getPIAxis()) << endl; current->getPredecessor()->setInterv(current->getPIMin(), current->getPIMax(), current->getPIAxis()); current->getIntervFrom().print(); + //if (current->getPredecessor()->getGCell()->isStrut()) _updateRealOccupancy( current ); } return false; } @@ -2298,6 +2314,22 @@ namespace Anabatic { } + void Dijkstra::_updateRealOccupancy ( Vertex* current ) + { + cerr << "void Dijkstra::_updateRealOccupancy ( Vertex* current ): " << current << endl; + GCell* gcurrent = current->getGCell(); + GCell* gnext = current->getPredecessor()->getGCell(); + Edge* e = gcurrent->getEdgeTo(gnext); + + NetRoutingState* state = NetRoutingExtension::get( _net ); + cerr << "e: " << e << endl; + e->incRealOccupancy2(state->getWPitch()); + cerr << "e: " << e << endl; + if (current->getGCell()->getWestEdge()) cerr << "W occupancy: " << current->getGCell()->getWestEdge()->getRealOccupancy() << "/" << current->getGCell()->getWestEdge()->getCapacity() << endl; + if (current->getGCell()->getEastEdge()) cerr << "E occupancy: " << current->getGCell()->getEastEdge()->getRealOccupancy() << "/" << current->getGCell()->getEastEdge()->getCapacity() << endl; + if (current->getGCell()->getNorthEdge()) cerr << "N occupancy: " << current->getGCell()->getNorthEdge()->getRealOccupancy() << "/" << current->getGCell()->getNorthEdge()->getCapacity() << endl; + if (current->getGCell()->getSouthEdge()) cerr << "S occupancy: " << current->getGCell()->getSouthEdge()->getRealOccupancy() << "/" << current->getGCell()->getSouthEdge()->getCapacity() << endl; + } } // Anabatic namespace. diff --git a/anabatic/src/Edge.cpp b/anabatic/src/Edge.cpp index d55439d9..cbf4ba69 100644 --- a/anabatic/src/Edge.cpp +++ b/anabatic/src/Edge.cpp @@ -17,6 +17,8 @@ #include #include "hurricane/Error.h" #include "hurricane/Segment.h" +#include "hurricane/DataBase.h" +#include "hurricane/Technology.h" #include "anabatic/Edge.h" #include "anabatic/GCell.h" #include "anabatic/AnabaticEngine.h" @@ -182,6 +184,10 @@ namespace Anabatic { _realOccupancy = occupancy; } + void Edge::incRealOccupancy2 ( int value ) + { + _realOccupancy += value; + } Segment* Edge::getSegment ( const Net* owner ) const { @@ -195,7 +201,13 @@ namespace Anabatic { void Edge::add ( Segment* segment ) { _segments.push_back( segment ); - incRealOccupancy( 1 ); // Need to take the wire width into account. + Horizontal* h = dynamic_cast(segment); + Vertical* v = dynamic_cast(segment); + DbU::Unit pitch = 0; + if (h) pitch = Session::getPitch(Hurricane::DataBase::getDB()->getTechnology()->getLayer("METAL2")); + if (v) pitch = Session::getPitch(Hurricane::DataBase::getDB()->getTechnology()->getLayer("METAL3")); + + incRealOccupancy( segment->getWidth()/pitch ); // Need to take the wire width into account. } @@ -300,6 +312,20 @@ namespace Anabatic { } + bool Edge::isMaxCapacity ( Net* net ) const + { + if (net){ + Hurricane::NetRoutingState* state = Hurricane::NetRoutingExtension::get( net ); + //cerr << "bool Edge::isMaxCapacity ( Net* net ) const: " << net << endl; + //cerr << "WPitch: " << state->getWPitch() << endl; + + return ( (_realOccupancy +state->getWPitch()) > _capacity ) ? true : false; + } else { + return ( _realOccupancy >= _capacity ) ? true : false; + } + } + + void Edge::translate ( const DbU::Unit&, const DbU::Unit& ) { cerr << Error( "Edge::translate(): On %s,\n" diff --git a/anabatic/src/GCell.cpp b/anabatic/src/GCell.cpp index 67ed9dbf..83313276 100644 --- a/anabatic/src/GCell.cpp +++ b/anabatic/src/GCell.cpp @@ -1665,6 +1665,20 @@ namespace Anabatic { return false; } + + void GCell::setEdgesOccupancy ( unsigned int width, unsigned int height ) + { + getEastEdge()->setCapacity(width); + getWestEdge()->setCapacity(width); + getNorthEdge()->setCapacity(height); + getSouthEdge()->setCapacity(height); + getEastEdge()->setRealOccupancy(0); + getWestEdge()->setRealOccupancy(0); + getNorthEdge()->setRealOccupancy(0); + getSouthEdge()->setRealOccupancy(0); + } + + string GCell::_getTypeName () const { return getString(_extensionName); } diff --git a/anabatic/src/anabatic/Dijkstra.h b/anabatic/src/anabatic/Dijkstra.h index 092871b9..a6c08f9e 100644 --- a/anabatic/src/anabatic/Dijkstra.h +++ b/anabatic/src/anabatic/Dijkstra.h @@ -244,7 +244,7 @@ namespace Anabatic { bool hasRP ( Net* ) const; bool hasVRP ( Net* ) const; bool hasHRP ( Net* ) const; - static bool isRestricted ( const Vertex* v1, const Vertex* v2, DbU::Unit hpitch = 0, DbU::Unit vpitch = 0); + static bool isRestricted ( const Vertex* v1, const Vertex* v2, const Edge* e, DbU::Unit hpitch = 0, DbU::Unit vpitch = 0, Net* net = NULL); bool areSameSide ( const Vertex*, const Vertex* ) const; inline bool isFromFrom2 () const; @@ -518,6 +518,7 @@ namespace Anabatic { void _updateGRAData ( Vertex*, bool, Vertex* ); void _initiateUpdateIntervals ( Vertex* ); bool _updateIntervals ( bool&, Vertex*, bool&, int&, Edge* ); + void _updateRealOccupancy ( Vertex* ); private: AnabaticEngine* _anabatic; diff --git a/anabatic/src/anabatic/Edge.h b/anabatic/src/anabatic/Edge.h index 3f440b74..f9af57d2 100644 --- a/anabatic/src/anabatic/Edge.h +++ b/anabatic/src/anabatic/Edge.h @@ -73,8 +73,11 @@ namespace Anabatic { Interval getSide () const; Segment* getSegment ( const Net* ) const; inline const vector& getSegments () const; + inline void setCapacity ( int ); inline void incCapacity ( int ); + inline void setRealOccupancy ( int ); void incRealOccupancy ( int ); + void incRealOccupancy2 ( int ); inline void setHistoricCost ( float ); void add ( Segment* ); void remove ( Segment* ); @@ -83,6 +86,8 @@ namespace Anabatic { inline const Flags& flags () const; inline Flags& flags (); inline void revalidate () const; + + bool isMaxCapacity ( Net* net = NULL ) const; void _setSource ( GCell* ); void _setTarget ( GCell* ); private: @@ -133,13 +138,14 @@ namespace Anabatic { inline GCell* Edge::getTarget () const { return _target; } inline DbU::Unit Edge::getAxis () const { return _axis; } inline const vector& Edge::getSegments () const { return _segments; } - inline void Edge::incCapacity ( int delta ) { _capacity = ((int)_capacity+delta > 0) ? _capacity+delta : 0; } + inline void Edge::incCapacity ( int delta ) { _capacity = ((int)_capacity+delta > 0) ? _capacity+delta : 0; } + inline void Edge::setCapacity ( int c ) { _capacity = ((int) c > 0) ? c : 0; } + inline void Edge::setRealOccupancy ( int c ) { _realOccupancy = ((int) c > 0) ? c : 0; } inline void Edge::setHistoricCost ( float hcost ) { _historicCost = hcost; } inline const Flags& Edge::flags () const { return _flags; } inline Flags& Edge::flags () { return _flags; } inline void Edge::revalidate () const { /*if (_flags&Flags::Invalidated)*/ const_cast(this)->_revalidate(); } - - + } // Anabatic namespace. diff --git a/anabatic/src/anabatic/GCell.h b/anabatic/src/anabatic/GCell.h index 8958fcc7..ae758419 100644 --- a/anabatic/src/anabatic/GCell.h +++ b/anabatic/src/anabatic/GCell.h @@ -171,6 +171,12 @@ namespace Anabatic { inline GCell* getEast () const; inline GCell* getSouth () const; inline GCell* getNorth () const; + + inline Edge* getWestEdge () const; + inline Edge* getEastEdge () const; + inline Edge* getSouthEdge () const; + inline Edge* getNorthEdge () const; + GCell* getWest ( DbU::Unit y ) const; GCell* getEast ( DbU::Unit y ) const; GCell* getSouth ( DbU::Unit x ) const; @@ -237,6 +243,8 @@ namespace Anabatic { bool stepNetDesaturate ( size_t depth , set& globalNets , Set& invalidateds ); + + void setEdgesOccupancy (unsigned int, unsigned int); // Misc. functions. inline const Flags& flags () const; inline Flags& flags (); @@ -323,6 +331,12 @@ namespace Anabatic { inline GCell* GCell::getEast () const { return _eastEdges.empty() ? NULL : _eastEdges[0]->getOpposite(this); } inline GCell* GCell::getSouth () const { return _southEdges.empty() ? NULL : _southEdges[0]->getOpposite(this); } inline GCell* GCell::getNorth () const { return _northEdges.empty() ? NULL : _northEdges[0]->getOpposite(this); } + + inline Edge* GCell::getWestEdge () const { return _westEdges.empty() ? NULL : _westEdges[0]; } + inline Edge* GCell::getEastEdge () const { return _eastEdges.empty() ? NULL : _eastEdges[0]; } + inline Edge* GCell::getSouthEdge () const { return _southEdges.empty() ? NULL : _southEdges[0]; } + inline Edge* GCell::getNorthEdge () const { return _northEdges.empty() ? NULL : _northEdges[0]; } + inline GCell* GCell::getUnder ( Point p ) const { return getUnder(p.getX(),p.getY()); } inline const vector& GCell::getGContacts () const { return _gcontacts; } inline size_t GCell::getDepth () const { return _depth; } diff --git a/hurricane/src/hurricane/NetRoutingProperty.cpp b/hurricane/src/hurricane/NetRoutingProperty.cpp index 915b1755..9d1e07ed 100644 --- a/hurricane/src/hurricane/NetRoutingProperty.cpp +++ b/hurricane/src/hurricane/NetRoutingProperty.cpp @@ -135,6 +135,10 @@ namespace Hurricane { w->endObject(); } + void NetRoutingState::setWPitch ( unsigned int w ) + { + if (w != 0) _wPitch = w; + } // ------------------------------------------------------------------- // Class : "JsonNetRoutingProperty" diff --git a/hurricane/src/hurricane/hurricane/NetRoutingProperty.h b/hurricane/src/hurricane/hurricane/NetRoutingProperty.h index 4b063254..5056c479 100644 --- a/hurricane/src/hurricane/hurricane/NetRoutingProperty.h +++ b/hurricane/src/hurricane/hurricane/NetRoutingProperty.h @@ -72,6 +72,8 @@ namespace Hurricane { inline void setFlags ( uint32_t mask ); inline void unsetFlags ( uint32_t mask ); inline bool isSelfSym () const; + void setWPitch ( uint32_t ); + inline uint32_t getWPitch () const; DbU::Unit getSymValue ( DbU::Unit ) const; std::string _getString () const; Record* _getRecord () const; @@ -84,10 +86,11 @@ namespace Hurricane { Net* _symNet; uint32_t _flags; DbU::Unit _axis; + uint32_t _wPitch; }; - inline NetRoutingState::NetRoutingState ( Net* net, uint32_t flags ) : _net(net), _symNet(NULL), _flags(flags), _axis(0) { } + inline NetRoutingState::NetRoutingState ( Net* net, uint32_t flags ) : _net(net), _symNet(NULL), _flags(flags), _axis(0), _wPitch(1) { } inline bool NetRoutingState::isExcluded () const { return _flags & Excluded; }; inline bool NetRoutingState::isFixed () const { return _flags & Fixed; }; @@ -111,7 +114,8 @@ namespace Hurricane { inline void NetRoutingState::setSymAxis ( DbU::Unit axis ) { _axis = axis; } inline bool NetRoutingState::isSelfSym () const { return (_symNet == NULL) and (isSymmetric()); } inline bool NetRoutingState::isSymSlave () const { return (_symNet != NULL) and (not isSymMaster()); } - + inline uint32_t NetRoutingState::getWPitch () const { return _wPitch; } + // ------------------------------------------------------------------- // Class : "Hurricane::NetRoutingProperty". @@ -180,6 +184,10 @@ namespace Hurricane { static inline void setSymAxis ( const Net*, DbU::Unit ); static inline void setFlags ( const Net*, uint32_t mask ); static inline void unsetFlags ( const Net*, uint32_t mask ); + + static inline uint32_t getWPitch ( const Net* ); + static inline void setWPitch ( const Net*, uint32_t w ); + static NetRoutingState* get ( const Net* ); static NetRoutingState* create ( Net*, uint32_t flags=0 ); private: @@ -307,6 +315,20 @@ namespace Hurricane { } + inline uint32_t NetRoutingExtension::getWPitch ( const Net* net ) + { + NetRoutingState* state = get( net ); + return (state == NULL) ? 0 : state->getWPitch(); + } + + + inline void NetRoutingExtension::setWPitch ( const Net* net, uint32_t w ) + { + NetRoutingState* state = get( net ); + if (state != NULL) state->setWPitch( w ); + } + + } // Hurricane namespace. diff --git a/hurricane/src/isobar/PyNetRoutingProperty.cpp b/hurricane/src/isobar/PyNetRoutingProperty.cpp index 11d179ce..8ba6a725 100644 --- a/hurricane/src/isobar/PyNetRoutingProperty.cpp +++ b/hurricane/src/isobar/PyNetRoutingProperty.cpp @@ -136,6 +136,8 @@ extern "C" { ExtensionSetUIntFunction(setFlags ,NetRoutingExtension) ExtensionSetUIntFunction(unsetFlags ,NetRoutingExtension) ExtensionSetLongFunction(setSymAxis ,NetRoutingExtension) + ExtensionGetUIntFunction(getWPitch ,NetRoutingExtension) + ExtensionSetUIntFunction(setWPitch ,NetRoutingExtension) static PyObject* PyNetRoutingExtension_getSymNet ( PyObject*, PyObject* args ) @@ -214,6 +216,8 @@ extern "C" { , "Returns the NetRoutingState, or None has not been created yet." } , { "create" , (PyCFunction)PyNetRoutingExtension_create , METH_VARARGS|METH_CLASS , "Returns the NetRoutingState, create it if needs be." } + , { "setWPitch" , (PyCFunction)PyNetRoutingExtension_setWPitch , METH_VARARGS|METH_CLASS , "To be documented." } + , { "getWPitch" , (PyCFunction)PyNetRoutingExtension_getWPitch , METH_NOARGS |METH_CLASS , "To be documented." } , {NULL, NULL, 0, NULL} /* sentinel */ }; diff --git a/hurricane/src/isobar/PyNetRoutingState.cpp b/hurricane/src/isobar/PyNetRoutingState.cpp index 5cda5a74..95bb59cd 100644 --- a/hurricane/src/isobar/PyNetRoutingState.cpp +++ b/hurricane/src/isobar/PyNetRoutingState.cpp @@ -83,11 +83,13 @@ extern "C" { DirectGetBoolAttribute(PyNetRoutingState_isAnalog ,isAnalog ,PyNetRoutingState,NetRoutingState) DirectGetUIntAttribute(PyNetRoutingState_getFlags ,getFlags ,PyNetRoutingState,NetRoutingState) DirectGetLongAttribute(PyNetRoutingState_getSymAxis ,getSymAxis ,PyNetRoutingState,NetRoutingState) + DirectGetUIntAttribute(PyNetRoutingState_getWPitch ,getWPitch ,PyNetRoutingState,NetRoutingState) // Standart Mutators (Attributes). DirectSetUInt32Attribute(PyNetRoutingState_setFlags ,setFlags ,PyNetRoutingState,NetRoutingState) DirectSetUInt32Attribute(PyNetRoutingState_unsetFlags,unsetFlags,PyNetRoutingState,NetRoutingState) DirectSetLongAttribute (PyNetRoutingState_setSymAxis,setSymAxis,PyNetRoutingState,NetRoutingState) + DirectSetUInt32Attribute(PyNetRoutingState_setWPitch ,setWPitch ,PyNetRoutingState,NetRoutingState) PyMethodDef PyNetRoutingState_Methods[] = @@ -111,6 +113,8 @@ extern "C" { , { "setSymAxis" , (PyCFunction)PyNetRoutingState_setSymAxis , METH_VARARGS , "To be documented." } , { "getNet" , (PyCFunction)PyNetRoutingState_getNet , METH_VARARGS , "To be documented." } , { "getSymNet" , (PyCFunction)PyNetRoutingState_getSymNet , METH_VARARGS , "To be documented." } + , { "getWPitch" , (PyCFunction)PyNetRoutingState_getWPitch , METH_NOARGS , "To be documented." } + , { "setWPitch" , (PyCFunction)PyNetRoutingState_setWPitch , METH_VARARGS , "To be documented." } , {NULL, NULL, 0, NULL} /* sentinel */ }; From d776996658ea34c6645659ec0c6fa15e7a91850e Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Wed, 21 Jun 2017 17:46:45 +0200 Subject: [PATCH 20/30] Cell::flattenNets() is now able to work on one instance only. * New: Occurrence_Contains filter that tells if an instance is part of an Occurrence. Checks for two cases: - The Instance is part of the *path* of the Occurrence. - The Instance is the associated entity itself. * New: In Cell::flattenNets() adds a new parameter Instance* to allow partial flatten of one instance only. * Bug: In Anabatic::Disjstra::_materialize() check that the NetRoutingState exists before trying to access it... --- anabatic/src/Dijkstra.cpp | 10 +- hurricane/src/hurricane/CMakeLists.txt | 1 + hurricane/src/hurricane/Cell.cpp | 11 +- hurricane/src/hurricane/Occurrences.cpp | 63 +++++++++++ hurricane/src/hurricane/hurricane/Cell.h | 1 + .../src/hurricane/hurricane/Occurrences.h | 101 ++++++++++-------- 6 files changed, 135 insertions(+), 52 deletions(-) create mode 100644 hurricane/src/hurricane/Occurrences.cpp diff --git a/anabatic/src/Dijkstra.cpp b/anabatic/src/Dijkstra.cpp index ede13cf2..7f7a3844 100644 --- a/anabatic/src/Dijkstra.cpp +++ b/anabatic/src/Dijkstra.cpp @@ -1782,11 +1782,14 @@ namespace Anabatic { if (sourceContact->getX() > targetContact->getX()) std::swap( sourceContact, targetContact ); + DbU::Unit width = Session::getPitch(Hurricane::DataBase::getDB()->getTechnology()->getLayer("METAL2")); //DbU::fromLambda(2.0); + if (state) width *= state->getWPitch(); + segment = Horizontal::create( sourceContact , targetContact , _anabatic->getConfiguration()->getGHorizontalLayer() , constraint.getCenter() - , state->getWPitch()*Session::getPitch(Hurricane::DataBase::getDB()->getTechnology()->getLayer("METAL2"))//DbU::fromLambda(2.0) + , width ); for ( Edge* through : aligneds ) through->add( segment ); if (state){ @@ -1796,11 +1799,14 @@ namespace Anabatic { if (sourceContact->getY() > targetContact->getY()) std::swap( sourceContact, targetContact ); + DbU::Unit width = Session::getPitch(Hurricane::DataBase::getDB()->getTechnology()->getLayer("METAL3")); //DbU::fromLambda(2.0); + if (state) width *= state->getWPitch(); + segment = Vertical::create( sourceContact , targetContact , _anabatic->getConfiguration()->getGVerticalLayer() , constraint.getCenter() - , state->getWPitch()*Session::getPitch(Hurricane::DataBase::getDB()->getTechnology()->getLayer("METAL3"))//DbU::fromLambda(2.0) + , width ); for ( Edge* through : aligneds ) through->add( segment ); if (state){ diff --git a/hurricane/src/hurricane/CMakeLists.txt b/hurricane/src/hurricane/CMakeLists.txt index c9a827f0..a1e6ef32 100644 --- a/hurricane/src/hurricane/CMakeLists.txt +++ b/hurricane/src/hurricane/CMakeLists.txt @@ -171,6 +171,7 @@ SharedPath.cpp Path.cpp Occurrence.cpp + Occurrences.cpp QuadTree.cpp Slice.cpp ExtensionSlice.cpp diff --git a/hurricane/src/hurricane/Cell.cpp b/hurricane/src/hurricane/Cell.cpp index 6a81e63d..3745b708 100644 --- a/hurricane/src/hurricane/Cell.cpp +++ b/hurricane/src/hurricane/Cell.cpp @@ -813,9 +813,14 @@ DeepNet* Cell::getDeepNet ( Path path, const Net* leafNet ) const return NULL; } +void Cell::flattenNets (uint64_t flags ) +// ************************************* +{ + flattenNets( NULL, flags ); +} -void Cell::flattenNets(uint64_t flags) -// *************************************** +void Cell::flattenNets ( const Instance* instance, uint64_t flags ) +// **************************************************************** { cdebug_log(18,0) << "Cell::flattenNets() flags:0x" << hex << flags << endl; @@ -828,7 +833,7 @@ void Cell::flattenNets(uint64_t flags) vector hyperNets; vector topHyperNets; - for ( Occurrence occurrence : getHyperNetRootNetOccurrences() ) { + for ( Occurrence occurrence : getHyperNetRootNetOccurrences().getSubSet(NotFilter(Occurrence_Contains(instance))) ) { Net* net = static_cast(occurrence.getEntity()); if (net->isClock() and (flags & Flags::NoClockFlatten)) continue; diff --git a/hurricane/src/hurricane/Occurrences.cpp b/hurricane/src/hurricane/Occurrences.cpp new file mode 100644 index 00000000..cce5d612 --- /dev/null +++ b/hurricane/src/hurricane/Occurrences.cpp @@ -0,0 +1,63 @@ +// -*- C++ -*- +// +// Copyright (c) BULL S.A. 2017-2017, All Rights Reserved +// +// This file is part of Hurricane. +// +// Hurricane is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as +// published by the Free Software Foundation, either version 3 of the +// License, or (at your option) any later version. +// +// Hurricane is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN- +// TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU +// General Public License for more details. +// +// You should have received a copy of the Lesser GNU General Public +// License along with Hurricane. If not, see +// . +// +// +-----------------------------------------------------------------+ +// | H U R R I C A N E | +// | V L S I B a c k e n d D a t a - B a s e | +// | | +// | Author : Jean-Paul Chaput | +// | E-mail : Jean-Paul.Chaput@lip6.fr | +// | =============================================================== | +// | C++ Module : "./Occurrences.cpp" | +// +-----------------------------------------------------------------+ + + +#include "hurricane/Occurrences.h" +#include "hurricane/Instance.h" + + +namespace Hurricane { + + +// ------------------------------------------------------------------- +// Class : "Occurrence_Contains". + + OccurrenceFilter* Occurrence_Contains::getClone () const + { return new Occurrence_Contains(_instance); } + + + bool Occurrence_Contains::accept ( Occurrence occurrence ) const + { + if (not _instance) return false; + + if (dynamic_cast(occurrence.getEntity()) == _instance) return true; + for ( Instance* instance : occurrence.getPath().getInstances() ) { + if (instance == _instance) return true; + } + return false; + } + + + string Occurrence_Contains::_getString () const + { return ""; } + + + +} // Hurricane namespace. diff --git a/hurricane/src/hurricane/hurricane/Cell.h b/hurricane/src/hurricane/hurricane/Cell.h index 0086815e..00b3d796 100644 --- a/hurricane/src/hurricane/hurricane/Cell.h +++ b/hurricane/src/hurricane/hurricane/Cell.h @@ -507,6 +507,7 @@ class Cell : public Entity { public: void setPad(bool isPad) {_flags.set(Flags::Pad,isPad);}; public: void setFeed(bool isFeed) {_flags.set(Flags::Feed,isFeed);}; public: void flattenNets(uint64_t flags=Flags::BuildRings); + public: void flattenNets(const Instance* instance, uint64_t flags=Flags::BuildRings); public: void createRoutingPadRings(uint64_t flags=Flags::BuildRings); public: void setFlags(uint64_t flags) { _flags |= flags; } public: void resetFlags(uint64_t flags) { _flags &= ~flags; } diff --git a/hurricane/src/hurricane/hurricane/Occurrences.h b/hurricane/src/hurricane/hurricane/Occurrences.h index bd81d5d9..ff31f5c6 100644 --- a/hurricane/src/hurricane/hurricane/Occurrences.h +++ b/hurricane/src/hurricane/hurricane/Occurrences.h @@ -1,21 +1,33 @@ -// **************************************************************************************************** -// File: ./hurricane/Occurrences.h -// Authors: R. Escassut -// Copyright (c) BULL S.A. 2000-2016, All Rights Reserved +// -*- C++ -*- +// +// Copyright (c) BULL S.A. 2000-2017, All Rights Reserved // // This file is part of Hurricane. // -// Hurricane is free software: you can redistribute it and/or modify it under the terms of the GNU -// Lesser General Public License as published by the Free Software Foundation, either version 3 of the +// Hurricane is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as +// published by the Free Software Foundation, either version 3 of the // License, or (at your option) any later version. // -// Hurricane 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 Lesser GNU +// Hurricane is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN- +// TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU // General Public License for more details. // -// You should have received a copy of the Lesser GNU General Public License along with Hurricane. If -// not, see . -// **************************************************************************************************** +// You should have received a copy of the Lesser GNU General Public +// License along with Hurricane. If not, see +// . +// +// +-----------------------------------------------------------------+ +// | H U R R I C A N E | +// | V L S I B a c k e n d D a t a - B a s e | +// | | +// | Author : Rémy Escassut | +// | E-mail : Jean-Paul.Chaput@lip6.fr | +// | =============================================================== | +// | C++ Module : "./Occurrences.cpp" | +// +-----------------------------------------------------------------+ + #ifndef HURRICANE_OCCURENCES #define HURRICANE_OCCURENCES @@ -25,52 +37,47 @@ namespace Hurricane { + class Instance; + + typedef GenericCollection Occurrences; + typedef GenericLocator OccurrenceLocator; + typedef GenericFilter OccurrenceFilter; -// **************************************************************************************************** -// Occurrences declaration -// **************************************************************************************************** +// ------------------------------------------------------------------- +// Class : "Occurrence_Contains". -typedef GenericCollection Occurrences; + class Occurrence_Contains : public OccurrenceFilter { + public: + inline Occurrence_Contains ( const Instance* ); + inline Occurrence_Contains ( const Occurrence_Contains& ); + virtual OccurrenceFilter* getClone () const; + virtual bool accept ( Occurrence ) const; + virtual string _getString () const; + protected: + const Instance* _instance; + }; + Occurrence_Contains::Occurrence_Contains ( const Instance* instance ) + : OccurrenceFilter() + , _instance(instance) + { } -// **************************************************************************************************** -// OccurrenceLocator declaration -// **************************************************************************************************** - -typedef GenericLocator OccurrenceLocator; + Occurrence_Contains::Occurrence_Contains ( const Occurrence_Contains& other ) + : OccurrenceFilter() + , _instance(other._instance) + { } - -// **************************************************************************************************** -// OccurrenceFilter declaration -// **************************************************************************************************** - -typedef GenericFilter OccurrenceFilter; - - - -// **************************************************************************************************** -// for_each_occurrence declaration -// **************************************************************************************************** - -#define for_each_occurrence(occurrence, occurrences)\ -/************************************************/\ -{\ - OccurrenceLocator _locator = occurrences.getLocator();\ - while (_locator.isValid()) {\ - Occurrence occurrence = _locator.getElement();\ +#define for_each_occurrence(occurrence, occurrences) \ +{ \ + OccurrenceLocator _locator = occurrences.getLocator(); \ + while (_locator.isValid()) { \ + Occurrence occurrence = _locator.getElement(); \ _locator.progress(); - -} // End of Hurricane namespace. - +} // Hurricane namespace. #endif // HURRICANE_OCCURENCES - - -// **************************************************************************************************** -// Copyright (c) BULL S.A. 2000-2016, All Rights Reserved -// **************************************************************************************************** From a35eacef37113fac3b4a9d2beca16e5b34c0f52c Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Fri, 30 Jun 2017 20:00:22 +0200 Subject: [PATCH 21/30] Documentation of the Hurricane Python C / API. --- documentation/CMakeLists.txt | 2 + documentation/PythonCpp/CMakeLists.txt | 39 + documentation/PythonCpp/PythonCpp.pdf | Bin 0 -> 171320 bytes documentation/PythonCpp/PythonCpp.rst | 1296 ++++++++++++++++++++++++ documentation/etc/CMakeLists.txt | 8 + documentation/etc/Pygments.css | 41 + documentation/etc/SoC-ReST.css | 493 +++++++++ documentation/etc/SoC-ReST.tex | 119 +++ documentation/etc/SoC.css | 536 ++++++++++ documentation/etc/definitions.rst | 176 ++++ documentation/etc/images/clipboard.bb | 1 + documentation/etc/images/clipboard.eps | 456 +++++++++ documentation/etc/images/clipboard.pdf | Bin 0 -> 12127 bytes documentation/etc/images/clipboard.png | Bin 0 -> 3105 bytes documentation/etc/images/i-core.bb | 1 + documentation/etc/images/i-core.eps | 456 +++++++++ documentation/etc/images/i-core.pdf | Bin 0 -> 8043 bytes documentation/etc/images/i-core.png | Bin 0 -> 3138 bytes documentation/etc/socstyle.tex | 89 ++ 19 files changed, 3713 insertions(+) create mode 100644 documentation/PythonCpp/CMakeLists.txt create mode 100644 documentation/PythonCpp/PythonCpp.pdf create mode 100644 documentation/PythonCpp/PythonCpp.rst create mode 100644 documentation/etc/CMakeLists.txt create mode 100644 documentation/etc/Pygments.css create mode 100644 documentation/etc/SoC-ReST.css create mode 100644 documentation/etc/SoC-ReST.tex create mode 100644 documentation/etc/SoC.css create mode 100644 documentation/etc/definitions.rst create mode 100644 documentation/etc/images/clipboard.bb create mode 100644 documentation/etc/images/clipboard.eps create mode 100644 documentation/etc/images/clipboard.pdf create mode 100644 documentation/etc/images/clipboard.png create mode 100644 documentation/etc/images/i-core.bb create mode 100644 documentation/etc/images/i-core.eps create mode 100644 documentation/etc/images/i-core.pdf create mode 100644 documentation/etc/images/i-core.png create mode 100644 documentation/etc/socstyle.tex diff --git a/documentation/CMakeLists.txt b/documentation/CMakeLists.txt index 0ed90c18..338c83ec 100644 --- a/documentation/CMakeLists.txt +++ b/documentation/CMakeLists.txt @@ -22,7 +22,9 @@ add_subdirectory(examples) if(BUILD_DOC) + add_subdirectory(etc) add_subdirectory(UsersGuide) + add_subdirectory(PythonCpp) endif(BUILD_DOC) set ( htmlInstallDir share/doc/coriolis2/ ) diff --git a/documentation/PythonCpp/CMakeLists.txt b/documentation/PythonCpp/CMakeLists.txt new file mode 100644 index 00000000..49281f72 --- /dev/null +++ b/documentation/PythonCpp/CMakeLists.txt @@ -0,0 +1,39 @@ +# -*- mode: CMAKE; explicit-buffer-name: "CMakeLists.txt" -*- + + set ( htmlInstallDir share/doc/coriolis2/en/html/PythonCpp ) + set ( latexInstallDir share/doc/coriolis2/en/latex/PythonCpp ) + + add_custom_target ( doc_HTML ALL + cd ${DOCUMENTATION_SOURCE_DIR}/PythonCpp + && rst2html --link-stylesheet --stylesheet=../etc/SoC.css,../etc/SoC-ReST.css,../etc/Pygments.css PythonCpp.rst PythonCpp.html ) + add_dependencies ( doc_HTML ../etc/definitions.rst + ../etc/SoC.css + ../etc/SoC-ReST.css + ../etc/Pygments.css + PythonCpp.rst ) + + add_custom_target ( doc_LaTeX ALL + cd ${DOCUMENTATION_SOURCE_DIR}/PythonCpp + && export TEXINPUTS=../etc/images//:./images//: + && rst2latex --use-latex-toc --stylesheet=../etc/SoC-ReST.tex PythonCpp.rst PythonCpp-raw.tex + && sed 's, \\& \\\\multicolumn{2}{l|}{, \\& \\\\multicolumn{2}{p{0.6\\\\DUtablewidth}|}{,' PythonCpp-raw.tex > PythonCpp.tex + && pdflatex PythonCpp + && pdflatex PythonCpp + ) + add_dependencies ( doc_LaTeX ../etc/definitions.rst + ../etc/SoC-ReST.tex + PythonCpp.rst ) + + install ( DIRECTORY images/ + DESTINATION ${htmlInstallDir}/images + FILES_MATCHING PATTERN "*.png" ) + install ( FILES PythonCpp.html DESTINATION ${htmlInstallDir} ) + + install ( DIRECTORY images/ + DESTINATION ${latexInstallDir}/images + FILES_MATCHING PATTERN "*.pdf" + PATTERN "*.eps" + PATTERN "*.bb" ) + + install ( FILES PythonCpp.tex + PythonCpp.pdf DESTINATION ${latexInstallDir} ) diff --git a/documentation/PythonCpp/PythonCpp.pdf b/documentation/PythonCpp/PythonCpp.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a23b9254a040a527aa3c6f28ecc016f41ee06db1 GIT binary patch literal 171320 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
  • SzzQ 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 literal 0 HcmV?d00001 diff --git a/documentation/PythonCpp/PythonCpp.rst b/documentation/PythonCpp/PythonCpp.rst new file mode 100644 index 00000000..6225a1f9 --- /dev/null +++ b/documentation/PythonCpp/PythonCpp.rst @@ -0,0 +1,1296 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +|medskip| + + +=================================== +Hurricane Python/C++ API Tutorial +=================================== + +.. contents:: + +|newpage| + + +1. Introduction +================= + +* This document is written for people already familiar with the + `Python/C API Reference Manual`_. + +* The macros provided by the Hurricane Python/C API are written using + the standard Python C/API. That is, you may not use them and write + directly your functions with the original API or any mix between. + You only have to respect some naming convention. + +* Coriolis is build against Python 2.7. + + +1.1 First, A Disclaimer +~~~~~~~~~~~~~~~~~~~~~~~~~ + +The Hurricane Python/C++ API has been written about ten years ago, at a time +my mastering of template programming was less than complete. This is why this +interface is build with old fashioned C macro instead of C++ template. + +It is my hope that at some point in the future I will have time to completly +rewrite it, borrowing the interface from ``boost::python``. + + +1.2 About Technical Choices +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Some would say, why not use *off the shelf* wrappers like ``swig`` +or ``boost::python``, here are some clues. + +#. **Partial exposure of the C++ class tree.** We expose at Python level + C++ base classes, only if they provides common methods that we want + to see. Otherwise, we just show them as base classes under Python. + For instance ``Library`` is derived from ``DBo``, but we won't see + it under Python. + +#. **Bi-directional communication.** When a Python object is deleted, the + wrapper obviously has a pointer toward the underlying C++ object and + is able to delete it. But, the reverse case can occurs, meaning that + you have a C++ object wrapped in Python and the database delete the + underlying object. The wrapped Python object *must* be informed that + it no longer refer a valid C++ one. Moreover, as we do not control + when Python objects gets deleteds (that is, when their reference count + reaches zero), we can have valid Python object with a dangling + C++ pointer. So our Python objects can be warned by the C++ objects + that they are no longer valid and any other operation than the + deletion should result in a severe non-blocking error. + + To be precise, this apply to persistent object in the C++ database, + like ``Cell``, ``Net``, ``Instance`` or ``Component``. Short lived + objects like ``Box`` or ``Point`` retains the classic Python behavior. + + Another aspect is that, for all derived ``DBo`` objects, one and only + one Python object is associated. For one given ``Instance`` object we + will always return the *same* ``PyInstance`` object, thanks to the + bi-directional link. Obviously, the *reference count* of the + ``PyInstance`` is managed accordingly. This mechanism is implemented + by the ``PyInstance_Link()`` function. + +#. **Linking accross modules.** As far as I understand, the wrappers + are for monolithic libraries. That is, you wrap the entire library + in one go. But Hurricane has a modular design, the core database + then various tools. We do not, and cannot, have one gigantic wrapper + that would encompass all the libraries in one go. We do one Python + module for one C++ library. + + This brings another issue, at Python level this time. The Python + modules for the libraries have to share some functions. Python + provides a mechanism to pass C function pointers accross modules, + but I did found it cumbersome. Instead, all our modules are split + in two: + + * The first part contains the classic Python module code. + * The second part is to be put in a separate dynamic library that + will hold the shared functions. The Python module is dynamically linked + against that library like any other. And any other Python module + requiring the functions will link against the associated shared + library. + + Each module file will be compiled *twice*, once to build the Python + module (``__PYTHON_MODULE`` is defined) and once to build the supporting + shared library (``__PYTHON_MODULE__`` **not** defined). This tricky + double compilation is taken care of though the ``add_python_module`` + ``cmake`` macro. + + For the core Hurricane library we will have: + + * ``Hurricane.so`` the Python module (use with: ``import Hurricane``). + * ``libisobar.so.1.0`` the supporting shared library. + + The ``PyLibrary.cpp`` file will have the following structure: + + .. code:: c++ + + #include "hurricane/isobar/PyLibrary.h" + + namespace Isobar { + + extern "C" { + + #if defined(__PYTHON_MODULE__) + + // +=================================================================+ + // | "PyLibrary" Python Module Code Part | + // +=================================================================+ + // + // The classic part of a Python module. Goes into Hurricane.so. + + + #else // End of Python Module Code Part. + + // x=================================================================x + // | "PyLibrary" Shared Library Code Part | + // x=================================================================x + // + // Functions here will be part of the associated shared library and + // made available to all other Python modules. Goes into libisobar.so.1.0 + + + # endif // Shared Library Code Part. + + } // extern "C". + + } // Isobar namespace. + + + This way, we do not rely upon a pointer transmission through Python + modules, but directly uses linker capabilities. + + +1.3 Botched Design +~~~~~~~~~~~~~~~~~~~~ + +The mechanism to compute the signature of a call to a Python function, +the ``__cs`` object, is much too complex and, in fact, not needed. +At some point I may root it out, but it is used in so many places... + +What I should have used the ``"O!"`` capablity of ``PyArg_ParseTuple()``, +like in the code below: + +|newpage| + +.. code:: c++ + + static PyObject* PyContact_create ( PyObject*, PyObject *args ) + { + Contact* contact = NULL; + HTRY + PyNet* pyNet = NULL; + PyLayer* pyLayer = NULL; + PyComponent* pyComponent = NULL; + DbU::Unit x = 0; + DbU::Unit y = 0; + DbU::Unit width = 0; + DbU::Unit height = 0; + + if (PyArg_ParseTuple( args, "O!O!ll|ll:Contact.create" + , &PyTypeNet , &pyNet + , &PyTypeLayer, &pyLayer + , &x, &y, &width, &height)) { + contact = Contact::create( PYNET_O(pyNet), PYLAYER_O(pyLayer) + , x, y, width, height ); + } else { + PyErr_Clear(); + if (PyArg_ParseTuple( args, "O!O!ll|ll:Contact.create" + , &PyTypeComponent, &pyComponent + , &PyTypeLayer , &pyLayer + , &x, &y, &width, &height)) { + contact = Contact::create( PYCOMPONENT_O(pyComponent), PYLAYER_O(pyLayer) + , x, y, width, height ); + } else { + PyErr_SetString( ConstructorError + , "invalid number of parameters for Contact constructor." ); + return NULL; + } + } + HCATCH + return PyContact_Link( contact ); + } + + +2. Basic File Structure and CMake configuration +================================================= + +As a first example we will consider the ``Hurrican::Library`` +class. To export a class into Python, we must create three files: + +#. ``PyLibrary.h``, defines the ``PyLibrary`` C-Struct and the functions + needed outside the module istself (mostly for ``PyHurricane.cpp``). + +#. ``PyLibrary.cpp``, contains the complete wrapping of the class and + the Python type definition (``PyTypeLibrary``). + +#. ``PyHurricane.cpp``, the definition of the Python module into which + the classes are registered. The module act as a ``namespace`` in + Python so it is good practice to give it the same name as it's + associated C++ namespace. + +|newpage| + +To build a Python module in |cmake|, use the following macro: + + .. code:: cmake + + set( pyCpps PyLibrary.cpp + PyHurricane.cpp ) + set( pyIncludes hurricane/isobar/PyLibrary.h + + add_python_module( "${pyCpps}" + "${pyIncludes}" + "isobar;1.0;1" # Name & version of the supporting + # shared library. + Hurricane # Name of the Python module will give: + # Hurricane.so + "${depLibs}" # List of dependency libraries. + include/coriolis2/hurricane/isobar + # Where to install the include files. + ) + + +3. Case 1 - DBo Derived, Standalone +====================================== + +As example, we take ``Library``. This a ``DBo`` derived class, but we +choose not to export the parent classes. From Python, it will appear +as a base class. + + +3.1 Class Associated Header File +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Here is the typical content of a header file (for ``PyLibrary``): + +.. code:: c++ + + #ifndef PY_LIBRARY_H + #define PY_LIBRARY_H + + #include "hurricane/isobar/PyHurricane.h" + #include "hurricane/Library.h" + + namespace Isobar { + using namespace Hurricane; + + extern "C" { + + typedef struct { + PyObject_HEAD + Library* _object; + } PyLibrary; + + extern PyTypeObject PyTypeLibrary; + extern PyMethodDef PyLibrary_Methods[]; + extern PyObject* PyLibrary_Link ( Hurricane::Library* lib ); + extern void PyLibrary_LinkPyType (); + + + #define IsPyLibrary(v) ( (v)->ob_type == &PyTypeLibrary ) + #define PYLIBRARY(v) ( (PyLibrary*)(v) ) + #define PYLIBRARY_O(v) ( PYLIBRARY(v)->_object ) + + } // extern "C". + } // Isobar namespace. + + #endif // PY_LIBRARY_H + + +The code is organized as follow: + +1. It must have, *as the first include* ``PyHurricane.h``, which provides + the complete bunch of macros needed to build the module. Then the include + of the C++ class we want to wrap (``Library.h``). + +2. As Python is written in C, all the wrapper code has to be but inside + an ``extern "C"`` namespace. + +3. Definition of the wrapped |struct|, ``PyLibrary``. It is standard Python here. + + .. note:: + For our set of macros to work, the name of the pointer to the + C++ class must always be **_object**, and the various functions and + macros defined here must take the name of the class (either in + lowercase, camel case or capitals). + +4. Declaration of the Python type ``PyTypeLibrary`` (standard). + +5. Declaration of the Python type table of methods ``PyLibrary_Methods`` (standard). + +.. _3.6: + +6. Declaration of ``PyLibrary_Link()``, helper to convert a C++ ``Lybrary`` into + a ``PyLibrary`` (put in the support shared library). + +7. Declaration of ``PyLibrary_LinkPyType()``, this function setup the class-level + function of the new Python type (here, ``PyTypeLibrary``). + +8. And, lastly, three macros to: + + * ``IsPylibrary()``, know if a Python object is a ``PyLibrary`` + * ``PYLIBRARY()``, force cast (C style) of a ``PyObject`` into a ``PyLibrary``. + * ``PYLIBRARY_O()``, extract the C++ object (``Library*``) from the Python + object (``PyLibrary``). + + +3.2 Class Associated File +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +3.2.1 Head of the file +------------------------ + +.. code:: c++ + + #include "hurricane/isobar/PyLibrary.h" + #include "hurricane/isobar/PyDataBase.h" + #include "hurricane/isobar/PyCell.h" + + namespace Isobar { + using namespace Hurricane; + + extern "C" { + + #define METHOD_HEAD(function) GENERIC_METHOD_HEAD(Library,lib,function) + +As for the header, all the code must be put inside a ``extern "C"`` namespace. + +A convenience macro ``METHOD_HEAD()`` must be defined, by refining +``GENERIC_METHOD_HEAD()``. This macro will be used in the method wrappers +below to cast the ``_object`` field of the Python object into the +appropriate C++ class, this is done using a C-style cast. +The parameters of that macro are: + +#. The C++ encapsulated class (``Library``). +#. The name of the *variable* that will be used to store a pointer + to the C++ working object. +#. The name of the C++ method which is to be wrapped. + + +3.2.2 The Python Module Part +------------------------------ + +First, we have to build all the wrappers to the C++ methods of +the class. For common predicates, accessors, and mutators macros +are supplied. + +Wrapping of the ``Library::getCell()`` method: + +.. code:: c++ + + static PyObject* PyLibrary_getCell ( PyLibrary* self, PyObject* args ) + { + Cell* cell = NULL; + + HTRY + METHOD_HEAD( "Library.getCell()" ) + char* name = NULL; + if (PyArg_ParseTuple(args,"s:Library.getCell", &name)) { + cell = lib->getCell( Name(name) ); + } else { + PyErr_SetString( ConstructorError + , "invalid number of parameters for Library::getCell." ); + return NULL; + } + HCATCH + + return PyCell_Link(cell); + } + +Key points about this method wrapper: + +#. The ``HTRY`` / ``HCATCH`` macros provides an insulation from the C++ + exceptions. If one is emitted, it will be catched and transformed in + a Python one. This way, the Python program will be cleanly interrupted + and the usual stack trace displayed. + +#. The returned value of this method is of type ``Cell*``, we have to + transform it into a Python one. This is done with ``PyCell_Link()``. + This macro is supplied by the ``PyCell.h`` header and this is why + it must be included. + +|newpage| + + +Wrapping of the ``Library::create()`` method: + +.. code:: c++ + + static PyObject* PyLibrary_create( PyObject*, PyObject* args ) + { + PyObject* arg0; + PyObject* arg1; + Library* library = NULL; + + HTRY + __cs.init( "Library.create" ); // Step (1). + if (not PyArg_ParseTuple( args, "O&O&:Library.create" + , Converter, &arg0 + , Converter, &arg1 )) { // Step (2). + PyErr_SetString( ConstructorError + , "invalid number of parameters for Library constructor." ); + return NULL; + } + if (__cs.getObjectIds() == ":db:string") { // Step (3.a) + DataBase* db = PYDATABASE_O(arg0); + library = Library::create( db, Name(PyString_AsString(arg1)) ); + } else if (__cs.getObjectIds() == ":library:string") { // Step (3.b) + Library* masterLibrary = PYLIBRARY_O(arg0); + library = Library::create( masterLibrary, Name(PyString_AsString(arg1)) ); + } else { + PyErr_SetString( ConstructorError + , "invalid number of parameters for Library constructor." ); + return NULL; + } + HCATCH + + return PyLibrary_Link( library ); + } + +Key point about this constructor: + +#. We want the Python interface to mimic as closely as possible the + C++ API. As such, Python object will be created using a static + ``.create()`` method. So we do not use the usual Python allocation + mechanism. + +#. As it is a *static* method, there is no first argument. + +#. Python do not allow function overload like C++. To emulate that + behavior we use the ``__cs`` object (which is a global variable). + + #. Init/reset the ``__cs`` object: see *step (1)*. + + #. Call ``PyArg_ParseTuple()``, read every mandatory or optional + argument as a Python object (``"O&"``) and use ``Converter`` + on each one. ``Converter`` will determine the real type of + the Python object given as argument by looking at the + encapsulated C++ class. It then update the ``__cs`` object. + Done in *step (2)* + + #. After the call to ``PyArg_ParseTuple()``, the function + ``__cs.getObjectIds()`` will return the *signature* of + the various arguments. In our case, the valid signatures + will be ``":db:string"`` (*step (3.a)*a) and ``":library:string"`` + (*step (3.b)*). + + #. Call the C++ method after extracting the C++ objects from + the Python arguments. Note the use of the ``PYLIBRARY_O()`` + and ``PYDATABSE_O()`` macros to perform the conversion. + +#. Return the result, encapsulated through a call to ``PyLibrary_Link()``. + +|newpage| + + +Wrapping of the ``Library::destroy()`` method: + +.. code:: c++ + + DBoDestroyAttribute(PyLibrary_destroy, PyLibrary) + +For C++ classes **that are derived** from ``DBo``, the destroy method +wrapper must be defined using the macro ``DBoDestroyAttribute()``. +This macro implements the bi-directional communication mechanism +using ``Hurricane::Property``. It **must not** be used for +non ``DBo`` derived classes. + + +Defining the method table of the PyLibrary type: + +.. code:: c++ + + PyMethodDef PyLibrary_Methods[] = + { { "create" , (PyCFunction)PyLibrary_create , METH_VARARGS|METH_STATIC + , "Creates a new library." } + , { "getCell" , (PyCFunction)PyLibrary_getCell, METH_VARARGS + , "Get the cell of name " } + , { "destroy" , (PyCFunction)PyLibrary_destroy, METH_NOARGS + , "Destroy associated hurricane object The python object remains." } + , {NULL, NULL, 0, NULL} /* sentinel */ + }; + + +This is standard Python/C API. The name of the ``PyMethodDef`` table must be +named from the class: ``PyLibrary_Methods``. + + +3.2.3 Python Type Linking +--------------------------- + +Defining the ``PyTypeLibrary`` class methods and the type linking function. + +Those are the functions for the Python object itself to work, not the +wrapped method from the C++ class. + +.. note:: + At this point we **do not** define the ``PyTypeLibrary`` itself. + Only it's functions and a function to set them up *once* the + type will be defined. + +.. code:: c++ + + DBoDeleteMethod(Library) + PyTypeObjectLinkPyType(Library) + + +The macro ``DBoDeleteMethod()`` define the function to delete a +``PyLibrary`` *Python* object. Again, do not mistake it for the deletion +of the C++ class (implemented by ``DBoDestroyAttribute()``). +Here again, ``DBoDeleteMethod()`` is specially tailored for +``DBo`` derived classes. + +.. _PyLibrary_LinkPyType(): + +To define ``PyLibrary_LinkPyType()``, use the ``PyTypeObjectLinkPyType()`` +macro. This macro is specific for ``DBo`` derived classes that are seen as +base classes under Python (i.e. we don't bother exposing the base +class under Python). ``PyLibrary_LinkPyType()`` setup the class functions +in the ``PyTypeLibrary`` type object, it **must** be called in the +Python module this class is part of (in this case: ``PyHurricane.cpp``). +This particular flavor of the macro *will define* and setup the +following class functions: + +* ``PyTypeLibrary.tp_compare`` (defined by the macro). +* ``PyTypeLibrary.tp_repr`` (defined by the macro). +* ``PyTypeLibrary.tp_str`` (defined by the macro). +* ``PyTypeLibrary.tp_hash`` (defined by the macro). +* ``PyTypeLibrary.tp_methods`` sets to the previously defined ``PyLibrary_Methods`` table. +* ``PyTypeLibrary.tp_dealloc`` is set to a function that *must* be named ``PyLibrary_DeAlloc``, + this is what ``DBoDeleteMethod`` does. It is *not* done by ``PyTypeObjectLinkPyType``. + +Defining the ``PyTypeLibrary`` type: + + +3.2.4 The Shared Library Part +------------------------------- + +This part will be put in a separate supporting shared library, allowing +other Python module to link against it (and make use of its symbols). + +.. code:: c++ + + DBoLinkCreateMethod(Library) + PyTypeObjectDefinitions(Library) + + +To define ``PyTypeLibrary``, use the ``PyTypeObjectDefinitions()`` macro. +This macro is specific for classes that, as exposed by Python, +are neither *derived* classes nor *base* classes for others. +That is, they are standalone from the inheritance point of view. + +The ``DBoLinkCreateMethod()`` macro will define the ``PyLibrary_Link()`` +function which is responsible for encapsulating a C++ ``Library`` object +into a Python ``PyLibrary`` one. + + +3.3 Python Module (C++ namespace) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +We use the Python module to replicate the C++ *namespace*. Thus, for the +``Hurricane`` namespace we create a Python ``Hurricane`` module which is +defined in the ``PyHurricane.cpp`` file, then we add into that module +dictionary all the Python types encapsulating the C++ classes of that +namespace. + +.. code:: c++ + + DL_EXPORT(void) initHurricane () + { + PyLibrary_LinkPyType(); // step 1. + + PYTYPE_READY( Library ) // step 2. + + __cs.addType( "library", &PyTypeLibrary, "", false ); // step 3. + + PyObject* module = Py_InitModule( "Hurricane", PyHurricane_Methods ); + if (module == NULL) { + cerr << "[ERROR]\n" + << " Failed to initialize Hurricane module." << endl; + return; + } + + Py_INCREF( &PyTypeLibrary ); // step 4. + PyModule_AddObject( module, "Library", (PyObject*)&PyTypeLibrary ); // step 4. + } + +The ``initHurricane()`` initialisation function shown above has +been scrubbed of everything not relevant to the ``PyLibrary`` class. +The integration of the ``PyLibrary`` class into the module needs +four steps: + +#. A call to `PyLibrary_LinkPyType()`_ to hook the Python type functions + in the Python type object. + +#. A call to the ``PYTYPE_READY()`` macro (standard Python). + +#. Registering the type into the ``__cs`` object, with ``addType()``. + The arguments are self explanatory, save for the last which is a + boolean to tell if this is a *derived* class or not. + +#. Adding the type object (``PyTypeLibrary``) into the dictionnary of + the module itself. This allow to mimic closely the C++ syntax: + + .. code:: python + + import Hurricane + lib = Hurricane.Library.create( db, 'root' ) + +|newpage| + + +4. Case 2 - Hierarchy of DBo Derived Classes +============================================== + +Now we want to export the following C++ class hierarchy into Python: :: + + PyEntity <-- PyComponent <-+- PyContact + +- PySegment <-+- PyHorizontal + +- PyVertical + + +4.1 Base Class Header +~~~~~~~~~~~~~~~~~~~~~~~ + +**Remark:** this is only a partial description of tree for the sake of +clarity. + +One important fact to remember is that ``PyEntity`` and ``PyComponent`` +being related to C++ abstract classes, no objects of those types will be +created, only ``PyContact``, ``PyHorizontal`` or ``PyVertical`` will. + +The consequence is that there is no ``PyEntity_Link()`` like in `3.6`_ +but instead two functions: + +#. ``PyEntity_NEW()`` which create the relevant ``PyEntity`` *derived* + object from the ``Entity`` one. For example, if the ``Entity*`` given + as argument is in fact a ``Horizontal*``, then the function will + return a ``PyHorizontal*``. + +#. ``EntityCast()`` do the reverse of ``PyEntity_NEW()`` that is, from + a ``PyEntity``, return the C++ *derived* object. Again, if the + ``PyEntity*`` is a ``PyHorizontal*``, the function will cast it as + a ``Horizontal*`` *then* return it as an ``Entity*``. + +.. code:: python + + #ifndef ISOBAR_PY_ENTITY_H + #define ISOBAR_PY_ENTITY_H + + #include "hurricane/isobar/PyHurricane.h" + #include "hurricane/Entity.h" + + namespace Isobar { + extern "C" { + + typedef struct { + PyObject_HEAD + Hurricane::Entity* _object; + } PyEntity; + + extern PyObject* PyEntity_NEW ( Hurricane::Entity* entity ); + extern void PyEntity_LinkPyType (); + extern PyTypeObject PyTypeEntity; + extern PyMethodDef PyEntity_Methods[]; + + + #define IsPyEntity(v) ( (v)->ob_type == &PyTypeEntity ) + #define PYENTITY(v) ( (PyEntity*)(v) ) + #define PYENTITY_O(v) ( PYENTITY(v)->_object ) + + } // extern "C". + + Hurricane::Entity* EntityCast ( PyObject* derivedObject ); + + } // Isobar namespace. + + #endif // ISOBAR_PY_ENTITY_H + +|newpage| + + +4.2 Base Class File +~~~~~~~~~~~~~~~~~~~~~ + +Changes from `3.2 Class Associated File`_ are: + +#. No call to ``DBoLinkCreateMethod()`` because there must be no ``PyEntity_Link()``, + but the definitions of ``PyEntity_NEW()`` and ``EntityCast``. + +#. For defining the ``PyTypeEntity`` Python type, we call a different + macro: ``PyTypeRootObjectDefinitions``, dedicated to base classes. + + +.. code:: c++ + + #include "hurricane/isobar/PyCell.h" + #include "hurricane/isobar/PyHorizontal.h" + #include "hurricane/isobar/PyVertical.h" + #include "hurricane/isobar/PyContact.h" + + namespace Isobar { + using namespace Hurricane; + + extern "C" { + + #if defined(__PYTHON_MODULE__) + + #define METHOD_HEAD(function) GENERIC_METHOD_HEAD(Entity,entity,function) + + DBoDestroyAttribute(PyEntity_destroy ,PyEntity) + + static PyObject* PyEntity_getCell ( PyEntity *self ) + { + Cell* cell = NULL; + HTRY + METHOD_HEAD( "Entity.getCell()" ) + cell = entity->getCell(); + HCATCH + return PyCell_Link( cell ); + } + + PyMethodDef PyEntity_Methods[] = + { { "getCell", (PyCFunction)PyEntity_getCell, METH_NOARGS + , "Returns the entity cell." } + , { "destroy", (PyCFunction)PyEntity_destroy, METH_NOARGS + , "Destroy associated hurricane object, the python object remains." } + , {NULL, NULL, 0, NULL} /* sentinel */ + }; + + + DBoDeleteMethod(Entity) + PyTypeObjectLinkPyType(Entity) + + #else // End of Python Module Code Part. + + PyObject* PyEntity_NEW ( Entity* entity ) + { + if (not entity) { + PyErr_SetString ( HurricaneError, "Invalid Entity (bad occurrence)" ); + return NULL; + } + + Horizontal* horizontal = dynamic_cast(entity); + if (horizontal) return PyHorizontal_Link( horizontal ); + + Vertical* vertical = dynamic_cast(entity); + if (vertical) return PyVertical_Link( vertical ); + + Contact* contact = dynamic_cast(entity); + if (contact) return PyContact_Link( contact ); + + Py_RETURN_NONE; + } + + PyTypeRootObjectDefinitions(Entity) + + #endif // Shared Library Code Part (1). + + } // extern "C". + + + #if !defined(__PYTHON_MODULE__) + + Hurricane::Entity* EntityCast ( PyObject* derivedObject ) { + if (IsPyHorizontal(derivedObject)) return PYHORIZONTAL_O(derivedObject); + if (IsPyVertical (derivedObject)) return PYVERTICAL_O(derivedObject); + if (IsPyContact (derivedObject)) return PYCONTACT_O(derivedObject); + return NULL; + } + + #endif // Shared Library Code Part (2). + + } // Isobar namespace. + +|newpage| + + +4.3 Intermediate Class Header +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Changes from `3.1 Class Associated Header File`_ are: + +#. As for ``PyEntity``, and because this is still an abstract class, + there is no ``PyComponent_Link()`` function. + +#. The definition of the ``PyComponent`` |struct| is differs. There is + no ``PyObject_HEAD`` (it is a Python *derived* class). The only + field is of the base class type ``PyEntity`` and for use with + Coriolis macros, **it must** be named ``_baseObject`` (note that + this is *not* a pointer but a whole object). + +.. code:: c++ + + #ifndef ISOBAR_PY_COMPONENT_H + #define ISOBAR_PY_COMPONENT_H + + #include "hurricane/isobar/PyEntity.h" + #include "hurricane/Component.h" + + namespace Isobar { + extern "C" { + + typedef struct { + PyEntity _baseObject; + } PyComponent; + + extern PyTypeObject PyTypeComponent; + extern PyMethodDef PyComponent_Methods[]; + extern void PyComponent_LinkPyType (); + + #define IsPyComponent(v) ((v)->ob_type == &PyTypeComponent) + #define PYCOMPONENT(v) ((PyComponent*)(v)) + #define PYCOMPONENT_O(v) (static_cast(PYCOMPONENT(v)->_baseObject._object)) + + } // extern "C". + } // Isobar namespace. + + #endif + + +4.4 Intermediate Class File +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Changes from `3.2 Class Associated File`_ are: + +1. Redefinition of the default macros ``ACCESS_OBJECT`` and ``ACCESS_CLASS``. + + * The pointer to the C++ encapsulated object (attribute ``_object``) is hold + by the base class ``PyEntity``. The ``ACCESS_OBJECT`` macro which is tasked + to give access to that attribute is then ``_baseObject._object`` as + ``PyComponent`` is a direct derived class of ``PyEntity``. + + * ``ACCESS_CLASS`` is similar to ``ACCESS_OBJECT`` for accessing the base + class, that is a pointer to ``PyEntity``. + +|newpage| + +2. For defining the ``PyTypeComponent`` Python type, we call a yet different + macro: ``PyTypeInheritedObjectDefinitions()``, dedicated to derived classes. + For this this macro we need to give as argument the derived class and the + base class. + +.. code:: c++ + + #include "hurricane/isobar/PyComponent.h" + #include "hurricane/isobar/PyNet.h" + + namespace Isobar { + using namespace Hurricane; + + extern "C" { + + #undef ACCESS_OBJECT + #undef ACCESS_CLASS + #define ACCESS_OBJECT _baseObject._object + #define ACCESS_CLASS(_pyObject) &(_pyObject->_baseObject) + #define METHOD_HEAD(function) GENERIC_METHOD_HEAD(Component,component,function) + + #if defined(__PYTHON_MODULE__) + + DirectGetLongAttribute(PyComponent_getX,getX,PyComponent,Component) + DirectGetLongAttribute(PyComponent_getY,getY,PyComponent,Component) + DBoDestroyAttribute(PyComponent_destroy,PyComponent) + + static PyObject* PyComponent_getNet ( PyComponent *self ) + { + Net* net = NULL; + HTRY + METHOD_HEAD( "Component.getNet()" ) + net = component->getNet( ); + HCATCH + return PyNet_Link( net ); + } + + PyMethodDef PyComponent_Methods[] = + { { "getX" , (PyCFunction)PyComponent_getX , METH_NOARGS + , "Return the Component X value." } + , { "getY" , (PyCFunction)PyComponent_getY , METH_NOARGS + , "Return the Component Y value." } + , { "getNet" , (PyCFunction)PyComponent_getNet , METH_NOARGS + , "Returns the net owning the component." } + , { "destroy", (PyCFunction)PyComponent_destroy, METH_NOARGS + , "destroy associated hurricane object, the python object remains." } + , {NULL, NULL, 0, NULL} /* sentinel */ + }; + + DBoDeleteMethod(Component) + PyTypeObjectLinkPyType(Component) + + #else // Python Module Code Part. + + PyTypeInheritedObjectDefinitions(Component, Entity) + + #endif // Shared Library Code Part. + + } // extern "C". + } // Isobar namespace. + + +4.5 Terminal Class Header +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The contents of this file is almost identical to `4.3 Intermediate Class Header`_, +save for the presence of a ``PyContact_Link()`` function. She is present +at this level because the class is a concrete one and can be instanciated. + +.. code:: c++ + + #ifndef ISOBAR_PY_CONTACT_H + #define ISOBAR_PY_CONTACT_H + + #include "hurricane/isobar/PyComponent.h" + #include "hurricane/Contact.h" + + namespace Isobar { + extern "C" { + + typedef struct { + PyComponent _baseObject; + } PyContact; + + extern PyTypeObject PyTypeContact; + extern PyMethodDef PyContact_Methods[]; + extern PyObject* PyContact_Link ( Hurricane::Contact* object ); + extern void PyContact_LinkPyType (); + + #define IsPyContact(v) ( (v)->ob_type == &PyTypeContact ) + #define PYCONTACT(v) ( (PyContact*)(v) ) + #define PYCONTACT_O(v) ( PYCONTACT(v)->_baseObject._baseObject._object ) + + } // extern "C". + } // Isobar namespace. + + #endif // ISOBAR_PY_CONTACT_H + + +4.6 Terminal Class File +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Changes from `4.4 Intermediate Class File`_ are: + +#. As previously, we have to redefine the macros ``ACCESS_OBJECT`` and ``ACCESS_CLASS``. + But, as we are one level deeper into the hierarchy, one more level of + indirection using ``_baseObject`` must be used. + + * ``ACCESS_OBJECT`` becomes ``_baseObject._baseObject._object``. + + * ``ACCESS_CLASS`` becomes ``&(_pyObject->_baseObject._baseObject)``. + +#. For defining the ``PyTypeContact`` Python type, we call again + ``PyTypeInheritedObjectDefinitions()``. It is the same whether the class is + terminal or not. + +#. And, this time, as the Python class is concrete, we call the macro + ``DBoLinkCreateMethod()`` to create the ``PyContact_Link()`` function. + + +.. code:: c++ + + #include "hurricane/isobar/PyContact.h" + + namespace Isobar { + using namespace Hurricane; + + extern "C" { + + #undef ACCESS_OBJECT + #undef ACCESS_CLASS + #define ACCESS_OBJECT _baseObject._baseObject._object + #define ACCESS_CLASS(_pyObject) &(_pyObject->_baseObject._baseObject) + #define METHOD_HEAD(function) GENERIC_METHOD_HEAD(Contact,contact,function) + + #if defined(__PYTHON_MODULE__) + + DirectGetLongAttribute(PyContact_getWidth , getWidth , PyContact,Contact) + DirectGetLongAttribute(PyContact_getHeight, getHeight, PyContact,Contact) + DBoDestroyAttribute(PyContact_destroy, PyContact) + + static PyObject* PyContact_create ( PyObject*, PyObject *args ) + { + Contact* contact = NULL; + HTRY + // Usual signature then arguments parsing. + HCATCH + return PyContact_Link(contact); + } + + PyMethodDef PyContact_Methods[] = + { { "create" , (PyCFunction)PyContact_create , METH_VARARGS|METH_STATIC + , "Create a new Contact." } + , { "destroy" , (PyCFunction)PyContact_destroy , METH_NOARGS + , "Destroy associated hurricane object, the python object remains." } + , { "getWidth" , (PyCFunction)PyContact_getWidth , METH_NOARGS + , "Return the contact width." } + , { "getHeight", (PyCFunction)PyContact_getHeight, METH_NOARGS + , "Return the contact height." } + , {NULL, NULL, 0, NULL} /* sentinel */ + }; + + DBoDeleteMethod(Contact) + PyTypeObjectLinkPyType(Contact) + + #else // Python Module Code Part. + + DBoLinkCreateMethod(Contact) + PyTypeInheritedObjectDefinitions(Contact, Component) + + #endif // Shared Library Code Part. + + } // extern "C". + } // Isobar namespace. + + +4.8 Python Module +~~~~~~~~~~~~~~~~~~~ + +.. code:: c++ + + DL_EXPORT(void) initHurricane () + { + PyEntity_LinkPyType(); // step 1. + PyComponent_LinkPyType(); + PyContact_LinkPyType(); + + PYTYPE_READY( Entity ) // step 2. + PYTYPE_READY_SUB( Component, Entity ) + PYTYPE_READY_SUB( Contact , Component ) + + __cs.addType( "ent" , &PyTypeEntity , "" , false ); // step 3. + __cs.addType( "comp" , &PyTypeComponent, "", false, "ent" ); + __cs.addType( "contact", &PyTypeContact , "" , false, "comp" ); + + PyObject* module = Py_InitModule( "Hurricane", PyHurricane_Methods ); + if (module == NULL) { + cerr << "[ERROR]\n" + << " Failed to initialize Hurricane module." << endl; + return; + } + + Py_INCREF( &PyTypeContact ); // step 4. + PyModule_AddObject( module, "Contact", (PyObject*)&PyTypeContact ); // step 4. + } + + +5. Case 3 - Non-DBo Standalone Classe +======================================= + +Let's have a look at the encapsulation of ``Hurricane::Point``. + +Non-BDo derived classes do not support the bi-directionnal communication. +So each Python object is associated with one C++ object. The C++ object +is created and deleted along with the Python one. This behavior implies +that the C++ object is *copy constructible* (which should be the case). + + +5.1 Class Header +~~~~~~~~~~~~~~~~~~ + +Changes from `3.1 Class Associated Header File`_: + +* There is no ``PyPoint_Link()`` function, as it's related to the + bi-directional communication mechanism. + +.. note:: + **About the _object attribute** of the PyPoint. As the C++ object life span + (``Point``) is linked to the Python (``PyPoint``) one, we may have used a + value instead of a pointer. It is best to keep a pointer as the macros + written for ``DBo`` derived classes will remain usables. + + +.. code:: c++ + + #ifndef ISOBAR_PY_POINT_H + #define ISOBAR_PY_POINT_H + + #include "hurricane/isobar/PyHurricane.h" + #include "hurricane/Point.h" + + namespace Isobar { + extern "C" { + + typedef struct { + PyObject_HEAD + Hurricane::Point* _object; + } PyPoint; + + extern PyTypeObject PyTypePoint; + extern PyMethodDef PyPoint_Methods[]; + extern void PyPoint_LinkPyType(); + + #define IsPyPoint(v) ( (v)->ob_type == &PyTypePoint ) + #define PYPOINT(v) ( (PyPoint*)(v) ) + #define PYPOINT_O(v) ( PYPOINT(v)->_object ) + + } // extern "C". + } // Isobar namespace. + + #endif // ISOBAR_PY_POINT_H + +|newpage| + + +5.2 Class File +~~~~~~~~~~~~~~~~ + +Changes from `3.2 Class Associated File`_: + +* As there is no ``PyPoint_Link()`` function, there is no call to any + flavor of the ``DBoLinkcreatemethod()`` macro (obvious as it's *not* + a ``DBo``). + +* To use the standard Python constructor, we have to define ``PyPoint_NEW()`` + and ``PyPoint_Init()`` functions, I'm not absolutely certain that the later + needs to be defined (that part is still not clear to me from the Python doc). + +* As it's not a ``DBo`` there is no ``destroy()`` method, so no call to + ``DirectDestroyMethod()`` + +* Lastly, as this object has a ``PyPoint_NEW()`` (field ``tp_new``) and + a ``PyPoint_Init()`` (field ``tp_init``) we have to use the macro + ``PyTypeObjectLinkPyTypeNewInit()`` to define ``PyPoint_LinkPyType()``. + + +.. code:: c++ + + #include "hurricane/isobar/PyPoint.h" + + namespace Isobar { + using namespace Hurricane; + + extern "C" { + + #define METHOD_HEAD(function) GENERIC_METHOD_HEAD(Point,point,function) + + #if defined(__PYTHON_MODULE__) + + static PyObject* PyPoint_NEW ( PyObject* module, PyObject *args ) + { + Point* point = NULL; + HTRY + PyObject* arg0 = NULL; + PyObject* arg1 = NULL; + + __cs.init( "Point.Point" ); + if (not PyArg_ParseTuple( args,"|O&O&:Point.Point" + , Converter,&arg0 + , Converter,&arg1 )) { + PyErr_SetString ( ConstructorError + , "invalid number of parameters for Point constructor." ); + return NULL; + } + + if (__cs.getObjectIds() == "") + { point = new Point()); } + else if (__cs.getObjectIds() == ":point") + { point = new Point( *PYPOINT_O(arg0) ); } + else if (__cs.getObjectIds() == ":int:int") + { point = new Point( PyAny_AsLong(arg0), PyAny_AsLong(arg1) ); } + else { + PyErr_SetString ( ConstructorError + , "invalid number of parameters for Point constructor." ); + return NULL; + } + + PyPoint* pyPoint = PyObject_NEW( PyPoint, &PyTypePoint ); + if (pyPoint == NULL) { delete point; return NULL; } + pyPoint->_object = point; + HCATCH + + return (PyObject*)pyPoint; + } + + static int PyPoint_Init ( PyPoint* self, PyObject* args, PyObject* kwargs ) + { return 0; } + + DirectGetLongAttribute(PyPoint_getX,getX,PyPoint,Point) + DirectGetLongAttribute(PyPoint_getY,getY,PyPoint,Point) + DirectSetLongAttribute(PyPoint_SetX,setX,PyPoint,Point) + DirectSetLongAttribute(PyPoint_SetY,setY,PyPoint,Point) + + PyMethodDef PyPoint_Methods[] = + { { "getX" , (PyCFunction)PyPoint_getX , METH_NOARGS + , "Return the Point X value." } + , { "getY" , (PyCFunction)PyPoint_getY , METH_NOARGS + , "Return the Point Y value." } + , { "setX" , (PyCFunction)PyPoint_SetX , METH_VARARGS + , "Modify the Point X value." } + , { "setY" , (PyCFunction)PyPoint_SetY , METH_VARARGS + , "Modify the Point Y value." } + , {NULL, NULL, 0, NULL} /* sentinel */ + }; + + DirectDeleteMethod(PyPoint_DeAlloc,PyPoint) + PyTypeObjectLinkPyTypeNewInit(Point) + + #else // Python Module Code Part. + + PyTypeObjectDefinitions(Point) + + #endif // Shared Library Code Part. + + } // extern "C". + } // Isobar namespace. + + +5.2 Class File +~~~~~~~~~~~~~~~~ + +To put it bluntly, there is no difference in the Python module for +a standalone ``DBo`` class and a non-``DBo`` class. + + +6. Encapsulating DbU +====================== + +While ``Hurricane::DbU`` is a class, the ``Hurricane::DbU::Unit`` is only +a ``typedef`` over ``uint64_t``. The ``DbU`` class only provides a set of +static methods to manipulate and convert to and from other units. +At Python level, ``DbU::Unit`` will be stored in plain ``long long``. + +When a ``DbU::Unit`` argument is expected in a Python functions, just use +the ``DbU::Unit PyAny_AsLong( PyObject* )`` function to convert it. + +For example, if we explicit the expension of: + +.. code:: c++ + + DirectSetLongAttribute(PyPoint_SetX,setX,PyPoint,Point) + +|newpage| + +We would get: + +.. code:: c++ + + static PyObject* PyPoint_setX ( PyPoint *self, PyObject* args ) + { + Point* cobject = static_cast( self->_object ); + if (cobject == NULL) { + PyErr_SetString( ProxyError + , "Attempt to call Point.setX() on an unbound Hurricane object" ); + return NULL; + } + + HTRY + PyObject* arg0 = NULL; + if (not PyArg_ParseTuple( args, "O:Point.setX()", &arg0 )) + return ( NULL ); + cobject->setX( Isobar::PyAny_AsLong(arg0) ); + HCATCH + Py_RETURN_NONE; + } + + +For the other way around, use ``PyObject* PyDbU_FromLong( DbU::Unit )``. + +.. code:: c++ + + DirectGetLongAttribute(PyPoint_GetX,getX,PyPoint,Point) + +We would get: + +.. code:: c++ + + static PyObject* PyPoint_GetX ( PyPoint *self, PyObject* args ) + { + Point* cobject = static_cast( self->_object ); + if (cobject == NULL) { + PyErr_SetString( ProxyError + , "Attempt to call Point.getX() on an unbound Hurricane object" ); + return NULL; + } + return Isobar::PyDbU_FromLong(cobject->getX()); + } + + +7. No C++ Hurricane::Name encapsulation +========================================== + +To be written. diff --git a/documentation/etc/CMakeLists.txt b/documentation/etc/CMakeLists.txt new file mode 100644 index 00000000..ed7a27a8 --- /dev/null +++ b/documentation/etc/CMakeLists.txt @@ -0,0 +1,8 @@ + + set ( htmlInstallDir share/doc/coriolis2/en/html/etc ) + + install ( FILES Pygments.css SoC.css SoC-ReST.css + DESTINATION ${htmlInstallDir} ) + install ( DIRECTORY images/ + DESTINATION ${htmlInstallDir}/images + FILES_MATCHING PATTERN "*.png" ) diff --git a/documentation/etc/Pygments.css b/documentation/etc/Pygments.css new file mode 100644 index 00000000..de3dc8fe --- /dev/null +++ b/documentation/etc/Pygments.css @@ -0,0 +1,41 @@ +div.codeblock { font-size: 90%; + margin: 10pt; + padding: 5pt; + border: dashed; + border-width: thin; + background-color: #ffffcc; + border-color: #fc8676; + } +.codeblock * .hll { background-color: #ffffcc } +.codeblock * .c { color: #008000 } /* Comment */ +.codeblock * .err { border: 1px solid #FF0000 } /* Error */ +.codeblock * .k { color: #0000ff } /* Keyword */ +.codeblock * .cm { color: #008000 } /* Comment.Multiline */ +.codeblock * .cp { color: #0000ff } /* Comment.Preproc */ +.codeblock * .c1 { color: #008000 } /* Comment.Single */ +.codeblock * .cs { color: #008000 } /* Comment.Special */ +.codeblock * .ge { font-style: italic } /* Generic.Emph */ +.codeblock * .gh { font-weight: bold } /* Generic.Heading */ +.codeblock * .gp { font-weight: bold } /* Generic.Prompt */ +.codeblock * .gs { font-weight: bold } /* Generic.Strong */ +.codeblock * .gu { font-weight: bold } /* Generic.Subheading */ +.codeblock * .kc { color: #0000ff } /* Keyword.Constant */ +.codeblock * .kd { color: #0000ff } /* Keyword.Declaration */ +.codeblock * .kn { color: #0000ff } /* Keyword.Namespace */ +.codeblock * .kp { color: #0000ff } /* Keyword.Pseudo */ +.codeblock * .kr { color: #0000ff } /* Keyword.Reserved */ +.codeblock * .kt { color: #2b91af } /* Keyword.Type */ +.codeblock * .s { color: #a31515 } /* Literal.String */ +.codeblock * .nc { color: #2b91af } /* Name.Class */ +.codeblock * .ow { color: #0000ff } /* Operator.Word */ +.codeblock * .sb { color: #a31515 } /* Literal.String.Backtick */ +.codeblock * .sc { color: #a31515 } /* Literal.String.Char */ +.codeblock * .sd { color: #a31515 } /* Literal.String.Doc */ +.codeblock * .s2 { color: #a31515 } /* Literal.String.Double */ +.codeblock * .se { color: #a31515 } /* Literal.String.Escape */ +.codeblock * .sh { color: #a31515 } /* Literal.String.Heredoc */ +.codeblock * .si { color: #a31515 } /* Literal.String.Interpol */ +.codeblock * .sx { color: #a31515 } /* Literal.String.Other */ +.codeblock * .sr { color: #a31515 } /* Literal.String.Regex */ +.codeblock * .s1 { color: #a31515 } /* Literal.String.Single */ +.codeblock * .ss { color: #a31515 } /* Literal.String.Symbol */ diff --git a/documentation/etc/SoC-ReST.css b/documentation/etc/SoC-ReST.css new file mode 100644 index 00000000..eb5b2304 --- /dev/null +++ b/documentation/etc/SoC-ReST.css @@ -0,0 +1,493 @@ +/* -*- Mode: css -*- */ + +.sc { + font-variant: small-caps; + font-size: 120%; +} + +span.red { + color: red; +} + +span.italic, span.comment, span.name { + font-style: italic; +} + +span.keyword, span.name { + font-weight: bold; +} + +span.title { + font-family: "URW Bookman L", serif; + font-weight: bold; + font-size: 120%; + text-align: center; + display: block; +} + +span.header2 { + font-size: 140%; + font-weight: bold; +} + +hr { + color: #09550b; + border: 1px dotted #09550b; + border-style: none none dotted; + padding-top: 10pt; + padding-bottom: 10pt; +} + +h2, h3 { + text-align: left; +} + +div.contents, div.subcontents { + margin: 30pt; + padding: 0pt 10pt; + border-left: 6px solid black; + +/* Shadow explanation: + * The shadow is a rectangle the same size as the box. It is then shifted + * blurred according to the following parameters. + * + * 1. The horizontal offset of the shadow, positive means the shadow will be + * on the right of the box, a negative offset will put the shadow on the + * left of the box. + * 2. The vertical offset of the shadow, a negative one means the box-shadow + * will be above the box, a positive one means the shadow will be below + * the box. + * 3. The blur radius (optional), if set to 0 the shadow will be sharp, + * the higher the number, the more blurred it will be. + * 4. The spread radius (optional), positive values increase the size of the + * shadow, negative values decrease the size. Default is 0 (the shadow is + * same size as blur). + * 5. Color + + background-color: #ffdd66; + -moz-box-shadow: 4px 4px 5px 2px #ccc; + -webkit-box-shadow: 4px 4px 5px 2px #ccc; + box-shadow: 4px 4px 5px 2px #ccc; + + */ +} + +div.contents p.first { + font-size: 160%; + font-weight: bold; +} + + +div#centered { + margin-left: auto; + margin-right: auto; + text-align: center; +} + +pre, tt, code { + font-family: "courrier", "andale mono", monospace; + font-size: 100%; + white-space: pre; +} + +tt { + color: #09550b; +} + +pre.wiki, pre code, div.code, pre.literal-block { + font-size: 90%; + padding: 5pt; + margin-left: 4%; + margin-right: 4%; +/* + border: dashed; + border-width: thin; + border-color: #FC8676; + */ + background-color: #FCFCE1; + +} + +a:link, a:active { + font-weight: normal; + text-decoration: none; + color: black; + border-bottom: 1px solid black; +/* + border-bottom: 1px dotted #09550b; + border-bottom: 1px dotted #09550b; + */ +} + +a:hover, +a:focus, +a:visited +{ + font-weight: normal; + text-decoration: none; + color: black; + border-bottom: 2px solid black; +/* + font-style: italic; + color: #A40010; + border-bottom: 1px dotted #A40010; + color: #09550b; + border-bottom: 1px dotted #09550b; + */ +} + +a.toc-backref { + font-family: "URW Bookman L", serif; + font-size: 100%; + font-weight: bold; +} + +a.toc-backref:link, +a.toc-backref:active, +a.toc-backref:hover, +a.toc-backref:focus, +a.toc-backref:visited +{ + border-bottom: 0px; + text-align: left; +} + +p.credit { + margin-left: 10%; + margin-right: 10%; + font-size: 110%; +} + +p.credit span.left { + float: left; + white-space: nowrap; +} + +p.credit span.right { + float: right; + white-space: nowrap; +} + +img.addborder { + border: 1px solid black; +} + +img.align-center { + display: block; +/* + clear: both; + */ + margin-left: auto; + margin-right: auto; + width: 99%; + text-align: center; +} + +img.align-top { + float: left; + padding: 0pt 20pt 20pt 0pt; + text-align: center; +} + +img.align-bottom { + float: right; + padding: 0pt 20pt 20pt 0pt; + text-align: center; +} + +div.code * { + background-color: #FCFCE1; +} + +div.note { + margin: 8px 2% 0px 2%; + border: 1px none #ffbb44; + border-left-width: 4px; + border-left-style: solid; + padding: 1px 10pt 1px 55px; +/*background: #fff676 url('/dsk/l1/jpc/pictures/ReST/clipboard.png') no-repeat 0% 50%;;*/ + background: #ffdd66 url('../etc/images/clipboard.png') no-repeat 0% 50%;; + font-size: 90% +} + +div.error { + margin: 8px 2% 0px 2%; + border: 1px none #dd0000; + border-left-width: 4px; + border-left-style: solid; + padding: 1px 10pt 1px 55px; + background: #ffddcc url('../etc/images/i-core.png') no-repeat 0% 50%;; + font-size: 90% +} + +p.admonition-title { + font-weight: bold; +} + +div.problematic { + margin: 5pt; + padding: 1pt 10pt; + background-color: #ffdd66; +} + +div.problematic p.first { + font-size: 160%; + font-weight: bold; +} + +div.problematic ul, div.contents ul, div.subcontents ul { + padding-left: 15pt; +} + +div.backlink { + text-align: center; +} + +div.backlink a { + font-size: 120%; + font-weight: bold; + text-align: center; + padding: 4pt; + border: 2px solid black; +} + +div.publications ul li { + margin-bottom: 10pt; +} + +div.publications a { + font-weight: bold; +} + +div.tools { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: center; + align-content: space-around; +} + +div.toolblock { + -moz-box-shadow: 4px 4px 5px 2px #ccc; + -webkit-box-shadow: 4px 4px 5px 2px #ccc; + box-shadow: 4px 4px 5px 2px #ccc; + padding: 5pt; + margin: 10pt; + flex: none; + text-align: center; + font-size: 120%; + font-weight: bold; +} + +div.toolblock a { + font-family: "URW Bookman L", serif; + font-size: 200%; + border-bottom: none; +} + +div.two-columns { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: center; + align-content: space-around; +} + +div.two-columns ul { + padding-left: 10pt; +} + +div[class^="reliefblock"] { + -moz-box-shadow: 4px 4px 5px 2px #ccc; + -webkit-box-shadow: 4px 4px 5px 2px #ccc; + box-shadow: 4px 4px 5px 2px #ccc; + -moz-border-radius: 5px; + border-radius: 10px; + width: 30%; + padding: 5pt; + margin: 10pt; + flex: none; +} + +div[class^="reliefblock"] a { + font-family: "URW Bookman L", serif; + font-weight: bold; + font-size: 120%; + text-align: center; + display: block; + border-bottom: none; +} + +div.reliefblock-green { background-color: #a3c090; } +div.reliefblock-blue { background-color: #b2ccdd; } +div.reliefblock-yellow { background-color: #F0e5b4; } +div.reliefblock-orange { background-color: #f1d1b5; } + +div.line-block { + font-family: "courrier", "andale mono", monospace; + font-size: 100%; +/*white-space: pre;*/ +} + +table.wiki th, table th { + color: black; + background: #FFFFCC; +} + +table.docutils { + margin-left: 5%; + margin-right: 5%; +} + +table.wiki, table.wiki th, table.wiki td { border: 1px solid black; } +table.wiki th * p { text-align: center; } +table.wiki * p { margin: 0pt; } +table.wiki * blockquote { margin: 0pt; } +table { border-collapse: collapse; } +table th, table td { border: 1px solid black; + padding: 2px 10px 2px 10px; } + +table.docinfo { + margin-top: 10pt; + margin-left: auto; + margin-right: 0pt; + border: 10px solid #303030; + border-collapse: collapse; + background: #303030; + font-size: 90%; + font-family: sans-serif; +} + +table.docinfo tr { + border-bottom: 1px dotted white; +} + +th.docinfo-name, +table.docinfo td, +table.docinfo td a:link, +table.docinfo td a:active, +table.docinfo td a:visited, +table.docinfo td a:focus, +table.docinfo td a:hover +{ + border: 0px solid white; + background: #303030; + color: white; + text-align: left; + font-weight: bold; +} + +th.docinfo-name { + font-weight: normal; +} + +table.docinfo td { + font-weight: bold; +} + +span.ul { + text-decoration: underline; +} + +* span.smallcaps { +/*font-variant: "small-caps";*/ + text-transform: "uppercase"; + font-size: "smaller"; +} + + +span.cb { + font-family: "andale mono", monospace; + font-weight: bold; + white-space: pre; +} + +span.fboxtt { + border: 1px solid black; + padding: 0px 4px; + font-family: "andale mono", monospace; + font-weight: bold; + white-space: pre; +} + +#notice.system-message, .notice.system-message { + color: black; + background: #DDFFDD; + padding-top: 5pt; + padding-bottom: 5pt; + border: 1px none #55BB55; + border-top-width: 4px; + border-top-style: solid; +} + +#content.error .message, div.system-message { + color: #550000; + background: #ffddcc; + border: 2px none #dd0000; + border-top-width: 4px; + border-top-style: solid; + padding: .5em; + margin: 1em 0; +} + +#main { + float: right; + width: 70%; + padding: 0pt; + margin: 0pt; + min-height: 700px; + background: white; +} + +div#main h1 { + border-bottom: 2px solid #09550b; +} + +div#main div.section h1 { + border-bottom: none; +} + +#cmscontent { + padding: 0pt 4% 10pt 4%; + margin: 0pt; +} + +div#htmlerrorcontents { + padding: 10pt 4% 10pt 4%; + margin: 0pt; +} + +div#htmlerrorcontents span.cs { + font-size: 80%; + font-family: "andale mono", monospace; + white-space: pre; +} + +div#htmlerrorcontents hr.lang_separator { + border: 1px dotted black; + border-style: none none dotted; + margin-top: 20pt; + margin-bottom: 10pt; +} + +#embedcontent { + border: 0pt; + padding: 0pt; + margin: 0pt; +} + +table.citation, table.footnote { + border: none; + padding-left: 5pt; + margin-left: 5pt; + margin-bottom: 5pt; + background-color: #eeeeee; +} + +table.citation th, table.citation td, table.footnote th, table.footnote td { + border: none; +} + +table.citation td.label, table.footnote td.label { + width: 50pt; +} diff --git a/documentation/etc/SoC-ReST.tex b/documentation/etc/SoC-ReST.tex new file mode 100644 index 00000000..bd8ea443 --- /dev/null +++ b/documentation/etc/SoC-ReST.tex @@ -0,0 +1,119 @@ + + \usepackage[default,osfigures,scale=0.95]{opensans} + \usepackage{pifont} + \usepackage{array} + \usepackage{xspace} + \usepackage{fancyhdr} + \usepackage{float} + \usepackage{graphicx} + \usepackage{color} + \usepackage{bmpsize} + \usepackage{enumitem} + \usepackage{eurosym} + \usepackage[sf,bf]{titlesec} + \usepackage{titletoc} + \usepackage[colorlinks=true,linkcolor=red,urlcolor=red]{hyperref} + \usepackage[paper=a4paper,headheight=30pt,tmargin=1.5in,bmargin=1in]{geometry} +%\usepackage{layouts} + + \definecolor{brickred} {rgb}{0.8 , 0.25, 0.33} + \definecolor{brightmaroon}{rgb}{0.76, 0.13, 0.28} + \definecolor{bleudefrance}{rgb}{0.19, 0.55, 0.91} + \definecolor{babyblue} {rgb}{0.54, 0.81, 0.94} + \definecolor{babyblueeyes}{rgb}{0.63, 0.79, 0.95} + \definecolor{azure} {rgb}{0.0 , 0.5 , 1.0 } + + \urlstyle{tt} % normal text font (alternatives: same, tt, rm, sf) + \renewlist{itemize}{itemize}{9} + \setlist[itemize]{label=\textbullet} + +%\graphicspath{ {/dsk/l1/jpc/cms/slsoc/www-soc/admin/images/ReST/} } + +% The LaTeX Companion -- p. 204. +% Miniature display of the page layout. +%\newcommand{\showpage}{% +% \setlayoutscale{0.65}\setlabelfont{\tiny}% +% \printheadingsfalse\printparametersfalse% +% \currentpage\pagedesign% +%} + + \titlecontents{section}[0pc] + {\sffamily\bfseries} % above code. + {\contentslabel{1pc}} % numbered entry format. + {} % numberless entry format. + {\titlerule*[8pt]{.}\textsc{\textbf{{\contentspage}}}} % page format. + \titlecontents{subsection}[0pc] + {\sffamily} % above code. + {\contentslabel{2pc}} % numbered entry format. + {} % numberless entry format. + {\titlerule*[8pt]{.}\textsc{\textbf{{\contentspage}}}} % page format. + \titlecontents{subsubsection}[1pc] + {\sffamily} % above code. + {\contentslabel{2pc}} % numbered entry format. + {} % numberless entry format. + {\titlerule*[8pt]{.}\textsc{\textbf{{\contentspage}}}} % page format. + + \titleformat{\title} + {\color{bleudefrance}\bfseries\large} + {\color{bleudefrance}\thesection} + {1em} + {} + \titleformat{\section} + {\color{brightmaroon}\bfseries\large} + {\color{brightmaroon}\thesection} + {1em} + {} + + \newcommand{\DUroleul}[1]{\underline{#1}\xspace} + \newcommand{\DUrolesc}[1]{\textsc{#1}\xspace} + \newcommand{\DUrolecb}[1]{\textbf{\texttt{#1}}\xspace} + \newcommand{\DUrolefboxtt}[1]{\fbox{\texttt{#1}}\xspace} + \newcommand{\DUrolekeyword}[1]{\textbf{#1}} + \newcommand{\DUrolename}[1]{\textit{\textbf{#1}}} + \newcommand{\DUrolecomment}[1]{\textit{#1}} + + \newcommand{\DUtitlenote}[1]{\noindent\textbf{#1}\smallskip} + + \newcommand{\DUadmonitionnote}[1]{% + \begin{center} + \sffamily + \begin{array}[t]{m{1cm}!{\vrule width 1pt}m{.90\textwidth}} + \raisebox{0.0cm}{\includegraphics[scale=0.5]{clipboard.png}} & + \begin{minipage}[t]{.85\textwidth} \small #1 + \end{minipage} \\ + \end{array} + \end{center} + } + + \newcommand{\DUtitleerror}[1]{\noindent\textbf{\color{red}#1}\smallskip} + + \newcommand{\DUadmonitionerror}[1]{% + \begin{center} + \sffamily + \begin{array}[t]{m{1cm}!{\vrule width 1pt}m{.90\textwidth}} + \raisebox{0.0cm}{\includegraphics[scale=0.5]{i-core.png}} & + \begin{minipage}[t]{.85\textwidth} #1 + \end{minipage} \\ + \end{array} + \end{center} + } + + \newcommand{\LIP} {\textsc{lip6}\xspace} + \newcommand{\SoC} {\textsc{S}o\textsc{C}\xspace} + + \renewcommand{\headrulewidth}{0.2mm} + \renewcommand{\footrulewidth}{0.2mm} + \renewcommand{\sectionmark}[1]{\markboth{\thesection\ #1}{\thesection\ #1}} + \renewcommand{\subsectionmark}[1]{} + \lhead[]{Coriolis Documentation} + \rhead[]{\today} + \lfoot[]{\LIP/\SoC \href{https://www-soc.lip6.fr/}{www-soc.lip6.fr}} + \rfoot[]{\thepage} + \cfoot[]{} + + \pagestyle{fancy} + + \IfFileExists{./\jobname.ReST.tex} + {\typeout{Found ReST customization} + \input{./\jobname.ReST.tex}} + {\typeout{No ReST customization found (\jobname.ReST.tex)}} diff --git a/documentation/etc/SoC.css b/documentation/etc/SoC.css new file mode 100644 index 00000000..345b5f44 --- /dev/null +++ b/documentation/etc/SoC.css @@ -0,0 +1,536 @@ +/* -*- Mode: css -*- */ + + +/*@media (max-resolution: 150dpi) {*/ + body { font-size: 9pt; } + p#lip6 { font-size: 14pt; } + p#soc { font-size: 28pt; } +/* +} + +@media (min-resolution: 151dpi) { + body { font-size: 11pt; } + p#lip6 { font-size: 18pt; } + p#soc { font-size: 40pt; } +} +*/ + + +body { + font-family: "Open Sans", verdana, sans-serif; + margin-left: auto; + margin-right: auto; + margin-top: 20pt; + margin-bottom: 20pt; + padding-top: 0pt; + padding-bottom: 0pt; + padding-left: 30pt; + padding-right: 30pt; + width: 580pt; + background-color: #f5f5f5; +/*background: #f5f5f5 url('../images/flowers-abstract-grey.png') repeat;*/ +/*background: #f5f5f5 url('../images/layout-motif-faded-2.png') repeat;*/ + background-size: 20%; + -moz-box-shadow: 0px 0px 5px 5px #ccc; + -webkit-box-shadow: 0px 0px 5px 5px #ccc; + box-shadow: 0px 0px 5px 5px #ccc; +} + +ul { + list-style-type: square; +} + +ul ul { + list-style-type: disc; +} + +ul ul ul { + list-style-type: circle; +} + +h1 { + font-family: "URW Bookman L", serif; + font-weight: bold; + font-size: 150%; + text-align: center; +/*font-family: "adelle", Georgia, "Times New Roman", serif;*/ +} + +h1.title { + text-align: center; + font-size: 140%; +} + +div#header { + background: url(../images/UPMC-Jussieu-faded.png) #c0d1f3; + padding: 10px 0px 0px 10px; + margin: 0px; + height: 90px; + width: 843pt; + position: fixed; + z-index: 1; +} + +div#header img { + height: 80px; +} + +div#header div#logos { + float: left; + width: 210pt; + padding: 0px; + margin: 0px; +} + +div#header div#title { + padding: 0px; + margin: 0px; +} + +p#lip6 { + font-weight: bold; + color: white; + margin: 0px; + padding: 0px; +} + +p#soc { + font-weight: bold; + color: white; + margin: 0px; + padding: 0px; +} + +div#logos a { + text-decoration: none; + border-bottom: none; + outline: 0; +} + +#sidebar { + background: #c0d1f3; +/* + float: left; + */ + position: fixed; + z-index: 1; + top: 100px; + width: 220pt; + padding: 5pt 0pt 0pt 0pt; + margin: 0pt; +} + +div.iconrow { + padding: 0pt 10pt; +} + +div.iconrow a { + padding: 0pt; + outline: 0; +} + +div.iconrow a:link, +div.iconrow a:active, +div.iconrow a:visited, +div.iconrow a:focus { + border-bottom: none; + vertical-align: bottom, +} + +div.iconrow a:hover { + border-bottom: 4px solid black; +} + +div#langmenu a { + padding: 0pt; + outline: 0; +} + +div#langmenu a:link, +div#langmenu a:active, +div#langmenu a:visited, +div#langmenu a:focus { + border-bottom: none; + vertical-align: bottom, +} + +div#langmenu a:hover { + border-bottom: 4px solid black; +} + +div#pagemenu { + width: 100%; + margin: 0pt; + padding: 2pt 0pt; +} + +div#pagemenu ul { + list-style-type: none; + padding-left: 10pt; + padding-right: 10pt; +} + +div#pagemenu ul li { + border-bottom: 2px dotted black; + padding-left: 0pt; + padding-right: 0pt; +} + +div#pagemenu ul li:first-child { + border-top: 2px dotted black; +} + +/* + * div#pagemenu ul li.depth-2 { + * border-bottom: none; + * padding-left: 10pt; + * } + */ + +div#pagemenu ul li.depth-0 a, +div#pagemenu ul li.active-0 a +{ + display: block; + color: black; + font-family: "URW Bookman L", serif; + font-size: 120%; + font-weight: bold; + border-bottom: none; + padding-left: 0pt; + padding-right: 0pt; + outline: 0; +} + +div#pagemenu ul li.depth-0 a:focus, +div#pagemenu ul li.depth-0 a:hover, +div#pagemenu ul li.depth-0 a:active, +div#pagemenu ul li.active-0 a:focus, +div#pagemenu ul li.active-0 a:hover, +div#pagemenu ul li.active-0 a:active +{ +/*background-color: white;*/ + font-family: "URW Bookman L", serif; + font-size: 160%; + font-style: normal; + padding-top: 5px; + padding-bottom: 5px; + padding-left: 10pt; + border-left: 6px solid black; + margin-left: -10pt; + margin-right: -10pt; +} + +div#pagemenu ul li.depth-1 a, +div#pagemenu ul li.active-1 a +{ + display: block; + color: black; + font-size: 100%; + font-weight: normal; + font-family: "URW Bookman L", serif; + border-bottom: none; + padding-left: 10pt; + margin-left: -10pt; + margin-right: -10pt; + outline: 0; +} + +div#pagemenu ul li.depth-1 a:focus, +div#pagemenu ul li.depth-1 a:hover, +div#pagemenu ul li.active-1 a:focus, +div#pagemenu ul li.active-1 a:hover +{ +/*background-color: white;*/ + font-family: "URW Bookman L", serif; + font-size: 120%; + font-style: normal; + font-weight: bold; + border-left: 6px solid black; + padding-top: 5px; + padding-bottom: 5px; +} + +div#pagemenu ul li.depth-2 a, +div#pagemenu ul li.active-2 a +{ + display: block; + color: black; + font-family: "URW Bookman L", serif; + font-size: 100%; + font-weight: normal; + border-bottom: none; + padding-left: 20pt; + margin-left: -10pt; + margin-right: -10pt; + outline: 0; +} + +div#pagemenu ul li.depth-2 a:focus, +div#pagemenu ul li.depth-2 a:hover, +div#pagemenu ul li.active-2 a:focus, +div#pagemenu ul li.active-2 a:hover +{ + font-family: "URW Bookman L", serif; + font-size: 120%; + font-style: normal; + font-weight: bold; + border-left: 6px solid black; + padding-top: 5px; + padding-bottom: 5px; +/*background-color: white;*/ +} + +div#main_page { + padding: 0pt; + margin-left: 220pt; + width: 630pt; +/* + *-moz-box-shadow: 4px 4px 5px 2px #ccc; + *-webkit-box-shadow: 4px 4px 5px 2px #ccc; + *box-shadow: 4px 4px 5px 2px #ccc; + */ +} + +div#topbar { + position: fixed; + z-index: 1; + top: 100px; + margin-left: 220pt; + background-color: #c0d1f3; + padding-top: 5pt; + height: 20pt; + width: 630pt; +} + +div#langmenu { + float: right; + vertical-align: bottom; +} + +div#breadcrumb { + margin: 0pt; + padding-left: 0pt; + background-color: #c0d1f3; +} + +div#breadcrumb a:link, +div#breadcrumb a:active, +div#breadcrumb a:visited, +div#breadcrumb a:focus { + color: black; + font-weight: bold; + border-bottom: none; + vertical-align: bottom, +} + +div#breadcrumb a:hover { + color: black; + font-weight: bold; + font-style: italic; + border-bottom: none; +} + +/* +div.contents li a:before { + display: block; + content: " "; + margin-top: -400px; + height: 400px; + visibility: hidden; +} +*/ + +div.section:before { + display: block; + content: " "; + margin-top: -120px; + height: 120px; + visibility: hidden; +} + +div#main_content { + padding: 10pt; + top: 120px; + position: relative; +/* + border-left: 1px solid #c0d1f3; + border-right: 1px solid #c0d1f3; + */ + min-height: 350pt; + text-align: justify; + background-color: white; +} + +div#column0 { + padding: 0pt; +/*border: 1px solid black;*/ + display: inline-block; +/*float: left;*/ + width: 305pt; + vertical-align: top; +} + +div#column1 { + padding: 0pt; +/*border: 1px solid black;*/ + display: inline-block; +/*float: right;*/ + width: 295pt; + vertical-align: top; +} + +div#column0 h1, div#column1 h1 { +/*font-family: "adelle", Georgia, "Times New Roman", serif;*/ + font-family: "URW Bookman L", serif; + font-weight: bold; + font-size: 120%; + text-align: center; +} + +div#column0 h2, div#column1 h2 { + font-size: 110%; +} + +div#column0 div { +/* + -moz-box-shadow: 4px 4px 5px 2px #ccc; + -webkit-box-shadow: 4px 4px 5px 2px #ccc; + box-shadow: 4px 4px 5px 2px #ccc; + background-color: #e6ccb8; + */ + padding: 0pt; + margin-bottom: 5pt; + margin-right: 10pt; +} + +div#column1 div { +/* + -moz-box-shadow: 4px 4px 5px 2px #ccc; + -webkit-box-shadow: 4px 4px 5px 2px #ccc; + box-shadow: 4px 4px 5px 2px #ccc; + background-color: #e6ccb8; + */ + padding: 0pt; + margin-bottom: 5pt; +} + +ul.ce-menu { + -moz-box-shadow: 4px 4px 5px 2px #ccc; + -webkit-box-shadow: 4px 4px 5px 2px #ccc; + box-shadow: 4px 4px 5px 2px #ccc; + padding-left: 16pt; + background-color: #e6ccb8; +} +} + +div.csc-default { + padding: 0pt; + margin: 0pt; +} + +/* +ul.ce-menu-1 { + padding-left: 8pt; +} + +ul.ce-menu-1 li { + padding-left: 0pt; +} +*/ + + +div#footer { + top: 120px; + position: relative; +/* + bottom: 0pt; + margin-left: 220pt; + width: 620pt; + */ + padding: 5pt; + color: white; + background-color: #242729; + font-size: 90%; + font-weight: bold; +} + + +table.footer1, table.footer2 { width: 100%; border: 0px; } +td.LFooter { text-align: left; border: 0px; } +td.RFooter { text-align: right; border: 0px; } +td.CFooter { text-align: center;} +table.footer2 td.RFooter { font-weight: bold; width: 35%; border: 0px; } +table.footer2 td.CFooter { width: 30%; border: 0px; } +table.footer2 td.LFooter { font-weight: bold; width: 35%; border: 0px; } + +div.tx-felogin-pi1 { + border: 0px; + padding: 10pt; + moz-box-shadow: 4px 4px 5px 2px #ccc; + webkit-box-shadow: 4px 4px 5px 2px #ccc; + box-shadow: 4px 4px 5px 2px #ccc; + font-size: 100%; + display: block; + text-align: center; + width: 50%; + margin: 5% 25% 5% 25%; +} + +div.tx-felogin-pi1 fieldset { + border: none; +} + +div.tx-felogin-pi1 h3 { + font-family: "URW Bookman L", serif; + font-size: 200%; + text-align: center; +} + +div.tx-felogin-pi1 > form > fieldset > div { + font-family: "courrier", "andale mono", monospace; + font-weight: bold; + font-size: 110%; + padding-bottom: 5pt; +} + +div.tx-felogin-pi1 > form > fieldset > div > label { + font-family: "Open Sans", verdana, sans-serif; + font-weight: normal; + font-size: 100%; +} + +.tx-felogin-pi1 table.form { + border-collapse: collapse; + border: 1px solid black; + font-size: 110%; + margin: 10pt; +} + +.tx-felogin-pi1 table.form th,.tx-felogin-pi1 table.form td { + padding: 2pt; +} + +.tx-felogin-pi1 table.form th { + color: white; + background-color: black; + width: 70pt; + font-weight: bold; +} + +.tx-felogin-pi1 table.form td { +} + +.tx-felogin-pi1 table.form input { + width: 200pt; + border-style: none; +} + +.tx-felogin-pi1 input#Login, .tx-felogin-pi1 input#Logout { + border-style: none; + color: white; + background-color: black; + padding: 4pt 10pt; + font-family: "URW Bookman L", serif; + font-size: 120%; + font-weight: bold; +} diff --git a/documentation/etc/definitions.rst b/documentation/etc/definitions.rst new file mode 100644 index 00000000..e303a4c3 --- /dev/null +++ b/documentation/etc/definitions.rst @@ -0,0 +1,176 @@ +.. -*- Mode: rst -*- + + +.. role:: raw-html(raw) + :format: html + +.. role:: raw-latex(raw) + :format: latex + +.. role:: ul +.. role:: cb +.. role:: sc +.. role:: fboxtt + +.. HTML/LaTeX backends mixed macros. +.. |br| replace:: :raw-latex:`\linebreak` :raw-html:`
    ` +.. |medskip| replace:: :raw-latex:`\medskip` :raw-html:`
    ` +.. |newpage| replace:: :raw-latex:`\newpage` +.. |linebreak| replace:: :raw-latex:`\smallskip` +.. |noindent| replace:: :raw-latex:`\noindent` :raw-html:`

    ` +.. |dotfill| replace:: :raw-html:`  ` + + +.. Acronyms & names. +.. |GNU| replace:: :sc:`gnu` +.. |LGPL| replace:: :sc:`lgpl` +.. |GPL| replace:: :sc:`gpl` +.. |UPMC| replace:: :sc:`upmc` +.. |Bull| replace:: :sc:`Bull` +.. |Cadence| replace:: :sc:`Cadence` +.. |Si2| replace:: :sc:`Si2` +.. |LEFDEF| replace:: :sc:`lefdef` +.. |Flute| replace:: :sc:`Flute` +.. |MacOS| replace:: :sc:`MacOS` +.. |RHEL6| replace:: :sc:`rhel6` +.. |RHEL7| replace:: :sc:`rhel7` +.. |SL6| replace:: :sc:`Scientific Linux 6` +.. |SL7| replace:: :sc:`Scientific Linux 7` +.. |Scientific Linux| replace:: :sc:`Scientific Linux` +.. |RedHat| replace:: :sc:`RedHat` +.. |Fedora| replace:: :sc:`Fedora` +.. |FC13| replace:: :sc:`fc13` +.. |Debian| replace:: :sc:`Debian` +.. |Ubuntu| replace:: :sc:`Ubuntu` + +.. |Alexandre| replace:: :sc:`Alexandre` +.. |Belloeil| replace:: :sc:`Belloeil` +.. |Chaput| replace:: :sc:`Chaput` +.. |Chu| replace:: :sc:`Chu` +.. |Clement| replace:: :sc:`Clement` +.. |Dupuis| replace:: :sc:`Dupuis` +.. |Escassut| replace:: :sc:`Escassut` +.. |Gouvine| replace:: :sc:`Gouvine` +.. |Masson| replace:: :sc:`Masson` +.. |Sroka| replace:: :sc:`Sroka` +.. |Yifei| replace:: :sc:`Yifei` + +.. |ANSI| replace:: :sc:`ansi` +.. |MIPS| replace:: :sc:`mips` +.. |Am2901| replace:: :sc:`Am2901` +.. |Hurricane| replace:: :sc:`Hurricane` +.. |HurricaneAMS| replace:: :sc:`HurricaneAMS` +.. |Alliance| replace:: :sc:`Alliance` +.. |Yosys| replace:: :sc:`Yosys` +.. |GenLib| replace:: :sc:`GenLib` +.. |Nero| replace:: :sc:`Nero` +.. |Druc| replace:: :cb:`Druc` +.. |Coloquinte| replace:: :sc:`Coloquinte` +.. |Coriolis| replace:: :sc:`Coriolis` +.. |Coriolis1| replace:: :sc:`Coriolis 1` +.. |Coriolis2| replace:: :sc:`Coriolis 2` +.. |VLSISAPD| replace:: :sc:`vlsisapd` +.. |CRLcore| replace:: :sc:`CRLcore` +.. |Cyclop| replace:: :sc:`Cyclop` +.. |Nimbus| replace:: :sc:`Nimbus` +.. |hMetis| replace:: :sc:`hMetis` +.. |Mauka| replace:: :sc:`Mauka` +.. |Etesian| replace:: :sc:`Etesian` +.. |Knik| replace:: :sc:`Knik` +.. |Katabatic| replace:: :sc:`Katabatic` +.. |Kite| replace:: :sc:`Kite` +.. |Stratus| replace:: :sc:`Stratus` +.. |Stratus1| replace:: :sc:`Stratus1` +.. |Stratus2| replace:: :sc:`Stratus2` +.. |Unicorn| replace:: :sc:`Unicorn` +.. |ccb| replace:: :cb:`ccb` +.. |cgt| replace:: :cb:`cgt` +.. |Chams| replace:: :sc:`Chams` +.. |OpenChams| replace:: :sc:`OpenChams` +.. |Pharos| replace:: :cb:`Pharos` +.. |API| replace:: :sc:`api` +.. |STL| replace:: :sc:`stl` +.. |XML| replace:: :sc:`xml` +.. |pdf| replace:: :sc:`pdf` +.. |UTF-8| replace:: :sc:`utf-8` +.. |Python| replace:: :sc:`Python` +.. |Linux| replace:: :sc:`Linux` +.. |MacPorts| replace:: :sc:`MacPorts` +.. |devtoolset2| replace:: :cb:`devtoolset2` +.. |boost| replace:: :cb:`boost` +.. |Qt| replace:: :sc:`qt` +.. |tty| replace:: :cb:`tty` +.. |svn| replace:: :cb:`svn` +.. |git| replace:: :cb:`git` +.. |rpm| replace:: :cb:`rpm` +.. |gdb| replace:: :cb:`gdb` +.. |cmake| replace:: :cb:`cmake` +.. |struct| replace:: :cb:`struct` + +.. |KeyUp| replace:: :fboxtt:`Up` +.. |KeyDown| replace:: :fboxtt:`Down` +.. |KeyLeft| replace:: :fboxtt:`Left` +.. |KeyRight| replace:: :fboxtt:`Right` +.. |KeyF| replace:: :fboxtt:`f` +.. |KeyL| replace:: :fboxtt:`l` +.. |KeyG| replace:: :fboxtt:`g` +.. |KeyZ| replace:: :fboxtt:`z` +.. |KeyM| replace:: :fboxtt:`m` +.. |KeyI| replace:: :fboxtt:`i` +.. |KeyK| replace:: :fboxtt:`k` +.. |KeyP| replace:: :fboxtt:`p` +.. |KeyO| replace:: :fboxtt:`o` +.. |KeyW| replace:: :fboxtt:`w` +.. |KeyQ| replace:: :fboxtt:`q` +.. |KeyCapK| replace:: :fboxtt:`K` +.. |KeyCapS| replace:: :fboxtt:`S` +.. |Plus| replace:: :fboxtt:`+` +.. |KeyESC| replace:: :fboxtt:`ESC` +.. |CTRL| replace:: :fboxtt:`CTRL` +.. |CTRL_L| replace:: :fboxtt:`CTRL+L` +.. |CTRL_I| replace:: :fboxtt:`CTRL+I` +.. |CTRL_P| replace:: :fboxtt:`CTRL+P` +.. |CTRL_O| replace:: :fboxtt:`CTRL+O` +.. |CTRL_W| replace:: :fboxtt:`CTRL+W` +.. |CTRL_Q| replace:: :fboxtt:`CTRL+Q` +.. |CTRL_Down| replace:: :fboxtt:`CTRL+Down` +.. |CTRL_Up| replace:: :fboxtt:`CTRL+Up` +.. |CTRL_Left| replace:: :fboxtt:`CTRL+Left` +.. |CTRL_Right| replace:: :fboxtt:`CTRL+Right` + +.. URLs +.. _FGR: http://vlsicad.eecs.umich.edu/BK/FGR/ +.. _Box Router: http://www.cerc.utexas.edu/~thyeros/boxrouter/boxrouter.htm +.. _hMETIS: http://glaros.dtc.umn.edu/gkhome/views/metis +.. _Knik Thesis: http://www-soc.lip6.fr/en/users/damiendupuis/PhD/ +.. _RapidJSON: http://miloyip.github.io/rapidjson/ +.. _Python/C API Reference Manual: https://docs.python.org/2/c-api/index.html + +.. Standard CAO/VLSI Concepts. +.. |netlist| replace:: *netlist* +.. |netlists| replace:: *netlists* +.. |layout| replace:: *layout* +.. |layouts| replace:: *layouts* +.. |CMOS| replace:: :sc:`cmos` +.. |VHDL| replace:: :sc:`vhdl` +.. |NWELL| replace:: :sc:`nwell` +.. |POWER| replace:: :sc:`power` +.. |GROUND| replace:: :sc:`ground` + +.. MBK Concepts +.. |MBK| replace:: :sc:`mbk` +.. |LOFIG| replace:: :cb:`Lofig` +.. |PHFIG| replace:: :cb:`Phfig` +.. |SxLib| replace:: :sc:`SxLib` + +.. Hurricane Concepts. +.. |hypernet| replace:: *hypernet* +.. |hypernets| replace:: *hypernets* +.. |Cell| replace:: *Cell* +.. |Rings| replace:: *Rings* +.. |QuadTrees| replace:: *QuadTrees* +.. |Collections| replace:: *Collections* +.. |ap| replace:: :cb:`ap` +.. |vst| replace:: :cb:`vst` +.. |kgr| replace:: :cb:`kgr` +.. |dot_conf| replace:: :cb:`.conf` diff --git a/documentation/etc/images/clipboard.bb b/documentation/etc/images/clipboard.bb new file mode 100644 index 00000000..3bd31e10 --- /dev/null +++ b/documentation/etc/images/clipboard.bb @@ -0,0 +1 @@ +%%BoundingBox: 0 0 48 48 diff --git a/documentation/etc/images/clipboard.eps b/documentation/etc/images/clipboard.eps new file mode 100644 index 00000000..95427f8d --- /dev/null +++ b/documentation/etc/images/clipboard.eps @@ -0,0 +1,456 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%%Title: (../images/clipboard.eps) +%%CreationDate: (2012-02-27T23:17:15+01:00) +%%BoundingBox: 0 0 48 48 +%%HiResBoundingBox: 0 0 48 48 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 1 +%%EndComments + +%%BeginDefaults +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0-PseudoClass or 1-Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % compression: 0-none or 1-RunlengthEncoded. + % hex color packets. + % + gsave + /buffer 512 string def + /byte 1 string def + /color_packet 3 string def + /pixels 768 string def + + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Times-Roman findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 48 48 +userdict begin +DisplayImage +0 0 +48 48 +12.000000 +48 48 +0 +0 +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF383448383448384848383448FFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFF384848FFFFFFFFFFFFD0D0E0384848182428FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD09C78FFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC09C68784828684828784828684828 +784828684828784828684828784828684828784828684828784828383448FFFFFF585858000000 +A0ACC0A09CC0384848281428784828784838685828784838785828784838785828784838785828 +784838785828784838785828784838C09C68784828FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFF684838685828684828685828684838685828784838685828684838 +685828784838685828784838384848FFFFFFFFFFFF000000485868FFFFFFB0BCC0B0BCD0182428 +182428685828784838685828785838685828784838685838785838685828784838785838785838 +685828785838000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +684828784828684828784828684828784828384848383448383448383448384848383448383448 +FFFFFFFFFFFFFFFFFFA0ACB0A09CC0A0ACB0D0BCD0B0BCC0B0ACB0182428281428383448383448 +384848383448383448585858785828784838785828784838785828784838785828000000686868 +908C90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF784838685828684838685828 +784838284848484868FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE0E0F0D0E0E0D0D0E0 +C0D0D0C0D0E0C0D0D0C0BCD0B0BCD0B0BCD0B0BCC0B0ACC0A0ACC0A09CC0A0ACC0485868182428 +585858785838785838785838784838785838785838000000585858787878908C90FFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF684828784828684828FFFFFFFFFFFF383448FFFFFFD0D0E0 +D0D0D0D0BCD0C0D0D0C0BCD0C0BCC0C0ACC0B0BCC0B0ACC0A0ACB0B09CC0A0ACB0A09CB0909CB0 +A09CB0909CA0908CB0909CA0908CA0909CA0908CB0909CA0484858182428908C90B0BCB0F0F0F0 +382418784838785828000000484848686868908C90FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFF684838685828784838F0FFFFFFFFFF384848D0D0E0485858585868486868585868485858 +585868486868585868485858585868486868585868485858585868486868585868485858585868 +486868585868485858585868283438181428788C90B0ACC0F0FFF0482428785838785838000000 +383438484848A02428A02428FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF684828784828685828 +FFF0FFFFFFF0281428181418181418181418181418181418181418181418181418181418181418 +181418181418181418181418181418181418181418181418181418181418181418181418181418 +181418181418907890B0BCB0F0F0F0383418904838785828000000383438A02428F09C78FF8C78 +000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF784838685828784838F0FFFFFFFFFFF0FFFF908CA0 +908C90685868383438282428787878908C90788C90908C90908C90908C90788C90908C90908C90 +908C90788C90908C90788C90908C90788C90908C90788C90908C90788C90908C90788C90C0ACC0 +F0F0F0482428785838905838000000484868F09C78A02428A02428000000FFFFFFFFFFFFFFFFFF +FFFFFFFFFFFF685828784828684828FFF0FFF0FFF0FFF0FFC0BCC0786878382428684800484800 +483448B0BCB0C0ACC0C0BCB0C0ACC0B0BCB0C0ACC0B0BCB0C0ACC0B0BCB0C0ACC0B0BCB0C0ACC0 +B0BCB0C0ACC0B0BCB0C0ACC0B0BCB0C0ACC0B0BCB0C0ACC0B0BCB0F0F0F0382418905838785828 +484868FFFFFF000000A02428000000481418FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF784838685828 +784838F0FFFFFFFFFFF0FFFFE0E0E0181418901418F07828E05890382438787878F0FFF0F0F0FF +F0FFF0F0F0FFF0FFF0F0F0FFF0FFF0F0F0FFF0FFF0F0F0FFF0FFF0F0F0FFF0FFF0F0F0FFF0FFF0 +F0F0FFF0FFF0F0F0FFE0FFF0F0F0FFF0FFF0482428785838485868FFFFFFA0ACC0485858000000 +481418FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF785828784838685828FFF0FFF0FFF0FFF0FF +C0BCC0000000587818188C28480048380038788C78FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0FFF0 +FFF0F0F0F0F0F0F0FFF0FFF0FFF0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0 +F0F0F0F0F0F0383418484868FFFFFFA09CC0485858000000182428FFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFF784838685828784838F0FFFFFFFFFFF0FFF0B0ACB028242800141818D028 +004818000000E0E0E0F0FFF0F0F0FFF0FFF0F0F0FFF0FFF0F0F0FFF0FFF0F0F0FFF0FFF0F0F0FF +F0FFF0F0F0FFF0F0F0F0F0FFF0FFF0F0F0FFE0F0F0F0F0FFF0F0F0F0F0F0E0F0F0484868FFFFFF +A0ACC0485858000000182428787878FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF685828 +784838785828FFF0FFF0FFF0FFF0FFE0E0D0A08CA0000000181400000000787878F0FFF0FFF0FF +F0F0F0F0F0FFF0F0F0F0F0F0F0F0F0F0F0FFF0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0 +F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0E0F0F0483428FFFFFF484868485858000000182428484848 +787878FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF784838685828785838F0FFF0F0F0FF +F0FFF0F0F0FFD0E0D0484848586858C0BCC0F0FFF0F0F0FFF0FFF0F0F0FFF0FFF0F0F0FFF0FFF0 +F0F0FFF0FFF0F0F0FFF0FFF0F0F0F0E0F0F0F0F0FFE0FFF0F0F0F0E0F0F0F0F0FFE0FFF0F0F0F0 +E0F0F0483428FFFFFFF0E078F0AC90000000001400282428484848787878FFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFF785828784838785828FFF0FFF0FFF0FFF0FFF0FFF0FFF0F0D0E0D0 +E0D0E0F0FFF0FFF0F0F0F0F0F0F0FFF0FFF0FFF0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0 +F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0E0F0F0483428FFFFFFF0E078F0AC90 +000000483428000000383438484848787878FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +785838685828784838F0FFF0F0F0FFF0FFF0F0F0FFF0FFF0F0F0FFF0FFF0F0F0FFF0FFF0F0F0FF +F0FFF0F0F0FFF0FFF0F0F0FFF0F0F0F0F0FFF0FFF0F0F0FFE0F0F0F0F0FFE0F0F0F0F0F0E0F0F0 +F0F0FFE0F0F0F0F0F0E0F0F0483428FFFFFFF0E078F0AC90000000483428905838000000282428 +484848787878FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF785828784838785828F0F0FF +F0FFF0FFF0FFF0F0F0F0F0FFF0F0F0484868485858484868485858484868485858484868485858 +484868485858484868485858484868485858484868485858484868485858484868485858483428 +FFFFFFF0E078F0AC90000000483428905838785838000000383438484848787878FFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF785838785838785838F0FFF0F0F0FFF0FFF0F0F0FFF0FFF0 +F0F0FFF0FFF0F0F0FFE0FFF0F0F0FFF0FFF0F0F0F0E0F0F0F0F0FFE0FFF0F0F0F0E0F0F0F0F0F0 +E0FFF0F0F0F0E0F0F0F0F0F0E0F0F0F0F0F0E0F0F0483428FFFFFFF0E078F0AC90000000483428 +482428786838905848000000282428484848787878FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFF785828784838785828FFF0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0281428F0F0F0F0F0F0 +F0F0F0F0F0F0485858484868485858A09CC0A0ACB0A09CC0A0ACB0484868485858484868A0ACB0 +A09CC0A0ACB0483428FFFFFFF0E078F0AC90000000483428F0F0F0483418905838905838000000 +383438484848787878FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF785838785838784838 +F0FFF0F0F0FFF0FFF0F0F0FFF0FFF0F0F0FFF0F0F0F0F0FFF0FFF0F0F0FFE0F0F0F0F0FFE0F0F0 +F0F0F0E0F0F0F0F0FFE0F0F0F0F0F0E0F0F0F0F0F0E0F0F0F0F0F0E0F0F0483428FFFFFFF0E078 +F0AC90000000483428F0F0F0E0F0F0482428906838905848000000282428484848787878FFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF785828904838785838F0F0FFF0F0F0F0F0F0F0F0F0 +F0F0F0F0F0F0484868485858484868485858484868485858484868485858484868485858484868 +485858484868485858484868A0ACB0483428FFFFFFF0E078F0AC90000000483428F0E0F0E0F0E0 +F0E0F0483418905838905838000000383438484848787878FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFF785838785838785838E0FFF0F0F0FFF0FFF0F0F0F0E0F0F0F0F0FFE0FFF0F0F0F0 +E0F0F0F0F0F0E0FFF0F0F0F0E0F0F0F0F0F0E0F0F0F0F0F0E0F0F0F0F0F0E0F0F0F0F0F0E0F0F0 +483428FFFFFFF0E078F0AC90000000483428E0F0F0E0F0F0E0F0F0E0F0F0483428786838905848 +000000282428484848787878FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF785828905838 +785828F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0281428F0F0F0F0F0F0F0F0F0F0F0F0A0ACB0 +484868485858A09CC0A0ACB0A09CC0A0ACB0484868A0ACB0483428FFFFFFF0E078F0AC90000000 +483428F0E0F0E0F0E0F0E0F0E0F0E0E0E0F0483418905838905838000000383438484848787878 +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF785838785838785838F0FFF0F0F0F0E0F0F0 +F0F0FFE0F0F0F0F0F0E0F0F0F0F0FFE0F0F0F0F0F0E0F0F0F0F0F0E0F0F0F0F0F0E0F0F0F0F0F0 +E0F0F0F0F0F0E0F0F0483428FFFFFFF0E078F0AC90000000483428E0F0F0E0F0F0E0E0F0E0F0F0 +E0F0F0E0F0F0482428906838905848000000282428484848787878FFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFF785828904838785838F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0E0F0F0484868 +485858484868485858484868485858484868485858484868485858484868A0ACB0483428FFFFFF +F0E078F0AC90000000483428484868485858484868E0F0E0E0E0F0E0F0E0E0E0F0483418905848 +785838000000383438484848787878FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF785838 +785838905838E0F0F0F0F0F0E0FFF0F0F0F0E0F0F0F0F0F0E0F0F0F0F0F0E0F0F0F0F0F0E0F0F0 +F0F0F0E0F0F0E0F0F0E0F0F0E0F0F0E0F0F0483428FFFFFFF0E078F0AC90000000483428E0F0F0 +E0F0E0E0E0F0E0F0F0E0F0F0E0F0E0E0E0F0D0E0E0482428685828583438000000282428484848 +787878FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF785838905838785828F0F0F0F0F0F0 +F0F0F0E0F0F0F0F0F0E0F0F0281428E0F0F0F0E0F0E0F0F0F0F0F0485858484868A0ACB0484868 +A0ACB0483428FFFFFFF0E078F0AC90000000483428E0E0F0E0F0E0F0E0F0E0F0E0E0E0F0D0E0E0 +D0BCD0B0ACB0A08CA0282418482428382418000000383438484848787878FFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFF905838785838905838E0F0F0F0F0F0E0F0F0F0F0F0E0F0F0F0F0F0 +E0F0F0F0F0F0E0F0F0F0F0F0E0F0F0E0F0F0E0F0F0E0F0F0E0F0F0483428FFFFFFF0E078F0AC90 +000000483428E0F0F0E0F0F0E0E0F0D0F0E0D0D0D0B0BCC0A09CB0788C90686878485858181418 +282418382418000000282428484848787878FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +785838905838785838F0F0F0E0F0F0F0E0F0E0F0F0F0F0F0E0F0F0484868485858484868485858 +484868485858484868A0ACB0483428FFFFFFF0E078F0AC90000000483428484868485858484858 +384858383448283438282438585858484858384838483448181400482428483428000000383438 +484848787878FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF905838786838905838E0F0F0 +E0F0F0E0F0F0F0F0F0E0F0F0E0F0F0E0F0F0E0F0F0E0F0F0E0F0F0E0F0F0E0F0F0E0F0F0683438 +FFFFFFF0E078F0AC90000000483428C0BCD0C0D0C0A0ACB0909C90787890586868484858384848 +484848485848686868687878382418684838785848000000282428484848787878FFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF905838905838785838F0E0F0E0F0F0F0F0F0E0F0E0F0E0F0 +E0F0E0281428E0F0E0F0E0F0E0F0E0F0E0F0A0ACB0903438907868903438F0AC90000000483428 +383448383438382438484848383448182418383438485848585858687868908C90A0ACA0C0BCC0 +483418A05848906838000000383438484848787878FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFF905838785838905848E0F0F0F0F0F0E0F0F0E0F0F0E0F0F0E0F0F0E0F0F0E0E0F0E0F0F0 +E0F0F0E0F0F0B08C90784838FFFFFFE0F0E0000000382418686868586868585858384848484848 +384848585858687878908C90909CA0B0ACC0C0D0D0D0E0E0D0F0E0483428906848A06848000000 +282428484848787878FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF785838905838905838 +F0E0F0E0F0E0F0E0F0E0F0F0E0E0F0E0F0E0484868485858484868485858484868784828D0ACB0 +784828000000282438282428182418181428181418281428282428382438383438383458384858 +484868D0E0E0E0E0F0D0E0E0E0E0E0483428A05848906838000000383438484848787878FFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF905848786838905838E0F0F0E0F0F0E0F0F0E0F0F0 +E0F0F0E0E0F0E0F0F0E0F0F0E0F0E0E0E0F0787868000000282418282428687878585868485858 +585858586868787878909C90B0ACC0C0D0D0D0D0E0D0E0E0E0E0F0D0F0E0E0E0F0D0F0E0E0E0F0 +D0F0E0483428906848A06848000000282428484848787878FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFF905838905838905838F0E0F0E0F0E0E0E0F0E0F0E0F0E0F0E0F0E0281428E0F0E0 +F0E0F0E0F0E0000000383418A09CA0908C90908C90788C78908C90909C90B09CB0C0BCC0D0D0E0 +E0E0E0E0E0F0D0E0E0E0E0E0E0E0E0E0E0E0D0E0E0E0E0E0D0E0E0E0E0E0483418A05848A06838 +000000383438484848787878FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF905848786838 +905848E0F0F0E0F0F0E0F0F0E0E0F0E0F0F0E0E0F0E0F0E0E0E0F0E0F0F0E0E0F0C0D0D0C0BCD0 +C0D0C0C0D0D0C0D0D0C0D0D0C0E0D0D0D0E0D0E0E0E0E0F0D0F0E0E0E0F0D0F0E0E0E0F0D0F0E0 +E0E0F0D0E0E0E0E0F0D0F0E0E0E0F0D0E0E0483428906848A06848000000282428484848787878 +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF905838905838905838E0E0F0E0F0E0E0E0F0 +E0F0E0E0E0F0E0F0E0484868485858484868485858484868485858484868485858484868485858 +484868485858484868485858484868485858484868485858484868485858484868D0E0E0E0E0E0 +D0E0E0E0E0E0483428A05848906838000000383438484848787878FFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFF905848906838905848E0F0E0E0E0F0E0F0F0E0E0F0D0F0E0E0E0F0E0F0E0 +E0E0F0D0F0E0E0E0F0D0F0E0E0E0F0D0F0E0E0E0F0D0F0E0E0E0F0D0F0E0E0E0F0D0F0E0E0E0F0 +D0F0E0E0E0F0D0F0E0E0E0F0D0E0E0D0E0F0D0F0E0D0E0E0D0E0E0D0E0F0D0F0E0483428906848 +A06848000000282428484848787878FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF905838 +905848906838E0E0F0E0F0E0E0E0F0E0F0E0E0E0F0E0F0E0E0E0F0E0F0E0E0E0F0E0E0E0E0E0F0 +E0F0E0E0E0E0E0E0E0E0E0F0D0E0E0E0E0E0E0E0E0E0E0E0D0E0E0E0E0E0D0E0E0E0E0E0D0E0E0 +E0E0E0D0E0E0E0E0E0D0E0E0E0E0E0D0E0E0E0E0E0483418A05848A06838000000383438484848 +787878FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF905848906838905848E0F0F0E0E0F0 +D0F0E0E0E0F0E0F0E0E0E0F0D0F0E0E0E0F0D0F0E0E0E0F0D0F0E0E0E0F0D0F0E0E0E0F0D0F0E0 +E0E0F0D0F0E0E0E0F0D0E0E0E0E0F0D0F0E0E0E0F0D0E0E0D0E0F0D0E0E0D0E0E0D0E0E0D0E0F0 +D0E0E0D0E0E0D0E0E0483428906848A06848000000282428484848787878FFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFF906838A05848905838482428483418482428483418482428483418 +482428483418482428483418482428483418482428483418582428483428482428483418582428 +483428482428483418582428483428582428483418582428483428582428483418582428483428 +A06848A06848000000383438484848787878FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +905848906838905848906838905848906838906848906838905848906838A06848906838905848 +906848A06848906838905848906848A06848906848A06848906848A06848906848A06848906848 +A06848906848A06848906848A06848906848A06848906848A06848906848A06848000000282428 +484848787878FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD08C78D09C68A05848906838A05848 +906838A05848906838A05848906838A05848906838A05848906838A05848906838A05848906838 +A05848906838A05848A06838A05848906838A05848A06838A06848A06838A05848A06848A06848 +A06838A05848A06848A06848A06838A06848684828000000383438484848787878FFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF784838000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000 +000000000000000000283428383438484848787878FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF686868484848383438282428383438282428383438282428 +383438282428383438282428383438282428383438282428383438282428383438282428383438 +282428383438282428383438282428383438282428383438282428383438282428383438383438 +484848686868FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFF787878787878787878686868686868686868686868686868686868686868686868686868 +686868686868686868686868686868686868686868686868686868686868686868686868686868 +686868686868686868686868686868686868686868686868686868686868787878FFFFFFFFFFFF +FFFFFFFFFFFFFFFFFF + +end +%%PageTrailer +%%Trailer +%%EOF diff --git a/documentation/etc/images/clipboard.pdf b/documentation/etc/images/clipboard.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5424a7a2998f957c968e6aa3e7375d84df82f707 GIT binary patch literal 12127 zcmeHN&u`nv6{fXuV$;cP1GtD#Yzl7S1PahZqD0yBHpn4%vkcnoW}N^f5G)E>qD}4E zmRFV=ZcoLYebA*hAJn@K`U7&%u}2=-;{q)9R3Jcz09^#NP4;^;9E$qkAIWxais;d3 zIGi`%`{uoQe3=`Mmml0#?`VpwDg~v!`lWpLuAF~tt=l_F5iKin{^>W{wvu16n$|{r zUA}iuwzsO(k#36zcpvtdoc~>|x}!W(O7yt$g`8ii?`|~}HT5Xn8h(`IHf(f_1+UmU z_1#7VGod+|pRImrSDL6R`G=bYMQ6ifI{C+qdgY1TROXYGM|QPl-LJdKvjW;Q9T&}` zQQsbJtZy|Tb4StWX`pp>H&+#vw6T(!G2In2{=L1m-gK0*=(5vn*w&`}wG2VAJo>6^ z%50*`b@_9dlot1k)klxhh{Z*rP?|rrJX7*uMae(4-6mlL8B5S({ML4w8f zI2W zwRNY-s!R2adgIBqRk0P7FhXJXYt5aG}?jKRc+jsrw*WG=`HFA!TJF~<{VHBF7^qclU zx4qxRK)G3Z%r$h!q|!aL0??3fUq%tF*nJ(RwWZVrRP(6NGqj_~tMbhCZX0Wg%_3y%aIbRZ2Nz#!v>MAA1j8V0^EO@2q1mE#w*;;LB(_AuBkFE<&G>Y8;!F9K&%;(|OBk*2!sl7K;fo54u4V z7<0re!wOV-XiT=}a=2baatzqaML`%n4Zu!zHv9j&TCM=CWm{}PhZ1Z_hv;D6jrQD7 zdL2!3a!~^N)gX#md(dLbF&*^Gfi(9XegX?heht@o%g7RRLF-%tEn<7dFdRtd8lVZR zG6Nu^ji4*`0nM)C>aYz%GH_`I$iqloR`U8=m0>Ug;vpX^9r9uMQU)_1dz{S<=pX|f zg#P;=p*5Qg+?;Q=^f^6rCxR#pGML}nl|K4kCRAJp%>E~tNtj&xt0=ZV=pn`*M9@Ge zePp`X>|PEE&?Vj7bCbJ5PeJtG-~wy?S1_q-Sq5zqCTEy5IMzMZ_5i;D`~YZ`u*|%i zWMp9n{yCsY(NPS3BJz&|DLM=${UC@Xl7+_-L-%ELjr%kxJDD>4M0>9tN)y@HV<~he zIfNq&^aK9BB6i;OP)#nDDjF32sUZ>Jo->wX#bz7>GPq8T8u1ld*>j8OFwI}Vtoy$ z9D0Yk0E1Nq=N?Lv5XdYnlR$vGjd!v@EE&>x7~JDZe#bJUvQV1hVpHBtpyfXAB(!7~ zL{^#*2?!@RM+Eg~gj#1Hjx5R1Tc!d1CRnEvtWgkT;7I=y+`>BI5cxjH%LH_?KN3^X zWFK*GS@4-Agy@4L5-d2&0XJ|eSp;P?9JWe=8L}j7QbV9-0E&5T9R$7(ipks)WT&(M zUq7;0{0#i~b1FVlKNmeG0F_+$IZW9Up<_PzRm|9RnlrQi0mg=~TuEc`gV3K2 z&OjuVTE86$2;zI#uCDi>knZAZBwY*;3v6Bow}?{)<&<(HtfW7|%0ONM&KR&Vta%D6 zpu<7K5pb?16Xq3QNiFqD0$S)#CD20uGF+Swfbilb!j+Vf0U${OZ*SOwzKBs_YCcRE zx;YB2@^#5s90?9FqxgjW&q)wPr-)Sd+PS$bgkqmgTii4g7ef@N#P{jw-WTWs3RD9> z^sXUtM4X5~#c^Cr6?;5{a)~+N_Y;hI2#f;R^^@ovLP<+sP-yCgi8vPVU=AUKc@@E^ zj`tYN$j(Z@N^GRIhz|%W`2am;?I<9zCtVJ>>A9^e2BQesqlmw?-*VlS={O|t(3mid zV@GxoQDqV7y8VvxGURb36EjD_O~H>(%qDF40gbEaE!RPb-I78%jlWFj6d)P&nwEt+ zHGnqoR^g!MUaNi3#s&@BY?}rgTpDk}tpTyhAWRY+UmXOX2EfuHqXDo)oD9%~rlcPk z83gR1dD#JCgsA&%1l`@xyMmP!_?ThKG1^YwR#D`u7@$+=Xp!I}n4=g3b-WOI2OX55 zGzSW?NPrNrJ*}MC9DV{h0P7ktjsD&-f+_FFr(JOv@UO6E^${!pGT9t#=)V`Zt`ka^ zu{0q7u;>-!(3}8X_ac}je8=8|4_O(kYw{6P!fH>zdxbMB@RHpztW>5s4y6wfM7HTI zib8!voJ^su&VC0Jdfp*n`@xrhkN#+j1jcqhsUHfAMnYeVj%0@ZFBnWeh+pWuE>-vi z3mrnmu|ci?%bn9GT6-{=K;b)=2<8B-oZR!5J;Wnem4TRV-Gq-jQgS$A0%?-YQ~xFN zip*t^d!*|OYDs(_X1;6iQVNdPF7l?IJ;9>*9?j;@QrNf~eH&CM+U5kP7!d;{>Laam z3!un^U|HlTX>T~QG?`E3J%{V8CCl5>b+`xaAz;Zo_TNfib7HAq~!o@L+O-p(lW{U zrz$+3Eb?H(D{h>$6facxUuD=d-Xh0I%buegva)f~a-6grCoPfn87D18?y#3x9w#kD zqLMPPqCQSqj+2&jgzVI$B})trWi7?I*7&HVDo%~|r8dREPde0kuCtnttRH(;GtQ!Z z(y+c6ePC0hJJ}IhI#(K>(fl?#`}1m4Qdbp+Sxd?BRyB2UHUG5M+_05gWuvyeTDKb2 zTXa0vwwks2*0R;ao#l^<1+`qz3gu#{P%4$s;ZePM;ys)JuI^TFm^H_axjwSiYn88* z`8x}D^xKOHhSF{q%C`$e<#Wu;X*Rb%&gY*$e}1P%r)%+t-goMa^;@YkwQj>+lM9Nf z%Z22hGG8v2%F3FOv{9y-{wZ6%wlY%M18u5`Bf0}^#YHG-pslnp+^;mEpH{-!8hBPK zV`=rbl^5o*CI{Q};Wm8;2eR?=gEG*j56V!{h?IPv473%IIUi^%l}EHKq@HaytlEa% zU`NoO)c%Y!#yCs-aBHouu(gB3#w+zYPLlJ3#}Aj4XLof=EmzeAtE_8l<;r|{zNA&G z)k<|?u~ID*?8>}aT`R8^t+mCqf?BXGRnt{VvkE1vx>hV&_C4jt5Ag*z7^~4_OGZ`8 O+Jb!J#&17+ApZ{pTMDHB literal 0 HcmV?d00001 diff --git a/documentation/etc/images/clipboard.png b/documentation/etc/images/clipboard.png new file mode 100644 index 0000000000000000000000000000000000000000..aefb16daf0d07d5675ee0ea43afbc6512ee1d36b GIT binary patch literal 3105 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 literal 0 HcmV?d00001 diff --git a/documentation/etc/images/i-core.bb b/documentation/etc/images/i-core.bb new file mode 100644 index 00000000..3bd31e10 --- /dev/null +++ b/documentation/etc/images/i-core.bb @@ -0,0 +1 @@ +%%BoundingBox: 0 0 48 48 diff --git a/documentation/etc/images/i-core.eps b/documentation/etc/images/i-core.eps new file mode 100644 index 00000000..250d1dba --- /dev/null +++ b/documentation/etc/images/i-core.eps @@ -0,0 +1,456 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: (ImageMagick) +%%Title: (../images/i-core.eps) +%%CreationDate: (2012-04-20T17:48:52+02:00) +%%BoundingBox: 0 0 48 48 +%%HiResBoundingBox: 0 0 48 48 +%%DocumentData: Clean7Bit +%%LanguageLevel: 1 +%%Pages: 1 +%%EndComments + +%%BeginDefaults +%%EndDefaults + +%%BeginProlog +% +% Display a color image. The image is displayed in color on +% Postscript viewers or printers that support color, otherwise +% it is displayed as grayscale. +% +/DirectClassPacket +{ + % + % Get a DirectClass packet. + % + % Parameters: + % red. + % green. + % blue. + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/DirectClassImage +{ + % + % Display a DirectClass image. + % + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { DirectClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayDirectClassPacket } image + } ifelse +} bind def + +/GrayDirectClassPacket +{ + % + % Get a DirectClass packet; convert to grayscale. + % + % Parameters: + % red + % green + % blue + % length: number of pixels minus one of this color (optional). + % + currentfile color_packet readhexstring pop pop + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/GrayPseudoClassPacket +{ + % + % Get a PseudoClass packet; convert to grayscale. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + color_packet 0 get 0.299 mul + color_packet 1 get 0.587 mul add + color_packet 2 get 0.114 mul add + cvi + /gray_packet exch def + compression 0 eq + { + /number_pixels 1 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add def + } ifelse + 0 1 number_pixels 1 sub + { + pixels exch gray_packet put + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassPacket +{ + % + % Get a PseudoClass packet. + % + % Parameters: + % index: index into the colormap. + % length: number of pixels minus one of this color (optional). + % + currentfile byte readhexstring pop 0 get + /offset exch 3 mul def + /color_packet colormap offset 3 getinterval def + compression 0 eq + { + /number_pixels 3 def + } + { + currentfile byte readhexstring pop 0 get + /number_pixels exch 1 add 3 mul def + } ifelse + 0 3 number_pixels 1 sub + { + pixels exch color_packet putinterval + } for + pixels 0 number_pixels getinterval +} bind def + +/PseudoClassImage +{ + % + % Display a PseudoClass image. + % + % Parameters: + % class: 0-PseudoClass or 1-Grayscale. + % + currentfile buffer readline pop + token pop /class exch def pop + class 0 gt + { + currentfile buffer readline pop + token pop /depth exch def pop + /grays columns 8 add depth sub depth mul 8 idiv string def + columns rows depth + [ + columns 0 0 + rows neg 0 rows + ] + { currentfile grays readhexstring pop } image + } + { + % + % Parameters: + % colors: number of colors in the colormap. + % colormap: red, green, blue color packets. + % + currentfile buffer readline pop + token pop /colors exch def pop + /colors colors 3 mul def + /colormap colors string def + currentfile colormap readhexstring pop pop + systemdict /colorimage known + { + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { PseudoClassPacket } false 3 colorimage + } + { + % + % No colorimage operator; convert to grayscale. + % + columns rows 8 + [ + columns 0 0 + rows neg 0 rows + ] + { GrayPseudoClassPacket } image + } ifelse + } ifelse +} bind def + +/DisplayImage +{ + % + % Display a DirectClass or PseudoClass image. + % + % Parameters: + % x & y translation. + % x & y scale. + % label pointsize. + % image label. + % image columns & rows. + % class: 0-DirectClass or 1-PseudoClass. + % compression: 0-none or 1-RunlengthEncoded. + % hex color packets. + % + gsave + /buffer 512 string def + /byte 1 string def + /color_packet 3 string def + /pixels 768 string def + + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + x y translate + currentfile buffer readline pop + token pop /x exch def + token pop /y exch def pop + currentfile buffer readline pop + token pop /pointsize exch def pop + /Times-Roman findfont pointsize scalefont setfont + x y scale + currentfile buffer readline pop + token pop /columns exch def + token pop /rows exch def pop + currentfile buffer readline pop + token pop /class exch def pop + currentfile buffer readline pop + token pop /compression exch def pop + class 0 gt { PseudoClassImage } { DirectClassImage } ifelse +} bind def +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 48 48 +userdict begin +DisplayImage +0 0 +48 48 +12.000000 +48 48 +0 +0 +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000 +000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000000000 +000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000FFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000 +000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFF000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000 +000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFF000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFF000000A39121F5E78AEFD532C5B029A391216E6216000000FFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFFFFFF00000092821A +000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000A39121 +F7EEAEEFD532C5B029A391216E6216000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFF000000F2D72C00000000000092821AF2D72C000000FFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000A39121F5E78AEFD532C5B029A39121 +5B5112000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +F2D72CF2D72C5A5010F2D72CF2D72C000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +0000000A09004C450B887A1BCFC36CEADD8BE9CF38E5CA38D1BA31B19C27807319453E0A0A0900 +000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000F2D72CF2D72CF2D72C +92821A000000000000FFFFFFFFFFFFFFFFFFFFFFFF0000002421037E721ADAC036EDD33AF4D83A +F5DE5BF3DD5AEED336EBD136E8CC35E5CA34E2C834DBC033CBB0317063171E1C02000000FFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFF00000092821AF2D72CF2D72CF2D72CF2D72CF2D72CF2D72C000000 +FFFFFFFFFFFF000000746817D9C135E9CF38F5DA38F8DC38F6DB37F5DA35F3D834F2D634EFD532 +EDD231E9CE32E6CA32E4C932E0C433D7BC33CBB033605513000000FFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +F2D72CF2D72CF2D72CF2D72CF2D72C000000000000000000FFFFFF000000242204AF9C29EAD039 +F2D738F9DE36FADE36F8DD35F7DD32F7DB31F5DB2FF4DA2FF2D72FF0D52FEDD230EBCF30E9CC30 +E6C932E1C533DCBF33CDB2338F7D211C1A02000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000F2D72CF2D72C000000000000F2D72C +F2D72C000000FFFFFFFFFFFF000000302C06CCB432F2D739FADD39FADF36FADF33FADE32FADF30 +F9DE2DF8DD2DF7DD2CF6DB2CF4DA2CF2D72CF0D52DEED32CECD02EE8CB2FE3C630E0C331DABC32 +CDAF31A38B28221F03000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFF000000000000FFFFFFFFFFFF000000F2D72CF2D72C000000FFFFFF +242004CAB332F3D539F9DD37FADE35FADE32FADF30FADF2EFAE02CF9DF2AF9DF29F8DE29F8DD29 +F6DC28F4DA29F3D82AF0D52AEFD22BEBCF2CE6C92DE3C630DEC030D3B630B79B2D917C24171502 +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFF000000F2D72CF2D72C000000000000AE9A28F1D438F9DD37FADD34 +FADE32FADE2FFADF2CFAE02AFAE029F9DF27F9DF26F9DF25F8DE25F7DE25F6DC26B8A41DB6A21D +F1D529EED12AEACD2BE6C92CE0C22EDBBB2FCAAC2EB1952C73601C000000FFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFF000000F2D72C000000786B18F1D33AF8DB38F9DC35F9DD31F9DD2EFADF2B3B3509746812 +FAE026F9E1249C8D15000000F9E023F8DE23F7DD235F550D1A1704C8B11FEFD327C3AB21685B13 +C7AD26DEBF2DD6B62FC2A42DA38827463C0F000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000252104 +ECCE3AF8D93AF8DA36F9DB32F9DC2FF9DE2BF9DE29CBB51F0D0C029B8B1551490A161402A59515 +FAE120F9DF20F8DE21CCB61C1412020E0C0260550F040400151203C9AD24DFC02CDAB92DCFAE2E +B9992B957A25121001FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000088781DF4D43BF7D837F8DA32F8DB2F +F8DC2CF9DD29F9DE26F9DF244B430A040400161402C1AE17FAE11FFAE21FF9E120F8DF21F8DD20 +BDA91A0000000000004C430CECCE27E6C829E2C22ADABA2CD3B22EC3A22B987D2440350E000000 +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFF0A0900E1C237F7D639F7D835F8D931F8DB2DF8DC2AF9DD27F9DE25665B0E +0000002A2505000000A59513FAE324FAE32AF9E22AF7DF279B8B15090801060500000000121002 +DEC123E8C927E2C228DCBB29D3B02BC5A32BA48626745E1D070600FFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49410C +E5C537F6D537F7D732F7D92FF7DA2BF8DB28F8DD25F8DE23373207CBB619FAE11D766B0D000000 +CCBA27FAE63EF3E041ECD8397A6E14403908E7CD1EBAA3180C0A01231E05E9CA27E2C228DCBC28 +D3B12ACBA92BAE8F278369201F1A05FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000080701BE9C837F5D435F6D631F6D82D +F7DA2AF7DB27F8DD23F8DE22F9DF1FF9E01DFAE11CFAE21CCBB925ECDA44F8E75EEBDC5DDBCB49 +D6C230E1C920F0D51EEBD01E7768101D1904917D16E2C227DCBB27D3B128CAA729B998298D7121 +362B0C000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFF000000A68E26EAC735F4D333F5D530F6D82CF6D829F7DA26F8DC23F8DE21 +F9DF1FF9E01DFAE11BFAE323FBE84FFCED77F8ED8AEADF82D4C85FC4B335C7B21ED4BC1ACAB31A +D8BD1EC6AD1CCAAE1EE2C125DCBA27D2B126C8A427B99727957622504013000000FFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000 +AC9228DAB931EFCC31F4D430F5D72BF6D828F6D925F7DB23F8DD20F9DF1DF9DF1CF7DE1DF6E240 +FCEE7EFDF3A8FCF4B5F1E8A3DACE75BCAC39A090189D8B139E8B14C3AA1ADCBF1FE3C321E1C025 +DAB826D1AF26C6A327B89526967822604B17000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000BF9F2EE0BE32F0CE30F3D22E +F3D42BF5D628F6D825F7DB22F8DC1FF8DE1EF7DD1BEFD929E7D75CF8EE9FFDF7C6FDF8CCF8F1B7 +E3D77FC0B03A8677125C520B6C5E0DB09917D6B91EE1C122DEBE24D9B525CFAB25C3A126B49224 +9A792272591B000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFF000000BFA02DDEBC31EECA2FF2D02DF2D22AF4D427F5D724F6D923 +F7DB20F7DC1EF7DC1DEBD42FDDCF66F3EAA8FBF6CDFCF7CFFCF4B5EFE17CC6B4347F710F53490A +4F450A917E13D3B61EE0BF21DDBB23D6B324CBA824C09C24B08D2496762172571A000000FFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +000000AA8E27D1B02EE8C52FEFCD2CF1CF2AF3D226F4D524F5D722F6D920F6DA1EF6DB1DEBD42F +D8CA5FE8DE96ECE6B3F0E9B4F6EB9AE9D95F92831B64580B6E600D61540C9F8A15D7B91DE0BF20 +DAB722D2AE23C8A524BD9922AB88238F6E1F5D4715000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000967E20DBB631E9C42E +ECC92DEECC29EFCF27F2D225F3D422F4D621F5D81EF6DA1DEFD62BDDCA48CCC067B6AD6EB9B06B +C2B4569A8B25594F0C6F610DA79114A18C15C9AC1AE0BF1FDFBC21D8B622CFAB23C39F22B79223 +A5812181631D44340E000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000006A5A14CDAB2DE2BD2EE8C42CEBC829EDCC26EFCE23 +F0D122F2D420F4D51FF4D71EF5D923F0D834DFCC44BFB045A49636A2922492801387770FBEA716 +DCBE1AD9BB1BE3C11FE1BF20DBB820D2AF21C9A522BF9B22AF8A2197741F775A1A32260A000000 +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFF342D08C8A52CDFB92CE4BF2BE6C328E9C826EBCA24EECD22F0D020F1D31EE6CA1C +907F14665C145E551B61581C564E1450470C4E44085449099C8712BAA016E4C21EDCBA1EDDBA20 +D6B420CFAA21C49F20B89320A984208B6B1D7155181A1503FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF070700B89528 +DCB42CDFB92BE2BD29E5C127E8C524EAC822E9C820AC9617050400090503371E153E25193F2717 +261E0931200C472B1345281437230E3D300A9D8614BA9C19D9B520D0AC20C8A320BD9720B28D1F +9F7A1D7F601A6E5117060500FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000604F12C49F29DAB22ADDB828E0BC27 +E2BF25E6C221CFB11D171303000000452914A84B44AE4A4AA547474E2222783333A24444A34842 +7E3E2F39270D010100907714CCA91EC9A61FC19C20B8921FA9841F906D1C745617382A09000000 +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFF181602A18222C8A328D7B129DAB526DCB823D2B120282206000000 +090601AC4848C45353CA5555C85454863C3CA94949C75454BF5151AC4949622929261F052D2506 +987C17BB971DB8921EAD871E99761C7B5C186F51170D0B00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +0000004D3F0DB49123CFA827D3AE26D7B2259F84190101001714033A290CBA4E4ED05555D55A5A +B94C4C7C3939B34949C85353B54B4B9C43437D38380E0C020302005D4A0EA5821AAE881D9E7A1B +795B166A4D14312608000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000846A19BC9625 +CCA425D1AA253D320A0000000F0C02722F2FCD5555DD5C5CD55A5AA94848924040C55151CA5555 +B74C4C9841417436360706011D17041410038E6F17A07B1B816216664B134E390D000000FFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B180198761FB89124CAA1259075180A0801 +140D03823535D35757DB5C5CD65A5AB44C4CAD4848CD5555C75454B54B4B9340406C3333201606 +000000070501765A137F6015644A12583F100F0D00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFF000000201C038A6C1BAF8821BF96226E5812000000CE5555D45959D85B5B +D45959C55252C14F4FCC5454BF4F4FAA4848873C3C643131050300251D067356127E5F15654B11 +563D0F131001000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +000000161401755D15A47F1EB98F21C66F3ECD5555CE5555CF5555D15656CD5454C85252C35151 +B54B4B9B41417837375E2E2E775813926E18795A14664A1146330B0F0D00000000FFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000004F400B +A67F1EBC6D38C35050C35151C45151C45252BF5050BB4E4EB04A4A9C4343853A3A6A3333714027 +8764167054126146102B2105000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000001714015B480DB55444B84E4E +B74B4BB14B4BAD4848A144449140407D39396C33336B392B76571263480F3125060F0D00000000 +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000009080059311B894430A14343913E3E823939 +7235357042235F40163A2D071C1802060600000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000000000000 +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF +FFFFFFFFFFFFFFFFFF + +end +%%PageTrailer +%%Trailer +%%EOF diff --git a/documentation/etc/images/i-core.pdf b/documentation/etc/images/i-core.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2bb22c3bb31f218ae5c98d4bc16638576be5b014 GIT binary patch literal 8043 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 literal 0 HcmV?d00001 diff --git a/documentation/etc/socstyle.tex b/documentation/etc/socstyle.tex new file mode 100644 index 00000000..5cf8f487 --- /dev/null +++ b/documentation/etc/socstyle.tex @@ -0,0 +1,89 @@ + + \usepackage[default,osfigures,scale=0.95]{opensans} + \usepackage{xspace} + \usepackage{fancyhdr} +%\usepackage[dvipdfm]{graphicx} + \usepackage{graphicx} + \usepackage{enumitem} + \usepackage[sf,bf]{titlesec} + \usepackage{titletoc} + \usepackage[colorlinks=true,linkcolor=blue,urlcolor=blue,dvipdfm]{hyperref} + \usepackage[paper=a4paper,headheight=30pt,tmargin=1.5in,bmargin=1in]{geometry} +%\usepackage{layouts} + + \urlstyle{tt} % normal text font (alternatives: same, tt, rm, sf) + \renewlist{itemize}{itemize}{9} + \setlist[itemize]{label=\textbullet} + +% The LaTeX Companion -- p. 204. +% Miniature display of the page layout. +%\newcommand{\showpage}{% +% \setlayoutscale{0.65}\setlabelfont{\tiny}% +% \printheadingsfalse\printparametersfalse% +% \currentpage\pagedesign% +%} + + \titlecontents{section}[0pc] + {\sffamily\bfseries} % above code. + {\contentslabel{1pc}} % numbered entry format. + {} % numberless entry format. + {\titlerule*[8pt]{.}\textsc{\textbf{{\contentspage}}}} % page format. + \titlecontents{subsection}[0pc] + {\sffamily} % above code. + {\contentslabel{2pc}} % numbered entry format. + {} % numberless entry format. + {\titlerule*[8pt]{.}\textsc{\textbf{{\contentspage}}}} % page format. + \titlecontents{subsubsection}[1pc] + {\sffamily} % above code. + {\contentslabel{2pc}} % numbered entry format. + {} % numberless entry format. + {\titlerule*[8pt]{.}\textsc{\textbf{{\contentspage}}}} % page format. + + \newcommand{\key}[1]{\raisebox{-0.5\baselineskip}{\rule{0pt}{1.5\baselineskip}}\fbox{\textsf{#1}}} + + \newcommand{\DUroleul}[1]{\underline{#1}\xspace} + \newcommand{\DUrolesc}[1]{\textsc{#1}\xspace} + \newcommand{\DUrolecb}[1]{\textbf{\texttt{#1}}\xspace} + \newcommand{\DUrolefboxtt}[1]{\fbox{\texttt{#1}}\xspace} + + \newcommand{\DUtitlenote}[1]{\noindent\textbf{#1}\smallskip} + + \newcommand{\DUadmonitionnote}[1]{% + \begin{center} + \sffamily + \begin{array}[t]{m{1cm}!{\vrule width 1pt}m{.90\textwidth}} + \raisebox{0.0cm}{\includegraphics[scale=0.5,natwidth=48,natheight=48]{./images/clipboard.pdf}} & + \begin{minipage}[t]{.85\textwidth} #1 + \end{minipage} \\ + \end{array} + \end{center} + } + + \newcommand{\DUtitleerror}[1]{\noindent\textbf{\color{red}#1}\smallskip} + + \newcommand{\DUadmonitionerror}[1]{% + \begin{center} + \sffamily + \begin{array}[t]{m{1cm}!{\vrule width 1pt}m{.90\textwidth}} + \raisebox{0.0cm}{\includegraphics[scale=0.5,natwidth=48,natheight=48]{./images/i-core.pdf}} & + \begin{minipage}[t]{.85\textwidth} #1 + \end{minipage} \\ + \end{array} + \end{center} + } + + \newcommand{\UPMC} {\textsc{upmc}\xspace} + \newcommand{\LIP} {\textsc{lip6}\xspace} + \newcommand{\SoC} {\textsc{S}o\textsc{C}\xspace} + + \renewcommand{\headrulewidth}{0.2mm} + \renewcommand{\footrulewidth}{0.2mm} + \renewcommand{\sectionmark}[1]{\markboth{\thesection\ #1}{\thesection\ #1}} + \renewcommand{\subsectionmark}[1]{} + \lhead[]{Documentation \SoC} + \rhead[]{March 2015} + \lfoot[]{\UPMC/\LIP/\SoC} + \rfoot[]{\thepage} + \cfoot[]{} + + \pagestyle{fancy} From c339e5c9e33f074f4936f751418ab702cf169d76 Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Tue, 11 Jul 2017 17:52:58 +0200 Subject: [PATCH 22/30] Check for any version of Python 2, instead of 2.7. --- anabatic/CMakeLists.txt | 2 +- crlcore/CMakeLists.txt | 2 +- cumulus/CMakeLists.txt | 2 +- etesian/CMakeLists.txt | 2 +- hurricane/CMakeLists.txt | 2 +- ispd/CMakeLists.txt | 2 +- katabatic/CMakeLists.txt | 2 +- katana/CMakeLists.txt | 2 +- kite/CMakeLists.txt | 2 +- mauka/CMakeLists.txt | 2 +- metis/CMakeLists.txt | 2 +- nimbus/CMakeLists.txt | 2 +- stratus1/CMakeLists.txt | 2 +- unicorn/CMakeLists.txt | 2 +- vlsisapd/CMakeLists.txt | 2 +- 15 files changed, 15 insertions(+), 15 deletions(-) diff --git a/anabatic/CMakeLists.txt b/anabatic/CMakeLists.txt index 4187e409..e3fd6956 100644 --- a/anabatic/CMakeLists.txt +++ b/anabatic/CMakeLists.txt @@ -17,7 +17,7 @@ setup_boost() setup_qt() - find_package(PythonLibs REQUIRED) + find_package(PythonLibs 2 REQUIRED) find_package(PythonSitePackages REQUIRED) find_package(VLSISAPD REQUIRED) find_package(HURRICANE REQUIRED) diff --git a/crlcore/CMakeLists.txt b/crlcore/CMakeLists.txt index 283684bb..6e2f1e68 100644 --- a/crlcore/CMakeLists.txt +++ b/crlcore/CMakeLists.txt @@ -21,7 +21,7 @@ setup_qt() find_package(LibXml2 REQUIRED) - find_package(PythonLibs 2.7 REQUIRED) + find_package(PythonLibs 2 REQUIRED) find_package(PythonSitePackages REQUIRED) find_package(BISON REQUIRED) find_package(FLEX REQUIRED) diff --git a/cumulus/CMakeLists.txt b/cumulus/CMakeLists.txt index 2bf8c2ed..c82782ba 100644 --- a/cumulus/CMakeLists.txt +++ b/cumulus/CMakeLists.txt @@ -12,7 +12,7 @@ set_lib_link_mode() setup_sysconfdir("${CMAKE_INSTALL_PREFIX}") - find_package(PythonLibs 2.7 REQUIRED) + find_package(PythonLibs 2 REQUIRED) find_package(PythonSitePackages REQUIRED) find_package(VLSISAPD REQUIRED) find_package(HURRICANE REQUIRED) diff --git a/etesian/CMakeLists.txt b/etesian/CMakeLists.txt index ccab5323..a0774765 100644 --- a/etesian/CMakeLists.txt +++ b/etesian/CMakeLists.txt @@ -16,7 +16,7 @@ set_lib_link_mode() setup_boost(program_options python regex) - find_package(PythonLibs 2.7 REQUIRED) + find_package(PythonLibs 2 REQUIRED) find_package(PythonSitePackages REQUIRED) find_package(VLSISAPD REQUIRED) find_package(HURRICANE REQUIRED) diff --git a/hurricane/CMakeLists.txt b/hurricane/CMakeLists.txt index b412ea6f..368368bc 100644 --- a/hurricane/CMakeLists.txt +++ b/hurricane/CMakeLists.txt @@ -21,7 +21,7 @@ find_package(BZip2 REQUIRED) find_package(BISON REQUIRED) find_package(FLEX REQUIRED) - find_package(PythonLibs 2.7 REQUIRED) + find_package(PythonLibs 2 REQUIRED) find_package(PythonSitePackages REQUIRED) find_package(VLSISAPD REQUIRED) find_package(Libexecinfo REQUIRED) diff --git a/ispd/CMakeLists.txt b/ispd/CMakeLists.txt index b5e2a90c..801f1f7d 100644 --- a/ispd/CMakeLists.txt +++ b/ispd/CMakeLists.txt @@ -17,7 +17,7 @@ find_package(LibXml2 REQUIRED) set(QT_USE_QTXML "true") find_package(Qt4 REQUIRED) - find_package(PythonLibs 2.7 REQUIRED) + find_package(PythonLibs 2 REQUIRED) find_package(PythonSitePackages REQUIRED) find_package(VLSISAPD REQUIRED) find_package(HURRICANE REQUIRED) diff --git a/katabatic/CMakeLists.txt b/katabatic/CMakeLists.txt index 70f328cd..2b180ab3 100644 --- a/katabatic/CMakeLists.txt +++ b/katabatic/CMakeLists.txt @@ -17,7 +17,7 @@ setup_boost(program_options filesystem python regex) setup_qt() - find_package(PythonLibs 2.7 REQUIRED) + find_package(PythonLibs 2 REQUIRED) find_package(PythonSitePackages REQUIRED) find_package(VLSISAPD REQUIRED) find_package(HURRICANE REQUIRED) diff --git a/katana/CMakeLists.txt b/katana/CMakeLists.txt index 5cd3617c..bcbf4e0e 100644 --- a/katana/CMakeLists.txt +++ b/katana/CMakeLists.txt @@ -19,7 +19,7 @@ find_package(Libexecinfo REQUIRED) find_package(LibXml2 REQUIRED) - find_package(PythonLibs REQUIRED) + find_package(PythonLibs 2 REQUIRED) find_package(PythonSitePackages REQUIRED) find_package(LEFDEF REQUIRED) find_package(VLSISAPD REQUIRED) diff --git a/kite/CMakeLists.txt b/kite/CMakeLists.txt index 5ba6993d..68fafdb8 100644 --- a/kite/CMakeLists.txt +++ b/kite/CMakeLists.txt @@ -18,7 +18,7 @@ setup_qt() find_package(LibXml2 REQUIRED) - find_package(PythonLibs 2.7 REQUIRED) + find_package(PythonLibs 2 REQUIRED) find_package(PythonSitePackages REQUIRED) find_package(VLSISAPD REQUIRED) find_package(LEFDEF REQUIRED) diff --git a/mauka/CMakeLists.txt b/mauka/CMakeLists.txt index 47b944b6..d9b1c259 100644 --- a/mauka/CMakeLists.txt +++ b/mauka/CMakeLists.txt @@ -15,7 +15,7 @@ setup_boost(program_options filesystem regex python) setup_qt() - find_package(PythonLibs 2.7 REQUIRED) + find_package(PythonLibs 2 REQUIRED) find_package(PythonSitePackages REQUIRED) find_package(VLSISAPD REQUIRED) find_package(HURRICANE REQUIRED) diff --git a/metis/CMakeLists.txt b/metis/CMakeLists.txt index bc10d065..55eb8c00 100644 --- a/metis/CMakeLists.txt +++ b/metis/CMakeLists.txt @@ -14,7 +14,7 @@ set_lib_link_mode() setup_boost() - find_package(PythonLibs 2.7 REQUIRED) + find_package(PythonLibs 2 REQUIRED) find_package(PythonSitePackages REQUIRED) find_package(VLSISAPD REQUIRED) find_package(HURRICANE REQUIRED) diff --git a/nimbus/CMakeLists.txt b/nimbus/CMakeLists.txt index 6f0d7764..aeb12c41 100644 --- a/nimbus/CMakeLists.txt +++ b/nimbus/CMakeLists.txt @@ -14,7 +14,7 @@ setup_boost(program_options filesystem python regex) setup_qt() - find_package(PythonLibs 2.7 REQUIRED) + find_package(PythonLibs 2 REQUIRED) find_package(PythonSitePackages REQUIRED) find_package(VLSISAPD REQUIRED) find_package(HURRICANE REQUIRED) diff --git a/stratus1/CMakeLists.txt b/stratus1/CMakeLists.txt index aac721ee..6685cdeb 100644 --- a/stratus1/CMakeLists.txt +++ b/stratus1/CMakeLists.txt @@ -17,7 +17,7 @@ set_lib_link_mode() setup_sysconfdir("${CMAKE_INSTALL_PREFIX}") - find_package(PythonLibs 2.7 REQUIRED) + find_package(PythonLibs 2 REQUIRED) find_package(PythonSitePackages REQUIRED) find_package(VLSISAPD REQUIRED) find_package(HURRICANE REQUIRED) diff --git a/unicorn/CMakeLists.txt b/unicorn/CMakeLists.txt index cd53b09b..d6f3bfce 100644 --- a/unicorn/CMakeLists.txt +++ b/unicorn/CMakeLists.txt @@ -17,7 +17,7 @@ find_package(Libbfd) find_package(LibXml2 REQUIRED) - find_package(PythonLibs 2.7 REQUIRED) + find_package(PythonLibs 2 REQUIRED) find_package(PythonSitePackages REQUIRED) find_package(LEFDEF REQUIRED) find_package(COLOQUINTE) diff --git a/vlsisapd/CMakeLists.txt b/vlsisapd/CMakeLists.txt index 61fd8bda..22bc29c1 100644 --- a/vlsisapd/CMakeLists.txt +++ b/vlsisapd/CMakeLists.txt @@ -16,7 +16,7 @@ find_package(LibXml2 REQUIRED) find_package(PythonSitePackages REQUIRED) - find_package(PythonLibs 2.7 REQUIRED) + find_package(PythonLibs 2 REQUIRED) find_package(BISON REQUIRED) find_package(FLEX REQUIRED) find_package(Doxygen) From f32147efe94e484d49513c99263d4becacafd2d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marie-Minerve=20Lou=C3=ABrat?= Date: Wed, 12 Jul 2017 18:29:02 +0200 Subject: [PATCH 23/30] Changing unsignedlong by uint64_t --- katana/src/katana/Configuration.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/katana/src/katana/Configuration.h b/katana/src/katana/Configuration.h index 0c68480b..e962e2c6 100644 --- a/katana/src/katana/Configuration.h +++ b/katana/src/katana/Configuration.h @@ -65,7 +65,7 @@ namespace Katana { inline Anabatic::Configuration* base (); inline const Anabatic::Configuration* base () const; inline PostEventCb_t& getPostEventCb (); - inline unsigned long getEventsLimit () const; + inline uint64_t getEventsLimit () const; inline uint32_t getRipupCost () const; uint32_t getRipupLimit ( uint32_t type ) const; inline uint32_t getHTracksReservedLocal () const; @@ -109,7 +109,7 @@ namespace Katana { inline uint32_t Configuration::getVTracksReservedLocal () const { return _vTracksReservedLocal; } inline void Configuration::setRipupCost ( uint32_t cost ) { _ripupCost = cost; } inline void Configuration::setPostEventCb ( PostEventCb_t cb ) { _postEventCb = cb; } - inline void Configuration::setEventsLimit ( unsigned long limit ) { _eventsLimit = limit; } + inline void Configuration::setEventsLimit ( uint64_t limit ) { _eventsLimit = limit; } inline bool Configuration::useClockTree () const { return _flags & UseClockTree; } inline bool Configuration::profileEventCosts () const { return _profileEventCosts; } inline void Configuration::setFlags ( unsigned int flags ) { _flags |= flags; } From 95d1b5364688cc97bc4289d374b172051427ade3 Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Sat, 15 Jul 2017 17:35:02 +0200 Subject: [PATCH 24/30] Complete hoverhaul of the documentation to Sphinx. * New: In documentation, reorganise all the various documents into one Sphinx coherent one. The index also provide a link toward the Doxygen generated doc (C++ APIs) and the venerable LaTeX2HTML ones (for Stratus). This will make easier all future extensions to the doc corpus. The generated documentation is commited into Git so a new user can use it directly after cloning the repository. The HTML doc is truly generated by Sphinx, but the pdf one is created rst2latex. The Sphinx pdf writer is buggy when a "tabular" contain a multicol and a multirow in the same area of the table. rst2latex handles it correctly. We use a theme borrowed for Read The Doc (half of it). It seems that some Javascripts are not working correctly, namely the folding of the navigation sub-menus and the index generation and search mode. --- README.rst | 2 +- bootstrap/cmake_modules/CMakeLists.txt | 1 + bootstrap/cmake_modules/FindSphinx.cmake | 12 + documentation/CMakeLists.txt | 86 +- documentation/Contents.rst | 20 + documentation/CrlCore/CrlCore.rst | 11 + documentation/DpGen/DpGen.rst | 11 + documentation/Hurricane/Hurricane.rst | 11 + documentation/Makefile | 153 + documentation/Patterns/Patterns.rst | 11 + documentation/PythonCpp/CMakeLists.txt | 39 - documentation/PythonCpp/Configuration.rst | 42 + documentation/PythonCpp/DBoHierarchy.rst | 439 ++ documentation/PythonCpp/DBoStandalone.rst | 395 ++ documentation/PythonCpp/DbU.rst | 67 + documentation/PythonCpp/Introduction.rst | 185 + documentation/PythonCpp/Name.rst | 9 + documentation/PythonCpp/NonDBo.rst | 171 + documentation/PythonCpp/PythonCpp.pdf | Bin 171320 -> 171733 bytes documentation/PythonCpp/PythonCpp.rst | 1296 ------ documentation/PythonCpp/index.rst | 23 + documentation/PythonCpp/pdfHeader.rst | 15 + documentation/RDS/HTML_defs.rst | 22 - documentation/RDS/LaTeX_defs.rst | 25 - documentation/RDS/RDS.html | 1286 ------ documentation/RDS/RDS_HTML.rst | 5 - documentation/RDS/RDS_LaTeX.rst | 4 - documentation/RDS/{RDS.rst => RDSpage.rst} | 64 +- documentation/RDS/SoC.css | 750 ---- .../RDS/images/RDS_LCW-eps-converted-to.pdf | Bin 5101 -> 0 bytes documentation/RDS/images/RDS_LCW.eps | 238 - .../RDS/images/RDS_VW-eps-converted-to.pdf | Bin 5082 -> 0 bytes documentation/RDS/images/RDS_VW.eps | 243 -- .../RDS/images/SegmentOrientation.eps | 283 -- documentation/RDS/images/bigvia-1.eps | 259 -- documentation/RDS/images/bigvia-2.eps | 184 - .../RDS/images/clipboard-eps-converted-to.pdf | Bin 4504 -> 0 bytes documentation/RDS/index.rst | 26 + documentation/RDS/pdfHeader.rst | 27 + documentation/RDS/socstyle.tex | 86 - documentation/Stratus/Stratus.rst | 11 + documentation/Unicorn/Unicorn.rst | 11 + documentation/UsersGuide/CMakeLists.txt | 36 - documentation/UsersGuide/Configuration.rst | 342 ++ documentation/UsersGuide/HTML_defs.rst | 49 - documentation/UsersGuide/Installation.rst | 230 + documentation/UsersGuide/LaTeX_defs.rst | 50 - documentation/UsersGuide/LicenseCredits.rst | 55 + documentation/UsersGuide/Pygments.css | 41 - documentation/UsersGuide/Releases.rst | 102 + documentation/UsersGuide/ScriptsPlugins.rst | 332 ++ documentation/UsersGuide/SoC.css | 796 ---- documentation/UsersGuide/UsersGuide.html | 2096 --------- documentation/UsersGuide/UsersGuide.pdf | 2494 ----------- documentation/UsersGuide/UsersGuide.rst | 2007 --------- documentation/UsersGuide/UsersGuide_HTML.rst | 5 - documentation/UsersGuide/UsersGuide_LaTeX.rst | 5 - documentation/UsersGuide/ViewerTools.rst | 868 ++++ documentation/UsersGuide/WWW_defs.rst | 70 - .../images/Controller-1-eps-converted-to.pdf | Bin 0 -> 133325 bytes .../Controller-Filter-1-eps-converted-to.pdf | Bin 0 -> 62372 bytes ...ontroller-Inspector-1-eps-converted-to.pdf | Bin 0 -> 64026 bytes ...ontroller-Inspector-2-eps-converted-to.pdf | Bin 0 -> 99455 bytes ...ontroller-Inspector-3-eps-converted-to.pdf | Bin 0 -> 67106 bytes ...ontroller-LayersGos-1-eps-converted-to.pdf | Bin 0 -> 131861 bytes .../Controller-Look-1-eps-converted-to.pdf | Bin 0 -> 85802 bytes .../Controller-Netlist-1-eps-converted-to.pdf | Bin 0 -> 82902 bytes ...ontroller-Selection-1-eps-converted-to.pdf | Bin 0 -> 144027 bytes ...Controller-Settings-1-eps-converted-to.pdf | Bin 0 -> 59039 bytes .../Coriolis-Soft-Schema-eps-converted-to.pdf | Bin 0 -> 7797 bytes .../images/Viewer-1-eps-converted-to.pdf | Bin 0 -> 16095 bytes .../Viewer-Netlist-1-eps-converted-to.pdf | Bin 0 -> 26753 bytes .../chip-structure-1-eps-converted-to.pdf | Bin 0 -> 13414 bytes .../images/etesian-1-eps-converted-to.pdf | Bin 0 -> 12110 bytes documentation/UsersGuide/index.rst | 21 + documentation/UsersGuide/pdfHeader.rst | 15 + documentation/UsersGuide/socstyle.tex | 89 - documentation/Viewer/Viewer.rst | 11 + .../_build/doctrees/Contents.doctree | Bin 0 -> 3742 bytes .../_build/doctrees/CrlCore/CrlCore.doctree | Bin 0 -> 56452 bytes .../_build/doctrees/DpGen/DpGen.doctree | Bin 0 -> 56540 bytes .../doctrees/Hurricane/Hurricane.doctree | Bin 0 -> 56501 bytes .../_build/doctrees/Patterns/Patterns.doctree | Bin 0 -> 56578 bytes .../doctrees/PythonCpp/Configuration.doctree | Bin 0 -> 62665 bytes .../doctrees/PythonCpp/DBoHierarchy.doctree | Bin 0 -> 108832 bytes .../doctrees/PythonCpp/DBoStandalone.doctree | Bin 0 -> 129422 bytes .../_build/doctrees/PythonCpp/DbU.doctree | Bin 0 -> 62452 bytes .../doctrees/PythonCpp/Introduction.doctree | Bin 0 -> 88117 bytes .../_build/doctrees/PythonCpp/Name.doctree | Bin 0 -> 55863 bytes .../_build/doctrees/PythonCpp/NonDBo.doctree | Bin 0 -> 76835 bytes .../_build/doctrees/PythonCpp/index.doctree | Bin 0 -> 57281 bytes .../_build/doctrees/RDS/RDSpage.doctree | Bin 0 -> 166187 bytes .../_build/doctrees/RDS/index.doctree | Bin 0 -> 57410 bytes .../_build/doctrees/Stratus/Stratus.doctree | Bin 0 -> 56479 bytes .../_build/doctrees/Unicorn/Unicorn.doctree | Bin 0 -> 56464 bytes .../doctrees/UsersGuide/Configuration.doctree | Bin 0 -> 127265 bytes .../doctrees/UsersGuide/Installation.doctree | Bin 0 -> 109146 bytes .../UsersGuide/LicenseCredits.doctree | Bin 0 -> 62096 bytes .../doctrees/UsersGuide/Releases.doctree | Bin 0 -> 82831 bytes .../UsersGuide/ScriptsPlugins.doctree | Bin 0 -> 134801 bytes .../doctrees/UsersGuide/ViewerTools.doctree | Bin 0 -> 283447 bytes .../_build/doctrees/UsersGuide/index.doctree | Bin 0 -> 57246 bytes .../_build/doctrees/Viewer/Viewer.doctree | Bin 0 -> 56433 bytes .../_build/doctrees/environment.pickle | Bin 0 -> 60007 bytes .../_build/doctrees/etc/definitions.doctree | Bin 0 -> 55032 bytes documentation/_build/doctrees/index.doctree | Bin 0 -> 6050 bytes documentation/_build/html/.buildinfo | 4 + documentation/_build/html/Contents.html | 473 ++ .../_build/html/CrlCore/CrlCore.html | 334 ++ documentation/_build/html/DpGen/DpGen.html | 334 ++ .../_build/html/Hurricane/Hurricane.html | 334 ++ .../_build/html/Patterns/Patterns.html | 334 ++ .../_build/html/PythonCpp/Configuration.html | 367 ++ .../_build/html/PythonCpp/DBoHierarchy.html | 738 ++++ .../_build/html/PythonCpp/DBoStandalone.html | 669 +++ documentation/_build/html/PythonCpp/DbU.html | 383 ++ .../_build/html/PythonCpp/Introduction.html | 497 +++ documentation/_build/html/PythonCpp/Name.html | 336 ++ .../_build/html/PythonCpp/NonDBo.html | 486 +++ .../_build/html/PythonCpp/index.html | 368 ++ documentation/_build/html/RDS/RDSpage.html | 784 ++++ documentation/_build/html/RDS/index.html | 352 ++ .../_build/html/Stratus/Stratus.html | 334 ++ .../_build/html/Unicorn/Unicorn.html | 334 ++ .../_build/html/UsersGuide/Configuration.html | 653 +++ .../_build/html/UsersGuide/Installation.html | 574 +++ .../html/UsersGuide/LicenseCredits.html | 361 ++ .../_build/html/UsersGuide/Releases.html | 418 ++ .../html/UsersGuide/ScriptsPlugins.html | 712 +++ .../_build/html/UsersGuide/ViewerTools.html | 1205 +++++ .../_build/html/UsersGuide/index.html | 373 ++ documentation/_build/html/Viewer/Viewer.html | 334 ++ .../_build/html/_images/ComputerMouse.png | Bin 0 -> 9931 bytes .../_build/html/_images/Controller-1.png | Bin 0 -> 52456 bytes .../html/_images/Controller-Filter-1.png | Bin 0 -> 27386 bytes .../html/_images/Controller-Inspector-1.png | Bin 0 -> 26264 bytes .../html/_images/Controller-Inspector-2.png | Bin 0 -> 49778 bytes .../html/_images/Controller-Inspector-3.png | Bin 0 -> 36429 bytes .../html/_images/Controller-LayersGos-1.png | Bin 0 -> 51902 bytes .../_build/html/_images/Controller-Look-1.png | Bin 0 -> 45004 bytes .../html/_images/Controller-Netlist-1.png | Bin 0 -> 35309 bytes .../html/_images/Controller-Selection-1.png | Bin 0 -> 66677 bytes .../html/_images/Controller-Settings-1.png | Bin 0 -> 25799 bytes .../html/_images/Coriolis-Soft-Schema.png | Bin 0 -> 12016 bytes documentation/_build/html/_images/RDS_LCW.png | Bin 0 -> 4383 bytes documentation/_build/html/_images/RDS_VW.png | Bin 0 -> 4257 bytes .../html/_images/SegmentOrientation.png | Bin 0 -> 10451 bytes .../_build/html/_images/Viewer-1.png | Bin 0 -> 12298 bytes .../_build/html/_images/Viewer-Netlist-1.png | Bin 0 -> 22161 bytes .../_build/html/_images/bigvia-1.png | Bin 0 -> 4283 bytes .../_build/html/_images/bigvia-2.png | Bin 0 -> 3770 bytes .../_build/html/_images/chip-structure-1.png | Bin 0 -> 9949 bytes .../_build/html/_images/etesian-1.png | Bin 0 -> 7960 bytes ...83b70ce5b7bb56d8ad838429a01d2858d99612.png | Bin 0 -> 1186 bytes ...2cf89034341e49c1fbc546ca776e1205ae49c0.png | Bin 0 -> 1053 bytes ...2cfe8749bfed89e3c82527f74daaff6378d70e.png | Bin 0 -> 1156 bytes ...42aab75de488b349c95eca46e25a03ea80c207.png | Bin 0 -> 1217 bytes ...499f8834024d33c997cd9730e31d3a02ebab18.png | Bin 0 -> 1045 bytes ...71f7265a6f90fdc6622dfa4a4fd08927ae5fea.png | Bin 0 -> 1058 bytes .../_build/html/_sources/Contents.txt | 20 + .../_build/html/_sources/CrlCore/CrlCore.txt | 11 + .../_build/html/_sources/DpGen/DpGen.txt | 11 + .../html/_sources/Hurricane/Hurricane.txt | 11 + .../html/_sources/Patterns/Patterns.txt | 11 + .../html/_sources/PythonCpp/Configuration.txt | 42 + .../html/_sources/PythonCpp/DBoHierarchy.txt | 439 ++ .../html/_sources/PythonCpp/DBoStandalone.txt | 395 ++ .../_build/html/_sources/PythonCpp/DbU.txt | 67 + .../html/_sources/PythonCpp/Introduction.txt | 185 + .../_build/html/_sources/PythonCpp/Name.txt | 9 + .../_build/html/_sources/PythonCpp/NonDBo.txt | 171 + .../_build/html/_sources/PythonCpp/index.txt | 23 + .../_build/html/_sources/RDS/RDSpage.txt | 474 ++ .../_build/html/_sources/RDS/index.txt | 26 + .../_build/html/_sources/Stratus/Stratus.txt | 11 + .../_build/html/_sources/Unicorn/Unicorn.txt | 11 + .../_sources/UsersGuide/Configuration.txt | 342 ++ .../html/_sources/UsersGuide/Installation.txt | 230 + .../_sources/UsersGuide/LicenseCredits.txt | 55 + .../html/_sources/UsersGuide/Releases.txt | 102 + .../_sources/UsersGuide/ScriptsPlugins.txt | 332 ++ .../html/_sources/UsersGuide/ViewerTools.txt | 868 ++++ .../_build/html/_sources/UsersGuide/index.txt | 21 + .../_build/html/_sources/Viewer/Viewer.txt | 11 + .../_build/html/_sources/etc/definitions.txt | 182 + documentation/_build/html/_sources/index.txt | 34 + .../{etc => _build/html/_static}/SoC-ReST.css | 21 +- documentation/_build/html/_static/SoC.css | 5 + .../_build/html/_static/ajax-loader.gif | Bin 0 -> 673 bytes documentation/_build/html/_static/basic.css | 540 +++ .../_build/html/_static/comment-bright.png | Bin 0 -> 3500 bytes .../_build/html/_static/comment-close.png | Bin 0 -> 3578 bytes documentation/_build/html/_static/comment.png | Bin 0 -> 3445 bytes .../_build/html/_static/css/badge_only.css | 2 + .../_build/html/_static/css/theme.css | 3876 +++++++++++++++++ documentation/_build/html/_static/doctools.js | 247 ++ .../_build/html/_static/down-pressed.png | Bin 0 -> 368 bytes documentation/_build/html/_static/down.png | Bin 0 -> 363 bytes documentation/_build/html/_static/file.png | Bin 0 -> 392 bytes .../html/_static/fonts/Inconsolata-Bold.ttf | Bin 0 -> 47064 bytes .../_build/html/_static/fonts/Inconsolata.ttf | Bin 0 -> 63184 bytes .../_build/html/_static/fonts/Lato-Bold.ttf | Bin 0 -> 633240 bytes .../html/_static/fonts/Lato-Regular.ttf | Bin 0 -> 632632 bytes .../html/_static/fonts/RobotoSlab-Bold.ttf | Bin 0 -> 36596 bytes .../html/_static/fonts/RobotoSlab-Regular.ttf | Bin 0 -> 36276 bytes .../_static/fonts/fontawesome-webfont.eot | Bin 0 -> 38205 bytes .../_static/fonts/fontawesome-webfont.svg | 504 +++ .../_static/fonts/fontawesome-webfont.ttf | Bin 0 -> 141564 bytes .../_static/fonts/fontawesome-webfont.woff | Bin 0 -> 83760 bytes .../_build/html/_static/images/clipboard.bb | 1 + .../html/_static}/images/clipboard.eps | 0 .../_build/html/_static/images/clipboard.pdf | Bin 0 -> 12127 bytes .../html/_static}/images/clipboard.png | Bin .../_build/html/_static/images/i-core.bb | 1 + .../html/_static}/images/i-core.eps | 0 .../_build/html/_static/images/i-core.pdf | Bin 0 -> 8043 bytes .../html/_static}/images/i-core.png | Bin documentation/_build/html/_static/jquery.js | 154 + .../_build/html/_static/js/modernizr.min.js | 4 + documentation/_build/html/_static/js/theme.js | 113 + documentation/_build/html/_static/minus.png | Bin 0 -> 199 bytes documentation/_build/html/_static/plus.png | Bin 0 -> 199 bytes .../_build/html/_static/pygments.css | 46 + .../_build/html/_static/searchtools.js | 560 +++ .../_build/html/_static/underscore.js | 23 + .../_build/html/_static/up-pressed.png | Bin 0 -> 372 bytes documentation/_build/html/_static/up.png | Bin 0 -> 363 bytes .../_build/html/_static/websupport.js | 808 ++++ .../html/_static/www-SoC.css} | 51 +- .../_build/html/etc/definitions.html | 318 ++ documentation/_build/html/genindex.html | 326 ++ documentation/_build/html/index.html | 373 ++ documentation/_build/html/objects.inv | Bin 0 -> 613 bytes documentation/_build/html/search.html | 335 ++ documentation/_build/html/searchindex.js | 1 + documentation/_static/SoC-ReST.css | 506 +++ documentation/_static/SoC.css | 5 + documentation/_static/images/clipboard.bb | 1 + documentation/_static/images/clipboard.eps | 456 ++ documentation/_static/images/clipboard.pdf | Bin 0 -> 12127 bytes documentation/_static/images/clipboard.png | Bin 0 -> 3105 bytes documentation/_static/images/i-core.bb | 1 + documentation/_static/images/i-core.eps | 456 ++ documentation/_static/images/i-core.pdf | Bin 0 -> 8043 bytes documentation/_static/images/i-core.png | Bin 0 -> 3138 bytes documentation/_static/pygments.css | 46 + documentation/_static/www-SoC.css | 567 +++ documentation/_templates/indexcontent.html | 52 + .../_themes/sphinx_rtd_theme/__init__.py | 17 + .../_themes/sphinx_rtd_theme/breadcrumbs.html | 23 + .../_themes/sphinx_rtd_theme/defindex.html | 34 + .../_themes/sphinx_rtd_theme/footer.html | 44 + .../_themes/sphinx_rtd_theme/layout.html | 181 + .../_themes/sphinx_rtd_theme/layout_old.html | 205 + .../_themes/sphinx_rtd_theme/search.html | 50 + .../_themes/sphinx_rtd_theme/searchbox.html | 9 + .../static/css/badge_only.css | 2 + .../sphinx_rtd_theme/static/css/theme.css | 3876 +++++++++++++++++ .../static/fonts/Inconsolata-Bold.ttf | Bin 0 -> 47064 bytes .../static/fonts/Inconsolata.ttf | Bin 0 -> 63184 bytes .../static/fonts/Lato-Bold.ttf | 1 + .../static/fonts/Lato-Regular.ttf | 1 + .../static/fonts/RobotoSlab-Bold.ttf | Bin 0 -> 36596 bytes .../static/fonts/RobotoSlab-Regular.ttf | Bin 0 -> 36276 bytes .../static/fonts/fontawesome-webfont.eot | Bin 0 -> 38205 bytes .../static/fonts/fontawesome-webfont.svg | 1 + .../static/fonts/fontawesome-webfont.ttf | 1 + .../static/fonts/fontawesome-webfont.woff | 1 + .../static/js/modernizr.min.js | 4 + .../sphinx_rtd_theme/static/js/theme.js | 113 + .../_themes/sphinx_rtd_theme/theme.conf | 9 + .../_themes/sphinx_rtd_theme/versions.html | 37 + documentation/conf.py | 286 ++ documentation/etc/CMakeLists.txt | 8 - documentation/etc/Pygments.css | 41 - documentation/etc/definitions.rst | 8 +- documentation/etc/doPdf.sh | 34 + documentation/etc/socstyle.tex | 89 - .../examples/code/engine/smurf/CMakeLists.txt | 2 +- documentation/general-index.html | 73 - documentation/index.rst | 34 + 281 files changed, 35270 insertions(+), 12735 deletions(-) create mode 100644 bootstrap/cmake_modules/FindSphinx.cmake create mode 100644 documentation/Contents.rst create mode 100644 documentation/CrlCore/CrlCore.rst create mode 100644 documentation/DpGen/DpGen.rst create mode 100644 documentation/Hurricane/Hurricane.rst create mode 100644 documentation/Makefile create mode 100644 documentation/Patterns/Patterns.rst delete mode 100644 documentation/PythonCpp/CMakeLists.txt create mode 100644 documentation/PythonCpp/Configuration.rst create mode 100644 documentation/PythonCpp/DBoHierarchy.rst create mode 100644 documentation/PythonCpp/DBoStandalone.rst create mode 100644 documentation/PythonCpp/DbU.rst create mode 100644 documentation/PythonCpp/Introduction.rst create mode 100644 documentation/PythonCpp/Name.rst create mode 100644 documentation/PythonCpp/NonDBo.rst delete mode 100644 documentation/PythonCpp/PythonCpp.rst create mode 100644 documentation/PythonCpp/index.rst create mode 100644 documentation/PythonCpp/pdfHeader.rst delete mode 100644 documentation/RDS/HTML_defs.rst delete mode 100644 documentation/RDS/LaTeX_defs.rst delete mode 100644 documentation/RDS/RDS.html delete mode 100644 documentation/RDS/RDS_HTML.rst delete mode 100644 documentation/RDS/RDS_LaTeX.rst rename documentation/RDS/{RDS.rst => RDSpage.rst} (93%) delete mode 100644 documentation/RDS/SoC.css delete mode 100644 documentation/RDS/images/RDS_LCW-eps-converted-to.pdf delete mode 100644 documentation/RDS/images/RDS_LCW.eps delete mode 100644 documentation/RDS/images/RDS_VW-eps-converted-to.pdf delete mode 100644 documentation/RDS/images/RDS_VW.eps delete mode 100644 documentation/RDS/images/SegmentOrientation.eps delete mode 100644 documentation/RDS/images/bigvia-1.eps delete mode 100644 documentation/RDS/images/bigvia-2.eps delete mode 100644 documentation/RDS/images/clipboard-eps-converted-to.pdf create mode 100644 documentation/RDS/index.rst create mode 100644 documentation/RDS/pdfHeader.rst delete mode 100644 documentation/RDS/socstyle.tex create mode 100644 documentation/Stratus/Stratus.rst create mode 100644 documentation/Unicorn/Unicorn.rst delete mode 100644 documentation/UsersGuide/CMakeLists.txt create mode 100644 documentation/UsersGuide/Configuration.rst delete mode 100644 documentation/UsersGuide/HTML_defs.rst create mode 100644 documentation/UsersGuide/Installation.rst delete mode 100644 documentation/UsersGuide/LaTeX_defs.rst create mode 100644 documentation/UsersGuide/LicenseCredits.rst delete mode 100644 documentation/UsersGuide/Pygments.css create mode 100644 documentation/UsersGuide/Releases.rst create mode 100644 documentation/UsersGuide/ScriptsPlugins.rst delete mode 100644 documentation/UsersGuide/SoC.css delete mode 100644 documentation/UsersGuide/UsersGuide.html delete mode 100644 documentation/UsersGuide/UsersGuide.pdf delete mode 100644 documentation/UsersGuide/UsersGuide.rst delete mode 100644 documentation/UsersGuide/UsersGuide_HTML.rst delete mode 100644 documentation/UsersGuide/UsersGuide_LaTeX.rst create mode 100644 documentation/UsersGuide/ViewerTools.rst delete mode 100644 documentation/UsersGuide/WWW_defs.rst create mode 100644 documentation/UsersGuide/images/Controller-1-eps-converted-to.pdf create mode 100644 documentation/UsersGuide/images/Controller-Filter-1-eps-converted-to.pdf create mode 100644 documentation/UsersGuide/images/Controller-Inspector-1-eps-converted-to.pdf create mode 100644 documentation/UsersGuide/images/Controller-Inspector-2-eps-converted-to.pdf create mode 100644 documentation/UsersGuide/images/Controller-Inspector-3-eps-converted-to.pdf create mode 100644 documentation/UsersGuide/images/Controller-LayersGos-1-eps-converted-to.pdf create mode 100644 documentation/UsersGuide/images/Controller-Look-1-eps-converted-to.pdf create mode 100644 documentation/UsersGuide/images/Controller-Netlist-1-eps-converted-to.pdf create mode 100644 documentation/UsersGuide/images/Controller-Selection-1-eps-converted-to.pdf create mode 100644 documentation/UsersGuide/images/Controller-Settings-1-eps-converted-to.pdf create mode 100644 documentation/UsersGuide/images/Coriolis-Soft-Schema-eps-converted-to.pdf create mode 100644 documentation/UsersGuide/images/Viewer-1-eps-converted-to.pdf create mode 100644 documentation/UsersGuide/images/Viewer-Netlist-1-eps-converted-to.pdf create mode 100644 documentation/UsersGuide/images/chip-structure-1-eps-converted-to.pdf create mode 100644 documentation/UsersGuide/images/etesian-1-eps-converted-to.pdf create mode 100644 documentation/UsersGuide/index.rst create mode 100644 documentation/UsersGuide/pdfHeader.rst delete mode 100644 documentation/UsersGuide/socstyle.tex create mode 100644 documentation/Viewer/Viewer.rst create mode 100644 documentation/_build/doctrees/Contents.doctree create mode 100644 documentation/_build/doctrees/CrlCore/CrlCore.doctree create mode 100644 documentation/_build/doctrees/DpGen/DpGen.doctree create mode 100644 documentation/_build/doctrees/Hurricane/Hurricane.doctree create mode 100644 documentation/_build/doctrees/Patterns/Patterns.doctree create mode 100644 documentation/_build/doctrees/PythonCpp/Configuration.doctree create mode 100644 documentation/_build/doctrees/PythonCpp/DBoHierarchy.doctree create mode 100644 documentation/_build/doctrees/PythonCpp/DBoStandalone.doctree create mode 100644 documentation/_build/doctrees/PythonCpp/DbU.doctree create mode 100644 documentation/_build/doctrees/PythonCpp/Introduction.doctree create mode 100644 documentation/_build/doctrees/PythonCpp/Name.doctree create mode 100644 documentation/_build/doctrees/PythonCpp/NonDBo.doctree create mode 100644 documentation/_build/doctrees/PythonCpp/index.doctree create mode 100644 documentation/_build/doctrees/RDS/RDSpage.doctree create mode 100644 documentation/_build/doctrees/RDS/index.doctree create mode 100644 documentation/_build/doctrees/Stratus/Stratus.doctree create mode 100644 documentation/_build/doctrees/Unicorn/Unicorn.doctree create mode 100644 documentation/_build/doctrees/UsersGuide/Configuration.doctree create mode 100644 documentation/_build/doctrees/UsersGuide/Installation.doctree create mode 100644 documentation/_build/doctrees/UsersGuide/LicenseCredits.doctree create mode 100644 documentation/_build/doctrees/UsersGuide/Releases.doctree create mode 100644 documentation/_build/doctrees/UsersGuide/ScriptsPlugins.doctree create mode 100644 documentation/_build/doctrees/UsersGuide/ViewerTools.doctree create mode 100644 documentation/_build/doctrees/UsersGuide/index.doctree create mode 100644 documentation/_build/doctrees/Viewer/Viewer.doctree create mode 100644 documentation/_build/doctrees/environment.pickle create mode 100644 documentation/_build/doctrees/etc/definitions.doctree create mode 100644 documentation/_build/doctrees/index.doctree create mode 100644 documentation/_build/html/.buildinfo create mode 100644 documentation/_build/html/Contents.html create mode 100644 documentation/_build/html/CrlCore/CrlCore.html create mode 100644 documentation/_build/html/DpGen/DpGen.html create mode 100644 documentation/_build/html/Hurricane/Hurricane.html create mode 100644 documentation/_build/html/Patterns/Patterns.html create mode 100644 documentation/_build/html/PythonCpp/Configuration.html create mode 100644 documentation/_build/html/PythonCpp/DBoHierarchy.html create mode 100644 documentation/_build/html/PythonCpp/DBoStandalone.html create mode 100644 documentation/_build/html/PythonCpp/DbU.html create mode 100644 documentation/_build/html/PythonCpp/Introduction.html create mode 100644 documentation/_build/html/PythonCpp/Name.html create mode 100644 documentation/_build/html/PythonCpp/NonDBo.html create mode 100644 documentation/_build/html/PythonCpp/index.html create mode 100644 documentation/_build/html/RDS/RDSpage.html create mode 100644 documentation/_build/html/RDS/index.html create mode 100644 documentation/_build/html/Stratus/Stratus.html create mode 100644 documentation/_build/html/Unicorn/Unicorn.html create mode 100644 documentation/_build/html/UsersGuide/Configuration.html create mode 100644 documentation/_build/html/UsersGuide/Installation.html create mode 100644 documentation/_build/html/UsersGuide/LicenseCredits.html create mode 100644 documentation/_build/html/UsersGuide/Releases.html create mode 100644 documentation/_build/html/UsersGuide/ScriptsPlugins.html create mode 100644 documentation/_build/html/UsersGuide/ViewerTools.html create mode 100644 documentation/_build/html/UsersGuide/index.html create mode 100644 documentation/_build/html/Viewer/Viewer.html create mode 100644 documentation/_build/html/_images/ComputerMouse.png create mode 100644 documentation/_build/html/_images/Controller-1.png create mode 100644 documentation/_build/html/_images/Controller-Filter-1.png create mode 100644 documentation/_build/html/_images/Controller-Inspector-1.png create mode 100644 documentation/_build/html/_images/Controller-Inspector-2.png create mode 100644 documentation/_build/html/_images/Controller-Inspector-3.png create mode 100644 documentation/_build/html/_images/Controller-LayersGos-1.png create mode 100644 documentation/_build/html/_images/Controller-Look-1.png create mode 100644 documentation/_build/html/_images/Controller-Netlist-1.png create mode 100644 documentation/_build/html/_images/Controller-Selection-1.png create mode 100644 documentation/_build/html/_images/Controller-Settings-1.png create mode 100644 documentation/_build/html/_images/Coriolis-Soft-Schema.png create mode 100644 documentation/_build/html/_images/RDS_LCW.png create mode 100644 documentation/_build/html/_images/RDS_VW.png create mode 100644 documentation/_build/html/_images/SegmentOrientation.png create mode 100644 documentation/_build/html/_images/Viewer-1.png create mode 100644 documentation/_build/html/_images/Viewer-Netlist-1.png create mode 100644 documentation/_build/html/_images/bigvia-1.png create mode 100644 documentation/_build/html/_images/bigvia-2.png create mode 100644 documentation/_build/html/_images/chip-structure-1.png create mode 100644 documentation/_build/html/_images/etesian-1.png create mode 100644 documentation/_build/html/_images/math/0183b70ce5b7bb56d8ad838429a01d2858d99612.png create mode 100644 documentation/_build/html/_images/math/642cf89034341e49c1fbc546ca776e1205ae49c0.png create mode 100644 documentation/_build/html/_images/math/6a2cfe8749bfed89e3c82527f74daaff6378d70e.png create mode 100644 documentation/_build/html/_images/math/7242aab75de488b349c95eca46e25a03ea80c207.png create mode 100644 documentation/_build/html/_images/math/d3499f8834024d33c997cd9730e31d3a02ebab18.png create mode 100644 documentation/_build/html/_images/math/e171f7265a6f90fdc6622dfa4a4fd08927ae5fea.png create mode 100644 documentation/_build/html/_sources/Contents.txt create mode 100644 documentation/_build/html/_sources/CrlCore/CrlCore.txt create mode 100644 documentation/_build/html/_sources/DpGen/DpGen.txt create mode 100644 documentation/_build/html/_sources/Hurricane/Hurricane.txt create mode 100644 documentation/_build/html/_sources/Patterns/Patterns.txt create mode 100644 documentation/_build/html/_sources/PythonCpp/Configuration.txt create mode 100644 documentation/_build/html/_sources/PythonCpp/DBoHierarchy.txt create mode 100644 documentation/_build/html/_sources/PythonCpp/DBoStandalone.txt create mode 100644 documentation/_build/html/_sources/PythonCpp/DbU.txt create mode 100644 documentation/_build/html/_sources/PythonCpp/Introduction.txt create mode 100644 documentation/_build/html/_sources/PythonCpp/Name.txt create mode 100644 documentation/_build/html/_sources/PythonCpp/NonDBo.txt create mode 100644 documentation/_build/html/_sources/PythonCpp/index.txt create mode 100644 documentation/_build/html/_sources/RDS/RDSpage.txt create mode 100644 documentation/_build/html/_sources/RDS/index.txt create mode 100644 documentation/_build/html/_sources/Stratus/Stratus.txt create mode 100644 documentation/_build/html/_sources/Unicorn/Unicorn.txt create mode 100644 documentation/_build/html/_sources/UsersGuide/Configuration.txt create mode 100644 documentation/_build/html/_sources/UsersGuide/Installation.txt create mode 100644 documentation/_build/html/_sources/UsersGuide/LicenseCredits.txt create mode 100644 documentation/_build/html/_sources/UsersGuide/Releases.txt create mode 100644 documentation/_build/html/_sources/UsersGuide/ScriptsPlugins.txt create mode 100644 documentation/_build/html/_sources/UsersGuide/ViewerTools.txt create mode 100644 documentation/_build/html/_sources/UsersGuide/index.txt create mode 100644 documentation/_build/html/_sources/Viewer/Viewer.txt create mode 100644 documentation/_build/html/_sources/etc/definitions.txt create mode 100644 documentation/_build/html/_sources/index.txt rename documentation/{etc => _build/html/_static}/SoC-ReST.css (96%) create mode 100644 documentation/_build/html/_static/SoC.css create mode 100644 documentation/_build/html/_static/ajax-loader.gif create mode 100644 documentation/_build/html/_static/basic.css create mode 100644 documentation/_build/html/_static/comment-bright.png create mode 100644 documentation/_build/html/_static/comment-close.png create mode 100644 documentation/_build/html/_static/comment.png create mode 100644 documentation/_build/html/_static/css/badge_only.css create mode 100644 documentation/_build/html/_static/css/theme.css create mode 100644 documentation/_build/html/_static/doctools.js create mode 100644 documentation/_build/html/_static/down-pressed.png create mode 100644 documentation/_build/html/_static/down.png create mode 100644 documentation/_build/html/_static/file.png create mode 100644 documentation/_build/html/_static/fonts/Inconsolata-Bold.ttf create mode 100644 documentation/_build/html/_static/fonts/Inconsolata.ttf create mode 100644 documentation/_build/html/_static/fonts/Lato-Bold.ttf create mode 100644 documentation/_build/html/_static/fonts/Lato-Regular.ttf create mode 100644 documentation/_build/html/_static/fonts/RobotoSlab-Bold.ttf create mode 100644 documentation/_build/html/_static/fonts/RobotoSlab-Regular.ttf create mode 100644 documentation/_build/html/_static/fonts/fontawesome-webfont.eot create mode 100644 documentation/_build/html/_static/fonts/fontawesome-webfont.svg create mode 100644 documentation/_build/html/_static/fonts/fontawesome-webfont.ttf create mode 100644 documentation/_build/html/_static/fonts/fontawesome-webfont.woff create mode 100644 documentation/_build/html/_static/images/clipboard.bb rename documentation/{RDS => _build/html/_static}/images/clipboard.eps (100%) create mode 100644 documentation/_build/html/_static/images/clipboard.pdf rename documentation/{RDS => _build/html/_static}/images/clipboard.png (100%) create mode 100644 documentation/_build/html/_static/images/i-core.bb rename documentation/{RDS => _build/html/_static}/images/i-core.eps (100%) create mode 100644 documentation/_build/html/_static/images/i-core.pdf rename documentation/{RDS => _build/html/_static}/images/i-core.png (100%) create mode 100644 documentation/_build/html/_static/jquery.js create mode 100644 documentation/_build/html/_static/js/modernizr.min.js create mode 100644 documentation/_build/html/_static/js/theme.js create mode 100644 documentation/_build/html/_static/minus.png create mode 100644 documentation/_build/html/_static/plus.png create mode 100644 documentation/_build/html/_static/pygments.css create mode 100644 documentation/_build/html/_static/searchtools.js create mode 100644 documentation/_build/html/_static/underscore.js create mode 100644 documentation/_build/html/_static/up-pressed.png create mode 100644 documentation/_build/html/_static/up.png create mode 100644 documentation/_build/html/_static/websupport.js rename documentation/{etc/SoC.css => _build/html/_static/www-SoC.css} (89%) create mode 100644 documentation/_build/html/etc/definitions.html create mode 100644 documentation/_build/html/genindex.html create mode 100644 documentation/_build/html/index.html create mode 100644 documentation/_build/html/objects.inv create mode 100644 documentation/_build/html/search.html create mode 100644 documentation/_build/html/searchindex.js create mode 100644 documentation/_static/SoC-ReST.css create mode 100644 documentation/_static/SoC.css create mode 100644 documentation/_static/images/clipboard.bb create mode 100644 documentation/_static/images/clipboard.eps create mode 100644 documentation/_static/images/clipboard.pdf create mode 100644 documentation/_static/images/clipboard.png create mode 100644 documentation/_static/images/i-core.bb create mode 100644 documentation/_static/images/i-core.eps create mode 100644 documentation/_static/images/i-core.pdf create mode 100644 documentation/_static/images/i-core.png create mode 100644 documentation/_static/pygments.css create mode 100644 documentation/_static/www-SoC.css create mode 100644 documentation/_templates/indexcontent.html create mode 100644 documentation/_themes/sphinx_rtd_theme/__init__.py create mode 100644 documentation/_themes/sphinx_rtd_theme/breadcrumbs.html create mode 100644 documentation/_themes/sphinx_rtd_theme/defindex.html create mode 100644 documentation/_themes/sphinx_rtd_theme/footer.html create mode 100644 documentation/_themes/sphinx_rtd_theme/layout.html create mode 100644 documentation/_themes/sphinx_rtd_theme/layout_old.html create mode 100644 documentation/_themes/sphinx_rtd_theme/search.html create mode 100644 documentation/_themes/sphinx_rtd_theme/searchbox.html create mode 100644 documentation/_themes/sphinx_rtd_theme/static/css/badge_only.css create mode 100644 documentation/_themes/sphinx_rtd_theme/static/css/theme.css create mode 100644 documentation/_themes/sphinx_rtd_theme/static/fonts/Inconsolata-Bold.ttf create mode 100644 documentation/_themes/sphinx_rtd_theme/static/fonts/Inconsolata.ttf create mode 120000 documentation/_themes/sphinx_rtd_theme/static/fonts/Lato-Bold.ttf create mode 120000 documentation/_themes/sphinx_rtd_theme/static/fonts/Lato-Regular.ttf create mode 100644 documentation/_themes/sphinx_rtd_theme/static/fonts/RobotoSlab-Bold.ttf create mode 100644 documentation/_themes/sphinx_rtd_theme/static/fonts/RobotoSlab-Regular.ttf create mode 100644 documentation/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.eot create mode 120000 documentation/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.svg create mode 120000 documentation/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.ttf create mode 120000 documentation/_themes/sphinx_rtd_theme/static/fonts/fontawesome-webfont.woff create mode 100644 documentation/_themes/sphinx_rtd_theme/static/js/modernizr.min.js create mode 100644 documentation/_themes/sphinx_rtd_theme/static/js/theme.js create mode 100644 documentation/_themes/sphinx_rtd_theme/theme.conf create mode 100644 documentation/_themes/sphinx_rtd_theme/versions.html create mode 100644 documentation/conf.py delete mode 100644 documentation/etc/CMakeLists.txt delete mode 100644 documentation/etc/Pygments.css create mode 100755 documentation/etc/doPdf.sh delete mode 100644 documentation/etc/socstyle.tex delete mode 100644 documentation/general-index.html create mode 100644 documentation/index.rst diff --git a/README.rst b/README.rst index 861e003e..9336ca1c 100644 --- a/README.rst +++ b/README.rst @@ -26,7 +26,7 @@ Documentation The complete documentation is available here, both in pdf & html: - ./documentation/UsersGuide/UsersGuide.html + ./documentation/_build/html/index.html ./documentation/UsersGuide/UsersGuide.pdf The documentation of the latest *stable* version is also diff --git a/bootstrap/cmake_modules/CMakeLists.txt b/bootstrap/cmake_modules/CMakeLists.txt index cb316971..f0c6c9d1 100644 --- a/bootstrap/cmake_modules/CMakeLists.txt +++ b/bootstrap/cmake_modules/CMakeLists.txt @@ -7,6 +7,7 @@ FindLibexecinfo.cmake FindLibbfd.cmake FindQwt.cmake + FindSphinx.cmake GetGitRevisionDescription.cmake GetGitRevisionDescription.cmake.in ) diff --git a/bootstrap/cmake_modules/FindSphinx.cmake b/bootstrap/cmake_modules/FindSphinx.cmake new file mode 100644 index 00000000..7d4f192a --- /dev/null +++ b/bootstrap/cmake_modules/FindSphinx.cmake @@ -0,0 +1,12 @@ + +# CMake snippet courtesy of Eric Scott BARR's blog. + + find_program( SPHINX_EXECUTABLE NAMES sphinx-build + HINTS $ENV{SPHINX_DIR} + PATH_SUFFIXES bin + DOC "Sphinx documentation generator" + ) + + include( FindPackageHandleStandardArgs ) +find_package_handle_standard_args( Sphinx DEFAULT_MSG SPHINX_EXECUTABLE ) + mark_as_advanced( SPHINX_EXECUTABLE ) diff --git a/documentation/CMakeLists.txt b/documentation/CMakeLists.txt index 338c83ec..a3ced41c 100644 --- a/documentation/CMakeLists.txt +++ b/documentation/CMakeLists.txt @@ -5,16 +5,14 @@ cmake_minimum_required(VERSION 2.4.0) - OPTION(BUILD_DOC "Build the documentation (html+latex)" OFF) + option(BUILD_DOC "Build the documentation (html+pdf)" OFF) list(INSERT CMAKE_MODULE_PATH 0 "${DESTDIR}$ENV{CORIOLIS_TOP}/share/cmake/Modules/") find_package(Bootstrap REQUIRED) + find_package(Sphinx REQUIRED) setup_project_paths(CORIOLIS) - list(INSERT CMAKE_MODULE_PATH 0 "${CRLCORE_SOURCE_DIR}/cmake_modules/") - print_cmake_module_path() set_cmake_policies() - check_distribution() #if(BUILD_DOC) # include(UseLATEX) @@ -22,13 +20,77 @@ add_subdirectory(examples) if(BUILD_DOC) - add_subdirectory(etc) - add_subdirectory(UsersGuide) - add_subdirectory(PythonCpp) + set ( htmlInstallDir share/doc/coriolis2/en/html/main ) + set ( pdfInstallDir share/doc/coriolis2/en/pdf/main ) + + set ( pythonCppRst PythonCpp/pdfHeader.rst + PythonCpp/Introduction.rst + PythonCpp/Configuration.rst + PythonCpp/DBoStandalone.rst + PythonCpp/DBoHierarchy.rst + PythonCpp/NonDBo.rst + PythonCpp/DbU.rst + PythonCpp/Name.rst ) + + set ( usersGuideRst UsersGuide/pdfHeader.rst + UsersGuide/LicenseCredits.rst + UsersGuide/Releases.rst + UsersGuide/Installation.rst + UsersGuide/Configuration.rst + UsersGuide/ViewerTools.rst + UsersGuide/ScriptsPlugins.rst ) + + set ( rdsRst RDS/pdfHeader.rst + RDS/RDSpage.rst ) + + add_custom_target ( doc_HTML ALL + cd ${DOCUMENTATION_SOURCE_DIR} + && rm -rf _build + && sphinx-build -b html -d _build/doctrees . _build/html ) + add_dependencies ( doc_HTML ../etc/definitions.rst + ../_static/SoC.css + ../_static/www-SoC.css + ../_static/SoC-ReST.css + ../_static/pygments.css + CrlCore/CrlCore.rst + DpGen/DpGen.rst + Hurricane/Hurricane.rst + Patterns/Patterns.rst + Stratus/Stratus.rst + Unicorn/Unicorn.rst + Viewer/Viewer.rst + ${usersGuideRst} UsersGuide/index.rst + ${pythonCppRst} PythonCpp/index.rst + ${rdsRst} RDS/index.rst + ) + + add_custom_target ( pdf_UsersGuide ALL + cd ${DOCUMENTATION_SOURCE_DIR}/UsersGuide + && ../etc/doPdf.sh ${usersGuideRst} UsersGuide.rst ) + add_dependencies ( pdf_UsersGuide ../etc/definitions.rst + ../etc/SoC-ReST.tex + ${usersGuideRst} ) + + add_custom_target ( pdf_PythonCpp ALL + cd ${DOCUMENTATION_SOURCE_DIR}/PythonCpp + && ../etc/doPdf.sh ${pythonCppRst} PythonCpp.rst + ) + add_dependencies ( pdf_PythonCpp ../etc/definitions.rst + ../etc/SoC-ReST.tex + ${pythonCppRst} ) + + add_custom_target ( pdf_RDS ALL + cd ${DOCUMENTATION_SOURCE_DIR}/RDS + && ../etc/doPdf.sh ${rdsRst} RDS.rst + ) + add_dependencies ( pdf_RDS ../etc/definitions.rst + ../etc/SoC-ReST.tex + ${pythonCppRst} ) + + install ( DIRECTORY _build/html/ DESTINATION ${htmlInstallDir} ) + install ( FILES RDS/RDS.pdf + PythonCpp/PythonCpp.pdf + UsersGuide/UsersGuide.pdf DESTINATION ${pdfInstallDir} ) + endif(BUILD_DOC) - set ( htmlInstallDir share/doc/coriolis2/ ) - set ( latexInstallDir share/doc/coriolis2/ ) - - install ( FILES general-index.html DESTINATION ${htmlInstallDir} RENAME index.html ) - diff --git a/documentation/Contents.rst b/documentation/Contents.rst new file mode 100644 index 00000000..febd0e88 --- /dev/null +++ b/documentation/Contents.rst @@ -0,0 +1,20 @@ +.. Coriolis documentation master file, created by + sphinx-quickstart on Mon Jul 10 15:08:36 2017. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Comprenhensive Table of Contents +================================ + +.. toctree:: + + UsersGuide/index.rst + Stratus/Stratus.rst + DpGen/DpGen.rst + Patterns/Patterns.rst + Hurricane/Hurricane.rst + Viewer/Viewer.rst + CrlCore/CrlCore.rst + Unicorn/Unicorn.rst + PythonCpp/index.rst + RDS/index.rst diff --git a/documentation/CrlCore/CrlCore.rst b/documentation/CrlCore/CrlCore.rst new file mode 100644 index 00000000..d462e48e --- /dev/null +++ b/documentation/CrlCore/CrlCore.rst @@ -0,0 +1,11 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +==================== +CRL Core Reference +==================== + +The CRL Core C++ API reference is generated by Doxygen_ and is +available here: `CRL Core `_ diff --git a/documentation/DpGen/DpGen.rst b/documentation/DpGen/DpGen.rst new file mode 100644 index 00000000..0d8324d1 --- /dev/null +++ b/documentation/DpGen/DpGen.rst @@ -0,0 +1,11 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +================= +DpGen Reference +================= + +The DpGen extension of the Stratus Language reference is generated by LaTeX2HTML_ and is +available here: `DpGen `_ diff --git a/documentation/Hurricane/Hurricane.rst b/documentation/Hurricane/Hurricane.rst new file mode 100644 index 00000000..4b1ec994 --- /dev/null +++ b/documentation/Hurricane/Hurricane.rst @@ -0,0 +1,11 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +===================== +Hurricane Reference +===================== + +The Hurricane C++ API reference is generated by Doxygen_ and is +available here: `Hurricane `_ diff --git a/documentation/Makefile b/documentation/Makefile new file mode 100644 index 00000000..97677091 --- /dev/null +++ b/documentation/Makefile @@ -0,0 +1,153 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = _build + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . +# the i18n builder cannot share the environment and doctrees with the others +I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . + +.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext + +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " texinfo to make Texinfo files" + @echo " info to make Texinfo files and run them through makeinfo" + @echo " gettext to make PO message catalogs" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + +clean: + -rm -rf $(BUILDDIR)/* + +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +singlehtml: + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Coriolis.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Coriolis.qhc" + +devhelp: + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/Coriolis" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Coriolis" + @echo "# devhelp" + +epub: + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +latexpdf: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through pdflatex..." + $(MAKE) -C $(BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +text: + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(BUILDDIR)/text." + +man: + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." + +texinfo: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo + @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." + @echo "Run \`make' in that directory to run these through makeinfo" \ + "(use \`make info' here to do that automatically)." + +info: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo "Running Texinfo files through makeinfo..." + make -C $(BUILDDIR)/texinfo info + @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." + +gettext: + $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale + @echo + @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." diff --git a/documentation/Patterns/Patterns.rst b/documentation/Patterns/Patterns.rst new file mode 100644 index 00000000..66c4791c --- /dev/null +++ b/documentation/Patterns/Patterns.rst @@ -0,0 +1,11 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +==================== +Patterns Reference +==================== + +The Patterns extension of the Stratus Language reference is generated by LaTeX2HTML_ and is +available here: `Patterns `_ diff --git a/documentation/PythonCpp/CMakeLists.txt b/documentation/PythonCpp/CMakeLists.txt deleted file mode 100644 index 49281f72..00000000 --- a/documentation/PythonCpp/CMakeLists.txt +++ /dev/null @@ -1,39 +0,0 @@ -# -*- mode: CMAKE; explicit-buffer-name: "CMakeLists.txt" -*- - - set ( htmlInstallDir share/doc/coriolis2/en/html/PythonCpp ) - set ( latexInstallDir share/doc/coriolis2/en/latex/PythonCpp ) - - add_custom_target ( doc_HTML ALL - cd ${DOCUMENTATION_SOURCE_DIR}/PythonCpp - && rst2html --link-stylesheet --stylesheet=../etc/SoC.css,../etc/SoC-ReST.css,../etc/Pygments.css PythonCpp.rst PythonCpp.html ) - add_dependencies ( doc_HTML ../etc/definitions.rst - ../etc/SoC.css - ../etc/SoC-ReST.css - ../etc/Pygments.css - PythonCpp.rst ) - - add_custom_target ( doc_LaTeX ALL - cd ${DOCUMENTATION_SOURCE_DIR}/PythonCpp - && export TEXINPUTS=../etc/images//:./images//: - && rst2latex --use-latex-toc --stylesheet=../etc/SoC-ReST.tex PythonCpp.rst PythonCpp-raw.tex - && sed 's, \\& \\\\multicolumn{2}{l|}{, \\& \\\\multicolumn{2}{p{0.6\\\\DUtablewidth}|}{,' PythonCpp-raw.tex > PythonCpp.tex - && pdflatex PythonCpp - && pdflatex PythonCpp - ) - add_dependencies ( doc_LaTeX ../etc/definitions.rst - ../etc/SoC-ReST.tex - PythonCpp.rst ) - - install ( DIRECTORY images/ - DESTINATION ${htmlInstallDir}/images - FILES_MATCHING PATTERN "*.png" ) - install ( FILES PythonCpp.html DESTINATION ${htmlInstallDir} ) - - install ( DIRECTORY images/ - DESTINATION ${latexInstallDir}/images - FILES_MATCHING PATTERN "*.pdf" - PATTERN "*.eps" - PATTERN "*.bb" ) - - install ( FILES PythonCpp.tex - PythonCpp.pdf DESTINATION ${latexInstallDir} ) diff --git a/documentation/PythonCpp/Configuration.rst b/documentation/PythonCpp/Configuration.rst new file mode 100644 index 00000000..2e9d11e9 --- /dev/null +++ b/documentation/PythonCpp/Configuration.rst @@ -0,0 +1,42 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +2. Basic File Structure and CMake configuration +================================================= + +As a first example we will consider the ``Hurrican::Library`` +class. To export a class into Python, we must create three files: + +#. ``PyLibrary.h``, defines the ``PyLibrary`` C-Struct and the functions + needed outside the module istself (mostly for ``PyHurricane.cpp``). + +#. ``PyLibrary.cpp``, contains the complete wrapping of the class and + the Python type definition (``PyTypeLibrary``). + +#. ``PyHurricane.cpp``, the definition of the Python module into which + the classes are registered. The module act as a ``namespace`` in + Python so it is good practice to give it the same name as it's + associated C++ namespace. + +|newpage| + +To build a Python module in |cmake|, use the following macro: + + .. code-block:: cmake + + set( pyCpps PyLibrary.cpp + PyHurricane.cpp ) + set( pyIncludes hurricane/isobar/PyLibrary.h + + add_python_module( "${pyCpps}" + "${pyIncludes}" + "isobar;1.0;1" # Name & version of the supporting + # shared library. + Hurricane # Name of the Python module will give: + # Hurricane.so + "${depLibs}" # List of dependency libraries. + include/coriolis2/hurricane/isobar + # Where to install the include files. + ) diff --git a/documentation/PythonCpp/DBoHierarchy.rst b/documentation/PythonCpp/DBoHierarchy.rst new file mode 100644 index 00000000..4c72bf3b --- /dev/null +++ b/documentation/PythonCpp/DBoHierarchy.rst @@ -0,0 +1,439 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +|newpage| + + +4. Case 2 - Hierarchy of DBo Derived Classes +============================================== + +Now we want to export the following C++ class hierarchy into Python: :: + + PyEntity <-- PyComponent <-+- PyContact + +- PySegment <-+- PyHorizontal + +- PyVertical + + +4.1 Base Class Header +~~~~~~~~~~~~~~~~~~~~~~~ + +**Remark:** this is only a partial description of the tree for the sake of +clarity. + +One important fact to remember is that ``PyEntity`` and ``PyComponent`` +being related to C++ abstract classes, no objects of those types will be +created, only ``PyContact``, ``PyHorizontal`` or ``PyVertical`` will. + +The consequence is that there is no ``PyEntity_Link()`` like in :ref:`3.1` +but instead two functions: + +#. ``PyEntity_NEW()`` which create the relevant ``PyEntity`` *derived* + object from the ``Entity`` one. For example, if the ``Entity*`` given + as argument is in fact a ``Horizontal*``, then the function will + return a ``PyHorizontal*``. + +#. ``EntityCast()`` do the reverse of ``PyEntity_NEW()`` that is, from + a ``PyEntity``, return the C++ *derived* object. Again, if the + ``PyEntity*`` is a ``PyHorizontal*``, the function will cast it as + a ``Horizontal*`` *then* return it as an ``Entity*``. + +.. code-block:: python + + #ifndef ISOBAR_PY_ENTITY_H + #define ISOBAR_PY_ENTITY_H + + #include "hurricane/isobar/PyHurricane.h" + #include "hurricane/Entity.h" + + namespace Isobar { + extern "C" { + + typedef struct { + PyObject_HEAD + Hurricane::Entity* _object; + } PyEntity; + + extern PyObject* PyEntity_NEW ( Hurricane::Entity* entity ); + extern void PyEntity_LinkPyType (); + extern PyTypeObject PyTypeEntity; + extern PyMethodDef PyEntity_Methods[]; + + + #define IsPyEntity(v) ( (v)->ob_type == &PyTypeEntity ) + #define PYENTITY(v) ( (PyEntity*)(v) ) + #define PYENTITY_O(v) ( PYENTITY(v)->_object ) + + } // extern "C". + + Hurricane::Entity* EntityCast ( PyObject* derivedObject ); + + } // Isobar namespace. + + #endif // ISOBAR_PY_ENTITY_H + +|newpage| + + +4.2 Base Class File +~~~~~~~~~~~~~~~~~~~~~ + +Changes from :ref:`3.2 Class Associated File` are: + +#. No call to ``DBoLinkCreateMethod()`` because there must be no ``PyEntity_Link()``, + but the definitions of ``PyEntity_NEW()`` and ``EntityCast``. + +#. For defining the ``PyTypeEntity`` Python type, we call a different + macro: ``PyTypeRootObjectDefinitions``, dedicated to base classes. + + +.. code-block:: c++ + + #include "hurricane/isobar/PyCell.h" + #include "hurricane/isobar/PyHorizontal.h" + #include "hurricane/isobar/PyVertical.h" + #include "hurricane/isobar/PyContact.h" + + namespace Isobar { + using namespace Hurricane; + + extern "C" { + + #if defined(__PYTHON_MODULE__) + + #define METHOD_HEAD(function) GENERIC_METHOD_HEAD(Entity,entity,function) + + DBoDestroyAttribute(PyEntity_destroy ,PyEntity) + + static PyObject* PyEntity_getCell ( PyEntity *self ) + { + Cell* cell = NULL; + HTRY + METHOD_HEAD( "Entity.getCell()" ) + cell = entity->getCell(); + HCATCH + return PyCell_Link( cell ); + } + + PyMethodDef PyEntity_Methods[] = + { { "getCell", (PyCFunction)PyEntity_getCell, METH_NOARGS + , "Returns the entity cell." } + , { "destroy", (PyCFunction)PyEntity_destroy, METH_NOARGS + , "Destroy associated hurricane object, the python object remains." } + , {NULL, NULL, 0, NULL} /* sentinel */ + }; + + + DBoDeleteMethod(Entity) + PyTypeObjectLinkPyType(Entity) + + #else // End of Python Module Code Part. + + PyObject* PyEntity_NEW ( Entity* entity ) + { + if (not entity) { + PyErr_SetString ( HurricaneError, "Invalid Entity (bad occurrence)" ); + return NULL; + } + + Horizontal* horizontal = dynamic_cast(entity); + if (horizontal) return PyHorizontal_Link( horizontal ); + + Vertical* vertical = dynamic_cast(entity); + if (vertical) return PyVertical_Link( vertical ); + + Contact* contact = dynamic_cast(entity); + if (contact) return PyContact_Link( contact ); + + Py_RETURN_NONE; + } + + PyTypeRootObjectDefinitions(Entity) + + #endif // Shared Library Code Part (1). + + } // extern "C". + + + #if !defined(__PYTHON_MODULE__) + + Hurricane::Entity* EntityCast ( PyObject* derivedObject ) { + if (IsPyHorizontal(derivedObject)) return PYHORIZONTAL_O(derivedObject); + if (IsPyVertical (derivedObject)) return PYVERTICAL_O(derivedObject); + if (IsPyContact (derivedObject)) return PYCONTACT_O(derivedObject); + return NULL; + } + + #endif // Shared Library Code Part (2). + + } // Isobar namespace. + +|newpage| + + +4.3 Intermediate Class Header +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Changes from :ref:`3.1 Class Associated Header File` are: + +#. As for ``PyEntity``, and because this is still an abstract class, + there is no ``PyComponent_Link()`` function. + +#. The definition of the ``PyComponent`` |struct| is differs. There is + no ``PyObject_HEAD`` (it is a Python *derived* class). The only + field is of the base class type ``PyEntity`` and for use with + Coriolis macros, **it must** be named ``_baseObject`` (note that + this is *not* a pointer but a whole object). + +.. code-block:: c++ + + #ifndef ISOBAR_PY_COMPONENT_H + #define ISOBAR_PY_COMPONENT_H + + #include "hurricane/isobar/PyEntity.h" + #include "hurricane/Component.h" + + namespace Isobar { + extern "C" { + + typedef struct { + PyEntity _baseObject; + } PyComponent; + + extern PyTypeObject PyTypeComponent; + extern PyMethodDef PyComponent_Methods[]; + extern void PyComponent_LinkPyType (); + + #define IsPyComponent(v) ((v)->ob_type == &PyTypeComponent) + #define PYCOMPONENT(v) ((PyComponent*)(v)) + #define PYCOMPONENT_O(v) (static_cast(PYCOMPONENT(v)->_baseObject._object)) + + } // extern "C". + } // Isobar namespace. + + #endif + + +4.4 Intermediate Class File +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Changes from :ref:`3.2 Class Associated File` are: + +1. Redefinition of the default macros ``ACCESS_OBJECT`` and ``ACCESS_CLASS``. + + * The pointer to the C++ encapsulated object (attribute ``_object``) is hold + by the base class ``PyEntity``. The ``ACCESS_OBJECT`` macro which is tasked + to give access to that attribute is then ``_baseObject._object`` as + ``PyComponent`` is a direct derived class of ``PyEntity``. + + * ``ACCESS_CLASS`` is similar to ``ACCESS_OBJECT`` for accessing the base + class, that is a pointer to ``PyEntity``. + +|newpage| + +2. For defining the ``PyTypeComponent`` Python type, we call a yet different + macro: ``PyTypeInheritedObjectDefinitions()``, dedicated to derived classes. + For this this macro we need to give as argument the derived class and the + base class. + +.. code-block:: c++ + + #include "hurricane/isobar/PyComponent.h" + #include "hurricane/isobar/PyNet.h" + + namespace Isobar { + using namespace Hurricane; + + extern "C" { + + #undef ACCESS_OBJECT + #undef ACCESS_CLASS + #define ACCESS_OBJECT _baseObject._object + #define ACCESS_CLASS(_pyObject) &(_pyObject->_baseObject) + #define METHOD_HEAD(function) GENERIC_METHOD_HEAD(Component,component,function) + + #if defined(__PYTHON_MODULE__) + + DirectGetLongAttribute(PyComponent_getX,getX,PyComponent,Component) + DirectGetLongAttribute(PyComponent_getY,getY,PyComponent,Component) + DBoDestroyAttribute(PyComponent_destroy,PyComponent) + + static PyObject* PyComponent_getNet ( PyComponent *self ) + { + Net* net = NULL; + HTRY + METHOD_HEAD( "Component.getNet()" ) + net = component->getNet( ); + HCATCH + return PyNet_Link( net ); + } + + PyMethodDef PyComponent_Methods[] = + { { "getX" , (PyCFunction)PyComponent_getX , METH_NOARGS + , "Return the Component X value." } + , { "getY" , (PyCFunction)PyComponent_getY , METH_NOARGS + , "Return the Component Y value." } + , { "getNet" , (PyCFunction)PyComponent_getNet , METH_NOARGS + , "Returns the net owning the component." } + , { "destroy", (PyCFunction)PyComponent_destroy, METH_NOARGS + , "destroy associated hurricane object, the python object remains." } + , {NULL, NULL, 0, NULL} /* sentinel */ + }; + + DBoDeleteMethod(Component) + PyTypeObjectLinkPyType(Component) + + #else // Python Module Code Part. + + PyTypeInheritedObjectDefinitions(Component, Entity) + + #endif // Shared Library Code Part. + + } // extern "C". + } // Isobar namespace. + + +4.5 Terminal Class Header +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The contents of this file is almost identical to `4.3 Intermediate Class Header`_, +save for the presence of a ``PyContact_Link()`` function. She is present +at this level because the class is a concrete one and can be instanciated. + +.. code-block:: c++ + + #ifndef ISOBAR_PY_CONTACT_H + #define ISOBAR_PY_CONTACT_H + + #include "hurricane/isobar/PyComponent.h" + #include "hurricane/Contact.h" + + namespace Isobar { + extern "C" { + + typedef struct { + PyComponent _baseObject; + } PyContact; + + extern PyTypeObject PyTypeContact; + extern PyMethodDef PyContact_Methods[]; + extern PyObject* PyContact_Link ( Hurricane::Contact* object ); + extern void PyContact_LinkPyType (); + + #define IsPyContact(v) ( (v)->ob_type == &PyTypeContact ) + #define PYCONTACT(v) ( (PyContact*)(v) ) + #define PYCONTACT_O(v) ( PYCONTACT(v)->_baseObject._baseObject._object ) + + } // extern "C". + } // Isobar namespace. + + #endif // ISOBAR_PY_CONTACT_H + + +4.6 Terminal Class File +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Changes from `4.4 Intermediate Class File`_ are: + +#. As previously, we have to redefine the macros ``ACCESS_OBJECT`` and ``ACCESS_CLASS``. + But, as we are one level deeper into the hierarchy, one more level of + indirection using ``_baseObject`` must be used. + + * ``ACCESS_OBJECT`` becomes ``_baseObject._baseObject._object``. + + * ``ACCESS_CLASS`` becomes ``&(_pyObject->_baseObject._baseObject)``. + +#. For defining the ``PyTypeContact`` Python type, we call again + ``PyTypeInheritedObjectDefinitions()``. It is the same whether the class is + terminal or not. + +#. And, this time, as the Python class is concrete, we call the macro + ``DBoLinkCreateMethod()`` to create the ``PyContact_Link()`` function. + + +.. code-block:: c++ + + #include "hurricane/isobar/PyContact.h" + + namespace Isobar { + using namespace Hurricane; + + extern "C" { + + #undef ACCESS_OBJECT + #undef ACCESS_CLASS + #define ACCESS_OBJECT _baseObject._baseObject._object + #define ACCESS_CLASS(_pyObject) &(_pyObject->_baseObject._baseObject) + #define METHOD_HEAD(function) GENERIC_METHOD_HEAD(Contact,contact,function) + + #if defined(__PYTHON_MODULE__) + + DirectGetLongAttribute(PyContact_getWidth , getWidth , PyContact,Contact) + DirectGetLongAttribute(PyContact_getHeight, getHeight, PyContact,Contact) + DBoDestroyAttribute(PyContact_destroy, PyContact) + + static PyObject* PyContact_create ( PyObject*, PyObject *args ) + { + Contact* contact = NULL; + HTRY + // Usual signature then arguments parsing. + HCATCH + return PyContact_Link(contact); + } + + PyMethodDef PyContact_Methods[] = + { { "create" , (PyCFunction)PyContact_create , METH_VARARGS|METH_STATIC + , "Create a new Contact." } + , { "destroy" , (PyCFunction)PyContact_destroy , METH_NOARGS + , "Destroy associated hurricane object, the python object remains." } + , { "getWidth" , (PyCFunction)PyContact_getWidth , METH_NOARGS + , "Return the contact width." } + , { "getHeight", (PyCFunction)PyContact_getHeight, METH_NOARGS + , "Return the contact height." } + , {NULL, NULL, 0, NULL} /* sentinel */ + }; + + DBoDeleteMethod(Contact) + PyTypeObjectLinkPyType(Contact) + + #else // Python Module Code Part. + + DBoLinkCreateMethod(Contact) + PyTypeInheritedObjectDefinitions(Contact, Component) + + #endif // Shared Library Code Part. + + } // extern "C". + } // Isobar namespace. + + +4.8 Python Module +~~~~~~~~~~~~~~~~~~~ + +.. code-block:: c++ + + DL_EXPORT(void) initHurricane () + { + PyEntity_LinkPyType(); // step 1. + PyComponent_LinkPyType(); + PyContact_LinkPyType(); + + PYTYPE_READY( Entity ) // step 2. + PYTYPE_READY_SUB( Component, Entity ) + PYTYPE_READY_SUB( Contact , Component ) + + __cs.addType( "ent" , &PyTypeEntity , "" , false ); // step 3. + __cs.addType( "comp" , &PyTypeComponent, "", false, "ent" ); + __cs.addType( "contact", &PyTypeContact , "" , false, "comp" ); + + PyObject* module = Py_InitModule( "Hurricane", PyHurricane_Methods ); + if (module == NULL) { + cerr << "[ERROR]\n" + << " Failed to initialize Hurricane module." << endl; + return; + } + + Py_INCREF( &PyTypeContact ); // step 4. + PyModule_AddObject( module, "Contact", (PyObject*)&PyTypeContact ); // step 4. + } diff --git a/documentation/PythonCpp/DBoStandalone.rst b/documentation/PythonCpp/DBoStandalone.rst new file mode 100644 index 00000000..36cdb46e --- /dev/null +++ b/documentation/PythonCpp/DBoStandalone.rst @@ -0,0 +1,395 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +3. Case 1 - DBo Derived, Standalone +====================================== + +As example, we take ``Library``. This a ``DBo`` derived class, but we +choose not to export the parent classes. From Python, it will appear +as a base class. + +.. _3.1: + +.. _3.1 Class Associated Header File: + +3.1 Class Associated Header File +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Here is the typical content of a header file (for ``PyLibrary``): + +.. code-block:: c++ + + #ifndef PY_LIBRARY_H + #define PY_LIBRARY_H + + #include "hurricane/isobar/PyHurricane.h" + #include "hurricane/Library.h" + + namespace Isobar { + using namespace Hurricane; + + extern "C" { + + typedef struct { + PyObject_HEAD + Library* _object; + } PyLibrary; + + extern PyTypeObject PyTypeLibrary; + extern PyMethodDef PyLibrary_Methods[]; + extern PyObject* PyLibrary_Link ( Hurricane::Library* lib ); + extern void PyLibrary_LinkPyType (); + + + #define IsPyLibrary(v) ( (v)->ob_type == &PyTypeLibrary ) + #define PYLIBRARY(v) ( (PyLibrary*)(v) ) + #define PYLIBRARY_O(v) ( PYLIBRARY(v)->_object ) + + } // extern "C". + } // Isobar namespace. + + #endif // PY_LIBRARY_H + + +The code is organized as follow: + +1. It must have, *as the first include* ``PyHurricane.h``, which provides + the complete bunch of macros needed to build the module. Then the include + of the C++ class we want to wrap (``Library.h``). + +2. As Python is written in C, all the wrapper code has to be but inside + an ``extern "C"`` namespace. + +3. Definition of the wrapped |struct|, ``PyLibrary``. It is standard Python here. + + .. note:: + For our set of macros to work, the name of the pointer to the + C++ class must always be **_object**, and the various functions and + macros defined here must take the name of the class (either in + lowercase, camel case or capitals). + +4. Declaration of the Python type ``PyTypeLibrary`` (standard). + +5. Declaration of the Python type table of methods ``PyLibrary_Methods`` (standard). + +.. _3.6: + +6. Declaration of ``PyLibrary_Link()``, helper to convert a C++ ``Lybrary`` into + a ``PyLibrary`` (put in the support shared library). + +7. Declaration of ``PyLibrary_LinkPyType()``, this function setup the class-level + function of the new Python type (here, ``PyTypeLibrary``). + +8. And, lastly, three macros to: + + * ``IsPylibrary()``, know if a Python object is a ``PyLibrary`` + * ``PYLIBRARY()``, force cast (C style) of a ``PyObject`` into a ``PyLibrary``. + * ``PYLIBRARY_O()``, extract the C++ object (``Library*``) from the Python + object (``PyLibrary``). + + +.. _3.2 Class Associated File: + +3.2 Class Associated File +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +3.2.1 Head of the file +------------------------ + +.. code-block:: c++ + + #include "hurricane/isobar/PyLibrary.h" + #include "hurricane/isobar/PyDataBase.h" + #include "hurricane/isobar/PyCell.h" + + namespace Isobar { + using namespace Hurricane; + + extern "C" { + + #define METHOD_HEAD(function) GENERIC_METHOD_HEAD(Library,lib,function) + +As for the header, all the code must be put inside a ``extern "C"`` namespace. + +A convenience macro ``METHOD_HEAD()`` must be defined, by refining +``GENERIC_METHOD_HEAD()``. This macro will be used in the method wrappers +below to cast the ``_object`` field of the Python object into the +appropriate C++ class, this is done using a C-style cast. +The parameters of that macro are: + +#. The C++ encapsulated class (``Library``). +#. The name of the *variable* that will be used to store a pointer + to the C++ working object. +#. The name of the C++ method which is to be wrapped. + + +3.2.2 The Python Module Part +------------------------------ + +First, we have to build all the wrappers to the C++ methods of +the class. For common predicates, accessors, and mutators macros +are supplied. + +Wrapping of the ``Library::getCell()`` method: + +.. code-block:: c++ + + static PyObject* PyLibrary_getCell ( PyLibrary* self, PyObject* args ) + { + Cell* cell = NULL; + + HTRY + METHOD_HEAD( "Library.getCell()" ) + char* name = NULL; + if (PyArg_ParseTuple(args,"s:Library.getCell", &name)) { + cell = lib->getCell( Name(name) ); + } else { + PyErr_SetString( ConstructorError + , "invalid number of parameters for Library::getCell." ); + return NULL; + } + HCATCH + + return PyCell_Link(cell); + } + +Key points about this method wrapper: + +#. The ``HTRY`` / ``HCATCH`` macros provides an insulation from the C++ + exceptions. If one is emitted, it will be catched and transformed in + a Python one. This way, the Python program will be cleanly interrupted + and the usual stack trace displayed. + +#. The returned value of this method is of type ``Cell*``, we have to + transform it into a Python one. This is done with ``PyCell_Link()``. + This macro is supplied by the ``PyCell.h`` header and this is why + it must be included. + +|newpage| + + +Wrapping of the ``Library::create()`` method: + +.. code-block:: c++ + + static PyObject* PyLibrary_create( PyObject*, PyObject* args ) + { + PyObject* arg0; + PyObject* arg1; + Library* library = NULL; + + HTRY + __cs.init( "Library.create" ); // Step (1). + if (not PyArg_ParseTuple( args, "O&O&:Library.create" + , Converter, &arg0 + , Converter, &arg1 )) { // Step (2). + PyErr_SetString( ConstructorError + , "invalid number of parameters for Library constructor." ); + return NULL; + } + if (__cs.getObjectIds() == ":db:string") { // Step (3.a) + DataBase* db = PYDATABASE_O(arg0); + library = Library::create( db, Name(PyString_AsString(arg1)) ); + } else if (__cs.getObjectIds() == ":library:string") { // Step (3.b) + Library* masterLibrary = PYLIBRARY_O(arg0); + library = Library::create( masterLibrary, Name(PyString_AsString(arg1)) ); + } else { + PyErr_SetString( ConstructorError + , "invalid number of parameters for Library constructor." ); + return NULL; + } + HCATCH + + return PyLibrary_Link( library ); + } + +Key point about this constructor: + +#. We want the Python interface to mimic as closely as possible the + C++ API. As such, Python object will be created using a static + ``.create()`` method. So we do not use the usual Python allocation + mechanism. + +#. As it is a *static* method, there is no first argument. + +#. Python do not allow function overload like C++. To emulate that + behavior we use the ``__cs`` object (which is a global variable). + + #. Init/reset the ``__cs`` object: see *step (1)*. + + #. Call ``PyArg_ParseTuple()``, read every mandatory or optional + argument as a Python object (``"O&"``) and use ``Converter`` + on each one. ``Converter`` will determine the real type of + the Python object given as argument by looking at the + encapsulated C++ class. It then update the ``__cs`` object. + Done in *step (2)* + + #. After the call to ``PyArg_ParseTuple()``, the function + ``__cs.getObjectIds()`` will return the *signature* of + the various arguments. In our case, the valid signatures + will be ``":db:string"`` (*step (3.a)*a) and ``":library:string"`` + (*step (3.b)*). + + #. Call the C++ method after extracting the C++ objects from + the Python arguments. Note the use of the ``PYLIBRARY_O()`` + and ``PYDATABSE_O()`` macros to perform the conversion. + +#. Return the result, encapsulated through a call to ``PyLibrary_Link()``. + +|newpage| + + +Wrapping of the ``Library::destroy()`` method: + +.. code-block:: c++ + + DBoDestroyAttribute(PyLibrary_destroy, PyLibrary) + +For C++ classes **that are derived** from ``DBo``, the destroy method +wrapper must be defined using the macro ``DBoDestroyAttribute()``. +This macro implements the bi-directional communication mechanism +using ``Hurricane::Property``. It **must not** be used for +non ``DBo`` derived classes. + + +Defining the method table of the PyLibrary type: + +.. code-block:: c++ + + PyMethodDef PyLibrary_Methods[] = + { { "create" , (PyCFunction)PyLibrary_create , METH_VARARGS|METH_STATIC + , "Creates a new library." } + , { "getCell" , (PyCFunction)PyLibrary_getCell, METH_VARARGS + , "Get the cell of name " } + , { "destroy" , (PyCFunction)PyLibrary_destroy, METH_NOARGS + , "Destroy associated hurricane object The python object remains." } + , {NULL, NULL, 0, NULL} /* sentinel */ + }; + + +This is standard Python/C API. The name of the ``PyMethodDef`` table must be +named from the class: ``PyLibrary_Methods``. + + +3.2.3 Python Type Linking +--------------------------- + +Defining the ``PyTypeLibrary`` class methods and the type linking function. + +Those are the functions for the Python object itself to work, not the +wrapped method from the C++ class. + +.. note:: + At this point we **do not** define the ``PyTypeLibrary`` itself. + Only it's functions and a function to set them up *once* the + type will be defined. + +.. code-block:: c++ + + DBoDeleteMethod(Library) + PyTypeObjectLinkPyType(Library) + + +The macro ``DBoDeleteMethod()`` define the function to delete a +``PyLibrary`` *Python* object. Again, do not mistake it for the deletion +of the C++ class (implemented by ``DBoDestroyAttribute()``). +Here again, ``DBoDeleteMethod()`` is specially tailored for +``DBo`` derived classes. + +.. _PyLibrary_LinkPyType(): + +To define ``PyLibrary_LinkPyType()``, use the ``PyTypeObjectLinkPyType()`` +macro. This macro is specific for ``DBo`` derived classes that are seen as +base classes under Python (i.e. we don't bother exposing the base +class under Python). ``PyLibrary_LinkPyType()`` setup the class functions +in the ``PyTypeLibrary`` type object, it **must** be called in the +Python module this class is part of (in this case: ``PyHurricane.cpp``). +This particular flavor of the macro *will define* and setup the +following class functions: + +* ``PyTypeLibrary.tp_compare`` (defined by the macro). +* ``PyTypeLibrary.tp_repr`` (defined by the macro). +* ``PyTypeLibrary.tp_str`` (defined by the macro). +* ``PyTypeLibrary.tp_hash`` (defined by the macro). +* ``PyTypeLibrary.tp_methods`` sets to the previously defined ``PyLibrary_Methods`` table. +* ``PyTypeLibrary.tp_dealloc`` is set to a function that *must* be named ``PyLibrary_DeAlloc``, + this is what ``DBoDeleteMethod`` does. It is *not* done by ``PyTypeObjectLinkPyType``. + +Defining the ``PyTypeLibrary`` type: + + +3.2.4 The Shared Library Part +------------------------------- + +This part will be put in a separate supporting shared library, allowing +other Python module to link against it (and make use of its symbols). + +.. code-block:: c++ + + DBoLinkCreateMethod(Library) + PyTypeObjectDefinitions(Library) + + +To define ``PyTypeLibrary``, use the ``PyTypeObjectDefinitions()`` macro. +This macro is specific for classes that, as exposed by Python, +are neither *derived* classes nor *base* classes for others. +That is, they are standalone from the inheritance point of view. + +The ``DBoLinkCreateMethod()`` macro will define the ``PyLibrary_Link()`` +function which is responsible for encapsulating a C++ ``Library`` object +into a Python ``PyLibrary`` one. + + +3.3 Python Module (C++ namespace) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +We use the Python module to replicate the C++ *namespace*. Thus, for the +``Hurricane`` namespace we create a Python ``Hurricane`` module which is +defined in the ``PyHurricane.cpp`` file, then we add into that module +dictionary all the Python types encapsulating the C++ classes of that +namespace. + +.. code-block:: c++ + + DL_EXPORT(void) initHurricane () + { + PyLibrary_LinkPyType(); // step 1. + + PYTYPE_READY( Library ) // step 2. + + __cs.addType( "library", &PyTypeLibrary, "", false ); // step 3. + + PyObject* module = Py_InitModule( "Hurricane", PyHurricane_Methods ); + if (module == NULL) { + cerr << "[ERROR]\n" + << " Failed to initialize Hurricane module." << endl; + return; + } + + Py_INCREF( &PyTypeLibrary ); // step 4. + PyModule_AddObject( module, "Library", (PyObject*)&PyTypeLibrary ); // step 4. + } + +The ``initHurricane()`` initialisation function shown above has +been scrubbed of everything not relevant to the ``PyLibrary`` class. +The integration of the ``PyLibrary`` class into the module needs +four steps: + +#. A call to `PyLibrary_LinkPyType()`_ to hook the Python type functions + in the Python type object. + +#. A call to the ``PYTYPE_READY()`` macro (standard Python). + +#. Registering the type into the ``__cs`` object, with ``addType()``. + The arguments are self explanatory, save for the last which is a + boolean to tell if this is a *derived* class or not. + +#. Adding the type object (``PyTypeLibrary``) into the dictionnary of + the module itself. This allow to mimic closely the C++ syntax: + + .. code-block:: python + + import Hurricane + lib = Hurricane.Library.create( db, 'root' ) diff --git a/documentation/PythonCpp/DbU.rst b/documentation/PythonCpp/DbU.rst new file mode 100644 index 00000000..930e76d1 --- /dev/null +++ b/documentation/PythonCpp/DbU.rst @@ -0,0 +1,67 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +6. Encapsulating DbU +====================== + +While ``Hurricane::DbU`` is a class, the ``Hurricane::DbU::Unit`` is only +a ``typedef`` over ``uint64_t``. The ``DbU`` class only provides a set of +static methods to manipulate and convert to and from other units. +At Python level, ``DbU::Unit`` will be stored in plain ``long long``. + +When a ``DbU::Unit`` argument is expected in a Python functions, just use +the ``DbU::Unit PyAny_AsLong( PyObject* )`` function to convert it. + +For example, if we explicit the expension of: + +.. code-block:: c++ + + DirectSetLongAttribute(PyPoint_SetX,setX,PyPoint,Point) + +|newpage| + +We would get: + +.. code-block:: c++ + + static PyObject* PyPoint_setX ( PyPoint *self, PyObject* args ) + { + Point* cobject = static_cast( self->_object ); + if (cobject == NULL) { + PyErr_SetString( ProxyError + , "Attempt to call Point.setX() on an unbound Hurricane object" ); + return NULL; + } + + HTRY + PyObject* arg0 = NULL; + if (not PyArg_ParseTuple( args, "O:Point.setX()", &arg0 )) + return ( NULL ); + cobject->setX( Isobar::PyAny_AsLong(arg0) ); + HCATCH + Py_RETURN_NONE; + } + + +For the other way around, use ``PyObject* PyDbU_FromLong( DbU::Unit )``. + +.. code-block:: c++ + + DirectGetLongAttribute(PyPoint_GetX,getX,PyPoint,Point) + +We would get: + +.. code-block:: c++ + + static PyObject* PyPoint_GetX ( PyPoint *self, PyObject* args ) + { + Point* cobject = static_cast( self->_object ); + if (cobject == NULL) { + PyErr_SetString( ProxyError + , "Attempt to call Point.getX() on an unbound Hurricane object" ); + return NULL; + } + return Isobar::PyDbU_FromLong(cobject->getX()); + } diff --git a/documentation/PythonCpp/Introduction.rst b/documentation/PythonCpp/Introduction.rst new file mode 100644 index 00000000..5a3300e4 --- /dev/null +++ b/documentation/PythonCpp/Introduction.rst @@ -0,0 +1,185 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +1. Introduction +================= + +* This document is written for people already familiar with the + `Python/C API Reference Manual`_. + +* The macros provided by the Hurricane Python/C API are written using + the standard Python C/API. That is, you may not use them and write + directly your functions with the original API or any mix between. + You only have to respect some naming convention. + +* Coriolis is build against Python 2.7. + + +1.1 First, A Disclaimer +~~~~~~~~~~~~~~~~~~~~~~~~~ + +The Hurricane Python/C++ API has been written about ten years ago, at a time +my mastering of template programming was less than complete. This is why this +interface is build with old fashioned C macro instead of C++ template. + +It is my hope that at some point in the future I will have time to completly +rewrite it, borrowing the interface from ``boost::python``. + + +1.2 About Technical Choices +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Some would say, why not use *off the shelf* wrappers like ``swig`` +or ``boost::python``, here are some clues. + +#. **Partial exposure of the C++ class tree.** We expose at Python level + C++ base classes, only if they provides common methods that we want + to see. Otherwise, we just show them as base classes under Python. + For instance ``Library`` is derived from ``DBo``, but we won't see + it under Python. + +#. **Bi-directional communication.** When a Python object is deleted, the + wrapper obviously has a pointer toward the underlying C++ object and + is able to delete it. But, the reverse case can occurs, meaning that + you have a C++ object wrapped in Python and the database delete the + underlying object. The wrapped Python object *must* be informed that + it no longer refer a valid C++ one. Moreover, as we do not control + when Python objects gets deleteds (that is, when their reference count + reaches zero), we can have valid Python object with a dangling + C++ pointer. So our Python objects can be warned by the C++ objects + that they are no longer valid and any other operation than the + deletion should result in a severe non-blocking error. + + To be precise, this apply to persistent object in the C++ database, + like ``Cell``, ``Net``, ``Instance`` or ``Component``. Short lived + objects like ``Box`` or ``Point`` retains the classic Python behavior. + + Another aspect is that, for all derived ``DBo`` objects, one and only + one Python object is associated. For one given ``Instance`` object we + will always return the *same* ``PyInstance`` object, thanks to the + bi-directional link. Obviously, the *reference count* of the + ``PyInstance`` is managed accordingly. This mechanism is implemented + by the ``PyInstance_Link()`` function. + +#. **Linking accross modules.** As far as I understand, the wrappers + are for monolithic libraries. That is, you wrap the entire library + in one go. But Hurricane has a modular design, the core database + then various tools. We do not, and cannot, have one gigantic wrapper + that would encompass all the libraries in one go. We do one Python + module for one C++ library. + + This brings another issue, at Python level this time. The Python + modules for the libraries have to share some functions. Python + provides a mechanism to pass C function pointers accross modules, + but I did found it cumbersome. Instead, all our modules are split + in two: + + * The first part contains the classic Python module code. + * The second part is to be put in a separate dynamic library that + will hold the shared functions. The Python module is dynamically linked + against that library like any other. And any other Python module + requiring the functions will link against the associated shared + library. + + Each module file will be compiled *twice*, once to build the Python + module (``__PYTHON_MODULE`` is defined) and once to build the supporting + shared library (``__PYTHON_MODULE__`` **not** defined). This tricky + double compilation is taken care of though the ``add_python_module`` + ``cmake`` macro. + + For the core Hurricane library we will have: + + * ``Hurricane.so`` the Python module (use with: ``import Hurricane``). + * ``libisobar.so.1.0`` the supporting shared library. + + The ``PyLibrary.cpp`` file will have the following structure: + + .. code-block:: c++ + + #include "hurricane/isobar/PyLibrary.h" + + namespace Isobar { + + extern "C" { + + #if defined(__PYTHON_MODULE__) + + // +=================================================================+ + // | "PyLibrary" Python Module Code Part | + // +=================================================================+ + // + // The classic part of a Python module. Goes into Hurricane.so. + + + #else // End of Python Module Code Part. + + // x=================================================================x + // | "PyLibrary" Shared Library Code Part | + // x=================================================================x + // + // Functions here will be part of the associated shared library and + // made available to all other Python modules. Goes into libisobar.so.1.0 + + + # endif // Shared Library Code Part. + + } // extern "C". + + } // Isobar namespace. + + + This way, we do not rely upon a pointer transmission through Python + modules, but directly uses linker capabilities. + + +1.3 Botched Design +~~~~~~~~~~~~~~~~~~~~ + +The mechanism to compute the signature of a call to a Python function, +the ``__cs`` object, is much too complex and, in fact, not needed. +At some point I may root it out, but it is used in so many places... + +What I should have used the ``"O!"`` capablity of ``PyArg_ParseTuple()``, +like in the code below: + +|newpage| + +.. code-block:: c++ + + static PyObject* PyContact_create ( PyObject*, PyObject *args ) + { + Contact* contact = NULL; + HTRY + PyNet* pyNet = NULL; + PyLayer* pyLayer = NULL; + PyComponent* pyComponent = NULL; + DbU::Unit x = 0; + DbU::Unit y = 0; + DbU::Unit width = 0; + DbU::Unit height = 0; + + if (PyArg_ParseTuple( args, "O!O!ll|ll:Contact.create" + , &PyTypeNet , &pyNet + , &PyTypeLayer, &pyLayer + , &x, &y, &width, &height)) { + contact = Contact::create( PYNET_O(pyNet), PYLAYER_O(pyLayer) + , x, y, width, height ); + } else { + PyErr_Clear(); + if (PyArg_ParseTuple( args, "O!O!ll|ll:Contact.create" + , &PyTypeComponent, &pyComponent + , &PyTypeLayer , &pyLayer + , &x, &y, &width, &height)) { + contact = Contact::create( PYCOMPONENT_O(pyComponent), PYLAYER_O(pyLayer) + , x, y, width, height ); + } else { + PyErr_SetString( ConstructorError + , "invalid number of parameters for Contact constructor." ); + return NULL; + } + } + HCATCH + return PyContact_Link( contact ); + } diff --git a/documentation/PythonCpp/Name.rst b/documentation/PythonCpp/Name.rst new file mode 100644 index 00000000..bb4470e8 --- /dev/null +++ b/documentation/PythonCpp/Name.rst @@ -0,0 +1,9 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +7. No C++ Hurricane::Name encapsulation +========================================== + +To be written. diff --git a/documentation/PythonCpp/NonDBo.rst b/documentation/PythonCpp/NonDBo.rst new file mode 100644 index 00000000..db9f570a --- /dev/null +++ b/documentation/PythonCpp/NonDBo.rst @@ -0,0 +1,171 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +5. Case 3 - Non-DBo Standalone Classe +======================================= + +Let's have a look at the encapsulation of ``Hurricane::Point``. + +Non-BDo derived classes do not support the bi-directionnal communication. +So each Python object is associated with one C++ object. The C++ object +is created and deleted along with the Python one. This behavior implies +that the C++ object is *copy constructible* (which should be the case). + + +5.1 Class Header +~~~~~~~~~~~~~~~~~~ + +Changes from :ref:`3.1 Class Associated Header File`: + +* There is no ``PyPoint_Link()`` function, as it's related to the + bi-directional communication mechanism. + +.. note:: + **About the _object attribute** of the PyPoint. As the C++ object life span + (``Point``) is linked to the Python (``PyPoint``) one, we may have used a + value instead of a pointer. It is best to keep a pointer as the macros + written for ``DBo`` derived classes will remain usables. + + +.. code-block:: c++ + + #ifndef ISOBAR_PY_POINT_H + #define ISOBAR_PY_POINT_H + + #include "hurricane/isobar/PyHurricane.h" + #include "hurricane/Point.h" + + namespace Isobar { + extern "C" { + + typedef struct { + PyObject_HEAD + Hurricane::Point* _object; + } PyPoint; + + extern PyTypeObject PyTypePoint; + extern PyMethodDef PyPoint_Methods[]; + extern void PyPoint_LinkPyType(); + + #define IsPyPoint(v) ( (v)->ob_type == &PyTypePoint ) + #define PYPOINT(v) ( (PyPoint*)(v) ) + #define PYPOINT_O(v) ( PYPOINT(v)->_object ) + + } // extern "C". + } // Isobar namespace. + + #endif // ISOBAR_PY_POINT_H + +|newpage| + + +5.2 Class File +~~~~~~~~~~~~~~~~ + +Changes from :ref:`3.2 Class Associated File`: + +* As there is no ``PyPoint_Link()`` function, there is no call to any + flavor of the ``DBoLinkcreatemethod()`` macro (obvious as it's *not* + a ``DBo``). + +* To use the standard Python constructor, we have to define ``PyPoint_NEW()`` + and ``PyPoint_Init()`` functions, I'm not absolutely certain that the later + needs to be defined (that part is still not clear to me from the Python doc). + +* As it's not a ``DBo`` there is no ``destroy()`` method, so no call to + ``DirectDestroyMethod()`` + +* Lastly, as this object has a ``PyPoint_NEW()`` (field ``tp_new``) and + a ``PyPoint_Init()`` (field ``tp_init``) we have to use the macro + ``PyTypeObjectLinkPyTypeNewInit()`` to define ``PyPoint_LinkPyType()``. + + +.. code-block:: c++ + + #include "hurricane/isobar/PyPoint.h" + + namespace Isobar { + using namespace Hurricane; + + extern "C" { + + #define METHOD_HEAD(function) GENERIC_METHOD_HEAD(Point,point,function) + + #if defined(__PYTHON_MODULE__) + + static PyObject* PyPoint_NEW ( PyObject* module, PyObject *args ) + { + Point* point = NULL; + HTRY + PyObject* arg0 = NULL; + PyObject* arg1 = NULL; + + __cs.init( "Point.Point" ); + if (not PyArg_ParseTuple( args,"|O&O&:Point.Point" + , Converter,&arg0 + , Converter,&arg1 )) { + PyErr_SetString ( ConstructorError + , "invalid number of parameters for Point constructor." ); + return NULL; + } + + if (__cs.getObjectIds() == "") + { point = new Point()); } + else if (__cs.getObjectIds() == ":point") + { point = new Point( *PYPOINT_O(arg0) ); } + else if (__cs.getObjectIds() == ":int:int") + { point = new Point( PyAny_AsLong(arg0), PyAny_AsLong(arg1) ); } + else { + PyErr_SetString ( ConstructorError + , "invalid number of parameters for Point constructor." ); + return NULL; + } + + PyPoint* pyPoint = PyObject_NEW( PyPoint, &PyTypePoint ); + if (pyPoint == NULL) { delete point; return NULL; } + pyPoint->_object = point; + HCATCH + + return (PyObject*)pyPoint; + } + + static int PyPoint_Init ( PyPoint* self, PyObject* args, PyObject* kwargs ) + { return 0; } + + DirectGetLongAttribute(PyPoint_getX,getX,PyPoint,Point) + DirectGetLongAttribute(PyPoint_getY,getY,PyPoint,Point) + DirectSetLongAttribute(PyPoint_SetX,setX,PyPoint,Point) + DirectSetLongAttribute(PyPoint_SetY,setY,PyPoint,Point) + + PyMethodDef PyPoint_Methods[] = + { { "getX" , (PyCFunction)PyPoint_getX , METH_NOARGS + , "Return the Point X value." } + , { "getY" , (PyCFunction)PyPoint_getY , METH_NOARGS + , "Return the Point Y value." } + , { "setX" , (PyCFunction)PyPoint_SetX , METH_VARARGS + , "Modify the Point X value." } + , { "setY" , (PyCFunction)PyPoint_SetY , METH_VARARGS + , "Modify the Point Y value." } + , {NULL, NULL, 0, NULL} /* sentinel */ + }; + + DirectDeleteMethod(PyPoint_DeAlloc,PyPoint) + PyTypeObjectLinkPyTypeNewInit(Point) + + #else // Python Module Code Part. + + PyTypeObjectDefinitions(Point) + + #endif // Shared Library Code Part. + + } // extern "C". + } // Isobar namespace. + + +5.2 Class File +~~~~~~~~~~~~~~~~ + +To put it bluntly, there is no difference in the Python module for +a standalone ``DBo`` class and a non-``DBo`` class. diff --git a/documentation/PythonCpp/PythonCpp.pdf b/documentation/PythonCpp/PythonCpp.pdf index a23b9254a040a527aa3c6f28ecc016f41ee06db1..c5b7b45e3e8f06f25bc3c42f0c53b15df809f775 100644 GIT binary patch delta 92792 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 delta 92401 zcmZU*Q;;r96ErwFW81cE+qP}n&*+S8+qP{RXKdS^+4tMs*!Uy1ukxy+t0TIrDl@xR zdZ61oq3bI_G1=G%83`SXt)Y2&p&4Y&>@8d^37OcL8Iy$QsFFg#;Q?roBRCS7=C-Ac z>G7&8SQKTZ8#2C<4BwxB2#~2Vmxq+eWxF9J@qu*X2|NU7(P0u30FWdcNmafNV>I;P zManW_4}B4C$vpDWC#sr44|7NU>~f2oTEpwd*)$xVWKbF&3(N=)oLV2mL(S>mt=i&g z1dnU_nf6jBsVe3PA47^{hczqEh=0oes#k7{hi<&p zRDIq@Xhq=X>R}_3VqBUCd6+7^xfvYy&rX!YlBAN^u|MZU-;qDPAR2ag*hLC6#pO#E7`|Zd#WHYVw__*z>jRNs7~$Sa{W(WTnDcf$ z$Zn1b9+xbV>QCc6iStb zmFK@1uo&ntX1nl6=pOO8LY;e{oO;@&)xAbW9+bPZPm@5)6ZyNd1>MA4 z#C`qE=f)YW^?cx~d~7Ox+5%qG)9XImg#nHi*}$plgeokKN(kdA0MA zNuUV%=d3?C&=WVi#v6i<+#9hsz&61Ci`Z9UHU(9chekCn#O0MfRyE=tZDKa*a)sL* zaC+P%U-`w{9@WSpg!xX4scXYtE@v4NK385gkV@Ub_N{xH%T4+)=GqWkCZpMyRv)r5 z_UC7r>Bku5jpn4^N%hb7)b8DjpITD)1p?e^6~f;!u58XGk1=>{(1YN&D|4Kh^3~QM zcE@_aQ4jtckU~)w3)l`lbfa~9A&xT+04NkR-?(6($Ul58oT5f>MLqxSe7Jf}e%dFe zPv3Y4jr<5%v26YXQDFF#B6p+fp@eiZ+uyUawRoe_;ly^$X*h7^qQAVkbiD?@#ACs& z0nD}g^BRI&RgKkc_*6@!pmeJO9&Iu~v0zK)uiUsP2HK6YXUfnSStHPY`;t8hCid zl^n>*;K?_5!lZ-6|Gvd=zp4S02Y41#3@PM)Ry_W>_Hw90qqn6Nagp$c&$-N&n=J?7 zP;C=5efwMB(?Kq)Hk%GZ+>7|ik1wUv@-PA6QYoq+5mZZjITl-v^!#1go?F7leN|U| z?$#G4z<>L3!vc3`Tp=DmJeK>0{!7D_&I|#shOLJE-xU6ulPT42$}Ipsm}7P?q7%o- zlII}9({G*YI&FYq5C#O?&Be-K`TqHS+73)q9Kj6e{d?;ZaB@`bSnKy-H)Wo0O$S)` z|L)!7VqxI-C&rH7@o@`-=S;@RW}@E|ID&96xfUAvPvORi%?UMrDyR`fGeHbLAEihh zVy-`XYQKFB_u=KwDV?>@Zk=KY^OIF5$g^1$NJ4!(|Iy&x9i4EQ@sB!)ZImz(V_ zVk%;pL6B3iuhKG$qH?2;@!IFA=Evn$Q|NeAocFV#of?W4ff6scJ7_a|Qx{ifGb6kI zq5mZwCU&m>e+pt@`!6y5ZzPG+ktE&0fdLL%k^J)v3Z6@KH&jDqbivL!A`3}xl#7WI zNfc}~CN;8a{_({2sKx&JVV{9RI&+SZABSOqAjXOpeO`iwYY0>yto&Fn8T9NpHB1s` zNVZ)3Hb^&xTlkis;76!df844YR2#IOR@PMAtgvaUe<;{7;ZBv#eOB7#ON~Wn{sO!# zCp8S79SmDZ)8&eJBbQ)T8&UiwOn?DQ&#-G|PQ@rEJfpJovJ@mW!5!@xFh7`IR!iTN zS9L#rX66wZ(+*-K3C70H*9sa2zG!v5!Mi)v2a;so&so>+OVW*`(#$M3V`?7HYgL@4 zaRD8gq{*p7fc9|aT0W}i@)aWkG(ZI_Tx+sn*?EXmGDzNcX}e~ol&H2BJ^S}NTHM;T zJLMHpdJIpb!EHKNs2S89+^Aktco~$hGUv=PN}+`bIfaq9Ptef-K2Opm9UjlB?&Y!W zv!B&)K*Vz`pUGu~t%6&`ad+!->iY{ij{AE(85>mN<_7>LA(Xd-fnE`k1yG-)GM_{HTGZSnN@O3NOvbczv4 z6f>qd1e_P&zOmylLN0jYOQu=E`0}qSHktEBItC>u-l~Eo%ddTc zn_2b2zHe=0cR?za!3eVf7l2VH>dC5CdTtFjBQi;z)a$@aXa*^MQt^&k0&KmB`tD}aFc^^L|e3hKlL zf8(_^5XNXKCNztx&Phc7sJ|x9T_w~v+Q;af^S=F#TD60|1; zRNBjblg~fz1X5HO51z1@#Ch%(XnF)J}8Q_PMDvGFRWD(kovMP5=3bK%$34dGN zt?-Ay6u!zcifs`jr#pzlHE0;3>9}!7F4ZhEgkzvfR%a&Nl6*zGRCY`~Xp~h>>+J7wIa$7m{6^ zJBu8*9}l+8{UEp~{UNrc$vkJ&z}-`a6|-=$kQ2E7Zm%f>3W+o9F=Y6k%BO0J62iI% zS_}VjP4Lo_@kor22M+01un&ExHKvMAB@Z#1Fpd0pq^+2p9i?eILagW+I@KLabUwqq*FGYN) z8%iXCfyiFn1i`}=)MK*powlvE?9U*W17ViUq2sB%7IV!rJih4F^bV)tZA=nrM4$@o zui&wbxX2ONf3vBWi@oLk7TL}fy*gs`;KOTIm|s1m%K?0*h2I%h@Z{ZwYb22ZJW7jb zpFh7(Zf@2P^88*NZwY?9Uj2;@wI#Ua^ThcCyJUZi%EvI27*hOk7!Z-BSC47tD;haj z12owtZVPH68+AhX(Pjb^G&7JL6Vu%5C;yDVXTxFDL8&(rqy06gel>y~{S>sH@*$t} z5u|flKmnYgI3Z>-^)kYV@>E!a^SR2b6jXc2ELsmz11vGX%9kpdfuIgAF6{E*QO+er zQEBE@4FEo`Lx~#~;V=%+n~#IM(Gu&H8F^%8>!cT8^i$6TuC-M}JOnA2-4t}hjF%`a znBSR&_>=YnF&SE=lqQ%dB~s1`mLecxq%8ax8vw_h3e!m>+Jmnx4Ru5;k?-HHW%r@8 zM3)e)QE?33VI50|sckn@{=IfYZ;FL3`8}|&3Cljode#~vBGiqEjz+tdYgZNI78GWn z{D)dtNNS!mJjRc>OZgh|&f@t#X!bK_~{#3!uR+nJB2@K-HM2=-+ zCICh+p3{l;u=6)|Dvv>BEot=e;W&qg1W6a@!FA$5F{7~1-PV4ZCJ>o1uzIMuPHw}Q zABhOq)M{SqQ!rC?M}*DoCA5VUX>nTm$2Lcw@AuTLj5i$#zp=hp)zHQYoVMFL<{gDq zax_)!^@+VwK%s1S1+jBU|J<3>HR&0@2|z_$Px6v}M@FOICL9sEH`=75*|AtW$H_?g zJQ|11liz|Uk6_`>CZD~9(ug?a=x`{+qT-DrrD4@X6G|R^G;C1%(U4XNQ+=k5egMQ0 zVeP}P$i-eyeO9ShzoA79y1X@u19Mymfd=GmJ9V^VtCMnF2nvJf%|xV2=r0Z)ETHX2 z)hi6X=n$;ONoD-rM2{|89&3i>g5?AzACxY4&ugXatVWOz47EI#M@lz8cRn@W$b?0s zJ;ZK6PPuNULbLnF)KNbfk=}<*<9Ok-6PU)5V&M{`1*??i0X%D?5Oa2$bGu<0M}eOR z(Y1&)#2r50B-Y>BOqoxkoH{N78N6SAbTNXFqF4%5H~{*av%Rc)BU2BSR$t@z4~V0c zleynQUe09!UXI{pJW520<_nG|i!!5Qy=C26lD~kgGE_FFTx5cU15XTNQh&8THiCun z_-*}UrdM1pNZXTKkxUe84j|UdS~4?5SG#0165rPEO5%un00cx1>sfHMR38zQl~~~_ z=$5_d-UuSOJvLy%&o-e*zJFc=FLe1vnm6&9W>;j)nyz6s|z7qCfQF13$p<1eM9g6HG$0hm<;^~cADjNO?K0U%*4?L0Hw_K! zLUjl)fy_56D5*00!!U3$dQDW zV9BIxS`PT(M0*sBSq@TCY&w19zj%1Ac}atRQrV}(&`YqgsHdI^(a?oFjLuW3PmuC# z;LK@V>kmkC|DH+ur2A%@&`OWNGVYjPJ~KHy@a^OV0VH%$&r0kDgx~2X&J;U+?ooN4 zLEd!SByf*QD`k;ax6-=KN2mUUjrYkDX__M7eePa*-2R%~i0;MF@#h20ttq*9MEJ{@GA# zza#~!=k&k?kRi~2CLfOBtN80XueO!Pgx9F#TxN zPj)&e2CSkn8*vJDjHaCde7I|k>SMJj97zO>j*NZHGscd+buV0Zb^WY|tR_ZzvW5q7 zT_N36AkHmgNpn%!C^+49drOBSrICx-ojK+hVJb2C`r5?Gx2%juZXGR5(D+YXWv$5zhE$itIj_1-7OKCB%d-OZRJ1W)=08 zN21guc(F5cYCI6l*;w&I!PaE-60wUFl1k%_f2v^qf!YeIN$F1VR}>5~TLB0GnU*AS zmJpXe$TY#)q75pHig!mbsl8Y*8vn}`p#BAtTw1nCk=)fkC10)hm?c0y21*l$crcTP zu}8Hz0$#HPGZrVmf{)*G4BA|{;>rYnb#LUR9Z59wD1LF8&-~YE^g#SM~Mo#9W0Us0)CXS^23MxPgmW|6{>wOpC&s>`OQE3n` zqOac>L}ntLKB+QNMQ3hTv;@WZZ02Ml&HBtX>HDpoAuvDbKQ4|M3tsJ@{$7uUuHspX zFm4SBjN^%SGLM{aNCQv#_X#MHL6RFVehT|D?&CqPU9T*KMc;IE3%wh$oZAOe?h6Yu z-BK@b8DPNk_N+mv*6&r>1D@d{&cCgA6l`%p8KRH=3YcHjTiZpmWHA0Jc4czfGcc$i zaC&;D0fFFOL3@GoG>TvD1kLgxYNhUY&uO=lSBhIe;Vj5bj|=7fSO2@#b+-rDV+6s3 zi%l8l`+bP@^L%M$I*>du0cPTra~`7tC$NXqa4;a!#&jr~CteBP1Mb&&Uf{AbaFgmo zD)$)?e=JE^xR9iUPGb@m!0>c)-z-Wv<7i@A-@ncx&*N0#@nYZTnN0r1D9dnneI$N} zH;ldD#*Ir{Da3!3(KeacZ;M9;l~LTn?Ia*dnU&v z_zQ64DeC6HyKp-e7nE(nKnUY_Gfp=bU`-g)aLPm@<0tI;5=4fH8bVC~;-J4B&Olu= z%fThhBuvZ2aoeH%yN1JQFF5Z=KZiAY%pLi2$eL5Ujz*s{8D3wv2v%#815#Yvc&8-; zK~yp?Nk|{bD>V?p=W9=eo0~NVv!Mhcbp+6ZFV})3?H?-+lST$aCJkU!gNZ}KQr7J! zAY#`V{6%dVE|KV#OovlOK_-Z#D1hlnJSuYH24hD9C(6Y7i?pwnpr>CZwJQt(X2|a_ z0!UjbPqK(0Cn6C_$Sz%!TUiwBVitec!#R>XZam?}D0R5l5%^fCMbcNFD>ftt@sea}rdeE!}hG zC7-1{bnLS|bl`o}-$iS;<0KM7=P6BH*Q63zQip!x1JBvgkWb0zL?S?;t>_u5VG|l9 z`!xwzmz-aTP?-`~p&Vl;vA*wv?*sJtdoWvZ)pqrq3%C(Y4(6vK)QR|y(?<6n&R6o? z`J>=L)57x;om(}x_l7(!9W2i`>7t@^Fh&NjX3!$`F=|mY~ikXFtX&#OQP{F)*)?v4;V-06;#yK>Oha z1_|`Cv}meNLrK$W52xqGwff__xzvkJ6f=mBrsi>kbmv7YaC@g+a(1+QlysuA;hVrT zWWILq{~O3?4aa$Pil*PN&fT2p>^Lk=Vo9K zBuT3=b&zCKY|8R9N?oTOCV-R$QiiosV~qiwZxZ$ZXY#OaXk~2M_BCai0H1arUs>{_ zuG23T@1cK&;c=faO;~r$I5o*iSzc+GifyOp#{oDDMG0SEwsJx=h8-QdaloFxxw^!Mt z2M(DXCB@>)xL_U5kJ8O6>)~PQ(7CN)A13@(P02AcyRaDCNk)j6R5%q^ZrDL1?{3)m z-Ks^4-ZYb|Q`}H#U3=y0;X)D970%B;7P9wuli>Tam%59xxVSv#XRXOzv;>YO$x3OA zT8o5tFuG>X)MlDL7ceoMFaP_29Pyh6#(+q7%bNE1Y};orbH8t7p17{QY2i*wx1#_? zP}@4iCtNji_(F&@Ib4Ji+)8LV$2gDf+ogLO2sMt?Y+Ti+)qD=f%A9D(3bFI*`!XT} zSXHp_IwvXq+bV9)x=z(5|32w^PWo+u+&!X5Q^XfjvLL;#wK)y`Nn-43xjxeX3$lCn4MM2O@EC6V_81-oVQ z>0M#}_zh9E13J^fTTp^F24UcBfLB(+^iR3jOM*ct;By^3F)FCrpJQPbF4kmWU-}<{SgT7^x*p{jG!q3-Me>4Ml>FQL(xl@}Xi* zOcv3574FbX_m)&3b*0N0K71p_D>d6-kacqPKVMWA0FX+G3h`}$y0ov9M{0Rf0DIWY zm*d&J-VQVAxRDem=je*$Z&U`g_z(l_7qkgn6qa-L z;SPrD8F`Dz9&!|>G99qsYT7tcVTxa0pR%U!0F@H5^XD+T4q6rBquW!+Y#OQ zg~h@I#J}K3!EpqK&%DTY^*4S8+owA1@Gnyj=SDrrCG{1)apt>%G|(GE3n-(*kteL6(M5>x6_V^gBRR} zv3>%@VsO~`KVdE)9+lse;_s=6{j$JSsrhukh3szgKLAk89+Y5G8x9W~>;I>x zGBYwK8UCdPXl>eWN+SEMX)K#`vsk@+BV&TTHSU1@gN^veZnd_ zptvW~QiPl8i?oR3TyT_}IZ>9idI?*XR?Ct-Hrv$`AT(>u9H9#tVxZpvMSlO*lGv=Lj(|N_rNeCx~g7 z@&G^S^ydXAt9jH1vpSI9TDK^tAH>YiDuh3niuehuUuNDS5J6-hwrrSI$SR0GDr`Cd zlqg*pz;&jA42_2hf)>6Eiy+c{sL?J397i^O_=}1Q39BXJmrvGh9F6809oy`HyDjSv&zM8a{X0sRD&C*dg) z9wbDZpyJheKGX7{6qu!Zg3Q%)zmV}8)WJ|al_OQYAkEIx-W|x2Y(IqMpAKMz?g5zc z7hDx+{TCq@QkQI&D9;NN1+bxD)A~Elc_0|%U~qLbq#(%Ki5q$}3e~S7F1vEhVhuem zfR3u%H%Ec{S(*WP-46X`Yo^>~Vr(CMZDuFu+d0JskH19Ol-QE`()%n4T2rZh@^c}I zcgX?au0ZNlDnZ|jh5DfMe3$nEJI2({`;y5GY|{{eW6HN#o`Rpr!&m(P%OI(oCfbtTsP zoD8>CbG^@cDr*hH+1~e4T%zD<*@g4EeBazyK1;1Dwh+WpEvZ=Dxnm!2cI$_O*FDR! z$hGUv^09W+V!rgkfbWJ|^P1aCbtb*x&Ze`sQY+siJmYsMTFCc#=sxV26aa zfAzMG6Z7)iZGBtT;`o+luBnLmn0={8Xl}F8w(R=qf`%>c#<^vXd+?JQUK)+3aaz2V zQd@uJiCRE%;ue?VZF z5k3%abnKJq!B_OG`%5ntGC2GV&{ARGLbz3%f(vsg^d^+$UGQv#S#DtJiYsunnU3qI zKfimq{#2?no1k$a!~ONPnfaAHLYmp2)B0q)Iod zwQ_S)%=zuDqU^-mLrXDIuV6UlO3OvXpRCtpn-KCT*9>^d9dhY=7q&nKAm|3&|3fNL zBQAY}Vr@|jtYM70U2y}AvGC&?Y;qx6G)S4&$f;vDXv&^+=AJsIEo;i2{SRc&S~O-) zIFtVmG-b~?vrn!64@^1JPZiwkUA`aTyY%=a9hkm5E$sd_RsN=XAsLrHetA<;nyG>lL=tRELHv(e%Gu(h3tkVa;G_Lo2Mm5gA93AK6iLW>DuIXd7)z1Si%?7$jg z3kCSY&&~j_d1a6c-;}JIkjBSid$sG1F~_jw&PC-5n~+9UV)ef1$RQlQ-e8rBl=jUV zytq+#%%qN>v9vF?6ay)EW3f9R+2Pd|A1=J60uY{tG_fWYFlHgo0Z1BMWNE4F*8Mnt zN9}ocHN*50=NNlHUVTUZ)CTEfIXt09LfX(#%gF(#F_9cE3nhyl>R)t#Orql>5hz}m=(PJU?8j{Vs(_99)(Cy+>QCEhC>ly`vYk>h%FaK3ox(bwjj>; z6m5){sP2*%KVJ4ewcaW^$O>-y+@RfwDbO+qKS->P(30X$P@y4qDw~*k=tg#K?Cbje zU6ujpXr$-8|B1mtcVwj&~rlO2Jj^tw0} z6vQn`5YS1t83K&@xI%A)Nk`C+2f;2&^PKkcxqi_lee}-sp4=T(F*So^gW;6}@7~AL zH88<@4Y0VL-G?#4+STem?oVYezp$4Eo&J8feg3x-{C$*ph{y0rG*L{Au`aFHWRU=U zIk1|s3G3}wR})jVO7$CYgKUhOvY;-hpsp0g?)|v-0a%VNb566PI^6*~`ZUpR$~4jU z;11Gaf=N7pU93kh|zX-jKq?| zPI9fKn4$Oe4NL=^I2w(=d=eMp7+cKaEJ+o`4}wH&VM_*ik2x|`e}gZ9AS@vI6yW`R zq_qqY({#Zm#sqOh;oy>s!>!Os34+>c))pwEKa6~rO9z|%QQXEbdW06G1}%XABG59c zAO5^&c;CrikQ=5_I7_HTc80aG3kH3>imu{Sl&z#lKxp2f+gPh8DTk zx6`^o5ZG8$Uf@}dqR~*OX5)$gvx4n9ip%%q1B^n_8Pr7Lw$VE#@83t;&eovp6fiE4 z^z(c5 z6ULjfcGW_|(EhJp4KoEJ=IbXv4PvpDd;5uy^q-phkl&F*9y{MN*0g9MIJ{c^V; z9>J|BoBs5gB0kq>4dCs`D2DQQgnAR1w1I#;DO_;-eUg#D#?aaPC3K?reS;B@0nh|I z2&+jdbyBDTYi0P`mFJm1UMgH-R}YqRSNq~r1?&{Ug|H8k<-Y?Y^3?O8c9k~l5~gkJ zE!@8CIkmRu62p#T>I~-dldhH+j@`*5*UeSPd0|cTzo5!gRxZVEAIjCC zN!EOuI8_WOQXzl_Yv{X$s&M7jvO*ALJ^uXo%?iuvT6S~28TytOt;_U^XSWDD=wC+H zs!rdAR(pvtD{Ry1jTvEVe^FMbpZ%5mwC<>{7^GU)ZMJo(TWIz*nbfa4bB}PnXC957 zg#V}sdR9AdTZzY4Qwt$O25PGHSp**24vFgP`Fe@?>jS`O??Q`=f}f_^zs!v*2pd-D z90uE~D)G-16(Sm$-0iJ7_ry_x+AKcllJDyp_1jL4riq*7Y-WnEKE2@_OEE7yIEzwX zoL?U6c6(JEuNGGRHm!L~siMrZu~XMpsKDv%`rEzF6c;(fg(H|$mpj^n#BSJ24TjSg zoHUC^I0r!GHJ~{CGG|2Bze8K!o77_^hCXy5pW`mg^)J$4^F*jg$J}8EA2rV}`rqxx z@p$N)+yK?ga|iW*=R4Rx25TC(2kYGWbth3afL!w+)`|?oq1VfmAy>aPkYf+F32djq zo{kU4-nY*q^PhnoI(++GP?V<2uDBN;E-g8Gi%Y=z#m)|(+XW=+Dq&j|2J>tle#M=v z)>D12+WazXrSRrSm;-Qz-b|#RD8vgt7urft@_XTDcR(ZbP~LBEX$KpEpv6qq%WY*Cah z($$p_`vwGTo}2YEEpHx&nuibHN(DT1-t4y;U#pkthepssl&+2UilFoXVJ3-c73k>- zjX3Vb9f?v^l{Wb1a%!BuL5$Zv-79v<3akfgAHt{Tc2Ek0rXj;{WJ;DZI9 zI9{S%gE*jLI;b(>#X26V$wHvdZJ-~mLSw4mQhQ5!lXkQP|HPY09xaHN&?C2fI{@g^ z99{U*b-PS&lk4}Ry=>_(ZZ>RH;9~6yRS(x&(Y=oX*jTY_*}QHNXjgn3b+DrW-{6Z8@|Brw@S3vA`>i zH2F>r^`o{IJfH7@Kd{^@Vq?XTw!KcY>Bs?IiOH7F&&83;ErvV!GsgrdSi*T^bNi2| zXLHl7Xn(vV!%C(BH>Q!`WR}z(?rSLKq7);8jsoqZ)#5Xc1-)VWPT6cTH;NE6*^JM z+9`_ZLBF*^*mu#cQ7ZUW(Fd1&qHN#4wT32$HBCakLm5+K582|ilmG}^(fXh=j|olF-NMmj&sRVTW`A!=^41B*j9#wD)(r=X-QYDOfIK-sB! z1pu8+HlRrI328N6xSU3GzplFM*N>is4{B=#?d+Ddq4>wfrY(T$Z611JV6^UN?Zxd) zZ^9&;ut-*UVfI+Mfk{h&7~2C0ul+X;?N~hvp?H*zxxumB#9J{eCd$>d2lwW*~1Ax zu8~q^5sCK!z+{m_z#x8q|9PdcH;S{RDTo9w98ZSzEyNT|u$nB_0Y;LS6p4tkHaIKR zySpd$hv5zB?LFv=a2Ec@hp^o+OtsV#_yN-8Kp0Q+f;RRPmG4Zf&U&#&-_F{D|O zl+ZZu5(pR{P#nnf9yduzc>KH+aEWTe6b<_u+D1ATRbieB_jEvu2ft(z$RGTK&P&4Opn}tG;Zi%=*0Um{N%D_512?K`mLX!XdY%|>~L&g$XsQ*F0G?D$v1#x zL7x>B7RtFNQRq$&ntbYgdx#i<49ZmNv=!A~*;a#~mV=^YwN3d{nw*T1RQu%F*r~;T zYr8g8Yk#WXE7vfRa=&x|kXXJfigJJ+v3SZR^v1@uJj+O%99@;n zt$ZM{_S&J{qnf7hZmv_EdSUKXRNJK^*X*ZRr;(-C@MXCq^tiR7@9^+fd)MkzQ+J1s zjoDLm;Ts+$x11-HU&H3uv*o9%y-TGkZlvsM1z$%J2+Xb3PGgQ8u+3)o?ydyvx6v^H(}E>D^kT`X-W&&&uLXgL5tjuP50;kMp@SKm&sCl5>2F)01i#u}XvTk)SBKe1!YMg)DV ze^MsNn!}aVV8OiNB3EQ-Lk!npxO3YAKqEYciWO<2x;^(MG_3QkFPvgxv)$l7wLq-M zpH;SM^dIe>UR;3U{yES`^~)1N;gIr9gqYh89XA1j$xQ6REUh|2)0x46o9=tFJwA~* zEOzdyQW`~+V_H5CKP#T7;}{;PcJTNhp0~VY75uh>B zsUnW*80jFlk_qk(315j#(yR;(_+iW`?IE2sj!_V0h$Mkb?DWfkt;v9v%gywn7EtwH z!_R6}lyK*g_fB}xXTUQf7JMM*W7*Q5*OP!BuyS((W7c$Wg4>#yw zv0^1CA`$#c;imRso3IYY+3#*#`CE^cFM9FAMz*J-i-15^Z*;Z~9&lLM?QORd%!r}L zy+A*&BKXs%*Q>Pw`-t=kp#DVg36s{T`kP!t2rIXHgTK}xOAyiEo)y*sHxAyeh0VXI z*Z?mIqh3bvlQid{VN9{HIP{PFI>1Y_m>WzC<<}C4hJvR|$h9RAx$nGUt+Ut!5)zgt zRNdeOy7AV5WsnhbwW*YC5EmPZ%p5lpm>sMOcHbKtN5CAB@p#1a`#r#`GTHlerxJtAIQ3+=LZg!bjnwFF z<|xQn=DR*auf=T0_`Pg~b`WTp$>iiy{6E8oZnt+!SQ>`5)4D)ofgx|bV-d*lLTJV? zw!n$X5yaN;7q>q(z(=4a@~<2mFjRLLj{Jw7*%$t;$)YL@hZ;*(g@h8K;G{@0k(JK1 zlIoDDP6S#u|HOL%FINAvbnn?ubZG9WZ6w#xy$4RIq7k6f3 zjPy}F5I9x`3+wUea>nNiT@M5frLH`p_=VenBNqTD(a$bt; z#&}gs)SpJvM1r-YDxJYy{S5~q6TxDmQ#n>?e})AQE{SCbR|P@y%O@0N@TLCvf9XKc zheAi8&3sZ<0Fz5lr^Ap`=1tu&&MItjLa()woX4mNeYnClCqLuM&KQIaPQ`LnB=#tT z;p}|Nm?2{%n+@SFaE=DCN+>JkNCokpeX(73M3EwkG6V{c-{7B~<|8a$+B{oN4()x$jNWN3U3fq&wt(D&Y)m7XX z7D`+rW*_q=5%O`Y?jE%Qx+2F+V{k}r3e@88EIHzldYNE0%H2G!Xib;~M zv*Kd4Wp{8nZ&hi{S)6G9u=F}^Fk@vuOHbw2O|L?X0xYzUx$Aa#PVw~ zC*hG&H1&dpf`BkHB{jgIfHAW%a{k}NM~}9S!zL%X|6H9SMQ|Wbxz>)95dnH*&9XJ# zl*z;l_;tRdO52Qm<}4|dd(`)%k7t7DglndGlouqa%F+J5$4%J4L>L&w96b5+z!J%1 zBC6Abm~x+jYow(#3K^AgCfRe>(aKr9F2-?TIeuJ)q=Z1)(u`AYbyFv08e?%iz_iGK zW9sYv_Sq$$9MoD?CBzNdM@zVl%KR?ud)m<;C?T;pCmbp+{!p?a0G+LQFRnk2c?sd+ zV{Z;r!I`+{TkRtbpCkt*E z2PO7j$YA*8XRcI@DT26<4uRh;MODP8R*|TyGs?&%bc?AkjdvdiJ>Q!tew-2@5Kn5>XwF;WRglx5Ff(XnwlT4fROJq z0{3v6&l>{9r{*`&#C41M^<9uD3s|f8niU-R(A2!r#undvvH=-Lhc~#uhEoe%#-r>2 z>1d7xbt6NZf<;m4Xihmi;_~W8^cHt&aQ%KIpk4Px2C{UrB5zfI{S^#h+M55-I2^8p zN|d@*hm%Q-`B$-SpJVD=yCbwkXbjym)SH5LGj)_%&Zi$P);1lheMp7?2fv|V z%8I>wE9Zp#_gOJl&P5))AsT*AUs}@Xd-IN1V5ua;$FY1tzkDi-3+{18P+A(6Xm-qc z;^o4EITu^2dWQqRzx750jKDlc&4XDPjF)e-<-$EwFx^c&$44IfKU#x}5;kl-%CP%* zZD@|~>xZ&lgSk|bm|l~B7@?^FIso`ojIS+s<6mN1s+bi!x0A1I6ZPv4KEIq%o7kha zSDH#~R)U(6MHF;t65cO|FFYPy5hQVdUum~XGw%g#2Kp|*z1dOu6z29WwIHcnLBnf! z1_}P8$n5m|q7GpD>cbO*1ce3{mP-{mjR*xjNgaZ~)hH&+%X`EN3H6#PhwcR!ae_y& zPy?fqhDuDn9uDCc+uV%H+uas*VTi5&=-V@nCd{VphXdg~e;|4vx+AV&F5Bf}^fah= zzwyGr(D(&-$NUNH(_~cmlh~c-7*vx<*;22Sv_9u4^O&7FmG<80F2MYHhHD|J6Eov6 zjA8J4PG#v9?-GzlpT$QU^jC0X*w2_xQiM?2x0Q^ip_bikccM8`!%n@*`MOWtCCv9G z_^mLVQ>t3wwglE^k?r}=79y#qGhb8}Eqkh6ga{H)Uf*w>j}!tT$=(;pmnCWHZ-mms zLGwDW4{5U6Fr*9&4)fL9?7vaRIz&&7D9MmddtNr=(f+rD%-uOHj`08vxmvSQ5)4m``0&4rp^N9A-v){yo6gZgvHWU+bL}qvFW*=KLei1@#p}49T>t;l7y1y9E zkER^xI_d6>UYRFdX57YlixkqxbN$>)?20P5W!@8}7ja)+Icb%!BFFn%qIm@Rjm?N) zY)H;)CHe4dF!(8Q7EcLIy6h78XxoaTw%y6PWkA%r`3*%SL%QL~*6+|(ja)h?OSY^G zt^j3*W`aJ~Y=w%eubX4w@74C~*AxdZsI6m|ovUqCV6f-!tJb!suWN5{!z7hRL@sXQW)ugbQB``bN=3fa}`XX0a->idjRmv2T zKWbC@&Cz(Oi6TjF`HN^^PhZR5juLyaRTapvTN*%I7$Qay7Jk;u)UK@FuF)Y<6rHHTOJ+FyOMxgI~N^F-Io3s8}a7@YvsCD;mP; zeYIU|l0(^~@Fy*o^j-2Y015?ki-+Hyap7bY)wKOPX9FGACMf}zdMnD`(?Neb<7qf-?7dJ986ElE8UQFsUm{*P zu#a1+tdB#G+&qABV2}+*O~HYuk*9oePhi-2+pDMCoU5oxb!sk35R!#^(4}+a4Z$`; zaE9d<-Ow%g?sK&i$g-PJz`l`=2aOP}7$?6zcgk%uK4#Q93`s18`OxlX(pM=-cpw0GBPB^W_H~5KQ_XF$wbp$0xEpHHbZrg@$Y;H-EcDy` z=s~IEi{{&)Y^CqxwzQf`uHhoQqCoUk``InI*{JjGT}eyo-HDs$V|bJX8h2oS+4$QI zBZr^+{;d$?^IyQdprE}iw`2%6P;RqE@-{0xWWpJm8An*?0NU7Z93k8<)jq$T^~j_M zObE~CbJ%cCb&W2qH3h}$R7&X*1;z+OZ~)!4Qh+qUh-XpF|1*tTsOjcwa%Y&ZV*obT#; ze&=fL=VH&=d#&}3nn&WcqG%$8G$|MhYooMu2-Lr4;+*1hVjn*`I5Q_#q7ePRps$v# z{RRi}=am6Tk!Zd%yJS2%P0K3CkcO2@%b~VYV;%t*m5Zvq!u;5Dh~Wvaqg=F&&*R8* z5lA1wLwJ43y^X?~is-uS9Mdq3G!n#v$~^5&_4Wq>6-64q54Hf*r6G3O>sgy6I?*VL z&^4TK>pEfE20glwDKe2+4tBB}cr)gRK?EkY!8o^fCBOq5h>dCk=AZ*;-s|#huFj3f z+cZ&(W3^YA$;AS(lsk8i`xL3~6p~y%FQ^$-Z)w%vL0$-57;1Q~fq`kszfa43qsRR( z9eJHjX(K49R$JrJygkl!%t&?_;l`2aFyaYeI=o~}KjU7*WP0+kSJ>zQSBMsS%O}A* z6vLB*AOzAwwTt})8zpzN;jJP;yp;Prw(oSh8O9s7h9J4>h`xl13snw;Rg_oZdn__R}I>gxl_ShwsM#BsgId6RF884=6^C@vxMabl5BVA09^D2y|Azk`O zC1Xw8>{sV~KcPmYN}%Wp>ojkqCcVnI&r+Q^(%}!v40sl9u@j=2Au&Ve=`T@YcTSS? zjBnM}(Fx7RX%fJ7l0s=n1Cj-B7-sH0e4o#j4viOdt2Bt}V)u@LH6a-4K{{$pt4iPA zq$ZI(M95rj(2MbOoy|u>gEQGuS#r1lp?fX+qs+tL?Qd!oW934dwO|%bsaap$ZL4bQ zi$PJOa^QwYamg94!NCUcLRnCAf2M!>nxnVgq~Jp~LBVU8Lm!tEg;dL{jl#tZ=Fpva z*1wt>Ny3n-%Xqf~p{7V1N>>!vH`Yp1_Y=+XEHweuMx2VGF>nE3Rm7nr0SK{xYet@U z%YZmU(QUW*LnOhw(1Xei5mEE0JJi}3t(uUf^uv08$#;GiEf;?kPpEH!Hl7uZHP1iG zYx`U|!uq?-L=F1k=HV6@MppTm`odazeewiXxa>uj>a1Y_hg*-FFV44C<5y4L=2au# zGr=Q}Px&Vc-6y0vCR$u*I$P?%#vPN`A`mXGKwNVpUk{G-<8yJ>H#0L;7LXJ|53rdZ zOyFKn7`ds?=bE}#0`BD>@0;e5Tp5tnbnO#Fb-~x1@p^-DeM?ZA411^^gF6w~*;?O< zHaFHP58Jl@!K!KYtz5!`2Hp)UNrgJemf8V(#X|n0ovvtufv08~W8%UJuu8M5+7v(g zu`aD@tk_qRP_J(Z%dUwX)H5^lLzG*8CeCGbd%Ya)5~;EayE4xoDSNtBH~;j045xUi z5e)JzV-AbG_uakLzF55|_x#w=&t`Pu?|v!DH8|o1w0s&zS6)9BqDfX6!e;wYmReP% z{URHFQ%H2LZXT_~F0;QKGnRg5BHfUFshpB*IWPgCu(CIdCv2U`3q7hDg71+N^SbJ-#OYa7PDDms4>WFFw%vUCBNZ-uDUg2tX~vj% zHHs8OhTY`q<1^YD%x9^F+cK|f5=Y4B+py9vvR}^^`{;^%i%&;TZzONWi(Oc&>qPf^ zF_Gt=xBq<|Al HU_fr=mxnO*wMmce5=HfX~AlS3S3hYSjq2T1lH8`-mCdo#A(u z#2n-^7gIrs*yd2EoMk4?Si-}@u*J1Nq_AHge7MOU@gQf^RaR@@d;lFN2R*~ZuTWBW zXU)f<_Nv^x#spO__cn&z){}HV&c|=MT75X1Qi=6ly>8AQugOZaXAU(=j>)>+$XTr! z=v3w+#5Dw=D>!xL7%TYHfYxmuZFI)O#k9nH^5w{VWZ)NFj9nOG;;Zgh-3lWK^L!^X z4I7H~^Hsb6PiHvPY8_GL$c#y5m<{-S-M>dSFS`GYy)W`~@#2E`|p8 zuL{Kpm0v<@B41x?9F1mdEH9tB{){0Ok)Ftfr}glx5I(}rrXqXuU_;1hEO5K)a_jsDVX61?UnvskyNEq^V1Uv;t*6>KoN=paB8?K zp_*C;i5%(LtFreGxYVDwP-68^Y)_%Hw}!k69+_e@VX_=R!B21ly3~YGNNEI1QNKeS!U8()sg0zNM@j|LMbkbFu#Sl#-~Sg@mw7XJ1f6 zcO=}ByhQezLup(lj>$i~NbcWgQzwb-l=(3|1#<+Md zlo>BRlMs(e9TOy9xa4&jru!g|X7b7eUAFCAeex{1vs z<=RB?CA;m%3RE!PVcxyhK8UB0K7ELbcM)ky_aR5gs(@dQd%IKiZNCs^^#A!XK|3$8 zXD|5!;X16LPu`*v*EF^OolB@bF($7Ckh z42MBrln_qdA!Rd>?Q(XEnvqM#g@u(%PWAfTLxdqjjv3)(dh5Gv(~_q*^yX?)-AWyQ z0gsDY1pveZj$!8#WiL<_mJKY(vCNFG3hR91JAcx#_Evgqkmhf@SMIKNACG2+V-=S_ z@J5(^YIWr(uZ^NPcMcJK+k{RiRe4SZegX@uhi%UxlmJq^tMtQrWTisAkR?? z{ZeQjQR5@-af@TxZMnZIoz9Mqk9B=Tp!CBcG4*QQ>Bp^Zt>+p&Ws}#iQ5}lWhw;Nv zrNC>AT%@rII}M?@zvkK9UGY^;bt=&WR=#)dMsNmuuW1@FlzHXU>r=Mq4{G9|*4-rj z^NzP>4Z~M%oh>~%tjbWc&(i}hEErUHsmT+4>NZ$8s~Qg@xeNitTq5>MD10 zbrA;#;CaNUS-(ba4qkp!ZMR*vz;+g47a(P21+fG`AH(q417{J9Fn;PBVM*4(Eo-{v3g`uVS9|-+{`_jwq8Fg+6GeJ`-Re43%B%U^Rj64j&8WFspcwloWI|b<#eZu>iQWm253PGw87;gT_0Gq6yIrNx@L{bI zQS^cz7<;h42!9w5@|U@L{pR1520^F%vq6@VFFq7Z6xwNsV8^Ogh4nEs-~{e+^YXd4 z_d0(`#Beh0;^8R}byr4Yb}N3y0oY_8Hn)3Gb(L`mSW{ zLgkF;i{1(8RfzZEc!KE;1NLVoPZzK8Yad=>>(Hy-v7Qs>`7^_m?=Q1y=iUtuj+2dT z6qK?6c6)h8mtaHT_L9c&AK>ZApoZ_Um(sh|OzT?%|FEp|8(3Vgx>ykLdW*DeW;>Nz z#bLK(7!$|GC*}nG)vvBfe)$pUnoMQE?BgMQH%BQZsYJTmDQFKKuO|Mj)x}WU5KAQ@ zS-UgdMdPs0<<79OvCGa=4>f0>a&zxh6RwjSaTVFMgpHdD|C#%EKA_c*>!Kfjf6bAN zDfUk7D>p`Q1bi!snXUR0@lfZPTpS6WAEl zA|JD8Lf0!@1FQWsV&a6kW{&2>IAwW9{j%leg&jR1S4wXU(J2lt9+buSBh<8WgW=Q} zDwK+2aGcPQd+612(`;}u-)S1CSU8SagoMKK=t5e)pOFm20|xZCG81=qOjhRe1B8ss z7tx+i(!_@1;#=AJV)|MIS9ITR3|+BZ6&F#AI)p)sV7+XVkMN^Sw$10}XQImL;=g!o z@<<36EdWYJ$7lB(cscZ5(Z@e7e3?aaN;~OM0KE;QrkO@2A9>LP5~OLeFMjScRUGdt zDUrDOs4w5Y^kwWqI^pdkU+S$j4-XPF=uy9?oMvUg?^a0TB}%dM-Cf98)ZFM{r2*Xd z;!g!i%O0udl{p)H(1<>~qAjCcNDqm;cZzPXD!hQlq-UW4Q@X;5mAR~;mzDtyAv`TF zetpB143%UC5RLh%{nhxyx}(Z6ieAv2PTVyi?=Hmzb zw|~eFq^9$L+L0=Yc=0}3JXLAK3KydTHIwu379=K8E2^(JJmHl^vgD{Lyv&EB_rSR; z%OrR*VyxrWas{S!`BIjAb<=?#-@@U);wAM+DoazUj@16rvhUW4A^%K;r3kuI^V+@( z`W;bS3Y^}TGK4atCuFEThK(t4%JEx=9W^&r4%dq}X0hlPo89i6 zwCSwd;(5x#;V?~H21PGN~bz-9x(BgM77nql7NPq_(K&xg0Cz#UNOB)&M8RfM#k!!Z%x=lld`G?>eSa<{BL+(tF5zg|MP zSIt1DBX-=2tLro5v@v;VGi z19oJ71gC9Cy)EU13|Re1@a7uFpbNro<&U}en4}+&Sri3D$l@Na9~<%(kbQ8$aBRth z$dfMi;t-G~br)A9k(~33ukcY!UXp0Al5&loHrsB%W#3FwL)X|_+=zrbiC39bW`|P7 zw2ov|{@G7HlO7dHNrLT<(O|%-YFp4i3Dh~ILx{X76krmoI6A%UPUJTtiRWRWt{Qp4 zJ%)2M#Mn;oM1a4Y|0ZZq5DPh-8%-iTO*j3iU+rT*a>-iLss)%mr`0QUASG8x+kLBK z+&4eIW0|l3>A%Z2K^MNXjYcT!)hTRfVhhdkV~O+UBI2VxBiu4=#`RgZX~Olm1nhT> zA;@A`@fLMpaRwr2*;Hd0zNIb1D7 zel)@AkM)QYErw=7HbFJ}JrY*Tz+L+aSAQ~9n=Ui9##z+utH7jX(X*yXBVwYiycH3B z4nb+-g4LtSMGolFR32XwG#Y1a?;_SLz>`r%gT(FwPdQEH(VVPQs_?rbXaC()P1oj( z)Y|-#i6xl|G{>vbIWk{V%h931QJ_ZApFbu|^63S&?JwABDlzRO^gJN~K*60F+W6EC zCs%p~H5wk?7@_V%-89Y18h2=NJ2Q+^IoV2$04kS~QA><=Yh{V2Y=A` z-YEN|q>|sQB=xDXq{y2+u4%RLz1{qXOp*HVl_}B0apu+9i_1i}GKo|+C(IiG(FWOqvv*A{~S$mWIi4u_1I`UMhtX7 zsER=%prYzWRpUVXlxH`68oE9Q3U@SuDxlaahkGJsS*=JOFo$3$5a&~-4u{%SN>Mo! zOfx|NhT~A55bbM<69QI2H(q>;Nb&9)XSKkXerf~}tsGO?X9@EqVmHo0Z~e|G$#^sB zXcgriUmF8jDirqoJlh6bXr~C8Ad!r@l)VR>J&kKa9Q>4et=~A4J#Kb@t%AMYTh;v5 zW}}hQ@0&NAMYi|J0`6b5!s%z_ChwS1Cpr_QF<8>MmeFb%0mv}(BEL&ZzghD{S@k&o zlxxU0@E8n$*pFg!Us&23i3;oQFSBEkCwzh=qm*mUm_w+Ige+r}*H zhxPsGZOq{s8*(_v_sa_kP=u6y)_wBi~9B6~W0dT`*>LY>gq?;H8T4|5o+OW-`z5)*Cvd!^J-uwtG7Q=~6+*7LX!;DZScR74ACD&CJ; zezm&>p*5!nBAfE?`kPx&0@{sw{y|?DgR4<1SIDBYk&ZC@;;L4U@P4Jv>;T0F9Orgr z9(qYaK*qpxK=2zPZI3BvWX`naN>mady{VLk5V;{;nal}Gh3zz-b$$`*54AmWj#wBM zMai#%k|F!%039U2=iR<>7tcr06J-NiK1y4| zWpAD2rjvC!-o*nS30h}sUJxh<`cdiDIxp#I3w@r3RB;o3-j0B@t zc8p4RfwRfH;26@QZL4Q}?{SEWWv<-f@>Yn|`_c?NX)e6KCB9tmEfGb2^&s6hw+qq} znfSupl8t-E!gRLm?Cj|41v~*x&$*R#r@^-af|^+R8WS=aZU((OTQ*2qwKX%0_E)*a zH1W0~S?~bLt}|cEMJ#Gk!$*2E6-Ea+exU?~OtUX)`wm}vis%8dhIKYq!$rN$JXM^V z$FldONCo)c=+C#MsiQk{GkVTFntd_JZE&ZG$MreUX(j(cJMoL1Pt+-Rc$vJ*!QKJk ze$OS0_bcZ=O5MUUK_Va_Li~_ndHTOe4EA8^NZA1KsB7?QDZFIdh|K``H0um`rxh~? zzxLtAiN#(d92*vhhf8j=2(?*JBzAbqT*%%g@Ewy9qIPpu3(#%LS-fqdUkJ){5fvcP z7RC4h7*reEg~4n*I9$RBCk%16AowAfP851+_;4Cv6;mPvq+oi&rA@06qx7D{q+1oj zd}u)SswcWs3GV*lWFFbv0Y`i$&Xd!&m%3cfW4K5lEI|$^(!A&I9Z+p;=!Sl)ecDkK zF%PnFx}MEyoiVSDvmlfbcH2s(n6|*aZ>_3KT};K7+MWzy+guKPrZ05{b8{mH3+3`N zgyQ%A9Q;*$h)}(p5{&H-330PMsP=~f^1?&JL%Rvi6ZW_Xdll~?Xi$^`NwwYT*TD0K z(`)o&TSS(OoHS!~f)QxEADTb;(^K@gnZC95Khwhv+hI)evK!0}EgLK~>K7HUpSHG~ z&#|`thRH`a#0VO^q1x~Gsiqb}xNZHQ28%*Zl~@qjIn#~xvtux(VwmJat8x!ILfNq3 zcSqIAQ`%LCYARQmQ!)g~uENv5*}#E#{iZ(aO57T!3{0B+0#(=vPqsmu8K=!~T#LEQ zYvYrNeFr6wPrzl10LA7O&v^dswy#slI)l0$hb}>09car*Z*e;q!itPIh9jVR0^Yp4r)o`3Foxr|=!FPt|Z!#S?6SvfU6G!f=h1VG4H#8y<# zXB#^QVg7aYKaH`;Q>1PqU2^PJ_%0inKa$G%<@8)H0tT8_l&fOCU9aCzNiHW8R8q79 ztydX6sfW+R0{!)>1v~GzpyYHlx?g`s28FT0{5)H=LJ}~BW>sm|t`I97rrO=%yrL{H zo$C7&^E*AN)SGMAWT3m)V($9F}XppwGwjf7qmaN4Y1{-t+4NS|KWkI z@goG~?d6Ect;UuI3*>?xu5&HkoE^7z0Q04(#A)eb108ckUQl&T0z^4B0Jz02_@Fd;&9c`2 z4$euV44AH=Bt<^hfQYAh>rx0zt}3GR+vl-}s3d(2&mz87MRrD^Xo;G242cfG-WndD z0A1~%V9^qPth#dvjo2Vg=<(&u(;#Wemgl`->l3_ZMu-i^1^ZBRusRK|EZtWqPo@V> z{LPmj0L|-%Qz6#+5Bp~eQin5yjV~skkC!RETo+t5T5YjUZ~qsa z6t=uCIvUGB$|K$-?sY_L#c@!iL-s0iHO!z#x6DCb7@1yyRYIfj5c!l2NP&dc8u@;; ztRyzmAw=Ejvx_mO{7Yb7;Fx6t+~6!rZ+$&ZaQ!x&oG&Y>aKZ5^J6HSCwRuQ~;@h2B zw-w~SVs5uHz~5pA!LMOaTJxi8+>kr+-Crb{yI(pP2EIC$U~XvZM^rH`4)$`il~3Qf ziALI7RTXwlOrysjDY{>vQh7~-OkB7=W#^hhrp?=HeGC3_v&(1`T*-YEi{^suJ<>S_^FD@Df;;_XfP0WSpg(D+s zx=JSICE)RMnOoErf(Mlb-E}ozNG5@wN^rTd!$oZw?(`wuz3+>v6M5YC$8A(62p_%~ zq!`9KFtYs3X!_gtuDF@L$eH8k+^<@!7_1c}&DTDQ(HnW zzt1hyidY<^B4<(ZfS=?|wZs1%8XegC&YK+v7#Yj64Z+>{ca=X`Z2u zR;;|QtlWr%F6t9`Qd^R<6`!VD5|E$qX3$?D0`!Kn>B)?gt&?QBzHu|(AX}nwuUYx= zM@E#$$k<~s3B+iuiQ;YWDD4x1q$RLif`CA$(1ARzG}g5$>_Yam#Hd>Uhtv0E+RE`=ze=10McE zK&m)G-%%Uv2gY{;9f`KCT0ln6|pgJI|V|IYdx z|5;h66Kx#ef$5q~G?KQ&EYppA@^xd8#0sgATT@oT5selr0$!Ia*ZJwsXF@%x0Q8@0 z>3lz7M0!CT7lp^2x2uJ6q48O)6zSgz}1-^7{uJ0e)&AY0cFymxZh~{jUcQoMS7GccSA3w z+NnPkeygjs#X{QGRo$tCBn zrwPYGp+eX_&98NQK3 z6#daz#24rC`z4GOJ=uP=kZJSlV`lC0_1(^=sr&71s#qChIx8I_FavpHIf#7}(MPGZ z4j@dh71+$#@x7ll&XZrI5a%lrfAqD73#LZD2*}J^Td4 zkjc${%@?|t*w)Ve<~0h^zSrda`Keax1i!UThm#CrvaKHOls>6KWI_XDOJ$+Y>oC1;W{WR{+ERID?YY=ll`iodZfW_x?tK+T>bG@|B`mC+&`Aw;)>QRLye=`Fh=Z>NR?}HG1rk(e;+gXe*`-o9&ap@tKHtmJ?!E5C?&P z7ngm9KnO0zpr9ZgZwqOgw@MQk5I5#7ig!5d)zb$39MX>8cm^l?Ds(N#PZ{8$iOOD! zF^fM^$0FV-@=Qkic8ZHF2@x0j46ucIJ>u8JhemgK%-#wRl=^Fq7@4T)XqM>clOuz| zwR_j~TPc9j_cYJLG>2;WHvV)dnRc4_B=ZY_!aWMoH(GX!DYnF98pEaP!-ITA~&qR*>|>h%M$fl0;0Z`)FxwoVj{-hs%2_iu`L^ui9M-0;JWym80=_nI28uWGFJT6>Nrr_jC=jscO z;L&M0ui+B_TN`3^!R|>!qc+ZuA=bjieH9M0ndd@Tnx(A7eLSo95h~#+WRxRel%mbU z>X^yfT8mCl1W_y5AA&M94fuGXoJjSXod?OnfjH^pWBn**dtc51{o(z2u_g}j33N60Wc#b8H0|+^ z^akc(?F`f;MT^B_fVEw`Y&v5k~VMQ9q^2bVDmcL%E#`l2x#Z6Ebl)h=VGW3!GhOo9C_dAjVR!(ITw?E zKbKD;hA`B{b2rjF#n%rI{E7JW{_-gnVDoQ*5zNFC-tG)@B**?E-rEtT1*4xsTg{_O zar?g5NCR6U6iCn>$Nw;G6UK@jl4Dc$i-Q!!=s7F;A09eS95~JQYH4hYWCX8Rumiu8 zx|(KWgoYRv(yy6;+&&=?XlKE9znkp*`lBsOqiYS7Ggw)f(YsqG%q9CYCd<3WSU1~( z5WM>ML^M;|?LH%fg1}?`u+MAS-^t=Xi5lE274TX_d4F#WZ9eWC7q{%>i_>IjFsLg>huH$N&2Ki+q%U_nXqmjwcHo(f~zsBSQC ztSXWtGgcsgSm-k>Vp!DU%&ekA!xx@#$~wRZ`Ydd(7)gZ+ncV@`S<$1uyX$cd!I@xf z-sfdr=Hy3%4o2m34=9+vAahuZOU-ir8vIT!as}$jJutQOI{&b>l~&52nPp)6*}-vL zEjm{lVt*3u0Uoe1lAqB2SoipNxCA1>j(mtE;NRIv^|tZ2wX$)ZZT{I0#oFA*jsAIa zf&I(}wJI&3O92hO{lnAdPbnyWd+XC;un;!=7(-q`9E~{rK}&qZTfB@&mZI2>Egm&j zQI<#9T*hLj1`qNm$h@+K%tw4y-F#akmoMkt(pX+LJ1YY!neBJLB zStaV;4~C3mXi63HF_7vm!C|Y?y!3X?IsOB3+u^o*9GX1Q7Cr9BGI>~AXZ?*9lc^NH zV0%2c9loyiR;{O7dh%Q(6$V@&hfZ4&IwO%=CNfJ6A^___7ZI3 zOvToVxi4TrNF+565z9K??k!sKrVgh7;WYYI{k+Tx76d+54w*5D%**Cit??asda4WenY(%_K_UfyqiGt|2gNu^M;+!g z)0O)&J@{3!_PWQ{w-{;!Hwv!N>+Pc#Nq~dW$x-G&6b6Dx_Iay+1fp;ig25*G8DSnw za?ibnyRG`q+5LuWhf2x%lIOe>5qiCq7)wI zwf(Y>1&ccT{TPYr4eu&1H;{5&JS|S#UWCKMCLMRFZ+=_LNNePmgjbQ<#X0Tvy8u+| zV!7Y#++QWYS}7xW!y3w+CUG)JVG)n?@v?y3$}2x{$U_ffI{PNb3FJmAzvDMG>ynMe z1|%Cu8tr{61T97(Sqzj(VB4l z9&;2m$!dyw+bFE8Z)% ziCJf3esh00HMKP(pEB!m-p!Z{At@I(;$5Z&^k5L9AX^H`q2^&{kup_!@;;`jT{0me zmQHO^+h(iqhKN)eAv^&wN*L`su4B;dEq)k^*Wq!!#0m-uY7jp#Sd|>t+#zq7`1>*#cvh0594ry$Y2WkeK571YEZxbyZnsn(};rBor6k3-tVo z2`WTFiBWJxjLZ%+885*8*FRG0jCGFsDM$97{*m~Q{KN0oRK-T`q^YMjwZSgIqrk=m zXFYQ9l-Rw5{siFBmk+P>%{~&VSDvGdSsrDXd9)#FTWN9^$!oks??3$`(!n6;RmUQ= zKrHso|Mrjm@LJa2#}W)cN*1w*|0IWrthsj8?-`my*z`g%A}@;gw4}Kv{im?&J+4&Q zHeOtyIkyJ;Of$5KG7%g}14wKqN%5=q#_=nWP_Q<(L@u zMmfyz$NWWxO^s^#^e`KDzzxp%D@4}fG+9OtUMX1g}Q=xOsn z#7f^P--Ka1P_C}tij`t#{_Zp`oCKq+xH6|IjZ{!j#_If|2msO)g z7IADlXt}f64c%89G#^hV_q)wlr?;Yk_Zx8@YV*&~a9E4ol1)kiJz56J@*c08Xo;)O z{2p!x9b5|8>2Wi~mG5ef}z zf;W>)b1R~IX{paA;EkZJZo|D^gq_4F$Y?I?mnUJO@eK6llLh!?N5H-Mic8x8qlJZB z?w|T3er1q%@^B~GPV8QclC6>~A| z`1cG@EjWFhvx7o7yM^&7$yEc51&h`iAXnU_=*R6Hp57dUs|uIj!N_FxTdomwrg)-l z#2LX@p_#j&;EM~u=j0!;_nCD8_Qoyja}XNh7~Vac(qp`WLW~G)iaqZ%gpfC%=>v(W z_8m-p?iC8-)w$hd;Sr${KWl6wqpX8Y9Er5=X6gZwz6G#^hY#u-`m_U#{|@6nTJzZuM>1N{@j zMk};5OYl$zHoJc)o;b>IKGMZwSV_>355oQR?-;H;pitA<`s*X=$C~OjwC1cgjR1;= zEgDc0d?Dp;9>w*2^;eZ4U|m_OzT^Yf5pV5!Be=zk;78D${biUV?frZmp;jI0L6Ay}HBX1*O*qEati3)!;`^Q+fhi z(hc>hNvu{zfz`nXLJWG1RP$bkW=r>>9&3#embOoD6tbs@O0{z!vmW z>*jXSv)`vH^Uf1Y8!hGUq=vT7hr?mP#<$yv0r1J5$d|s$gO85NP;jZPJJi><4bW0i=X*euk?hc{l1>C;uE5NXxTG_F2BPjHJO$YZN>}xrB6hVv4xHIV z&%30aH(TGXPW%iKF63)kHqdl@xYF%3-&Y#q#cuM8qqmC4&3%wHM$^slPefKDxaNZ2 zovrJkT@2#DlI++1j#V0@Y<){`kG-mwS(&YeA4#>etjx&yEHT$DiF&o3zZiKZoG^9S ztO0YQuk!g;f0Qy5hD?F^Gok|pwg$<%do}qD2iE&ngP%>~@@<9Xk@cD-Ig_oHbil0< z+-sg`pRp_Gt0&-PVwH0LM9Jqto5u#8Kr^`vc3uJmu0$|eu0*;Sd&gj3^ncFlNTS-# zC)mkNB$y{|F1*|wd`!jn5f*@Y)1GfdkHnp7^$KW(`+l^bPisUko45HbLJsFo-)X_I zZogR_&j=i1cQ`k*EoFZ)K3_8+$o)PS{JMw{Y}!;45NUC39t%DVKQlL`u}JwqUb714t_Nrfxod>v*&sWe{%>nmreS_jM|!o&YLpC z1SEmZbiqyE?42sJD!Jw}L{$~X>>F6cPu3w- zxQf5+ZuZ@6?LG$QjYjy@68p2I5+~DgarQ6sTE2ejv;JWZMA(oQNLi#J?}i`8X9Q;Q z!zi^ouwD60zAM@bO5|tPv0U%`>@lsKCwe|c6DUOt=gpUHj=y zeAaG@NGJZ!p{R!8Au&fDS43}+V}G*?QkgGyXEJt)inH%#?!6M^hmSljb=fQryXZPA7hqYWeFJfRrHh@=s5Kdwl!QMftXOTKI$x!1K=O#x^i)`*C@%{0^q!!yHQFbQ9rY1-`2plb z*#~E}TheZTb8iT3cZ~Z?1$+a*kDU*pZss>^+(I8Gp(IA>4GPEUWf+cv9PP2NdLk2MwjElCJGWVr%f z*|UbTZyX7y4qjMvHu^Q=RLo|L4#02?g$X!CN<;D%Z0+X>$P*vlNNWM`OL9)A0s0O5 z&Pdh~@G%lNLl^kZ;J#fki)9bCADz?v3njg6%7E{W>Z1i|^qiTM3B|;vmn~ghJ-XRn z{1_^P=N=D5NvjkPrj(th{xz(& z^iFMrP98abKg|;Zg-)o{rG)c3(rbN@|o3 z`(^Wsda$TRJ>5K_E4UJg-b2FI{P;L|Z4Ez=Wahi`dizy~z0!#ijH!?4n+u=6Ruf(J ztAsFCGW2ESK@$ZK{Hg2p`Hbm%%C?Ih=H#B!&ow5+;SR&qxf$4Q>G#ZPp3_IVECJ=($Rs^X})Nv>)I#;pb=3$+C)#QG@6Ck{Ri}~RfZ)bt3RJ$>RTwB z1m3{&RX(4t+1;uJEp3Bkz-{lUNW$g3#;Mq*5)>HwCSj}nyRdSnBp zQfWg3-|XUM)MF(IFIa8e_y_j)7@aAiXAdVAwKQ#B)m1BSk&neLIWnR9x$YLtY0@p) zD1*j^dRBIFr;@X8%ykCXHRv;z-b>?8FZyhoRBo8*oX^N` zyu3phpf&nPjiQDVaZ-+ouriZ-lOL% z%D3pmSEXQILboZQmk4Jdg8W8f+EMkf*t>0?5~Nl*k?9)4^4e3{f-M|PY?!5D?6={Z zIGO|?jB>B+<7IW}yduriQK$wL-D2Q<7XQ@zUMiw2_tIrhd{XMEZ`0j7MKzx`r`j{l zo)S7f9>)rl3O!Vb)pQFU?f5aRkHtf}F<~RqompkV}S`$L)Fhj zc0u`uurvjKA8h#nl|=g;gm^ms4eo;K$C&Y_-;l}J$_g=8LY%sm91|5?<%J_>$Jug# z4}^9Z-&9-j!sG>gM(1Sdfo1nMyE-%mwrB2+p6lDAS`{~I!mnFoqD}tb_-dMh3oiJH z2h$V0!H0WL>Wl4BW;T9zsf|1X_KKGfYa+0Flx_{~0+m?N*JN|`N!PHi$PIbm!mzxB z<5?{DFQxD;M#iVT2&tfL9YL??no%5Z6T=0}e5Meiq>7ysN+|e@6o(;OIX|eOkLvx| z?{7!i%2KlbNv(H?z|rzG(aZR0CXDYeNw57?w2%ISNJ@~84}^f|X=6-zO8$Aefd!p6 zd?;Qva-y&1KrF=P&+UFLyp(H-R?~V9Xs0K4!vB>cI4oQ&|M!=&%uFnti6}9&|KPjp z8pyuKnpwj>b*zVfHyKaON+`%FMUjX4a~7wVu>XivBa|!6$0>YzX`;e}bBi#U5Z>kO zVKeUNcW?1m{);1$o|qkQ_Beh9IGWZgiI9FF;zXvKNqrA#-y6*>$Xr0PpS}H^J<&*+ z`1Iga%kI5(_0sc7Pz!BfS@8FC0Whldd0GY_e^&SnBMb~`%_f6=jKPG4R*^?~()8)f z>BTAS`Jri@gJH_n?dIQ{h;`0A;eD~8q6hrEieS@HiJ?S_&TNH{-verq`&29+>}g;8 zAk?+i{XZ|>46N-SZiN^Z zh({BdZFTT5Yt1H53G(a`&v2Pf_WB#k%2RG-%nfEJJR?|tz(~?Y( ze6@3IFC5yuBP&QG-u6S50uU)IrLUzKYFwKO7stW&z*=OvA!g|9d~vABcv>Wt^3hny z+8l(|_e+zMfg%Pd$?_2OKa~-}vL|S7=z$e(WK&G425^R?%;zez)}oSuErR$D68!dC z?yU&Te4M0^67q@8-0GC)m7-KMD?fl!MnQ;?S{k8Hi0wbX0#-6_Oo&l`J8V&N(b^eQEd{UE&gWZ{w zw}>U-!iCCT(ZJp#AW_?OJYeU=MhjsE9f(C#2!ne^S9UVWqIhaCbB5~4sq0)zSrw5@ z3vSc?M)`nMF+~EoVqmVV^TQEZmkXibMwO|0a7lXjTqUPu^5fVhJw@ay)1+x~x}c{s zO>!@_=y>zmqQ4wTQO27AY4HL?6`CZ$og}O?fJDHKdK0ul$Yz!V~{sWG0D+PRK1b_T{~g0bfYB% zOvCs5eG(ykG`SjKUXq59-=Gh*IHZ)+()P=bwxw~yCZA6T#t{Qk5u6hl_-krwg%$KY z>HjKiDeUBPw?~KZC^dUBQ!CeX36b=QI3CAe@ciY#wfq7{{UOTsf9D2EVjTiH1k1lc z@o!Gh0NVe6R1%oJE48~kks=Hl2kl7VcHm0rX3WXr)nc_q&>GKF?z7PiG(dH-kw ztXK)6mfo-&jBms@9KWuPd5@zU9)1NCE^ODGWk=COqW(*WD?bWEpoyX3(nzC3YO8ID z)xI%~iz_Qc9^U#z6n(9*@Cr^?sOw-H{y(xazZ zMqq!`>YU#HCm^04oOT2B6A-_%RF;SJ1@o0*ygpRF-r<-3SqLkO4@x0n=m9Red?O2R zU!G|CrKHe5?KOO(xZYrl?o~8yId-;;`g32Wlw0|Aaqlc0At4gi2<2$1P zR^M=#ZT2{m>Vd>-mGf~-rptYtQeq<-$1kff7hFz#9w1;dOA36DYajf`plCr>uypZw zF%{?6tghT*F-OpzCs<8XY^FMLNWB}lE-$&ooyDjwshmdDh+ z8oZ)QZVXZ;SQd)0E^&MLd^P3dJvg!f(fS$BWpiwRKW(e{Q#>L2$Q0 zS2kz&=xPD2BSNx|BSrT}D`Y6py6n&~VD`>NU*tPi9370n`nq{(Zi(hX%%$wOT5kh< zvNNe|e@ZEWO>_)W)tR%_H(ZXY2h7Z(63mnTBwEq(u7iOlZ{k$RT5CX{<)MiHqRKQ9 zFP`>GHZHw>V3(X504vHqM$;kS0XSr63`#2G>An4XtzzNh-tzY=5+Hr^-z$1-rXpyl zk4YUbVkKCcQPy#&-6QCRy7DA=jU-k9ZW>&hh4}_C^jfu6yDjwP^pPBbhuqO{RL@eo_QP}nfdFr0xXqiw}Y((XzMLx+jf_j%TT z8?E5E`7ag(d!ty^ojS)Lb>+@|cD9xhhqhkWVF==JhGVL`bA~1Y_^wNUS?2tliu4&K zy`v{p^V=DpuFO!8FeQJe-5Ea=e?4$ESa!c&94S$cSn9Qj0hNLBq(7kaZ%6s16i?IV z=>JaXrfli8ywJN;=SxLUIL%bvXD@gSG>A2&2DM)Zd5#($D&2G?J%uFaF|w9AD&Cu- ztCXll!e|JkZ!0VDKCKe~8jpHaSh|R$GR%eRFc4q?y%bpeJ~R1c^s4vuv+7#{a5J>t z`vUrM<7E{Ohd1ik>hgGRVM`+UhRSfwak>pdaa^N^%Czl$i`@XA1-U!N^(6wd_dV(gH;9F8%HVs{0kN44l4Y!Bg`>m~`H|q|8 zwauOGj&|O%K$JgRXH4?htJ^^N8-6Z`D!^g+I6deRl@!_Q zW^@vT(cOX|e2{fP-3cz}zrHP6x;H{jgij(vE|uL()!|TzQHFrF@RQvP1gdZ;-*R_$ zQA~P9K1g%FdQW!%@$LRFRK?JOli3J}B0!|lpw5E7E{Nc?4KdtJPG)8rDQ1P>})4X}JQ(}QJH&%lHkT+nwT)O>6bxtQB4Du;$ zX>fxL2QNre(GRut?$zd6j`sRt>U(?43+H*q))hZySW!)JO0IX~bawt}na4Ki`Fttp z@@+ZZX~*XmBF;JesQ2fKB@gG%_EyI03k%~~00siuwe)r97K#~+f7U>?DdpHZX(mvK z;#VwJ$7UJ=d|p|%wCU>^Y+ZkKQ)cE;VH{xhcd@mDFA{b>Ac0ibPc5w&GQvQhm9wsp zCSR`$f(io_a9btr9t_f`NtTvDuOY+KJEma=ui?k>5p~e+GA?gq zOuhF;A(rQZofBaYA$}fNKz!h4VK1`YeV;oCTZ;Gts3nGHxENk?W*{5)4_bH$b3GmB z3!zo^UK_+%tZpgU_MfD#s|WYSyADFFas~p=ZGNyxy5eKKLlQYg|#&+!I&;LJc9Chy-Q6g ze4=r{!%X*#g%*#&&+C=?a4m>`*HA_@mScdsJmv{Ui~J7X;2s6GJn0O`ZM745gfhfV z>jSH1BI9}zy_}V$t>85Tf>TkF@Yu}Cz7!jCnt%40#V<0{q}@`bRKYiZPa+vE^#9F} zM!&I;N4XDkrW9!^Kd9ZuNFmNq*RqcCrd$dP*r;BOUZb(U2$ns%_E;l~<^!ZPHr zZ&6BFL?!C9`eR8D>9tFi6TFvsI;rfBjK+UqBocJJ$CjDEBr34Uavj^8RzF=9t1&qB z{0~$(u^L(;IJm2_Jg+}HIxVzPT)8(%bS`04@b)`>U}EGx9qI=o10N><>dREsQU3z4 z`b3+A>Y-;B7E=dkWumK=f*j?+;2S`v?XCY@;vrQ~#7=TYP}sVoH>i$Cio%sRWu+|& z1~tXQO8AZMxMoDE7^(L1a-ZPQf+dIL(absgYn=UN3>e51>OQ(oeKVj2hgK|n-w>Ci zE(t?g5&o?Dxs@}UH8HuKO=zwX?|`sdhgedR!uv|3zWuICm^o2Iqcz~0{c2U%+uH+K zhPLEwoGTvU>(vS+N--GIj=_v=qL4GuJtpK*dCu-$`GW0;&-veKY25$+TH1fL(wMpb zUqP6T!@3mO4+67xeknrDhy~Moc)2{8iVGUupKjK!pjiYgGiYnjw9l5a{B7rXa%k8s z#Bkky2{MRrWGC}JYa;V+-*i)8R$`atKv#jucqUNW=40k=@;+o3#3FJg$q}msm+SUQ z_T$^7ehEKUsVZaX=e$ifH*CkiaP8K4KY-MqyMiCE0FNkuU;v6UlgFGxaskPd0`eyG zAJ#*{>ksQ8AW`mzzzuRtLhSrY&A2bNS5fM=%dz$OIa};!Z7O%`bAWs#clERl7@S7i z?sEG9a61Z6kMWL>6`R)va5a{NHV=j`9Li&Q4QRNy}B@D4)zKR_H==Non z&^9~`o~dd+*Ut$T^@gphk|Y^t3WNrKtHK#$4~pu?LAz{hp@vJ?45)%0%k26EBCC)p z5m=b!2*MFw6&!tB`4UJv83Q9?p%5q@-VWWUdFk&OWQLAwxoY05Zzu`caq!^V$%_iM zLWRENFEzI&GyMz^%h}`{INZ*F6}FI1&|h-&j&y1!HVhmaRWFKZ_uLJ~=@!5&qrcz*BNm*yr|%?M{? zNKHnH-!1*V@39X?4GUOs{r)iEvr(4Ew706GELc-zC7@_%8a3)D<`Cxq9qG=G>kwx+ zPj)s31;bx|mY8xl-XL#&71bj1v!nb?xRao^>ON_fNvOdIWTJecDqZ+4FmbFvwEtIa z3NPD1WKdd0+u-5ckuCx08slX5ZQk^2l475WC!PK{b$@8?RTLxX#N6N(1WJh-gt0VY zHhSJc7_+4iR!P<;8ZGumK707-fr72fNO=Yx7B;zJ2c8AKrXBSf)~baDXpYi)=3c}% zwq+u%Nojb|#=S{GxuMqA>{(b;i6p3w-E^&cnJR`fVz|SiRzdpA5Q|(jPxE`2yx4KL zvawTzz0Y^$<^sa-%c@hpX}-nwM*v*I%HKOTH`ktv)Vk(Y2hRz=cy4 zsYm<(G(svoS5mbG0DKOh=mH; z(&KYBdJa2(7n~&}DZNNA?2sh`FFZ)nyw_-y!?+Kn z?*I5EVjB@LGSBM=RgGve{u`CJHptSN{>z!-vHni?2`H^E7ettNFJ$c)gRdl3#Ph4*B~hL}ZZZ=1*)#BnybfN> zQH*AO^4@C%puxs!ht*_Y3nqg}?_fA*D1M7g>&_ZHc@N!RnB-A1&|S{NvHyFajDI>< z5~eS=W5SiSoRnIRAkEEERgcLdIQzN-iKC1!a?!wkU_A{NPNg93(ZjB43A?_@1+?Y> z{uc_n;-#L4zCAK|MI-p1dKJI=f@!+1i6cSGvm_m2z+cw=3J=l-O`Q{1?ZuBsv$%Pb z{f}Kb8T+G!lneVdq~N_m1Ntgy=u<^j%+Bvp{F{C%Qe5Dx)JQ+8S=WE#Ulu!!Nuht= zZej-xa<;S-bVbM@`=_<@phndVOeJVqPP2;$9=+Cs6^k_dbw&;Ft!A zAL8PBpYnsE;Y>N7Vw0NILfu*3A!0~;L!b3x-E{tE#$VLa&7}1$YjO?V5NX>k-xjxh zEf3?ongsg#2zVG;bME_x&H{g<6D`ZH8}#V*0mw^egekht-$3``nW?iYktgnhg%x?>J;gwm4TY4rbA=8%MvNW0@m7^npL14Meob^OF$W#LIe{Tqwxj9mjKyY!HnV4W0C9Ir(yAW}4a{Q0zlbM5)`M+S+TU!4g zsjx5h(ogvy-kmHoS13JS&kvq90q#WOKs3Wkr+FFy&%)~aGg~#2BBCg%8P$+rb}|3u z#-r2wN<3j^h-?2hOZMo?9y~cmlKc($fMEdGhXg7h=^l>7b%vUPLQ|1pEp>r){S@usaix6fvY6*^rQr+)!Mok3ZPmFLG&#gF4YWo?v>^ z2V$s4Y}!#1&yb%-e4_k!T1yPGnk}lf%HV$FB^^Mr5zk7gE|?nh^$O=nSP{U+R5-@V z>S;0rvSp=Kj=Y9(j>a&*;tHx&BF#QRllxxz@_`0CONEI0aF_t3;A!Mwdg_kxbubHg z{5)boR7iwItiyGAAPm1sNEjj%gzE=^##%|+HG_I9aU_`Y(3V#ILgDW9?~CY-ndZ}o zx8h1yO@JWsP(iea&lUWWVuqfaJX34J;6sOKUA0g# z!M2~GH0DCf>URcEaFUFLkP8#|qT+#9afL_FhBO4W2EjWovd1OB4i;Gs1}{HJbe@1? zL+ig%OXLqC$B{jA(0R%&%$z0 z7jos(Q8@8}>qnx14a;F?h@K}cG0!ra@ss;xz~F^06bAr;!R}2l z2QFx_16f-9<|YuHha*9vx`pZH{VPX&Yll1EY7!$klfAXxmPN=uQ__IAuSGkL&$+|- zK1Bc#)@cGz-!rw}CgGzeB@?NavpZQ=T0G|{23y=6dgmtN5X@BgvUYQK(|(=08vAhJ zu|mkmL410=9wWSeU3+zx|Ly7ddinY==*!2C`o2-=2~&j;(ba2ihrz=%m0{q^&b<-r zS#@AZfk`MxfM_fm3GZ*`;`*y~tsmd@7ee!(Oq&=WZX>umD0FH%#!4T>8Oy*E4Ahi< zIudvfk@~_bH(VYgu+)>04#F@=@`WCZXd}FXpw#`ut2dp01K7n$rHz9XqsRKj_}lrAHo&K4DW0>+eXLd?(&W4p?qWJlXHou<-#t++$iM<~Dwf9Cew z_NQHr1!gJStslrEX3u)|N`7W#r61~5W4;jC(A;&xqWm7EBiBhXj*cb9o!*s^nNwDp zI8(gFYpWmi&CQQZ*y&}T{)aV3FRI0_XI*#ct|hXIL>mT}qbiW6IbgNAFJffZdoLfc z;!4~>EmXd5INN7C5?qgK`7dyE40_ps1S1CEQy85Ct#9qDb~Ga;a?uFY+AxdO2M(#j zi{kVkQi0^;AWfm$(%Wq(L&JWhO5y30qAUZi!0K>H@%no)O-23rTVmn(CN<}6Rh{Wtv3WtrD{ho(g|!qZpf9B4EhMwJi#a-w{&=JA;$__;=x|6VJ= z9vrq_tN@9#P#H=`tf2Ri?aUB!O&Ll%gr|~mc|Y>1RjR~1scCRGL<4bhb2 zNX9nqYkeV*evV>|DHX9LEURbX7IaQ^MyG1`z$)(CAu+lXxyN@6X)G@?zQoM%-W zV`>{BwY;{^-}{`;!UfwkLu>%?#}Ns@7mdZpirHhv1<|*M@>mG*tC`Nd-VAALF^sV) zTTm3=LFiUuHrIJbCc@Nt$fA%6OBaR~?DxBD9_D77syLln?7dZ-9-&9>5&rVAwl96k zi2>Hn6W)D;D1scf?C7dNg`L^heEzi%8a z@fPK~nq%7!5ZPa3z)DaL!nAhMARSYQfn5a_&-BzMgG~jDdHuMPD)O(n7)h76lY)+C z^?e{8lE%ZDs0@`hp(-|Z_+b~&e46)j-qFtqbR=8m?4w*xU=(d#oWC^PO+4=+yaJaW z-f@a)U*a0aZeXM@h$yx{XY3tm!P-SFT$es-RlreHH8ss$2fk(b#*38Y_S`=R%I4Af zI27rAhv!1_q=~%Os?cecBl$FssiI?0Pla^U923%Wx|4Jl3u<{4>d{hur0%38H5$F7 z>eNVmfy)m?zWv|dGFGPlt`{=1GX2lG`@f`=hWjLOn1>$rnZ)jOu(N1(%yCkh`72Nf zy^glz${q2lI@@k_tKZwKm@2IEqt5eBd58fLi<51>#~g!mBT$kSkd&8wx723JA+7(U z7k$I#;pU>W z-70-an3qdZk`H1wK? z!;c&(B!GH|{cGTCCmJGlRD+M#9*z5Vv#@M2lGC+rDt#>Qz@RcAtCUxoD&KdOYyOwo zc0i{Vcx&OR{6Y`pVk|fqUSjuRj1F92#q$c{{n6*nkuU?8b%bt76CvFRwj>{_z@Z=r z$q7h1`Vp`I9#ZGDmtc^bS=Xum?4$q4uXiGy-vIl*VvVshA^+xBH&`)`0LuhEYGi*2 z5>g*dx@vGBFvo zA9uI24eCk0OGS9oeFp0_UaH@U9}8RWw8=M<_k;kp9mda_i|M$oq4SR>dTj&;ie?Y* zGO7T5c&Fj!t;%=ym70iL(KS@qeg@I9D**VDjQi3>^Hej;t)fDL#P&MKRHErZ7fxpO zz!y|&N~u7x zlq)R`h>X_rRLcO<;qUXngqK)|qSU2UpQ|VruJQARc>=zrE^}7T?MxCblB6%hBLJHH zaaY!F7)%zvlAz0fQB=jQ9Q2PmlcmqkA;0SU#PK-~A(;0SxBKmTK z7!tu(z(@wW`HT8)6^fedM#IT5L$5TX8@LlxRyIS z1@a6JRY9y2{kHA=1Ozz&+$(VVVnWyDq(To?2&ipN!>B4%+3@IT{8F)6X=xeK*a3tk zrPuvW>a{|{QpB)Eb*y}x$>w0r^iwYVNe3HE+t3zLnbd!>ms>+WWz~mjx>u{cEXa49 zc7^k-QD1|gKNd%b4(iqHJpkFpI7CxJF>3uh4XSuo_%O(RiW{pZL-0VIbF^0 zkY#aBr!%(tHr-j(Uh6NeyedwmWjz9nc82?viWA}j1R3hSDVnZSZNh|dWVhg@DLF^a zkxL)TFIJ`PZ9~>hEj}K5*%8JeREgd&mXpCi(X4{VSEV_#HkH52rU1}ehb?1HwP}Z_ z9qo9@H!khBfV%4XPpuk!tBdeZg&bQUtF9FP!7ck61JtK*f5w!dpRy<&3Yre>W^>ZKD& zcTvdo*P;E$2|`XtI{-(!bdpX4(d+dG?9`}#mVQ?G5>RlC^4WmT=WoZz=a<@FzME+R zAR@iWoxW4|9}}TBUC3n9VEJpTeJ%QwUe)z0mS5tR1#O7SpbHviJL$!s9q$n@2Pc<_ zF+;Z*m(1cex0++4jy(HAYW!`8<`uRvtvh zlvxv_+vLij(}%K%ekPB;tP*L-71y7b&hZ6@&HplhF#n$lfW%2}C{U*V2@r3LB7apI z2vdcMI@d1059^_nfpXOw{~VM&TK3ilAR_UW8CCLaXj^KQ_dC23b??@Rro z81rxGl|GGJ$WpCm-H_+yk2T({F+Ba}TRxH|%&3tVZTj`G_sVW6}M-l<)4o+}lV7t;eCEYXO?rxvFQObBj^ zd0=gW(oGO8+6Bu3sw{jC9-tzOU6Flbu06+|Yg2|HKOFdj)j|3RUT6{kPR^SXfM6Sc z#0kyEGv?19Rz`ryKO%_UBi*&t+xl zh{uX?ONLMkv1KL|I?k3cPt z>$<{OZbkdybpx(*~ZU8t9ldWEas&&ter@>{p1V zC<#kR_&U|EG5+Xq5%r>NgILLtf(6<@E+bN^y@sK0yHx{{3z;Suy}(KYbiOe@@=8^% z4LyKeya3A^=|j(1mzoyA(USQXal}`Y9P)T z&)^}_QyKPEW0dr*KHbp*(7&A1>*pC|G&xGGSXRaP6=8zad7$BirS4*=g zY-iDVO5*I3#}4JjCb;8(8#sw=i*xbZ8GR9%cRz)dk~q(mea4$PO-64spAdn0Q3G4@ zq7C^T$aoRa17X5<@ukdfa$n0y?q60_ndJ@+=jDvb*a@Y+*L|^n^z^aNxWIO^v~K{z z0quE=>P56=jYR{89QqTPM*CA%mAn9-^iY7K$ocykL{4rs{BlFNVh}6)9v%14(kIz?M1t=P zdAisHynf%B7o(1vGG?&`G1tQRH}6x!&CXSGd|SHwo@uBbgrAKh{Bh)Ks&vwFTcRZ3 zmhJCb89@lF=nXh>LiYQ}^eG#Ds$nK#rj!;uCWt=%LGGz*dnY7tZuNl6di4P7<8SJx){)Sc4Z-AO zco~}~Y4lfR%$k<|4Gylcc`DA{l4&qhJ4RFsUL{;Azm)Us{03g_ie$Jaq26tS^Y-+I zE%LkKTSS^9!Xka+Ua*yp*C?Qi{tmiqLtjg^-A#VM8m|r*f}OHt<5YSjg%Xl;Kf`DS z_c2D%e$uX5en_D~bSj%Vn`d;mkr*O9us?#%nj#X|rSVJ(e4(@A{JEG!oM`w!;mD5g z5V0Fn&8;am`3|w(Yk$^9QEPrVS~74ADIGaQD@87c-)q}N8TBy}PYPgK4X#o5n+~mfbZsNNhQ9RIbWC@QfU=U;<{jT2K9@!8BZHMcg7~0m3bDs@14$e zlTBN^{AN<(lJMAA0t}#*qm%WBMDFk_*S%RR8#i8YPrL)#wIsqzFHIT}>O75-vr`A2 z8IeW_hFT$yvw0HQNtR zAQ?G9YB_Bz{-~k!uN-XR5aC5Xnu;$6)^blZZl3j-G?||7gc(5B9Yf#4aLiO*FGWXZ zZDQ95Sv-BX)Q(AgnT-?G2sHhnB~_}%1lOL2dX>ufoo1qj%}<)w-hZlwylu!mGidjd z0v8S4C-NtBpA3{|7kfqbhndGtD<@(3Y=0!ScDftKMSXu+kPwGWlrH|)MX9zARx(v- zcSEp$@ScrE#R@?MOyMWu*MivU|1vfFh$H_~+GhSQB~aD>g!Bv#iQ*!yC)*rDCY$w? zP|%r^#ncOpu@nrsQszr-WXtH?S9BhFuK&U^4n+L}TZQyLaP+YMJ?+kL*R{j9R&5>R9NL;sY4KF1K zFk^N7zQo7<$Dk9~x>Gnh1nkuatP?HIeX!)_erlS+;DWTzscCLxQaFZ~7^g9;5L^&W zkhsM?A^%=dQstIkw+tnSs&}!Y?OeC}xr@Eid;gW{U;lf{y5}+TBy#M5dyD?|YtugG z6e^g07|HZsltc)rf3v7T`C(A><5Ndp0DajBOA|)q@gRw9LIB_8@11K`#>7Jwoo+xV z^@i)Ah5n8tovA*dEfTo0&ASz0U`p5REbKlNTK%e#3?w<~pkvd}pHHcL#~yAz!1guX z0hO?r7zTgM3>8wCEewE{?5Rs24AscwZD>KAhmaw$E)X#i>8R1Ital~FSe<;G zM|#;pXT-|+#lSUg$uDF{V)T@L0D`<(ZnAe{Wa~`WUhd{o;H|hxe6^=Qzp$3%Vly9& zgX{NFP0_3gkD97QE9EV|!%VIj1%DoG3084+%Tqk_9 z->*0M8K)N7gZIjOQ$VXr_hW3+vdtJS&;PMRxgrAJ$Qgdcp_$vvig`we;Ui!B( z=NBf-kY!1KEQcYVPq0n+GQ$RUW1u#W{zcpu?@mvFhDoW%Atd2qlcG5*r0!2l_AGC z-5|nvP%%WJlMY#h(MeF4uuY|x-7m_LG(NRow#_za-mt`nPm>&-^I{Z>GcL`Sc@q64 z&J0{YRmaRlV$wWe9>^(#^K)BLg5rzzAhc+kHXMvXuspM1oPXU2aOj6uk) z#EaS^$Y_0XqHM`qt}%zyFLjU@V`Hu$LgP9*Z|0lVP+{NE7^m6_wWSp2c*+AiP|@W+ zg-5xmWz#v6Kec6+N4+mkqe2Wc`-A4Vpa$xuW<9F-d*7;Zmn#SwY7(Y2WKHDEBd-U` z{J!&7^*0} zX!{O3>7kQbc%Z!q zp4@JZcp&yF!2IGW4o1YJE~SJrbQ5sb93AC5-UR06SwY5I(eL436IT8bFl zxB0Grr*+9Cw6PV{l@xH-}77u4xumqe)NmD`iRBy$RtoMS8 zEyrP`NA)#XHV+IBT`!ihp0+l+Fgg7$m31%3GTB0>Dd)HN>+EPRb5aVi&73lWGe8V$)om$7 z5kq6nl8n{Hv%)@esQqblGVU}{d`JtYoXASBP>-j zGLqITuR;PG>9uZ*UBuB18< zaLf!demEsrWh7=JQrpqJ!ROQ6y~edZLL~A_EhdGgOn1sL%rUFw+ZkR+q`Gzi#rHmE zV3;2$-e0Tk5@9N6SQ?9nB8p_A8q)H2MT0ljrXbJ8)~o}DA)rkHUgCSXQ26;=6BTv684HhV%f_Zk3HJ&Yk$60! zP$fLTT!$~W4oM>)qyxGBfEHQxH|`fG0;|HDiEx*T9G)Duv1{H{5~L^qd6tFtPlZs! z)b4^Wf5LQ_C~^6`VvS&{DM%u${_EkPcZ-^GkVp(jmOe}mTkchBXsiJLWL)>lOO_Ix(T9HFet+Teq)YM|e*UUSjCQJI`o1)-fV6%I* z3C5d-w9eLFC+nqqvagsvxZSX2&=C@oo1m?=`~aKTCb57(#JpB9bbo~WK4uVT&iL;^cEK-TXrm{7cz8$QTH<;6eAp>cKTUm)7}t`O^%8CzcO zb6g(cgUQwvrq^#Hq=ra8ma4BCs&7aTDx|cGZ+{RFa6w_LL}wUXjo*(Py_kf&k!@ax zF2j#V3+~@lsO;aQdj@j>u<2QNr#D@)dP-S26A}nKHd@^B3&DX6en(Tsj60+0v8k67 z>u)m?p{lhIgx6sV`x&86f(Sg$<^Rj<^rKTm2W92>Z{zlsw$1N#DU8o6gFL5ZT@M_1nr9M-n;^{77ln7gNcpbs0yF$u zY|Zv`wq4vjkumz2s^)E@7#uD6Gylh$#nSkXCEri^Gj|1EF(auXx(B?f0=9?HQ<)QR zGC&^=Zu8-@^sER7-wt3?jvK~{sNL_^Ez6BXWA!lNujgXylY&Wr9~|TeYlu$**J6tY zX9QvV3nzG2Pyiq#SE&_eQEmPCmtB6jIvHSGP49L1(dM?sEw8v7WSOD*2W9ZN+XPE~ zbM=cqGub*KnvE8*ECkt@nHf<@P96e&cKSG~D3V6&3E~jkDBR7fQJ%~9BKV<+_A{JZ z_0n9#Pp;9WER->LKN(q5nHRZcpuTsyv?WOi1%^oLfs{U2W%#l&zo^&^yc^})u{ z@^g)QVWtam>R;SmxkTL?2J#K(j)qe&3x?mLMs%(WkijXJe?f;OW&Vz7NijJ~ z@fZln*``y_>&At+V?cBPDn_rnGzA+!gb!Tb&tw;G^QV$)hM$4FA+I{SRfYIgSg;!2vsf>A~ecUPu$F%y>1KTi53zc z^zWPnpRL4ncS&CzwBt8gC+C(Im$+ie)MEE0m|sN<0MR8ElOP-dEc;0y*r+Tl&<()` zq=%JZswkJ()%v5WWDh*L;mM2~ZV!U?aUKNgFUp*Ac~@jHk{YBlX`JGKXKbxR1$<(dVjn#52Ea!l=< zrn3<{{IzBJ!^Eg(@x|0?nDyG)963BQF9DDBq*mb@CXW8jsg_4bc~D3C^Aq;Gv<3V>OR$z4iZUl#Ss9i z~OVDQZ&_@ z`PGP39hdN{Bak~+lmDv=TNA~J=}}B0omuk0<82C=|A8`Gj0EqboJ8jc1gulO31cu>#QnW}(P}g9jYXL$pDsiIgpBJKGP&u4ElOtIHipU- zs-5MQGT6308xger)}DIf{;xMxTczStoi<;89AFTSz1>1=Qdf*(=tcQ|$CI|Ks+Sy! zS1Fw4kSrL9*potVx%O)HPa(@fV~GX{h>n)otf8HSq;N2oQo%LEXXTiZ(PV;BN8~#u zeQBrK}-O4KO-(;KiHAFP{FNZ!z4L&}yN9`MVv4}jhr-uAJT;@*ER*k&xdlEb^ z+AqY)SK?!o7Elps4tx?Eo5vgZU*;{=#9nVSP$sVbPK6$7|5VSVFnphDX4gAZnb;eb z++9`PiGJ5f8-)Wihtnp?80omB5yt`ZX<6HRy=Q80w*MO*UNc>8dKZ!o8{jVKxzCE! zzU$JNc~(GFNC@0V$jcUyW4a>e)Xzmy9!v}%!ck&ud)i)(*%Rixat(ci*e!p0Zsq22 zkd#hy*#|%|NE^(qKNpnh0a80b?D7kvA;4b!L3IA+=Y%Wn?(2-z>s^piJ2IS@94U>& zC6Viiod+O>#4heZULO2w0j(N(cI-wYAc`q-f4u#7$-C1LvZL=QuqWb`!#WmAFaQEw z^v(Gg0x3xFV&=hh4^kLp_%}n2hyqj*B?2veI2j<`-mWtl)f1IcSSA*LS@GPa$9+sr z98)@J_ICbqm-=9Rs5DG6N=1pIW4yONOuIRJp?HisfaRmtct#WJ2oamZ_ zV`JJ6^Q(stlXkK>LbNG>i@j!tl7NAfFm1!Bq0oE`x%t$#uii^C48uHn8?JiZS{ppf zPy$Gy+pGeYP@rh);JA+*5o98`=0{zzWNmXTA_s)!WPBQx6!Y)n@om-J?zx>h!-;|1 z?YLa5%<$?4B1x%?dy4AR^!<2870X@TTLSITXPzfTzKeGE2@zIs>4e~DWsNhos>VQW zxa2jvUN1Owt1uELI@Hf<1D*UzNn%Uh`2pQK#TA?k-GOwNh{4q=yl$4j<|=p>Rfls? zp1+jqn(?*6g#1-Dgm)0Y(CmZOFu=dkrF2_K`@&bLjz`|%LHYKSp!LgmwxlTS_Evk z7t?<(DCnY5FkslW^vVqqAh>o3R&qK58Tc}-xDB!csSX`%8gTNuH&iT{UY(`r3SSq+ z=H3KRKscVxIqkgecV=aF#qK#e^0-h14ym9iX$=iAd^s9Y_+3n#iCQbjH8w189^Jfq zc%|kK%wzpyzpy-2(Fu6p^X&Vx8v@AS&rDqcepT+ou6=;L?OsK_?hSvw^PKa3c|7@4 z<$59U&6%m8n)hfo6E&*sj9^XPS@)8;qd)z(~+ zGD*2pRJD%utkTj}k*{N8g6qF;JhAts5CX4vXz$&eJ~?mobboX;*#t^L3jpxC1*gAg z$JkvOce=292AUKNWhhr9D=es6x3@=Tp&&=}7>-*P?Yi*vIG4ipYK`?gMK%6z_fLbZ zZ(3L|pgdPBTf;n&H}6TmR(|sw5r98ZB4Pr-z$xO7HG@(8!~c>=AQgGX-$JmU2;?tg^A%=(pteueF&@7(pY?~&upbs1ka$@UVV14qQpM-^H& zpn>2(XW#aduuG8rJLU(10?loBlrHhq>hNoPG5ABUnQ{1${p1W0hS zBOm@{sm0CJ@F;vH2LQth=Gb3fm)x0|{bi`-OlX%q|2C}j0Ve1IjnzobSd27|GO(8t zqbG91cuKi*)2o|E%b24@OPpL*SmlXTIQfoZ5t49DQ`F}DA!NUitYPHC*o|V~iq&c+ z2s&kk%Wl$_vLC<=66rr~S22aGgj!#qJ{mk*r2w1nuyi8;7vL;dnvEy`iMV}bs0b``sG+Z<<=xDlJnTG$u@D) zy#Dk&ix+Y^IPU%se+nkoF8^B|ao%a-i#Yspi0SN!{dip?UV-+{d=#l4HS<_eu7<_N zYmrDbyJbweSWsfj?Zu`~WP^5cR!qJ<3!TST%b@Ny8UXnZ!sgW8JZ(0vM(+TN5Z^!Y z2RCPE3Csl8?yLUM3@t9JjD4nXdDjMg_bSLweW;RWdRjw8rw*2^8GCuj@oBu}$4n$! zPAt7_v?NOXV5RIPSLC71F$b8f1~mdg{dzk4<9=biC4~mcPKh=J$_Op`ffxCnExCui z1_S5&H2^W=IngGzxcsNjDg_^T`I9wUBaY-ibG-8kP(L<__+e#hbsmvcMzzqKL1@F{ zyJK04aKq_%jQ3Cjouw&LzZs{O678?U>H#VmJ;tMQYfsvef9AmyU${ID9uA}NXvl*| zh(o4Jm)FJ#M=$Mq7-!GzQ-EsrIM>B_#Y@XHZ!~w`C#&U(`;oPb z|A(z}3eKeK7I5rL>`ZLiwr$(C-`JSgwrx&q+qUhT`7X}g-xvF$YuE0o?yBCad#&|6 z2g{q~@hcwv@!{t612egGwO!6ZKj}BrCvy(njX+oeoPOifu$kBKjN)Ef-%%-r6w7~akZ-X}5cf(J`jra6K-PJ7@xJhq6e zi^>T^CFvMGPkg`eUV~zHuHfP_RMG}=KNIJ|+~_U9fA>P>0#H*fZ->fO_}-DbAnlnB zVk{%;*cj9Tp&llu>0 z{7}LkBd=fgg7*EqJs=@*^o69o?eWiO81uE&%x?2J-&cH#IEiFBubf0Etco1TRq$Gu zo#%WO*HH=>JMiRwjmC-r-SF7l)X#>#wlpa^T&@lvKW2sY$tQE{h$Wjd%J3%;8BU=j z8A6}`&IUYf*kF@}W|_iq3a44#!Z^!j_c**p#lJ9#eRY0Y)khCsXg*dBRD*bvxuqkw zEmBT%(!kECgi;_Xli}=pxqVIT#VU!kvOYF&Rfz+_?2xBdYT8J6=HW~Ru{~vn!H5`O z#Kem5zNvnbnX5riL>I-BqqU6^a_RDh54CJ>7j1iBRY-2dmL@h&q%(w5bk~2iv#h+1 zlvo0)8yCE^)pC)Mdf?l;GH%(DjyEd2uvda-kAIp$hsl;O9rY-}L#SDB{H6)rh}%Uw zh`IsVo$U4%edjS9x)>T@mcve@+ew(*7wwi%Ecg99AMRHSxCrKR3@{iI?Z!~Dh$t?# z!zeZ1O?K+}1GzCn}e&?yc{g9C1RU&P+I^Z4aV(r1bz&)*wl4OyNZWLjK-2s$lL5L7p1;-#q z-c>V4RMpMjy3|>5ABhgUuy(!rGdewtMd?eLP@R;iwlYA~C7r*SDgAz4{e1bQe_jEb ztf={;muZ@wu{JZ)F5y#R9<>PA6kaytQG6%t`j5@C6x2ZAj{)uLE;Zhk5owfF$@kwG z2(?}ql!m%>Sd0bF8K&ml9T{z0_=ODHEnIPN)VzX+4mShwrG8aPmI$2GDiBWCTdqx0ZY=rf{7PB}npD{XP%Gv>Ni6P5n)og$6+zbs~ zZLB9HgN{Q72eM1tX1)XqzyqUH@Lz9}{{0>FmBG^jr6%}PykS}9y=$Fwz{qoj;~Fgi zhaxVa1G#YY4_vPhiEN}Hl{%RAx!K9qiy1cGJ0B)vnO2Wx_TlBjqs92A2TKJgCDtKi zMgtKv$m|~`47G_Qo%0BkMj?_p@I~2>)SZP!Rc?%~JqqA33cpyC<6t>o>nSKS$%Kau z3N5d7{e!z`(ie=ADW07es_Fc}8e%d{BMKDFfP5<=y?g^jR=Zx3!51Dl&p<}cEUh+l zwRJ2#cMyKMQLghs0Ir02S2YEYKlS=;F}It(C#RFs8B8HSt-b+-`|i8^tMMah#EUga zlcygqXr8F@^CJ1i$IJfNN68*K=8cKBl`bhy`lOl@iI{DmDNv|vk#Mo9cI_fMSHH>i zi$z3DV@UTSPb|z56`jIAgEMja$jxdGmxfuf;kd}F^){T)z4MpDk`@3>-sIKa4vVtC zXmP73uqNj*N*2B%@FjOI#%^|O+vf66z^=A==P$TC5OGU{o;lrDv)Cz4e?&?~7(q@^ zA;-lmVo`vcH_{yk@2+oym0Gg*r$dSAgHSr<)n%T`#JC)g85G#aBi|qy5yv(M+EaPp zrg64Q!RjZZ>rjM$1_RlbuO5FB3(ry0yx?l(z&lY=;PDy;HBsPU#2YPt19!dXoBoeC zIx9yiBPa+eGCL#d|F;n`5ioKv{5!uR0fGj`$-v2+2#iY(2yO*eFxhCRkv_Qo1s~G+ z-=W;r*|}hGu-+zoa6RvFaD9Ev;-Klh_+Dz^BBDe1P+;(9T}g^oL$!)L+Kxp6M>WxEweN~1o5iRslnu$m)Ka`{rd$_ zA(G`UMhD0RRwPcHF>)lA_V4P(@sEJ+8yuY)9-bP7GB7hSdY8}dMqwA2-u_qOXaR%R z`1W~bVq$Z)4=qh*bhCSAVrjS650BW)(&|$G_+G`p>cj|=_DK$!$CCdp9UXs7FRJAq z+}+&{k4Rv2b9hVnppNiZX95JB_xm=HPaVe_r)*idUA3SND3AM1JVux zqH!i^O`p=soY{*z4;FOEJkH3igy^}YMSvT_T!T!^zq~jCwhz<7&JuFsHZ`fD6cn)! zi~&63EAuE?CyRy`h%5RrIy$;4D{C@K257jK?`Oy>cUku8%7*7hkLrgL1Slw@Bf6o4 zV+!zt_w%y|1-s!5)OD7Yw#EtUatV-42#Sa9n;aYizx~>Yj1)`xY2_a7O_g3tUjzL< z=wDpgkl;kGb21}YGTat_G$F~!x{O5j_%%E|CVYw z-n$9%-2nSKas5*`J-R$U{LoAF(hFh zZfq-toK=~d9~uPt_b3kFKHYVurcqB#j4dHmn%rAHCqVsUBjS&Gohr~%$d=s%%ui;< zn0}}so0z|9e+^#BT*}g3O#)BaTmli3lM~Bp49|>&rpLhVPJz{ZCfx%8@$#{o=K)$9 z-QRRT92{KlzHxn{xN-aiPitp;BYyW0e6l+NVTyc{$pHnO?hJw(Ab#NQ8-Ou{ z|Hw`PL5%fAfcFtRvHM;VeEc`O{5SmY55AR`zq0#UQT@o~W>5i8sQm?>?B89Ap7{r# z+JokH9@~TNb{^0E9s;v#3#j`(k#)zp6aQjfu`Hkai>+q* zXZEM*{1M^v@yR{qX(6mJCcbfqABIm<_utBBH30mD6RVZpn&8HW?gjpmsYgzr*53HH zg^-bdm+_qe?EQ4mlhw%Ors#Y>WxRLE{1`G%%uvIEc>&29q+(pkdI(jW3vuQ6!R)m! zT**7##{8yqGT#GK%U_mgnfowwS9y-ooeYxPCP11=V7Wsd=UI= z*G_U`g_=D#j7q4NLlTiYncBOacuy%jq#8HCFcIsMr!SRx*_PNhC`)|i5^8(SN-DR5 zUJl^B5VZ-9t{S!96mP48l!5d#!Ue`N zqjQfdCl`C&NrmuG9UpSOofO%Mu9I|U9(R^kRdrXSLAgn*w5}ElGj70)N+wvZ#~sP( z`onSWOzG6?XW`T4#b|HT(eSM=Apu3Slt>HJIX;LKhUQM;h(WCP7So(7d`FubM2hY( zVi;f!_Sj*wEI_cthR|4(kpqu@wq>hpe*cu$9A=?r>1=o0Uk$O9!XeTBf{?!xTzVns zZdRzf7b#da%j_}z4SLT1_4G|t$z9I%9!a`tPoad{(Wt(a0ZSbKqN-iNEEfd=D&2{VDHCopc)1E7YP-o3b_+ z=gp8(Abm@PP0B~8ToTO4%xfaEVARzbY(9jOAix0Kz%2^;;)~1*@#s&!dy)3oEP1tc z{-79wL>9HZ3XF4t&L^o1dsGp|-UV5Q3Of|gBRMEZw- zm6+dltepDsu(NUIF>X5&P%hvYaQ}{p8B=s*{HlE%Ot)KgENa<`RtG<&;Tk-g>j)~@ zFO5}0+ji>Qjt6fU4NiO@*A)ZsyZCCEI&OpvlzNUaQPv(#1)PMb?D$Ge$pT^os^74< zt;fRJTvK(@M~ZIrS}suy#|RT(QyD;_jF}e6a;7QzX$R zT8)?Yc|`s+h^3DOaRj|JYJX8bR}(HBdk^Pj4AB|2%!q>t3QfsE;#Y1%$%&!IiyN~| z$4}(EW2IGW&nh{`#>N*Mumu&F7wrX&yc^t;UN`Md;FculN(e;sD*%H;aL%$lIPl4oSBF;Xm^9)@)+Y0qA6pm$7uZBVidTtzSWmTV8+dsAT zxk{?P&U5ZomEq_b1p$5PFNdIpS$E_{mV;eSo&nGVs#?=^W#*31;kNkqFDzy&W80ji z3PKMFoaX!}qh@3_m74Hn=`T;uRS;+Nn>yS3b!7*6?W#e150qy1vM+`x&;+@x)nw!v zvB(>G0IWmkzXoY5XmsI0n?W%gIJb3ClT|j}7s3haBS>Wa8GtX^PXP~QRkNAvE4WVk zG3a{F!=vr#>iT~vj#;0Y0Z!O<85cQp`6&01S^7U|wMLjhf3_AV87K9WMZGizFR#dl z43;bQzmsCzwhC7s8XVvoLu8#3~}SspF;wwab$t>2BIK_6VGwMw7D$V&2m zeR^@Mh6^JKNdYK!Os?#OY>1@s>Bp$&=BTblMkk~F>%rJgZ?Pw2BavY~Evv5lmOA?qHeG3&>8x09(1mv$-TjYz=*gc%fEd$awXw(zsbXl0we@m;=gwA1^ zp-t8`b1~Gb5f~tH;`};**jV+j_2s!xzArlsZ{It#EBj{sE2W@|cE|%G4TZ2oz5u6% zq8B;Y4b!wzgr6NInI&591?ggICUR`WT6?&L<%>>DlBduhh+0}#h6VAQk!P3#D z#{0(z9~Q8~_oc|9Dv})W70oPt5*>>G{Wcj0CT{f)tVo6GVm`JCtBYWEXnO-`h?^#@ zl(1O-Ad0V#@5+)6))if3*WwJ^|H1mP{hhinJF-j3dV-|xfWrm++`4i@i+yvleXk8w zb?U|2_;*BAgH!);-XN;Hh!+!Fq*vF;hKTvN;1y8!r=8iftlTibH3uh$RVb5HMe-p{ z9&)F2k|Q;fjf(`z?b39W`u&!F0d9L1-T*@lbK=o4urDMfN>}=8G-6r1HC#yANXfga zwNy)qGlaaVQ!y=R@MH}+f{fx@cKiBL z!5rY_r)YvM?Fqx#^o!XuD~F8SJD!XH26Ph65YWP*N(m*a5Y$S)7l5or{Rq*r(KOo4 zu7;FGLBpFheprn)M6xwRv->iOhlbX_ahLwYqUyv?aP_p!xiPL(2yD1DJJ&N!o2g4J z%5FXDE`W;&7;<|&MI0BPTlg8}1=3n*nsAuf9P#6|Oz@e#;fSSc0T4 zmTffI?Jh+T3_5AXocEUekWtssk&uw-{4aOIp`we_cMiwvNA$A^O`1j!Ewd?;OA$Fr z=+JL0>NJVAt;Mes3eVDnhXJizq-1o8^7FHeb67Y!A6UXDN&IZHw<(9h$mCh4celxg4dZo>foF8Ot&j-{>0F7(Ub*TUfIOgX+377*J&1 z4DST&t)Wi3AN<;nr3*Mgw$6mnUUKqSJ+tf-2CM=4bYrN-ga~O(wppEY>utoF# z&A&n1vK{#>6n@xlS-gVOv7#@5bKlf|&d)1bi1C&iEO6-R?H&|6_PPKVip7W*pJHUR zud}#X(L@kmxK8mE_)1D~ROf@DW}MmJ)6T`yy|>Vzhz0;Cc6tc2_2Qfa|ci4LP6TGIvh!17#O zw;VG+4;(nsIQWPG@p}M(6zhR4qvn+^V+%L){ntOm6k@Axa{TU|J8cbqy<0GWw|1Bb zu$}s33xIchL1i$Xr(iZ*Wk5Aan1nQ}^mhL_;yEf;SAkfAsK-j6PP7-HT>fg`v)_zf}O^7XGEprx0S z>gYBv8MVls<%mvXfu&JNL|d}t#DU0oJl|Uxu9(RgM3%-Ps0ozpN=;_$W2}&nhK9ZL z(`Ic$>ujtXa1Bk;;vzwC>WK*h6bHtbFE_U7f)?AIk_)fyx+#4(hY`K z{GR8u=}hJ$2=?(~Bmao%J2>T|7{3#m^hBLgPb$C^ovYFT>tLLi<7ymJ3`=D;C7#7e zBp-!a3XpYXAx1Jib)hYUs}et5ERNoXb*-+D@>=cqtB-Cc@}jjXu7@!Q)y3ckCfgz_ zBQ}vB+}Xmi>hwW;n|YM)9hR9O;*!SFDN+K<#a|Tk1cKSae~h*HM8{Id0@ehWaDVGJ zP=JzGBauk~NcqnyO+WWZ1`q=IDX4n3;QyQ;F^Yvl|Fc7CG^gxj2p;rZAiq}?{ z;ZBn?VAykl*2?5xWU(=@4321ekZVbf-|ELIg&?9$r0bN{HT3=HEmLw4|JZtM&!Gg= zh(!rKXEcgAx~Ie(@O3gQxOJx4VizGD9L-wh78;BKXxJf0yl2H7g3$tpMC38MLyQ!u zbbAHHeOLyR^DuB&WfJw>by9V=y9W(u?Tvso--!3!M{X5o%%Lca|k2zXPxBa(CPT|#fli@B9kLNLH zgsJ^0@&)vL(|FuAs1B!}(l+u@uu07ry+7mtM-|*biaopg8-dgV9{R0;>SeXk;;^1Y zw5g*$~QGg_Ijh3_vz8a}wae`xL;#5u2Zq`QuCK>1?RKW+c{IH+$KE-#=F|Z1N zlND{z4!+Uap{&qtm8%tddxuRDp2{C2y-74p`guauHHUT)xv}A^9+qy-s+hkl4CV9n zaosr|^p-8;x4}tT?h4`v1vwUa$ts(pC^#+7waweImnKC|y=~`=2B90-9C@71udIc1 zQ2nMYbPuDE+|VuSF6^Yt>?XZirrZVq2CYIiI}DYj@m*4O98zi1r*au&O!s#ns=Xu% z?ivWE5oK5@Iy%hl-!T9H2z^q+{!cD5sg(fG`1(cQOjZ`#Oh)OQ+` z8>E_!ZFsxy3~V8Y_UQE0^XZk{k9qr2rBUI<3!`S9)(XmVgiVKH&xnKwuo6XpO?}d_ zjbRT)basR@_K(?42h>=Dd}4N1y13tOQq{p^R=ZWo3)K)SgFjkbe9Y}&&h5n zeDJdJnGI@IFOla@ANkz zk8n;zlY}E<;k+^6;w3l2hO_EqIN0~)*Yr|ZYM*{F^g~5M1faZ(hO<1Ut4KuXYgd% zbPqn`e#42uSGap=H;a+EW zhqqQkgVD=p;_Ez?iGD$~ngME%>l>yXQ?`gP@mSX0A%9PxP9NZY!?uL%yTa(lt1&a#+FHh6HGueOYZi_8+y zg=YMv+&A-pivbdV>CvpwJ>B^Z?UbtnMzI*nh=D@&66|5YjD0e4z)M?mi#EadLmC=$3q;nOMs}=bL|S8?kFFVeL9|cyom!2?&vrR_tIJQPkiG{f8>{ z-z-5vJ@Q7*U>F2vZ4;KhW3#Wt#j8+ACrU1tMOhpi9(xslgu)fk38BmpTyRZMyO? z2a3{>&4MyOZxZ9|A$ai>V2TribKggw-_(Uu@xB@gXFZ_z2?t?Qfu?}L-NsH`U)!D0 zTA3(Z6tAM36+?1^w6>E9i8JZ_DT1Ya?B-I=GcQYkd5Y}K-FeqO^I>t*wa*l^GV8#4 z%6s|Cl+UekGXfohlVPj_59dw_cuxZ5ehpRFU0erHlgczaMRzjF$8Zs-=r%+XMr&a0 zzEQcnktaYL7yBGm-**iI-8mjJDl)j0iASl5(oMwTjeO`sY50aLKOg0@?%#g*q{p>w z$@!7$Njh+7`&e17*NA)JaSZ18{vE_EqD+QLGEMuZr8x^#7crgp5w++3^UrRIP0*1 zZ^B{aED>f4&Ewtx95&Q~ZqfLacuqruUHA_`&v20xnRw9;Uoh#IW&A6hYCKt-qB~h^ z*X`@CK(kZNmP|T92mJxZ>{^g;Y>de9{$T;%1j55wv3k zGCQJDV#U}LcRtO~JmHm%xC5Ku+Xh8|y9gNX+eh~_MYaT|mZu)fzT3TI(l(F;R15^5 z8;O{;`PWv#3rl4qg-!cyH@&$rLS`e5x)+s%$?oOj$fRuc#+$*;@EkPKLf<<6hI&P9 zXzy6MN<9u3;Z@S-UGiMzcBywU({Zb$L) zQ**A3xf}I^tGGahDb~@e9oau$@6piM3)qYB!S&wYCj03bh@OcPZbhGsBBA=*e+4coM>`vJ~ zjmrO-s*OC7vv+It=TO^X<_!@XBujyYCbw{j);XO&*Tc?{z;oYiSPU>mI-#i0U3j)G z){MPj-zbu|Bph(=i5GAMdK_4PE_Ojhak@x%kFeYeIc68CU~7b~EVe6wXaZJ8NK#Pj zx5^RmQPf+xGhg&3vyX!k6rl$2@LZRr7+bW9Y@QaRX$WS9WhVzAJO4?6=?Gx}Nm6$3 zMVYJjt|YXLZ+d%^+svSXluF!z+5U5*g|lJ>DQAHbuF_E^Hn0+A)a8!OQ8wqL=H8yPXMKK^z{i6F+!Xzo0h1^MEhH>ULiGN*_nrDfD3(_%u4-jJ@)nUV z36)#cJSAv0aqrU{CJDyojFFO^y>~T{n7rE}9Q(0)-jTHXRgy_2944c)g z)lSV*nSPOXb)jr&Xuf+(tOHNOFhG9%6Zy3JqErrN$djM*Zp3#yo{ z=E)Ir80pXykN0`%h(;zRu}0G&F{zT+;bAtgK(cE;c8L^bS8+!je%jw{rGsM`7`Vxj zXnpw^QAe<7stpV1kavc&^xO4BOs=9WI3O&@3nVPSItucr469CP1a*O_SWvMp=Aa6y zop(I49^03}*%I|}Oyw2(SE^Y#WLOe&q{8H$FzRrl#XunS@WlL(1r>OQbdDNK4ZWI%szdxgBLdznE4f zze3ygiS7^J1jcKEU%j~6cRRS%);FWj)c0_Qheu;zUfI7}q^u}zDjz$Ro-0YFrn5@n z1XDckg$P}3r{ze7T%kOOfim@&^#^f1NvrSg9(lU^$G*8S{E#l`cE0jBS{`)WX$t!T zUG!M(t4|NL)C>yi@={3Buh*mjO%q9IVpkFX>I@0s-^)SmkfChWQBZXtN^nk}@q~~C z4OQwHAE%mx%I11wLgV7>2z91QRg72a*~F@wHHekphWgV6XiH?yRyNJ$gaGq8u-B*T zv0%$NA9^~7hfj>L9(A#*a3r>vk6;vTP&#tPj#cGek#`o4fN@6^_!y@1)^$koSK|NN zUK#|{|MH=daY*=FLP&;2(#KSfDf~vN^WHxbVXv1!?e&^GuYr0pSCFSIb z<_XkpX_L*eOkFYiWdDd+Ec4CFMpkJ9CC2}2Ie?q#{GG??RHEkvqvILTs|`2cMAk)I ztO?~rPEB;dTLM@w(7n%R*Hu@h-HHH|gN+b37WxrnNFCpB>iy+Lm%|mKBjGxq|FXw6 zbMIg#7#lHULMjLIqXjXRXU~FjYD)6$PQXtf^f{b2m(@g>rC5dF7hvgCujbZs9F#fV zY>tgl_to%ULg7h0U(Dkf(J60I^59+%%q%3wZI2Lb=9cRhc2G_@K4(S0H@yI?Q~&Z% zYpkzJkur(RQJSqLFPW$R?RCf_UJ}DBoQ<74tQS;lQ@VHui=>>6!#&=`8Lm5iOUM1! zhO?KO1;cW>l&4fMe^=P_i5dtH%&Z)dFqR}Z4RkR+&`%a)lked!7XVj5D&7Yb zyO*qe_E1q|V+SACAoL3v_QkqE%ls|$VJ@S+t7bbM5+kJHiL~+387fJfzhMgK#hmK7 zlfwIZe|B7b0LF3N%~lI&+wcWdDgI6m80r%ah;koz!Qpht7B0q*n@fDCF@z36b`OrlSOsa6NMdaDFN z)UDyY4>fH6GDA#QyV0-EvY1s7Sd`Y%CLwSloBbs;7m7HM5HbcBn&e2dZ<&TIv2^-! z9#q&`@Y{EVKJjDL}7w@(2&JEiTqcQ=4xr>)S0M&B4y3@U$7s6luylE(+8z6c4;JG{U9 zggQ`E{Wp?V^uZG_afh{=XTdeP9_<1eAlgwryzVyA^-~v_IrTW28Xyd2H3aq@nCa+Y zY2}vI>g4ciFBWGKrKI_udd}^YUB1R}hx@yO;8f>d=H85`n?SojZ$<9@)VsztYF)5$ z7Pna~G(GD=v5J?RJecOPpBK7@6umdQlbL#5*k{f-AVC!%NRH9L80W-Y=(nI51k;{g z_RMLIr35GIZV9Ygh&%)-dleLB6@Mjj6!OCx?u)!ElX4K;(XK;9<~i#eWM46+apYd~ zk=v#0OIz9?g!(LKvxxvWmZ~rA7`R|WHytYIB8zWyPA3Q`#`v2=gFN@9jpYanYA1LO za$Z}VpqLKmPPQk@gS}($YO^1(ntI3QqJ@>YVGm)M~P%@n0b>UxPiE|41K-|YuFhaM&_c|9Xfe0|@LuP(V<8{gK|Ms9(hO-Jqi zy?+Zh9tub=qvnd5RW!upjz4Fpb0MvE&m^G{Q=$}u3LR7SU9u{BLbx()r1o>{W}G3* zPRqIS5$!v=Qby91-Jkqusg&!iClN}5ZU3~G4>yaNQ3>zjD#`sVr>3(M=qig)&hd
    ED5d_BA3@GZ~g=qzN50KQat~t(X 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

    ~v1q|~}b1RPwK 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 == &PyTypeLibrary ) - #define PYLIBRARY(v) ( (PyLibrary*)(v) ) - #define PYLIBRARY_O(v) ( PYLIBRARY(v)->_object ) - - } // extern "C". - } // Isobar namespace. - - #endif // PY_LIBRARY_H - - -The code is organized as follow: - -1. It must have, *as the first include* ``PyHurricane.h``, which provides - the complete bunch of macros needed to build the module. Then the include - of the C++ class we want to wrap (``Library.h``). - -2. As Python is written in C, all the wrapper code has to be but inside - an ``extern "C"`` namespace. - -3. Definition of the wrapped |struct|, ``PyLibrary``. It is standard Python here. - - .. note:: - For our set of macros to work, the name of the pointer to the - C++ class must always be **_object**, and the various functions and - macros defined here must take the name of the class (either in - lowercase, camel case or capitals). - -4. Declaration of the Python type ``PyTypeLibrary`` (standard). - -5. Declaration of the Python type table of methods ``PyLibrary_Methods`` (standard). - -.. _3.6: - -6. Declaration of ``PyLibrary_Link()``, helper to convert a C++ ``Lybrary`` into - a ``PyLibrary`` (put in the support shared library). - -7. Declaration of ``PyLibrary_LinkPyType()``, this function setup the class-level - function of the new Python type (here, ``PyTypeLibrary``). - -8. And, lastly, three macros to: - - * ``IsPylibrary()``, know if a Python object is a ``PyLibrary`` - * ``PYLIBRARY()``, force cast (C style) of a ``PyObject`` into a ``PyLibrary``. - * ``PYLIBRARY_O()``, extract the C++ object (``Library*``) from the Python - object (``PyLibrary``). - - -3.2 Class Associated File -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -3.2.1 Head of the file ------------------------- - -.. code:: c++ - - #include "hurricane/isobar/PyLibrary.h" - #include "hurricane/isobar/PyDataBase.h" - #include "hurricane/isobar/PyCell.h" - - namespace Isobar { - using namespace Hurricane; - - extern "C" { - - #define METHOD_HEAD(function) GENERIC_METHOD_HEAD(Library,lib,function) - -As for the header, all the code must be put inside a ``extern "C"`` namespace. - -A convenience macro ``METHOD_HEAD()`` must be defined, by refining -``GENERIC_METHOD_HEAD()``. This macro will be used in the method wrappers -below to cast the ``_object`` field of the Python object into the -appropriate C++ class, this is done using a C-style cast. -The parameters of that macro are: - -#. The C++ encapsulated class (``Library``). -#. The name of the *variable* that will be used to store a pointer - to the C++ working object. -#. The name of the C++ method which is to be wrapped. - - -3.2.2 The Python Module Part ------------------------------- - -First, we have to build all the wrappers to the C++ methods of -the class. For common predicates, accessors, and mutators macros -are supplied. - -Wrapping of the ``Library::getCell()`` method: - -.. code:: c++ - - static PyObject* PyLibrary_getCell ( PyLibrary* self, PyObject* args ) - { - Cell* cell = NULL; - - HTRY - METHOD_HEAD( "Library.getCell()" ) - char* name = NULL; - if (PyArg_ParseTuple(args,"s:Library.getCell", &name)) { - cell = lib->getCell( Name(name) ); - } else { - PyErr_SetString( ConstructorError - , "invalid number of parameters for Library::getCell." ); - return NULL; - } - HCATCH - - return PyCell_Link(cell); - } - -Key points about this method wrapper: - -#. The ``HTRY`` / ``HCATCH`` macros provides an insulation from the C++ - exceptions. If one is emitted, it will be catched and transformed in - a Python one. This way, the Python program will be cleanly interrupted - and the usual stack trace displayed. - -#. The returned value of this method is of type ``Cell*``, we have to - transform it into a Python one. This is done with ``PyCell_Link()``. - This macro is supplied by the ``PyCell.h`` header and this is why - it must be included. - -|newpage| - - -Wrapping of the ``Library::create()`` method: - -.. code:: c++ - - static PyObject* PyLibrary_create( PyObject*, PyObject* args ) - { - PyObject* arg0; - PyObject* arg1; - Library* library = NULL; - - HTRY - __cs.init( "Library.create" ); // Step (1). - if (not PyArg_ParseTuple( args, "O&O&:Library.create" - , Converter, &arg0 - , Converter, &arg1 )) { // Step (2). - PyErr_SetString( ConstructorError - , "invalid number of parameters for Library constructor." ); - return NULL; - } - if (__cs.getObjectIds() == ":db:string") { // Step (3.a) - DataBase* db = PYDATABASE_O(arg0); - library = Library::create( db, Name(PyString_AsString(arg1)) ); - } else if (__cs.getObjectIds() == ":library:string") { // Step (3.b) - Library* masterLibrary = PYLIBRARY_O(arg0); - library = Library::create( masterLibrary, Name(PyString_AsString(arg1)) ); - } else { - PyErr_SetString( ConstructorError - , "invalid number of parameters for Library constructor." ); - return NULL; - } - HCATCH - - return PyLibrary_Link( library ); - } - -Key point about this constructor: - -#. We want the Python interface to mimic as closely as possible the - C++ API. As such, Python object will be created using a static - ``.create()`` method. So we do not use the usual Python allocation - mechanism. - -#. As it is a *static* method, there is no first argument. - -#. Python do not allow function overload like C++. To emulate that - behavior we use the ``__cs`` object (which is a global variable). - - #. Init/reset the ``__cs`` object: see *step (1)*. - - #. Call ``PyArg_ParseTuple()``, read every mandatory or optional - argument as a Python object (``"O&"``) and use ``Converter`` - on each one. ``Converter`` will determine the real type of - the Python object given as argument by looking at the - encapsulated C++ class. It then update the ``__cs`` object. - Done in *step (2)* - - #. After the call to ``PyArg_ParseTuple()``, the function - ``__cs.getObjectIds()`` will return the *signature* of - the various arguments. In our case, the valid signatures - will be ``":db:string"`` (*step (3.a)*a) and ``":library:string"`` - (*step (3.b)*). - - #. Call the C++ method after extracting the C++ objects from - the Python arguments. Note the use of the ``PYLIBRARY_O()`` - and ``PYDATABSE_O()`` macros to perform the conversion. - -#. Return the result, encapsulated through a call to ``PyLibrary_Link()``. - -|newpage| - - -Wrapping of the ``Library::destroy()`` method: - -.. code:: c++ - - DBoDestroyAttribute(PyLibrary_destroy, PyLibrary) - -For C++ classes **that are derived** from ``DBo``, the destroy method -wrapper must be defined using the macro ``DBoDestroyAttribute()``. -This macro implements the bi-directional communication mechanism -using ``Hurricane::Property``. It **must not** be used for -non ``DBo`` derived classes. - - -Defining the method table of the PyLibrary type: - -.. code:: c++ - - PyMethodDef PyLibrary_Methods[] = - { { "create" , (PyCFunction)PyLibrary_create , METH_VARARGS|METH_STATIC - , "Creates a new library." } - , { "getCell" , (PyCFunction)PyLibrary_getCell, METH_VARARGS - , "Get the cell of name " } - , { "destroy" , (PyCFunction)PyLibrary_destroy, METH_NOARGS - , "Destroy associated hurricane object The python object remains." } - , {NULL, NULL, 0, NULL} /* sentinel */ - }; - - -This is standard Python/C API. The name of the ``PyMethodDef`` table must be -named from the class: ``PyLibrary_Methods``. - - -3.2.3 Python Type Linking ---------------------------- - -Defining the ``PyTypeLibrary`` class methods and the type linking function. - -Those are the functions for the Python object itself to work, not the -wrapped method from the C++ class. - -.. note:: - At this point we **do not** define the ``PyTypeLibrary`` itself. - Only it's functions and a function to set them up *once* the - type will be defined. - -.. code:: c++ - - DBoDeleteMethod(Library) - PyTypeObjectLinkPyType(Library) - - -The macro ``DBoDeleteMethod()`` define the function to delete a -``PyLibrary`` *Python* object. Again, do not mistake it for the deletion -of the C++ class (implemented by ``DBoDestroyAttribute()``). -Here again, ``DBoDeleteMethod()`` is specially tailored for -``DBo`` derived classes. - -.. _PyLibrary_LinkPyType(): - -To define ``PyLibrary_LinkPyType()``, use the ``PyTypeObjectLinkPyType()`` -macro. This macro is specific for ``DBo`` derived classes that are seen as -base classes under Python (i.e. we don't bother exposing the base -class under Python). ``PyLibrary_LinkPyType()`` setup the class functions -in the ``PyTypeLibrary`` type object, it **must** be called in the -Python module this class is part of (in this case: ``PyHurricane.cpp``). -This particular flavor of the macro *will define* and setup the -following class functions: - -* ``PyTypeLibrary.tp_compare`` (defined by the macro). -* ``PyTypeLibrary.tp_repr`` (defined by the macro). -* ``PyTypeLibrary.tp_str`` (defined by the macro). -* ``PyTypeLibrary.tp_hash`` (defined by the macro). -* ``PyTypeLibrary.tp_methods`` sets to the previously defined ``PyLibrary_Methods`` table. -* ``PyTypeLibrary.tp_dealloc`` is set to a function that *must* be named ``PyLibrary_DeAlloc``, - this is what ``DBoDeleteMethod`` does. It is *not* done by ``PyTypeObjectLinkPyType``. - -Defining the ``PyTypeLibrary`` type: - - -3.2.4 The Shared Library Part -------------------------------- - -This part will be put in a separate supporting shared library, allowing -other Python module to link against it (and make use of its symbols). - -.. code:: c++ - - DBoLinkCreateMethod(Library) - PyTypeObjectDefinitions(Library) - - -To define ``PyTypeLibrary``, use the ``PyTypeObjectDefinitions()`` macro. -This macro is specific for classes that, as exposed by Python, -are neither *derived* classes nor *base* classes for others. -That is, they are standalone from the inheritance point of view. - -The ``DBoLinkCreateMethod()`` macro will define the ``PyLibrary_Link()`` -function which is responsible for encapsulating a C++ ``Library`` object -into a Python ``PyLibrary`` one. - - -3.3 Python Module (C++ namespace) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -We use the Python module to replicate the C++ *namespace*. Thus, for the -``Hurricane`` namespace we create a Python ``Hurricane`` module which is -defined in the ``PyHurricane.cpp`` file, then we add into that module -dictionary all the Python types encapsulating the C++ classes of that -namespace. - -.. code:: c++ - - DL_EXPORT(void) initHurricane () - { - PyLibrary_LinkPyType(); // step 1. - - PYTYPE_READY( Library ) // step 2. - - __cs.addType( "library", &PyTypeLibrary, "", false ); // step 3. - - PyObject* module = Py_InitModule( "Hurricane", PyHurricane_Methods ); - if (module == NULL) { - cerr << "[ERROR]\n" - << " Failed to initialize Hurricane module." << endl; - return; - } - - Py_INCREF( &PyTypeLibrary ); // step 4. - PyModule_AddObject( module, "Library", (PyObject*)&PyTypeLibrary ); // step 4. - } - -The ``initHurricane()`` initialisation function shown above has -been scrubbed of everything not relevant to the ``PyLibrary`` class. -The integration of the ``PyLibrary`` class into the module needs -four steps: - -#. A call to `PyLibrary_LinkPyType()`_ to hook the Python type functions - in the Python type object. - -#. A call to the ``PYTYPE_READY()`` macro (standard Python). - -#. Registering the type into the ``__cs`` object, with ``addType()``. - The arguments are self explanatory, save for the last which is a - boolean to tell if this is a *derived* class or not. - -#. Adding the type object (``PyTypeLibrary``) into the dictionnary of - the module itself. This allow to mimic closely the C++ syntax: - - .. code:: python - - import Hurricane - lib = Hurricane.Library.create( db, 'root' ) - -|newpage| - - -4. Case 2 - Hierarchy of DBo Derived Classes -============================================== - -Now we want to export the following C++ class hierarchy into Python: :: - - PyEntity <-- PyComponent <-+- PyContact - +- PySegment <-+- PyHorizontal - +- PyVertical - - -4.1 Base Class Header -~~~~~~~~~~~~~~~~~~~~~~~ - -**Remark:** this is only a partial description of tree for the sake of -clarity. - -One important fact to remember is that ``PyEntity`` and ``PyComponent`` -being related to C++ abstract classes, no objects of those types will be -created, only ``PyContact``, ``PyHorizontal`` or ``PyVertical`` will. - -The consequence is that there is no ``PyEntity_Link()`` like in `3.6`_ -but instead two functions: - -#. ``PyEntity_NEW()`` which create the relevant ``PyEntity`` *derived* - object from the ``Entity`` one. For example, if the ``Entity*`` given - as argument is in fact a ``Horizontal*``, then the function will - return a ``PyHorizontal*``. - -#. ``EntityCast()`` do the reverse of ``PyEntity_NEW()`` that is, from - a ``PyEntity``, return the C++ *derived* object. Again, if the - ``PyEntity*`` is a ``PyHorizontal*``, the function will cast it as - a ``Horizontal*`` *then* return it as an ``Entity*``. - -.. code:: python - - #ifndef ISOBAR_PY_ENTITY_H - #define ISOBAR_PY_ENTITY_H - - #include "hurricane/isobar/PyHurricane.h" - #include "hurricane/Entity.h" - - namespace Isobar { - extern "C" { - - typedef struct { - PyObject_HEAD - Hurricane::Entity* _object; - } PyEntity; - - extern PyObject* PyEntity_NEW ( Hurricane::Entity* entity ); - extern void PyEntity_LinkPyType (); - extern PyTypeObject PyTypeEntity; - extern PyMethodDef PyEntity_Methods[]; - - - #define IsPyEntity(v) ( (v)->ob_type == &PyTypeEntity ) - #define PYENTITY(v) ( (PyEntity*)(v) ) - #define PYENTITY_O(v) ( PYENTITY(v)->_object ) - - } // extern "C". - - Hurricane::Entity* EntityCast ( PyObject* derivedObject ); - - } // Isobar namespace. - - #endif // ISOBAR_PY_ENTITY_H - -|newpage| - - -4.2 Base Class File -~~~~~~~~~~~~~~~~~~~~~ - -Changes from `3.2 Class Associated File`_ are: - -#. No call to ``DBoLinkCreateMethod()`` because there must be no ``PyEntity_Link()``, - but the definitions of ``PyEntity_NEW()`` and ``EntityCast``. - -#. For defining the ``PyTypeEntity`` Python type, we call a different - macro: ``PyTypeRootObjectDefinitions``, dedicated to base classes. - - -.. code:: c++ - - #include "hurricane/isobar/PyCell.h" - #include "hurricane/isobar/PyHorizontal.h" - #include "hurricane/isobar/PyVertical.h" - #include "hurricane/isobar/PyContact.h" - - namespace Isobar { - using namespace Hurricane; - - extern "C" { - - #if defined(__PYTHON_MODULE__) - - #define METHOD_HEAD(function) GENERIC_METHOD_HEAD(Entity,entity,function) - - DBoDestroyAttribute(PyEntity_destroy ,PyEntity) - - static PyObject* PyEntity_getCell ( PyEntity *self ) - { - Cell* cell = NULL; - HTRY - METHOD_HEAD( "Entity.getCell()" ) - cell = entity->getCell(); - HCATCH - return PyCell_Link( cell ); - } - - PyMethodDef PyEntity_Methods[] = - { { "getCell", (PyCFunction)PyEntity_getCell, METH_NOARGS - , "Returns the entity cell." } - , { "destroy", (PyCFunction)PyEntity_destroy, METH_NOARGS - , "Destroy associated hurricane object, the python object remains." } - , {NULL, NULL, 0, NULL} /* sentinel */ - }; - - - DBoDeleteMethod(Entity) - PyTypeObjectLinkPyType(Entity) - - #else // End of Python Module Code Part. - - PyObject* PyEntity_NEW ( Entity* entity ) - { - if (not entity) { - PyErr_SetString ( HurricaneError, "Invalid Entity (bad occurrence)" ); - return NULL; - } - - Horizontal* horizontal = dynamic_cast(entity); - if (horizontal) return PyHorizontal_Link( horizontal ); - - Vertical* vertical = dynamic_cast(entity); - if (vertical) return PyVertical_Link( vertical ); - - Contact* contact = dynamic_cast(entity); - if (contact) return PyContact_Link( contact ); - - Py_RETURN_NONE; - } - - PyTypeRootObjectDefinitions(Entity) - - #endif // Shared Library Code Part (1). - - } // extern "C". - - - #if !defined(__PYTHON_MODULE__) - - Hurricane::Entity* EntityCast ( PyObject* derivedObject ) { - if (IsPyHorizontal(derivedObject)) return PYHORIZONTAL_O(derivedObject); - if (IsPyVertical (derivedObject)) return PYVERTICAL_O(derivedObject); - if (IsPyContact (derivedObject)) return PYCONTACT_O(derivedObject); - return NULL; - } - - #endif // Shared Library Code Part (2). - - } // Isobar namespace. - -|newpage| - - -4.3 Intermediate Class Header -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Changes from `3.1 Class Associated Header File`_ are: - -#. As for ``PyEntity``, and because this is still an abstract class, - there is no ``PyComponent_Link()`` function. - -#. The definition of the ``PyComponent`` |struct| is differs. There is - no ``PyObject_HEAD`` (it is a Python *derived* class). The only - field is of the base class type ``PyEntity`` and for use with - Coriolis macros, **it must** be named ``_baseObject`` (note that - this is *not* a pointer but a whole object). - -.. code:: c++ - - #ifndef ISOBAR_PY_COMPONENT_H - #define ISOBAR_PY_COMPONENT_H - - #include "hurricane/isobar/PyEntity.h" - #include "hurricane/Component.h" - - namespace Isobar { - extern "C" { - - typedef struct { - PyEntity _baseObject; - } PyComponent; - - extern PyTypeObject PyTypeComponent; - extern PyMethodDef PyComponent_Methods[]; - extern void PyComponent_LinkPyType (); - - #define IsPyComponent(v) ((v)->ob_type == &PyTypeComponent) - #define PYCOMPONENT(v) ((PyComponent*)(v)) - #define PYCOMPONENT_O(v) (static_cast(PYCOMPONENT(v)->_baseObject._object)) - - } // extern "C". - } // Isobar namespace. - - #endif - - -4.4 Intermediate Class File -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Changes from `3.2 Class Associated File`_ are: - -1. Redefinition of the default macros ``ACCESS_OBJECT`` and ``ACCESS_CLASS``. - - * The pointer to the C++ encapsulated object (attribute ``_object``) is hold - by the base class ``PyEntity``. The ``ACCESS_OBJECT`` macro which is tasked - to give access to that attribute is then ``_baseObject._object`` as - ``PyComponent`` is a direct derived class of ``PyEntity``. - - * ``ACCESS_CLASS`` is similar to ``ACCESS_OBJECT`` for accessing the base - class, that is a pointer to ``PyEntity``. - -|newpage| - -2. For defining the ``PyTypeComponent`` Python type, we call a yet different - macro: ``PyTypeInheritedObjectDefinitions()``, dedicated to derived classes. - For this this macro we need to give as argument the derived class and the - base class. - -.. code:: c++ - - #include "hurricane/isobar/PyComponent.h" - #include "hurricane/isobar/PyNet.h" - - namespace Isobar { - using namespace Hurricane; - - extern "C" { - - #undef ACCESS_OBJECT - #undef ACCESS_CLASS - #define ACCESS_OBJECT _baseObject._object - #define ACCESS_CLASS(_pyObject) &(_pyObject->_baseObject) - #define METHOD_HEAD(function) GENERIC_METHOD_HEAD(Component,component,function) - - #if defined(__PYTHON_MODULE__) - - DirectGetLongAttribute(PyComponent_getX,getX,PyComponent,Component) - DirectGetLongAttribute(PyComponent_getY,getY,PyComponent,Component) - DBoDestroyAttribute(PyComponent_destroy,PyComponent) - - static PyObject* PyComponent_getNet ( PyComponent *self ) - { - Net* net = NULL; - HTRY - METHOD_HEAD( "Component.getNet()" ) - net = component->getNet( ); - HCATCH - return PyNet_Link( net ); - } - - PyMethodDef PyComponent_Methods[] = - { { "getX" , (PyCFunction)PyComponent_getX , METH_NOARGS - , "Return the Component X value." } - , { "getY" , (PyCFunction)PyComponent_getY , METH_NOARGS - , "Return the Component Y value." } - , { "getNet" , (PyCFunction)PyComponent_getNet , METH_NOARGS - , "Returns the net owning the component." } - , { "destroy", (PyCFunction)PyComponent_destroy, METH_NOARGS - , "destroy associated hurricane object, the python object remains." } - , {NULL, NULL, 0, NULL} /* sentinel */ - }; - - DBoDeleteMethod(Component) - PyTypeObjectLinkPyType(Component) - - #else // Python Module Code Part. - - PyTypeInheritedObjectDefinitions(Component, Entity) - - #endif // Shared Library Code Part. - - } // extern "C". - } // Isobar namespace. - - -4.5 Terminal Class Header -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The contents of this file is almost identical to `4.3 Intermediate Class Header`_, -save for the presence of a ``PyContact_Link()`` function. She is present -at this level because the class is a concrete one and can be instanciated. - -.. code:: c++ - - #ifndef ISOBAR_PY_CONTACT_H - #define ISOBAR_PY_CONTACT_H - - #include "hurricane/isobar/PyComponent.h" - #include "hurricane/Contact.h" - - namespace Isobar { - extern "C" { - - typedef struct { - PyComponent _baseObject; - } PyContact; - - extern PyTypeObject PyTypeContact; - extern PyMethodDef PyContact_Methods[]; - extern PyObject* PyContact_Link ( Hurricane::Contact* object ); - extern void PyContact_LinkPyType (); - - #define IsPyContact(v) ( (v)->ob_type == &PyTypeContact ) - #define PYCONTACT(v) ( (PyContact*)(v) ) - #define PYCONTACT_O(v) ( PYCONTACT(v)->_baseObject._baseObject._object ) - - } // extern "C". - } // Isobar namespace. - - #endif // ISOBAR_PY_CONTACT_H - - -4.6 Terminal Class File -~~~~~~~~~~~~~~~~~~~~~~~~~ - -Changes from `4.4 Intermediate Class File`_ are: - -#. As previously, we have to redefine the macros ``ACCESS_OBJECT`` and ``ACCESS_CLASS``. - But, as we are one level deeper into the hierarchy, one more level of - indirection using ``_baseObject`` must be used. - - * ``ACCESS_OBJECT`` becomes ``_baseObject._baseObject._object``. - - * ``ACCESS_CLASS`` becomes ``&(_pyObject->_baseObject._baseObject)``. - -#. For defining the ``PyTypeContact`` Python type, we call again - ``PyTypeInheritedObjectDefinitions()``. It is the same whether the class is - terminal or not. - -#. And, this time, as the Python class is concrete, we call the macro - ``DBoLinkCreateMethod()`` to create the ``PyContact_Link()`` function. - - -.. code:: c++ - - #include "hurricane/isobar/PyContact.h" - - namespace Isobar { - using namespace Hurricane; - - extern "C" { - - #undef ACCESS_OBJECT - #undef ACCESS_CLASS - #define ACCESS_OBJECT _baseObject._baseObject._object - #define ACCESS_CLASS(_pyObject) &(_pyObject->_baseObject._baseObject) - #define METHOD_HEAD(function) GENERIC_METHOD_HEAD(Contact,contact,function) - - #if defined(__PYTHON_MODULE__) - - DirectGetLongAttribute(PyContact_getWidth , getWidth , PyContact,Contact) - DirectGetLongAttribute(PyContact_getHeight, getHeight, PyContact,Contact) - DBoDestroyAttribute(PyContact_destroy, PyContact) - - static PyObject* PyContact_create ( PyObject*, PyObject *args ) - { - Contact* contact = NULL; - HTRY - // Usual signature then arguments parsing. - HCATCH - return PyContact_Link(contact); - } - - PyMethodDef PyContact_Methods[] = - { { "create" , (PyCFunction)PyContact_create , METH_VARARGS|METH_STATIC - , "Create a new Contact." } - , { "destroy" , (PyCFunction)PyContact_destroy , METH_NOARGS - , "Destroy associated hurricane object, the python object remains." } - , { "getWidth" , (PyCFunction)PyContact_getWidth , METH_NOARGS - , "Return the contact width." } - , { "getHeight", (PyCFunction)PyContact_getHeight, METH_NOARGS - , "Return the contact height." } - , {NULL, NULL, 0, NULL} /* sentinel */ - }; - - DBoDeleteMethod(Contact) - PyTypeObjectLinkPyType(Contact) - - #else // Python Module Code Part. - - DBoLinkCreateMethod(Contact) - PyTypeInheritedObjectDefinitions(Contact, Component) - - #endif // Shared Library Code Part. - - } // extern "C". - } // Isobar namespace. - - -4.8 Python Module -~~~~~~~~~~~~~~~~~~~ - -.. code:: c++ - - DL_EXPORT(void) initHurricane () - { - PyEntity_LinkPyType(); // step 1. - PyComponent_LinkPyType(); - PyContact_LinkPyType(); - - PYTYPE_READY( Entity ) // step 2. - PYTYPE_READY_SUB( Component, Entity ) - PYTYPE_READY_SUB( Contact , Component ) - - __cs.addType( "ent" , &PyTypeEntity , "" , false ); // step 3. - __cs.addType( "comp" , &PyTypeComponent, "", false, "ent" ); - __cs.addType( "contact", &PyTypeContact , "" , false, "comp" ); - - PyObject* module = Py_InitModule( "Hurricane", PyHurricane_Methods ); - if (module == NULL) { - cerr << "[ERROR]\n" - << " Failed to initialize Hurricane module." << endl; - return; - } - - Py_INCREF( &PyTypeContact ); // step 4. - PyModule_AddObject( module, "Contact", (PyObject*)&PyTypeContact ); // step 4. - } - - -5. Case 3 - Non-DBo Standalone Classe -======================================= - -Let's have a look at the encapsulation of ``Hurricane::Point``. - -Non-BDo derived classes do not support the bi-directionnal communication. -So each Python object is associated with one C++ object. The C++ object -is created and deleted along with the Python one. This behavior implies -that the C++ object is *copy constructible* (which should be the case). - - -5.1 Class Header -~~~~~~~~~~~~~~~~~~ - -Changes from `3.1 Class Associated Header File`_: - -* There is no ``PyPoint_Link()`` function, as it's related to the - bi-directional communication mechanism. - -.. note:: - **About the _object attribute** of the PyPoint. As the C++ object life span - (``Point``) is linked to the Python (``PyPoint``) one, we may have used a - value instead of a pointer. It is best to keep a pointer as the macros - written for ``DBo`` derived classes will remain usables. - - -.. code:: c++ - - #ifndef ISOBAR_PY_POINT_H - #define ISOBAR_PY_POINT_H - - #include "hurricane/isobar/PyHurricane.h" - #include "hurricane/Point.h" - - namespace Isobar { - extern "C" { - - typedef struct { - PyObject_HEAD - Hurricane::Point* _object; - } PyPoint; - - extern PyTypeObject PyTypePoint; - extern PyMethodDef PyPoint_Methods[]; - extern void PyPoint_LinkPyType(); - - #define IsPyPoint(v) ( (v)->ob_type == &PyTypePoint ) - #define PYPOINT(v) ( (PyPoint*)(v) ) - #define PYPOINT_O(v) ( PYPOINT(v)->_object ) - - } // extern "C". - } // Isobar namespace. - - #endif // ISOBAR_PY_POINT_H - -|newpage| - - -5.2 Class File -~~~~~~~~~~~~~~~~ - -Changes from `3.2 Class Associated File`_: - -* As there is no ``PyPoint_Link()`` function, there is no call to any - flavor of the ``DBoLinkcreatemethod()`` macro (obvious as it's *not* - a ``DBo``). - -* To use the standard Python constructor, we have to define ``PyPoint_NEW()`` - and ``PyPoint_Init()`` functions, I'm not absolutely certain that the later - needs to be defined (that part is still not clear to me from the Python doc). - -* As it's not a ``DBo`` there is no ``destroy()`` method, so no call to - ``DirectDestroyMethod()`` - -* Lastly, as this object has a ``PyPoint_NEW()`` (field ``tp_new``) and - a ``PyPoint_Init()`` (field ``tp_init``) we have to use the macro - ``PyTypeObjectLinkPyTypeNewInit()`` to define ``PyPoint_LinkPyType()``. - - -.. code:: c++ - - #include "hurricane/isobar/PyPoint.h" - - namespace Isobar { - using namespace Hurricane; - - extern "C" { - - #define METHOD_HEAD(function) GENERIC_METHOD_HEAD(Point,point,function) - - #if defined(__PYTHON_MODULE__) - - static PyObject* PyPoint_NEW ( PyObject* module, PyObject *args ) - { - Point* point = NULL; - HTRY - PyObject* arg0 = NULL; - PyObject* arg1 = NULL; - - __cs.init( "Point.Point" ); - if (not PyArg_ParseTuple( args,"|O&O&:Point.Point" - , Converter,&arg0 - , Converter,&arg1 )) { - PyErr_SetString ( ConstructorError - , "invalid number of parameters for Point constructor." ); - return NULL; - } - - if (__cs.getObjectIds() == "") - { point = new Point()); } - else if (__cs.getObjectIds() == ":point") - { point = new Point( *PYPOINT_O(arg0) ); } - else if (__cs.getObjectIds() == ":int:int") - { point = new Point( PyAny_AsLong(arg0), PyAny_AsLong(arg1) ); } - else { - PyErr_SetString ( ConstructorError - , "invalid number of parameters for Point constructor." ); - return NULL; - } - - PyPoint* pyPoint = PyObject_NEW( PyPoint, &PyTypePoint ); - if (pyPoint == NULL) { delete point; return NULL; } - pyPoint->_object = point; - HCATCH - - return (PyObject*)pyPoint; - } - - static int PyPoint_Init ( PyPoint* self, PyObject* args, PyObject* kwargs ) - { return 0; } - - DirectGetLongAttribute(PyPoint_getX,getX,PyPoint,Point) - DirectGetLongAttribute(PyPoint_getY,getY,PyPoint,Point) - DirectSetLongAttribute(PyPoint_SetX,setX,PyPoint,Point) - DirectSetLongAttribute(PyPoint_SetY,setY,PyPoint,Point) - - PyMethodDef PyPoint_Methods[] = - { { "getX" , (PyCFunction)PyPoint_getX , METH_NOARGS - , "Return the Point X value." } - , { "getY" , (PyCFunction)PyPoint_getY , METH_NOARGS - , "Return the Point Y value." } - , { "setX" , (PyCFunction)PyPoint_SetX , METH_VARARGS - , "Modify the Point X value." } - , { "setY" , (PyCFunction)PyPoint_SetY , METH_VARARGS - , "Modify the Point Y value." } - , {NULL, NULL, 0, NULL} /* sentinel */ - }; - - DirectDeleteMethod(PyPoint_DeAlloc,PyPoint) - PyTypeObjectLinkPyTypeNewInit(Point) - - #else // Python Module Code Part. - - PyTypeObjectDefinitions(Point) - - #endif // Shared Library Code Part. - - } // extern "C". - } // Isobar namespace. - - -5.2 Class File -~~~~~~~~~~~~~~~~ - -To put it bluntly, there is no difference in the Python module for -a standalone ``DBo`` class and a non-``DBo`` class. - - -6. Encapsulating DbU -====================== - -While ``Hurricane::DbU`` is a class, the ``Hurricane::DbU::Unit`` is only -a ``typedef`` over ``uint64_t``. The ``DbU`` class only provides a set of -static methods to manipulate and convert to and from other units. -At Python level, ``DbU::Unit`` will be stored in plain ``long long``. - -When a ``DbU::Unit`` argument is expected in a Python functions, just use -the ``DbU::Unit PyAny_AsLong( PyObject* )`` function to convert it. - -For example, if we explicit the expension of: - -.. code:: c++ - - DirectSetLongAttribute(PyPoint_SetX,setX,PyPoint,Point) - -|newpage| - -We would get: - -.. code:: c++ - - static PyObject* PyPoint_setX ( PyPoint *self, PyObject* args ) - { - Point* cobject = static_cast( self->_object ); - if (cobject == NULL) { - PyErr_SetString( ProxyError - , "Attempt to call Point.setX() on an unbound Hurricane object" ); - return NULL; - } - - HTRY - PyObject* arg0 = NULL; - if (not PyArg_ParseTuple( args, "O:Point.setX()", &arg0 )) - return ( NULL ); - cobject->setX( Isobar::PyAny_AsLong(arg0) ); - HCATCH - Py_RETURN_NONE; - } - - -For the other way around, use ``PyObject* PyDbU_FromLong( DbU::Unit )``. - -.. code:: c++ - - DirectGetLongAttribute(PyPoint_GetX,getX,PyPoint,Point) - -We would get: - -.. code:: c++ - - static PyObject* PyPoint_GetX ( PyPoint *self, PyObject* args ) - { - Point* cobject = static_cast( self->_object ); - if (cobject == NULL) { - PyErr_SetString( ProxyError - , "Attempt to call Point.getX() on an unbound Hurricane object" ); - return NULL; - } - return Isobar::PyDbU_FromLong(cobject->getX()); - } - - -7. No C++ Hurricane::Name encapsulation -========================================== - -To be written. diff --git a/documentation/PythonCpp/index.rst b/documentation/PythonCpp/index.rst new file mode 100644 index 00000000..cb5575c2 --- /dev/null +++ b/documentation/PythonCpp/index.rst @@ -0,0 +1,23 @@ +.. -*- mode: rst; explicit-buffer-name: "index.rst" -*- + +.. include:: ../etc/definitions.rst + + +=================================== +Hurricane Python/C++ API Tutorial +=================================== + +Printable version of this document `PythonCpp.pdf <../../../pdf/main/PythonCpp.pdf>`_. + + +.. toctree:: + :maxdepth: 2 + + Introduction.rst + Configuration.rst + DBoStandalone.rst + DBoHierarchy.rst + NonDBo.rst + DbU.rst + Name.rst + diff --git a/documentation/PythonCpp/pdfHeader.rst b/documentation/PythonCpp/pdfHeader.rst new file mode 100644 index 00000000..29cdbf2b --- /dev/null +++ b/documentation/PythonCpp/pdfHeader.rst @@ -0,0 +1,15 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +=================================== +Hurricane Python/C++ API Tutorial +=================================== + +|pagestylefancy| + + +.. contents:: + +|newpage| diff --git a/documentation/RDS/HTML_defs.rst b/documentation/RDS/HTML_defs.rst deleted file mode 100644 index 43c7dd0a..00000000 --- a/documentation/RDS/HTML_defs.rst +++ /dev/null @@ -1,22 +0,0 @@ -.. -*- Mode: rst -*- - -.. role:: raw-html(raw) - :format: html - -.. URLs that changes between the various backends. - -.. For HTML backend - -.. Stand-alone images. -.. |RDS_VW| replace:: :raw-html:`

    RDS Variable Width Rule
    ` -.. |RDS_LCW| replace:: :raw-html:`
    RDS Left Constant Width Rule
    ` -.. |SegmentOrientation| replace:: :raw-html:`
    Symbolic Segment Orientations
    ` -.. |BIGVIA_1| replace:: :raw-html:`
    BIGVIA holes
    ` -.. |BIGVIA_2| replace:: :raw-html:`
    BIGVIA holes overlap
    ` - -.. Direct LaTeX commands encapsulation. -.. |dotfill| replace:: :raw-html:`  ` -.. |noindent| replace:: :raw-html:`

    ` -.. |medskip| replace:: :raw-html:`
    ` -.. |newpage| replace:: :raw-html:`
    ` - diff --git a/documentation/RDS/LaTeX_defs.rst b/documentation/RDS/LaTeX_defs.rst deleted file mode 100644 index 37d0bbf3..00000000 --- a/documentation/RDS/LaTeX_defs.rst +++ /dev/null @@ -1,25 +0,0 @@ - -.. -*- Mode: rst -*- - -.. role:: raw-latex(raw) - :format: latex - -.. URLs that changes between the various backends. - -.. |DONE| replace:: :raw-latex:`\marginpar{\fbox{\small\ding{56}}}` - -.. For LaTeX/PDF backend. - -.. Stand-alone images. -.. |RDS_VW| replace:: :raw-latex:`\begin{center}\fbox{\includegraphics[width=.7\textwidth]{./images/RDS_VW.eps}}\end{center}` -.. |RDS_LCW| replace:: :raw-latex:`\begin{center}\fbox{\includegraphics[width=.4\textwidth]{./images/RDS_LCW.eps}}\end{center}` -.. |SegmentOrientation| replace:: :raw-latex:`\begin{center}\fbox{\includegraphics[width=.5\textwidth]{./images/SegmentOrientation.eps}}\end{center}` -.. |BIGVIA_1| replace:: :raw-latex:`\begin{center}\fbox{\includegraphics[width=.5\textwidth]{./images/bigvia-1.eps}}\end{center}` -.. |BIGVIA_2| replace:: :raw-latex:`\begin{center}\fbox{\includegraphics[width=.5\textwidth]{./images/bigvia-2.eps}}\end{center}` - -.. Direct LaTeX commands encapsulation. -.. |dotfill| replace:: :raw-latex:`\dotfill` -.. |noindent| replace:: :raw-latex:`\noindent` -.. |medskip| replace:: :raw-latex:`\medskip` -.. |newpage| replace:: :raw-latex:`\newpage` - diff --git a/documentation/RDS/RDS.html b/documentation/RDS/RDS.html deleted file mode 100644 index f93f2d4d..00000000 --- a/documentation/RDS/RDS.html +++ /dev/null @@ -1,1286 +0,0 @@ - - - - - - - - - - - - -
    - - --- - - - - - - - - - -
    Date:26, september 2014
    Authors:Jean-Paul Chaput
    Contact:<alliance-users@soc.lip6.fr>
    Version:0.2
    - - - - - - - - - - -


    -

    Disclaimer: This document is still far from complete.

    -


    -
    -

    Symbolic to Real Conversion In Alliance

    - -


    -


    -
    -

    Symbolic Layout

    -
    -

    Symbolic Components

    -

    A symbolic layout is, in practice, made of only of three objects:

    - ----- - - - - - - - - - - - - - - - - - - - - -
    ObjectmbkExplanation
    SegmentsphsegOriented segments with a width and an orientation.
    VIAs & contactsphviaBoils down to just a point.
    Big VIAs & Big ContactsphviaPoint with a width and a height -That is a rectangle of width by height centered -on the VIA coordinates.
    -

    Each of thoses objects is associated to a symbolic layer which will -control how the object is translated in many real rectangles.

    - ------ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    mbkLayer NameUsable ByUsage
    phsegNWELLSegmentN Well
    PWELLSegmentP Well
    NDIFSegmentN Diffusion
    PDIFSegmentP Diffusion
    NTIESegmentN Tie
    PTIESegmentP Tie
    NTRANSSegmentN transistor, in Alliance, a transistor -is represented as a segment (it's grid).
    PTRANSSegmentP transistor
    POLYSegmentPolysilicium
    ALUxSegmentMetal level x
    CALUxSegmentMetal level x, that can be used by the -upper hierarchical level as a connector. -From the layout point of view it is the -same as ALUx.
    TALUxSegmentBlockage for metal level x. Will -diseappear in the real layout as it is an -information for the P&R tools only.
    phviaCONT_BODY_NVIA, BIGVIAContact to N Well
    CONT_BODY_PVIA, BIGVIAContact to P Well
    CONT_DIF_NVIA, BIGVIAContact to N Diffusion
    CONT_DIF_PVIA, BIGVIAContact to P Diffusion
    CONT_POLYVIA, BIGVIAContact to polysilicium
    CONT_VIAVIA, BIGVIAContact between metal1 and metal2
    CONT_VIAxVIA, BIGVIAContact between metal x and metal x+1. -The index is the the one of the bottom -metal of the VIA.
    C_X_NVIAN transistor corner, to build transistor -bend. Not used anymore in recent technos
    C_X_PVIAP transistor corner, to build transistor -bend. Not used anymore in recent technos
    -
    -

    Note

    -

    Not all association of object and symbolic layers are meaningful. -For instance you cannot associate a contact to a NTRANS layer.

    -
    -
    -

    Note

    -

    The symbolic layer associated with blockages is prefixed by a T, -for transparency, which may seems silly. It is for historical reasons, -it started as a true transparency, but at some point we had to invert -the meaning (blockage) with the rise of over-the-cell routing, but the -name stuck...

    -
    -
    -
    -

    Symbolic Segments

    -

    In Alliance, segments are oriented (up, down, left, right). This disambiguate -the left or right side when using the LCW and RCW rules in the rds file. -It allows to generate, if needed, asymetric object in the real layout file.

    -

    Symbolic Segment Orientations

    -
    -
    -
    -

    The RDS File

    -

    The RDS file control how a symbolic layout is transformed into it's real -conterpart.

    -
    -

    Note

    -

    Unit used inside the RDS file: all units are expressed in micrometers.

    -
    -

    Alliance tools relying on the RDS file, and what layers are active for them:

    - ----- - - - - - - - - - - - - - - - - - - - - - - - - -
    ToolNameRDS Flags
    Layout editorgraalALL
    Design Rule CheckerdrucALL, DRC
    Electrical extractorcougarALL, EXT
    The symbolic to real layout translators2rALL
    -
    -

    Physical Grid & Lambda Value

    -

    RDS file:

    -
    -DEFINE  PHYSICAL_GRID  0.005
    -DEFINE  LAMBDA         0.09
    -
    -

    Tells that the physical grid (founder grid) step is 0.005µm and the lambda has -a value of 0.09µm. That is, one lambda is 18 grid steps.

    -

    We can distinguish two kind of rds files:

    -
      -
    • The 1µm kind, odd segment widths and coordinates are allowed, but the LAMBDA -value must represent an even number of foundry grid step.
    • -
    • The 2µm kind, segments widths and coordinates must all be even. And in that case -the LAMBDA value can be any multiple of the foundry grid.
    • -
    -
    -
    -

    The MBK_TO_RDS_SEGMENT table

    -

    The MBK_TO_RDS_SEGMENT table control the way segments are translated into -real rectangles. Be aware that we are translating segments and not rectangles. -Segments are defined by their axis (source & target points) and their width. -The geometrical transformations are described according to that model. -Obviously, they are either horizontal or vertical.

    -

    The translation method of a symbolic segment is as follow:

    -
      -
    1. The segment is translated into one or more physical rectangles. -The generated rectangles depends on the tool which is actually -using rds and the flag for the considered real layer. -For instance, real layers flagged with DRC will be generated -for s2r (for the cif or gds) and druc, but will not -be shown under graal.

      -
    2. -
    3. Translation into one real layer. First the source & target coordinates and width -of the symbolic segment are multiplied by the LAMBDA value to obtain a real -segment. Then one of the VW, LCW or RCW transformation is applied to -that segment to get the final real rectangle.

      -
        -
      • VW for Variable Width, expand the real layer staying centered from the -original one. In those rules, the third number is not used, it is only here -to make the life easier for the parser...

        -

        RDS Variable Width Rule

        -
      • -
      • LCW or RCW for Left/Right Constant Width, create an off-center rectangle -of fixed width relatively to the real segment. Note that the SP number -is the distance between the edge of the real segment and the edge of the -generated real rectangle (not from the axis). It is often zero.

        -

        RDS Left Constant Width Rule

        -
      • -
      -
    4. -
    -


    -

    Examples:

    -
    -TABLE MBK_TO_RDS_SEGMENT
    -
    -    # (Case 1)
    -    ALU1       RDS_ALU1   VW  0.18  0.09  0.0  ALL
    -
    -    # (Case 2)
    -    NDIF       RDS_NDIF   VW  0.18  0.0   0.0  ALL \
    -               RDS_ACTIV  VW  0.18  0.0   0.0  DRC \
    -               RDS_NIMP   VW  0.36  0.36  0.0  DRC
    -
    -    # (Case 3)
    -    NTRANS     RDS_POLY   VW  0.27  0.00  0.0  ALL \
    -               RDS_GATE   VW  0.27  0.00  0.0  DRC \
    -               RDS_NDIF  LCW  0.0   0.27  0.0  EXT \
    -               RDS_NDIF  RCW  0.0   0.27  0.0  EXT \
    -               RDS_NDIF   VW  0.0   0.72  0.0  DRC \
    -               RDS_ACTIV  VW  0.0   0.72  0.0  ALL \
    -               RDS_NIMP   VW  0.18  1.26  0.0  DRC
    -
    -END
    -
    -

    Case 1 the ALU1 is translated in exacltly one real rectangle of -RDS_ALU1, both ends are extended by 0.18µm and it's width is increased -by 0.09µm.

    -

    Case 2 the NDIF will be translated into only one segment -under graal, for symbolic visualization. And into three real rectangles -for s2r and druc.

    -

    Case 3 the NTRANS, associated to a transistor is a little bit -more complex, the generated shapes are different for the extractor cougar -in one hand, and for both druc & s2r in the other hand.

    -
      -
    • For the extractor (EXT & ALL flags) there will be four rectangles -generateds:

      -
        -
      1. The gate (RDS_GATE)
      2. -
      3. The left diffusion of the transistor (source or drain) (RDS_NDIF).
      4. -
      5. The right diffusion of the transistor (drain or source) (RDS_NDIF).
      6. -
      7. The active area (RDS_ACTIV).
      8. -
      -

      As the extractor must kept separate the source and the drain of the transistor, -they are generated as two offset rectangles, using the LCW and RCW directives.

      -
    • -
    • For s2r and druc (DRC and ALL), five rectangles are generateds:

      -
        -
      1. The poly (RDS_POLY).
      2. -
      3. The gate (RDS_GATE).
      4. -
      5. The diffusion, as one rectangle that covers both the LCW and the RCW (RDS_NDIF).
      6. -
      7. The active area (RDS_ACTIV).
      8. -
      9. The N implantation (RDS_NIMP).
      10. -
      -

      In the layout send to the foundry, the source & drain are draw as one rectangle -across the gate area (the transistor being defined by the intersection of both -rectangles).

      -
    • -
    -


    -
    -
    -

    The MBK_TO_RDS_VIA table

    -

    This table is to translate default VIAs into real via. In the symbolic layout -the default VIA is simply a point and a set of layers. All layers are converted -in squares shapes centered on the VIA coordinate. The one dimension given is the -size of the side of that square.

    -

    Note that although we are refering to VIAs, which for the purists are between two -metal layers, this table also describe contacts.

    -

    Example:

    -
    -TABLE MBK_TO_RDS_VIA
    -
    -    CONT_DIF_P RDS_PDIF  0.54 ALL \
    -               RDS_CONT  0.18 ALL \
    -               RDS_ALU1  0.36 ALL \
    -               RDS_ACTIV 0.54 DRC \
    -               RDS_PIMP  0.90 DRC
    -
    -    CONT_POLY  RDS_POLY  0.54 ALL \
    -               RDS_CONT  0.18 ALL \
    -               RDS_ALU1  0.36 ALL
    -
    -    CONT_VIA   RDS_ALU1  0.45 ALL \
    -               RDS_VIA1  0.27 ALL \
    -               RDS_ALU2  0.45 ALL
    -
    -END
    -
    -
    -

    Note

    -

    In CONT_DIF_P you may see that only three layers will be shown under -graal, but five will be generated in the gds layout.

    -
    -
    -
    -

    The MBK_TO_RDS_BIGVIA_HOLE table

    -

    In s2r, when generating BIGVIAs, the matrix of holes they contains is -not draw relative to the position of the BIGVIA itself, but on a grid which -is common througout all the design real layout. This is to allow overlap -between two BIGVIA without risking the holes matrix to be not exactly overlapping. -As a consequence, when visualizing the gds file, the holes may not be centerend -inside one individual BIGVIA.

    -

    The MBK_TO_RDS_BIGVIA_HOLE table define the global hole matrix for the whole -design. The first number is the individual hole side and the second the grid step -(edge to edge). The figure below show the hole generation.

    -

    BIGVIA holes

    -

    Example of BIGVIA overlap:

    -

    BIGVIA holes overlap

    -

    Example:

    -
    -TABLE MBK_TO_RDS_BIGVIA_HOLE
    -
    -    CONT_VIA   RDS_VIA1 0.27 0.27 ALL
    -    CONT_VIA2  RDS_VIA2 0.27 0.27 ALL
    -    CONT_VIA3  RDS_VIA3 0.27 0.27 ALL
    -    CONT_VIA4  RDS_VIA4 0.27 0.27 ALL
    -    CONT_VIA5  RDS_VIA5 0.36 0.36 ALL
    -
    -END
    -
    -
    -

    Note

    -

    BIGVIA demotion. If the size of the bigvia is too small, there is -a possibility that no hole from the global matrix will be under it. -To avoid that case, if the either side of the BIGVIA is less than -1.5 * step, the BIGVIA is demoted to a simple VIA.

    -
    -


    -
    -
    -

    The MBK_TO_RDS_BIGVIA_METAL table

    -

    This table describe how the metal part of a BIGVIA is expanded (for the hole -part, see the previous table MBK_TO_RDS_BIGVIA_HOLE). The rule give for each -metal:

    -
      -
    1. The delta-with (have to ask Franck).
    2. -
    3. The overhang, the length the real rectangle is expanded on each side from -the symbolic rectange.
    4. -
    -

    Example:

    -
    -TABLE MBK_TO_RDS_BIGVIA_METAL
    -
    -    CONT_VIA  RDS_ALU1 0.0 0.09  ALL \
    -              RDS_ALU2 0.0 0.09  ALL
    -
    -    CONT_VIA2 RDS_ALU2 0.0 0.09  ALL \
    -              RDS_ALU3 0.0 0.09  ALL
    -
    -    CONT_VIA3 RDS_ALU3 0.0 0.09  ALL \
    -              RDS_ALU4 0.0 0.09  ALL
    -
    -    CONT_VIA4 RDS_ALU4 0.0 0.09  ALL \
    -              RDS_ALU5 0.0 0.09  ALL
    -
    -    CONT_VIA5 RDS_ALU5 0.0 0.09  ALL \
    -              RDS_ALU6 0.0 0.18  ALL
    -
    -END
    -
    -


    -
    -
    -

    The MBK_WIRESETTING table

    -

    From a strict standpoint this table shouldn't be here but put in a separate -configuration file, because it contains informations only used by the symbolic -layout tools (ocp, nero, ring).

    -

    This table defines the cell gauge the routing pitch and minimal (symbolic) -wire width and minimal spacing for the routers. They are patly redundant.

    -

    Example:

    -
    -TABLE MBK_WIRESETTING
    -
    -    X_GRID             10
    -    Y_GRID             10
    -    Y_SLICE           100
    -    WIDTH_VDD          12
    -    WIDTH_VSS          12
    -    TRACK_WIDTH_ALU8    0
    -    TRACK_WIDTH_ALU7    4
    -    TRACK_WIDTH_ALU6    4
    -    TRACK_WIDTH_ALU5    4
    -    TRACK_WIDTH_ALU4    3
    -    TRACK_WIDTH_ALU3    3
    -    TRACK_WIDTH_ALU2    3
    -    TRACK_WIDTH_ALU1    3
    -    TRACK_SPACING_ALU8  0
    -    TRACK_SPACING_ALU7  4
    -    TRACK_SPACING_ALU6  4
    -    TRACK_SPACING_ALU5  4
    -    TRACK_SPACING_ALU4  4
    -    TRACK_SPACING_ALU3  4
    -    TRACK_SPACING_ALU2  4
    -    TRACK_SPACING_ALU1  3
    -
    -END
    -
    -
    -
    -
    -
    - - diff --git a/documentation/RDS/RDS_HTML.rst b/documentation/RDS/RDS_HTML.rst deleted file mode 100644 index c16f2565..00000000 --- a/documentation/RDS/RDS_HTML.rst +++ /dev/null @@ -1,5 +0,0 @@ - -.. -*- Mode: rst -*- - -.. include:: HTML_defs.rst -.. include:: RDS.rst diff --git a/documentation/RDS/RDS_LaTeX.rst b/documentation/RDS/RDS_LaTeX.rst deleted file mode 100644 index 87ae6c88..00000000 --- a/documentation/RDS/RDS_LaTeX.rst +++ /dev/null @@ -1,4 +0,0 @@ -.. -*- Mode: rst -*- - -.. include:: LaTeX_defs.rst -.. include:: RDS.rst diff --git a/documentation/RDS/RDS.rst b/documentation/RDS/RDSpage.rst similarity index 93% rename from documentation/RDS/RDS.rst rename to documentation/RDS/RDSpage.rst index ab352843..be3aa644 100644 --- a/documentation/RDS/RDS.rst +++ b/documentation/RDS/RDSpage.rst @@ -1,18 +1,7 @@ .. -*- Mode: rst -*- -.. role:: ul -.. role:: cb -.. role:: sc -.. role:: fboxtt +.. include:: ../etc/definitions.rst -.. Acronyms & names. -.. |GNU| replace:: :sc:`gnu` -.. |LGPL| replace:: :sc:`lgpl` -.. |GPL| replace:: :sc:`gpl` -.. |UPMC| replace:: :sc:`upmc` -.. |Alliance| replace:: :sc:`Alliance` -.. |MBK| replace:: :sc:`mbk` -.. |RDS| replace:: :sc:`rds` .. Tools .. |ocp| replace:: ``ocp`` @@ -48,7 +37,6 @@ .. |PTIE| replace:: ``PTIE`` .. |NDIF| replace:: ``NDIF`` .. |PDIF| replace:: ``PDIF`` -.. |NWELL| replace:: ``NWELL`` .. |PWELL| replace:: ``PWELL`` .. |NTRANS| replace:: ``NTRANS`` .. |PTRANS| replace:: ``PTRANS`` @@ -68,26 +56,33 @@ .. |RDS_POLY| replace:: ``RDS_POLY`` .. |RDS_ALU1| replace:: ``RDS_ALU1`` +.. Stand-alone images. +.. |RDS_VW| image:: ./images/RDS_VW.png + :alt: RDS Variable Width Rule + :align: middle + :width: 60% -:Date: 26, september 2014 -:Authors: Jean-Paul Chaput -:Contact: -:Version: 0.2 +.. |RDS_LCW| image:: ./images/RDS_LCW.png + :alt: RDS Left Constant Width Rule + :align: middle + :width: 40% -|medskip| +.. |SegmentOrientation| image:: ./images/SegmentOrientation.png + :alt: Symbolic Segment Orientations + :align: middle + :width: 50% -**Disclaimer:** This document is still far from complete. +.. |BIGVIA_1| image:: ./images/bigvia-1.png + :alt: BIGVIA holes + :align: middle + :width: 40% -|medskip| - -========================================= -Symbolic to Real Conversion In Alliance -========================================= +.. |BIGVIA_2| image:: ./images/bigvia-2.png + :alt: BIGVIA holes overlap + :align: middle + :width: 40% -.. contents:: - -|medskip| |newpage| @@ -189,7 +184,7 @@ In |Alliance|, segments are oriented (up, down, left, right). This disambiguate the left or right side when using the ``LCW`` and ``RCW`` rules in the |RDS| file. It allows to generate, if needed, asymetric object in the real layout file. -|SegmentOrientation| +|bcenter| |SegmentOrientation| |ecenter| |newpage| @@ -261,14 +256,14 @@ The translation method of a symbolic segment is as follow: original one. In those rules, the third number is not used, it is only here to make the life easier for the parser... - |RDS_VW| + |bcenter| |RDS_VW| |ecenter| * |LCW| or |RCW| for Left/Right Constant Width, create an off-center rectangle of fixed width relatively to the real segment. Note that the ``SP`` number is the distance *between the edge* of the real segment and the edge of the generated real rectangle (*not* from the axis). It is often zero. - |RDS_LCW| + |bcenter| |RDS_LCW| |ecenter| |newpage| @@ -383,11 +378,11 @@ The |MBK_TO_RDS_BIGVIA_HOLE| table define the global hole matrix for the whole design. The first number is the individual hole side and the second the grid step (edge to edge). The figure below show the hole generation. -|BIGVIA_1| +|bcenter| |BIGVIA_1| |ecenter| Example of BIGVIA overlap: -|BIGVIA_2| +|bcenter| |BIGVIA_2| |ecenter| Example: :: @@ -407,8 +402,6 @@ Example: :: ``1.5 * step``, the BIGVIA is demoted to a simple VIA. -|newpage| - The |MBK_TO_RDS_BIGVIA_METAL| table ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -438,12 +431,9 @@ Example: :: CONT_VIA5 RDS_ALU5 0.0 0.09 ALL \ RDS_ALU6 0.0 0.18 ALL - END -|newpage| - The |MBK_WIRESETTING| table ~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/documentation/RDS/SoC.css b/documentation/RDS/SoC.css deleted file mode 100644 index 3744b6b4..00000000 --- a/documentation/RDS/SoC.css +++ /dev/null @@ -1,750 +0,0 @@ - -html, body, th, td, tr, p, li, h1, h2, h3, h4, h5, h6 { - font-size: 96%; - font-family: "Open Sans", verdana, sans-serif; -} - -p, li { - text-align: justify; -} - -.sc { - font-variant: small-caps; - font-size: 120%; -} - -h1, h2, h3, h4, h5, h6 { - font-family: "Open Sans", verdana, sans-serif; -} - -h1 { text-align: center; - border-top: 2px solid #09550b; - border-bottom: 2px solid #09550b; - padding-top: 7pt; - padding-bottom: 7pt; - } -h2, h3, h4, h5, h6 { text-align: left; } -h1, h2, h3 { font-family: "Open Sans"; - } -h1 { font-weight: normal; font-size: 170%; padding-top: 7pt; margin-top: 25pt; } -h2 { font-weight: normal; font-size: 140%; padding-top: 7pt; margin-top: 25pt; } -h3 { font-weight: bold; font-size: 118%; padding-top: 7pt; margin-top: 25pt; } -h4 { font-weight: bold; font-size: 100%; } -h5 { font-style: italic; font-size: 100%; } -h6 { font-variant: small-caps; font-size: 100%; } - -body { - color: black; - background: white; - /* - background: #09550B; - background-color: white; - */ - background-position: top left; - background-attachment: fixed; - background-repeat: no-repeat; - margin: 0 0 0 0; - padding: 20pt; - width: 550pt; - margin-right: auto; - margin-left: auto; - margin-top: 20pt; - margin-bottom: 20pt; - -moz-box-shadow: 4px 4px 5px 3px #ccc; - -webkit-box-shadow: 4px 4px 5px 3px #ccc; - box-shadow: 4px 4px 5px 3px #ccc; -} - -hr { - color: #09550b; - border: 1px dotted #09550b; - border-style: none none dotted; - padding-top: 10pt; - padding-bottom: 10pt; -} - -div#contents { - margin: 30pt; - padding: 2pt 10pt; - background-color: #fff676; - -moz-box-shadow: 4px 4px 5px 2px #ccc; - -webkit-box-shadow: 4px 4px 5px 2px #ccc; - box-shadow: 4px 4px 5px 2px #ccc; - -/* Shadow explanation: - * The shadow is a rectangle the same size as the box. It is then shifted - * blurred according to the following parameters. - * - * 1. The horizontal offset of the shadow, positive means the shadow will be - * on the right of the box, a negative offset will put the shadow on the - * left of the box. - * 2. The vertical offset of the shadow, a negative one means the box-shadow - * will be above the box, a positive one means the shadow will be below - * the box. - * 3. The blur radius (optional), if set to 0 the shadow will be sharp, - * the higher the number, the more blurred it will be. - * 4. The spread radius (optional), positive values increase the size of the - * shadow, negative values decrease the size. Default is 0 (the shadow is - * same size as blur). - * 5. Color - */ -} - - -div#centered { - margin-left: auto; - margin-right: auto; - text-align: center; -} - -pre, tt, code { - font-family: "courrier", "andale mono", monospace; - font-size: 100%; - white-space: pre; -} - -tt { - color: #09550b; -} - -pre.wiki, div.code, pre.literal-block { - font-size: 90%; - padding: 5pt; - margin-left: 4%; - margin-right: 4%; - border: dashed; - border-width: thin; - border-color: #FC8676; - background-color: #FCFCE1; -} - -a:link, a:active { - font-weight: normal; - text-decoration: none; - color: #09550b; - border-bottom: 1px dotted #09550b; -} - -a:hover, a:focus, a:visited { - font-weight: normal; - font-style: italic; - text-decoration: none; - /* - color: #A40010; - border-bottom: 1px dotted #A40010; - */ - color: #09550b; - border-bottom: 1px dotted #09550b; -} - -h1 a:link { - border-bottom: 0px; -} - -p.credit { - margin-left: 10%; - margin-right: 10%; - font-size: 110%; -} - -p.credit span.left { - float: left; - white-space: nowrap; -} - -p.credit span.right { - float: right; - white-space: nowrap; -} - -img.addborder { - border: 1px solid black; -} - -div#header { - margin: 0px; - padding: 0pt; - background-color: white; - display: inline-block; - width: 100%; -} - -div#header_logo { - margin: 0px; - padding: 10px 0px 10px 12pt; - background-color: white; - width: 40%; - float: left; -} - -div#header_menus { - background-color: white; - width: 55%; - float: right; - padding-top: 60pt; - padding-right: 10pt; - text-align: right; - font-size: 80%; -} - -div#header_menus ul { - padding-top: 45pt; - list-style: none; - text-align: right; - font-size: 80%; -} - -div#header_menus li { - padding: 0pt; - margin: 0pt; - display: inline; - white-space: nowrap; -} - -/* -div#header_menus a { - border-left: 1px solid #d7d7d7; - padding: 0 .75em; -} - -div#header_menus a.first { - border-left: none; -} -*/ - -div#header a:link, div#header a:active, div#header a:visited { - margin: 0pt; - padding: 0pt 5pt; - font-weight: normal; - color: black; - text-decoration: none; - border-bottom: 1px solid black; - border-left: 0px; - border-right: 0px; -} - -div#header a:hover, div#header a:focus { - margin: 0pt; - padding: 0pt 5pt; - font-weight: normal; - color: black; - text-decoration: none; - border-bottom: 4px solid #09550b; - border-left: 0px; - border-right: 0px; -} - -div#header a.current:link, div#header a.current:active, div#header a.current:visited { - margin: 0pt; - padding: 0pt 5pt; - font-weight: bold; - font-style: normal; - font-size: 120%; - color: white; - text-decoration: none; - border-bottom: 4px solid #09550b; - border-left: 0px; - border-right: 0px; - background-color: #09550b; -} - -div#header a.current:hover, div#header a.current:focus { - margin: 0pt; - padding: 0pt 5pt; - font-weight: bold; - font-style: normal; - font-size: 120%; - color: white; - text-decoration: none; - border-bottom: 4px solid #09550b; - border-left: 0px; - border-right: 0px; - background-color: #09550b; -} - -div#header_ancestors { - padding: 4px 0px 4px 12pt; - background-color: #09550B; - color: white; -} - -div#header_ancestors ul, div#header_ancestors * li { - display: inline; - list-style-type: none; - padding: 0px 0px 0px 0pt; -} - -div#header_ancestors a:link, div#header_ancestors a:active, div#header_ancestors a:visited { - font-weight: bold; - color: white; - text-decoration: none; - border-bottom: 0px; -} - -div#header_ancestors a:hover, div#header_ancestors a:focus { - font-weight: bold; - color: white; - text-decoration: underline; -} - -div#footer { - margin: 0px; - padding: 0px; - border-top: 1px dotted #09550b; - background-color: white; - display: inline-block; - width: 100%; - text-align: right; -} - -div#searchform { - width: 80%; - background-color: #ccffcd; - padding: 15pt 10pt 15pt 10pt; - margin-top: 50pt; - margin-bottom: 50pt; - margin-left: auto; - margin-right: auto; - text-align: center; -} - -div#searchform input#id_q { - background-color: white; - border: 1px solid #09550b; - padding: 2pt; - width: 80%; - font-size: 110%; - font-weight: bold; -} - -span.queryref { - font-weight: bold; -} - -div#searchform ul { - list-style: none; -} - -div#searchform li { - display: inline; -} - -hr#search_vs_results { - color: #09550b; - border: 2px dotted #09550b; - border-style: none none dotted; - margin-top: 0pt; - margin-bottom: 20pt; -} - -div#search_results { - width: 85%; - margin: auto; -} - -div#sidebar hr#separator { - color: white; - border: 0px; - margin-top: 0pt; - margin-bottom: 20pt; -} - -img.footer-logo { - height: 24px; - padding: 0px 2px; -} - -hr#site_vs_page { - color: white; - border: 3px dotted white; - border-style: none none dotted; - margin-top: 20pt; - margin-bottom: 20pt; -} - -div#sidebar { - /* - background: #09550B; - background: #ccffcd; - */ - background: white; -} - -div#sidebar div#sitemenu, div#sidebar div#pagemenu { - /* - background: white; - */ - background: #09550b; - width: 85%; - margin: auto; - padding: 5pt 10pt; -} - -div#sidebar * li { - text-align: left; -} - -div#sidebar * ul { - list-style-type: square; - padding-left: 12pt; -} - -div#sitemenu ul { - list-style-type: none; - padding-left: 0pt; -} - -div#sitemenu ul ul { - list-style-type: none; - padding-left: 0pt; -} - -div#sitemenu ul ul ul { - list-style-type: square; - padding-left: 12pt; -} - -div#sitemenu ul li ul li { - padding-top: 3pt; - padding-bottom: 5pt; - border-top: 1px dotted white; -} - -div#sitemenu ul li ul li ul li { - border-top: none; - padding-top: 1pt; - padding-bottom: 1pt; -} - -div#sitemenu ul li a:link, -div#sitemenu ul li a:active, -div#sitemenu ul lu a:visited -{ - font-size: 140%; - font-weight: bold; - border-bottom: none; -} - -div#sitemenu ul li a:focus, -div#sitemenu ul lu a:hover -{ - font-size: 140%; - font-weight: bold; - font-style: italic; - border-bottom: none; -} - -div#sitemenu ul ul li a:link, -div#sitemenu ul ul li a:active, -div#sitemenu ul ul lu a:visited, -div#sitemenu ul ul li a:focus, -div#sitemenu ul ul lu a:hover -{ - font-size: 90%; - font-weight: normal; - border-bottom: none; -/*border-bottom: 1px dotted white;*/ -} - -div#pagemenu ul { - list-style-type: none; - padding-left: 0pt; -} - -div#pagemenu ul ul { - list-style-type: none; - padding-left: 0pt; -} - -div#pagemenu ul ul ul { - padding-left: 12pt; -} - -div#pagemenu ul li ul li { - padding-top: 3pt; - padding-bottom: 5pt; - border-top: 1px dotted white; -} - -div#pagemenu ul li ul li ul li { - border-top: none; - padding-top: 1pt; - padding-bottom: 1pt; -} - -div#pagemenu ul li a:link, -div#pagemenu ul li a:active, -div#pagemenu ul lu a:visited -{ - font-size: 120%; - font-weight: bold; - border-bottom: none; -} - -div#pagemenu ul li a:focus, -div#pagemenu ul lu a:hover -{ - font-size: 120%; - font-weight: bold; - font-style: italic; - border-bottom: none; -} - -div#pagemenu ul ul li a:link, -div#pagemenu ul ul li a:active, -div#pagemenu ul ul lu a:visited, -div#pagemenu ul ul li a:focus, -div#pagemenu ul ul lu a:hover -{ - font-size: 90%; - font-weight: normal; - border-bottom: none; - /* - border-bottom: 1px dotted white; - */ -} - - -div#sidebar ul.ancestor * li { - padding-top: 0pt; -} - -div#sidebar ul { - padding-bottom: 8pt; -} - -div#sidebar a:link, div#sidebar a:active, div#sidebar a:visited { - /* - font-weight: normal; - */ - color: white; - text-align: left; - text-decoration: none; - border-bottom: 1px dotted white; -} - -div#sidebar a:hover, div#sidebar a:focus { - /* - font-weight: normal; - */ - color: white; - text-align: left; - text-decoration: none; - border-bottom: 1px dotted white; -} - -div#main { - border-left: 1px solid #09550b; -} - -div#main ul#summary { - list-style-type: square; - padding-left: 12pt; - font-size: 14pt; -} - -div#main ul#summary * ul { - padding-left: 12pt; - padding-bottom: 14pt; - font-size: 95%; -} - -div.code * { - background-color: #FCFCE1; -} - -div.note { - margin: 8px 2% 0px 2%; - border: 1px none #fff01c; - border-left-width: 4px; - border-left-style: solid; - padding: 1px 10pt 1px 55px; - background: #fff676 url('./images/clipboard.png') no-repeat 0% 50%;; - font-size: 90% -} - -div.error { - margin: 8px 2% 0px 2%; - border: 1px none #dd0000; - border-left-width: 4px; - border-left-style: solid; - padding: 1px 10pt 1px 55px; - background: #ffddcc url('./images/i-core.png') no-repeat 0% 50%;; - font-size: 90% -} - -p.admonition-title { - font-weight: bold; -} - -div.topic { - margin: 5pt; - padding: 2pt 10pt; - background-color: fff676; -} - -div.topic p.first { - font-weight: bold; -} - -table.wiki th, table th { - color: black; - background: #FFFFCC; -} - -table.docutils { - margin-left: 10%; - margin-right: 10%; -} - -table.wiki, table.wiki th, table.wiki td { border: 1px solid black; } -table.wiki th * p { text-align: center; } -table.wiki * p { margin: 0pt; } -table.wiki * blockquote { margin: 0pt; } -table { border-collapse: collapse; } -table th, table td { border: 1px solid black; - padding: 2px 10px 2px 10px; } - -table.docinfo { - margin-top: 10pt; - margin-left: auto; - margin-right: 0pt; - border: 10px solid #303030; - border-collapse: collapse; - background: #303030; - font-size: 90%; - font-family: sans-serif; -} - -table.docinfo tr { - border-bottom: 1px dotted white; -} - -th.docinfo-name, -table.docinfo td, -table.docinfo td a:link, -table.docinfo td a:active, -table.docinfo td a:visited, -table.docinfo td a:focus, -table.docinfo td a:hover -{ - border: 0px solid white; - background: #303030; - color: white; - text-align: left; - font-weight: bold; -} - -th.docinfo-name { - font-weight: normal; -} - -table.docinfo td { - font-weight: bold; -} - -span.ul { - text-decoration: underline; -} - -* span.smallcaps { - /*font-variant: "small-caps";*/ - text-transform: "uppercase"; - font-size: "smaller"; -} - - -span.cb { - font-family: "andale mono", monospace; - font-weight: bold; - white-space: pre; -} - -span.fboxtt { - border: 1px solid black; - padding: 0px 4px; - font-family: "andale mono", monospace; - font-weight: bold; - white-space: pre; -} - -#notice.system-message, .notice.system-message { - color: black; - background: #DDFFDD; - padding-top: 5pt; - padding-bottom: 5pt; - border: 1px none #55BB55; - border-top-width: 4px; - border-top-style: solid; -} - -#content.error .message, div.system-message { - color: #550000; - background: #ffddcc; - border: 2px none #dd0000; - border-top-width: 4px; - border-top-style: solid; - padding: .5em; - margin: 1em 0; -} - -#main { - float: right; - width: 70%; - padding: 0pt; - margin: 0pt; - min-height: 700px; - background: white; -} - -div#main h1 { - border-bottom: 2px solid #09550b; -} - -div#main div.section h1 { - border-bottom: none; -} - -#cmscontent { - padding: 0pt 4% 10pt 4%; - margin: 0pt; -} - -div#htmlerrorcontents { - padding: 10pt 4% 10pt 4%; - margin: 0pt; -} - -div#htmlerrorcontents span.cs { - font-size: 80%; - font-family: "andale mono", monospace; - white-space: pre; -} - -div#htmlerrorcontents hr.lang_separator { - border: 1px dotted black; - border-style: none none dotted; - margin-top: 20pt; - margin-bottom: 10pt; -} - -#embedcontent { - border: 0pt; - padding: 0pt; - margin: 0pt; -} - -#sidebar { - float: left; - width: 29.9%; - padding: 0 0 0 0; - margin: 0 0 0 0; - color: white; - background: #09550B; - /* - min-height: 300px; - background: #f2f2f2; - border-right: 1px solid #ccc; - padding: 0 0 0 10px; - */ -} diff --git a/documentation/RDS/images/RDS_LCW-eps-converted-to.pdf b/documentation/RDS/images/RDS_LCW-eps-converted-to.pdf deleted file mode 100644 index c78679f5704518a83979238318e043c5066b7345..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5101 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 diff --git a/documentation/RDS/images/RDS_LCW.eps b/documentation/RDS/images/RDS_LCW.eps deleted file mode 100644 index 78b0a9e1..00000000 --- a/documentation/RDS/images/RDS_LCW.eps +++ /dev/null @@ -1,238 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: RDS_LCW.fig -%%Creator: fig2dev Version 3.2 Patchlevel 5 -%%CreationDate: Mon Sep 15 18:23:48 2014 -%%For: jpc@lepka (Jean-Paul Chaput) -%%BoundingBox: 0 0 233 348 -%Magnification: 0.8000 -%%EndComments -/$F2psDict 200 dict def -$F2psDict begin -$F2psDict /mtrx matrix put -/col-1 {0 setgray} bind def -/col0 {0.000 0.000 0.000 srgb} bind def -/col1 {0.000 0.000 1.000 srgb} bind def -/col2 {0.000 1.000 0.000 srgb} bind def -/col3 {0.000 1.000 1.000 srgb} bind def -/col4 {1.000 0.000 0.000 srgb} bind def -/col5 {1.000 0.000 1.000 srgb} bind def -/col6 {1.000 1.000 0.000 srgb} bind def -/col7 {1.000 1.000 1.000 srgb} bind def -/col8 {0.000 0.000 0.560 srgb} bind def -/col9 {0.000 0.000 0.690 srgb} bind def -/col10 {0.000 0.000 0.820 srgb} bind def -/col11 {0.530 0.810 1.000 srgb} bind def -/col12 {0.000 0.560 0.000 srgb} bind def -/col13 {0.000 0.690 0.000 srgb} bind def -/col14 {0.000 0.820 0.000 srgb} bind def -/col15 {0.000 0.560 0.560 srgb} bind def -/col16 {0.000 0.690 0.690 srgb} bind def -/col17 {0.000 0.820 0.820 srgb} bind def -/col18 {0.560 0.000 0.000 srgb} bind def -/col19 {0.690 0.000 0.000 srgb} bind def -/col20 {0.820 0.000 0.000 srgb} bind def -/col21 {0.560 0.000 0.560 srgb} bind def -/col22 {0.690 0.000 0.690 srgb} bind def -/col23 {0.820 0.000 0.820 srgb} bind def -/col24 {0.500 0.190 0.000 srgb} bind def -/col25 {0.630 0.250 0.000 srgb} bind def -/col26 {0.750 0.380 0.000 srgb} bind def -/col27 {1.000 0.500 0.500 srgb} bind def -/col28 {1.000 0.630 0.630 srgb} bind def -/col29 {1.000 0.750 0.750 srgb} bind def -/col30 {1.000 0.880 0.880 srgb} bind def -/col31 {1.000 0.840 0.000 srgb} bind def - -end -save -newpath 0 348 moveto 0 0 lineto 233 0 lineto 233 348 lineto closepath clip newpath --114.1 389.4 translate -1 -1 scale - -/cp {closepath} bind def -/ef {eofill} bind def -/gr {grestore} bind def -/gs {gsave} bind def -/sa {save} bind def -/rs {restore} bind def -/l {lineto} bind def -/m {moveto} bind def -/rm {rmoveto} bind def -/n {newpath} bind def -/s {stroke} bind def -/sh {show} bind def -/slc {setlinecap} bind def -/slj {setlinejoin} bind def -/slw {setlinewidth} bind def -/srgb {setrgbcolor} bind def -/rot {rotate} bind def -/sc {scale} bind def -/sd {setdash} bind def -/ff {findfont} bind def -/sf {setfont} bind def -/scf {scalefont} bind def -/sw {stringwidth} bind def -/tr {translate} bind def -/tnt {dup dup currentrgbcolor - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} - bind def -/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul - 4 -2 roll mul srgb} bind def -/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def -/$F2psEnd {$F2psEnteredState restore end} def - -$F2psBegin -10 setmiterlimit -0 slj 0 slc - 0.04800 0.04800 sc -% -% Fig objects follow -% -% -% here starts figure with depth 60 -% Polyline -0 slj -0 slc -15.000 slw -n 3900 5700 m 3900 2700 l 4800 2700 l 4800 5700 l - cp gs col18 0.50 tnt ef gr gs col18 s gr -% here ends figure; -% -% here starts figure with depth 55 -% Polyline -0 slj -0 slc -15.000 slw -n 5100 6600 m 5100 1800 l 6300 1800 l 6300 6600 l - cp gs col7 1.00 shd ef gr gs col0 s gr -% here ends figure; -% -% here starts figure with depth 50 -% Polyline -0 slj -0 slc -45.000 slw -n 5625 1725 m - 5775 1875 l gs col0 s gr -% Polyline -n 5625 1875 m - 5775 1725 l gs col0 s gr -% Polyline -n 5625 6525 m - 5775 6675 l gs col0 s gr -% Polyline -n 5625 6675 m - 5775 6525 l gs col0 s gr -% Polyline -15.000 slw -n 2400 900 m 5775 900 l 5775 1275 l 2400 1275 l - cp gs col0 s gr -/Courier-Bold ff 300.00 scf sf -2550 1200 m -gs 1 -1 sc (LCW) col18 sh gr -/Courier-Bold ff 300.00 scf sf -3450 1200 m -gs 1 -1 sc (dL) col18 sh gr -/Courier-Bold ff 300.00 scf sf -5250 1200 m -gs 1 -1 sc (SP) col18 sh gr -/Courier-Bold ff 300.00 scf sf -4350 1200 m -gs 1 -1 sc (W) col18 sh gr -% Polyline - [90 45 15 45] 0 sd -n 5700 1800 m - 5700 6600 l gs col0 s gr [] 0 sd -% Polyline -7.500 slw -n 3225 2700 m - 3825 2700 l gs col0 s gr -% Polyline -n 5025 1800 m - 3225 1800 l gs col0 s gr -% Polyline -n 3825 5700 m - 3225 5700 l gs col0 s gr -% Polyline -n 5025 6600 m - 3225 6600 l gs col0 s gr -% Polyline -n 3900 5775 m - 3900 7575 l gs col0 s gr -% Polyline -n 4800 5775 m - 4800 7575 l gs col0 s gr -% Polyline -n 5100 6675 m 5100 6900 l 5400 7200 l - 5400 7575 l gs col0 s gr -% Polyline -gs clippath -3270 2564 m 3270 2715 l 3330 2715 l 3330 2564 l 3330 2564 l 3300 2684 l 3270 2564 l cp -3330 1936 m 3330 1785 l 3270 1785 l 3270 1936 l 3270 1936 l 3300 1816 l 3330 1936 l cp -eoclip -n 3300 1800 m - 3300 2700 l gs col0 s gr gr - -% arrowhead -n 3330 1936 m 3300 1816 l 3270 1936 l 3330 1936 l cp gs 0.00 setgray ef gr col0 s -% arrowhead -n 3270 2564 m 3300 2684 l 3330 2564 l 3270 2564 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -3270 6464 m 3270 6615 l 3330 6615 l 3330 6464 l 3330 6464 l 3300 6584 l 3270 6464 l cp -3330 5836 m 3330 5685 l 3270 5685 l 3270 5836 l 3270 5836 l 3300 5716 l 3330 5836 l cp -eoclip -n 3300 5700 m - 3300 6600 l gs col0 s gr gr - -% arrowhead -n 3330 5836 m 3300 5716 l 3270 5836 l 3330 5836 l cp gs 0.00 setgray ef gr col0 s -% arrowhead -n 3270 6464 m 3300 6584 l 3330 6464 l 3270 6464 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -4664 7530 m 4815 7530 l 4815 7470 l 4664 7470 l 4664 7470 l 4784 7500 l 4664 7530 l cp -4036 7470 m 3885 7470 l 3885 7530 l 4036 7530 l 4036 7530 l 3916 7500 l 4036 7470 l cp -eoclip -n 3900 7500 m - 4800 7500 l gs col0 s gr gr - -% arrowhead -n 4036 7470 m 3916 7500 l 4036 7530 l 4036 7470 l cp gs 0.00 setgray ef gr col0 s -% arrowhead -n 4664 7530 m 4784 7500 l 4664 7470 l 4664 7530 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -5264 7530 m 5415 7530 l 5415 7470 l 5264 7470 l 5264 7470 l 5384 7500 l 5264 7530 l cp -4936 7470 m 4785 7470 l 4785 7530 l 4936 7530 l 4936 7530 l 4816 7500 l 4936 7470 l cp -eoclip -n 4800 7500 m - 5400 7500 l gs col0 s gr gr - -% arrowhead -n 4936 7470 m 4816 7500 l 4936 7530 l 4936 7470 l cp gs 0.00 setgray ef gr col0 s -% arrowhead -n 5264 7530 m 5384 7500 l 5264 7470 l 5264 7530 l cp gs 0.00 setgray ef gr col0 s -% Polyline -n 2400 900 m 7200 900 l 7200 8100 l 2400 8100 l - cp gs col0 s gr -/Courier-Bold ff 200.00 scf sf -5100 7425 m -gs 1 -1 sc (SP) dup sw pop 2 div neg 0 rm col0 sh gr -/Courier-Bold ff 200.00 scf sf -4350 7425 m -gs 1 -1 sc (W) dup sw pop 2 div neg 0 rm col0 sh gr -/Courier-Bold ff 200.00 scf sf -3225 2250 m -gs 1 -1 sc 90.0 rot (dL) dup sw pop 2 div neg 0 rm col0 sh gr -/Courier-Bold ff 200.00 scf sf -3225 6150 m -gs 1 -1 sc 90.0 rot (dL) dup sw pop 2 div neg 0 rm col0 sh gr -% here ends figure; -$F2psEnd -rs -showpage -%%Trailer -%EOF diff --git a/documentation/RDS/images/RDS_VW-eps-converted-to.pdf b/documentation/RDS/images/RDS_VW-eps-converted-to.pdf deleted file mode 100644 index 7051bba606e90577cb46fdccb751c109258c7b4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5082 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 diff --git a/documentation/RDS/images/RDS_VW.eps b/documentation/RDS/images/RDS_VW.eps deleted file mode 100644 index 6761037f..00000000 --- a/documentation/RDS/images/RDS_VW.eps +++ /dev/null @@ -1,243 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: RDS_VW.fig -%%Creator: fig2dev Version 3.2 Patchlevel 5 -%%CreationDate: Mon Sep 15 18:24:04 2014 -%%For: jpc@lepka (Jean-Paul Chaput) -%%BoundingBox: 0 0 489 255 -%Magnification: 1.0000 -%%EndComments -/$F2psDict 200 dict def -$F2psDict begin -$F2psDict /mtrx matrix put -/col-1 {0 setgray} bind def -/col0 {0.000 0.000 0.000 srgb} bind def -/col1 {0.000 0.000 1.000 srgb} bind def -/col2 {0.000 1.000 0.000 srgb} bind def -/col3 {0.000 1.000 1.000 srgb} bind def -/col4 {1.000 0.000 0.000 srgb} bind def -/col5 {1.000 0.000 1.000 srgb} bind def -/col6 {1.000 1.000 0.000 srgb} bind def -/col7 {1.000 1.000 1.000 srgb} bind def -/col8 {0.000 0.000 0.560 srgb} bind def -/col9 {0.000 0.000 0.690 srgb} bind def -/col10 {0.000 0.000 0.820 srgb} bind def -/col11 {0.530 0.810 1.000 srgb} bind def -/col12 {0.000 0.560 0.000 srgb} bind def -/col13 {0.000 0.690 0.000 srgb} bind def -/col14 {0.000 0.820 0.000 srgb} bind def -/col15 {0.000 0.560 0.560 srgb} bind def -/col16 {0.000 0.690 0.690 srgb} bind def -/col17 {0.000 0.820 0.820 srgb} bind def -/col18 {0.560 0.000 0.000 srgb} bind def -/col19 {0.690 0.000 0.000 srgb} bind def -/col20 {0.820 0.000 0.000 srgb} bind def -/col21 {0.560 0.000 0.560 srgb} bind def -/col22 {0.690 0.000 0.690 srgb} bind def -/col23 {0.820 0.000 0.820 srgb} bind def -/col24 {0.500 0.190 0.000 srgb} bind def -/col25 {0.630 0.250 0.000 srgb} bind def -/col26 {0.750 0.380 0.000 srgb} bind def -/col27 {1.000 0.500 0.500 srgb} bind def -/col28 {1.000 0.630 0.630 srgb} bind def -/col29 {1.000 0.750 0.750 srgb} bind def -/col30 {1.000 0.880 0.880 srgb} bind def -/col31 {1.000 0.840 0.000 srgb} bind def - -end -save -newpath 0 255 moveto 0 0 lineto 489 0 lineto 489 255 lineto closepath clip newpath --106.7 306.7 translate -1 -1 scale - -/cp {closepath} bind def -/ef {eofill} bind def -/gr {grestore} bind def -/gs {gsave} bind def -/sa {save} bind def -/rs {restore} bind def -/l {lineto} bind def -/m {moveto} bind def -/rm {rmoveto} bind def -/n {newpath} bind def -/s {stroke} bind def -/sh {show} bind def -/slc {setlinecap} bind def -/slj {setlinejoin} bind def -/slw {setlinewidth} bind def -/srgb {setrgbcolor} bind def -/rot {rotate} bind def -/sc {scale} bind def -/sd {setdash} bind def -/ff {findfont} bind def -/sf {setfont} bind def -/scf {scalefont} bind def -/sw {stringwidth} bind def -/tr {translate} bind def -/tnt {dup dup currentrgbcolor - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} - bind def -/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul - 4 -2 roll mul srgb} bind def -/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def -/$F2psEnd {$F2psEnteredState restore end} def - -$F2psBegin -10 setmiterlimit -0 slj 0 slc - 0.06000 0.06000 sc -% -% Fig objects follow -% -% -% here starts figure with depth 60 -% Polyline -0 slj -0 slc -15.000 slw -n 2400 1800 m 8400 1800 l 8400 3600 l 2400 3600 l - cp gs col18 0.50 tnt ef gr gs col18 s gr -% here ends figure; -% -% here starts figure with depth 55 -% Polyline -0 slj -0 slc -15.000 slw -n 3000 2100 m 7800 2100 l 7800 3300 l 3000 3300 l - cp gs col7 1.00 shd ef gr gs col0 s gr -% here ends figure; -% -% here starts figure with depth 50 -% Polyline -0 slj -0 slc -15.000 slw -n 1800 900 m 5175 900 l 5175 1275 l 1800 1275 l - cp gs col0 s gr -/Courier-Bold ff 300.00 scf sf -1950 1200 m -gs 1 -1 sc (VW) col18 sh gr -/Courier-Bold ff 300.00 scf sf -2850 1200 m -gs 1 -1 sc (dL) col18 sh gr -/Courier-Bold ff 300.00 scf sf -3750 1200 m -gs 1 -1 sc (dW) col18 sh gr -/Courier-Bold ff 300.00 scf sf -4650 1200 m -gs 1 -1 sc (dX) col0 sh gr -% Polyline -7.500 slw -n 7875 2100 m - 9375 2100 l gs col0 s gr -% Polyline -n 8475 1800 m 8700 1800 l 9000 1500 l - 9375 1500 l gs col0 s gr -% Polyline -n 7875 3300 m - 9375 3300 l gs col0 s gr -% Polyline -n 8475 3600 m 8700 3600 l 9000 3900 l - 9375 3900 l gs col0 s gr -% Polyline -n 7800 3375 m - 7800 4575 l gs col0 s gr -% Polyline -n 8400 3675 m - 8400 4575 l gs col0 s gr -% Polyline -n 2400 3675 m - 2400 4575 l gs col0 s gr -% Polyline -n 3000 3375 m - 3000 4575 l gs col0 s gr -% Polyline -gs clippath -9270 1964 m 9270 2115 l 9330 2115 l 9330 1964 l 9330 1964 l 9300 2084 l 9270 1964 l cp -9330 1636 m 9330 1485 l 9270 1485 l 9270 1636 l 9270 1636 l 9300 1516 l 9330 1636 l cp -eoclip -n 9300 1500 m - 9300 2100 l gs col0 s gr gr - -% arrowhead -n 9330 1636 m 9300 1516 l 9270 1636 l 9330 1636 l cp gs 0.00 setgray ef gr col0 s -% arrowhead -n 9270 1964 m 9300 2084 l 9330 1964 l 9270 1964 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -9270 3764 m 9270 3915 l 9330 3915 l 9330 3764 l 9330 3764 l 9300 3884 l 9270 3764 l cp -9330 3436 m 9330 3285 l 9270 3285 l 9270 3436 l 9270 3436 l 9300 3316 l 9330 3436 l cp -eoclip -n 9300 3300 m - 9300 3900 l gs col0 s gr gr - -% arrowhead -n 9330 3436 m 9300 3316 l 9270 3436 l 9330 3436 l cp gs 0.00 setgray ef gr col0 s -% arrowhead -n 9270 3764 m 9300 3884 l 9330 3764 l 9270 3764 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -8264 4530 m 8415 4530 l 8415 4470 l 8264 4470 l 8264 4470 l 8384 4500 l 8264 4530 l cp -7936 4470 m 7785 4470 l 7785 4530 l 7936 4530 l 7936 4530 l 7816 4500 l 7936 4470 l cp -eoclip -n 7800 4500 m - 8400 4500 l gs col0 s gr gr - -% arrowhead -n 7936 4470 m 7816 4500 l 7936 4530 l 7936 4470 l cp gs 0.00 setgray ef gr col0 s -% arrowhead -n 8264 4530 m 8384 4500 l 8264 4470 l 8264 4530 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -2864 4530 m 3015 4530 l 3015 4470 l 2864 4470 l 2864 4470 l 2984 4500 l 2864 4530 l cp -2536 4470 m 2385 4470 l 2385 4530 l 2536 4530 l 2536 4530 l 2416 4500 l 2536 4470 l cp -eoclip -n 2400 4500 m - 3000 4500 l gs col0 s gr gr - -% arrowhead -n 2536 4470 m 2416 4500 l 2536 4530 l 2536 4470 l cp gs 0.00 setgray ef gr col0 s -% arrowhead -n 2864 4530 m 2984 4500 l 2864 4470 l 2864 4530 l cp gs 0.00 setgray ef gr col0 s -% Polyline -45.000 slw -n 2925 2625 m - 3075 2775 l gs col0 s gr -% Polyline -n 2925 2775 m - 3075 2625 l gs col0 s gr -% Polyline -n 7725 2625 m - 7875 2775 l gs col0 s gr -% Polyline -n 7725 2775 m - 7875 2625 l gs col0 s gr -% Polyline -15.000 slw - [90 45 15 45] 0 sd -n 3000 2700 m - 7800 2700 l gs col0 s gr [] 0 sd -% Polyline -7.500 slw -n 1800 900 m 9900 900 l 9900 5100 l 1800 5100 l - cp gs col0 s gr -/Courier-Bold ff 200.00 scf sf -2700 4425 m -gs 1 -1 sc (dL) dup sw pop 2 div neg 0 rm col0 sh gr -/Courier-Bold ff 200.00 scf sf -8100 4425 m -gs 1 -1 sc (dL) dup sw pop 2 div neg 0 rm col0 sh gr -/Courier-Bold ff 200.00 scf sf -9225 3600 m -gs 1 -1 sc 90.0 rot (dW/2) dup sw pop 2 div neg 0 rm col0 sh gr -/Courier-Bold ff 200.00 scf sf -9225 1800 m -gs 1 -1 sc 90.0 rot (dW/2) dup sw pop 2 div neg 0 rm col0 sh gr -% here ends figure; -$F2psEnd -rs -showpage -%%Trailer -%EOF diff --git a/documentation/RDS/images/SegmentOrientation.eps b/documentation/RDS/images/SegmentOrientation.eps deleted file mode 100644 index 17802f3b..00000000 --- a/documentation/RDS/images/SegmentOrientation.eps +++ /dev/null @@ -1,283 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: SegmentOrientation.fig -%%Creator: fig2dev Version 3.2 Patchlevel 5 -%%CreationDate: Fri Sep 26 17:55:45 2014 -%%For: jpc@lepka (Jean-Paul Chaput) -%%BoundingBox: 0 0 507 471 -%Magnification: 1.0000 -%%EndComments -/$F2psDict 200 dict def -$F2psDict begin -$F2psDict /mtrx matrix put -/col-1 {0 setgray} bind def -/col0 {0.000 0.000 0.000 srgb} bind def -/col1 {0.000 0.000 1.000 srgb} bind def -/col2 {0.000 1.000 0.000 srgb} bind def -/col3 {0.000 1.000 1.000 srgb} bind def -/col4 {1.000 0.000 0.000 srgb} bind def -/col5 {1.000 0.000 1.000 srgb} bind def -/col6 {1.000 1.000 0.000 srgb} bind def -/col7 {1.000 1.000 1.000 srgb} bind def -/col8 {0.000 0.000 0.560 srgb} bind def -/col9 {0.000 0.000 0.690 srgb} bind def -/col10 {0.000 0.000 0.820 srgb} bind def -/col11 {0.530 0.810 1.000 srgb} bind def -/col12 {0.000 0.560 0.000 srgb} bind def -/col13 {0.000 0.690 0.000 srgb} bind def -/col14 {0.000 0.820 0.000 srgb} bind def -/col15 {0.000 0.560 0.560 srgb} bind def -/col16 {0.000 0.690 0.690 srgb} bind def -/col17 {0.000 0.820 0.820 srgb} bind def -/col18 {0.560 0.000 0.000 srgb} bind def -/col19 {0.690 0.000 0.000 srgb} bind def -/col20 {0.820 0.000 0.000 srgb} bind def -/col21 {0.560 0.000 0.560 srgb} bind def -/col22 {0.690 0.000 0.690 srgb} bind def -/col23 {0.820 0.000 0.820 srgb} bind def -/col24 {0.500 0.190 0.000 srgb} bind def -/col25 {0.630 0.250 0.000 srgb} bind def -/col26 {0.750 0.380 0.000 srgb} bind def -/col27 {1.000 0.500 0.500 srgb} bind def -/col28 {1.000 0.630 0.630 srgb} bind def -/col29 {1.000 0.750 0.750 srgb} bind def -/col30 {1.000 0.880 0.880 srgb} bind def -/col31 {1.000 0.840 0.000 srgb} bind def - -end -save -newpath 0 471 moveto 0 0 lineto 507 0 lineto 507 471 lineto closepath clip newpath --88.7 595.3 translate -1 -1 scale - -/cp {closepath} bind def -/ef {eofill} bind def -/gr {grestore} bind def -/gs {gsave} bind def -/sa {save} bind def -/rs {restore} bind def -/l {lineto} bind def -/m {moveto} bind def -/rm {rmoveto} bind def -/n {newpath} bind def -/s {stroke} bind def -/sh {show} bind def -/slc {setlinecap} bind def -/slj {setlinejoin} bind def -/slw {setlinewidth} bind def -/srgb {setrgbcolor} bind def -/rot {rotate} bind def -/sc {scale} bind def -/sd {setdash} bind def -/ff {findfont} bind def -/sf {setfont} bind def -/scf {scalefont} bind def -/sw {stringwidth} bind def -/tr {translate} bind def -/tnt {dup dup currentrgbcolor - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} - bind def -/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul - 4 -2 roll mul srgb} bind def - /DrawEllipse { - /endangle exch def - /startangle exch def - /yrad exch def - /xrad exch def - /y exch def - /x exch def - /savematrix mtrx currentmatrix def - x y tr xrad yrad sc 0 0 1 startangle endangle arc - closepath - savematrix setmatrix - } def - -/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def -/$F2psEnd {$F2psEnteredState restore end} def - -$F2psBegin -10 setmiterlimit -0 slj 0 slc - 0.06000 0.06000 sc -% -% Fig objects follow -% -% -% here starts figure with depth 60 -% Ellipse -15.000 slw -n 2775 4200 450 450 0 360 DrawEllipse gs col18 0.50 tnt ef gr gs col18 s gr - -% Polyline -0 slj -0 slc -45.000 slw -n 3300 2700 m 3900 2700 l 3900 5700 l 3300 5700 l - cp gs col0 s gr -% Polyline -7.500 slw - [60 30 15 30] 0 sd -n 3600 2700 m - 3600 5700 l gs col0 s gr [] 0 sd -% Polyline -45.000 slw -n 3450 5550 m - 3750 5850 l gs col0 s gr -% Polyline -n 3450 5850 m - 3750 5550 l gs col0 s gr -% Polyline -n 3600 2700 m - 3450 3000 l gs col0 s gr -% Polyline -n 3600 2700 m - 3750 3000 l gs col0 s gr -% Ellipse -15.000 slw -n 4425 4200 450 450 0 360 DrawEllipse gs col12 0.50 tnt ef gr gs col12 s gr - -% Polyline -45.000 slw -n 7500 5700 m 8100 5700 l 8100 2700 l 7500 2700 l - cp gs col0 s gr -% Polyline -7.500 slw - [60 30 15 30] 0 sd -n 7800 5700 m - 7800 2700 l gs col0 s gr [] 0 sd -% Polyline -45.000 slw -n 7650 2850 m - 7950 2550 l gs col0 s gr -% Polyline -n 7650 2550 m - 7950 2850 l gs col0 s gr -% Polyline -n 7800 5700 m - 7650 5400 l gs col0 s gr -% Polyline -n 7800 5700 m - 7950 5400 l gs col0 s gr -% Ellipse -15.000 slw -n 6975 4200 450 450 0 360 DrawEllipse gs col12 0.50 tnt ef gr gs col12 s gr - -% Ellipse -n 8625 4200 450 450 0 360 DrawEllipse gs col18 0.50 tnt ef gr gs col18 s gr - -% Polyline -45.000 slw -n 6300 8400 m 6300 7800 l 9300 7800 l 9300 8400 l - cp gs col0 s gr -% Polyline -7.500 slw - [60 30 15 30] 0 sd -n 6300 8100 m - 9300 8100 l gs col0 s gr [] 0 sd -% Polyline -45.000 slw -n 9150 8250 m - 9450 7950 l gs col0 s gr -% Polyline -n 9450 8250 m - 9150 7950 l gs col0 s gr -% Polyline -n 6300 8100 m - 6600 8250 l gs col0 s gr -% Polyline -n 6300 8100 m - 6600 7950 l gs col0 s gr -% Ellipse -15.000 slw -n 7800 8925 450 450 0 360 DrawEllipse gs col18 0.50 tnt ef gr gs col18 s gr - -% Ellipse -n 7800 7275 450 450 0 360 DrawEllipse gs col12 0.50 tnt ef gr gs col12 s gr - -% Polyline -45.000 slw -n 5100 7800 m 5100 8400 l 2100 8400 l 2100 7800 l - cp gs col0 s gr -% Polyline -7.500 slw - [60 30 15 30] 0 sd -n 5100 8100 m - 2100 8100 l gs col0 s gr [] 0 sd -% Polyline -45.000 slw -n 2250 7950 m - 1950 8250 l gs col0 s gr -% Polyline -n 1950 7950 m - 2250 8250 l gs col0 s gr -% Polyline -n 5100 8100 m - 4800 7950 l gs col0 s gr -% Polyline -n 5100 8100 m - 4800 8250 l gs col0 s gr -% Ellipse -15.000 slw -n 3525 7275 450 450 0 360 DrawEllipse gs col18 0.50 tnt ef gr gs col18 s gr - -% Ellipse -n 3525 8925 450 450 0 360 DrawEllipse gs col12 0.50 tnt ef gr gs col12 s gr - -% here ends figure; -% -% here starts figure with depth 50 -/Courier-Bold ff 200.00 scf sf -2775 4275 m -gs 1 -1 sc (left) dup sw pop 2 div neg 0 rm col18 sh gr -/Courier-Bold ff 200.00 scf sf -4425 4275 m -gs 1 -1 sc (right) dup sw pop 2 div neg 0 rm col12 sh gr -/Courier-Bold ff 200.00 scf sf -6975 4275 m -gs 1 -1 sc (right) dup sw pop 2 div neg 0 rm col12 sh gr -/Courier-Bold ff 200.00 scf sf -8625 4275 m -gs 1 -1 sc (left) dup sw pop 2 div neg 0 rm col18 sh gr -/Courier-Bold ff 200.00 scf sf -7800 9000 m -gs 1 -1 sc (left) dup sw pop 2 div neg 0 rm col18 sh gr -/Courier-Bold ff 200.00 scf sf -7800 7350 m -gs 1 -1 sc (right) dup sw pop 2 div neg 0 rm col12 sh gr -/Courier-Bold ff 200.00 scf sf -3525 7350 m -gs 1 -1 sc (left) dup sw pop 2 div neg 0 rm col18 sh gr -/Courier-Bold ff 200.00 scf sf -3525 9000 m -gs 1 -1 sc (right) dup sw pop 2 div neg 0 rm col12 sh gr -% Polyline -0 slj -0 slc -15.000 slw -n 5700 2100 m - 5700 9900 l gs col0 s gr -% Polyline -n 1500 6300 m - 9900 6300 l gs col0 s gr -% Polyline -n 1500 2100 m 9900 2100 l 9900 9900 l 1500 9900 l - cp gs col0 s gr -/Courier-Bold ff 266.67 scf sf -1650 2400 m -gs 1 -1 sc (Up) col0 sh gr -/Courier-Bold ff 266.67 scf sf -1650 6600 m -gs 1 -1 sc (Right) col0 sh gr -/Courier-Bold ff 266.67 scf sf -5850 6600 m -gs 1 -1 sc (Left) col0 sh gr -/Courier-Bold ff 266.67 scf sf -5850 2400 m -gs 1 -1 sc (Down) col0 sh gr -% here ends figure; -$F2psEnd -rs -showpage -%%Trailer -%EOF diff --git a/documentation/RDS/images/bigvia-1.eps b/documentation/RDS/images/bigvia-1.eps deleted file mode 100644 index 0e990719..00000000 --- a/documentation/RDS/images/bigvia-1.eps +++ /dev/null @@ -1,259 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: bigvia-1.fig -%%Creator: fig2dev Version 3.2 Patchlevel 5 -%%CreationDate: Fri Sep 26 22:43:59 2014 -%%For: jpc@lepka (Jean-Paul Chaput) -%%BoundingBox: 0 0 275 269 -%Magnification: 0.7000 -%%EndComments -/$F2psDict 200 dict def -$F2psDict begin -$F2psDict /mtrx matrix put -/col-1 {0 setgray} bind def -/col0 {0.000 0.000 0.000 srgb} bind def -/col1 {0.000 0.000 1.000 srgb} bind def -/col2 {0.000 1.000 0.000 srgb} bind def -/col3 {0.000 1.000 1.000 srgb} bind def -/col4 {1.000 0.000 0.000 srgb} bind def -/col5 {1.000 0.000 1.000 srgb} bind def -/col6 {1.000 1.000 0.000 srgb} bind def -/col7 {1.000 1.000 1.000 srgb} bind def -/col8 {0.000 0.000 0.560 srgb} bind def -/col9 {0.000 0.000 0.690 srgb} bind def -/col10 {0.000 0.000 0.820 srgb} bind def -/col11 {0.530 0.810 1.000 srgb} bind def -/col12 {0.000 0.560 0.000 srgb} bind def -/col13 {0.000 0.690 0.000 srgb} bind def -/col14 {0.000 0.820 0.000 srgb} bind def -/col15 {0.000 0.560 0.560 srgb} bind def -/col16 {0.000 0.690 0.690 srgb} bind def -/col17 {0.000 0.820 0.820 srgb} bind def -/col18 {0.560 0.000 0.000 srgb} bind def -/col19 {0.690 0.000 0.000 srgb} bind def -/col20 {0.820 0.000 0.000 srgb} bind def -/col21 {0.560 0.000 0.560 srgb} bind def -/col22 {0.690 0.000 0.690 srgb} bind def -/col23 {0.820 0.000 0.820 srgb} bind def -/col24 {0.500 0.190 0.000 srgb} bind def -/col25 {0.630 0.250 0.000 srgb} bind def -/col26 {0.750 0.380 0.000 srgb} bind def -/col27 {1.000 0.500 0.500 srgb} bind def -/col28 {1.000 0.630 0.630 srgb} bind def -/col29 {1.000 0.750 0.750 srgb} bind def -/col30 {1.000 0.880 0.880 srgb} bind def -/col31 {1.000 0.840 0.000 srgb} bind def - -end -save -newpath 0 269 moveto 0 0 lineto 275 0 lineto 275 269 lineto closepath clip newpath --3.2 331.3 translate -1 -1 scale - -/cp {closepath} bind def -/ef {eofill} bind def -/gr {grestore} bind def -/gs {gsave} bind def -/sa {save} bind def -/rs {restore} bind def -/l {lineto} bind def -/m {moveto} bind def -/rm {rmoveto} bind def -/n {newpath} bind def -/s {stroke} bind def -/sh {show} bind def -/slc {setlinecap} bind def -/slj {setlinejoin} bind def -/slw {setlinewidth} bind def -/srgb {setrgbcolor} bind def -/rot {rotate} bind def -/sc {scale} bind def -/sd {setdash} bind def -/ff {findfont} bind def -/sf {setfont} bind def -/scf {scalefont} bind def -/sw {stringwidth} bind def -/tr {translate} bind def -/tnt {dup dup currentrgbcolor - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} - bind def -/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul - 4 -2 roll mul srgb} bind def -/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def -/$F2psEnd {$F2psEnteredState restore end} def - -$F2psBegin -10 setmiterlimit -0 slj 0 slc - 0.04200 0.04200 sc -% -% Fig objects follow -% -% -% here starts figure with depth 60 -% Polyline -0 slj -0 slc -0.000 slw -n 900 6300 m 1500 6300 l 1500 6900 l 900 6900 l - cp gs col7 0.80 shd ef gr -% Polyline -n 2400 6300 m 3000 6300 l 3000 6900 l 2400 6900 l - cp gs col7 0.80 shd ef gr -% Polyline -n 3900 6300 m 4500 6300 l 4500 6900 l 3900 6900 l - cp gs col7 0.80 shd ef gr -% Polyline -n 5400 6300 m 6000 6300 l 6000 6900 l 5400 6900 l - cp gs col7 0.80 shd ef gr -% Polyline -n 900 4800 m 1500 4800 l 1500 5400 l 900 5400 l - cp gs col7 0.80 shd ef gr -% Polyline -n 900 3300 m 1500 3300 l 1500 3900 l 900 3900 l - cp gs col7 0.80 shd ef gr -% Polyline -n 900 1800 m 1500 1800 l 1500 2400 l 900 2400 l - cp gs col7 0.80 shd ef gr -% Polyline -n 2400 4800 m 3000 4800 l 3000 5400 l 2400 5400 l - cp gs col7 0.00 shd ef gr -% Polyline -n 2400 3300 m 3000 3300 l 3000 3900 l 2400 3900 l - cp gs col7 0.00 shd ef gr -% Polyline -n 3900 3300 m 4500 3300 l 4500 3900 l 3900 3900 l - cp gs col7 0.00 shd ef gr -% Polyline -n 3900 4800 m 4500 4800 l 4500 5400 l 3900 5400 l - cp gs col7 0.00 shd ef gr -% Polyline -n 2400 1800 m 3000 1800 l 3000 2400 l 2400 2400 l - cp gs col7 0.80 shd ef gr -% Polyline -n 3900 1800 m 4500 1800 l 4500 2400 l 3900 2400 l - cp gs col7 0.80 shd ef gr -% Polyline -n 5400 1800 m 6000 1800 l 6000 2400 l 5400 2400 l - cp gs col7 0.80 shd ef gr -% Polyline -n 5400 3300 m 6000 3300 l 6000 3900 l 5400 3900 l - cp gs col7 0.80 shd ef gr -% Polyline -n 5400 4800 m 6000 4800 l 6000 5400 l 5400 5400 l - cp gs col7 0.80 shd ef gr -% Polyline -7.500 slw -n 5400 6900 m - 5400 7875 l gs col7 0.00 shd ef gr gs col0 s gr -% Polyline -n 6000 6900 m 6000 7200 l 6300 7500 l - 6300 7875 l gs col0 s gr -% Polyline -n 1500 5775 m - 1500 7875 l gs col0 s gr -% Polyline -n 1425 5700 m - 225 5700 l gs col0 s gr -% Polyline -n 1425 2700 m - 225 2700 l gs col0 s gr -% Polyline -gs clippath -270 5564 m 270 5715 l 330 5715 l 330 5564 l 330 5564 l 300 5684 l 270 5564 l cp -330 2836 m 330 2685 l 270 2685 l 270 2836 l 270 2836 l 300 2716 l 330 2836 l cp -eoclip -n 300 2700 m - 300 5700 l gs col0 s gr gr - -% arrowhead -n 330 2836 m 300 2716 l 270 2836 l 330 2836 l cp gs 0.00 setgray ef gr col0 s -% arrowhead -n 270 5564 m 300 5684 l 330 5564 l 270 5564 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -4364 7830 m 4515 7830 l 4515 7770 l 4364 7770 l 4364 7770 l 4484 7800 l 4364 7830 l cp -1636 7770 m 1485 7770 l 1485 7830 l 1636 7830 l 1636 7830 l 1516 7800 l 1636 7770 l cp -eoclip -n 1500 7800 m - 4500 7800 l gs col0 s gr gr - -% arrowhead -n 1636 7770 m 1516 7800 l 1636 7830 l 1636 7770 l cp gs 0.00 setgray ef gr col0 s -% arrowhead -n 4364 7830 m 4484 7800 l 4364 7770 l 4364 7830 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -5264 7830 m 5415 7830 l 5415 7770 l 5264 7770 l 5264 7770 l 5384 7800 l 5264 7830 l cp -4636 7770 m 4485 7770 l 4485 7830 l 4636 7830 l 4636 7830 l 4516 7800 l 4636 7770 l cp -eoclip -n 4500 7800 m - 5400 7800 l gs col0 s gr gr - -% arrowhead -n 4636 7770 m 4516 7800 l 4636 7830 l 4636 7770 l cp gs 0.00 setgray ef gr col0 s -% arrowhead -n 5264 7830 m 5384 7800 l 5264 7770 l 5264 7830 l cp gs 0.00 setgray ef gr col0 s -% Polyline -gs clippath -6164 7830 m 6315 7830 l 6315 7770 l 6164 7770 l 6164 7770 l 6284 7800 l 6164 7830 l cp -5536 7770 m 5385 7770 l 5385 7830 l 5536 7830 l 5536 7830 l 5416 7800 l 5536 7770 l cp -eoclip -n 5400 7800 m - 6300 7800 l gs col0 s gr gr - -% arrowhead -n 5536 7770 m 5416 7800 l 5536 7830 l 5536 7770 l cp gs 0.00 setgray ef gr col0 s -% arrowhead -n 6164 7830 m 6284 7800 l 6164 7770 l 6164 7830 l cp gs 0.00 setgray ef gr col0 s -% Polyline -n 4500 5775 m - 4500 7875 l gs col0 s gr -/Courier-Bold ff 200.00 scf sf -3000 7725 m -gs 1 -1 sc (width) dup sw pop 2 div neg 0 rm col0 sh gr -/Courier-Bold ff 200.00 scf sf -4950 7725 m -gs 1 -1 sc (step) dup sw pop 2 div neg 0 rm col0 sh gr -/Courier-Bold ff 200.00 scf sf -5850 7725 m -gs 1 -1 sc (side) dup sw pop 2 div neg 0 rm col0 sh gr -/Courier-Bold ff 200.00 scf sf -225 4200 m -gs 1 -1 sc 90.0 rot (height) dup sw pop 2 div neg 0 rm col0 sh gr -% here ends figure; -% -% here starts figure with depth 50 -% Polyline -0 slj -0 slc -7.500 slw -gs clippath -6343 6960 m 6615 6960 l 6615 6840 l 6343 6840 l 6343 6840 l 6583 6900 l 6343 6960 l cp -eoclip -n 600 6900 m - 6600 6900 l gs col0 s gr gr - -% arrowhead -n 6343 6960 m 6583 6900 l 6343 6840 l col0 s -% Polyline -gs clippath -960 1757 m 960 1485 l 840 1485 l 840 1757 l 840 1757 l 900 1517 l 960 1757 l cp -eoclip -n 900 7200 m - 900 1500 l gs col0 s gr gr - -% arrowhead -n 960 1757 m 900 1517 l 840 1757 l col0 s -% Polyline -45.000 slw - [150 75 15 75] 0 sd -n 1500 2700 m 4500 2700 l 4500 5700 l 1500 5700 l - cp gs col0 s gr [] 0 sd -% here ends figure; -$F2psEnd -rs -showpage -%%Trailer -%EOF diff --git a/documentation/RDS/images/bigvia-2.eps b/documentation/RDS/images/bigvia-2.eps deleted file mode 100644 index 9073b7be..00000000 --- a/documentation/RDS/images/bigvia-2.eps +++ /dev/null @@ -1,184 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: bigvia-2.fig -%%Creator: fig2dev Version 3.2 Patchlevel 5 -%%CreationDate: Fri Sep 26 22:28:01 2014 -%%For: jpc@lepka (Jean-Paul Chaput) -%%BoundingBox: 0 0 254 254 -%Magnification: 0.7000 -%%EndComments -/$F2psDict 200 dict def -$F2psDict begin -$F2psDict /mtrx matrix put -/col-1 {0 setgray} bind def -/col0 {0.000 0.000 0.000 srgb} bind def -/col1 {0.000 0.000 1.000 srgb} bind def -/col2 {0.000 1.000 0.000 srgb} bind def -/col3 {0.000 1.000 1.000 srgb} bind def -/col4 {1.000 0.000 0.000 srgb} bind def -/col5 {1.000 0.000 1.000 srgb} bind def -/col6 {1.000 1.000 0.000 srgb} bind def -/col7 {1.000 1.000 1.000 srgb} bind def -/col8 {0.000 0.000 0.560 srgb} bind def -/col9 {0.000 0.000 0.690 srgb} bind def -/col10 {0.000 0.000 0.820 srgb} bind def -/col11 {0.530 0.810 1.000 srgb} bind def -/col12 {0.000 0.560 0.000 srgb} bind def -/col13 {0.000 0.690 0.000 srgb} bind def -/col14 {0.000 0.820 0.000 srgb} bind def -/col15 {0.000 0.560 0.560 srgb} bind def -/col16 {0.000 0.690 0.690 srgb} bind def -/col17 {0.000 0.820 0.820 srgb} bind def -/col18 {0.560 0.000 0.000 srgb} bind def -/col19 {0.690 0.000 0.000 srgb} bind def -/col20 {0.820 0.000 0.000 srgb} bind def -/col21 {0.560 0.000 0.560 srgb} bind def -/col22 {0.690 0.000 0.690 srgb} bind def -/col23 {0.820 0.000 0.820 srgb} bind def -/col24 {0.500 0.190 0.000 srgb} bind def -/col25 {0.630 0.250 0.000 srgb} bind def -/col26 {0.750 0.380 0.000 srgb} bind def -/col27 {1.000 0.500 0.500 srgb} bind def -/col28 {1.000 0.630 0.630 srgb} bind def -/col29 {1.000 0.750 0.750 srgb} bind def -/col30 {1.000 0.880 0.880 srgb} bind def -/col31 {1.000 0.840 0.000 srgb} bind def - -end -save -newpath 0 254 moveto 0 0 lineto 254 0 lineto 254 254 lineto closepath clip newpath --24.7 302.9 translate -1 -1 scale - -/cp {closepath} bind def -/ef {eofill} bind def -/gr {grestore} bind def -/gs {gsave} bind def -/sa {save} bind def -/rs {restore} bind def -/l {lineto} bind def -/m {moveto} bind def -/rm {rmoveto} bind def -/n {newpath} bind def -/s {stroke} bind def -/sh {show} bind def -/slc {setlinecap} bind def -/slj {setlinejoin} bind def -/slw {setlinewidth} bind def -/srgb {setrgbcolor} bind def -/rot {rotate} bind def -/sc {scale} bind def -/sd {setdash} bind def -/ff {findfont} bind def -/sf {setfont} bind def -/scf {scalefont} bind def -/sw {stringwidth} bind def -/tr {translate} bind def -/tnt {dup dup currentrgbcolor - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add - 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} - bind def -/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul - 4 -2 roll mul srgb} bind def -/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def -/$F2psEnd {$F2psEnteredState restore end} def - -$F2psBegin -10 setmiterlimit -0 slj 0 slc - 0.04200 0.04200 sc -% -% Fig objects follow -% -% -% here starts figure with depth 60 -% Polyline -0 slj -0 slc -0.000 slw -n 900 6300 m 1500 6300 l 1500 6900 l 900 6900 l - cp gs col7 0.80 shd ef gr -% Polyline -n 2400 6300 m 3000 6300 l 3000 6900 l 2400 6900 l - cp gs col7 0.80 shd ef gr -% Polyline -n 3900 6300 m 4500 6300 l 4500 6900 l 3900 6900 l - cp gs col7 0.80 shd ef gr -% Polyline -n 5400 6300 m 6000 6300 l 6000 6900 l 5400 6900 l - cp gs col7 0.80 shd ef gr -% Polyline -n 900 4800 m 1500 4800 l 1500 5400 l 900 5400 l - cp gs col7 0.80 shd ef gr -% Polyline -n 900 3300 m 1500 3300 l 1500 3900 l 900 3900 l - cp gs col7 0.80 shd ef gr -% Polyline -n 900 1800 m 1500 1800 l 1500 2400 l 900 2400 l - cp gs col7 0.80 shd ef gr -% Polyline -n 2400 4800 m 3000 4800 l 3000 5400 l 2400 5400 l - cp gs col7 0.00 shd ef gr -% Polyline -n 2400 3300 m 3000 3300 l 3000 3900 l 2400 3900 l - cp gs col7 0.00 shd ef gr -% Polyline -n 3900 3300 m 4500 3300 l 4500 3900 l 3900 3900 l - cp gs col7 0.00 shd ef gr -% Polyline -n 3900 4800 m 4500 4800 l 4500 5400 l 3900 5400 l - cp gs col7 0.00 shd ef gr -% Polyline -n 2400 1800 m 3000 1800 l 3000 2400 l 2400 2400 l - cp gs col7 0.80 shd ef gr -% Polyline -n 5400 4800 m 6000 4800 l 6000 5400 l 5400 5400 l - cp gs col7 0.80 shd ef gr -% Polyline -n 3900 1800 m 4500 1800 l 4500 2400 l 3900 2400 l - cp gs col7 0.00 shd ef gr -% Polyline -n 5400 1800 m 6000 1800 l 6000 2400 l 5400 2400 l - cp gs col7 0.00 shd ef gr -% Polyline -n 5400 3300 m 6000 3300 l 6000 3900 l 5400 3900 l - cp gs col7 0.00 shd ef gr -% here ends figure; -% -% here starts figure with depth 50 -% Polyline -0 slj -0 slc -7.500 slw -gs clippath -6343 6960 m 6615 6960 l 6615 6840 l 6343 6840 l 6343 6840 l 6583 6900 l 6343 6960 l cp -eoclip -n 600 6900 m - 6600 6900 l gs col0 s gr gr - -% arrowhead -n 6343 6960 m 6583 6900 l 6343 6840 l col0 s -% Polyline -gs clippath -960 1457 m 960 1185 l 840 1185 l 840 1457 l 840 1457 l 900 1217 l 960 1457 l cp -eoclip -n 900 7200 m - 900 1200 l gs col0 s gr gr - -% arrowhead -n 960 1457 m 900 1217 l 840 1457 l col0 s -% Polyline -45.000 slw - [150 75 15 75] 0 sd -n 1500 2700 m 4500 2700 l 4500 5700 l 1500 5700 l - cp gs col0 s gr [] 0 sd -% Polyline - [150 75 15 75] 0 sd -n 3600 1500 m 6300 1500 l 6300 4200 l 3600 4200 l - cp gs col0 s gr [] 0 sd -% here ends figure; -$F2psEnd -rs -showpage -%%Trailer -%EOF diff --git a/documentation/RDS/images/clipboard-eps-converted-to.pdf b/documentation/RDS/images/clipboard-eps-converted-to.pdf deleted file mode 100644 index 1264080377eb1b94f2199de3429024301950909f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4504 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 diff --git a/documentation/RDS/index.rst b/documentation/RDS/index.rst new file mode 100644 index 00000000..757d647e --- /dev/null +++ b/documentation/RDS/index.rst @@ -0,0 +1,26 @@ +.. -*- mode: rst; explicit-buffer-name: "index.rst" -*- + +.. include:: ../etc/definitions.rst + + +:Date: 26, september 2014 +:Authors: Jean-Paul Chaput +:Contact: +:Version: 0.2 + + +**Disclaimer:** This document is still far from complete. + + +========================================= +Symbolic to Real Conversion in Alliance +========================================= + +Printable version of this document `RDS.pdf <../../../pdf/main/RDS.pdf>`_. + + +.. toctree:: + :maxdepth: 2 + + RDSpage.rst + diff --git a/documentation/RDS/pdfHeader.rst b/documentation/RDS/pdfHeader.rst new file mode 100644 index 00000000..4cce0e35 --- /dev/null +++ b/documentation/RDS/pdfHeader.rst @@ -0,0 +1,27 @@ +.. -*- mode: rst; explicit-buffer-name: "pdfHeader.rst" -*- + +.. include:: ../etc/definitions.rst + + +:Date: 26, september 2014 +:Authors: Jean-Paul Chaput +:Contact: +:Version: 0.2 + +|medskip| + +**Disclaimer:** This document is still far from complete. + +|medskip| + + +========================================= +Symbolic To Real Conversion in Alliance +========================================= + +|pagestylefancy| + + +.. contents:: + +|newpage| diff --git a/documentation/RDS/socstyle.tex b/documentation/RDS/socstyle.tex deleted file mode 100644 index af9f073e..00000000 --- a/documentation/RDS/socstyle.tex +++ /dev/null @@ -1,86 +0,0 @@ - - \usepackage[default,osfigures,scale=0.95]{opensans} - \usepackage{xspace} - \usepackage{fancyhdr} - \usepackage{graphicx} - \usepackage{enumitem} - \usepackage[sf,bf]{titlesec} - \usepackage{titletoc} - \usepackage[paper=a4paper,headheight=30pt,tmargin=1.5in,bmargin=1in]{geometry} -%\usepackage{layouts} - - \renewlist{itemize}{itemize}{9} - \setlist[itemize]{label=\textbullet} - -% The LaTeX Companion -- p. 204. -% Miniature display of the page layout. -%\newcommand{\showpage}{% -% \setlayoutscale{0.65}\setlabelfont{\tiny}% -% \printheadingsfalse\printparametersfalse% -% \currentpage\pagedesign% -%} - - \titlecontents{section}[0pc] - {\sffamily\bfseries} % above code. - {\contentslabel{1pc}} % numbered entry format. - {} % numberless entry format. - {\titlerule*[8pt]{.}\textsc{\textbf{{\contentspage}}}} % page format. - \titlecontents{subsection}[0pc] - {\sffamily} % above code. - {\contentslabel{2pc}} % numbered entry format. - {} % numberless entry format. - {\titlerule*[8pt]{.}\textsc{\textbf{{\contentspage}}}} % page format. - \titlecontents{subsubsection}[1pc] - {\sffamily} % above code. - {\contentslabel{2pc}} % numbered entry format. - {} % numberless entry format. - {\titlerule*[8pt]{.}\textsc{\textbf{{\contentspage}}}} % page format. - - \newcommand{\key}[1]{\raisebox{-0.5\baselineskip}{\rule{0pt}{1.5\baselineskip}}\fbox{\textsf{#1}}} - - \newcommand{\DUroleul}[1]{\underline{#1}\xspace} - \newcommand{\DUrolesc}[1]{\textsc{#1}\xspace} - \newcommand{\DUrolecb}[1]{\textbf{\texttt{#1}}\xspace} - \newcommand{\DUrolefboxtt}[1]{\fbox{\texttt{#1}}\xspace} - - \newcommand{\DUtitlenote}[1]{\noindent\textbf{#1}\smallskip} - - \newcommand{\DUadmonitionnote}[1]{% - \begin{center} - \sffamily - \begin{array}[t]{m{1cm}!{\vrule width 1pt}m{.90\textwidth}} - \raisebox{0.0cm}{\includegraphics[scale=0.5]{./images/clipboard.eps}} & - \begin{minipage}[t]{.85\textwidth} #1 - \end{minipage} \\ - \end{array} - \end{center} - } - - \newcommand{\DUtitleerror}[1]{\noindent\textbf{\color{red}#1}\smallskip} - - \newcommand{\DUadmonitionerror}[1]{% - \begin{center} - \sffamily - \begin{array}[t]{m{1cm}!{\vrule width 1pt}m{.90\textwidth}} - \raisebox{0.0cm}{\includegraphics[scale=0.5]{./images/i-core.eps}} & - \begin{minipage}[t]{.85\textwidth} #1 - \end{minipage} \\ - \end{array} - \end{center} - } - - \newcommand{\UPMC} {\textsc{upmc}\xspace} - \newcommand{\LIP} {\textsc{lip6}\xspace} - \newcommand{\SoC} {\textsc{S}o\textsc{C}\xspace} - - \renewcommand{\headrulewidth}{0.2mm} - \renewcommand{\footrulewidth}{0.2mm} - \renewcommand{\sectionmark}[1]{\markboth{\thesection\ #1}{\thesection\ #1}} - \renewcommand{\subsectionmark}[1]{} - \lhead[]{\textsc{SoC} Documentation} - \rhead[]{September 2014} - \lfoot[]{\UPMC/\LIP/\SoC} - \rfoot[]{\thepage} - \cfoot[]{} - - \pagestyle{fancy} diff --git a/documentation/Stratus/Stratus.rst b/documentation/Stratus/Stratus.rst new file mode 100644 index 00000000..f61b2dac --- /dev/null +++ b/documentation/Stratus/Stratus.rst @@ -0,0 +1,11 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +=================== +Stratus Reference +=================== + +The Stratus Language reference is generated by LaTeX2HTML_ and is +available here: `Stratus `_ diff --git a/documentation/Unicorn/Unicorn.rst b/documentation/Unicorn/Unicorn.rst new file mode 100644 index 00000000..c972e5f0 --- /dev/null +++ b/documentation/Unicorn/Unicorn.rst @@ -0,0 +1,11 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +=================== +Unicorn Reference +=================== + +The Unicorn C++ API reference is generated by Doxygen_ and is +available here: `Unicorn `_ diff --git a/documentation/UsersGuide/CMakeLists.txt b/documentation/UsersGuide/CMakeLists.txt deleted file mode 100644 index 870a0f14..00000000 --- a/documentation/UsersGuide/CMakeLists.txt +++ /dev/null @@ -1,36 +0,0 @@ -# -*- mode: CMAKE; explicit-buffer-name: "CMakeLists.txt" -*- - - set ( htmlInstallDir share/doc/coriolis2/en/html/users-guide ) - set ( latexInstallDir share/doc/coriolis2/en/latex/users-guide ) - - add_custom_target ( doc_HTML ALL - cd ${DOCUMENTATION_SOURCE_DIR}/UsersGuide - && rst2html --link-stylesheet --stylesheet=./SoC.css,./Pygments.css UsersGuide_HTML.rst UsersGuide.html ) - add_dependencies ( doc_HTML SoC.css Pygments.css UsersGuide_HTML.rst UsersGuide.rst ) - - add_custom_target ( doc_LaTeX ALL - cd ${DOCUMENTATION_SOURCE_DIR}/UsersGuide - && rst2latex --use-latex-toc --stylesheet=./socstyle.tex UsersGuide_LaTeX.rst UsersGuide-raw.tex - && sed 's, \\& \\\\multicolumn{2}{l|}{, \\& \\\\multicolumn{2}{p{0.6\\\\DUtablewidth}|}{,' UsersGuide-raw.tex > UsersGuide.tex - && latex UsersGuide - && latex UsersGuide - && latex UsersGuide - && dvipdfm UsersGuide - ) - add_dependencies ( doc_LaTeX socstyle.tex UsersGuide_LaTeX.rst UsersGuide.rst ) - - install ( DIRECTORY images/ - DESTINATION ${htmlInstallDir}/images - FILES_MATCHING PATTERN "*.png" ) - install ( FILES SoC.css - Pygments.css - UsersGuide.html DESTINATION ${htmlInstallDir} ) - - install ( DIRECTORY images/ - DESTINATION ${latexInstallDir}/images - FILES_MATCHING PATTERN "*.pdf" - PATTERN "*.eps" - PATTERN "*.bb" ) - - install ( FILES socstyle.tex - UsersGuide.tex DESTINATION ${latexInstallDir} ) diff --git a/documentation/UsersGuide/Configuration.rst b/documentation/UsersGuide/Configuration.rst new file mode 100644 index 00000000..e2da0de5 --- /dev/null +++ b/documentation/UsersGuide/Configuration.rst @@ -0,0 +1,342 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + +.. URLs that changes between the various backends. +.. _Coriolis Tools Documentation: file:///usr/share/doc/coriolis2/index.html + + + +.. |CoriolisSoftSchema| image:: ./images/Coriolis-Soft-Schema.png + :alt: Coriolis Software Schematic + :align: middle + :width: 60% + +|newpage| + + +Coriolis Configuration & Initialisation +======================================= + + +General Software Architecture +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +|Coriolis| has been build with respect of the classical paradigm that the +computational instensive parts have been written in C++, and almost +everything else in |Python|. To build the |Python| interface we used +two methods: + +* For self-contained modules :cb:`boost::python` (mainly in :cb:`vlsisapd`). +* For all modules based on |Hurricane|, we created our own wrappers due + to very specific requirements such as shared functions between modules + or C++/|Python| secure bi-directional object deletion. + +.. note:: **Python Documentation:** + Most of the documentation is related to the C++ API and implemetation of + the tools. However, the |Python| bindings have been created so they + mimic *as closely as possible* the C++ interface, so the documentation + applies to both languages with only minor syntactic changes. + +|bcenter| |CoriolisSoftSchema| |ecenter| + +All configuration & initialization files are Python scripts, despite their +|dot_conf| extention. From a syntactic point of view, there is no difference +between the system-wide configuration files and the user's configuration, +they may use the same Python helpers. +|medskip| + +Configuration is done in two stages: + +#. Selecting the symbolic technology. +#. Loading the complete configuration for the given technology. + +|newpage| + + +First Stage: Symbolic Technology Selection +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +|noindent| +The initialization process is done by executing, in order, the following +file(s): + ++-------+----------------------------------+----------------------------------------------+ +| Order | Meaning | File | ++=======+==================================+==============================================+ +| **1** | The system setting | :cb:`/etc/coriolis2/techno.conf` | ++-------+----------------------------------+----------------------------------------------+ +| **2** | The user's global setting | :cb:`${HOME}/.coriolis2/techno.py` | ++-------+----------------------------------+----------------------------------------------+ +| **3** | The user's local setting | :cb:`/.coriolis2/techno.py` | ++-------+----------------------------------+----------------------------------------------+ + +Thoses files must provides only two variables, the name of the symbolic technology +and the one of the real technology. For example: :: + + # -*- Mode:Python -*- + + symbolicTechno = 'cmos' + realTechno = 'hcmos9' + + +Second Stage: Technology Configuration Loading +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +|noindent| +The :cb:`TECHNO` variable is set by the first stage and it's the name of the +symbolic technology. A directory of that name, with all the configuration files, +must exists in the configuration directory. In addition to the technology-specific +directories, a :cb:`common/` directory is there to provides a trunk for all the +identical datas across the various technologies. The initialization process is done +by executing, in order, the following file(s): + ++-------+----------------------------------+----------------------------------------------+ +| Order | Meaning | File | ++=======+==================================+==============================================+ +| **1** | The system initialization | :cb:`/etc/coriolis2//.conf` | ++-------+----------------------------------+----------------------------------------------+ +| **2** | The user's global initialization | :cb:`${HOME}/.coriolis2/settings.py` | ++-------+----------------------------------+----------------------------------------------+ +| **3** | The user's local initialization | :cb:`/.coriolis2/settings.py` | ++-------+----------------------------------+----------------------------------------------+ + +.. note:: *The loading policy is not hard-coded.* It is implemented + at Python level in :cb:`/etc/coriolis2/coriolisInit.py`, and thus may be easily be + amended to whatever site policy. + + The truly mandatory requirement is the existence of :cb:`coriolisInit.py` + which *must* contain a :cb:`coriolisConfigure()` function with no argument. + + +Configuration Helpers +~~~~~~~~~~~~~~~~~~~~~ + +To ease the writing of configuration files, a set of small helpers +is available. They allow to setup the configuration parameters through +simple assembly of tuples. The helpers are installed under the directory: :: + + /etc/coriolis2/ + +Where :cb:`/` is the root of the installation. + +|newpage| + + +.. _Alliance Helper: + +|Alliance| Helper +----------------- + +The configuration file must provide a :cb:`allianceConfig` tuple of +the form: :: + + cellsTop = '/usr/share/alliance/cells/' + + allianceConfig = \ + ( ( 'SYMBOLIC_TECHNOLOGY', helpers.sysConfDir+'/technology.symbolic.xml' ) + , ( 'REAL_TECHNOLOGY' , helpers.sysConfDir+'/technology.cmos130.s2r.xml') + , ( 'DISPLAY' , helpers.sysConfDir+'/display.xml' ) + , ( 'CATALOG' , 'CATAL') + , ( 'WORKING_LIBRARY' , '.') + , ( 'SYSTEM_LIBRARY' , ( (cellsTop+'sxlib' , Environment.Append) + , (cellsTop+'dp_sxlib', Environment.Append) + , (cellsTop+'ramlib' , Environment.Append) + , (cellsTop+'romlib' , Environment.Append) + , (cellsTop+'rflib' , Environment.Append) + , (cellsTop+'rf2lib' , Environment.Append) + , (cellsTop+'pxlib' , Environment.Append) ) ) + , ( 'SCALE_X' , 100) + , ( 'IN_LO' , 'vst') + , ( 'IN_PH' , 'ap') + , ( 'OUT_LO' , 'vst') + , ( 'OUT_PH' , 'ap') + , ( 'POWER' , 'vdd') + , ( 'GROUND' , 'vss') + , ( 'CLOCK' , '^ck.*') + , ( 'BLOCKAGE' , '^blockageNet*') + ) + + +|noindent| The example above shows the system configuration file, with all the +available settings. Some important remarks about thoses settings: + +* In it's configuration file, the user do not need to redefine all the settings, + just the one he wants to change. In most of the cases, the ``SYSTEM_LIBRARY``, + the ``WORKING_LIBRARY`` and the special net names (at this point there is not + much alternatives for the others settings). + +* ``SYSTEM_LIBRARY`` setting: Setting up the library search path. + Each library entry in the tuple will be added to the search path according + to the second parameter: + + * :cb:`Environment::Append`: append to the search path. + + * :cb:`Environment::Prepend`: insert in head of the search path. + + * :cb:`Environment::Replace`: look for a library of the same name and replace + it, whithout changing the search path order. If no library of that name + already exists, it is appended. + + A library is identified by it's name, this name is the last component of the + path name. For instance: ``/soc/alliance/sxlib`` will be named ``sxlib``. + Implementing the |Alliance| specification, when looking for a |Cell| ``name``, + the system will browse sequentially trought the library list and returns + the first |Cell| whose name match. + +* For ``POWER``, ``GROUND``, ``CLOCK`` and ``BLOCKAGE`` net names, a regular + expression (|GNU| regexp) is expected. + +* The ``helpers.sysConfDir`` variable is supplied by the helpers, it is the + directory in which the system-wide configuration files are locateds. + For a standard installation it would be: ``/soc/coriolis2``. + +.. * Trick and naming convention about ``SYMBOLIC_TECHNOLOGY``, ``REAL_TECHNOLOGY`` +.. and ``DISPLAY``. In the previous releases, thoses files where to read by +.. XML parsers, and still do if you triggers the XML compatibility mode. +.. But now, they have Python conterparts. In the configuration files, you +.. still have to name them as XML files, the Python file name will be +.. deduced from this one with thoses two translation rules: +.. +.. #. In the filename, all dots, except for the last (the file extention), +.. are replaced by underscores. +.. +.. #. The ``.xml`` extention is substituted by a ``.conf``. +.. +.. For the symbolic technology, it would give: :: +.. +.. /soc/coriolis2/technology.symbolic.xml +.. --> /soc/coriolis2/technology_symbolic.conf + +A typical user's configuration file would be: :: + + import os + + homeDir = os.getenv('HOME') + + allianceConfig = \ + ( ('WORKING_LIBRARY' , homeDir+'/worklib') + , ('SYSTEM_LIBRARY' , ( (homeDir+'/mylib', Environment.Append) ) ) + , ('POWER' , 'vdd.*') + , ('GROUND' , 'vss.*') + ) + + +Tools Configuration Helpers +--------------------------- + +All the tools uses the same helper to load their configuration (a.k.a. +*Configuration Helper*). Currently the following configuration system-wide +configuration files are defined: + +* :cb:`misc.conf`: commons settings or not belonging specifically to a tool. +* :cb:`etesian.conf`: for the |Etesian| tool. +* :cb:`kite.conf`: for the |Kite| tool. +* :cb:`stratus1.conf`: for the |stratus1| tool. + +Here is the contents of :cb:`etesian.conf`: :: + + # Etesian parameters. + parametersTable = \ + ( ('etesian.aspectRatio' , TypePercentage, 100 , { 'min':10, 'max':1000 } ) + , ('etesian.spaceMargin' , TypePercentage, 5 ) + , ('etesian.uniformDensity' , TypeBool , False ) + , ('etesian.routingDriven' , TypeBool , False ) + , ("etesian.effort" , TypeEnumerate , 2 + , { 'values':( ("Fast" , 1) + , ("Standard", 2) + , ("High" , 3) + , ("Extreme" , 4) ) } + ) + , ("etesian.graphics" , TypeEnumerate , 2 + , { 'values':( ("Show every step" , 1) + , ("Show lower bound" , 2) + , ("Show result only" , 3) ) } + ) + ) + + layoutTable = \ + ( (TypeTab , 'Etesian', 'etesian') + + , (TypeTitle , 'Placement area') + , (TypeOption, "etesian.aspectRatio" , "Aspect Ratio, X/Y (%)", 0 ) + , (TypeOption, "etesian.spaceMargin" , "Space Margin" , 1 ) + , (TypeRule ,) + , (TypeTitle , 'Etesian - Placer') + , (TypeOption, "etesian.uniformDensity", "Uniform density" , 0 ) + , (TypeOption, "etesian.routingDriven" , "Routing driven" , 0 ) + , (TypeOption, "etesian.effort" , "Placement effort" , 1 ) + , (TypeOption, "etesian.graphics" , "Placement view" , 1 ) + , (TypeRule ,) + ) + +|newpage| + + +Taxonomy of the file: + +* It must contains, at least, the two tables: + + * ``parametersTable``, defines & initialise the configuration variables. + + * ``layoutTables``, defines how the various parameters will be displayed + in the configuration window (:ref:`The Settings Tab`). + +* The ``parametersTable``, is a tuple (list) of tuples. Each entry in the list + describe a configuration parameter. In it's simplest form, it's a quadruplet + :cb:`(TypeOption, 'paramId', ParameterType, DefaultValue)` with: + + #. ``TypeOption``, tells that this tuple describe a parameter. + + #. ``paramId``, the identifier of the parameter. Identifiers are defined + by the tools. The list of parameters is detailed in each tool section. + + #. ``ParameterType``, the kind of parameter. Could be: + + * ``TypeBool``, boolean. + * ``TypeInt``, signed integer. + * ``TypeEnumerate``, enumerated type, needs extra entry. + * ``TypePercentage``, percentage, expressed between 0 and 100. + * ``TypeDouble``, float. + * ``TypeString``, character string. + + #. ``DefaultValue``, the default value for that parameter. + + +Hacking the Configuration Files +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Asides from the symbols that gets used by the configuration helpers like +:cb:`allianceConfig` or :cb:`parametersTable`, you can put pretty much anything +in :cb:`/.coriolis2/settings.py` (that is, written in |Python|). + +For example: :: + + # -*- Mode:Python -*- + + defaultStyle = 'Alliance.Classic [black]' + + # Regular Coriolis configuration. + parametersTable = \ + ( ('misc.catchCore' , TypeBool , False ) + , ('misc.info' , TypeBool , False ) + , ('misc.paranoid' , TypeBool , False ) + , ('misc.bug' , TypeBool , False ) + , ('misc.logMode' , TypeBool , True ) + , ('misc.verboseLevel1' , TypeBool , False ) + , ('misc.verboseLevel2' , TypeBool , True ) + , ('misc.minTraceLevel' , TypeInt , 0 ) + , ('misc.maxTraceLevel' , TypeInt , 0 ) + ) + + # Some ordinary Python script... + import os + + print ' o Cleaning up ClockTree previous run.' + for fileName in os.listdir('.'): + if fileName.endswith('.ap') or (fileName.find('_clocked.') >= 0): + print ' - <%s>' % fileName + os.unlink(fileName) + + +See :ref:`Python Interface to Coriolis` for more details those capabilities. diff --git a/documentation/UsersGuide/HTML_defs.rst b/documentation/UsersGuide/HTML_defs.rst deleted file mode 100644 index 2d04ed45..00000000 --- a/documentation/UsersGuide/HTML_defs.rst +++ /dev/null @@ -1,49 +0,0 @@ - -.. -*- Mode: rst -*- - -.. role:: raw-html(raw) - :format: html - -.. URLs that changes between the various backends. -.. _Coriolis Tools Documentation: file:///usr/share/doc/coriolis2/index.html -.. _Stratus Documentation: file:///usr/share/doc/coriolis2/en/html/stratus/index.html -.. _Here: file:///usr/share/doc/coriolis2/en/latex/users-guide/UsersGuide.pdf - -.. For HTML backend -.. |rightarrow| replace:: :raw-html:`

    ` -.. |menu_P&R| replace:: :raw-html:`

    ` -.. |menu_StepByStep| replace:: :raw-html:`

    ` -.. |menu_KiteSaveGlobalRouting| image:: ./images/PR-SBS-SaveGlobal.png -.. |menu_KiteLoadGlobalRouting| image:: ./images/PR-SBS-LoadGlobal.png -.. |menu_KiteGlobalRoute| image:: ./images/PR-GlobalRoute.png -.. |menu_KiteDetailedRoute| image:: ./images/PR-DetailedRoute.png -.. |menu_KiteDetailedPreRoute| image:: ./images/PR-DetailedPreRoute.png -.. |menu_KiteFinalizeRoute| image:: ./images/PR-FinalizeRoute.png - -.. Stand-alone images. -.. |ViewerSnapshot_1| replace:: :raw-html:`
    Viewer Basic Snapshot
    ` -.. |ControllerSnapshot_1| replace:: :raw-html:`
    Controller Basic Snapshot
    ` -.. |ControllerLook_1| replace:: :raw-html:`
    Controller Basic Snapshot
    ` -.. |ControllerFilter_1| replace:: :raw-html:`
    Controller Basic Snapshot
    ` -.. |ControllerLayersGos_1| replace:: :raw-html:`
    Controller Basic Snapshot
    ` -.. |ControllerNetlist_1| replace:: :raw-html:`
    Controller Basic Snapshot
    ` -.. |ViewerNetlist_1| replace:: :raw-html:`
    Controller Basic Snapshot
    ` -.. |ControllerSelection_1| replace:: :raw-html:`
    Controller Basic Snapshot
    ` -.. |ControllerInspector_1| replace:: :raw-html:`
    Controller Basic Snapshot
    ` -.. |ControllerInspector_2| replace:: :raw-html:`
    Controller Basic Snapshot
    ` -.. |ControllerInspector_3| replace:: :raw-html:`
    Controller Basic Snapshot
    ` -.. |ControllerSettings_1| replace:: :raw-html:`
    Controller Basic Snapshot
    ` -.. |CoriolisSoftSchema| replace:: :raw-html:`
    Coriolis Software Schematic
    ` -.. |ChipStructure-1| replace:: :raw-html:`
    Chip Top Structure
    ` -.. |Etesian-1| replace:: :raw-html:`
    Etesian Abutment Box
    ` - -.. |BigMouse| image:: ./images/ComputerMouse.png - :scale: 25% - -.. Direct LaTeX commands encapsulation. -.. |dotfill| replace:: :raw-html:`  ` -.. |noindent| replace:: :raw-html:`

    ` -.. |medskip| replace:: :raw-html:`
    ` -.. |newpage| replace:: :raw-html:`
    ` -.. |br| replace:: :raw-html:`
    ` - diff --git a/documentation/UsersGuide/Installation.rst b/documentation/UsersGuide/Installation.rst new file mode 100644 index 00000000..224ee5f4 --- /dev/null +++ b/documentation/UsersGuide/Installation.rst @@ -0,0 +1,230 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + +|newpage| + + +Installation +============ + +.. note:: + As the sources are being released, the binary packaging is dropped. + You still may find older version here: http://asim.lip6.fr/pub/coriolis/2.0 . + +In a nutshell, building source consist in pulling the |git| repository then +running the |ccb| installer. + +Main building prerequisites: + +* cmake +* C++11-capable compiler +* RapidJSON_ +* python2.7 +* boost +* libxml2 +* bzip2 +* yacc & lex +* Qt 4 or Qt 5 + +Building documentation prerequisites: + +* doxygen +* latex +* latex2html +* python-docutils (for reStructuredText) + +Optional libraries: + +* LEF/DEF (from `SI2 `_) + +For other distributions, refer to their own packaging system. + +|newpage| + + +Fixed Directory Tree +~~~~~~~~~~~~~~~~~~~~ + +In order to simplificate the work of the |ccb| installer, the source, build +and installation tree is fixed. To successfully compile |Coriolis| you must +follow it exactly. The tree is relative to the home directory of the user +building it (noted :fboxtt:`~/` or :fboxtt:`$HOME/`). Only the source +directory needs to be manually created by the user, all others will be +automatically created either by |ccb| or the build system. + ++--------------------------------------------------------------------------------------------------------------+ +| **Sources** | ++------------------------------+-------------------------------------------------------------------------------+ +| | Sources root | | ~/coriolis-2.x/src | +| | **under git** | | ~/coriolis-2.x/src/coriolis | ++------------------------------+-------------------------------------------------------------------------------+ +| **Architecture Dependant Build** | ++------------------------------+-------------------------------------------------------------------------------+ +| | Linux, SL 7, 64b | | ~/coriolis-2.x/Linux.el7_64/Release.Shared/build/ | +| | Linux, SL 6, 32b | | ~/coriolis-2.x/Linux.slsoc6x/Release.Shared/build/ | +| | Linux, SL 6, 64b | | ~/coriolis-2.x/Linux.slsoc6x_64/Release.Shared/build/ | +| | Linux, Fedora, 64b | | ~/coriolis-2.x/Linux.fc_64/Release.Shared/build/ | +| | Linux, Fedora, 32b | | ~/coriolis-2.x/Linux.fc/Release.Shared/build/ | +| | FreeBSD 8, 32b | | ~/coriolis-2.x/FreeBSD.8x.i386/Release.Shared/build/ | +| | FreeBSD 8, 64b | | ~/coriolis-2.x/FreeBSD.8x.amd64/Release.Shared/build/ | +| | Windows 7, 32b | | ~/coriolis-2.x/Cygwin.W7/Release.Shared/build/ | +| | Windows 7, 64b | | ~/coriolis-2.x/Cygwin.W7_64/Release.Shared/build/ | +| | Windows 8.x, 32b | | ~/coriolis-2.x/Cygwin.W8/Release.Shared/build/ | +| | Windows 8.x, 64b | | ~/coriolis-2.x/Cygwin.W8_64/Release.Shared/build/ | ++------------------------------+-------------------------------------------------------------------------------+ +| **Architecture Dependant Install** | ++------------------------------+-------------------------------------------------------------------------------+ +| Linux, SL 6, 32b | ~/coriolis-2.x/Linux.slsoc6x/Release.Shared/install/ | ++------------------------------+-------------------------------------------------------------------------------+ +| **FHS Compliant Structure under Install** | ++------------------------------+-------------------------------------------------------------------------------+ +| | Binaries | | .../install/bin | +| | Libraries (Python) | | .../install/lib | +| | Include by tool | | .../install/include/coriolis2// | +| | Configuration files | | .../install/etc/coriolis2/ | +| | Doc, by tool | | .../install/share/doc/coriolis2/en/html/ | ++------------------------------+-------------------------------------------------------------------------------+ + +.. note:: *Alternate build types:* the ``Release.Shared`` means an optimized build + with shared libraries. But there are also available ``Static`` instead of ``Shared`` + and ``Debug`` instead of ``Release`` and any combination of them. + + ``Static`` do not work because I don't know yet to mix statically linked binaries + and Python modules (which must be dynamic). + +|newpage| + + +Building Coriolis +~~~~~~~~~~~~~~~~~ + +First step is to install the prerequisites. Currently, only RapidJSON_. +As RapidJSON is evolving fast, if you encounter compatibility problems, +the exact version we compiled against is given below. :: + + dummy@lepka:~$ mkdir -p ~/coriolis-2.x/src/support + dummy@lepka:~$ cd ~/coriolis-2.x/src/support + dummy@lepka:~$ git clone http://github.com/miloyip/rapidjson + dummy@lepka:~$ git checkout ec322005072076ef53984462fb4a1075c27c7dfd + +The second step is to create the source directory and pull the |git| repository: :: + + dummy@lepka:~$ mkdir -p ~/coriolis-2.x/src + dummy@lepka:~$ cd ~/coriolis-2.x/src + dummy@lepka:~$ git clone https://www-soc.lip6.fr/git/coriolis.git + +Third and final step, build & install: :: + + dummy@lepka:src$ ./bootstrap/ccb.py --project=support \ + --project=coriolis \ + --make="-j4 install" + dummy@lepka:src$ ./bootstrap/ccb.py --project=support \ + --project=coriolis \ + --doc --make="-j1 install" + +We need to separate to perform a separate installation of the documentation because it +do not support to be generated with a parallel build. So we compile & install in a first +stage in ``-j4`` (or whatever) then we generate the documentation in ``-j1`` + +Under |RHEL6| or clones, you must build using the |devtoolset2|: :: + + dummy@lepka:src$ ./bootstrap/ccb.py --project=coriolis \ + --devtoolset-2 --make="-j4 install" + +If you want to uses Qt 5 instead of Qt 4, you may add the ``--qt5`` argument. + +The complete list of |ccb| functionalities can be accessed with the ``--help`` argument. +It also may be run in graphical mode (``--gui``). + + +Building the Devel Branch +------------------------- + +In the |Coriolis| |git| repository, two branches are present: + +* The :cb:`master` branch, which contains the latest stable version. This is the + one used by default if you follow the above instructions. + +* The :cb:`devel` branch, which obviously contains the latest commits from the + development team. To use it instead of the :cb:`master` one, do the following + command just after the first step: :: + + dummy@lepka:~$ git checkout devel + dummy@lepka:src$ ./bootstrap/ccb.py --project=coriolis \ + --make="-j4 install" --debug + + Be aware that it may requires newer versions of the dependencies and may introduce + incompatibilites with the stable version. + + In the (unlikely) event of a crash of |cgt|, as it is a |Python| script, the right + command to run |gdb| on it is: :: + + dummy@lepka:work$ gdb python core.XXXX + +|newpage| + + +Additionnal Requirement under |MacOS| +------------------------------------- + +|Coriolis| make uses of the :cb:`boost::python` module, but the |macports| |boost| +seems unable to work with the |Python| bundled with |MacOS|. So you have to install +both of them from |macports|: :: + + dummy@macos:~$ port install boost +python27 + dummy@macos:~$ port select python python27 + dummy@macos:-$ export DYLD_FRAMEWORK_PATH=/opt/local/Library/Frameworks + +The last two lines tell |MacOS| to use the |Python| from |macports| and *not* from +the system. + +Then proceed with the generic install instructions. + + +Packaging Coriolis +~~~~~~~~~~~~~~~~~~ + +Packager should not uses |ccb|, instead ``bootstrap/Makefile.package`` is provided +to emulate a top-level ``autotool`` makefile. Just copy it in the root of the +|Coriolis| git repository (``~/corriolis-2.x/src/coriolis/``) and build. + +Sligthly outaded packaging configuration files can also be found under ``bootstrap/``: + +* ``bootstrap/coriolis2.spec.in`` for |rpm| based distributions. +* ``bootstrap/debian`` for |Debian| based distributions. + + +Hooking up into |Alliance| +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +|Coriolis| relies on |Alliance| for the cell libraries. So after installing or +packaging, you must configure it so that it can found those libraries. + +This is done by editing the one variable :cb:`cellsTop` in the |Alliance| helper +(see :ref:`Alliance Helper`). This variable must point to the directory of the +cells libraries. In a typical installation, this is generally +:cb:`/usr/share/alliance/cells`. + + +Setting up the Environment (coriolisEnv.py) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To simplify the tedious task of configuring your environment, a helper is provided +in the ``bootstrap`` source directory (also installed in the directory +``.../install/etc/coriolis2/``) : :: + + ~/coriolis-2.x/src/coriolis/bootstrap/coriolisEnv.py + +Use it like this: :: + + dummy@lepka:~> eval `~/coriolis-2.x/src/coriolis/bootstrap/coriolisEnv.py` + +.. note:: **Do not call that script in your environement initialisation.** + When used under |RHEL6| or clones, it needs to be run in the |devtoolset2| + environement. The script then launch a new shell, which may cause an + infinite loop if it's called again in, say :cb:`~/.bashrc`. + + Instead you may want to create an alias: :: + + alias c2r='eval "`~/coriolis-2.x/src/coriolis/bootstrap/coriolisEnv.py`"' diff --git a/documentation/UsersGuide/LaTeX_defs.rst b/documentation/UsersGuide/LaTeX_defs.rst deleted file mode 100644 index 8d48f8e1..00000000 --- a/documentation/UsersGuide/LaTeX_defs.rst +++ /dev/null @@ -1,50 +0,0 @@ - -.. -*- Mode: rst -*- - -.. role:: raw-latex(raw) - :format: latex - -.. URLs that changes between the various backends. -.. _Coriolis Tools Documentation: https://www-soc.lip6.fr/sesi-docs/coriolis2-docs/coriolis2/ -.. _Stratus Documentation: https://www-soc.lip6.fr/sesi-docs/coriolis2-docs/coriolis2/en/html/stratus/index.html - -.. |DONE| replace:: :raw-latex:`\marginpar{\fbox{\small\ding{56}}}` - -.. For LaTeX/PDF backend. -.. |rightarrow| replace:: :raw-latex:`$\rightarrow$` -.. |menu_P&R| replace:: :raw-latex:`\fbox{\textsf{\textbf{{P\&R}}}}` -.. |menu_StepByStep| replace:: :raw-latex:`\fbox{\textsf{\textbf{{\underline{S}tep by Step}}}}` -.. |menu_KiteSaveGlobalRouting| replace:: :raw-latex:`\fbox{\textsf{\textbf{{\underline{S}ave Global Routing}}}}` -.. |menu_KiteLoadGlobalRouting| replace:: :raw-latex:`\fbox{\textsf{\textbf{{\underline{L}oad Global Routing}}}}` -.. |menu_KiteGlobalRoute| replace:: :raw-latex:`\fbox{\textsf{\textbf{{\underline{G}lobal Route}}}}` -.. |menu_KiteDetailedRoute| replace:: :raw-latex:`\fbox{\textsf{\textbf{{\underline{D}etailed Route}}}}` -.. |menu_KiteDetailedPreRoute| replace:: :raw-latex:`\fbox{\textsf{\textbf{{\underline{D}etailed Pre-Route}}}}` -.. |menu_KiteFinalizeRoute| replace:: :raw-latex:`\fbox{\textsf{\textbf{{\underline{F}inalize Route}}}}` - -.. Stand-alone images. -.. |ViewerSnapshot_1| replace:: :raw-latex:`\begin{center}\fbox{\includegraphics[width=.7\textwidth]{./images/Viewer-1.eps}}\end{center}` -.. |ControllerSnapshot_1| replace:: :raw-latex:`\begin{center}\includegraphics[width=.7\textwidth]{./images/Controller-1.eps}\end{center}` -.. |ControllerLook_1| replace:: :raw-latex:`\begin{center}\includegraphics[width=.7\textwidth]{./images/Controller-Look-1.eps}\end{center}` -.. |ControllerFilter_1| replace:: :raw-latex:`\begin{center}\includegraphics[width=.7\textwidth]{./images/Controller-Filter-1.eps}\end{center}` -.. |ControllerLayersGos_1| replace:: :raw-latex:`\begin{center}\includegraphics[width=.7\textwidth]{./images/Controller-LayersGos-1.eps}\end{center}` -.. |ControllerNetlist_1| replace:: :raw-latex:`\begin{center}\includegraphics[width=.7\textwidth]{./images/Controller-Netlist-1.eps}\end{center}` -.. |ViewerNetlist_1| replace:: :raw-latex:`\begin{center}\includegraphics[width=.7\textwidth]{./images/Viewer-Netlist-1.eps}\end{center}` -.. |ControllerSelection_1| replace:: :raw-latex:`\begin{center}\includegraphics[width=.7\textwidth]{./images/Controller-Selection-1.eps}\end{center}` -.. |ControllerInspector_1| replace:: :raw-latex:`\begin{center}\includegraphics[width=.7\textwidth]{./images/Controller-Inspector-1.eps}\end{center}` -.. |ControllerInspector_2| replace:: :raw-latex:`\begin{center}\includegraphics[width=.7\textwidth]{./images/Controller-Inspector-2.eps}\end{center}` -.. |ControllerInspector_3| replace:: :raw-latex:`\begin{center}\includegraphics[width=.7\textwidth]{./images/Controller-Inspector-3.eps}\end{center}` -.. |ControllerSettings_1| replace:: :raw-latex:`\begin{center}\includegraphics[width=.7\textwidth]{./images/Controller-Settings-1.eps}\end{center}` -.. |CoriolisSoftSchema| replace:: :raw-latex:`\begin{center}\includegraphics[width=.7\textwidth]{./images/Coriolis-Soft-Schema.eps}\end{center}` -.. |ChipStructure-1| replace:: :raw-latex:`\begin{center}\includegraphics[width=.95\textwidth]{./images/chip-structure-1.eps}\end{center}` -.. |Etesian-1| replace:: :raw-latex:`\begin{center}\includegraphics[width=.95\textwidth]{./images/etesian-1.eps}\end{center}` - -.. |BigMouse| image:: ./images/ComputerMouse.eps - :scale: 25% - -.. Direct LaTeX commands encapsulation. -.. |dotfill| replace:: :raw-latex:`\dotfill` -.. |noindent| replace:: :raw-latex:`\noindent` -.. |medskip| replace:: :raw-latex:`\medskip` -.. |newpage| replace:: :raw-latex:`\newpage` -.. |br| replace:: :raw-latex:`\\` - diff --git a/documentation/UsersGuide/LicenseCredits.rst b/documentation/UsersGuide/LicenseCredits.rst new file mode 100644 index 00000000..3cf0eefe --- /dev/null +++ b/documentation/UsersGuide/LicenseCredits.rst @@ -0,0 +1,55 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +Credits & License +================= + +.. raw:: html + +

    Hurricane + Rémy Escassut & + Christian Masson

    +
    +

    Etesian + Gabriel Gouvine

    +
    +

    Stratus + Sophie Belloeil

    +
    +

    Knik + Damien Dupuis

    +
    +

    Kite, + Unicorn + Jean-Paul Chaput

    +
    + + +.. raw:: latex + + \begin{center}\begin{minipage}[t]{.8\textwidth} + \noindent\DUrole{sc}{Hurricane} \dotfill Rémy \DUrole{sc}{Escassut} \& + Christian \DUrole{sc}{Masson} \\ + \noindent\DUrole{sc}{Etesian} \dotfill Gabriel \DUrole{sc}{Gouvine} \\ + \noindent\DUrole{sc}{Stratus} \dotfill Sophie \DUrole{sc}{Belloeil} \\ + \noindent\DUrole{sc}{Knik} \dotfill Damien \DUrole{sc}{Dupuis} \\ + \noindent\DUrole{sc}{Kite}, + \DUrole{sc}{Unicorn} \dotfill Jean-Paul \DUrole{sc}{Chaput} \\ + \end{minipage}\end{center} + + +|medskip| + +The |Hurricane| data-base is copyright© |Bull| 2000-2016 and is +released under the terms of the |LGPL| license. All other tools are +copyright© |UPMC| 2008-2016 and released under the |GPL| +license. + +Others important contributors to |Coriolis| are Christophe |Alexandre|, +Hugo |Clement|, Marek |Sroka| and Wu |Yifei|. + +The |Knik| router makes use of the |Flute| software, which is +copyright© Chris C. N. |Chu| from the Iowa State University +(http://home.eng.iastate.edu/~cnchu/). diff --git a/documentation/UsersGuide/Pygments.css b/documentation/UsersGuide/Pygments.css deleted file mode 100644 index de3dc8fe..00000000 --- a/documentation/UsersGuide/Pygments.css +++ /dev/null @@ -1,41 +0,0 @@ -div.codeblock { font-size: 90%; - margin: 10pt; - padding: 5pt; - border: dashed; - border-width: thin; - background-color: #ffffcc; - border-color: #fc8676; - } -.codeblock * .hll { background-color: #ffffcc } -.codeblock * .c { color: #008000 } /* Comment */ -.codeblock * .err { border: 1px solid #FF0000 } /* Error */ -.codeblock * .k { color: #0000ff } /* Keyword */ -.codeblock * .cm { color: #008000 } /* Comment.Multiline */ -.codeblock * .cp { color: #0000ff } /* Comment.Preproc */ -.codeblock * .c1 { color: #008000 } /* Comment.Single */ -.codeblock * .cs { color: #008000 } /* Comment.Special */ -.codeblock * .ge { font-style: italic } /* Generic.Emph */ -.codeblock * .gh { font-weight: bold } /* Generic.Heading */ -.codeblock * .gp { font-weight: bold } /* Generic.Prompt */ -.codeblock * .gs { font-weight: bold } /* Generic.Strong */ -.codeblock * .gu { font-weight: bold } /* Generic.Subheading */ -.codeblock * .kc { color: #0000ff } /* Keyword.Constant */ -.codeblock * .kd { color: #0000ff } /* Keyword.Declaration */ -.codeblock * .kn { color: #0000ff } /* Keyword.Namespace */ -.codeblock * .kp { color: #0000ff } /* Keyword.Pseudo */ -.codeblock * .kr { color: #0000ff } /* Keyword.Reserved */ -.codeblock * .kt { color: #2b91af } /* Keyword.Type */ -.codeblock * .s { color: #a31515 } /* Literal.String */ -.codeblock * .nc { color: #2b91af } /* Name.Class */ -.codeblock * .ow { color: #0000ff } /* Operator.Word */ -.codeblock * .sb { color: #a31515 } /* Literal.String.Backtick */ -.codeblock * .sc { color: #a31515 } /* Literal.String.Char */ -.codeblock * .sd { color: #a31515 } /* Literal.String.Doc */ -.codeblock * .s2 { color: #a31515 } /* Literal.String.Double */ -.codeblock * .se { color: #a31515 } /* Literal.String.Escape */ -.codeblock * .sh { color: #a31515 } /* Literal.String.Heredoc */ -.codeblock * .si { color: #a31515 } /* Literal.String.Interpol */ -.codeblock * .sx { color: #a31515 } /* Literal.String.Other */ -.codeblock * .sr { color: #a31515 } /* Literal.String.Regex */ -.codeblock * .s1 { color: #a31515 } /* Literal.String.Single */ -.codeblock * .ss { color: #a31515 } /* Literal.String.Symbol */ diff --git a/documentation/UsersGuide/Releases.rst b/documentation/UsersGuide/Releases.rst new file mode 100644 index 00000000..c86243a1 --- /dev/null +++ b/documentation/UsersGuide/Releases.rst @@ -0,0 +1,102 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +Release Notes +============= + +Release 1.0.1475 +~~~~~~~~~~~~~~~~ + +This is the first preliminary release of the |Coriolis2| framework. + +This release mainly ships the global router |Knik| and the detailed router +|Kite|. Together they aim to replace the |Alliance| |Nero| router. +Unlike |Nero|, |Kite| is based on an innovating routing modeling and ad-hoc +algorithm. Although it is released under |GPL| license, the source code +will be avalaible later. +|medskip| + + +|noindent| Contents of this release: + +1. A graphical user interface (viewer only). +2. The |Knik| global router. +3. The |Kite| detailed router. + +|noindent| Supported input/output formats: + +* |Alliance| |vst| (netlist) & |ap| (physical) formats. +* Even if there are some references to the |Cadence| |LEFDEF| format, its + support is not included because it depends on a library only available + to |Si2| affiliated members. + + +Release 1.0.1963 +~~~~~~~~~~~~~~~~ + +Release 1963 is alpha. All the tools from |Coriolis1| have been ported into +this release. + +|noindent| Contents of this release: + +#. The |Stratus| netlist capture language (|GenLib| replacement). +#. The |Mauka| placer (still contains bugs). +#. A graphical user interface (viewer only). +#. The |Knik| global router. +#. The |Kite| detailed router. +#. Partially implemented python support for configuration files + (alternative to |XML|). +#. A documentation (imcomplete/obsoleted in |Hurricane|'s case). + + +Release 1.0.2049 +~~~~~~~~~~~~~~~~ + +Release `2049` is Alpha. + +|noindent| Changes of this release: + +#. The |Hurricane| documentation is now accurate. Documentation + for the Cell viewer and |CRLcore| has been added. +#. More extensive Python support for all the components of + |Coriolis|. +#. Configuration is now completly migrated under Python. + |XML| loaders can still be useds for compatibilty. +#. The |cgt| main has been rewritten in Python. + + +Release v2.0.1 +~~~~~~~~~~~~~~ + +#. Migrated the repository from |svn| to |git|, and release complete sources. + As a consequence, we drop the distribution packaging support and give + public read-only access to the repository. +#. Deep rewrite of the |Katabatic| database and |Kite| detailed router, + achieve a speedup factor greater than 20... + + +Release v2.1 +~~~~~~~~~~~~ + +#. Replace the old simulated annealing placer |Mauka| by the analytical placer + |Etesian| and its legalization and detailed placement tools. +#. Added a Blif format parser to process circuits generated by the Yosys and ABC + logic synthetizers. +#. The multiples user defined configuration files are now grouped under + a common hidden (dot) directory ``.coriolis2`` and the file extension + is back from ``.conf`` to ``.py``. + +.. #. Under |RHEL7| / |SL7|, there is a known bug in the graphical visualizer. +.. When shifting to the left, the right-half part of the screen gets +.. badly redrawn. Uses |CTRL_L| to refresh. It will be corrected as soon +.. as possible. + + +**Release v2.2** +~~~~~~~~~~~~~~~~ + +#. Added JSON import/export of the whole Hurricane DataBase. Two save mode + are supported: *Cell* mode (standalone) or *Blob* mode, which dump the + whole design down and including the standard cells. diff --git a/documentation/UsersGuide/ScriptsPlugins.rst b/documentation/UsersGuide/ScriptsPlugins.rst new file mode 100644 index 00000000..2e9e3d0c --- /dev/null +++ b/documentation/UsersGuide/ScriptsPlugins.rst @@ -0,0 +1,332 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + +.. URLs that changes between the various backends. +.. _Stratus Documentation: file:///usr/share/doc/coriolis2/en/html/stratus/index.html + +.. |ChipStructure-1| image:: ./images/chip-structure-1.png + :alt: Chip Top Structure + :align: middle + :width: 90% + + +.. _Python Interface to Coriolis: + +Python Interface for |Hurricane| / |Coriolis| +============================================= + +The (almost) complete interface of |Hurricane| is exported as a |Python| module +and some part of the other components of |Coriolis| (each one in a separate +module). The interface has been made to mirror as closely as possible the +C++ one, so the C++ doxygen documentation could be used to write code with +either languages. + +`Summary of the C++ Documentation `_ + +A script could be run directly in text mode from the command line or through +the graphical interface (see :ref:`Python Scripts in Cgt`). + +Asides for this requirement, the python script can contain anything valid +in |Python|, so don't hesitate to use any package or extention. + +Small example of Python/Stratus script: :: + + from Hurricane import * + from Stratus import * + + def doSomething (): + # ... + return + + def ScriptMain ( **kw ): + editor = None + if kw.has_key('editor') and kw['editor']: + editor = kw['editor'] + stratus.setEditor( editor ) + + doSomething() + return + + if __name__ == "__main__" : + kw = {} + success = ScriptMain( **kw ) + shellSuccess = 0 + if not success: shellSuccess = 1 + + sys.exit( shellSuccess ) + ScriptMain () + +This typical script can be executed in two ways: + +#. Run directly as a |Python| script, thanks to the :: + + if __name__ == "__main__" : + + part (this is standart |Python|). It is a simple adapter that will + calls :cb:`ScriptMain()`. +#. Through |cgt|, either in text or graphical mode. In that case, the + :cb:`ScriptMain()` is directly called trough a sub-interpreter. + The arguments of the script are passed through the ``**kw`` dictionnary. + + +----------------------+-----------------------------------------------+ + | \*\*kw Dictionnary | + +----------------------+-----------------------------------------------+ + | Parameter Key/Name | Contents type | + +======================+===============================================+ + | ``'cell'`` | A Hurricane cell on which to work. Depending | + | | on the context, it may be ``None``. | + | | For example, when run from |cgt|, it the cell | + | | currently loaded in the viewer, if any. | + +----------------------+-----------------------------------------------+ + | ``'editor'`` | The viewer from which the script is run, when | + | | lauched through |cgt|. | + +----------------------+-----------------------------------------------+ + + +Plugins +~~~~~~~ + +Plugins are |Python| scripts specially crafted to integrate with |cgt|. +Their entry point is a :cb:`ScriptMain()` method as described in +`Python Interface to Coriolis`_. They can be called by user scripts +through this method. + + + +Chip Placement +-------------- + +Automatically perform the placement of a complete chip. This plugin, as well +as the other P&R tools expect a specific top-level hierarchy for the design. +The top-level hierarchy must contains the instances of all the I/O pads and +**exactly one** instance of the chip's core model. + +|bcenter| |ChipStructure-1| |ecenter| + +The designer must provide a configuration file that define the rules for the +placement of the top-level hierarchy (that is, the pads and the core). +This file must be named after the chip's name, by appending ``_chip.py`` +(obviously, it is a |Python| file). For instance if the chip netlist file +is called ``amd2901_crl.vst``, then the configuration file must be named +``amd2901_crl_chip.vst``. + +Example of chip placement configuration file (for ``AM2901``): :: + + chip = \ + { 'pads.south' : [ 'p_a3' , 'p_a2' , 'p_a1' , 'p_r0' + , 'p_vddick0', 'p_vssick0', 'p_a0' , 'p_i6' + , 'p_i8' , 'p_i7' , 'p_r3' ] + , 'pads.east' : [ 'p_zero' , 'p_i0' , 'p_i1' , 'p_i2' + , 'p_vddeck0', 'p_vsseck0', 'p_q3' , 'p_b0' + , 'p_b1' , 'p_b2' , 'p_b3' ] + , 'pads.north' : [ 'p_noe' , 'p_y3' , 'p_y2' , 'p_y1' + , 'p_y0' , 'p_vddeck1', 'p_vsseck1', 'p_np' + , 'p_ovr' , 'p_cout' , 'p_ng' ] + , 'pads.west' : [ 'p_cin' , 'p_i4' , 'p_i5' , 'p_i3' + , 'p_ck' , 'p_d0' , 'p_d1' , 'p_d2' + , 'p_d3' , 'p_q0' , 'p_f3' ] + , 'core.size' : ( 1500, 1500 ) + , 'chip.size' : ( 3000, 3000 ) + , 'chip.clockTree' : True + } + +The file must contain *one dictionnary* named ``chip``. + ++----------------------+-------------------------------------------------------+ +| Chip Dictionnary | ++----------------------+-------------------------------------------------------+ +| Parameter Key/Name | Value/Contents type | ++======================+=======================================================+ +| ``'pad.south'`` | Ordered list (left to right) of pad instances names | +| | to put on the south side of the chip | ++----------------------+-------------------------------------------------------+ +| ``'pad.east'`` | Ordered list (down to up) of pad instances names | +| | to put on the east side of the chip | ++----------------------+-------------------------------------------------------+ +| ``'pad.north'`` | Ordered list (left to right) of pad instances names | +| | to put on the north side of the chip | ++----------------------+-------------------------------------------------------+ +| ``'pad.west'`` | Ordered list (down to up) of pad instances names | +| | to put on the west side of the chip | ++----------------------+-------------------------------------------------------+ +| ``'core.size'`` | The size of the core (to be used by the placer) | ++----------------------+-------------------------------------------------------+ +| ``'chip.size'`` | The size of the whole chip. The sides must be great | +| | enough to accomodate all the pads | ++----------------------+-------------------------------------------------------+ +| ``'chip.clockTree'`` | Whether to generate a clock tree or not. This calls | +| | the ClockTree plugin | ++----------------------+-------------------------------------------------------+ + +Configuration parameters, defaults are defined in ``etc/coriolis2//plugins.conf``. + ++-----------------------------------+------------------+----------------------------+ +| Parameter Identifier | Type | Default | ++===================================+==================+============================+ +| **Chip Plugin Parameters** | ++-----------------------------------+------------------+----------------------------+ +|``chip.block.rails.count`` | TypeInt | :cb:`5` | +| +------------------+----------------------------+ +| | The minimum number of rails around the core | +| | block. Must be odd and suppérior to 5. | +| | One rail for the clock and at least two pairs | +| | of power/grounds | ++-----------------------------------+------------------+----------------------------+ +|``chip.block.rails.hWidth`` | TypeInt | :cb:`12` | +| +------------------+----------------------------+ +| | The horizontal with of the rails | ++-----------------------------------+------------------+----------------------------+ +|``chip.block.rails.vWidth`` | TypeInt | :cb:`12` | +| +------------------+----------------------------+ +| | The vertical with of the rails | ++-----------------------------------+------------------+----------------------------+ +|``chip.block.rails.hSpacing`` | TypeInt | :cb:`6` | +| +------------------+----------------------------+ +| | The spacing, *edge to edge* of two adjacent | +| | horizontal rails | ++-----------------------------------+------------------+----------------------------+ +|``chip.block.rails.vSpacing`` | TypeInt | :cb:`6` | +| +------------------+----------------------------+ +| | The spacing, *edge to edge* of two adjacent | +| | vertical rails | ++-----------------------------------+------------------+----------------------------+ +|``chip.pad.pck`` | TypeString | :cb:`pck_px` | +| +------------------+----------------------------+ +| | The model name of the pad connected to the | +| | chip external clock | ++-----------------------------------+------------------+----------------------------+ +|``chip.pad.pvddeck`` | TypeString | :cb:`pvddeck_px` | +| +------------------+----------------------------+ +| | The model name of the pad connected to the | +| | ``vdde`` (external power) and suppling it to | +| | the core | ++-----------------------------------+------------------+----------------------------+ +|``chip.pad.pvsseck`` | TypeString | :cb:`pvsseck_px` | +| +------------------+----------------------------+ +| | The model name of the pad connected to the | +| | ``vsse`` (external ground) and suppling it to | +| | the core | ++-----------------------------------+------------------+----------------------------+ +|``chip.pad.pvddick`` | TypeString | :cb:`pvddick_px` | +| +------------------+----------------------------+ +| | The model name of the pad connected to the | +| | ``vddi`` (internal power) and suppling it to | +| | the core | ++-----------------------------------+------------------+----------------------------+ +|``chip.pad.pvssick`` | TypeString | :cb:`pvssick_px` | +| +------------------+----------------------------+ +| | The model name of the pad connected to the | +| | ``vssi`` (internal ground) and suppling it to | +| | the core | ++-----------------------------------+------------------+----------------------------+ + +.. note:: + If no clock tree is generated, then the clock rail is *not* created. + So even if the requested number of rails ``chip.block.rails.count`` is, say 5, + only four rails (2* ``power``, 2* ``ground``) will be generateds. + + +Clock Tree +---------- + +Insert a clock tree into a block. The clock tree uses the H strategy. +The clock net is splitted into sub-nets, one for each branch of the +tree. + +* On **chips** design, the sub-nets are createds in the model of the + core block (then trans-hierarchically flattened to be shown at + chip level). +* On **blocks**, the sub nets are created directly in the top block. +* The sub-nets are named according to a simple geometrical scheme. + A common prefix ``ck_htree``, then one postfix by level telling + on which quarter of plane the sub-clock is located: + + #. ``_bl``: bottom left plane quarter. + #. ``_br``: bottom right plane quarter. + #. ``_tl``: top left plane quarter. + #. ``_tr``: top right plane quarter. + + We can have ``ck_htree_bl``, ``ck_htree_bl_bl``, ``ch_htree_bl_tl`` and so on. + +The clock tree plugin works in four steps: + +#. Build the clock tree: creates the top-block abutment box, compute the + levels of H tree neededs and place the clock buffers. +#. Once the clock buffers are placed, calls the placer (|etesian|) to place + the ordinary standart cells, whithout disturbing clock H-tree buffers. +#. At this point we know the exact positions of all the DFFs, so we can + connect them to the nearest H-tree leaf clock signal. +#. Leaf clock signals that are not connecteds to any DFFs are removed. + +Netlist reorganisation: + +* Obviously the top block or chip core model netlist is modificated to + contains all the clock sub-nets. The interface is *not* changed. +* If the top block contains instances of other models *and* those models + contains DFFs that get re-connecteds to the clock sub-nets (from the + top level). Change both the model netlist and interface to propagate + the relevant clock sub-nets to the instanciated model. The new model + with the added clock signal is renamed with a ``_clocked`` suffix. + For example, the sub-block model ``ram.vst`` will become ``ram_clocked.vst``. + +.. note:: + If you are to re-run the clock tree plugin on a netlist, be careful + to erase any previously generated ``_clocked`` file (both netlist and + layout: ``rm *.clocked.{ap,vst}``). And restart |cgt| to clear it's + memory cache. + +Configuration parameters, defaults are defined in ``etc/coriolis2//plugins.conf``. + ++-----------------------------------+------------------+----------------------------+ +| Parameter Identifier | Type | Default | ++===================================+==================+============================+ +| **ClockTree Plugin Parameters** | ++-----------------------------------+------------------+----------------------------+ +|``clockTree.minimumSide`` | TypeInt | :cb:`300` | +| +------------------+----------------------------+ +| | The minimum size below which the clock tree | +| | will stop to perform quadri-partitions | ++-----------------------------------+------------------+----------------------------+ +|``clockTree.buffer`` | TypeString | :cb:`buf_x2` | +| +------------------+----------------------------+ +| | The buffer model to use to drive sub-nets | ++-----------------------------------+------------------+----------------------------+ +|``clockTree.placerEngine`` | TypeString | :cb:`Etesian` | +| +------------------+----------------------------+ +| | The placer to use. Other value is ``Mauka`` | +| | the simulated annealing placer which will go | +| | into retirement very soon | ++-----------------------------------+------------------+----------------------------+ + + +Recursive-Save (RSave) +---------------------- + +Perform a recursive top down save of all the models from the top cell +loaded in |cgt|. Force a write of any non-terminal model. This plugin is used +by the clock tree plugin after the netlist clock sub-nets creation. + + +A Simple Example: AM2901 +~~~~~~~~~~~~~~~~~~~~~~~~ + +To illustrate the capabilities of |Coriolis| tools and |Python| scripting, a small +example, derived from the |Alliance| :cb:`AM2901` is supplied. + +This example contains only the synthetized netlists and the :cb:`doChip.py` script +which perform the whole P&R of the design. + +You can generate the chip using one of the following method: + +#. **Command line mode:** directly run the script: :: + + dummy@lepka:AM2901$ ./doChip -V --cell=amd2901 + +#. **Graphic mode:** launch |cgt|, load chip netlist ``amd2901`` (the top cell) + then run the |Python| script :cb:`doChip.py`. + +.. note:: + Between two consecutive run, be sure to erase the netlist/layout generateds: :: + + dummy@lepka:AM2901$ rm *_clocked*.vst *.ap diff --git a/documentation/UsersGuide/SoC.css b/documentation/UsersGuide/SoC.css deleted file mode 100644 index 4bca9453..00000000 --- a/documentation/UsersGuide/SoC.css +++ /dev/null @@ -1,796 +0,0 @@ - -html, body, th, td, tr, p, li, h1, h2, h3, h4, h5, h6 { - font-size: 96%; - font-family: "Open Sans", verdana, sans-serif; -} - -body { - color: black; - background: white; - /* - background: #09550B; - background-color: white; - */ - background-position: top left; - background-attachment: fixed; - background-repeat: no-repeat; - margin: 0 0 0 0; - padding: 20pt; - width: 550pt; - margin-right: 10%; - margin-left: 30%; - -moz-box-shadow: 4px 4px 5px 3px #ccc; - -webkit-box-shadow: 4px 4px 5px 3px #ccc; - box-shadow: 4px 4px 5px 3px #ccc; -} - -body.gsummary { - margin-right: 10%; - margin-left: 10%; -} - -h1, h2, h3, h4, h5, h6 { font-family: "Open Sans", verdana, sans-serif; } -h1 { text-align: center; - border-top: 2px solid #09550b; - border-bottom: 2px solid #09550b; - padding-top: 7pt; - padding-bottom: 7pt; - } -h2, h3, h4, h5, h6 { text-align: left; } -h1, h2, h3 { font-family: "Open Sans"; - } -h1 { font-weight: normal; font-size: 170%; padding-top: 7pt; margin-top: 25pt; } -h2 { font-weight: normal; font-size: 140%; padding-top: 7pt; margin-top: 25pt; } -h3 { font-weight: bold; font-size: 118%; padding-top: 7pt; margin-top: 25pt; } -h4 { font-weight: bold; font-size: 100%; } -h5 { font-style: italic; font-size: 100%; } -h6 { font-variant: small-caps; font-size: 100%; } - -body.gsummary h1 { text-align: center; font-size: 220%; } - -h1 a:link { border-bottom: 0px; } - - -hr { - color: #09550b; - border: 1px dotted #09550b; - border-style: none none dotted; - padding-top: 10pt; - padding-bottom: 10pt; -} - -div#contents { - margin: 30pt; - padding: 2pt 10pt; - background-color: #fff676; -} - -div#centered { - margin-left: auto; - margin-right: auto; - text-align: center; -} - -p, li { - text-align: justify; -} - -.sc { - font-variant: small-caps; - font-size: 110%; -} - -pre, tt, code { - font-family: "courrier", "andale mono", monospace; - font-size: 100%; - white-space: pre; -} - -tt { - color: #09550b; -} - -pre.wiki, div.code, pre.literal-block { - font-size: 90%; - padding: 5pt; - margin-left: 4%; - margin-right: 4%; - border: dashed; - border-width: thin; - border-color: #FC8676; - background-color: #FCFCE1; -} - -a:link, a:active { - font-weight: normal; - text-decoration: none; - color: #09550b; - border-bottom: 1px dotted #09550b; -} - -a:hover, a:focus, a:visited { - font-weight: normal; - font-style: italic; - text-decoration: none; - /* - color: #A40010; - border-bottom: 1px dotted #A40010; - */ - color: #09550b; - border-bottom: 1px dotted #09550b; -} - -body.gsummary a:link, a:active { - font-size: 140%; - font-weight: bold; - text-decoration: none; - color: #09550b; - border-bottom: none; - /* - border-bottom: 1px dotted #09550b; - */ -} - -body.gsummary a:hover, a:focus, a:visited { - font-size: 120%; - font-weight: bold; - font-style: italic; - text-decoration: none; - /* - color: #A40010; - border-bottom: 1px dotted #A40010; - */ - color: #09550b; - /* - border-bottom: 1px dotted #09550b; - */ -} - -p.credit { - margin-left: 10%; - margin-right: 10%; - font-size: 110%; -} - -p.credit span.left { - float: left; - white-space: nowrap; -} - -p.credit span.right { - float: right; - white-space: nowrap; -} - -img.addborder { - border: 1px solid black; -} - -div#header { - margin: 0px; - padding: 0pt; - background-color: white; - display: inline-block; - width: 100%; -} - -div#header_logo { - margin: 0px; - padding: 10px 0px 10px 12pt; - background-color: white; - width: 40%; - float: left; -} - -div#header_menus { - background-color: white; - width: 55%; - float: right; - padding-top: 60pt; - padding-right: 10pt; - text-align: right; - font-size: 80%; -} - -div#header_menus ul { - padding-top: 45pt; - list-style: none; - text-align: right; - font-size: 80%; -} - -div#header_menus li { - padding: 0pt; - margin: 0pt; - display: inline; - white-space: nowrap; -} - -/* -div#header_menus a { - border-left: 1px solid #d7d7d7; - padding: 0 .75em; -} - -div#header_menus a.first { - border-left: none; -} -*/ - -div#header a:link, div#header a:active, div#header a:visited { - margin: 0pt; - padding: 0pt 5pt; - font-weight: normal; - color: black; - text-decoration: none; - border-bottom: 1px solid black; - border-left: 0px; - border-right: 0px; -} - -div#header a:hover, div#header a:focus { - margin: 0pt; - padding: 0pt 5pt; - font-weight: normal; - color: black; - text-decoration: none; - border-bottom: 4px solid #09550b; - border-left: 0px; - border-right: 0px; -} - -div#header a.current:link, div#header a.current:active, div#header a.current:visited { - margin: 0pt; - padding: 0pt 5pt; - font-weight: bold; - font-style: normal; - font-size: 120%; - color: white; - text-decoration: none; - border-bottom: 4px solid #09550b; - border-left: 0px; - border-right: 0px; - background-color: #09550b; -} - -div#header a.current:hover, div#header a.current:focus { - margin: 0pt; - padding: 0pt 5pt; - font-weight: bold; - font-style: normal; - font-size: 120%; - color: white; - text-decoration: none; - border-bottom: 4px solid #09550b; - border-left: 0px; - border-right: 0px; - background-color: #09550b; -} - -div#header_ancestors { - padding: 4px 0px 4px 12pt; - background-color: #09550B; - color: white; -} - -div#header_ancestors ul, div#header_ancestors * li { - display: inline; - list-style-type: none; - padding: 0px 0px 0px 0pt; -} - -div#header_ancestors a:link, div#header_ancestors a:active, div#header_ancestors a:visited { - font-weight: bold; - color: white; - text-decoration: none; - border-bottom: 0px; -} - -div#header_ancestors a:hover, div#header_ancestors a:focus { - font-weight: bold; - color: white; - text-decoration: underline; -} - -div#footer { - margin: 0px; - padding: 0px; - border-top: 1px dotted #09550b; - background-color: white; - display: inline-block; - width: 100%; - text-align: right; -} - -div#searchform { - width: 80%; - background-color: #ccffcd; - padding: 15pt 10pt 15pt 10pt; - margin-top: 50pt; - margin-bottom: 50pt; - margin-left: auto; - margin-right: auto; - text-align: center; -} - -div#searchform input#id_q { - background-color: white; - border: 1px solid #09550b; - padding: 2pt; - width: 80%; - font-size: 110%; - font-weight: bold; -} - -span.queryref { - font-weight: bold; -} - -div#searchform ul { - list-style: none; -} - -div#searchform li { - display: inline; -} - -hr#search_vs_results { - color: #09550b; - border: 2px dotted #09550b; - border-style: none none dotted; - margin-top: 0pt; - margin-bottom: 20pt; -} - -div#search_results { - width: 85%; - margin: auto; -} - -div#sidebar hr#separator { - color: white; - border: 0px; - margin-top: 0pt; - margin-bottom: 20pt; -} - -img.footer-logo { - height: 24px; - padding: 0px 2px; -} - -hr#site_vs_page { - color: white; - border: 3px dotted white; - border-style: none none dotted; - margin-top: 20pt; - margin-bottom: 20pt; -} - -div#sidebar { - /* - background: #09550B; - background: #ccffcd; - */ - background: white; -} - -div#sidebar div#sitemenu, div#sidebar div#pagemenu { - /* - background: white; - */ - background: #09550b; - width: 85%; - margin: auto; - padding: 5pt 10pt; -} - -div#sidebar * li { - text-align: left; -} - -div#sidebar * ul { - list-style-type: square; - padding-left: 12pt; -} - -div#sitemenu ul { - list-style-type: none; - padding-left: 0pt; -} - -div#sitemenu ul ul { - list-style-type: none; - padding-left: 0pt; -} - -div#sitemenu ul ul ul { - list-style-type: square; - padding-left: 12pt; -} - -div#sitemenu ul li ul li { - padding-top: 3pt; - padding-bottom: 5pt; - border-top: 1px dotted white; -} - -div#sitemenu ul li ul li ul li { - border-top: none; - padding-top: 1pt; - padding-bottom: 1pt; -} - -div#sitemenu ul li a:link, -div#sitemenu ul li a:active, -div#sitemenu ul lu a:visited -{ - font-size: 140%; - font-weight: bold; - border-bottom: none; -} - -div#sitemenu ul li a:focus, -div#sitemenu ul lu a:hover -{ - font-size: 140%; - font-weight: bold; - font-style: italic; - border-bottom: none; -} - -div#sitemenu ul ul li a:link, -div#sitemenu ul ul li a:active, -div#sitemenu ul ul lu a:visited, -div#sitemenu ul ul li a:focus, -div#sitemenu ul ul lu a:hover -{ - font-size: 90%; - font-weight: normal; - border-bottom: none; -/*border-bottom: 1px dotted white;*/ -} - -div#pagemenu ul { - list-style-type: none; - padding-left: 0pt; -} - -div#pagemenu ul ul { - list-style-type: none; - padding-left: 0pt; -} - -div#pagemenu ul ul ul { - padding-left: 12pt; -} - -div#pagemenu ul li ul li { - padding-top: 3pt; - padding-bottom: 5pt; - border-top: 1px dotted white; -} - -div#pagemenu ul li ul li ul li { - border-top: none; - padding-top: 1pt; - padding-bottom: 1pt; -} - -div#pagemenu ul li a:link, -div#pagemenu ul li a:active, -div#pagemenu ul lu a:visited -{ - font-size: 120%; - font-weight: bold; - border-bottom: none; -} - -div#pagemenu ul li a:focus, -div#pagemenu ul lu a:hover -{ - font-size: 120%; - font-weight: bold; - font-style: italic; - border-bottom: none; -} - -div#pagemenu ul ul li a:link, -div#pagemenu ul ul li a:active, -div#pagemenu ul ul lu a:visited, -div#pagemenu ul ul li a:focus, -div#pagemenu ul ul lu a:hover -{ - font-size: 90%; - font-weight: normal; - border-bottom: none; - /* - border-bottom: 1px dotted white; - */ -} - - -div#sidebar ul.ancestor * li { - padding-top: 0pt; -} - -div#sidebar ul { - padding-bottom: 8pt; -} - -div#sidebar a:link, div#sidebar a:active, div#sidebar a:visited { - /* - font-weight: normal; - */ - color: white; - text-align: left; - text-decoration: none; - border-bottom: 1px dotted white; -} - -div#sidebar a:hover, div#sidebar a:focus { - /* - font-weight: normal; - */ - color: white; - text-align: left; - text-decoration: none; - border-bottom: 1px dotted white; -} - -div#main { - border-left: 1px solid #09550b; -} - -div#main ul#summary { - list-style-type: square; - padding-left: 12pt; - font-size: 14pt; -} - -div#main ul#summary * ul { - padding-left: 12pt; - padding-bottom: 14pt; - font-size: 95%; -} - -div.code * { - background-color: #FCFCE1; -} - -div.note { - margin: 8px 2% 0px 2%; - border: 1px none #fff01c; - border-left-width: 4px; - border-left-style: solid; - padding: 1px 10pt 1px 55px; - background: #fff676 url('./images/clipboard.png') no-repeat 0% 50%;; - font-size: 90% -} - -div.error { - margin: 8px 2% 0px 2%; - border: 1px none #dd0000; - border-left-width: 4px; - border-left-style: solid; - padding: 1px 10pt 1px 55px; - background: #ffddcc url('./images/i-core.png') no-repeat 0% 50%;; - font-size: 90% -} - -p.admonition-title { - font-weight: bold; -} - -div.topic { - margin: 5pt; - padding: 2pt 10pt; - background-color: fff676; -} - -div.topic p.first { - font-weight: bold; -} - -body.gsummary table { - border-collapse: collapse; - border-color: transparent; - width: 60%; - margin-left: auto; - margin-right: auto; -} - -/* -body.gsummary table th { -} -*/ - -body.gsummary table td { - border: none; -} - -/* -body.gsummary table tr td ul { - margin: 0pt; - border-left: 1px solid black; -} -*/ - -/* -body.gsummary table tr td ul li { - border-bottom: 2px dotted black; -} -*/ - -body.gsummary li { - padding: 0%; - list-style-type: none; -} - -body.gsummary ul { - padding: 0px 0px 10px 0px; - margin: 0%; - border-bottom: 1px dotted black; -} - -table.wiki th, table th { - color: black; - background: #FFFFCC; -} - -table.docutils { - margin-left: 5%; - margin-right: 5%; -} - -table.wiki, table.wiki th, table.wiki td { border: 1px solid black; } -table.wiki th * p { text-align: center; } -table.wiki * p { margin: 0pt; } -table.wiki * blockquote { margin: 0pt; } -table { border-collapse: collapse; } -table th, table td { border: 1px solid black; - padding: 2px 10px 2px 10px; } - -table.docinfo { - margin-top: 10pt; - margin-left: auto; - margin-right: 0pt; - border: 10px solid #303030; - border-collapse: collapse; - background: #303030; - font-size: 90%; - font-family: sans-serif; -} - -table.docinfo tr { - border-bottom: 1px dotted white; -} - -th.docinfo-name, -table.docinfo td, -table.docinfo td a:link, -table.docinfo td a:active, -table.docinfo td a:visited, -table.docinfo td a:focus, -table.docinfo td a:hover -{ - border: 0px solid white; - background: #303030; - color: white; - text-align: left; - font-weight: bold; -} - -th.docinfo-name { - font-weight: normal; -} - -table.docinfo td { - font-weight: bold; -} - -span.ul { - text-decoration: underline; -} - -* span.smallcaps { - /*font-variant: "small-caps";*/ - text-transform: "uppercase"; - font-size: "smaller"; -} - - -span.cb { - font-family: "andale mono", monospace; - font-weight: bold; - white-space: pre; -} - -span.fboxtt { - border: 1px solid black; - padding: 0px 4px; - font-family: "andale mono", monospace; - font-weight: bold; - white-space: pre; -} - -#notice.system-message, .notice.system-message { - color: black; - background: #DDFFDD; - padding-top: 5pt; - padding-bottom: 5pt; - border: 1px none #55BB55; - border-top-width: 4px; - border-top-style: solid; -} - -#content.error .message, div.system-message { - color: #550000; - background: #ffddcc; - border: 2px none #dd0000; - border-top-width: 4px; - border-top-style: solid; - padding: .5em; - margin: 1em 0; -} - -#main { - float: right; - width: 70%; - padding: 0pt; - margin: 0pt; - min-height: 700px; - background: white; -} - -div#main h1 { - border-bottom: 2px solid #09550b; -} - -div#main div.section h1 { - border-bottom: none; -} - -#cmscontent { - padding: 0pt 4% 10pt 4%; - margin: 0pt; -} - -div#htmlerrorcontents { - padding: 10pt 4% 10pt 4%; - margin: 0pt; -} - -div#htmlerrorcontents span.cs { - font-size: 80%; - font-family: "andale mono", monospace; - white-space: pre; -} - -div#htmlerrorcontents hr.lang_separator { - border: 1px dotted black; - border-style: none none dotted; - margin-top: 20pt; - margin-bottom: 10pt; -} - -#embedcontent { - border: 0pt; - padding: 0pt; - margin: 0pt; -} - -#sidebar { - float: left; - width: 29.9%; - padding: 0 0 0 0; - margin: 0 0 0 0; - color: white; - background: #09550B; - /* - min-height: 300px; - background: #f2f2f2; - border-right: 1px solid #ccc; - padding: 0 0 0 10px; - */ -} diff --git a/documentation/UsersGuide/UsersGuide.html b/documentation/UsersGuide/UsersGuide.html deleted file mode 100644 index b22602be..00000000 --- a/documentation/UsersGuide/UsersGuide.html +++ /dev/null @@ -1,2096 +0,0 @@ - - - - - - - - - - - -
    - - - - - - - - - - - - - - -


    -
    -

    Coriolis User's Guide

    -


    -
    - The pdf version of this document is available here:
    - Coriolis User's Guide -
    -


    -
    -

    Credits & License

    -

    Hurricane -Rémy Escassut & - Christian Masson

    -
    -

    Etesian -Gabriel Gouvine

    -
    -

    Stratus -Sophie Belloeil

    -
    -

    Knik -Damien Dupuis

    -
    -

    Kite, - Unicorn -Jean-Paul Chaput

    -


    -

    The Hurricane data-base is copyright© Bull 2000-2016 and is -released under the terms of the lgpl license. All other tools are -copyright© upmc 2008-2016 and released under the gpl -license.

    -

    Others important contributors to Coriolis are Christophe Alexandre, -Hugo Clement, Marek Sroka and Wu Yifei.

    -

    The Knik router makes use of the Flute software, which is -copyright© Chris C. N. Chu from the Iowa State University -(http://home.eng.iastate.edu/~cnchu/).

    -


    -
    -
    -

    Release Notes

    -
    -

    Release 1.0.1475

    -

    This is the first preliminary release of the Coriolis 2 framework.

    -

    This release mainly ships the global router Knik and the detailed router -Kite. Together they aim to replace the Alliance Nero router. -Unlike Nero, Kite is based on an innovating routing modeling and ad-hoc -algorithm. Although it is released under gpl license, the source code -will be avalaible later. -

    -

    Contents of this release:

    -
      -
    1. A graphical user interface (viewer only).
    2. -
    3. The Knik global router.
    4. -
    5. The Kite detailed router.
    6. -
    -

    Supported input/output formats:

    -
      -
    • Alliance vst (netlist) & ap (physical) formats.
    • -
    • Even if there are some references to the Cadence lefdef format, its -support is not included because it depends on a library only available -to Si2 affiliated members.
    • -
    -
    -
    -

    Release 1.0.1963

    -

    Release 1963 is alpha. All the tools from Coriolis 1 have been ported into -this release.

    -

    Contents of this release:

    -
      -
    1. The Stratus netlist capture language (GenLib replacement).
    2. -
    3. The Mauka placer (still contains bugs).
    4. -
    5. A graphical user interface (viewer only).
    6. -
    7. The Knik global router.
    8. -
    9. The Kite detailed router.
    10. -
    11. Partially implemented python support for configuration files -(alternative to xml).
    12. -
    13. A documentation (imcomplete/obsoleted in Hurricane's case).
    14. -
    -
    -
    -

    Release 1.0.2049

    -

    Release 2049 is Alpha.

    -

    Changes of this release:

    -
      -
    1. The Hurricane documentation is now accurate. Documentation -for the Cell viewer and CRLcore has been added.
    2. -
    3. More extensive Python support for all the components of -Coriolis.
    4. -
    5. Configuration is now completly migrated under Python. -xml loaders can still be useds for compatibilty.
    6. -
    7. The cgt main has been rewritten in Python.
    8. -
    -
    -
    -

    Release v2.0.1

    -
      -
    1. Migrated the repository from svn to git, and release complete sources. -As a consequence, we drop the distribution packaging support and give -public read-only access to the repository.
    2. -
    3. Deep rewrite of the Katabatic database and Kite detailed router, -achieve a speedup factor greater than 20...
    4. -
    -
    -
    -

    Release v2.1

    -
      -
    1. Replace the old simulated annealing placer Mauka by the analytical placer -Etesian and its legalization and detailed placement tools.
    2. -
    3. Added a Blif format parser to process circuits generated by the Yosys and ABC -logic synthetizers.
    4. -
    5. The multiples user defined configuration files are now grouped under -a common hidden (dot) directory .coriolis2 and the file extension -is back from .conf to .py.
    6. -
    - - - - -
    -
    -

    Release v2.2

    -
      -
    1. Added JSON import/export of the whole Hurricane DataBase. Two save mode -are supported: Cell mode (standalone) or Blob mode, which dump the -whole design down and including the standard cells.
    2. -
    -


    -
    -
    -
    -

    Installation

    -
    -

    Note

    -

    As the sources are being released, the binary packaging is dropped. -You still may find older version here: http://asim.lip6.fr/pub/coriolis/2.0 .

    -
    -

    In a nutshell, building source consist in pulling the git repository then -running the ccb installer.

    -

    Main building prerequisites:

    -
      -
    • cmake
    • -
    • C++11-capable compiler
    • -
    • RapidJSON
    • -
    • python2.7
    • -
    • boost
    • -
    • libxml2
    • -
    • bzip2
    • -
    • yacc & lex
    • -
    • Qt 4 or Qt 5
    • -
    -

    Building documentation prerequisites:

    -
      -
    • doxygen
    • -
    • latex
    • -
    • latex2html
    • -
    • python-docutils (for reStructuredText)
    • -
    -

    Optional libraries:

    -
      -
    • LEF/DEF (from SI2)
    • -
    -

    For other distributions, refer to their own packaging system.

    -


    -
    -

    Fixed Directory Tree

    -

    In order to simplificate the work of the ccb installer, the source, build -and installation tree is fixed. To successfully compile Coriolis you must -follow it exactly. The tree is relative to the home directory of the user -building it (noted ~/ or $HOME/). Only the source -directory needs to be manually created by the user, all others will be -automatically created either by ccb or the build system.

    - ---- - - - - - - - - - - - - - - - - - - - - - - -
    Sources
    -
    Sources root
    -
    under git
    -
    -
    -
    ~/coriolis-2.x/src
    -
    ~/coriolis-2.x/src/coriolis
    -
    -
    Architecture Dependant Build
    -
    Linux, SL 7, 64 bits
    -
    Linux, SL 6, 32 bits
    -
    Linux, SL 6, 64 bits
    -
    Linux, Fedora, 64 bits
    -
    Linux, Fedora, 32 bits
    -
    FreeBSD 8, 32 bits
    -
    FreeBSD 8, 64 bits
    -
    Windows 7, 32 bits
    -
    Windows 7, 64 bits
    -
    Windows 8.x, 32 bits
    -
    Windows 8.x, 64 bits
    -
    -
    -
    ~/coriolis-2.x/Linux.el7_64/Release.Shared/build/<tool>
    -
    ~/coriolis-2.x/Linux.slsoc6x/Release.Shared/build/<tool>
    -
    ~/coriolis-2.x/Linux.slsoc6x_64/Release.Shared/build/<tool>
    -
    ~/coriolis-2.x/Linux.fc_64/Release.Shared/build/<tool>
    -
    ~/coriolis-2.x/Linux.fc/Release.Shared/build/<tool>
    -
    ~/coriolis-2.x/FreeBSD.8x.i386/Release.Shared/build/<tool>
    -
    ~/coriolis-2.x/FreeBSD.8x.amd64/Release.Shared/build/<tool>
    -
    ~/coriolis-2.x/Cygwin.W7/Release.Shared/build/<tool>
    -
    ~/coriolis-2.x/Cygwin.W7_64/Release.Shared/build/<tool>
    -
    ~/coriolis-2.x/Cygwin.W8/Release.Shared/build/<tool>
    -
    ~/coriolis-2.x/Cygwin.W8_64/Release.Shared/build/<tool>
    -
    -
    Architecture Dependant Install
    Linux, SL 6, 32 bits~/coriolis-2.x/Linux.slsoc6x/Release.Shared/install/
    FHS Compliant Structure under Install
    -
    Binaries
    -
    Libraries (Python)
    -
    Include by tool
    -
    Configuration files
    -
    Doc, by tool
    -
    -
    -
    .../install/bin
    -
    .../install/lib
    -
    .../install/include/coriolis2/<project>/<tool>
    -
    .../install/etc/coriolis2/
    -
    .../install/share/doc/coriolis2/en/html/<tool>
    -
    -
    -
    -

    Note

    -

    Alternate build types: the Release.Shared means an optimized build -with shared libraries. But there are also available Static instead of Shared -and Debug instead of Release and any combination of them.

    -

    Static do not work because I don't know yet to mix statically linked binaries -and Python modules (which must be dynamic).

    -
    -


    -
    -
    -

    Building Coriolis

    -

    First step is to install the prerequisites. Currently, only RapidJSON. -As RapidJSON is evolving fast, if you encounter compatibility problems, -the exact version we compiled against is given below.

    -
    -dummy@lepka:~$ mkdir -p ~/coriolis-2.x/src/support
    -dummy@lepka:~$ cd ~/coriolis-2.x/src/support
    -dummy@lepka:~$ git clone http://github.com/miloyip/rapidjson
    -dummy@lepka:~$ git checkout ec322005072076ef53984462fb4a1075c27c7dfd
    -
    -

    The second step is to create the source directory and pull the git repository:

    -
    -dummy@lepka:~$ mkdir -p ~/coriolis-2.x/src
    -dummy@lepka:~$ cd ~/coriolis-2.x/src
    -dummy@lepka:~$ git clone https://www-soc.lip6.fr/git/coriolis.git
    -
    -

    Third and final step, build & install:

    -
    -dummy@lepka:src$ ./bootstrap/ccb.py --project=support  \
    -                                    --project=coriolis \
    -                                    --make="-j4 install"
    -dummy@lepka:src$ ./bootstrap/ccb.py --project=support  \
    -                                    --project=coriolis \
    -                                    --doc --make="-j1 install"
    -
    -

    We need to separate to perform a separate installation of the documentation because it -do not support to be generated with a parallel build. So we compile & install in a first -stage in -j4 (or whatever) then we generate the documentation in -j1

    -

    Under rhel6 or clones, you must build using the devtoolset2:

    -
    -dummy@lepka:src$ ./bootstrap/ccb.py --project=coriolis \
    -                                    --devtoolset-2 --make="-j4 install"
    -
    -

    If you want to uses Qt 5 instead of Qt 4, you may add the --qt5 argument.

    -

    The complete list of ccb functionalities can be accessed with the --help argument. -It also may be run in graphical mode (--gui).

    -
    -

    Building the Devel Branch

    -

    In the Coriolis git repository, two branches are present:

    -
      -
    • The master branch, which contains the latest stable version. This is the -one used by default if you follow the above instructions.

      -
    • -
    • The devel branch, which obviously contains the latest commits from the -development team. To use it instead of the master one, do the following -command just after the first step:

      -
      -dummy@lepka:~$ git checkout devel
      -dummy@lepka:src$ ./bootstrap/ccb.py --project=coriolis \
      -                                    --make="-j4 install" --debug
      -
      -

      Be aware that it may requires newer versions of the dependencies and may introduce -incompatibilites with the stable version.

      -

      In the (unlikely) event of a crash of cgt, as it is a Python script, the right -command to run gdb on it is:

      -
      -dummy@lepka:work$ gdb python core.XXXX
      -
      -
    • -
    -


    -
    -
    -

    Additionnal Requirement under MacOS

    -

    Coriolis make uses of the boost::python module, but the MacPorts boost -seems unable to work with the Python bundled with MacOS. So you have to install -both of them from MacPorts:

    -
    -dummy@macos:~$ port install boost +python27
    -dummy@macos:~$ port select python python27
    -dummy@macos:-$ export DYLD_FRAMEWORK_PATH=/opt/local/Library/Frameworks
    -
    -

    The last two lines tell MacOS to use the Python from MacPorts and not from -the system.

    -

    Then proceed with the generic install instructions.

    -
    -
    -
    -

    Packaging Coriolis

    -

    Packager should not uses ccb, instead bootstrap/Makefile.package is provided -to emulate a top-level autotool makefile. Just copy it in the root of the -Coriolis git repository (~/corriolis-2.x/src/coriolis/) and build.

    -

    Sligthly outaded packaging configuration files can also be found under bootstrap/:

    -
      -
    • bootstrap/coriolis2.spec.in for rpm based distributions.
    • -
    • bootstrap/debian for Debian based distributions.
    • -
    -
    -
    -

    Hooking up into Alliance

    -

    Coriolis relies on Alliance for the cell libraries. So after installing or -packaging, you must configure it so that it can found those libraries.

    -

    This is done by editing the one variable cellsTop in the Alliance helper -(see Alliance Helper). This variable must point to the directory of the -cells libraries. In a typical installation, this is generally -/usr/share/alliance/cells.

    -
    -
    -

    Setting up the Environment (coriolisEnv.py)

    -

    To simplify the tedious task of configuring your environment, a helper is provided -in the bootstrap source directory (also installed in the directory -.../install/etc/coriolis2/) :

    -
    -~/coriolis-2.x/src/coriolis/bootstrap/coriolisEnv.py
    -
    -

    Use it like this:

    -
    -dummy@lepka:~> eval `~/coriolis-2.x/src/coriolis/bootstrap/coriolisEnv.py`
    -
    -
    -

    Note

    -

    Do not call that script in your environement initialisation. -When used under rhel6 or clones, it needs to be run in the devtoolset2 -environement. The script then launch a new shell, which may cause an -infinite loop if it's called again in, say ~/.bashrc.

    -

    Instead you may want to create an alias:

    -
    -alias c2r='eval "`~/coriolis-2.x/src/coriolis/bootstrap/coriolisEnv.py`"'
    -
    -
    -


    -
    -
    -
    -

    Documentation

    -

    The general index of the documentation for the various parts of Coriolis -are avalaibles here Coriolis Tools Documentation.

    -
    -

    Note

    -

    Python Documentation: -Most of the documentation is related to the C++ API and implemetation of -the tools. However, the Python bindings have been created so they -mimic as closely as possible the C++ interface, so the documentation -applies to both languages with only minor syntactic changes.

    -
    -
    -

    General Software Architecture

    -

    Coriolis has been build with respect of the classical paradigm that the -computational instensive parts have been written in C++, and almost -everything else in Python. To build the Python interface we used -two methods:

    -
      -
    • For self-contained modules boost::python (mainly in vlsisapd).
    • -
    • For all modules based on Hurricane, we created our own wrappers due -to very specific requirements such as shared functions between modules -or C++/Python secure bi-directional object deletion.
    • -
    -

    Coriolis Software Schematic

    -
    -
    -
    -

    Coriolis Configuration & Initialisation

    -

    All configuration & initialization files are Python scripts, despite their -.conf extention. From a syntactic point of view, there is no difference -between the system-wide configuration files and the user's configuration, -they may use the same Python helpers. -

    -

    Configuration is done in two stages:

    -
      -
    1. Selecting the symbolic technology.
    2. -
    3. Loading the complete configuration for the given technology.
    4. -
    -
    -

    First Stage: Symbolic Technology Selection

    -

    -The initialization process is done by executing, in order, the following -file(s):

    - ----- - - - - - - - - - - - - - - - - - - - - -
    OrderMeaningFile
    1The system setting/etc/coriolis2/techno.conf
    2The user's global setting${HOME}/.coriolis2/techno.py
    3The user's local setting<CWD>/.coriolis2/techno.py
    -

    Thoses files must provides only two variables, the name of the symbolic technology -and the one of the real technology. For example:

    -
    -# -*- Mode:Python -*-
    -
    -symbolicTechno = 'cmos'
    -realTechno     = 'hcmos9'
    -
    -
    -
    -

    Second Stage: Technology Configuration Loading

    -

    -The TECHNO variable is set by the first stage and it's the name of the -symbolic technology. A directory of that name, with all the configuration files, -must exists in the configuration directory. In addition to the technology-specific -directories, a common/ directory is there to provides a trunk for all the -identical datas across the various technologies. The initialization process is done -by executing, in order, the following file(s):

    - ----- - - - - - - - - - - - - - - - - - - - - -
    OrderMeaningFile
    1The system initialization/etc/coriolis2/<TECHNO>/<TOOL>.conf
    2The user's global initialization${HOME}/.coriolis2/settings.py
    3The user's local initialization<CWD>/.coriolis2/settings.py
    -
    -

    Note

    -

    The loading policy is not hard-coded. It is implemented -at Python level in /etc/coriolis2/coriolisInit.py, and thus may be easily be -amended to whatever site policy.

    -

    The truly mandatory requirement is the existence of coriolisInit.py -which must contain a coriolisConfigure() function with no argument.

    -
    -
    -
    -

    Configuration Helpers

    -

    To ease the writing of configuration files, a set of small helpers -is available. They allow to setup the configuration parameters through -simple assembly of tuples. The helpers are installed under the directory:

    -
    -<install>/etc/coriolis2/
    -
    -

    Where <install>/ is the root of the installation.

    -


    -
    -

    Alliance Helper

    -

    The configuration file must provide a allianceConfig tuple of -the form:

    -
    -cellsTop = '/usr/share/alliance/cells/'
    -
    -allianceConfig = \
    -    ( ( 'SYMBOLIC_TECHNOLOGY', helpers.sysConfDir+'/technology.symbolic.xml'   )
    -    , ( 'REAL_TECHNOLOGY'    , helpers.sysConfDir+'/technology.cmos130.s2r.xml')
    -    , ( 'DISPLAY'            , helpers.sysConfDir+'/display.xml'               )
    -    , ( 'CATALOG'            , 'CATAL')
    -    , ( 'WORKING_LIBRARY'    , '.')
    -    , ( 'SYSTEM_LIBRARY'     , ( (cellsTop+'sxlib'   , Environment.Append)
    -                               , (cellsTop+'dp_sxlib', Environment.Append)
    -                               , (cellsTop+'ramlib'  , Environment.Append)
    -                               , (cellsTop+'romlib'  , Environment.Append)
    -                               , (cellsTop+'rflib'   , Environment.Append)
    -                               , (cellsTop+'rf2lib'  , Environment.Append)
    -                               , (cellsTop+'pxlib'   , Environment.Append) ) )
    -    , ( 'SCALE_X'            , 100)
    -    , ( 'IN_LO'              , 'vst')
    -    , ( 'IN_PH'              , 'ap')
    -    , ( 'OUT_LO'             , 'vst')
    -    , ( 'OUT_PH'             , 'ap')
    -    , ( 'POWER'              , 'vdd')
    -    , ( 'GROUND'             , 'vss')
    -    , ( 'CLOCK'              , '^ck.*')
    -    , ( 'BLOCKAGE'           , '^blockageNet*')
    -    )
    -
    -

    The example above shows the system configuration file, with all the -available settings. Some important remarks about thoses settings:

    -
      -
    • In it's configuration file, the user do not need to redefine all the settings, -just the one he wants to change. In most of the cases, the SYSTEM_LIBRARY, -the WORKING_LIBRARY and the special net names (at this point there is not -much alternatives for the others settings).

      -
    • -
    • SYSTEM_LIBRARY setting: Setting up the library search path. -Each library entry in the tuple will be added to the search path according -to the second parameter:

      -
        -
      • Environment::Append: append to the search path.
      • -
      • Environment::Prepend: insert in head of the search path.
      • -
      • Environment::Replace: look for a library of the same name and replace -it, whithout changing the search path order. If no library of that name -already exists, it is appended.
      • -
      -

      A library is identified by it's name, this name is the last component of the -path name. For instance: /soc/alliance/sxlib will be named sxlib. -Implementing the Alliance specification, when looking for a Cell name, -the system will browse sequentially trought the library list and returns -the first Cell whose name match.

      -
    • -
    • For POWER, GROUND, CLOCK and BLOCKAGE net names, a regular -expression (gnu regexp) is expected.

      -
    • -
    • The helpers.sysConfDir variable is supplied by the helpers, it is the -directory in which the system-wide configuration files are locateds. -For a standard installation it would be: /soc/coriolis2.

      -
    • -
    - - - - - - - - - - - - - - - - -

    A typical user's configuration file would be:

    -
    -import os
    -
    -homeDir = os.getenv('HOME')
    -
    -allianceConfig = \
    -    ( ('WORKING_LIBRARY'    , homeDir+'/worklib')
    -    , ('SYSTEM_LIBRARY'     , ( (homeDir+'/mylib', Environment.Append) ) )
    -    , ('POWER'              , 'vdd.*')
    -    , ('GROUND'             , 'vss.*')
    -    )
    -
    -
    -
    -

    Tools Configuration Helpers

    -

    All the tools uses the same helper to load their configuration (a.k.a. -Configuration Helper). Currently the following configuration system-wide -configuration files are defined:

    -
      -
    • misc.conf: commons settings or not belonging specifically to a tool.
    • -
    • etesian.conf: for the Etesian tool.
    • -
    • kite.conf: for the Kite tool.
    • -
    • stratus1.conf: for the Stratus1 tool.
    • -
    -

    Here is the contents of etesian.conf:

    -
    -# Etesian parameters.
    -parametersTable = \
    -    ( ('etesian.aspectRatio'    , TypePercentage, 100    , { 'min':10, 'max':1000 } )
    -    , ('etesian.spaceMargin'    , TypePercentage, 5      )
    -    , ('etesian.uniformDensity' , TypeBool      , False  )
    -    , ('etesian.routingDriven'  , TypeBool      , False  )
    -    , ("etesian.effort"         , TypeEnumerate , 2
    -      , { 'values':( ("Fast"    , 1)
    -                   , ("Standard", 2)
    -                   , ("High"    , 3)
    -                   , ("Extreme" , 4) ) }
    -      )
    -    , ("etesian.graphics"       , TypeEnumerate , 2
    -      , { 'values':( ("Show every step"  , 1)
    -                   , ("Show lower bound" , 2)
    -                   , ("Show result only" , 3) ) }
    -      )
    -    )
    -
    -layoutTable = \
    -    ( (TypeTab   , 'Etesian', 'etesian')
    -
    -    , (TypeTitle , 'Placement area')
    -    , (TypeOption, "etesian.aspectRatio"   , "Aspect Ratio, X/Y (%)", 0 )
    -    , (TypeOption, "etesian.spaceMargin"   , "Space Margin"         , 1 )
    -    , (TypeRule  ,)
    -    , (TypeTitle , 'Etesian - Placer')
    -    , (TypeOption, "etesian.uniformDensity", "Uniform density"      , 0 )
    -    , (TypeOption, "etesian.routingDriven" , "Routing driven"       , 0 )
    -    , (TypeOption, "etesian.effort"        , "Placement effort"     , 1 )
    -    , (TypeOption, "etesian.graphics"      , "Placement view"       , 1 )
    -    , (TypeRule  ,)
    -    )
    -
    -

    Taxonomy of the file:

    -
      -
    • It must contains, at least, the two tables:
        -
      • parametersTable, defines & initialise the configuration variables.
      • -
      • layoutTables, defines how the various parameters will be displayed -in the configuration window (The Settings Tab).
      • -
      -
    • -
    • The parametersTable, is a tuple (list) of tuples. Each entry in the list -describe a configuration parameter. In it's simplest form, it's a quadruplet -(TypeOption, 'paramId', ParameterType, DefaultValue) with:
        -
      1. TypeOption, tells that this tuple describe a parameter.
      2. -
      3. paramId, the identifier of the parameter. Identifiers are defined -by the tools. The list of parameters is detailed in each tool section.
      4. -
      5. ParameterType, the kind of parameter. Could be:
          -
        • TypeBool, boolean.
        • -
        • TypeInt, signed integer.
        • -
        • TypeEnumerate, enumerated type, needs extra entry.
        • -
        • TypePercentage, percentage, expressed between 0 and 100.
        • -
        • TypeDouble, float.
        • -
        • TypeString, character string.
        • -
        -
      6. -
      7. DefaultValue, the default value for that parameter.
      8. -
      -
    • -
    -
    -
    -
    -

    Hacking the Configuration Files

    -

    Asides from the symbols that gets used by the configuration helpers like -allianceConfig or parametersTable, you can put pretty much anything -in <CWD>/.coriolis2/settings.py (that is, written in Python).

    -

    For example:

    -
    -# -*- Mode:Python -*-
    -
    -defaultStyle = 'Alliance.Classic [black]'
    -
    -# Regular Coriolis configuration.
    -parametersTable = \
    -    ( ('misc.catchCore'           , TypeBool      , False  )
    -    , ('misc.info'                , TypeBool      , False  )
    -    , ('misc.paranoid'            , TypeBool      , False  )
    -    , ('misc.bug'                 , TypeBool      , False  )
    -    , ('misc.logMode'             , TypeBool      , True   )
    -    , ('misc.verboseLevel1'       , TypeBool      , False  )
    -    , ('misc.verboseLevel2'       , TypeBool      , True   )
    -    , ('misc.minTraceLevel'       , TypeInt       , 0      )
    -    , ('misc.maxTraceLevel'       , TypeInt       , 0      )
    -    )
    -
    -# Some ordinary Python script...
    -import os
    -
    -print '       o  Cleaning up ClockTree previous run.'
    -for fileName in os.listdir('.'):
    -  if fileName.endswith('.ap') or (fileName.find('_clocked.') >= 0):
    -    print '          - <%s>' % fileName
    -    os.unlink(fileName)
    -
    -

    See Python Interface to Coriolis for more details those capabilities.

    -
    -
    -
    -

    CGT - The Graphical Interface

    -

    The Coriolis graphical interface is split up into two windows.

    -
      -
    • The Viewer, with the following features:
        -
      • Basic load/save capabilities.
      • -
      • Display the current working cell. Could be empty if the design -is not yet placed.
      • -
      • Execute Stratus Scripts.
      • -
      • Menu to run the tools (placement, routage).
      • -
      -
    • -
    -

    Features are detailed in Viewer & Tools.

    -

    Viewer Basic Snapshot

    -
      -
    • The Controller, which allows:
        -
      • Tweak what is displayer by the Viewer. Through the Look, -Filter and Layers&Gos tabs.
      • -
      • Browse the netlist with eponym tab.
      • -
      • Show the list of selected objects (if any) with selection
      • -
      • Walk through the Database, the Cell or the Selection with Inspector. -This is an advanced feature, reserved for experimented users.
      • -
      • The tab Settings which give access to all the settings. -They are closely related to Configuration & Initialisation.
      • -
      -
    • -
    -

    Controller Basic Snapshot

    -
    -
    -

    Viewer & Tools

    -
    -

    Stratus Netlist Capture

    -

    Stratus is the replacement for GenLib procedural netlist capture language. -It is designed as a set of Python classes, and comes with it's own documentation -(Stratus Documentation)

    -
    -
    -

    The Hurricane Data-Base

    -

    The Alliance flow is based on the mbk data-base, which has one data-structure -for each view. That is, Lofig for the logical view and Phfig for the physical -view. The place and route tools were responsible for maintaining (or not) the -coherency between views. Reflecting this weak coupling between views, each one -was stored in a separate file with a specific format. The logical view is stored -in a vst file in vhdl format and the physical in an ap file in an ad-hoc format.

    -

    The Coriolis flow is based on the Hurricane data-base, which has a unified -structure for logical and physical view. That data structure is the Cell object. -The Cell can have any state between pure netlist and completly placed and -routed design. Although the memory representation of the views has deeply -changed we still use the Alliance files format, but they now really represent -views of the same object. The point is that one must be very careful about -view coherency when going to and from Coriolis.

    -

    As for the second release, Coriolis can be used only for three purposes :

    -
      -
    • Placing a design, in which case the netlist view must be present.
    • -
    • Routing a design, in that case the netlist -view and the layout view must be present and layout view must contain -a placement. Both views must have the same name. When saving the routed design, -it is advised to change the design name otherwise the original unrouted placement -in the layout view will be overwritten.
    • -
    • Viewing a design, the netlist view must be present, if a layout -view is present it still must have the same name but it can be in any -state.
    • -
    -
    -
    -

    Synthetizing and loading a design

    -

    Coriolis supports several file formats. It can load all file format -from the Alliance toolchain (.ap for layout, behavioural and structural vhdl .vbe and .vst), -BLIF netlist format as well as benchmark formats from the ISPD contests.

    -

    It can be compiled with LEF/DEF support, although it requires acceptance of the SI2 license -and may not be compiled in your version of the software.

    -
    -

    Synthesis under Yosys

    -

    You can create a BLIF file from the Yosys synthetizer, which can be imported under Coriolis. -Most libraries are specified as a .lib liberty file and a .lef LEF file. -Yosys opens most .lib files with minor modifications, but LEF support in Coriolis relies on SI2. -If Coriolis hasn't been compiled against it, the library is given in Alliance .ap format. -Some free libraries already provide both .ap and .lib files.

    -

    Once you have installed a common library under Yosys and Coriolis, just synthetize your design -with Yosys and import it (as Blif without the extension) under Coriolis to perform place&route.

    -
    -
    -

    Synthesis under Alliance

    -

    Alliance is an older toolchain but has been extensively used for years. Coriolis can import -and write Alliance designs and libraries directly.

    -
    -
    -
    -

    Etesian -- Placer

    -

    The Etesian placer is a state of the art (as of 2015) analytical placer. It is -within 5% of other placers' solutions, but is normally a bit worse than ePlace. -This Coriolis tool is actually an encapsulation of Coloquinte which is the placer.

    -
    -

    Note

    -

    Instance Uniquification Unsupported: a same logical instance cannot have -two different placements. So, either you manually make a clone of it or you -supply a placement for it. We need to implement uniquification in the -Hurricane database.

    -
    -

    -Hierarchical Placement

    -

    The placement area is defined by the top cell abutment box.

    -

    When placing a complete hierarchy, the abutment boxes of the cells (models) other than -the top cell are sets identical to the one of the top cell and their instances are -all placed at position (0,0,ID). That is, all the abutments boxes, whatever the -hierarchical level, defines the same area (they are exactly superposed).

    -

    We choose this scheme because the placer will see all the instances as virtually -flattened, so they can be placed anywhere inside the top-cell abutment box.

    -

    Etesian Abutment Box

    -

    -Computing the Placement Area

    -

    The placement area is computed using the etesian.aspectRatio and etesian.spaceMargin -parameters only if the top-cell has an empty abutment box. If the top-cell abutment -box has to be set, then it is propagated to all the instances models recursively.

    -

    -Reseting the Placement

    -

    Once a placement has been done, the placer cannot reset it (will be implemented -later). To perform a new placement, you must restart cgt. In addition, if you -have saved the placement on disk, you must erase any .ap file, which are -automatically reloaded along with the netlist (.vst).

    -

    -Limitations

    -

    Etesian supports standard cells and fixed macros. As for the Coriolis 2.1 version, -it doesn't support movable macros, and you must place every macro beforehand. -Timing and routability analysis are not included either, and the returned placement -may be unroutable.

    -


    -
    -

    Etesian Configuration Parameters

    - ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Parameter IdentifierTypeDefault
    Etesian Parameters
    etesian.aspectRatioTypePercentage100
    Define the height on width H/W aspect -ratio, can be comprised between 10 and 1000
    etesian.spaceMarginTypePercentage5
    The extra white space added to the total area -of the standard cells
    etesian.uniformDensityTypeBoolFalse
    Whether the cells will be spread envenly -across the area or allowed to form denser -clusters
    etesian.effortTypeInt2
    Sets the balance between the speed of the -placer and the solution quality
    etesian.routingDrivenTypeBoolFalse
    Whether the tool will try routing iterations -and whitespace allocation to improve -routability; to be implemented
    etesian.graphicsTypeInt2

    How often the display will be refreshed -More refreshing slows the placer.

    -
      -
    • 1 shows both upper and lower bounds
    • -
    • 2 only shows lower bound results
    • -
    • 3 only shows the final results
    • -
    -
    -
    -
    -
    -

    Knik -- Global Router

    -

    The quality of Knik global routing solutions are equivalent to those of FGR 1.0. -For an in-depth description of Knik algorithms, you may download the thesis of -D. Dupuis avalaible from here~: Knik Thesis.

    -

    The global router is (not yet) deterministic. To circumvent this limitation, -a global routing solution can be saved to disk and reloaded for later uses.

    -

    A global routing is saved into a file with the same name as the design and a -kgr extention. It is in Box Router output format.

    -

    Menus:

    -
      -
    • menu_KiteSaveGlobalRouting.
    • -
    • menu_KiteLoadGlobalRouting.
    • -
    -
    -
    -

    Kite -- Detailed Router

    -

    Kite no longer suffers from the limitations of Nero. It can route big designs -as its runtime and memory footprint is almost linear (with respect to the number -of gates). It has successfully routed design of more than 150K gates. -

    -

    However, this first release comes with the temporary the following -restrictions:

    -
      -
    • Works only with SxLib standard cell gauge.
    • -
    • Works always with 4 routing metal layers (M2 through M5).
    • -
    • Do not allow (take into account) pre-routed wires on signals -other than power or ground.
    • -
    -
    -

    Note

    -

    Slow Layer Assignment. Most of the time, the layer assignment stage is -fast (less than a dozen seconds), but in some instances it can take more -than a dozen minutes. This is a known bug and will be corrected in later -releases.

    -
    -

    After each run, Kite displays a set of completion ratios which must all -be equal to 100% if the detailed routing has been successfull. -In the event of a failure, on a saturated design, you may decrease the -edge saturation ratio (argument --edge) to balance more evenly the design -saturation. That is, the maximum saturation decrease at the price of a wider -saturated area and increased wirelength. This is the saturation of the -global router Knik, and you may increase/decrease by steps of 5%, -which represent one track. The maximum capacity of the SxLib gauge is -10 tracks in two layers, that makes 20 tracks by Knik edge.

    -

    Routing a design is done in four ordered steps:

    -
      -
    1. Detailed pre-route

      menu_KiteDetailedPreRoute.
    2. -
    3. Global routing

      menu_KiteGlobalRoute.
    4. -
    5. Detailed routing

      menu_KiteDetailedRoute.
    6. -
    7. Finalize routing

      menu_KiteFinalizeRoute.
    8. -
    -

    It is possible to supply to the router a complete wiring for some nets that the user's -wants to be routed according to a specific topology. The supplied topology must respect -the building rules of the Katabatic database (contacts must be, terminals, turns, h-tee -& v-tee only). During the first step Detailed Pre-Route the router will solve -overlaps between the segments, without making any dogleg. If no pre-routed topologies -are present, this step may be ommited. Any net routed at this step is then fixed and -become unmovable for the later stages.

    -

    After the detailed routing step the Kite data-structure is still active -(the Hurricane wiring is decorated). The finalize step performs the removal of -the Kite data-structure, and it is not advisable to save the design before -that step.

    -

    You may visualize the density (saturation) of either Knik (on edges) or -Kite (on GCells) until the routing is finalized. Special layers appears -to that effect in the The Layers&Go Tab.

    -
    -

    Kite Configuration Parameters

    -

    As Knik is only called through Kite, it's parameters also have -the kite. prefix.

    -

    The Katabatic parameters control the layer assignment step.

    -

    All the defaults value given below are from the default Alliance technology -(cmos and SxLib cell gauge/routing gauge).

    - ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Parameter IdentifierTypeDefault
    Katabatic Parameters
    katabatic.topRoutingLayerTypeStringMETAL5
    Define the highest metal layer that will be -used for routing (inclusive).
    katabatic.globalLengthThresholdTypeInt1450
    This parameter is used by a layer assignment -method which is no longer used (did not give -good results)
    katabatic.saturateRatioTypePercentage80
    If M(x) density is above this ratio, -move up feedthru global segments up from -depth x to x+2
    katabatic.saturateRpTypeInt8
    If a GCell contains more terminals -(RoutingPad) than that number, force a -move up of the connecting segments to those -in excess
    Knik Parameters
    kite.hTracksReservedLocalTypeInt3
    To take account the tracks needed inside a -GCell to build the local routing, decrease -the capacity of the edges of the global -router. Horizontal and vertical locally -reserved capacity can be distinguished for -more accuracy.
    kite.vTracksReservedLocalTypeInt3
    cf. kite.hTracksReservedLocal
    Kite Parameters
    kite.eventsLimitTypeInt4000002
    The maximum number of segment displacements, -this is a last ditch safety against infinite -loop. It's perhaps a little too low for big -designs
    kite.ripupCostTypeInt3
    Differential introduced between two ripup -cost to avoid a loop between two ripped up -segments
    kite.strapRipupLimitTypeInt16
    Maximum number of ripup for strap segments
    kite.localRipupLimitTypeInt9
    Maximum number of ripup for local segments
    kite.globalRipupLimitTypeInt5
    Maximum number of ripup for global segments, -when this limit is reached, triggers topologic -modification
    kite.longGlobalRipupLimitTypeInt5
    Maximum number of ripup for long global -segments, when this limit is reached, triggers -topological modification
    -
    -
    -
    -

    Executing Python Scripts in Cgt

    -

    Python/Stratus scripts can be executed either in text or graphical mode.

    -
    -

    Note

    -

    How Cgt Locates Python Scripts: -cgt uses the Python import mechanism to load Python scripts. -So you must give the name of your script whitout .py extention and -it must be reachable through the PYTHONPATH. You may uses the -dotted module notation.

    -
    -

    A Python/Stratus script must contains a function called ScriptMain() -with one optional argument, the graphical editor into which it may be -running (will be set to None in text mode). The Python interface to -the editor (type: CellViewer) is limited to basic capabilities -only.

    -

    Any script given on the command line will be run immediatly after the -initializations and before any other argument is processed.

    -

    For more explanation on Python scripts see Python Interface to Coriolis.

    -
    -
    -

    Printing & Snapshots

    -

    Printing or saving into a pdf is fairly simple, just uses the File -> Print -menu or the CTRL+P shortcut to open the dialog box.

    -

    The print functionality uses exactly the same rendering mechanism as for the -screen, beeing almost WYSIWYG. Thus, to obtain the best results it is advisable -to select the Coriolis.Printer look (in the Controller), which uses a -white background and much suited for high resolutions 32x32 pixels patterns

    -

    There is also two mode of printing selectable through the Controller -Settings -> Misc -> Printer/Snapshot Mode:

    - ----- - - - - - - - - - - - - - - -
    ModeDPI (approx.)Intended Usage
    Cell Mode150For single Cell printing or very small designs. -Patterns will be bigger and more readable.
    Design Mode300For designs (mostly commposed of wires and cells -outlines).
    -
    -

    Note

    -

    The pdf file size -Be aware that the generated pdf files are indeed only pixmaps. -So they can grew very large if you select paper format above A2 -or similar.

    -
    -

    -Saving into an image is subject to the same remarks as for pdf.

    -
    -
    -

    Memento of Shortcuts in Graphic Mode

    -

    The main application binary is cgt.

    - ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    CategoryKeysAction
    Moves
    -
    Up, -Down
    -
    Left, -Right
    -
    -
    Shift the view in the according direction
    FitfFit to the Cell abutment box
    RefreshCTRL+LTriggers a complete display redraw
    Gotogapperture is the minimum side of the area -displayed around the point to go to. It's an -alternative way of setting the zoom level
    Zoomz, -mRespectively zoom by a 2 factor and unzoom -by a 2 factor
    -
    BigMouse
    -
    Area Zoom
    -
    -
    You can perform a zoom to an area. -Define the zoom area by holding down the left -mouse button while moving the mouse.
    Selection
    -
    BigMouse
    -
    Area Selection
    -
    -
    You can select displayed objects under an area. -Define the selection area by holding down the -right mouse button while moving the mouse.
    -
    BigMouse
    -
    Toggle Selection
    -
    -
    You can toggle the selection of one object under -the mouse position by pressing CTRL and -pressing down the right mouse button. A popup -list of what's under the position shows up into -which you can toggle the selection state of one -item.
    SToggle the selection visibility
    ControllerCTRL+I

    Show/hide the controller window.

    -

    It's the Swiss Army Knife of the viewer. -From it, you can fine-control the display and -inspect almost everything in your design.

    -
    Rulersk, -ESCOne stroke on k enters the ruler mode, in -which you can draw one ruler. You can exit the -ruler mode by pressing ESC. Once in ruler -mode, the first click on the left mouse button -sets the ruler's starting point and the second -click the ruler's end point. The second click -exits automatically the ruler mode.
    KClears all the drawn rulers
    PrintCTRL+PCurrently rather crude. It's a direct copy of -what's displayed in pixels. So the resulting -picture will be a little blurred due to -anti-aliasing mechanism.
    Open/CloseCTRL+OOpens a new design. The design name must be -given without path or extention.
    CTRL+WClose the current viewer window, but do not quit -the application.
    CTRL+QCTRL+Q quit the application -(closing all windows).
    HierarchyCTRL+DownGo one hierarchy level down. That is, if there -is an instance under the cursor position, load -it's model Cell in place of the current one.
    CTRL+UpGo one hierarchy level up. if we have entered -the current model through CTRL+Down -reload the previous model (the one -in which this model is instanciated).
    -
    -
    -

    Cgt Command Line Options

    -

    Appart from the obvious --text options, all can be used for text and graphical mode.

    - ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ArgumentsMeaning
    -t|--textInstruct cgt to run in text mode.
    -L|--log-modeDisable the uses of ansi escape sequence on -the tty. Useful when the output is -redirected to a file.
    -c <cell>|--cell=<cell>The name of the design to load, without -leading path or extention.
    -g|--load-globalReload a global routing solution from disk. -The file containing the solution must be named -<cell>.kgr.
    --save-globalSave the global routing solution, into a file -named <design>.kgr.
    -e <ratio>|--edge=<ratio>Change the edge capacity for the global -router, between 0 and 1 (Knik).
    -G|--global-routeRun the global router (Knik).
    -R|--detailed-routeRun the detailed router (Kite).
    -s|--save-design=<routed>The design into which the routed layout will -be saved. It is strongly recommanded to choose -a different name from the source (unrouted) -design.
    --events-limit=<count>The maximal number of events after which the -router will stops. This is mainly a failsafe -against looping. The limit is sets to 4 -millions of iteration which should suffice to -any design of 100K. gates. For bigger -designs you may wants to increase this limit.
    --stratus-script=<module>Run the Python/Stratus script module. -See Python Scripts in Cgt.
    -

    Some Examples :

    -
      -
    • Run both global and detailed router, then save the routed design :

      -
      -> cgt -v -t -G -R --cell=design --save-design=design_kite
      -
      -
    • -
    • Load a previous global solution, run the detailed router, then save the -routed design :

      -
      -> cgt -v -t --load-global -R --cell=design --save-design=design_kite
      -
      -
    • -
    • Run the global router, then save the global routing solution :

      -
      -> cgt -v -t -G --save-global --cell=design
      -
      -
    • -
    -
    -
    -

    Miscellaneous Settings

    - ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Parameter IdentifierTypeDefault
    Verbosity/Log Parameters
    misc.infoTypeBoolFalse
    Enable display of info level message -(cinfo stream)
    misc.bugTypeBoolFalse
    Enable display of bug level message -(cbug stream), messages can be a little -scarry
    misc.logModeTypeBoolFalse
    If enabled, assume that the output device -is not a tty and suppress any escaped -sequences
    misc.verboseLevel1TypeBoolTrue
    First level of verbosity, disable level 2
    misc.verboseLevel2TypeBoolFalse
    Second level of verbosity
    Development/Debug Parameters
    misc.minTraceLevelTypeInt0
    misc.maxTraceLevelTypeInt0
    Display trace information between those two -levels (cdebug stream)
    misc.catchCoreTypeBoolFalse
    By default, cgt do not dump core. -To generate one set this flag to True
    -


    -
    -
    -
    -

    The Controller

    -

    The Controller window is composed of seven tabs:

    -
      -
    1. The Look Tab to select the display style.
    2. -
    3. The Filter Tab the hierarchical levels to be displayed, the look of -rubbers and the dimension units.
    4. -
    5. The Layers&Go Tab to selectively hide/display layers.
    6. -
    7. The Netlist Tab to browse through the netlist. Works in association -with the Selection tab.
    8. -
    9. The Selection Tab allow to view all the currently selected elements.
    10. -
    11. The Inspector Tab browse through either the DataBase, the Cell or -the current selection.
    12. -
    13. The Settings Tab access all the tool's configuration settings.
    14. -
    -
    -

    The Look Tab

    -

    You can select how the layout will be displayed. There is a special one -Printer.Coriolis specifically designed for Printing & Snapshots. -You should select it prior to calling the print or snapshot dialog boxes.

    -

    Controller Basic Snapshot

    -
    -
    -

    The Filter Tab

    -

    The filter tab let you select what hierarchical levels of your design will be -displayed. Hierarchy level are numbered top-down: the level 0 correspond to -the top-level cell, the level one to the instances of the top-level Cell and -so on.

    -

    There are also check boxes to enable/disable the processing of Terminal Cell, -Master Cells and Compnents. The processing of Terminal Cell (hierarchy leaf -cells) is disabled by default when you load a hierarchical design and enabled -when you load a single Cell.

    -

    You can choose what kind of form to give to the rubbers and the type of -unit used to display coordinates.

    -
    -

    Note

    -

    What are Rubbers: Hurricane uses Rubbers to materialize -physical gaps in net topology. That is, if some wires are missing to -connect two or more parts of net, a rubber will be drawn between them -to signal the gap.

    -

    For example, after the detailed routing no rubbers should remains. -They have been made very visibles as big violet lines...

    -
    -

    Controller Basic Snapshot

    -
    -
    -

    The Layers&Go Tab

    -

    Control the individual display of all layers and Gos.

    -
      -
    • Layers correspond to a true physical layer. From a Hurricane point of -view they are all the BasicLayers (could be matched to GDSII).
    • -
    • Gos stands from Graphical Objects, they are drawings that have no -physical existence but are added by the various tools to display extra -information. One good exemple is the density map of the detailed router, -to easily locate congested areas.
    • -
    -

    For each layer/Go there are two check boxes:

    -
      -
    • The normal one triggers the display.
    • -
    • The red-outlined allows objects of that layer to be selectable or not.
    • -
    -

    Controller Basic Snapshot

    -
    -
    -

    The Netlist Tab

    -

    The Netlist tab shows the list of nets... By default the tab is not -synched with the displayed Cell. To see the nets you must check the -Sync Netlist checkbox. You can narrow the set of displayed nets by -using the filter pattern (supports regular expressions).

    -

    An very useful feature is to enable the Sync Selection, which will -automatically select all the components of the selected net(s). You can -select multiple nets. In the figure the net auxsc35 is selected and -is highlited in the Viewer.

    -

    Controller Basic Snapshot
    -
    Controller Basic Snapshot

    -
    -
    -

    The Selection Tab

    -

    The Selection tab list all the components currently selecteds. They -can be filtered thanks to the filter pattern.

    -

    Used in conjunction with the Netlist Sync Selection you will all see -all the components part of net.

    -

    In this list, you can toggle individually the selection of component by -pressing the t key. When unselected in this way a component is not -removed from the the selection list but instead displayed in red italic. -To see where a component is you may make it blink by repeatedly press -the t key...

    -

    Controller Basic Snapshot

    -
    -
    -

    The Inspector Tab

    -

    This tab is very useful, but mostly for Coriolis developpers. It allows -to browse through the live DataBase. The Inspector provide three entry points:

    -
      -
    • DataBase: Starts from the whole Hurricane DataBase.
    • -
    • Cell: Inspect the currently loaded Cell.
    • -
    • Selection: Inspect the object currently highlited in the Selection tab.
    • -
    -

    Once an entry point has been activated, you may recursively expore all -it's fields using the right/left arrows.

    -
    -

    Note

    -

    Do not put your fingers in the socket: when inspecting -anything, do not modify the DataBase. If any object under inspection -is deleted, you will crash the application...

    -
    -
    -

    Note

    -

    Implementation Detail: the inspector support is done with -Slot, Record and getString().

    -
    -

    Controller Basic Snapshot
    -
    Controller Basic Snapshot
    -
    Controller Basic Snapshot

    -
    -
    -

    The Settings Tab

    -

    Here comes the description of the Settings tab.

    -

    Controller Basic Snapshot

    -
    -
    -
    -

    Python Interface for Hurricane / Coriolis

    -

    The (almost) complete interface of Hurricane is exported as a Python module -and some part of the other components of Coriolis (each one in a separate -module). The interface has been made to mirror as closely as possible the -C++ one, so the C++ doxygen documentation could be used to write code with -either languages.

    -

    Summary of the C++ Documentation

    -

    A script could be run directly in text mode from the command line or through -the graphical interface (see Python Scripts in Cgt).

    -

    Asides for this requirement, the python script can contain anything valid -in Python, so don't hesitate to use any package or extention.

    -

    Small example of Python/Stratus script:

    -
    -from Hurricane import *
    -from Stratus   import *
    -
    -def doSomething ():
    -    # ...
    -    return
    -
    -def ScriptMain ( **kw ):
    -  editor = None
    -  if kw.has_key('editor') and kw['editor']:
    -    editor = kw['editor']
    -    stratus.setEditor( editor )
    -
    -  doSomething()
    -  return
    -
    -if __name__ == "__main__" :
    -  kw           = {}
    -  success      = ScriptMain( **kw )
    -  shellSuccess = 0
    -  if not success: shellSuccess = 1
    -
    -  sys.exit( shellSuccess )
    -      ScriptMain ()
    -
    -

    This typical script can be executed in two ways:

    -
      -
    1. Run directly as a Python script, thanks to the

      -
      -if __name__ == "__main__" :
      -
      -

      part (this is standart Python). It is a simple adapter that will -calls ScriptMain().

      -
    2. -
    3. Through cgt, either in text or graphical mode. In that case, the -ScriptMain() is directly called trough a sub-interpreter. -The arguments of the script are passed through the **kw dictionnary.

      - ---- - - - - - - - - - - - - - - - -
      **kw Dictionnary
      Parameter Key/NameContents type
      'cell'A Hurricane cell on which to work. Depending -on the context, it may be None. -For example, when run from cgt, it the cell -currently loaded in the viewer, if any.
      'editor'The viewer from which the script is run, when -lauched through cgt.
      -
    4. -
    -
    -
    -

    Plugins

    -

    Plugins are Python scripts specially crafted to integrate with cgt. -Their entry point is a ScriptMain() method as described in -Python Interface to Coriolis. They can be called by user scripts -through this method.

    -
    -

    Chip Placement

    -

    Automatically perform the placement of a complete chip. This plugin, as well -as the other P&R tools expect a specific top-level hierarchy for the design. -The top-level hierarchy must contains the instances of all the I/O pads and -exactly one instance of the chip's core model.

    -

    Chip Top Structure

    -

    The designer must provide a configuration file that define the rules for the -placement of the top-level hierarchy (that is, the pads and the core). -This file must be named after the chip's name, by appending _chip.py -(obviously, it is a Python file). For instance if the chip netlist file -is called amd2901_crl.vst, then the configuration file must be named -amd2901_crl_chip.vst.

    -

    Example of chip placement configuration file (for AM2901):

    -
    -chip = \
    -  { 'pads.south'     : [ 'p_a3'     , 'p_a2'     , 'p_a1'     , 'p_r0'
    -                       , 'p_vddick0', 'p_vssick0', 'p_a0'     , 'p_i6'
    -                       , 'p_i8'     , 'p_i7'     , 'p_r3'     ]
    -  , 'pads.east'      : [ 'p_zero'   , 'p_i0'     , 'p_i1'     , 'p_i2'
    -                       , 'p_vddeck0', 'p_vsseck0', 'p_q3'     , 'p_b0'
    -                       , 'p_b1'     , 'p_b2'     , 'p_b3'     ]
    -  , 'pads.north'     : [ 'p_noe'    , 'p_y3'     , 'p_y2'     , 'p_y1'
    -                       , 'p_y0'     , 'p_vddeck1', 'p_vsseck1', 'p_np'
    -                       , 'p_ovr'    , 'p_cout'   , 'p_ng'     ]
    -  , 'pads.west'      : [ 'p_cin'    , 'p_i4'     , 'p_i5'     , 'p_i3'
    -                       , 'p_ck'     , 'p_d0'     , 'p_d1'     , 'p_d2'
    -                       , 'p_d3'     , 'p_q0'     , 'p_f3'     ]
    -  , 'core.size'      : ( 1500, 1500 )
    -  , 'chip.size'      : ( 3000, 3000 )
    -  , 'chip.clockTree' : True
    -  }
    -
    -

    The file must contain one dictionnary named chip.

    - ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Chip Dictionnary
    Parameter Key/NameValue/Contents type
    'pad.south'Ordered list (left to right) of pad instances names -to put on the south side of the chip
    'pad.east'Ordered list (down to up) of pad instances names -to put on the east side of the chip
    'pad.north'Ordered list (left to right) of pad instances names -to put on the north side of the chip
    'pad.west'Ordered list (down to up) of pad instances names -to put on the west side of the chip
    'core.size'The size of the core (to be used by the placer)
    'chip.size'The size of the whole chip. The sides must be great -enough to accomodate all the pads
    'chip.clockTree'Whether to generate a clock tree or not. This calls -the ClockTree plugin
    -

    Configuration parameters, defaults are defined in etc/coriolis2/<STECHNO>/plugins.conf.

    - ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Parameter IdentifierTypeDefault
    Chip Plugin Parameters
    chip.block.rails.countTypeInt5
    The minimum number of rails around the core -block. Must be odd and suppérior to 5. -One rail for the clock and at least two pairs -of power/grounds
    chip.block.rails.hWidthTypeInt12
    The horizontal with of the rails
    chip.block.rails.vWidthTypeInt12
    The vertical with of the rails
    chip.block.rails.hSpacingTypeInt6
    The spacing, edge to edge of two adjacent -horizontal rails
    chip.block.rails.vSpacingTypeInt6
    The spacing, edge to edge of two adjacent -vertical rails
    chip.pad.pckTypeStringpck_px
    The model name of the pad connected to the -chip external clock
    chip.pad.pvddeckTypeStringpvddeck_px
    The model name of the pad connected to the -vdde (external power) and suppling it to -the core
    chip.pad.pvsseckTypeStringpvsseck_px
    The model name of the pad connected to the -vsse (external ground) and suppling it to -the core
    chip.pad.pvddickTypeStringpvddick_px
    The model name of the pad connected to the -vddi (internal power) and suppling it to -the core
    chip.pad.pvssickTypeStringpvssick_px
    The model name of the pad connected to the -vssi (internal ground) and suppling it to -the core
    -
    -

    Note

    -

    If no clock tree is generated, then the clock rail is not created. -So even if the requested number of rails chip.block.rails.count is, say 5, -only four rails (2* power, 2* ground) will be generateds.

    -
    -
    -
    -

    Clock Tree

    -

    Insert a clock tree into a block. The clock tree uses the H strategy. -The clock net is splitted into sub-nets, one for each branch of the -tree.

    -
      -
    • On chips design, the sub-nets are createds in the model of the -core block (then trans-hierarchically flattened to be shown at -chip level).

      -
    • -
    • On blocks, the sub nets are created directly in the top block.

      -
    • -
    • The sub-nets are named according to a simple geometrical scheme. -A common prefix ck_htree, then one postfix by level telling -on which quarter of plane the sub-clock is located:

      -
        -
      1. _bl: bottom left plane quarter.
      2. -
      3. _br: bottom right plane quarter.
      4. -
      5. _tl: top left plane quarter.
      6. -
      7. _tr: top right plane quarter.
      8. -
      -

      We can have ck_htree_bl, ck_htree_bl_bl, ch_htree_bl_tl and so on.

      -
    • -
    -

    The clock tree plugin works in four steps:

    -
      -
    1. Build the clock tree: creates the top-block abutment box, compute the -levels of H tree neededs and place the clock buffers.
    2. -
    3. Once the clock buffers are placed, calls the placer (Etesian) to place -the ordinary standart cells, whithout disturbing clock H-tree buffers.
    4. -
    5. At this point we know the exact positions of all the DFFs, so we can -connect them to the nearest H-tree leaf clock signal.
    6. -
    7. Leaf clock signals that are not connecteds to any DFFs are removed.
    8. -
    -

    Netlist reorganisation:

    -
      -
    • Obviously the top block or chip core model netlist is modificated to -contains all the clock sub-nets. The interface is not changed.
    • -
    • If the top block contains instances of other models and those models -contains DFFs that get re-connecteds to the clock sub-nets (from the -top level). Change both the model netlist and interface to propagate -the relevant clock sub-nets to the instanciated model. The new model -with the added clock signal is renamed with a _clocked suffix. -For example, the sub-block model ram.vst will become ram_clocked.vst.
    • -
    -
    -

    Note

    -

    If you are to re-run the clock tree plugin on a netlist, be careful -to erase any previously generated _clocked file (both netlist and -layout: rm *.clocked.{ap,vst}). And restart cgt to clear it's -memory cache.

    -
    -

    Configuration parameters, defaults are defined in etc/coriolis2/<STECHNO>/plugins.conf.

    - ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Parameter IdentifierTypeDefault
    ClockTree Plugin Parameters
    clockTree.minimumSideTypeInt300
    The minimum size below which the clock tree -will stop to perform quadri-partitions
    clockTree.bufferTypeStringbuf_x2
    The buffer model to use to drive sub-nets
    clockTree.placerEngineTypeStringEtesian
    The placer to use. Other value is Mauka -the simulated annealing placer which will go -into retirement very soon
    -
    -
    -

    Recursive-Save (RSave)

    -

    Perform a recursive top down save of all the models from the top cell -loaded in cgt. Force a write of any non-terminal model. This plugin is used -by the clock tree plugin after the netlist clock sub-nets creation.

    -
    -
    -
    -

    A Simple Example: AM2901

    -

    To illustrate the capabilities of Coriolis tools and Python scripting, a small -example, derived from the Alliance AM2901 is supplied.

    -

    This example contains only the synthetized netlists and the doChip.py script -which perform the whole P&R of the design.

    -

    You can generate the chip using one of the following method:

    -
      -
    1. Command line mode: directly run the script:

      -
      -dummy@lepka:AM2901$ ./doChip -V --cell=amd2901
      -
      -
    2. -
    3. Graphic mode: launch cgt, load chip netlist amd2901 (the top cell) -then run the Python script doChip.py.

      -
    4. -
    -
    -

    Note

    -

    Between two consecutive run, be sure to erase the netlist/layout generateds:

    -
    -dummy@lepka:AM2901$ rm *_clocked*.vst *.ap
    -
    -
    -
    -
    -
    - - diff --git a/documentation/UsersGuide/UsersGuide.pdf b/documentation/UsersGuide/UsersGuide.pdf deleted file mode 100644 index 181cb75f..00000000 --- a/documentation/UsersGuide/UsersGuide.pdf +++ /dev/null @@ -1,2494 +0,0 @@ -%PDF-1.5 -%äðíø -60 0 obj -<> -stream -xÚÕÝMw÷aFñ}?Ù1ubÿàuÉа„š&râÖ]µ§Ý4‹t“¯ßÌsCqÞa=99v¤ä'$¤¹ÏàõêoWó«YóŸùÕº\­WÛj³½ú÷¿^ýñxõýó«mµX-®Žÿy5_We{õn]-çWÇÿø×믷Ÿ~ÞÝoŽûÃýÛwe¹½®oÞþÛñŸ¯êÕºª·ÍE¶îÝÍÃÛùöúöÃéÿúþÇÅù"ëYUê°ßʬ4ÿÌšæÍ?Ë“Þ¯þvU-Wë«¿óûÏçU½¹úëÕ¢®«í†Ÿÿ÷ÕãÕŸº«¼¼š×Õª¡çë¼ØTËåéwysxØîöÝõ]>îr­Öƒ_µYUõ’«5›-B†\Ú ìD.ëÛOûv\é/]‘M©ê:WäþØ|óùÝ ðð>?øŸÿâ2>ÿþÏg«j[¿ôÅô¿j¹­¶ë±¯å|¹Õz=üR6O¿”ÙU{F®Î|S•ù“ëóÛl¾úì;pæeUÍ7ž×‹j¾ô|Qªyñ|9«fÛ |SÍVž¯VÕ¬ö|½ðv3ooNÏ›[Â¥o×ÕÖߤÍ_ÒjãoÒÒümØø›´”yµ)ø¶Zû›´ÔëjíoÒ²XVk“–e]ù[©¬æÕj -ßV+£–õºZM¸Q7Ëj9áFÝÖí‘Ðòz6¯–eo~èoÔº9D.üZ—eµð7jÝÇÛëEÓ¥õ¾­ê —¾lëoÔzµ¬Š¿Qëu]• 7jsP*nÔæ 4Ÿp£6¥¹¿QÍAiîoÔEsPzáû¸èæ SváÍ\y¡áÏ7TÛÎfd~G»öÇÄ·‰ôª úwûÛÝýãxˆ—¹]T‹Í“Ë|ö% ¯Á¬T‹¥çóYµ(ø¦~š7£ ^yÞŒ‚Ó·_òfLÐÍ&(ë ¼™? Ï›MpZK’¯ÝZ’¼Ù•ó 7êvÖ­%Ë7ÝZr¼49fþF-óE·–$/e‚ÝvkIòflýMÚn‚­¿IÛM°ñ7i; -6Ë |Û­%É›Q°žp“6£`=á&mFÁÚߤí(XOÐÛn-IÞrWþFm7ÁÊߨí&XúµËå¾íÖ’äÍ(Xøµ £¶£`1áFmFÁ„o{³ ê 7j³ jéí&¨ýÚn‚òÂúdlªågßö2+ÓGA=kÿÆ·¿¾ìîv7MùO3 :w/€Íª½[fx—¾B&ƒÓýdœÉ`y&ƒäLÉ™ ’g2HÍd°<“Ar&ƒäLÉ™ ’3,Ïdp¼Ÿ ’3$/e‚ÍdœÉ 9“Ar&ƒäLË3$g2HÎdœÉà8“ÁêLÉ™ ’3$g2HÎd°<“Ar&ƒäLÉ™ ’g2XÉ 9“Áñ~2HÎd¸ÀÇ&À—Yí'Cs”:ÝAÓäjód1<ˆeu~$¦¿¯âéw¦ý0{zŸ\DiÿDõ—0{~ ˶È/\Â|pšÍ?ëáÃ<_6ýøè¿Tµ=¤Îôpšåá4ÃÃé쇙Rgu8ÍèpšÍá4“Ãi‡ÔJ÷{Ãiæ†Ó¥xš±á4[Ãi¦†Ó, §Rgg8ÍÌpš•á4#Ci6†Ä™N³0œf`8;pšy!uÖ…ÓŒ §ÙN3-œÎ²8ÃÂiv…Òý¬pšUñe=6*ÎúU›b¹hÿJýŽŠy;,VO¿èFÅùkU«ÂòÌ -ÉÙ’3,$ϲšiay¶…äŒ ÉY’3/$g_Xžáx¿0$gbH^Ê›‘!9+Crf†äì É–giHÎÔœ­!9cÃqÖ†Õ™’³7$gpHÎâœÉay6‡äŒÉY’3;$Ïî°:ÃCr–‡ãýôœíqÕúh±žÿíž¹ºhWˆ^ç¯U­˳>$g}HÎú<ëCjÖ‡åY’³>$g}HÎúœõayÖ‡ãýúœõ!y)lÖ‡ä¬ÉY’³>$g}Xžõ!9ëCrÖ‡ä¬ÇYVg}HÎúœõ!9ëCrÖ‡åY’³>$g}HÎú<ëÃê¬ÉYŽ÷ëCrÖÇ>¶>üUëc½iÿ`öŒÍõ/Ïûßü1š&Dy>!íÑàÿ:B–.anŸ)zþ*ÕÓ>$g¦Xž™"93ErfŠä™)R3S,ÏL‘œ™"93ErfŠäÌË3SïgŠäÌÉK™`3S$g¦HÎL‘œ™"93ÅòÌÉ™)’3S$g¦8ÎL±:3ErfŠäÌÉ™)’3S,ÏL‘œ™"93ErfŠä™)Vg¦HÎLq¼Ÿ)’3S.ð±™2à%/Éœ4Sš£òªüÿÌ”¹}&êù:šg¢:ÝOÉ™$–g’HÎ$‘œI"y&‰ÔLË3I$g’HÎ$‘œI"9“ÄòLÇûI"9“DòR&ØLÉ™$’3I$g’HÎ$±<“Dr&‰äLÉ™$Ž3I¬Î$‘œI"9“Dr&‰äLË3I$g’HÎ$‘œI"y&‰Õ™$’3Iï'‰äL’ |l’ øË“dùl’4Ó¢ý³ôÅI2ü-í tŸM’åð~ÅóE².’Õöó xùnÁU4Ãòl Í»ay6†åÙ–wÃêl Í»ay6†åÙ–gcXž¡y·1$gcXžay)l·1,ÏÆ°<Ãòl ˳14ï6†åÙ–gcXž!y6†ÖÝÆ°<Ãòl ˳1,ÏÆмÛ–gcXžay6†åÝÆкÛ–gcHÎÆ°<ãÙCþòÆX<{l{ \ò®¥~~WF³ ÷Ç›»»î­É^˜ëYµ\?½ô _ûºùZZçΩ*N÷CEr†Šå*’3T$g¨Hž¡"5CÅò É*’3T$g¨HÎP±ë2ŸMo𪴯V<ýúëÃ᧾ÁŸ>voc½¿?º}Õ?r¿®–ërzT}[ÍyÎßwoß­Jóo^ˆÐ£MµéŸõ7xø¿ÿÿOÏ.èÀW§Ë¨Nÿ~sú÷7/n€´tðu˜˜ZžšJNN%§§’TÉ)ªåIªã}S%'ª’—2Á&«’ÓUÉ «ä”UrÒjyÚ*9q•œºJN^§¯V'°’SXÉI¬ä4Vr"ky*+9™•œÎJNh%Oi­Nj%§µŽ÷±•œÚ^àc¹ðWõ¶9æ×Ý[Ô»ãñYnòñßÜÿÒ=è|¸o?­“™šÏnsrÜ€·õöt¥?¶CÿÚüèÅWùuÖóuPVÉ9°JÎUr¬’s`µ<VÉ9°JÎUr¬Žs`µ:VÉ9°JÎUr¬’s`µ<VÉ9°JÎUr¬’çÀju¬’s`u¼?°JÎõ;°ø¤+Ï2Þ4Û{5ò Çîuσ_nžêëtÿУäÜiyîÏ”œ;4%çMÉs&5§a–ç4LrNÃ$ç4LrNÃ$ç4Ìòœ†9ÞŸ†IÎi˜ä¥L°Y ’³$g-HÎZœµ`yÖ‚ä¬ÉY ’³g-Xµ 9kArÖ‚ä¬ÉY –g-HÎZœµ 9kAò¬«³$g-8Þ¯ÉY øØZð'oÝjOÚÃlé^7ýíî~wzïÍ]w’U~<þù¦{Âo÷¿|uúÉí‡ýqw{üÔ=é÷Åû%‰ÐùwR’œIN„,O„ï#$9’¼” 6’œIN„$'B’!Ë!ɉäDHr"ä8²:’œIN„$'B’!Ë!ɉäDHr"$y"du"$9r¼äDè‹Ð€OŠPNYëæ|oÞ½ŸXÿŒ—Ó}orÚúýõàÝ5Jµá½Íçco:ºäÍ5Þ:õª;ý=8ýó7ÛTÛÕØCsÃWæòðÞýþ¸¿i®¡:©&Oƒ¯ÐäIó.O’“'Ë“'ËK™`»u/‡|xÌCPõñæýî·Y]Þ6`~]ÿúó›pÝváZ¼]m®w·îw‡÷y¡d½»kΚD4º#éù7UGRÉ9’JΑTrŽ¤’s$µ~ØßÞÜ=@¼ù†ÎúñãîáǛۗŸÆÞùjª3<Éi¤ä4Rr)9´œàöÓù“åf¿?to»°½®oö|²kÞÛáýѾÃàwR!’œINˆ,OˆïC$9!’¼” 6!’œINˆ$'D’"Ë"É ‘ä„HrBä8!²:!’œINˆ$'D’"Ë"É ‘ä„HrB$yBduB$9!r¼‘ä„è¢Rm>ûÆ”YyÕû-š¿—ËfûûsƒÎ/2­ïo>>~8õ›ô .SåIž³<©9˳‚›_wí c¾=L}ŒÏªb,91–<1–š[žKNŒ%'Æ’cɉ±å‰±ã}Œ%'Æ’—2Á&Æ’cɉ±äÄXrblyb,91–œKNŒ'ÆV'Æ’cɉ±äÄXrblyb,91–œKNŒ%OŒ­NŒ%'ÆŽ÷1–œ_àc1ð.ÆÓßûo¹>]Ö“>žlò úùâÔ ºäœ [žM 9›@r6äÙR³ ,Ï&œM 9›@r6äl˳ ï7älÉK™`³ $gHÎ&œM 9›ÀòlÉÙ’³ $g8Î&°:›@r6älÉÙ’³ ,Ï&œM 9›@r6äÙVgHÎ&p¼ß’³ .ð±M0àÝ&XOßÍ_´ùâé&¨ww»ÛöÅ[ÏÎîó%ªpKN¸%'Ü’'ÜRnËnÉ ·ä„[rÂ-9á¶<áv¼·ä„[òR&Ø„[rÂ-9á–œpKN¸-O¸%'Ü’nÉ ·ã„Ûê„[rÂ-9á–œpKN¸-O¸%'Ü’nÉ ·ä ·Õ ·ä„Ûñ>Ü’î |,Ü~ -÷+ÞúpÙ|açOå“PÇùöoíÈ'¡ž/§ýÃÞûÇMð]þ§ö¾¿"*÷NS{§‰½Ói½Ã¤^ê”ÞiBï4wšÌ;Må¥Nä•îï4‰wºOx§é»ÓäÝiêî4q—:mwš´;MÙ&ìJÓu‰“u§©ºÓDÝišî4I—:Ewš ;MÏ&çN§æ'æNÓr¥û”;MÉ¿¬ÇB~Ö]ǧ¿£ÊªùÓ<[~~ž×§O:ÿÎýìƒ 4÷³kÞõÛòÜòÜò.áV§ášw·<·<·<·ò¾iC^fõ´7NË íWe^ͺ©%xvÊÞþ‰[¿tÊ^sÊ~Ü=üxs›—ìÿxÈSì»îÕº¹´Òþªæx³à®€åÛw«ùuiþ]®Kz:_µ¥¹ -½(íߊ¼9]ÊWÍ¿ëëêôãoF®ò¼ ÒŒïõ:o1ðü‚çój» -ü>×òùõ›·o6ðÂõ[?¹”ïF.eÖóäWYÛ· ܪŠ’Ÿªhmª(9U”œ*JN%§Š–§Š’SEÉ©¢äTÑqªhuª(9U”œ*JN%§Š–§Š’SEÉ©¢äTQòTÑêTQrªèx_EÉ©â>rî;ä]Ëô*Ö¥=꟪x÷éýþå· ].Úá¥/mÕSãõ¬m‡Ö›ö}­­Î»äH'ØIÝŸøKΉ¿å9ñ—œÉ9ñ—<'þRsâoyNü%çÄ_rNü%çÄ_rNü-ω¿ãýÄ‘œ‰#y)l&ŽäLÉ™8’3q$gâXž‰#9Gr&ŽäLÇ™8VgâHÎÄ‘œ‰#9Gr&Žå™8’3q$gâHÎÄ‘<ÇêLÉ™8Ž÷Gr&Î>6q¼›8õôû÷‹jÛ½°þ͇ýÇ|2á]sêÞ~”…¾Sÿ|)ªí–§í’ÓvÉi»äi»Ô´Ýò´]rÚ.9m—œ¶KNÛ-OÛïÛ.9m—¼” 6m—œ¶KNÛ%§í’ÓvËÓvÉi»ä´]rÚî8m·:m—œ¶KNÛ%§í’ÓvËÓvÉi»ä´]rÚ.yÚnuÚ.9mw¼o»ä´ýkû€¿ºíËUµéÞEïÍÝáö'ž?·Ø\?œ>øÅÏ›â^„ó™{œæ^§û¥!9KÃò, ÉY’³4$ÏÒš¥ay–†ä, ÉY’³4$giXž¥áx¿4$giH^Ê›¥!9KCr–†ä, ÉY–giHÎÒœ¥!9KÃq–†ÕY’³4$giHÎÒœ¥ay–†ä, ÉY’³4$ÏÒ°:KCr–†ãýÒœ¥q-ï–Æô÷ÑY­6ígU·—Qv·Ÿ÷¿ìšß{Yßü²ãƒ¦›‚·?m~0·l3¸XL© ¦å ¦äSr‚)9Á”œ`Zž`:ÞSr‚)y)l‚)9Á”œ`JN0%'˜–'˜’LÉ ¦äÓq‚iu‚)9Á”œ`JN0%'˜–'˜’LÉ ¦äSòÓêSr‚éxLÉ æ>Ìšþ̂ͬZwo^÷U>&zÿóÇ»<_ܴ?ùmV—·ïê2¿þêÝóçã5ëþY`<½¿ùïÙÓçÿ}!°)æùZ¨bZžbJN1%§˜’SLÉ)¦å)¦ã}1%§˜’—2Á¦˜’SLÉ)¦äSrŠiyŠ)9Å”œbJN1§˜V§˜’SLÉ)¦äSrŠiyŠ)9Å”œbJN1%O1­N1%§˜Ž÷Å”œb^àcÅðÏŠù·«jÙü™ý;a\Ï—í]νZ4~¶›þøï«Ç«?q}ÎO•n~Ô|ã×eÍåwÏ Ÿžõýîôï7#Ïú®ÛÓËÁ³¾Ÿ=úù[ʹGž¡½¨öYÞ³çá^Tƒl¯ž_»eû±yç+WÞŒ<¿Ù ëó•8ÿOÿô¿Vöš1 -endstream -endobj -65 0 obj -<> -stream -xÚíY[oÛ6~߯Pæ¤U–˜æâÞ”D‰µÆVkÓ+ŠuEÚ%šnÝRìm¿}‡7‹Ž˜ÄÃú4†eJ&y¾ïÜT|.HáC -E %5ªtqu[œ˜brN -¸ä…ù¥ -Q]Œ¤0ï*÷»ÓÕ¬™›Ú´ÝüpL….Y7:üÙüP0©Ó ÒÎ׋C¢ËÓ©ûkrÎ{‘ #Ê´·Søbøø -7»1Åç ©Š¿âú„ V·g é*Þ,–Å+¯²(ì#¡¹@ZºUFN—æ¬5K«rU¾ÅXzåÛÓf¾lâº÷·/*+c,9Èö -—aCpnHÀÑÁ$XŽ„ýˆÃ±¤% ׸õõL"­Ö[§l(‹"'Œ@ -)÷àÊJä$¬ç¯¤‰(ØQ|7ztD1+tÏÞx  Í@„²„ðËœ!FÎÞÌýÕ›œMÃ\ô€MíÒ´u Ïx¸¶ÐýÒÃå&Ë–@Ç€ûÌÆz¸p·«ƒ°ÀªÌJyªjCÍŒR„£ªÚás7zlÄpù¼>Y´Í¥çÄó Ö$8ó4& ïd¹†è¶NdèD)RÜÓI?¡§ Ÿ¢ëß;”_"Pwèb÷ˆÁvPØ6ˆ!!¹z9mÏ‹os¼`HD8¬Ç+Áâ`ÈÊmþ´¥w?βC#¢Ó`s4”!ækž tˆ¨mU8ª &;íF_eT•ûõ¬mBR¶ŸÁb%ÜÌò±KzD.m k–eÔ*;G9õä"ü¡Úœ0ˆûÒHd’aÐäëÐx”x%úP"K%RzÇìÿ×H“ò»¦žÃÀõ*$z£ X8A|]Ñ–IÍéö@µ5f6£¢ð Üð¼áSœPe‹v@— ŸÉãU»ú7U;}²jçÇìï¬6µ=–“zÔm—öW•§ÝKÛ·x³h/¦æÆ>¹€@‘%ä†kŠ9À ÷¹qº}ïÅ}3jâ¾µ*fz9©ÚhåÈŒ8b›Ÿ]ÏÏü&ýfeé[4— œÂ™²šŸ5 ?ÉDKšf1 §Ó»ÆTRDÓDÄNR…¨Xç3Ö =Oœx&Ãì_ǽ_ú&‘‡²g´w fJ–,¶ðCÓu—K?ô½¯ÆßܳâP3%Q¥6è•»ëhxèÝÞ,F$y#jöH‘dFTã)±6ž=˜¬=°F:FŸ'L1æ˜ØþcS‹Øù@ø'ÁÄÆvû¨.ÛÙËnaê¹[FÀ s³hOV¦s ú4ÿg”kxRx’¬‡púm½”㌌”ÜÖÏdRÙ»@ Åv{¾å…D¸ßË´0Áw’žëÆP宩7ÛO‚wƳql ±‘T0xuñðƒÇ–ÉÚ4¬íñ¬k²$Õ½õdì>7/¼‹`G[TòÖÔ€ÏRŽ‚;ϺpòÀ4uX•+ŸGé¡}!´©­S¥ga÷)P÷d…ôš!ÆÓôÉÂ.8öqÁ²Ú\ÝFÂÕ£_õ -7Ճء´[ë*¬.³ú…³ÛÒß®–NGi}½û5ÓðàY6 ö }¦ðP¦ˆDƒ/»só:P&€HÓòõ´=úåÚ ÐýˆlŸ9vùi£Ð`†!ê‡9¯RU=ßB–#²ÝÓÈ¥sèn­b) {›{ٻ؇ ²öåÝýëÚƒ—™Ú„¦ƒ˜·?‚'mMh–þp|[âß-.ÂàkÿþDû.2xF %:ªzsw÷û÷“ÉÍo·ЇO×è×wÞ½»ƒñû/“¿¯>]Ý|™ôò­èëÁ[^F‰ © Y£=óIaéß …É+¤˜Œœ¯¢ -©ê‰Àœ'xÑ$ÔªŒ«CŠÜ몤m]Ô᡹9êY™‹Üàá’rOÅ×v›©€T}GÓ&ñ<_}ó’ò$ -endstream -endobj -70 0 obj -<> -stream -xÚÕZ[Û¸~ï¯Ðt’] 3âM"i[ckW–¼–<³@’ˆP7íGRøðÁðáfv=f¿dˆ—Uö/ÿ|ŒÙÏ£Iáïÿ– ÙvË<ÓC¼ŠöÌ8’¥y -©ÛZ µÝ.êÇzðÏqk¯Ù-a)»Xj¹Ueà»-†ÊiBË9 ‚J(s -Õ$É U®8¡‚ì„V“^ÃöÍ`…â¿Ç½g•FŒ”.ìcðœ.G~“§aÔdD~4ʯÛæÐtêôɺ1¯ ‘÷Ïá¡æâq"öf©B9âÜÑÿð´*qN&“ -³°¶O/Bçt\\PyŸ RÄ*½AE¸ tnØ%±]Ï%Æå7ñ|z"E®µþúØŸ¾Ÿ¼"˜!Zwöëô$Š+V2?¨¦kµ€·}stó¬Hal×ökÕF‹ûóXŸìý»„¸eÐ&šK¨D¸Z*æw)þ¹ê¶W;ÝÖ£jÚzûù½^(#—n‡ÖIþv¾)‰0ŽlE‡Ù%Ø箆ÝÂ>aKŸ¬Ž(“¨âVGÜ2Ô`)ùØëoéTulÕ¦Ö•åTÿò0ߨ,ó;}ovš°OÄb#"T¨I=Þb0„Ù•¶#r•6Cûë[CŽBæ„ ¤HïÆ°æ¬8™”9ïÚæ{#+ŠÔÃKŸfû¤2Ð,¥4m! ‚ˆ §¤„ ÂÄMÒ~¨•¼ÜÚKµVUgï›®ë5«/"»óÖ¬¬—Õ•ú-ÄK½€êÝ.¶À!ß÷wÛîúS3îÎT%ÍÚqߟw{;¡Ý÷`¿£€a(’üÜmÁ¦ç’¨ ÛxïüÖˆ¾0jxŸHtÕ6›ºj«"„whšýÙb€Ú>xÚ_>6mëä )â2ö£µËêEµªY·î¶UÞ ô:‚˜v¾ÊgéǾ”¸$òŠOk‘~,(¹Èþ12€‚5Ýø:³GüSÄäu^öä¢iŒ rAíÁæ½ÙŽ:î› Í0tLœÑ™89=› ¡o~ñÒ˜ÐóÑNÑ×~‚q<{vÄ -@§q’^Fé”Ä ËY ÔØÞ%ñD°2%Âÿ2‰ˆÏ%êw<%7¯âvn‹…‚ÕR°“ -MA¶X(±™PXZ(_‹p@CQÂLó4Ój­Q ZÎÇcýš¦;žG˜^Á:¸²ƒÏýé Æaæ' à|EtÄ! ^Lar"ÿ•ˆ(ýáéïÙ¯€É’š4HüŸ¿þ#‘ ]eL†PtõØ6ƒ–öÞY” ÂŒ…lþ§¿'´Èbû*ŽûOƒ+ãKè*·’-ÕA˜üö¥Öå[ÁóFGË¢Ì Ô±)Z«øfèµeGŸk“åënSv†F=ŽŠ½HayQ ’D*"ù§œKuQ=Bá¿1ÿß\ŒÌ$[²`HVˆ.1áRã`·6X/°7ìz?ÐmÚó\Ä&(Ð¥`— j£Î¾„iœÓlëcÝm}þq…±r©«YÛ€ï ¡Þ"v›äšVMIÎQWÔ‰ðNÌX&Žmˆ²¥å‡šWyŸÓ?_+Bžh5EC}Xק¹¡ÎKjZT:k~…55Öuu™NqM-ÌÅà¢ Ý‘× e:µÝ¨ö¸Wø À¯½ªŸÇ¾o >Û|p°+SΨ£ŽJbr—šÜ*¬ׯÖÉ„ôYq¯^œo®ëÚ9âeÎó^v†2\êz+‚è÷E™”Wº„¼ÊŒ¨M(„&¡Ù™ë¦h¥=<•îž›û„ER¢a¬]ê¡}ÌFÇó”-` UÝî¬v‚ý6aà2G‰ªÂ<¢Œ‘0,ŽðâÀo“ý9U­Sµ®Û› á5­*TŠ{ÁëˆÚ¤ÃUªR»:ÄéìÓä<–Ðà?†ÃSÐÌ06>ŒlÀ¼UÓ9c^ŸwÃ)š¦¶}'0hýok% -É°éO9FXŠºÜ!#j_u­Äh¥‹m'þeêˆýŸÕJ·ù‡ÀJ'/¿ÿ@¬P§±Qmë0as8¶&òø=M·qÜ[0)"ÐjëƒÉgçH²I@zÉl9…½ Üö4gFˆB¹€—4þÛÚA킪Áv@ò%ÀÚy»O„3a×êf·©Ôî9‰xADbHéÔÀ©¾Pg˜‹IÛù˜æ»9lz­Å±6%õzèõõ;ÜÄT2Ǻ€#ïç|‚eáÀ'#Sw›ÏP% ×E’ÚnëíÌËà ~/ÌQ[õ¶©d7f$ó;¨·†ÆtÅ”åt¨f%±É}7¯ÚS6X„Šä³GÍK¡É—4_Ä"¾DgÙ°,¸†÷è±Çd€¨ÏÄ=.[GcXGÓƒ.§jœ¤;4;ïv[;Ážgi¼í $Šï±@zNaÂMÄAŠ€ŸÚ^ýÁ>`£:» W6é±uíú¢@> -stream -xÚÅXmoÛ6þ¾_¡$- ¯3+¾H”>Òíh“EÕ’’¥Ë>uèP ¯ë°aÿ~Ç7‹Ž„:êHïŽÏ=wtô%ÂQ8â$âYò"zó!Ú ÑË-Ž -Ä2 o#Ì)¢5G)Ž†?~‹Ÿ©rÜËvC­ÚÕš¤ELÕÕê÷áçˆfÑTêukqXá".¯ÍÔË-›TÒê–Ý“„À'†OjVË!ú¡4ãÑ¿~ŒÍ££¹~õÑ+kr:3™¥¨ÈÌ&D6RôÒZ{ã ʧC˜¹Êtrì>ÁÙ\A|R,)àéã`ãZ:ŒŽÖC4=]|rh±™¹^[°ŒDBeëzwX‘$ƒ¬ X„ÄõŽ¡±9LÙ©¾ÔáNËp¼5Bµ÷û' ¹È¨9’£;¾þóqn"IPâc>¨%a’?ßý=×Ç\ÐÉK¦*bÑV¡ÅþàÁ—Rí»Fî©W£¨ìMˆÖ4Éã‹Þ¾+üm/aÖ¢r9ì˜ì9`½e[J¿9ŽoµrLãÊF¦ÓOØQ‹ë~8ԛѥH:Qþ"vu»Ó`ÔØuê0Ø9ë HwõSЛ¦.íØú'*mŸj›;»—(Á¡ÞØ›XKSb@îl4xp ,™#%ÀzÐY—äó$DÊÉ£h{&eg ´viÞjsX T[kôÑúÇ­˜€¿@gA1ÜÞ«,f+8ÏÕ:#ñåjͨ“y2:¾@å:WLPš»Ws9 Ül%±q<“»ã l 6ÍrDÏnêÁÏŒÏOWrucÒÖQƒ<8lj{ÊëZjù7К×wRVcg!N0C¼³%ľ±s˜½M¢ó{žjn>å÷ë“)¿5Vüç3sVÇ,C ý.´~Ž•10)#OEË6"»F”à(õ”¬ª©ì ¯÷cc9›jòj[)Ã)zÖ¼z°ãõÐ:%€Î§p/Ì÷Åsƒ]þ…ÄVŽ'ÃD+š»¡.Ec --x>·Š";†UÚ:OL5õ>2q¬7hîÁš¦)ÊòÉ]¶æq=ôPÜA_}Î1£Ãd+¬{º%r¥TÓ?†K‹ Ñ'£Ò£²‹ª2†ñÌ$8çñeSo­`«{1Xi'½Ic›âóå SAŒ ¬mmTxïd+Ìõ°Èc@-AàX1 íþÎ)²¡ƒ­..¯¬¤Q;¨dA²çÐßµ c¨_Ëù R +`oœû ÒySÄÃ@3Pæ$†ÄjèzýHãÑ„LOTÒmF'5E>õµxÉ–Ô£¼5¹ÊM‡1×C³©¦|[ÏntýZ½¤‡%äßÐã7qþAæºê 8n•~¸µ3;WR:oùØV>Âú«½3ðH>i•®k&$R³H*5À?l•Å™,M/b--‚V0It9²Æ¢7Ÿþz÷éý»¯ 9“QäsÆ NëÖœ‡8ŸŠÏ·CÜH«Æ”Î_Ùö†(°T­£ ³&Î.zЇ.àlÒ .||»P(¢äaKèÚâš‚êŒ>ÿw¶1>WQ‰nk‹ïRQÉ™ŠJ4­ñ§ª¨6Ç’”‘øGúéë½n¾A·‡m[q½F÷Ÿz…-q ¸½V »ÇÊ]랟Ax)̽n)$3y¤ô4Ž{qãîUåF>íælhïš|z„{ˆS†ˆ?+Ù4 Xðá±»±$5Ù×¢Q­´I¨åÐåÍwÀ FÌ“Èe£6 ýAYìb[N¾Þ^×pÿ7Ê«qßé‘+Zäbhfe_ïŽÔÁuû€¼Ræ:Ð>è«ë¶lÆÊÞ»õÍ„ÔÕôBsRMþºÀ1d< ~^p‚à÷…°aN8â¶^¤¦kIL¿±6ß 7Bƒ¦@6ï] ówæŸæ½›jÙ¹Î'™7åÐNLy—-VJçÓ9ÍÊ,Cy:©a>ž¯~ø!z%l -endstream -endobj -80 0 obj -<> -stream -‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿ‚ÿïÿ€ -endstream -endobj -82 0 obj -<> -stream -Èÿ 84H84H8HH84H‚ÿÿÿ8HHûÿÐÐà8HH$(ÔÿÐœxàÿ,ÀœhxH(hH(xH(hH(xH(hH(xH(hH(xH(hH(xH(hH(xH(84HþÿþXþ; ¬À œÀ8HH((xH(xH8hX(xH8xX(xH8xX(xH8xX(xH8xX(xH8xX(xH8ÀœhxH(ãÿ)hH8hX(hH(hX(hH8hX(xH8hX(hH8hX(xH8hX(xH88HHûÿþHXhþÿ5°¼À°¼Ð$($(hX(xH8hX(xX8hX(xH8hX8xX8hX(xH8xX8xX8hX(xX8þãÿ&hH(xH(hH(xH(hH(xH(8HH84H84H84H8HH84H84Høÿ& ¬° œÀ ¬°Ð¼Ð°¼À°¬°$(((84H84H8HH84H84HþXxX(xH8xX(xH8xX(xH8xX(þþhŒéÿxH8hX(hH8hX(xH8(ýHhìÿ/ààðÐààÐÐàÀÐÐÀÐàÀÐÐÀ¼Ð°¼Ð°¼Ð°¼À°¬À ¬À œÀ ¬ÀHXh$(þXxX8xX8xX8xH8xX8xX8þþXþxŒìÿhH(xH(hH(ûÿ84HþÿÐÐàýÐF¼ÐÀÐÐÀ¼ÐÀ¼ÀÀ¬À°¼À°¬À ¬°°œÀ ¬° œ°œ° œ°œ Œ°œ Œ œ Œ°œ HHX$(Œ°¼°þð8$xH8xX(þþHþhŒìÿ hH8hX(xH8ðüÿ8HHÐÐàHýXhHhhXXhHýXhHhhXXhHýXhHhhXXhHýXhHhhXXhHýXhHhhXXhHýXh(48(xŒ°¬ÀðÿðH$(xX8xX8þ848þH $( $(ïÿ -hH(xH(hX(ÿðþÿTð((x°¼°þð84H8xX(þ 848 $(ðœxÿŒxþòÿ xH8hX(xH8ðüÿðÿÿŒ ŒhXh848($(þx>ŒxŒŒŒŒxŒŒŒŒxŒŒxŒŒxŒŒxŒŒxŒŒxŒÀ¬ÀþðH$(xX8X8þ HHhðœx $( $(þòÿbhX(xH(hH(ÿðÿðÿðÿðÿÀ¼Àxhx8$(hHHHH4H°¼°À¬ÀÀ¼°À¬À°¼°À¬À°¼°À¬À°¼°À¬À°¼°À¬À°¼°À¬À°¼°À¬À°¼°À¬À°¼°À¬À°¼°þð 8$X8xX(HHhþÿþ $(þHòÿ xH8hX(xH8ðüÿðÿÿþàðx(àX8$8þxðÿþðÿðÿþðÿðÿþðÿðÿþðÿðÿþðÿðÿþðÿðÿþðÿðÿþðÿðÿþðÿàÿþð ÿðÿðH$(xX8HXhþÿ ¬ÀHXXþHïÿxX(xH8hX(ÿðÿðÿðÿðÿÀ¼Àþ!XxŒ(HH88xŒxÿðÿðÿðÿðÿðÿðÿðÿðÿðÿúðÿðÿðÿáð84HHhþÿ œÀHXXþ$(ìÿ xH8hX(xH8ðüÿðÿð°¬°($(Ð(HþþàðÿþðÿðÿþðÿðÿþðÿðÿþðÿðÿþðÿðÿþðÿüðÿðÿþðÿàýðÿûðàððHHhþÿ ¬ÀHXXþ$(þxìÿhX(xH8xX(ÿðÿðÿðÿðÿààРŒ þýþxðÿðÿðÿüðÿöðÿÝðàððH4(þÿHHhHXXþ$(þHþxìÿ -xH8hX(xX8ðÿþðÿðÿþðÿÐàÐþHXhXÀ¼ÀðÿþðÿðÿþðÿðÿþðÿðÿþðÿðÿþðÿðÿýðàýðÿàÿýðàýðÿàÿýðàððH4(þÿðàxð¬ý($(þHþxìÿ!xX(xH8xX(ÿðÿðÿðÿðÿðÿðÿððÐàÐàÐàðÿðÿúðÿðÿðÿÕðàððH4(þÿðàxð¬þH4(þ848þHþxìÿ -xX8hX(xH8ðÿþðÿðÿþðÿðÿþðÿðÿþðÿðÿþðÿðÿþðÿðÿþðÿüðÿðÿþðÿàýðÿàüðàýðÿàüðàððH4(þÿðàxð¬þH4(X8þ($(þHþxìÿxX(xH8xX(ððÿðÿðÿðÿüðÿþð>HHhHXXHHhHXXHHhHXXHHhHXXHHhHXXHHhHXXHHhHXXHHhHXXHHhHXXHHhHXXH4(þÿðàxð¬þH4(X8xX8þ848þHþxìÿ -xX8xX8xX8ðÿþðÿðÿþðÿðÿþðÿðÿþðÿàÿþðÿðÿýðàýðÿàÿýðàüðàÿýðàüðàüðàððH4(þÿðàxð¬þ H4(H$(xh8XHþ($(þHþxìÿ xX(xH8xX(ÿðð((õð)HXXHHhHXX œÀ ¬° œÀ ¬°HHhHXXHHh ¬° œÀ ¬°H4(þÿðàxð¬þH4(þðH4X8X8þ848þHþxìÿ -xX8xX8xH8ðÿþðÿðÿþðÿðÿþðÿüðÿðÿþðÿàýðÿàüðàýðÿàüðàüðàüðàððH4(þÿðàxð¬þH4(þð àððH$(h8XHþ($(þHþxìÿ xX(H8xX8ððÿòð2HHhHXXHHhHXXHHhHXXHHhHXXHHhHXXHHhHXXHHhHXXHHh ¬°H4(þÿðàxð¬þH4(ðàðàðàðàðH4X8X8þ848þHþxìÿ -xX8xX8xX8àÿþðÿðÿýðàýðÿàÿýðàüðàÿýðàüðàüðàüðàüðàððH4(þÿðàxð¬þH4(àððàððàððàððH4(xh8XHþ($(þHþxìÿxX(X8xX(ïð((õð ¬°HHhHXX œÀ ¬° œÀ ¬°HHh ¬°H4(þÿðàxð¬þ H4(ðàðàðàðàðàðþà ðH4X8X8þ848þHþxìÿ -xX8xX8xX8ðÿýðàýðÿàüðàýðÿàüðàüðàüðàüðàüðàððH4(þÿðàxð¬þH4(àððàððààðàððàððàððH$(h8XHþ($(þHþxìÿxX(H8xX8òð)àððHHhHXXHHhHXXHHhHXXHHhHXXHHhHXXHHh ¬°H4(þÿðàxð¬þ H4(HHhHXXHHhàðþàðàðþà ðH4XHxX8þ848þHþxìÿ xX8xX8X8àüðàÿýðàüðàüðàüðàüðàððàððàððàððàððH4(þÿðàxð¬þH4(àððàðþàðàððàððàðþà ðÐààH$(hX(X48þ($(þHþxìÿxX8X8xX(øðàüðàðð((àþðàðàüðHXXHHh ¬°HHh ¬°H4(þÿðàxð¬þ H4(ààðàðàðàðàðþàðÐààма¬° Œ ($H$(8$þ848þHþxìÿ X8xX8X8àüðàüðàüðàüðàüðàððàððàððàððàððH4(þÿðàxð¬þH4(àððàððààðÐðàþа¼À œ°xŒhhxHXX($8$þ($(þHþxìÿxX8X8xX8þðàþðàðàüðàððHHhHXXHHhHXXHHhHXXHHh ¬°H4(þÿðàxð¬þH4(HHhHXXHHX8HX84H(48($8þXHHX8H8H4HH$(H4(þ848þHþxìÿX8xh8X8àððàððàüðàððàððàððàððàððàððàððàððàððh48þÿðàxð¬þH4(À¼ÐÀÐÀ ¬°œxxXhhHHX8ûHXHýh -xx8$hH8xXHþ($(þHþxìÿ X8X8xX8ðàðàüð&àðàðàðàðà((àðàðàðàðàðàð ¬°48xh48ð¬þ H4(84H8488$8þH 84H$848HXHþXhxhŒ ¬ À¼ÀH4 XHh8þ848þHþxìÿ X8xX8XHàüð àððàððàððàððàððààðàððàððàðð°ŒxH8þÿàðàþ8$þhXhhþX8üH8HHþX hxxŒœ °¬ÀÀþÐ ààÐðàH4(hH hHþ($(þHþxìÿ2xX8X8X8ðàðàðàðàðàððààðàðàHHhHXXHHhHXXHHhxH(Ь°xH(þ$($8($($(((($(8$884884X8HXHHhÐýàðÐüàH4( XHh8þ848þHþxìÿ"XHxh8X8àððàððàððàððàððààðàððàððàðþàðxxhþ ($($(hxxXXhHûXhhþxœ°¬ÀÀýÐàÐýàðÐðþàðÐðþà ðÐðàH4(hH hHþ($(þHþxìÿ X8X8X8ðàðàðþàðàðàðàðàðà((àðàðàðàðàþ84 œ ŒŒxŒxŒœ°œ°À¼ÀÐÐûàðÐöàÐüàÐüàH4 XH h8þ848þHþxìÿXHxh8XHàððàððàððààðàððààðàðþàðàððààðÀÐÐÀ¼ÐÀÐÀÀÐÐÀÐÐÀÐÐÀàþÐàÐýàðÐðþàðÐðþàðÐðþàðÐýàðÐðþà ðÐààH4(hH hHþ($(þHþxìÿ X8X8X8ààðàðþàðàðþàCðàðàHHhHXXHHhHXXHHhHXXHHhHXXHHhHXXHHhHXXHHhHXXHHhHXXHHhHXXHHhHXXHHhÐüàÐüàH4( XHh8þ848þHþxìÿ -XHh8XHàðþàðàððààðÐðþàðàðþàðÐðþàðÐðþàðÐðþàðÐðþàðÐðþàðÐðþàðÐðþàðÐðþàðÐààÐàðÐðàÐààÐààÐàðÐðàH4(hH hHþ($(þHþxìÿ X8XHh8ààðàðþàðàðþàðàðþàðàðþàðüàðàðøàðÐöàÐüàÐüàÐüàÐüàÐüàÐüàH4 XH h8þ848þHþxìÿXHh8XHàððààðÐðþàðàðþàðÐðþàðÐðþàðÐðþàðÐðþàðÐðþàðÐðþàðÐýàðÐðþà$ðÐààÐàðÐààÐààÐààÐàðÐààÐààÐààH4(hH hHþ($(þHþxìÿnh8 XHX8H$(H4H$(H4H$(H4H$(H4H$(H4H$(H4H$(H4X$(H4(H$(H4X$(H4(H$(H4X$(H4(X$(H4X$(H4(X$(H4X$(H4( hH hHþ848þHþxìÿnXHh8XHh8XHh8hHh8XHh8 hHh8XHhH hHh8XHhH hHhH hHhH hHhH hHhH hHhH hHhH hHhH hHhH hHhH hHþ($(þHþxïÿqÐŒxÐœh XHh8 XHh8 XHh8 XHh8 XHh8 XHh8 XHh8 XHh8 XHh8 XH h8 XHh8 XH h8 hH h8 XH hH hH h8 XH hH hH h8 hHhH(þ848þHþxìÿxH8•(4(848þHþxàÿþhþH_848($(848($(848($(848($(848($(848($(848($(848($(848($(848($(848($(848($(848($(848($(848($(848848þHþhÝÿøx¡hþxòÿ€ -endstream -endobj -84 0 obj -<>/ProcSet 83 0 R>>>> -stream -q -48 0 0 48 0 0 cm -/Im0 Do -Q - -endstream -endobj -88 0 obj -<> -stream -xÚWQsœ6~ï¯PëÄÃer:$!}ãî°† "͵îCãN\ÏØcÇq&¿+$@$Çt<øîàcwõí·«úŒrá Ÿ"_„8ÑÍZK´º (Äžðü„ˆiˆ–>æÉþt^å›zg2’Iž-–”‡ËÏÉß>f!˜T¸eT.HèlvÍ£Õ…×›d.¦ÌÀ®©Kárá"pñKôa.|ô­õOfz@c8 Úß÷¨BW:ä©[Ü·bö8…ñB™‰ƒ[8†}aâÈ*¥©^”BÃ|PŠ©–I XZ]<¸hû΂—oˆ LÐ2˜ù§þŶA”¼gAõl œ…^Îel‚´øwa­^ ù¹ÒŒË]¬¿Ty­iŽÍÍzó4pÖq’]êûúvGU¼½v‰wdgdQy€ïÂuŠhó.ºìÞL*}{ۘȋ¢1 KF‰.¼ÀÉkí®’Išjð>:˜¥°áRH›2^*ǼUO¶ÕÎót—úëû¸¬:Éíb½ k—Ñ6_ZÌå¥ùò|«)ÁA(X£ ›H’‡Mè¿//O¿®V¹{À÷wOz^=}ý¸ºy|¾{¼¿û²¢Øíí+Ó·£ -a˜³6ô˜—°­}’§x1 Žµi¥X´%KfdVdµ¬vqšê$z”9ë:I·MºÔó^ú÷&Ϫ¤’ð#tÄØ*ê4ÕoÀM%ãßí¹¢P¥ž‰àöîe"B‚5Œ"¯™+)`Öx+ë,;áÐPeF[»¹ù8v/ª\- %ºhã²#\U -×nºP’™ZèXRú)tÄ傺N|U'x\ÙbjòfiÚ´£% ÚfÙ ­`=Èò¼ÙGï_§ì »|®ý|h¦®q·%û~ßmU—¨=¡ºªÛ:曨ˆÖ©i›|_$@ó‰Ø¡“ãÐÅþ²­ÆzFE²}ÃVx²ô&œòG›ìÏt؃‰œX)4Þ/ÕKÑWäf³œ2D9&aoˆOôX5µ¨Ý ú2kp¿X]3p¶ãÙïÿ6R2csa·y#ÉÃeœò*bstXãÆà 먄ÎÍ°ÚæzŽ8ÕsÚšÛIS•?tEæ–½îû¢Ú TÎa®«ÚB îE+2z&Ëz#k­€­·jüT+”Ö;ÍRíóZVš…U¡¥Ú(ô™ÆTT&³´ã‰ÙÄäÛ×çö_½>·–¡çÙýü}Š¸¢·:±ÙJŒ2»5}o|T£ ,ʇ :`í\·ÜµSñf»2Y׊Ϫìuj.bó‚Ì»y?1/æ -ñ»ŽŽFþêPÉxo±ÇÇ1ŸÀ°îYç1sÃ:êÀ¹s8Zêóg€¡>öõÐËKAþ3gÙü?›˜0f¬ßcýц\[o»dtO½n€ÌØÝsh»í`äŽS©†ú®ÅÔiÅ#Vpí!x8FP ;î¹ÀçÕOÿ‚ƒ… -endstream -endobj -91 0 obj -<> -stream -xÚÝ[moÛÈþÞ_Á‹ƒ€"f߸K~*(‰Žx¡HŸH­6-Ë¥/À‡k¯¸oýíÙre’’Ëñ¥0dr—£Ù™Ùgfg—£à—€þh X d%iðñ.˜·Á›+¤‘"hÿP±4˜©(¦AûãŸÃ—õb»Î«6k‹ººœ±8 y}qù—öÛ€KñX"Ý,Û\Ò4\¬ô£7W¢gÉIĸ%{σ…O¬©ó6ø%ˆb©‚ßÜø”F< îÁy”&®ýSÐß‘ãÈ"ŽR©yUÜ¢,ùåM—…-_´õfgºÄ¥HÂÍ%#až&0^‚ª‰·$ž™X$J`AxXëA–ù›4lkÓÝëë²° xÏ@É(¥–ò#i.²6GV,lWöæ¦Þ¼³ƒ^™+>²<0IA8`’ªˆ&–ÍÇ?ŒhA#[‚¢jÚ¬,óÍ{BpåI?`SoÍìæýÃù¶(—fô¬Z:ËÃbE fLo¤›1""¢ôlÚ©*š¡išñ!ËÄsv–A& £)Ó*“ Ï) ›íb‘7ÍÕ¶,w¦gQ¯¯‹27‹Ž3@<qÄãˆ*ËûÍåL²uàè©(ºb££`p³Çåõ)u*—üç9üíê­Qi½mZswU—eƹ1íÂöçØw›-Z0‰ ¡3øÃÊš¥›/ó½Æ\M'Îë÷ú Ñðæ”uÀ‡‰#.áÊã¬ê53FÃå=·Cà2f14Û=»4°Šê­éGÑñ -²’ªnÁ§ûˆÁ!2ü ¦Q!"!2ÄI]Û„ ˜EˆS Œ/® Ä\øñ%í݈Ñ8b€Ú$”Öì¿o†BÀ ‚z|mÛç;ˆ!æõ›¶'„煮EŠzB@¼!FÉ™šù&*"̵ï Ä1 -¡mf@™¦Sf -1ÛKðgxĉŒæÛ†Ïx o*"扫›V°$ j`ÌI¾©Ê‹Å•º ðF°Xåù²± -ÖEÅM€Šõt«pŽße¸Îªm¦C -ö. ³¬5k çØÞ™{#P!¶MàÄ|ÛÜÔ@°iÌýMázçöKÙ¶­×àq‹ÉÑâ0/…ýžy¸ -p\ëÕÁe€ ë+Í®slžêåÛ‹Ù6òc*Ðìš6_ë ¸·³$"±^É!ö÷÷ ð`jÓÀqM eñD’À´oAxJÐÕtTEdÀôÃ*1ÓŽÄ¡kûC „báˮۣÕz¡CPOO •“a¨)E”²š:÷Ñ ªëÖ)=e)–2¾­–eIø¶h‡3ÍaId¾œ®ã€ ”C4Ùô¯#µ¨7E] ÜÇÃÄLpŒ}&9„²ÀhC\h·È³1úïé;"I¯ïSKⳟ†ž³¦E9' ÔÇ“éx,5‘$Šc~@,{æy© Ðß•WE !× 1·iy~WˬjM(y¡£Ê”5:!|óLY‰•ElÇc©Q{žüÖo4>ì üs¼.ªí­[ ’¿í³P€–KE,1ÂÁÏ-‰„2D96ó¢m¦ÜÃéÛ+Â>SùXø¸Aò&“èÃÄÊçÒáLó ˜ÛšßÓáU¾4{Ðl\ˆ´„Ÿ]Èï˜<ƒ8fX.'$"Æ:¯ìöþ9r$)Q?8%£sKÏЇˆÖ·ý²âŸ œuÇFª¨–5jpÓŒŒÍp³q¾wžèÀÁáYüå¥?“íã‹>›{Iˈü`ØN´óa_êU÷™txà$ rß>-°ó›rzyÁ“¥œ.*˼añ "Cñ)$xôÐɤX^æYƒÇˆ’¯2ãðOéM%Þ¼'\´u]ÂUIÙ½œäéí×”M½r…”"DzgÅÛó› Oi¾Œ )húÌH곪§7ãÕbÌ›R\|kwþyFès¹/a„³O¢—ü=™ü~ZæNЇAàîÔôL[£sŠ$Þ[c)w.*ñœà‰0áe¤_›M³õrÈ2TΞ×ͼ,ùÉLz±{{STÚ’’„jÄœ_{œ¸øŸßSûTû+1Áï2ÿq9ÿïņÇ7¢gÖ¿ß2|%&x^ NU»]‹ÌšN”"µH½ƒRÛñXj}¬š&‘ý±*Ëôð)3Oc|7tê)³1jâVN1òÞ‰G´+óÐ¥ Ó¦t -ø¶•“ÆêÄÿc;K¦°µM½jž¦‡O¨ž¯äpw°÷îv›ñCÛØÑküÿ°u´…7x;‰ÐÎL=d=3ÝÇœ€Ä&ælÇc©5B™._¹ë˧«»BáªÌ„½zrƒÎ‹‹«ºWH¼Ýlµûc~f(Ì«Ë¡ëÃvKÐc®/NsýNÞÒž>SaúÇ}S™ŽÇR£!cFðpìÎ7´âG\2kE_U¶)òc'uBr\L´˜kš¯i‹c¡Ùµ«MºÇJ Y)ÐFœXg·(·K;­}™Eâ*wL┢5‘ËE] +ÎÐ\ÉI%go ºL…Û€O±¸à„¢¾ò¨‘c£sÚÌ> Oi>ˆŠ=\˜<{0`ñ>~ˆ™Õ‘Ì̃È>e1?ÆÇÃÇ4ŸÂ@cðZ}ÿÀ—hŸ8=ˆëêÚTK| ifRLP=Ü?o‡EO’þ$ý$Ɉåaë€X[a°±¬ÈHiÅò!Bæ Ôª]—'竦ýЫ¦b'R+Q²ŸIëòi¸0¦Ëã„âÍÇ;ÐòŽËŸ YšJ`ˈ3 IÇÒÓŒ±˜™O¬s’ê -¼X™¨n»ª^º_,\yÚ7e›o*]"3êJ³b¬¬Ü]çÎð±ÌŠ€fv&úÊa¯Ôæ²Ëw6Ÿ~úôáߟ¢æþõéÇ!3§ Ñë<«#IV™k}ÝëâO¹•Êð¦hW®,8ѵ}Õ]‡=,,¦$,qÁ¸‹ëŒ©÷SJ†/¶->×å~nÕGòl¯Ù—¡Ê¾ÏŠ2›—#k:›_?üúÏCU!¼+é•K癯¾r„ Ã-S¦C~îŒk¨> -stream -xÚµY[sÛ¸~ï¯`ã´Cï”ðº3;SJ¢lniRÉx=ulI±È‘"Ëuó²¿}p’éK¦³ÉØ$q988—ï|€o5løO Ÿ¾’ 4æ÷Æ°4j„Äñ£üdPŸ°Ð°|âR£\üÛ|Ÿª³8+£2ɳc‹¹¡Éó£ãÿ”¿Üó A¤gE³cš£SÙ5˜8HnÆÕ°Kf3ø±á‡Â+GÇ¥ñÍ ®çOz}J Œ{Ãᜄþ^…ñUv;*;. =¹È»*IÇIv‚êå³$O“B)ÖÚ« r±1éïɬ(a·Í¢Œ§ðÆBfÉ–2Çg’e”¦ªñ4Æ—©Üz<;f¶¨’")ãâҦޱũmU3•éűc›Ð则®™gТL€Î™¨—íMÇ7Ìc8†å9„»RiM“ñO|@!b~w*·)a¬=õêÿUm²¶·÷Xèþ1O?¢E¡g¥ÜƒXÔbhÅ¥‹”ý“ Zþ"¯ð%ÎFy••`!ù9ÊϦOÃ$MÊ lBæÃ4>+”yÜ@YX½¿E£Û?Ƴ¢Ç󸑚¤ñ¿¢“H8 ?äVày’|ŒÕ¬aœæBè¹rˆ§-(-‚åB Ë9Œ€ÝBOÄ°ØÜâñþþû?WËÍ—«Ÿl¹ahÞYÜm-϶MkƒÏßóõön½º{°ùßàa;<©Žq‚#Ge>»À¦H‹ŸV2Ã…X˜®t´›ˆ`¾M|…gÂ]0[€Àe¦9`¬tisör QÿEw¾)ÒÞÏGØ:?² ´žžž¬‡õœ¬î6ù´¡V¯BzmÖãùDê¸ñNâÍ$Ç!ð‚†¦]™.quyÊ¢´‰ 0€¢Ràë¥m{*¨ä_÷ 8ñiÇ@`Ae"2¸^¯w;H«Á|~M6ß•ë¬Ívýy9ßý¢sÙ¢0æå¥\Q—аí¿f‚¶" -Rö|eY÷W_–¿¼³>;8èîëÃîjµz§àº#üOÓÝûÝõ>ë¹^Goƒölc?vƒE]ŒDi_Öbð§ç›Y,‹‚§`Â`2Eº‚@-ºgÏ&ùì ?"œu8Ú×¢9 Í'j…S%p|À› i¢ªˆq`Rêqèê´L‘år„gÕtšÏJ\õôAvžÄY¬ucÓyRžâ ´öi§Ø"Ã^ÇB‡ãÏÕöT%ű*/š]ë쎺YÉ!;ìðMi‰”Kl²ŒNjãª)­|s)±5¢Š¸î†”â{í¸ƒýÙ¹bç§Âw‚ÇÄ3h§uu8àmsTq—÷iʸO¿V•öF+ ×òµ›aY=¸7Pt$Î\Ã$ æ¥ nþMþþG—jCå±Ý†j{ÝÕA;O ÐÆ¥y (Ö´í¬Òª…“U¡˜uðLy¤®G8Sk,–ÿݭ׫‡åŽuuñ>km_E[•‘ý_€Õ‹?}`Ûhm±C4rzÑÈy.ã=4xúX4AƒÖ–?²rŸÙp(®CËîš¡K§ñ»û¢ßEÇ‘ª«ùäy©nØðêô¥r3 '~"Åî£ñøPµÜØ∧2Æú¶ëÑž³&ÍóDæbÍÛá⇶ә£ïJ4KãR}ÁAPXÖ÷ÄλÁÀ’Z¢^nçjM&U6hÁ9&‘îËE¾Hˆ†u¢Ñ(. -‰ÎЪÐÚ{mA}ÈþÚ·ËÕ¦ÇqüÆá¡1ö|è€k¾…%ª¥…*J8†6hÔÝRËIk°ÓÌkÕÒû«‡ÝrÛ“Šacõf+¸O‡qà “È#€!à½ø%‚‡Ô D@‚†iŒïêŠIšOqRs“CP¾±¥’0#š†B¼Z‚âH¼=º1Ž'Q•ª»”ÎeÍ$OõÕÈ>Š†9¦‹šedVI,:ÙØuŽkÃa-|£sZƒûµÕ Ž±\õø†7׎CŒo8à¯öËÍ\šëc’WEz!šöÜÐÔ®Ó¸ ¡°œ%¥1Á ¬3œ­Æs0µB˜|*0Z9äÿA9>CO;¶g:Çâ@F|Ï A€ç… hoè•Å;x–ˆAÕ ^à Éxˆ#•¢¡+&r t?,ÒÄi  -gxmý¿"[„æh‚W}{šñ6Jpb¿xn÷Zç¬D@l¿]ßñ ÿ> -stream -xÚÍZ[sÛ6~ß_Áæ2¥w#ˆH‚ÌLw––(‹šTD*Ïz§UµñDŽ\IIš—üö=¸‰Øn·;³ã±ÐÎí;ÊûÕÃ^ØcÄcqŠ’Ô[]{§­7œ`/EazíÏfˆ¤Þ€¡{íÛùOêÑâ<¯Ú¬-êêd@¢Ô§õã“·ÿôhÌM$_7Èæ'8õGS15œ„†$ ¡jÙ% üðá?«óÖûÕCQ̼ÏzŒM¼k/¤¥‰¾ßx÷R9ê9ŒP‹M¾ ~Ü*+áÄ4ñIþrQˆóåœþù‹jœÏÕimjA˜h®ºyÈ æS„#5ûÝÉ $þc…šã!Õ<Þ5ÁÀ[h\“Âf»ú0ÓAL|Ò ¸[‰p'`BûTŠ‹ -öŸ9¨ˆÅ÷Qaj™í؉\åìyöâ„~®ÝäÔC=‘×všëï@ )'À€‚í›ívxþüæËáÝöC/Æ¿¤7«Ç—––4 )E4ö¢dº(s˜aã$ðO\ù,'ƒCä%±SÅøHÅ•} RzKmü3ŸÔÁ<¡Ç6óý-)È_­hòü¼‘ ,ªì´TÌ´µ¼¾®ç/Ô¨h§·8vœ‡!ÒšM­ƒ^úp¡Šä8QÀ…-¿w -þTæc¾Gdmë’oŠ"Û…¨K¾ ˜¨ó P`,ÉÑZé9IÆRÏ‘XuQ/$ûÃny3<_¾_ÿ|µY£›åêýò—µc›(1è N”¸µ¾*Æ\”Høæ, ]êøN#DlPZ”Y z -qâgòÒÖ3¾b"Ð|•—ý³3†-‹åÇÃö°Ýnú'0b‰•ÐðìQ­¢–9‡k±a‘ÎXEQŒ¥‰ÿןçËõŒ¾àwÌ/ZÉBQÉYa‚ü”OÝÊe

    «›¢­çJùQÌ7²DôõKÓeÉ×áj»Û]m7WûA¿ ÷»" ]Nécd¼K÷äP%“‡EQŽ ²`Hqj›#-‹³vZ^H0©m6ÎÕwgÇ.?‚rªgM˜ÆÓ‡˜ÓÙB€»,Ëzthj€ÝI&J;³läYG™*ï²²QêTà¤^hØE“%q nÐéÐÀcçÔ8U/—± ÊÁÚ(Ž &Ý™ùX‹Í´² Ú߬Wèêƒ+¢P”h¥Oê¹ >#AäŠÝ͵3GëJáÓ¬ÑÑd\@€( êpF¿±PÍù5‹ ¿o×o®–&Ó©Å£Ð懧Dµ«>°ñÈéðÁƒþ;‘°8R(»zïÁ2ëGU’vQõ0òEça‹™ŽÒmݯÑ!$iwÄ^™H{&Ä q/±[aÚ—BdK!M,)`—ÅcñùÔ•®2žkYßÝ  -®³#*ßÀuö_u:öXåe!ІQ_ô’XØIÞ¢Æ]™ûì['AÉï5?ÎãcñùÔ•”"FŽ¼Φ*æÐÉjFeq*S6Nd<§qÄ«R1MÚ\}Yå‰Òá^í¢€jJ°DU®0w.Ò±c]u9ÏN 08hp”=$L¨¢§P%øvš©'z¦‹æ·ÓZW,}þùÞ)™Gé5OìBûòÊüq]årtªÓ˜Íy›Ž ˆßÈdVtK_Á.¢·áÀã„!Ú¥³ëÍfßnoœ)\W…‰œÊÞÇaz”™èû¿°=§Óˆ-š•i^θñóñܦÉs~²w;?SƒÝ/½~"MA>ŒçÈ”Yq°À¬åºiõ^bÛÎ¥/7ìöàäû”Á%¡Èƒ‚ BŒv¹‘´ÿ0N•Âi‰;iÐ|4«‹J EZ¨ì•?«ÖìHdzbŽg¸b­\“T[¸mð¨ãLK¦GZ2KP¬5]É-2µåŬñÆ1¿Q^,²¬. CA ʦ¶Å·B‘«hÇ,Ë W³30<ü¸ß ÷ï–»õp¹Ù@ø^­‡Â¨13„¡U¦ÝiBy/:oÛ^lìŠÜ§Õ+©†ºR-rÀ n‚#UšÂ‚šŠ=gR.Dz|w½žÄ Ë“Nc¿)Îge1¹àwLî+õ¢Q7YóBŽ¸ð«;K{ Â¥·€‚gN pv.Gù1³ -Š¥ ðyí†|\¨³õkTÎGÍO¿!&”uš#êS–pܱü²áGååa®s¢#Ѻ1©º2T]kÕ-õèŸ4ˆL -Œªöàp}0õqLQdÊLS0Ýߦä/v’ÈÔhß(Ñú‰|þáºùò€V_ÔÜŠze¡ŠxÕ.*š -Bfu+7ë›÷Ëç_ÿ®º•Ÿ–ªƒúÓaâ'ûí—Àu¸@|'â”p ó7tÃÉuà·ÞK¾,?{PcXÂJ°w­nÃ$æŨûªƒ0y÷Eh¹nó®'jÃ{¢ìIô“dB rŸ8°’…f4/f­ei0+‹?±œK¿më Ög€#Kc&³È 2S=:Ñ/uTŸVÄå¯8äXDDôVÍÒ§âó™#N@™7“Ž#1þÚQ.E%0Ö(ÌÀʼ VTy>näÑé T ÷óE%ißz†Ã¤{ óvý‰·¥öëq$Ö̤«·Å­²Ò€ª^7ì¦ô%b C^Å.!h’-ªÑTŽ3þ¦.¦8é×üÐ\,ãI½žzõyv!×2ÙÝæÕÂà$Mmp7‚ƒÝ(‚e]Ïä.ÅD‘nû¤£…]Ñ¡³ÕÂk$‘†N eEwrÍlä7™+ŠƒéÇ<Ž[–÷uˆÞ,÷ïv+WÔ¤ŽÎ¼e VØý­{sÙžÞѽ“Ú€ÁëL»Ÿ~÷0’å€è™r4MŸ"»\ ØÌÁžDç2•½ÄÁÙýð½ÃG }ÿ­_0ñW`æçê…uG/éDvÆÓip$Ð 00P%¸«¤Ô¨‡9ʎȺ:èÕ`w­ ‚¾êC«ªp„YlNÿãø‡`Œ‰ù¥…j‚<_þå?ˆj÷Ì -endstream -endobj -109 0 obj -<>/Length 64>> -stream -xœ3Ð3T0A(œËUÈ¥kd  kb `¤- ŠRÂò¸ÌÊ!2† -¹\† -¦ -9\Á\\Ü” † -endstream -endobj -113 0 obj -<>>> -stream -xœ­YÛnÜF }×Wè15`yî—×A[¤‰í¢Ïî6uÜ®mdí Èß—¤fFs“ã½ÀHlQ$Ï™CάÄý2²‰ ÂïÍýpqiÇÛ§áËÀF%ï¼±””Ùtk;|¸ñ÷~”ÆÉI*pOÇÔ$Á‰s79Æ;†Óµ(5JëÔÄéªBAä?ÏƇÁ@Âo›´aZYZIøóòÊÁ=sHŠÒy‘WÃÇnÀ˜’FK³!öÏÙHã3,âµR‚WxÉë!-+ ” ±cñ&c]£¤‘Ü9"Õ %V¦l![ûiöÑÊHÑ\q=YîÉ¢¥!ù”7ÙBLÏ¢…€n UðªBIz²ª(Œk<(ƒd±Ç«æî/ ;” wCài÷ÑßpFÑ‚[>ã%‹ð‚äÖÚdk1]‹Ó`Å̺FIú£[Ô›"œ z·ÄÊ”-d ‚‡Ç Ò죧ðºª_²ÄöJ•ýœ ©‚‹eYÔ(e?c¡?îÜû™õñmd™¾…ocïØ òí%²m xÖ`óD‹ul’€Ǽã„ÙZbTÏ"˜­ ©=^U8Ift êb€UAܱ"a°aO‘f=%Ó«ó¡Ï-~vEÃ6"Î6żháZa ûmƒ²4möÑ>÷®gƒ<Œ áõƒÂ=â=È–äB¹"pŠ´‡èï¥-õ†¤¿w®B|ÑX{#óû)iìfÔ}‚Þ³;êÝ#ÖMÙ’H  ï)ÒÔÏÆËÉeí<_'5á5‰¼|ë†@>ŠzÇŒAJ:hÉ'hüs13Výœ ‰’Iyx’C„„ÜçB†ëåXÐŒh/âNRVç÷cÆ(¤ubö‰‡ÀìŸ ™±êçlHDLÈÓ"¤LçB†ëír­Mö‚!ð•Bòâ~Ș I>AÈàŸ ™±ZÉÙ ™‡'9HHoø$s%Ñ)©àyÎõ-‘²wðÈ’ûDœò°¿ôéDWzfäÖ·t¨\Õ#Sí¥­—ô0Æ…TIÅ4>¡†ëmº–LÎÒÆ€Uƒb’ž¹˜ù•Ëk­VÁ‡@Yô'Q[Výœ ‰‚rd/!ñU˜Î>£…Q@¸Þ.×& ¥€U¾ã餩¬B)$ù(‚? Ù°ZËÙà‹G'Ù¯#ᬅã úz~¯ˆ%æW'鼃¬Íuè¼PàÏ«I… ZÀMx>ƒRˆ`©#Veγ¡Ž<6É~c+Æ ´hˆÂÁ{Ë…Œ× ­cÀƒ&ñ­’äÆ&Ð9$ Ù²ªr6˜5M¬ŽM‚B²ÉZ/¼Åa ýƒ· :‰<(gÀh!Ùîr7ùñ[÷îë báø)çlÉdžÆérŽ˜ iÒÖZ,çÙ´®F©½Õð ƒÃ4fγLx«éW‡~Ü!ÖPYF»5$_«é|(r³RÔæM°ç¾ÇtÍÊy–ä…›3Z$Sn.ªóbjCŒéZ44.L×*”TƒC•ç™;E¾Õ­„Ïtšã¾øñVê¹ïÿÅËÒ.鋇¸sÒwµai˜Ž¿ÞHMW£ô¶-Æ›XDŠÏ¶Ðm‡j Ò’haËmƒ§ÈJ¥¬6¹`p`âK‡,Uq¸¸ôãæiÌ/.Ýø´yX ˆU¯vyÏùj€øÁ¯Ý„Oä%ÕYÏzµö%#Ð1ÝåßËhW¾gìz— ™?+š•4æ«y8=“#ŸuÍ«ëæL˜6É+Ö½Ø5g DrtXµœkóËœ›$¯åÜvÍeQh WRîXWc6)^A¸׳Vt›Jû¿½örÚÜÕÅi­Wí Æ”ŽàY9áÖÇwÇ­=L¾@M("üÚÜ?_ƒ^pÉ <…_CÑæû#¼:ã'ï&5óZC„˜TÈþÇÃÝæq÷(¯4Ñ¢ànhÈQ2Œs8Ͻn<·Éý=¼y÷|œb\ÀG;.kfBË*’¿&/bÞÚQ(|íBˆ÷wÿÇšû‰)™¥Ö!é¹”“×Æd*}øþîùÓÓÝÍ)+å'+¸søj‹(@¡Æxͺ=©ôÄõÈ­ƒ5ÆV{þüø°ôfàÊ:äp®å¤5-õêywóüõ‰„àÝJ1ž *¡Û¯·w™ -ñ ØoÛJ ÃUhÐ_¿îvw››‡cw®˜„WKÚßžÿºÙ¥œ‡ÿþ†o% -endstream -endobj -114 0 obj -<> -stream -xÚX[ãD~çWxÔ 8©©{Ù¼9Ž“9v&v:Û»½ ˆ]$†ø÷{N]ìJÛ3Ó³j¥]U®Ë©sùÎwœüš°„ÂK OŒÎI–'ß½M6CòzÇ’œH-“ᇄÂódmˆbÉðý?Ó¿uååXµC1Ô]»Zs•§¢»[ýkø&Ú‘Ö8o]œW,O˃}õz'§-%\øiœrøQø1ø);»’_¢´Iþ ç3FD–¼M¤$ÏBÿ§¤OÞ8‘U‚CÊD2KEr½ ´(º#…ý2çÊCµZ‹Œ§ûª­ìŠÆ Ôí¶Âþß±ËÒn‡O‘nH··ªÁ%»î|3‰§÷Źî.½=ç¡wãa·»Þ7µŸà”X¹‹û¢)êMSù—‡Ê¿õ:sÖ<ï}ã·ÿ¼×˜šgÍé44¤\é,íºÆv³­ÙCpÿ…­¥&àHÑÞ”éØœV,xpN¸sð‰.÷z÷–&Û'°$LËÁd&JSdF2VwÝLykòñt͈¯È1ÆNºÁém+I.í(}Ö4ŠßÞî‘ ->÷ ^¡‚?wýàZK©`R5·»’©µ¼rjŠ¡ÚºÅC÷lñ¨IàÏu_Ñy¼pðyªÇ€áb.)¬ h¹²‹” ËñÔTÇjO*w©½00 Õ­ÁÖÊäécÚ¡à×jÅiz_ᄉZM+è(@ådpÌË™¯ÖšƒGáÿÇ"}m;d.=BpcQV·ûÞÉ~(îýy›ªjÐ¥S*ÈäÐbÍÁõDøpwê憧}‡O§nXô€=–ëc]1"92p³ ç¢w;”M×W̓ë¸AˆÛ®ï1çWÉ)Üoau…Ë"ã꺪ó®(+§Vn´—“‡%Ï}Ê^“AhÉìÆħSSW>Zѳ0ˆ7Ýpp­¦h÷—b_ùè¾ÖáE×Ú AëX·ˆPØìà´rÅØny€ÕUñó  Ðl .¹èË2Q(Ñí†ëb8òʧ…z¨ÊárF«>‚ÈwsWÓ„† ⼊a3Î=)¶5“ÃBãf—¯v¡)/Üe!25æ)÷ö`݇QïËœ±ts©›­kzó@Ë©«?‚Ü| W|á¼eS€–VËÐ=9 Ûzt+†C1„VXÓOçOa]ÝöCÕöõ½³ÀZ ±ƒ…üdTˆD3F"´®çzB§¶O=9»ónI¥‡"˜S4G£Ð¶ Ø ñŽc²¯nw[‚™,#y„2â…(ùÆŒ´ÃBÖ!ç¹ã½5ð|‡sfç ÇÄõé0I$71RPàCÔ?/½0h WÖà‡nÛ‰*Ä£ˆ`T Lk. :²pMy3;’FB¾™ü…C‚,¼Û!º– BÝQŽÝö‚ÜÃß‹ÂV¹6F ¥‡<ùíÓӻ߿þú—¿~ÿïÓÏsdt‚X8ƒáFÚ|¾78èŸÞýøîß¿|?ßV’ñi[6ƒ­5)…4ô…jš&[5Iܬi°!GÅØÑMam‡ã˜mqübæCŒg„E(aï2=©à£tg}ð•ýO쎟/„#, - S-­÷¡Ü>Áº,*90žËÙßȲ‚Ö^èœNÕÙß}{ñ;`. o7h6%l¦áò2š²öBŠ9³æl~ETx K0íaóÍ¥vI³'bSi2ÄÎ)ìˆIûƒOJ[7cwiKDÆÞMÛTÃÕ¡tFóbÇòyØ F9³€‚*d¹ÿ2!kõUy rSO:À¥Ž±dë/^Ž1Õm¾qix[5•#»7Ä\‹fÔ· $X ÀÄåØ9sìü}u–¦ÀßÄB=q7[&ZUâÁ°ñ®ÊLöŽ ŒµfÞJµ_“Å{r¤ø³‰·Ä„SÛz¨ ò=å  QWë<§EÛ¹§òœ(þ!WÕË÷ÉrwØ“±“ê±TÑ! •~–:¾½÷[¬z¦ÂzÇâa”Úó§p¾8úÖÐ>T ¦¯×PF¤À€QÊ#Ú’Í Vb/•³ä„`·]ëªÛg\¯ -[z=£zñ'4F8”612|H[D™Ç”÷ƒ$'ÚM@ª€ØC^´ì‹ÄãðÝ׈PÂÚ®éö+‘Ï7™AVѹÁ¤>ü-ð¸÷1y§Ý¾êŠí\Z,y å½%K2I¨üdtíBí<ž¸‡Zªý˜ržÛ4 N‘ÑÇM?}ꊙ#´ÀC –3ÙH*È+ÖöÿÝåS@"gY ,ñX¨ƒ%‘/¥  Ÿ°À®Ó_½¤æ^Q¸ðEùÖçµÆòtDiôùæ³ÿë<- -endstream -endobj -117 0 obj -<> -stream -xÚÅZmoÛÈþÞ_Á"‡„*Nkî ¹Ü‖h›=JtD*nZ÷ÃÕ终í»ØÅ!8ô¿wf߸)K‰†,îr83;óììÌPѯø£‘d‘ÌÉUtuwÑÑ ™ˆºŸ"* SÑT’”FÝÿˆ¿ifëE¹ìŠ®j–“)KUÌ›“vx& WÀé¦ÅjBU<;Ó·ŽNDÏ’'„qKvÉŸ>>©¦.»è׈¤™Œ~sò)%ÚfLNéÛÝ—Çí»¶+f´e×=å)/Ñ»n 2™*㡯z¡G×WGW÷oî?Ü<°£Çë«÷w÷äêþî§ô"½K‘ÛnAb¡¿Ø‰çRk72J`]·¡[3µÇí’ÔGîŽt¬Çn²ñdÏÚ»rÝÚ ¼½r’eîüH1Œ_p8¸ÆFÛÓº9.êAá´Q²¥þ*ú|óûY³(ÿsDÐøåÓn`8±!R²¾꜇¾6Ï¥ÖHà)²=2# ߃ ÎÜ9Èà;‘áX{¤l³AFÏú+ £nfÃ)ß#e ý0zý¿›]Ì_&,œÐ'УyFhx¾Ú‰/¡Þv,ƒ!M–àÃÆM[¶#~à$eO¥™Ï.´²x±6Zî%<¾ßVsw¿YÖ:3’qwј‹·Åª*ŽÃ ÿ‘ñ²XØ«ædëV¤|Àm#Ý“q±œ÷ô¨ø4$Ñ»›(³¹}¾fX«>ëÒš—MyÈš+€#Í0çLâ—¸ir“ã‹óº S+mvÕÃH€ÙA>œüÔ:/&ÓT©xªO*·xóOzVCÆÏMÍ‹û¯ÿ|þéñýýÝdš%‰å™lš}´-(U$…œö¼2åÀçÛ’¯:c#ç/†û««Ûû‡WúÁÄØÏä7¯øàÈ™ -èßãêÕ††i=K9®9ñrÖ û±Tþ…OâeÀUP"¶Sá@*„)w÷t­“JŸÔçñ·M1ïìáS*„ñËFu`é‚õ%“ÌD5E-½Y%Öœ1 \效³Î v¦J =(ï×ÊhÑ°†»ÞxQuCÎPüõUÝ®ØËúØ‹|ôÎÁ ³_Qnª[ý~ÕÓ#›*Mòø  jËT…»u^™]9ëšâ€'fßr -" -Œ9܈·Q„gP3ugf¾¨kGZš‹™ÇP°tšå„Ƀ̺¡aÜ4¤–em¯° ž ° )UÛµf©ºVܯ?˜K®?ˆp{DlX$Æ)ƒ¢Êá˳0\2ÆǪêÌÁ$pÉãb>¯Œ<uýÖÁ  œ¶çå¬Ybªû‡,‘&Ùƺ*gm‘иÙÆ™ÂHiž¿º¿½½¿;Ê)ö,K]ÜX¢@½™ÍÂŒd3íÖ;<µm,î¥ÄÍà¾[­—ßMžÆ'xàð<3pÆc;˜FË®Ò ÎÏ‹®h-íÌÈkõX¸GRšµ¥ò¶7‚Í(!’ Ï~«‚Ïo4Bp¢j‡gÄÿ£)BsÞÇÙÿIS„sAÒ0½²ãÉØáÔ˜“sÌƒê ‰eþt{„©8¬?âù»ñSüm¢ðß×"ñìýÄÓú›L:ðd—Äs÷!÷áÑÞaqd'žK­Ý’qL{7 EèžRŠ§ -i÷uK45­œcåõÎ\c~Šß˦3gæßÓîY3/çã™?Ý•òïûöäüݦ° -»#ø¾±œ›‰Â$ïº3L)µÊ:1|[Öö™åH†>Åô.ca’¹u¹«êîæÑagëU¨êïòË̵Œ$$šëÖ\- -ÛN:¶M§²h«zkjÎå¼tÏ6¶Ãbd‰üT©¥ÎúË•=°«Îf´Ö=®¤Ñ&§)V(žS(AßÂVpÇ”oÖ¶AS›º¡®V€}mY.g–-TÒCK3(ô2å‹¡=FUà{Wò^œUþ}qT¨üs|GXE—¼Cñ Œk–]áÊ‚±šM°¾"tjÎ ï¸ùù߯/ãËÉh†;Õ¹ÃRœ]{P÷EÊøÜÄ`ˆ%YŠÄ8dJìõé™™hu5m[.Žu,’Ö*0 º×®‚ç0NáÞFø¬ëKà Z¶ØB0®—x @ê 7ªùrµÕ)ßhío~§™B˜êãþæîáñ‡^oEïl+ãø2ûJbcƒÜH0€ìÃíë^Âg긦ûÇfû¿iì{ŒÁÛk0í¼0 lÿÔEÂÁŠà·.vb#¯“$•Ì†H ¦’I,pQ¯t2ÍhœÀŽøÿb4R†G™ôž1'Òò[¨û»‚ˆ±Ýßgpa ’aJ HÞÿþ'ƒ¼ rîF›¿"‚]Æ6øó¡ÄÙôÍþ aª -endstream -endobj -120 0 obj -<> -stream -xÚ­ZmsÛ¸þÞ_Á›ôjºw‚ ðýfú–h‹ŠTD*Ž§n3Ž­$ž“-Ÿ•^/ÿ¾»X€/"%ÓiÆ#‹—‹]ìÛ³€Œß nXðÇ _¾² 4nîÓÒ89ãFÈÏ1Ê÷™‘Ï\n”·ÿ4ÿš—³8+£2ɳã‘pCÓÎ_ÿ«üÕ°=ŸÙ!°DºQ´8æ¡9žÊG'gNÍÒ¶˜°Ù•°|,øpø¸’:.ß æz¾ñ_=?çÌŒ{ñmú~mÆÙíˆì¸,ôä$?(\ÔmÆc¾§Døùxä øO4AM ƒJLaw™ÅRS ÿmó•üÿcE_ &溚£§óx¡õí,»%˜ÛR™ƸÜ9†u'ÖvcMÅš«Ç v.2£§çKi²_—OÈ<~ˆ^µTI3[%¹Á\òÍ…e¾M&êq¤yXÀ$ôldâÌÑö¿^¯ï®nVãÍÃÇ»OÝ qM[.ç4+ÌrFßåT œå‹Ù•e‹Öz†õœŽ`Ây ¿/yݬÖëm¹y<¹ahþ,fYæÑɶO'ÛÏ×O«-؉¤<9’Œ-c$ÀÿxŸèMFWW’œhÑW• ¯L"Ão9aq9;ÍÓdü¾ŒÇÓ,OóóË£ŸéÙçÕúqõ´eÛ¯[œar÷ôÓÑÉ—ÕÍç‡Ízóé+ŒßجïnØŸ÷ë£ãpÞc-&Îéj÷nM¹ˆ£´9¬Ÿãg½¹ßl9ðV<ɉÛ3z½3N’bžF—´„ÜÛ:uè!e路wÛÇõõWRO®f°  -Hšwä8³Å!}ÇQ¢ûg' -­ÉH‘Ðç"_¼N²ó÷irºˆ»+xÄŽ†˜¡¸,ÊxVóØ'~áªrÙŸŽ¶®ï>h›«iã‡?îž6÷«‡/,z|\=Ü*)H„¶:» oßÏç˜íª´Ëèéú^‰&ˆf=#ÖÓæ¸í—íã VíYÑ>Šï(ÚãPƒÒ›õ7y¬Ç±îðØb¥ñûwû½ŒCîñÿ~×M²÷i~ žþØ~yA4·ùô·ëÇ£á¢åËò{ʆì¾E¸~nóü"^´˜1‹·¥»½}¿óE¾Ì&•Ý¾€Ý8Íǯpû÷ÍoL>u8 óIðw9ê"ªÆêyC@cÞ!›â¼Ñy|hêëÍÍoןVÙꋤ -¦xCE¢¬ U‡»H¡–Q2¿\6@šqÍ»h&ÑD§9½U·ÅTÞ^t[ê÷(ÅÃ5 ¢^Ðƃ€ñà; 6Çb<Ä'¯,î€L¶k^$åT)”¦$&ÉÑÛ(I£ÓTÝqYBÉ+àelbÙúg±^^€ª­åMfó|QF™†Ròx-^ -žB`i—qA×õ$;8®‰OmDp#ÇhEf’ú4©¡¾&qãë#˜§1&´4¶å˜IÙc-§¿W–åtÙ@Öl -bÓku@…Îp¨Ž¶ØktËy™Ñ¹§,l¹æ²€îCJ9Éi$ËKÈâxBC¥zD&œÄ}«Âqq‡ˆ‘ÅÄž¼ ¹kYî¥ÄüU¶H]åúýiåxvqÔr>‡KoÛ$¹ &˜FÙy,ý¶Óˆ¼¿Až|g¹ ®°ÁH@œ*WV*¸BŽÃFÂAXW[­{špöJ>¶N?_p*K¯ó>íIu6t—\4C6ÊÀâWÀáÜ,æñ8‰RºÉâR]D3 W¤‰¬H —Ó¤ «yždÕ`L~CôšBºÌ–ã) Ei/2ðó·±"‚~®bB9²+ºpªá;¼2óÌáBépû3G§_l?k+ŸY: ”H2\î›6  _øærŽßò@ž2¹_9PÄÕæ Ü{æ<*§”y=#v_ôÌ8+é20“Œxio‘€ “Wít•Csð©ê§£És€LÑùN¯ÝßFñÔ[ãq.M¤¶ø°çmÈŠŠõœOý¥}×¥Ýcîì5^s‡Ás¤{7Èhú—_N÷$pn3ׯ­g ðÎù<Î^²‡ÜPiâZ Õ¤AÞÒdþ´Ú§JØØkRª@ fõUéMÔöÝ4Ž&{vU¾U9ÊFƒ•«É[Ê-Vëë›Õ åDšiž¿>FÀIÙ/"új -=©)>šâE>HWYu%s"^P›§Ñ8¦×“’Ò±€,v1…x†à.‰ÖÈO²Qðû*Ù¾hǸo© Â'*‚0 úŠw-ölÑÒæŒfÍrún' 5ÌÇZ…™¯H}|¥¤w4QÄ„ƒ“¢ÔE y¢^Ãä._šÃ3W­…kï´Gñ¤Ò Ö…BBî@èmTáÛm9…b/|ÀeHqI…ø6ó‡i™Õ`ŠS䯹÷ =@í³pOÔpyâÚ)Çð}Uõ¸’_P„Á@ÉíS瀚³8S·2}GSÚ:ËšÊí9æßò…v=›‰–ëA´ -ÇUfm—8·®X'ÛÍM½å)÷‚úÂί.• ‚K~£X“î4žÏýÒÆB>T8§Çéá -Ô°Oà -Š¹PC^ˆãª÷ª-|¬ŠAïA€Ó ê¸Æ9€Û=;ç-üå[Ô¿V‘!ÑVO¯ ðÜeˆ_e— ÜåbK`É´¨À‡ÂU8ZmÌ7 ,¬Z“W1¸‹_ƒúPäáú¾'9Ó¦w ´j‡Gª¦dP>£§õÙÁE”Ÿ7K4#´ —DUÕò|ª³-x jÈåK}JÒN!r@TDº˜S~+—‹L5¦5´nv8€ÝAg"‹¢ì[U¨r~wQÛglÕ¡Ë6Ä$J è,*ÇÓàÖCÙSww»âšVg¶¡'drãêÙ°uzR ótŠ¤Íª.Ûe?”‰Ü¢êá!êí(ëÉAP`¸VFo7õÒB8¢{Ut‡r·ªwÂñPÇQžs¾L¡ˆãˆªsÙ¯ÇEAg£0ŽMR7apȽUxÔHnÏ*[L ¥fq’wXhÉïcÞÌüÊ¡•Xñ¸l”Ýþã:LøC¨&vz[]HzÑ»'<=Q`…Ìת¾ m?AÆ%u„cËùØálA"FºÇpüü ÚijdäÚ±¸0¡w&ô@Bˆ4U§ýr¤$Ú‹|™NèòtÂqð”0l:¦7›§»Íún+ú·<:P`Ú؆˭Y^áDÌ×—ód©ÖUnhuÖ :øzgŽs÷QHU,þá];<`ÉùºZfêÍ›-òî/$|.sJý 5ÐøD3Á• 4ÂGàŒº¸»`Z³ŒÔïúŠ{…Á<~7µÙh"§:HÊaÎsHJ;¸ÕEN‡Y^ßê9 äáëߥ´|⹈’+6ø«®×ôÍ_þü›AÙ -endstream -endobj -124 0 obj -<> -stream -xÚ½XmoÛ6þ¾_¡9+l¯‘"’z-°N¢¼¬Ž•Ú -²`ÕQ¡¶ìJrÒ`èßñE–(ˉ CàHÏŸ;T¾)HÑá)6VlËÕW™-”Ã@98AŠ«–¡_dkØUT[3‘ÜþÙûÅ?ººðFÁ 8÷G}›nø{ý¿‚ßbÙq’Ê©ƒq¹½£3Öupb”D×0bS¬cøéðCð3™´(ßÍ´lå±ÐFe¡„h®S´çÊDùÄMvßµÅ7°†Õ0¡ÍtÄ‹Õ2Íûªéº½eÆ4芊ˆOé~¹ˆŽã” üÖW-]9í.Ê£äaÚëžù^wÚßÎçq˜Ì¢£eò%¾“ÆO§LœËRk…-ÓØküñ|tú÷ðüp<ßtLFîsaÔûîÁã2ý:?W, p&ƒÛß Mn&wQ‚QQdà\0-p©üYjX)º*à+³+͹ô¯½ñn+º··ë5怡Ùø•}5©“7ߺ.Ò°ÓLÀéØ¿?§2Ëê*Í•æn•Â…ý"HYà™[kÙ®†x„}ËéùþpÒW‰áôö`Éðå`—£ PMSØŠDwÔÒLCôž^±5%–œö¼á¥7žHUW¯éÒuR5éçáŽu{Á™/¦Þ „ðz5ñ&µÞÉàB¼1]Å.6ôÇâË™w.:6Ó$¥)˜íõyVL55«2M¬‹i2'0ß4ª~ŸêHÀ?ë#ýÇÞ -È -&¨t±@-¹G«¥‘ºM’QÄn&ß2 ò·§bYšQ¨Ë³Nµ ÒÛ»3H ÃŽÂ‰¶¬Þ‰?ú´ó²ÿÔH$‚ˆ^Í#ÓÅ“˜c^Ÿ3µöÈ,sôëœ%áHž³^FÒðæÓ㻇Ç`ê2$y£U4¼ã©N°´B*8@&ì3*Æ°¡Âc†¼žôúÞR‘^ÄÙL›ÁÐ`ÑœM€*Átm\\ø£ ß9'^€³EËóçÈøË¡7ôG§,˜ô¥wtÞà+§’"ž¥âh0¤QG)¥ë—bøƒ¦€Íz†%C§¬·e©”†­4ƒ­rQ6¤]²ÅÔIÁ[!ôåÝf(”#PµPM°Š’À5†@HµHlÊŽ("4‹²“m0 /Bàg†¢mÛ -(VwmYƒ$ ÀmY+¥¿ÆyôšØÚfìý6 À˜_¢Á©QºM*7­¶4ØŽf¹­i(¥³< óu†vE­Ù¨¤9z4Umað¾%Ú&k“í"ƒ—ÊhÒ×k41¤"ØXIáh‹ªÐcYTä»óIÍtÈÑlEž8)”UXC:ÖPá×W.·ª'¶êh[0s[GçeÕ*LÃèKEq¥Ws}Ù„ŸçÑ ²Y¯‹i„Ù*šåã0—µ*9xZE—Q:ƒb5¼‹ÄG¤ë²Ô?¢\ÄI÷Ò‹‚p~§M*MÛ?¤êVo®k “²U8‹.Âô [˜ÄÏ5ª gª¢ÀŸÕ¶Nâ/Ëtq%Yœ?u9fEßár9çlZDÓ‘\øž„ó ¨G¸Rº ¹ÆBºPš.×yœÜ§ñCD'Éþ+¥µ™v -¥Ñ˜hÞáU<=OÚ2.Uì%ëE)!’xÀbq™&-¾ä™Uƒà!œ¯£¬û¡<uN TJ^DÂhž\d“ŨI&·azÛ) Øq@âgñÝ}M Ùkb„÷=O£EÔ‘¦iÔOc?ø¼+†šR|ñ/Ï’~—†«ûx–ýÏ´Oî—¼=DéÍòhÕ‘ƒ­/6Póåc”ò×ÏËur+³÷‚J˜4ÊÖó\Ü$ó'†¼ìk—dïˆôWÞ)ÌÃ'XwmÒeýBúÆwNiiW$ëât_¬îÆûŒ} *Î粫»—sHzôb€·Ã4 -Ÿ¿• 8þ -Òv" : )½#[Ü°.Þ`¢ãƒ›ÂQï¦ýbÕé-²ön3*i¼nÆ„vñ÷B€åp— ò½ˆÙEÈx=/2ãþ‹f7xAÚ~Uþ`žIßê y{)˜í\ñϼu+:w’ ï&¡µ;¤-G^r1ïÖ‰7Óš•êV„é™›”:èØNm9H[—Õi%­ ’3u«âèñM6½!rË›±úõ­ E$œQËû[ñ¡r[)ËaI@C:u²ÉŠqÊTöo»®…DFʺÙÛõ>)O -û '#Íh{<Ô·Fy úÕt0PŸâÒ\¾‡ -ÉÅ•S½/8ýôÓ¿Óa¸² -endstream -endobj -129 0 obj -<> -stream -xÚ½ZyoÛFÿ?ÞÔTN83<‹nJ¢mn%Q©¸FU,™vˆÈ¢«#]û¾áÌð0iI.°F`›Ç›wÍ;~oå+:üÊMÛr‘ã*Ë¥+.°â"Ã2”øNÁ6"®¢ÙÈÄJ|û›ú¯p0û“Ø‹ƒpÒÓˆéª4<ëýÿG¡–¨ ,æÍzØUWÅ«FÅ’êˆPA¶ :~0ü˜µ+(È´låO)cDåA1(E®#ïWJ¤|j©L "†¢&r­BˆÑstÕûµGt5œ„㦶£†\ýøÊ:ÒŠ‡m! ±x]a"K¼ù ©v¡J h VhA˜»o¡c£A\ó‹z7h ¡mÑYÒy17`]ô:4ehGêzÄW­¶WÛ$“"Ì$ZVÙ÷«´™Rd¸Uì[Gªx]esGô¹È¶[M1öG£Hö/Ùáã«@>V´Ï2L¾æK‘Ùe:F jA'%XkëhT¾<Åð’›ØÙ†˜Õ½ºÑ”ŠNM‰¡C¨A;B ¨¿§µÆ8Ñ¢Ú0Ž%ërÖ5‘mœš³/hJj$Ç4¸ª\1Ÿßtuq@»ø´26aí–YÛg,oØ5©\‡á¨‚,P7 oBe¡+›š¨¶PI·›¾£Ê ú€LG¼Ó»¢ÓƒA¼®³ ¹ü*ò¬Š L­–@g$+ë´ËjŸš5vªÒ® pã¸*±ä/$xF´5hgá|4”èö¶¡I3 $u):Ùfƒš™ÑÏóUG²Ùô¦ôa7|orkH•s¼B¥Šš©¬w§¤?Ó( -.'UôÄþeGéêÐ΀-µOÖ®¢fÚùëýCºIv'€?јot,1m|3õ«Ê=ñý¡HŸÑýsØ ×3lµîË 5¼Â²ŠšY6M7Ët½Kî»@`H§Õr¦Ü®›ü/ýšÉ…Ó -?Š¤Õ}?¾öýI»|bˆ7Lªá_ïð-r¤k=È£6 l,N:,"/¦‡G¡Ô½Â£5óè0ßwBâVoš¾B/>ÅÇDÄ9ÙˆŠší6ÙúþT2¸Em³†Z$i<ƒ1çXå4E\ØD*÷Ðè²›¾MÕØձߩSqY¸‡þ…7‰®öÙÍÅs€ÇÏáÖae¶Р·²fÄa®7€qùìâ¬OìF¡ÑÍgm½ÆÜB¦Q;(*O9Ïþý6jû@c³ ;Rs˜ÙÒF€©Š)ª—pÌïÄhe¨Ñ͸ Ó6¤àý¥‹gsžûv+jëé ³¡4?_©Y¯üÑ”£ ¸¿p|Ô0\R YÉj•%ëe:È×wYG ;K‘o³fš¡ÛÆ–x褩øYöèŽzÎ{†akàMøÅt‹ Žõâø†Ý[êxÎ@{ãMnæ³ÈawÁ¤CClAˆK~\?~@Ë|“å«lK>lÓÝR|‹Ÿ:ƒ@v36¡W1Ô¯gAû“&œ«Š° ã1)¬7‘.Õq{šET£ø½PáU?7¨EC‡­á’êØCs¡A˜õø!œÕ›‘ÇÛ˜ª ~ðAÝbpa Îøب _]6ï1˜Ï^þX<5Ù©sùLã ÆùmúÓôi÷F7ÍÒuÁƒãPØ‚¡™™.B./·¼~E»'ˆ¥BÊ¿9ïsO/¬’í6[òÇ¿}Y%Ëo¿Ÿüô:'aÕ,½ß¯’ §ˆHàwË" öq`øD’ÃË¡]Wg±(蹸zĨœl¡ž?dÛ%Z&»åW›ž ï•šï«×àæ+Ëh¾¿HV[Ž Û“s‰ÜÆÌû¦Ül}—ÿÿDZ]"™»ÖyvûÆ–~Ùß¿±¡«üž…þß—oöL¨ó3¿§›/ù6¥ßÓ~cƒë²ÉÛšý­ãM²ä²‹–ÓT‡d^˜MŠJd/äSâ0l÷²éÉÿÞJ¾Ùx#*K«žEùCÊKP¾¹ÍÖÉæ‰ßÕëðv¹Éw5j7/{xÌ7;Î*߶«æ#@`ñš[Ëæ!‰Bò«Ø}Wi²fP¹¶Åu•/¿Å›T¨÷¸I¿gù^ÔÚÍ~8Cs¬™|—o¸Ä»l•Ni_&¬É·Jöî6ÛÀ¦ óEï'¾ Åúºiwœ^rAéúvûg¶ûÊ–%°PúM”ðŠò.[ßÕ—Ì„ô•´E¹×ëR­F“xî0¬cdÉÖ-:åÏï¶Ï9§wM%EäkjÆ€Ñûõ*[«´ì:ÊÕ(eƒ4\§Rß?ý£©3ªY Sp,¬ -;WZøŸzV3Á…7ßC ðgA8 -¢c~0Œ–Ì5­Êdʃ@þ9ª•GÁ¡üª9ð¦^?qÐüüøü«ºM6@TŸÕŃÆwõÊÁ"‘Í MØK ÉÍœVü>ëð ­ª(c·1"­SÞ—ž/ßÂÜÔå÷ò=©6Foï›Q•¢[ÇŽmùš{o FóÌJŸ~úÇ_’1ïý -endstream -endobj -136 0 obj -<>/Length 13338>> -stream -xœí œÔDÚ‡«gnkPQ9TaWå¯]w…E¹/¼uuWE`YÅOåXnA\ñ\õ@åPn‡{€f¦¿îÉt¦’T’J:éÎÛù?ûûaOúí¤:g«*•ÿDŠŠŠ ÜDÓÝ["üë’’’§Ÿ™¶¶@4tqE"eâZ½êÇH¬¹Í[œ‘Þ€$kV¯„¶”€¶2³[·Šýùíw+œ~pÐÀ±?_›:Íû61vÁE8®ÎqÕ+Wôï œ@[™€#ûD²«Ô«^´sïÑØëÆO‰ý¹aÃF?ZuéEòwínÙº-߶ãëTÛ¶«ÀÃðm‘¬¬*g×îÔ“TÎa÷í~ýßKbsr^øÇŽyÕ³¶¬\~òYYŠ³Tø‘E"uòNnÚ¬i““ó -¾{kÑ÷{teÊë¥ßmøýé'UŠ^ùÙ;ßl>Øä=:åUù|ÞÌÕ‡Š*Voݧ{«‚ÍÌÿïVþˆ5wèÞ©éÞ5¾ñù/-ÿØ£mƒÜoßž¿â·Bå]]K èdÿÎukcÿÛ´¯·°Aœ?\rÑ7ß|—¿k—òcÝ:uÚ´iýî{˜ÕC[A¤ÙEWv<±jÁÖ5ßmȯRçÄ_~Ûxf—ž¿¯“ûÛªÿmd'sz=–pAãƧü_§N±}ü1KtxYTªQ¯Y³¦M›4®UñØÖM×oØ°iû®’Ò»FFmí]÷ݪ}5Ú·m\|ô×é³Þ­X«MŸn-÷ý´dáò't¾â’“«9ÖʃÇt nqá•çžXyõ7[OoÛh×Ê÷}µM}K§­œ*µŸÒ¸q“&yµ+íÚ¶iíºu6ï8Zô{X!Ä©Jx”bþãòõ2Ÿ…¶‚H¯þý*ge-ü×ô}Eå×sïþýr³²æNŸ~˜UØ¿ã\`ì[)·Š•[Ú±w£Å‡¾ÿü³•ë·Ñ -¨­3¦(É8 O4Z2uڌ؎þÔ»O½ÈÞ³—tësuÕc[fÌùÈØà¬ìjìÙ­AÅì£ÖÍ]øYw+Ýl›[«~ëßwhq|õ]ß-ZôÝ÷' øƒS•?èÎ\2Ÿ‚¶‚ˆ¢­ÿš¾ŸÓ–²qÎôé…µÕìŒ6±±aƒš9;·l\¿~ãÆ-;Ž&´bÔ–ñuÖ]º¶>nÍÒ Í;7ÞùÅ›ÿY½ÏØଠ-u»õº´fvVÑ‘_Î{ÿ`q‰ú–±m±Þ_“Æ1N®Smß´qÍ÷ßnÙ«ï¾ àB@®eÇœôÑ ­ ÒìâO¨RðËêo7äW­ÓhÅWñÎ]{žs\îΕ_nŠœÂc\Õ¯ÕìÈ7Ÿ}²ïÈþM›ó™HUë߬i“¦MNªšuäçO—,ßXÀä´•]1¯oïKJ-X¼hÖìÝE%LG$ò»Ë®:³vÎן®mÛ±yÁæ/^_úSl󩧞û³Cûv±??ýlùÏ?ÿ{ñ‡®ÝÖ®²oç/ëÖ­_·qëaãÞ@pª×CKô¶È“•]µu»vÍŧäíß5ïÍÄ”ü¥óªeo]óU£3:D£G§N›­Ô7hÝé‚3OÊÍÉ**Ü0cÎ2f>4‹dåÔ?±q=¶í‡Í™œ¶b´º¼w›šç>ç­ŸŒ­­×ò—µÍÛñÍÞþ>ÿ”Ý:7«ùÓÒŸm*Þ+8¯uóµë6ì*8êÙÉôÁÜVÆ’Sé¤f'D÷tГk õ•"»¾˜úÈÈW¿?`£­…£¶éùÌú#ʆ¬ì¬hqIT{GrjÔÏ«rtçÎ=Gå/©¬ÚŸ›çòA½§n) ã­vöã ßuK'.L¥´N¿óX÷#ªôÊ:ge/#Îú#¹Íîš?¡öˆ+úñpé^sëäÕÉÚ÷ëo9yé7òß:R¡fƒ¼š‘ƒ¿íÜ}ØÖw*åçóXÕ³†Ì~ñ™½úÌØZ\«Óä×oœÑsÐ{»J²*UË:Zˆa.¯?Z¹ù53&wû÷Õ½¦lAx1òÚR¯Ûcjo«Â‰Ý|òÖÓnØ[½IÍ•ãoô­’WU¤Æ9ãæ?¸áÆ^Ïm8û¡ýøy÷ýp}ÏW6-·ƒqçùµº¾újÇ1=ïÿ!Úü¯‹fvþ Ïå¯É:kôìû– ¸è7y”k«°Jó£Ÿêß`ûÆc'ž|è{ï~ñ›%ÑÆDÃ>Ž¶»÷ÅGÎ+\»õh¼ÊŸÝsýó «ÛÁŸÏ*-G¿ùÏ£·_ñЪù§ ŸÿLÕÑW?úñÞb‹úüûŸ·]þ·UˆµÀZ[‹'Ÿ›¿æ—ø|Ë¡ÕOOk4êf^[Ër{¼:åü©ýï~'¿8§a÷I“:¿xõ]Ÿí—CUiùÈüzåkŽwáKsoz¯ÿÙÛ‹T9 -wþU­kf?SsDï ÇL›Ðªò¡·÷›VáŽÙO콣ߤͺ!ª¶~ª;hö«í&^}Û[¿Ek?jî};o¹êÉõÎ)kØק½2ïºW®ºñóý,ÞÑ‹De&Æçó1û2yKN£ ïwsîcWÜúî®ìã/ÿÛÄÛÏ«ùÛ‚Ûošðõþ’¬Ê'µ=3kå×å¶óæSÙ/zcGvÃvƒnëøÃí}Ç~W€Q¬µõƸã†Íø%f„âÃ{j?ø¯¡œ¶}{æäÅxç­Íñ@VͳÿtÖ§×özV¶ïsÇ°ùÏ÷@÷‡·]4yÖU³zþO¼¿T¦-“o;å¹ßxë°‚GÇÔyáýK†ä¨ÆÓNz çkœôBÚzx빯-¸qò•ýKÇ»ÕÚ¾°ð¾÷ú÷}¿ùdÃÆ>ó Z+Úú¤r¯g\WñËw>üä“ßûbÃAéN^üÿ¦´Û·þ×£Û~xwê s¿ÝÏòºOyí’™Gîîÿâè³?¸óæ—×55ç® ~'?¦­Å/Ÿ¶âÃU…5Okßü—1ýïY¼¿ –Ä qз­^}ó®¥=öÍ¥PrdûªUÛ -¥'™*žtÃœWZŽ»óó;žé4¡÷­K÷”0N[âWiûÔ¬aË'¼²ñ¸ß¼üå»×/¨zùã{ûÚÑogOF[±­ÙÕNnÓ±C‡ ºôl³þî^|±_î+æ -ã_·Ís ÿúါçogµÏ>ñÑ˦ø¿Vó¯»ë¿»K¸úJM®úJ‡}‡¼¹C~( @Æâ~nkYåÞÓ§^<÷Ú[ço‰/ -È®\;ûˆ“yy–s|ïé³,ª°kÄ•÷~©øI$ŠwžuÜEŽÌ;¸ü¾«î_×ì‰9cÛUÙöhë>Øíè?Hœ5åÜWúÜñvl<ØiÔÜ{ˉÆê ñãÂêÙGöÇ¿fn‹‘óGí¼åê—6É­‰i«Â‰ýgN¿ôÍëo˜¶¶0Z¡Ñ€éóïÍûpð_îû"6Öæë#ÕÚümîèc#®|ìûƒ&‚Г̔|ÅFÝîÿç¿/Ù°å`nƒ†‘ew^¿(Ov½.¯.~ü„ÅýºþíÇCʦò)yñγöš»hèî;/»aÙ¾šç¿´äéãžìÚ{övg}í”ü˜ñüº¹ø„ Þ¸wØ eSò†e »fÅÙãgŒ¨·}C~´n³:럿yä›Û%gÕDÚb‘ÜSzŒ|jèylÖ#5ê³U ß*ê2¨Îœïš¹.ëL¾>îø]æõ»Zý†µ+îþ5_~š';WR¹n|­ÃöÅ6²*ÕjРzdÿŽí{zÒõ‰äÔhW½xv À<Ü ´ ´ ´ ´ F™¶~wz‹t·¤øj媸¶6_Z7Ý-)½ý´ ´ F™¶"ö•âÊ‚¶„€¶Ä€¶Ä€¶Ä€¶Ä€¶èñý⦻ ™ÉY]îNw€Ð=bÚR/0EaÆë ÛnçÏ*8Ð= -h+ä@[ôÀæ8«„€¶è ÌpV mÑ#8«LÚ.| h‹Á¼ì©o¾‚ ´E güg•Ð "š¿!üuùDùlâ·h‹Š¶”k)‰DW•ÅÀ§U×»×êÍêù³;ÛÐV¶hÀ_H2ÚŠÕ¯X$õ Þ¬Ú"´•j"ýÉŽJ\"fÚ²-–kR*êåŸIŠõƒbN‘ß¿°ŸeÛÃFh‹ ÐVJ1:KÁÖ\òÚ -¦³˜ôœ·‹ý ûYN÷mÚJ)Š¶xé·˜|P£­‹Æa>ÈQ½ª-Ï÷¯¢»ý·êz´Eh+¥øª­€ÏÙjËõþ%µe½h‹ÐVJñJ[ÆúÀŽ UF—ý+ëõö8]ñœ?ÝóXNôÁ"ñ?CÛúXí Ѷý$ÚJ)>i+øÎbœ¶b<š­o¿™³dêmµ%Ó~h‹ÐVJñ|J>àóYüöX‰ß¢˜ˆ¯ç½fÄ¢^íŽ%Ó~õ¬òKä@0¶RŠçÚ -ø|_¯Ó+5‘®ÞÖ\Âz mÉ·_9«ÊyFo+à@[4j‹ÄØPÅ8H´Kê†õfƒDGí/ý”hâ9h+Ð@[40j‹–³˜A[õBsYÔ W„9o?æ¶ÈmÑ@§-á°2€óY|=¯­Çrl†Å:s =¢î߸ÂEûc¶¨mÑ@r¹) Ø|iËÖY’õfÚr×~¬Û"´EõB*Ó·y&QøÁ´×+³òÊz+uôgr‹Â -õ6¢º^[®ÛA"! -ðw¸l¥Ö}ÊéQ|ªWÆbêz+‹Ñ¿³z¥/¦®ŠP´•Lû¡-B@[4Ȥ¼-~ÞÊB:Céêù‰§s· -X,7ežÏ2«Î[™ cÆz~‚¿×Û㔬äm…h‹òÁ5,`cCµ^7q®xGÕõ$—j.¡¶$çø­ÛmÚ¢¼¶‚é,&Z]S:C¯Ó7‘Wö£®žï!o+l@[4È€¼-õÞŸîÆŸ2é³úA³ã¿»æ!jÅbºUòÈÛÊx -Èh‹Ä|–2ƒn¡-ÞYºÞÓjKÍ®‘Ô–uû¡-B@[4°$–˜ý5/Á²„’®w0VµxdGý1g1­¶Ôzäm…h‹ÖÚJ¼kñ×h¬·þ;—¬_ÜÖÏH3Î\:=1‰Þ–²y[aÚ¢Ån¾ÆÞD^×ë/nɼ-Ý*y¹MÑ.’ÐÝLDÞVØ€¶h`±ž[;_£þMJöƒ\׋?e1d¦-ÉÂö o+œ@[4jËäê25‘×õúX_í¼-fè×Xçm ë‘·6 -µeyi L”Öú8¼-ëY0ãä½°y[aÚ¢N[y[³H\‡îêó_fí¯k7;YÞ_¼­ÐmÑ@r¹)Ó\–‘D½ÀqÖsIFLF‹eNq·å´|K·Z -h§®åó¶ÔõV²óVÂz™œ[„y[ÖðOóßBÞVh¶h ]Êd¦-¡nÄ3î&‹ëÍŸãK6oËšˆ!oKy[aÚ¢Í<¸¦|¾‰i®= Gj|ŸËx{•·eòu5Ö#o+Ì@[4°XnÊDÓð¶ë³dL©æÒî-¢ìß“¼-3s ×gñõÈÛ -3Ð lŸITÞIßß+äŸû3< XÖ}ÓiK:ZÓxaÞsòûùzäm…h‹òÚ²ãJ¼ˆê´eò$ ÀƒÜü—Ô•­H˜·¥¼ü}ˆ|=ò¶Â ´E™÷ ùšDi4jþ ³ºE§BÃ3Õe3âÌmÞ–ÌïCäá;Y y[aÚ¢Œ¶¤ûAe&bŒïX {[êK—å'ž)âve¥-á|–òü p´èâ÷'"o+œ@[4°$Z¬uï/Ñ/³œÛ*ß9+Ÿ¡7}&ѬÁ -“Y별 o+ä@[4°ÖVâ]YmñSW|·Ë¤·eªHÝTæm©õ®×s1äm…h‹ DyXöë¡T)Ú¢›³g>ämñ_Íõz.äm… h‹ë¹Ýåm©4kmrüÊÛRp·ž y[aÚ¢P[fÏ&^X­‡²^C¯«1,7eÂX_í¼-ÛõY¶ûGÞV¶h`Ô–å¥eÿ\¡‰‰Äõ¶kîE5z„y[Ö•’ë¹·6 -hÁ±^™Ü¡9«ÐV¶èá4oKÚq.êm–›2“˜@™Û…¶ó\12íÑmç×m€mÑÃÉ3~›Ëü¬¼üú,³z³¼-×8~Ò¤h‹òy[‰ -i6—"ÉU*fõ¼­d€¶mÑC2o‹ÿDâ…gær7S¶{b.cÞ–ëö(@[„€¶è!“·eüù[âƒXî*šŒ¶˜æÒåm)/ ­mÑÃ6oËÄM^™ËAj |Þ–‹¼-™gm¶mÑí¶d -dê]N~IæmY ÌÛbÐVø€¶èa‘·•xaqù%o.y[L;0´ÍÛ²E—·¥ Ÿ·e± mÑ#9mÉ—™Õ»×KÌ {2ZT¶Â´E$‰.*õRy[F¬a™½e½+ ôE/´å´˜im¥âF[ÌksA[aÚ¢‡«â=¹­WÑÐb Æ×0n¥(3¬çbQaÚ¢‡¹¶XÊÍå^[Œ[)*|nшY=´6 -zØ]`©4—ËA¢ŠÅhQˆ°ƒÄ°mÑCâK™¹’ÕóÂ\x&1l@[ô ®I¹,€På’äƒAÆí® Ð=ˆæmA[À+ -zÐÍÛJ~(çßž1H$´Eºy[ÞîÚ -Ð=¨çms;´Eh‹·ÀíÐ! -zÍÛ -8Ð! -zÍÛ -8Ð! -zÍÛ -øv,€ ´E¢y[ßmÚ¢Ѽ­€ƒA"! -zø—·qþï É+=õG4Ú"´Eÿò¶bQ¯\õ5·1RúcTý÷b¼ÒÐmuaQ¿b‘`M<@„ -h‹þåmµÅoáiÚ Ú¢ˆy[:m1Q?¨´ÆT[N1hѦXØ$O€¶mÑÿ¼-~ÇfBI—¶LzžmÚ¢‡y[ê•kѯIˆ£¼>™¯!‹úV]ï6L´aDx¶èá_Þ–2o¥ÈȲ·Å×û®-~> Ú Ú¢ˆy[‰NVD7Ï¥«±HÊc»]‰€A[ñ/oKfÞ*•Ú2¾ mmQÄ¿¼-㼕Y2ßÄ ó_.€Pç³$ë HmÑÿ¼-ü• û¦ÞÑ‹éÃh¯´åt;´* -zø—·e -ºoüMÆòz‹‡t,] ôYŒ1H Ú¢ˆy[&ÚÒÔó:ÓhËv&Ìîˆ2Ÿ€¶ƒ¶(â_Þ–hº]ÿôcúiûø/Îéz¸×Ľ-‹Âù,ë¼\lÇB@[ôð/oËä.¡FRÆ»^iKfÞ -Ú Ú¢ˆy[æ‹ÊgèÅ‹$’$JŽþ0H Ú¢ˆ¯y[BmT屶œ>™èÐ! -z1o‹¯f̸äm¶èļ­$´…¼-àh‹ËÛŠ”í£´òûÅãøâÒ©zËcG¢1 i>Òå‹âØŸÆúØAE7(œmÚ¢GÀò¶4ÚÒ´l/¦ÿ¾L¾Š žO§Ð¿• m… h‹ËÛ2j+qPÍ^ÄÿÄøGˆLÚÏ—‰ëuÚˆŒÚ¢GÀò¶„Ú*=¨^~¦}(¥Þ¬ý†Ù4}=´6 -z,oKÕ–Ì«{—âiŸèÖÞÖ,¿/Ab¨€¶è°¼-GÚÒ·Gâ D³úòǼ¡­°mÑ#y[L3sIÓ00kI|ïÒì@&õå•“À°"4@[ôHÞ–fþ+þŠ;ŽíýHѽK“–˜Õ—ÿ›UW]@[!Ú¢G@ó¶¬@ˆÆL´eò!]½F[$† -h‹ÈÛ2¼Ö¯Ï²ím%Þ6ôé,?Á×C[áÚ¢Gò¶ õÜ«òz‹Õ_š#–÷élŸ”ÖÊ´ ¶°"ã¶è€¼-CÆ7Íeµe:ÏeV¯m… h‹ÈÛ2Ô˜­Ï2[¡?¢é³z~#‰aÚ¢Gò¶ 5fë³ä´e6fV¯m?´: -z oK_#\Í¥YÏeú]¸r‡÷:Õz,€Ð=‚‘·¥­·ÊÛ²jOÄù¿<ãz.h+l@[ôLÞ–ä/S°¹wiÛ~“&E0H Ð=–·e_-yïÒºý&½¿8x&1l@[ôXÞ–f«¾”qó\¢öûwFx[ñõ® -Ð=‚—·eRmš·%¸wi=É%ìB[¡Ú¢GFæm©ŠÓ=ª]V-^[~_ƒÄPmÑ##ó¶xCéœÅ&ezm1äm…h‹™·eìmñî]"o+Ä@[ôÈȼ-]oK÷ZÔÔ¬’W^@[!Ú¢GFæmñ½­²½èç¶t}@<Ü^ -zddÞ–aT¨-Šú€ÐVx¶è‘‘y[Êoœ6ÃD¦e ¸&l@[ôÈȼ-h ÈmÑy[ü‘a> -z oKÛ~h+t@[ôȼ¼-Gð}@å?X6 -zdXÞ–nÿÖíÖC[aÚ¢ò¶t›1H Ð=·¥Ï$† h‹™š·elZ/šhCpMx¶è‘‘y[Âö$jÄ}@h+´@[ôÈȼ-Ói×s!o 0h‹"™·eÛämh‹™·eq “úòÈÛ -Ð=22o˼%fõšUòÊ h+$@[ôÈȼ-³f˜×ãážðmÑ##ó¶„û·¬‡¶Â ´EŒÌÛ’™¡gz™–àš°mÑ##ó¶Ôý[mmQy[ü‘a> -z oKÛ~h+t@[ôȼ¼-ãR,‹z¾¨ü ´Eäméê¡­°mÑy[ºÍ$† h‹ÈÛÒgôEäm) ¸&´@[ô@Þ–´Z -z o+±«òû$† -h‹–·åíj‰øÐVØ€¶è¼-ÝFäm… h‹ÈÛÒ~#¬Û -Ð=25oËlÀh²F÷„h‹™·e=É%êB[áÚ¢GFæmŤ¡nä¡ê]=‚k´EŒÌÛRµ¥›8‰Ú -;Ð=25o‹™8‹ úwš°$† h‹™·¥"ÑÛÒµÚ -Ð=22oK] ÏEÍ{[šöcDØ€¶è‘‘y[œ¡æ2_Ú -Ð=22oKf„I“·: -zddÞ–­¶LzqðLbØ€¶è¼-ׄh‹ÈÛR€¶B ´E ËÛr -w[³ü¾‰¡Ú¢G†åmY¸Âø\¤aÝVüh+l@[ô@Þ–n#ò¶Â´Eämi¿Öm…h‹™š·e÷!]=î /Ð=22oK¸Ëzh+¼@[ôÈȼ-™z¦—i® Ð=22oKÝ¿5Ð`ÐE25oKxÀ¬žßˆAbØ€¶è‘‘y[Ây4³zmû¡­ÐmÑ##ó¶$Û¼-À -ŠddÞ–dû‘·´Eé¼-!+QYBIe¯™MÞW_>+5T[µFôULÛoÒ$äm…h‹Nò¶„˜šK§-³å¦–ÚÒÖë×s,þ*‚z>BžI Ð=æm ‰ -ëU %ú5c}«®wkŸ[4j«¬^?Ï%þ.åCN‹öó 3Ö#¸&l@[ôpž·%$j¬çz4¾çÅ×'´U^_v(ý%o\njÚ‡2k¡F\m… h‹Š¶üØsLI±?W,*Ó“òÂX£nW_ŸÕõžïEM2Û.Ü›Lm½k -B@[ôðoÆ|¹©]LµÝeÞµ}úÇ5˜Û"´E€hK;se±Â¥¶Ìrž¡-mÑ#Úäm™áJ[n{oî¶mÑ#íÚbâ¼-ωN»`žmÚ¢GÚµåëÜ–ÓÙ.¯€¶mÑ#Ú’ÈÛ2¯¶;¢Ùn,ê=Ú"´EtiËø”¢·s[2J‚¶ƒ¶(’m‰!¼$JúÚ Ú¢Hêµeÿ:9mÉËÚ Ú¢HŠµe1ý$\c£-f3Ž4m¡·@[„€¶è‘JmYßéóD[Ž¾ -´´E‘”i‹™æm^ûóp±XØ$O€¶mÑ#³×mYW¢·´E‘hË¢_ã@[Î×mÉ4 ÚÐ=üÖ–u¿&õÚrº¶ËÐ! -zøª-f|ÞÐP“ÊA¢Óeô®¶mÑ#‰ y[À!Ð=R©­øŸL£ -ϵåè«@[€A[ñE[¥;ÔÍ[1äm@mÑÃWm9%eÚr: æh‹Ð=|ïm•Îg1c¿F70Ô=Y·e[mmQÄom)óYº™ø²²thËéÚ.w@[„€¶èá÷ ‘Ÿ[’ʹ-§Ëè]mÚ¢G -¦ä­'¹R¦-§O,&´Eh‹)X¡v»ø£ê2Áü— Ìž‚¶´E”i+ï,Õ\‚ù/¯µå¶÷æh‹Ð=R6HŒjãù‘£þ¾ž§ƒD§]0O€¶mÑ#•s[Bsù:·åt¶Ë+ -B@[ôHåº-aoË¿No,z´Eh‹)Ócg1ß´åt —·@[„€¶è‘‘ œ.—÷h‹Ð=2O[ò2‚¶ƒ¶(‚¼-?€¶mÑy[~mÚ¢G8ƒk˜ó®™# -B@[ôHYL ­ˆü~&ÑX‰Þ`ÐE·åÐ! -z oË -B@[ôðuJž•>>­¼þ21~»Y†ä´åt½k -B@[ôH×o¥¶ªñgnËé‹ÉmÚ¢G@´¥ú°Bø´´E‘ hK_Ïkm¹í½¹Ú"´E´k‹!o ¤h‹i×–¯s[Ng»¼Ú"´E4jËt(SmwD³ÝXÔ{´Eh‹éÒ–qº·Úrº†Ë[ -B@[ôH‹¶„ëÔ=$:].ï9Ð! -z¤^[ö¯“Ó–Ó'ýÚ"´EkËbúÉ“ y[À!Ð=R©-ë;}þ­ÛòªÞÉž¡-2@[ôH™¶˜ÉóѾ.€°.6É -B@[ôÈìu[Ö•èmmQ$Ú²è×ø·B²aЀ¶èá·¶¬û5©×–Óµ]mÑÃWm1ã󆆚T.£w ´Eh‹á™ÛrúÄb2@[„€¶èmE·Ò´E hK?ÿ嵶ÜöÞÜmÚ¢GڵŷÒ -´E´kË×¹-§³]^mÚ¢ò¶üÚ"´Eämù´Eh‹ÈÛòh‹Ð=·åÐ! -z oË -B@[ô@Þ–@[„€¶è¼-?€¶mÑ#³×mYW¢·´Eämù´Eh‹ÈÛòh‹Ð=·åÐ! -z„gnËé‹ÉmÚ¢G@´Ñåm™áV[fãNh @[ô‚¶ôó_^¯ÛrÛ{s´Eh‹i×CÞH+Ð=Ò®-_綜Îvy´Eh‹ÍÛ2ɶœÞXôh‹Ð=·åÐ! -z oË -B@[ô@Þ–@[„€¶èav,¶úk|4[ÿcýc9Ñ‹"êk]?H©×Õ(¯Íán.²²×±úØö‘EVíáÇ‘2íçµ¥Ö¿š  -B@[ô°¸À’4—Q[ºÞM¬ÞL[1=Å÷o˜´7Ó–Òãþ­Û/¬‡¶Â´Eë ,sé”ÄLò¶Ì´%Ø¿¥¶ק“i¿°Iñ>´2 -zØ^`®Í%îIië­µ¥¯/íY›ÈøU„õʱ„õžmÚ¢‡ÌætÞG·>¢£=z|»®Þv„Y{̦ØuõÈÛ<Ð=$/0æâ{4¶÷Õú²)-»u[ÂöXhˆï:ZÛåh‹Ð=ä/0§æR<£˜HòáýD‹jQ{¬5¤1£¶Þ«)-®¥Ð -zX,€°˜·’¹ÈuóVžkËØÛ'Õöèê=¼‡˜8´Eh‹Ö붒1—xÞJTø! º>K¸Â¨%¾=2aÂzom1h‹Ð=l—›º6—xÞJTcÌÛ*[‘Sú£Ý\”pÞJسzþn#@„ h‹.´eûnbÏ¢ áÞåmY,€Ë¢O'ü®Ú -3Ð=ÜiK¦@¨-f~ïO÷L¢`ÿ–sWÂ>õ½EµÚ -3Ð=\k˶ƨ$ã :3ËÛ2®Ï’ ®áût2y[ªLU ­°mÑ#mY— {Rºy%Ûˆòýëæ¹ÄßÅþÞ¥Y½ -´6 -z$©-‹J³€~t&\£1—¶”>Ù³z~#´6 -z$¯-³b‹\-aŸÈ"o«l5†„¶œ‚)ymÑÃm ë…Ú2æmYiK”·e}ï’L$y¯y[¡Ú¢‡LÞ–;sµe–·¥¯iKùQhSþ]Äë³ÕC[aÚ¢‡dÞ– sé´Å,ó¶4õæO0Š×sq{Óшu“·B -zÈçm95—LÖ‚xžËòÁk™{—Ö“\‚uù^mÚ¢GFæm©µªž”µR¿.ßk -B@[ôÈȼ-µ·%4—m0y -B@[ôÈȼ-co+Õ¸LW¼­0mÑ##󶄽-ã½Käm…h‹™·eìmñï]"o+Ì@[ôÈȼ-]oK÷ÚØÄ*ù0mÑ##ó¶l@ o ¨@[ôð5oË)üwy[Nˆ¼-mÑÿ¼-÷õÈÛ)Ú¢‡y[îë‘·R´Eÿò¶Ü×'‘·å”(ò¶B´Eÿò¶Ü×»ÍÛJ¾=ò±Ú"´Eÿò¶Ü×»ÍÛò«=ζmÑÿ¼-÷õnó¶™ Ú -Ð=Ò›·%1ÏÛÒ ý0´6 -z¤7o˺·el«_¿ŽÕk -B@[ôHoÞ´Ò´E´çm©´%±n+˜@[„€¶è„¼-ý§ -B -z$o‹aÒ´Ery[2ûL;Ð! -z'oËF[¿'18@[„€¶h ýÅ\±pyŽæ¬Â`AÚ¢vÊÛAÞÖc9Qå·Ï›íP¦Þb¨çtØz¾·EghR -(RâOÙ¼-þw8˘Ȭޫ™« ×C[„€¶hÀOIæm©×žpÞJ{Å -ŽÈ÷¹ÌX¹¨‡¶mÑÀ¬_ÀÃëIwáÍ¥[h%D5¿7¥Op¹¨‡¶mÑÀ‘¶Ë¼¯3—Q[Ü ´l‹2`ÔIJ™ÿ -¸ƒ\ÔC[„€¶h ¯- §»cêðS;}ߨÎsñûTç¿$—Jpƒ¶HmÑ@R[f÷ ùå…b"~„hìmÅ^ëTÈÏÙ3 sQqƒ¶HmÑ@F[’ý ÕDŒ•KJØÛRgô*ò’q'ä,m‘Ú¢­¶,Ö:áûes[º[J½¤¶h9‹A[¤€¶h`­-å]ùtø©+¾Û%ìm1ÃØPÅì@iw‹zh‹Ð ,´e½>ËlWª‰m ÑÍÙK¦!ÁA.êÕ³JêIÊmÑ@r=·­¹øˆŠ‰¬µÅwÁ˜EÞ–¨2§^9«ºï ‚ ´E¡¶„W—…¹t+ãmûh:ÇéöoüHpä¢>ïeEßh‹FmY\Z¶Oó0Y<ýcÛ§ ”ƒ\Õcn‹ Ð tÚRûf˜­‰çwèÝÇÍž”$€õŒA[d€¶h ³nK‡õ³>žÔ›9Ñš`Ö£·Eh‹Úgq<ÈÛò¤žÕA.ê¡-B@[4Ð.ªò oËì(Nëƒé õÐ! -ð‹‰\çm I¾^þ+¹Ú"´E™¹-™¼-!É×Ûüzh‹Ð iË:oˈ'õßY Ú"´Eym)sêL49%4‘‡õ¶-r=´Eh‹’ ¨8"€õÐ! -Èh‹#XmÚ¢­¶h9"€õÐ! -Xk+í×|ÔC[„€¶h`¡­ \óP¼-B@[4ðj=7êÍ+‘·Eh‹BmçšÏ€zämÚ¢Q[ºæ3¢s[d€¶h Ó–mÞ–ÅÇQ/¬gÈÛ¢´EÉ妶ŸE½Y=z[„€¶h ^Hº~üQo]mÚ¢‡K¾·XG°Ú"´E~1‘¤¶‚ìˆÖC[„€¶hàtn+àŽ`=´Eh‹Ž´|G°Ú"´Eym‘pDë¡-B@[4ÔG°Ú"´EmrDë¡-B@[4°Õ-G°Ú"´Ekm¥ýšÏ€zh‹Ð ,´„k>ê‘·Eh‹^­çF½y%ò¶ÈmÑ@¨­à\óP¼-B@[4ˆhþ†ð×å宂¶‚ ´ ´ ´ ´ ´ F™¶ŠŽKwK@Šìœh @ h @ h @ h ¤Œ’âb–•ø1Z\\’•âÛA†3€S"´RDñîìÿlý±¯mY5 -×¾4øŽŸO{IÝìt´¦pÃó#î]ð¿; +ÖoqÁ ûïíÛ,ÿÅûxã‹5ÛŽr×ë³7ª ü\ñîeOx|ηûkœÝsäØë¼Ü«÷Œ­ÇXÅ“®™ùúÝÍrµ¡8ÿÝ×L:õ©)CN­ûñè/3nºiY·ÉÏvoãÁ7tˆð„趴¬ž¥ýÐá5£¯è3s«"êm&,~¡áK=ÜŸi -2Š÷,}¨ß3õÿ1íö&¿¼tÍÐu×Oó‡:i‘cW=1æ?Úÿ¾qÅ óG=ûßJ}çL¿lÞèE¿^¸$÷Sm|û@÷ë–zë=ç~>îùµç¿4kHΦõ+F¨—›«´x×{#Lj:~òͧeo™1ä¦O/Ÿòôåyi–è„Lûóܧµ[^¦û†qm þªçc#ZW‹°ì꧶:­ÒöLâ„XS¡B…c¥¦‚¶@ -)ÞóÑCŸªzmûo'í¸iêØ‹K¥-øá™±oŸ7lX»ZY¶{ðžƒß ë6èë–¯.zúìjìÀW7\zóîëÍ´Uøó˜îý5™°ø¹knýË ]f-~걯®ýÓÍ;®tw•ç¿ÿ€—Ný÷Zã‡}Þ}Ê“Ýê¦õl0Ý 1ÙRF\[7¬¾Á¤Îu¸‘ídNˆ)1g-\¸°K—. Ú)¦xׇw\9ü‡Ö£ç?•F ~|îÉ%çÝ1ôÜ4\¨E¿þ{èÕ®l?~ÁãjfÙi«à›!¾î•jUn0ð‘f³îþ É¤ÿ<ß6šÜUZ¼ûÃûû<°¼¤íðOÿ¥~vZÏ3œá•¸¶úÎÉ/ŽU>¡}ßûGÝÒñ¸l_´¥8+öÚ©§8ÿ½{ûŽZs¤Æ…Ïθ«UÕ4Ï=—ìÿjüà;çf]ýÜÄ[W#~EJhëÆuŒöÖ3J&öí¿¤ñÄäµëí}òª;öŽ÷÷3ª$õu’ÇxBŒ[xŠò?Yüeôøú‘_ÞŸ0vÖŽv^²}͈×ÚÒ9‹A[ •Ä¤5|à¤fÿ|òÌi7Œ¯7fúÐ3Ó(®è¡5Sn»é•}]ÆMÖ±vÙ›Ì qqÓç?Û|õí²®l8øO7oïþ¯÷œêR[ëžé}Çž'æ=|Fe÷_'yŒ'DxŠÄŸÝ³t`—û¯;÷†“*Hö„ðÅ -:Šóß>è•fO½vËiKï*6÷ÚgT‰°£;>ýø§FÏo”›:‰ûuî°¾O|}€‡n=?6°É®ÑüŒº?,]¾õ§‰c§\pçmóê·»¸}ÝÂonë9tÍIÍ|áâºñ®Fé”ü'§ÝŸ’ŸðsÇ—ßxüìj‡WŽì6pIõ ïWû´Ö-j:½Ë ÕV:ΞšK†k·´n^ã0BŠ÷|ùú{»òN¬Y¼ùßš—ßé¥cÏ©Iú„¨èœ…)ybŠóß1`R³§_»ù´øÿï^úPÿçòƽvÛ•÷üwP¯ç¯œ1óŠ©»­È\÷åþÄ5Ι2Èó=´[Þžx‹—­ÿö”Ž5úF£­èî4œ æî„ÿö΃·ŒþhíîŠõšwî;üÁmjÄì Q0: Sò€à"tÔ< ˜X;‹A[€@aë,m‚ƒµ³0%¶Î”< @È8‹aJ9‹A[r@[b”i+ÝÍY¢ÑèÿüYWŒ -endstream -endobj -138 0 obj -<>>> -stream -xœ+T0Ð3T0A(œË¥d®^ÌU¨`l`h¢gf765°Ô35²t ô ÍŒ Ê-\ò¹z -â -endstream -endobj -139 0 obj -<> -stream -xÚ•XKsÛ6¾÷Wp¢4‘f,˜x“G˜‚$Æ ©ˆOÓS;í¥žNzÉßïâE‚3ã‘EËÅ·¯oʾf8Ëág’dR”¨(³?ž³;“ÝîqV"&XfþÊ°D¤Ì¶qœ™?[¿íªËGÝeê®Ýl /×´[m~72*$¢%¨´r[uÞàr]ÝÒíž*iŽ b_HNà“ÃÇ;im²¯âBfßâþ#ZdÏ£•E¼ÿ'ë³O2Ïì#.ÌŒ£R¸]VÊ{fáë/9æ8;jñÞaU§c]©&.R…˜ ÂÈ„™tSŠ¤­Ñ罪tJ¼ ¸ü+¬Ÿ¬ä€`5È‚§! K*¢›n7[×dðå ûs| ,U‰²¾™Ñ’à¿«¥ôÚ,1"=œ7$\é^þp¦Ö½ÿîOMmüåå–ZÓù+ó.ëv×Ùè<ö8óÃÅœ&9E¤Ë¶`ˆÞŒ³‰p—A4SY…Ð1ñ -µ¶F=êóµé”Œ9ïö ¨Í1#¼ïšÆR·VæâROƒq”|Ï8η5âW a’ -¿Q}]ù ›Níà]Ù«‡€ªR'uWC jýCÿF$G˜-Æ0J¿­!ÜêÉÃ|R]ÎÞüÖø•Çî|Ü«ºi¦-%x½ê.ÍÎ/Ü…×õÇ“y -™³áîîëC;͸¶ ùö¤Ã`ªôn‰áT ¼Xlø(ýëg›:ººíM¤Æ“¹ôáAu®Of‘÷9Aùò ¥·º½ׇ²:_Ú3]×?òÜyÆý˜Ôww1ê á!o)F…åä•Ôí÷Î'¶5<é»ApÁNU7z‹>âÛÑù.þûûºÑÂfÔKŒJ>§­*(Î@ï¹ô¾ÅÚY5è·ª¯µBBœL´¦Ñ€^D¡ç|ƒ.‰¶ôM¡´ž3*¡e¼÷½(• ËIi ú9Þ[Yà‹A¸EáÌõWÚ°}IX<Ðo÷Ï$Ûý›*¶»Zª4Ç/UO0[i‰ÐáAÒA¯Ù”³1¶Ná×øtÕµÆePâ§29ö“˜~À ÐR©ªH¥Kh“ h·biÕ$ÒÌ“¾ºû+3å“'5Ÿy@KRBqÁ®Iú -„eÒUBâ^y€ÈdD(C Ž?ÚEk‰ù¦ëî¯Õcû|ê“©†dú®nÌ,HŠX”QínÎÞѸÏuTo«ó}×_+ãá˜FÝ-¡Cœ.Žë üƧž n¯äHÀTð8ÓiÓÔ½™ U½Û~±Ö§®}ú˜UÝ-°Fä¹1š“HÓ£·åEouhÝUzc¯]™H»ÝݸK?¶PÕ>YzO™¹Àò±D½^{xÅB Ù_.¶p”–n¤l ©ÈÁ¤ -hlaæã· -\­zí9ƒ".åëÌ^¨;ûïa‰ðÝóÔâäÐB ªÄܤ¦Â8j·ý ”vs£°]9-mA8”¶% Çcƒ¿w6Ç–jñЦT[ù€N¦É‘4Ãt©ÏƒXèʱÏç“>׶ÍÇåKïªôõteì'¢DÚy„+‹RH¬xÒ¢Ú˜gØ‚=Åô‹}Tj7×JðZUé¾uá™M÷à¤ú°A XNºÀâ"Zà­ªé ÓŸü_h”÷[ܾ¡· ñšøm+s›.x¾¿à´¾ ©K˜Ã9;L6W§ih»åìÙ-IK}Õ ¯€œÖ3Îä¼-1@aÉ;vÒ±OÍ[bK¾ùŒã†yä ;‰Kz¤Œ¿rLÊÔN ƒûÆP Ÿ~ù`UëW -endstream -endobj -145 0 obj -<>/Length 52128>> -stream -xœì \LëÇÏ´ï{Ê-¶ËÅåZBÙ]k i/ZdIZ„$[*”I©l÷ÚK—{u¯P‘´EQÚ¦šåf¦2[u¦šišžïýÜ1s:ç÷œ÷÷>¿ó¾ç÷Å‘Édºþwý{Ô5µtz,/€€ÂÿÍ-®Ùó^ç‚}°C;©~çü¬Ý_E^D©­ªø_惗Ÿê:‘ÎÏãÇ¡¯YÏ_tâX s3ôõô™8¦÷ð`‡€`"®¤c°x¢0¹îÕ‹Üòº&y•ýê^Þ~ù­IµocBÂ8±Í§#]±ÃöS {;“ +ÇÉŠ½I½ð¸¥Eˆ‘Idœ°ÜäÓ†TAšÊ?üõðßïTË¡yÕýç“´‡ˆ“ësß~V\Ûº½zcËxY4E{pmΫϿ¶Ÿ,«â„$FOþUshiq!´åš—õ$»¸Šmʼº` hÌÓŸûìÙóòŠ -ÚGeå Ƨ¦¥·µ?Ø! ˜¬53Ãá’âãëI ¬Q VOS“úœ›Y„ ™¬Ó¯®ôïäÛoª|ûüU•Ü´‰Ãˆ¥ñ‰©è–aÃ4fÍœ‰¾Éxð}-((lݹîSÞ³ür¤þS~i}ûɲÚáðÙ+g‘ùü6·°¢N~€Î¨O.žSK`M™gW x§EmgúñïåX°C@0¡Ùáùøx<£›®“BmH˜›Hø¸ød¤Å«.%ÄW“„ÍÍ֒ɤ3q ´CX;9i[®žM¨ °$Ëj‡F¦ë$…„è3VžùçµÜJÖ”@àÔ¢Xìœ#b9 -ìL&¬\3NV”µ³”SßbýÈvKçìðß{w*ššÝšPSþ¥º †ÛO'Œ­Ó&ŠpÒ¦;º¡49åµ9åþªøœ´—ß4¬žJéÕ|Zˆ ¢Ó¯®ìïä[íõj¢¬3•Æ={ü¨ªá{Qq9ë(œ&«¡»Bw¨l]éÿ²Þ–‘…%TÔÉ—þ}ëÍw°C /À©¥uº‹Z‡@AJí'Ê-”åEQWüþõÍ?/>ÕQƼ̜öÓ@„PþáÝ£™íyAQ?söè!"B|ABÒCÖP8M‡מ4EsèIQR¾òkyþ¿Oò*ð`‡Ð]À³C€‘¥À9`‡v`‡€€B³C™Lhjêéœô0—öïé,ô®~êé,ô0"¢¢`‡Àú2`‡Í€ôeÀ›IMM={vO碸wïÞ¼yóz:=L³>zø°§sÒÃ|ÿþ½ÏÚ¡œœ\Oç¸Î¯¿þÚÓYøšv؃Zùûï¿{V©hú¸òm¤èqmts"Hï<—Þ˜g€Ç€6gì°§3ž×Fw!0'‚ôÎséyx ØasÚ±C‘ˆ ±ý÷ á+>–á¥Ôú+I°~5±îËÇ/u²jêìþÊ`‡¼A`NéçÒó ð˜Ží°óf@¨ø+ãͨYÓTD:ر}¥¢ø±œ9¡ò¿¿Þ >­ŸÐקò(oÄ:‘36hÓërw¯õç !Þ ß„ Rõ¿AN»ï‹ü¤Þô©~²ßÉMÃ%ZþD¬ÎJ8xøÌM†(‘¿•|k²w¹¦®³ßÕ¡R®?î‡Ð觎¿ŽÐR@]+©£±ö˧/õÂrýÔÚ¹3 t!]9–ŽEÞ·\¥{ -¥-ºé‚3vtHGvX—ãi°{`è¹Ã87ƒêL+ƒpÇ”ÈɲìØžRÑ ,³J'ÈK S>ÉèlЪz¼*øÈTá,'£ã† Ѻ’oïÿS‡³Ž4ǤχvH¬«(«h”TUS¤Uw2‘HúáôÑL¨þRV'¦ªª Ö¼º/R_ñ¹JLU]VGnúþ¹¬Š,­¢ª(I9MrÕ_&1Æq'ç( ‘jIbÒ"Í J/8Y' ssÖU§ bõë{©Ä_WŒ–¡%MÂ-ûJ’WS¡].ê·1%ÎLvˆ^ÿßÍSì“ή§H þÕC¯¡ vCÙÅ*|þ²¨yÖ\@â¹;í£~G‹LžÅCé÷oƒö´Aüö8ÄÍëJ¹ÚpäëûRÙÕQ뇲Õikf±Ý6Ðg¬.§ÍüsB"ït-ã ×¼Cº§PèsÂ… ÎAž€J'턯@ª´pÛìâ¸6î9Š$J:B¸–7K(ÓÎø„ùÙSÓäš‘ ß¿”Õ‹ªª*2ÙO9Õ~äDX+gvØPxjëîGBª -¤Ïÿ+×°;¾gY¤$Îfs‘{ü®ÑRh@ø|ÍÞî¾õéÃÓäš>\÷Û‘'5T¾¦ð»–c€û‚~¢5ÿÚ>NñÕ7‰Aú^ ?†n9øT|ø±ê2ü”ƒ!ëÑïÁç®s­s‰uÿMžÁÁ -Â×n|ãzîÈ4ÖHA®ûßÙ=îç?«ýø^r‰Ï!›ñ2䪎±$ÎDÇv¸rc.Q|ÇÙ }eaF;dºÔ䪧?Ê¢þŦj.2ÊMUŸË¾“¥TT•PofØ¿g;ÚhxläXä|îðl%ô*‘ê¿|A”Õ$iw'L`´C…Щ.G³&§ÞOV˜)cäÖü³Q>M]8ts•²š¢X[!›ÈÅاÆxÝš¿T©-/«ï×NÒœž®Í3ê ¾t½Pès‚«ùÏžÍoëÚ’›*?i’QS•ÂÉB´ Â|‰8¹þ@…s;$×½‰ß¹ýìçþ¢%ER¿<¼ágY!¶[íPìÃõCÛψXs›×Ÿ]£‚;lk¢ÔÖaüqùÐMŽä«kkÊËþätÈE=Ã×õÄkéa -Õ華7ó\¨&Šfc…ÏðñJ¹ß$Íßy`í Ö,pf‡db=IH’Iˆ¥Wì7þç·WG¼ü¦ã†»V±¾SåïÏXo.öHØ5Z¬ô²½Ã㵑õ”… ¥::>´=í;÷Ÿí2OÅ]ç|çRFuæFÓÓVñÁ“h÷ dšnã§k6†g~Wù=à8åB’êßg½"iý<”ðÁ1Ýèx“A¢¹ásaqe# '"3xØ@ bI‚…ýS‹Ø# TpU½ÍŽ¨‹ßÔ/›5qf:¶CCŸ!G_‹9|n›Òj‡È‡«‡.õ©œýte±kQŒ ]I%DÏÀýà´ï‰Ÿ(Þ\ÿëáëªüéËnÇ/rl¬¤mÔ¿Ú·jk½WÒþiòôwYÌC5ðÛØüi(¾rÀ54GjÔ@‘Šr%—#koì`s" -õìE¾r¿ÖõÜÏÄú¢B¹5'ƒm†K²Ë-&‘«¼dMM¬ò Ãu ·ÖˆJÚ{ÈØ~Å ²FG­4¥pìN¼ýS;¸Eö]lÎC}éj¡Ð«E¦ß éQ÷Þ2_p‘Ù\[RõóðmÛ¯6þ¤!Ú(1´ìåGŸ‹'~&²\"–Û>°C C8¶Ã¦’¸u6ÿXÇ.TÅU>Ú½Ö¿_pâ–¡ål6Žh¢Ø¡ýiçÜý»ŸŒÝío;AŽÝ]Òa¤X¾á©Ê¨A”NI)M'“’ÝôAVWä™Q¨EbÔoò¡ô¢­í#ÓX?}Ô~®ØmÈX0÷¯Õw…=I¨)µq8³CRÝÛ[1Ñן¨!‘ë‹Š%ÜS¢õ•qßÿÞa3'ayöÔ j ¯éÓ…-6gš&Î5mÚ¬9¿ •&–ýiow×0b·R⯗º~VÃßy›…èFœÐ¥³ÃÆÉøXü¼`èñËGÆÚ­1;9SMµ6k뚣s"c“.3%Îz~ìpŸNØQ%ßõÉó¢O-úºj‡6âWÙ]êeÁ|ã’=ákb­æP~äHóæêÿ~ìßvÑ´™·†¢„킲$´&Œ?qÆ¢z: -Âì5 Ôœ‡é —Xÿ:©6ÙÒâÎʘÕEÑÒm"âDëØœÈoµñìE¾t‡Ú¾¤³IέÛðÂ+ùÐ)O„ÞYR’mÏrÝ2­»JïJZ ‚TÜÙf=åÔicá?8=5¶u™rFêK7 -½Zè•ÐªÔY®Æ¨òH‡ç„}ÓÈåw\ ö5ùóÄÈW,—ˆ£<Ní\™ace‘KívB…kà¯wúÌœ¼ ,ãVJ=³úݬ %gì·z˜DÛ:ˆ«Ý%=ü×Rê³°¤Â·CæÁmØ!¹òÑú^2ú‹†PžªžßÊžyÖ 1«C¬’bf)´™Žìÿ6ÐÔµqÓq§ƒ¤^z¬=2;*j¡Š0RÿÚßüÐN¹n!:aQÆDÈUíŒBfìr'Cûf!quMÍþ„g¶k"ìON’iþbmñóÇÿýàÖ¥‡Îxj½s]0ëTìru¤òqÐÆ}yÓÖÈ>Ê^æ;S±©0ÜÄñÍöÄ#ÓšR„‰žº'µa‡ËÕ„™ÿE–¹»“FÄÔG®ÛZ¶#ÚðOkï¡ñÆ%Ù]êœvìð7|Š“yLã¤yº¿M›=w²†´0ÒE;D(]dåÿûï¿ç/þN»x½p¡sû~~eÇ&cª¹Ô¥Øn¸·òÄÑåÔ'b}%Q\A¬î_z;$ÖWÅe)Sðo¯óV=k&|ÑÊöÎâÐàµÃ%pM%çl×+›u"Ùçô¬ÐÛl'ë³#v„m™Ù½=@šŠã̲v$'V’`éð¯eŒÿ<\Õ_ÞfG)¥dæÄ­‡0w}a´CÓþ5ÜÍB‡oÒ¸9 µÃ"v—:«;DÅA¬)ÎzüøÉý)YÃüÎËꪶ‚lh—å™r¤i›Œž·ZË_5%Ÿn蚶¨«öùV£ •ñQlì`¶C6©±\·ÿ¨v;Íq«69sxjmÛ!†úÒ …B¯–6íéjDþœkgmy>r:jÖ¤òTóuSNü"‹0_"9æÛ>°C C:ÓYjjûÔ&îØ|U\åÃÝkš;KY7Ò:KÏÅ%lñÊÖ 0בf?èºKv(–½ÍÈ_/6f‰ª0áS’¥ÕÝÕ‘A+›íçQ\Q¬¶ã®Øáêõé Ҵሴ–çqË»=ïŠi ÆU BÞžŽ¤Ú!B,ûsƒQ°Š_Šï¯Í­·†’ëG<ÃþŠ6$?—’§ù‡nú‰@o‡¤onÖÇÊÕ5”qï¾j¬ܽX]_tå°Gh&¢1PüûDó÷ù"7Ï~]ìkˆ6±©?´ð‹Ï"ô¤(\[þ™<|éFÏõ3…)Ci¼Ü?« þôQz‰¯íx©*ÖÄE™Ï«m*I°2?÷™ ¾:îœØe6—ºþekY°–Ô Ô›å¨ÞœwÐx·jpüzå¼û·]4måX•óºî'íþ”ntÒ·GžÆû#ö«\c“±ºæÌLÇ'³þU¨,ÉÒ"uyT¨á`±æE|6ë‰üVߦȹi‡l®›â Jgéž” }e¤âÞv³ˆ_N^#t‰ÓSc[—Έ«…B¯–ZvÊac‡QÓ.X[¦¯Œ \9ôi¸dðµ?‹|g¾D,·}`‡@‡`°ÃeVi2R43ÒÞwxàõ]. ŸÕ‡(‘ùý Ÿ]óPOæ­Ci¤k^F¹¸?™x(pýx–Î:¤‹v(_ó,h«gj…¸¢¶GØžAüÝ‚ÿ6X_ö‰<ýèI¬Õ›³YiHøŠÒr’|†‘µhó0ÆjkéÎø: ˆµ_J¿5I(©)³{v‡&ÖPõùs5Y®Ÿºüq‰dBõç²jaEúßLÐ%IùG½¬J?†ßuë)£åÕä‹mâô`·C„\“µßÐê û”óvCÉ%Wý˜/µXõ²ð7Š·¥/©È±/\,ÊûS¼ùmÅ0ûï¥êÂtû‡d;°¾½AŒÅ±ÎŽño% –'y÷QFÏí˜Û¼~¢ l2FhJÓÈæ¯øâKû·…fK$ZùMe{øá ›¡ ¥i[äܲÃSl®ž:”f´j1A²© @zÕÑ£¶ÚÒ8v'Þþ©…îRúsg{gÔÝS(ôj Ù!ëÌ|ÁÙÙ!Z‚ïÿðuý»ZNeØ”iîäîJ úï6æKÄrÛvtH'g¥!Ö——}%Ë©«Êw° ݬTbÍ—ÒÊ&qÔIØ=Ch#]œ¤ø=+1:åzÚקŽöïhÞ~¢K³Òpx©I •Ÿ?×eû©+´ùƒ&:Òzc𹼎,¥¢¦B?¾¾ýŒ±û+¹©ª¬´ZX¡¿ªl{§Ò#"g¾n4ÇJ>©…/­WS“§û-ç§Ö‰3âJ¡pN]Ž¿‰·|P†¡bK ì蘤­9]´C2þÓ‹Å4ÆhõïÎs˜¤7tç‰`žà‚Kôh¡Ô<÷ÜqZrh¡²g÷ÞþäqÊ»í°ôŒîvØœ˜Â»§3ž×FwÑ'B¬zùìý c以‘Å9=[(Äú²wyE_ÄÕGê Sí¦n;lÉØaOg„==®îB`NéçÒó ð°Ãæ €ötFØÓãÚè.æDÞy.½1Ï;lÎ@_¶CYYÙ©S§ötFØÓãÚè.æDÞy.½1Ï;lÎØaOg„==®îB`NéçÒó ð°Ãæ €ötFØÓãÚè.æDÞy.½1Ïi¶Ãׯ÷tNzž>k‡=€žgÑâÅÍvØ7ÍІÁÂE‹À€> Ø!€Ø! Ü½{†Ò}Ô¡uôuÀìÀ¡Úá‚… 1Ù¡¨¨(¯rÝLSSS;;ú`‡v`‡€`°Ãù €Ø!€@»vH&“ïÝ»v>`‡vÙ!<;ú`‡v`‡Ï4hPII ï鼂è -è.À^€Æ¬šÊr<¾ALM-/_¾ÙÖn´7Ú,€®€nìà:´˜E 4G"BPQÑ` Lèn¯³®¢oJJ -õ—:AäÚtt/`‡w3fLVæ“1‹@@_UԙóJò3kjJ Ôí¥å¥¹€vàHW„–ù¯Ÿ€®€¶;¸ *ËKò_§Mša‰~Ì|;Hcªˆ„Ó<º[~vÝ(qÚÆL5€°´v]æg¶~¬)/]mvpZwVMM¹ú -Z B· ‘KCk6}Ø¢ÝÂã 5‰ÙøÀ×HâÔru‰¬ìצ¶» r¬p¤+ݨ‚®€¶;¸JK^£oZÃÒ|Ãþ}£1bFk,Ë}/>»FcÌÔR<p5s©J¥é rè×Ø‘®DDdè…þR -À.B […Yˆˆˆú 1¬a ¡F.ôýH ¦¦àw­˜ZRƒ¿™UXòúušâ´5àÞÃÌ6Sú*éŠÉËK³AW[À.Bé­*ÌADJJ²&Í°l½go [Í(ÿm½\øZbú©¼0¿2ûI¦÷ÔÖC€ŽtÅj‡ +€-`‡¡F¨'hØB£Re%~ÒTý3fÄFHˆˆà 5Ô]DZ–æïJ+R‚Ê ½§"K‚ìáHW`‡FÀ.ÒòðF\”Ï"""”[v¤ù¾Áÿx‹þ)-ͯAïæ 52”#D lláTWˆˆDë±`‡@[€\„rÿšÚ%B [Y¯ ™ÙˆåÒæ(Æz_PXù³aªÝ¿²²Æi«oVv>o³ ô˜uE•PÃFWtFH#ÿõÐÀ°C€‹ aëÞ½X õè}ºD~ >013;Ò˜HÈv¦È…z¡ivåìY¥¥úø’Ù*å%•KM·Ã]<À -½®èûB™‘Å Q²ŸÜ]l;¸Këü“Ù¶+½Ñ7Ù‘¥³%ôµR^ß+%TΖÑ#£¡® X£°fĈ›¥%7ÑP7U}»GàÍ´'=œ{€_¡k ²ñ¼¶(/Í]mvp—ÖyÔ®Ð'””¦ef‹l5HÓ¨´œjZB(Lɺ9 Ñ!(xg•®X¨Ÿ]RRyï¡Ó™­p ´E«®8²ÃË)ñ + -À®£?{jHàöÒØ{„›™5x|¡ºŒ–“Áþ’›¶k$dâ^þ¹R}éÏ?Ûf–—”W"¥¥ÞZ -±‰WŸ<ÉîéŒ| MW -*Z÷G½t´Ø!À Ð{ù¬'ñ•¯KŸ&ŽÙ¾FE]Åéa옩”_f?ÉŸhÌžQYYSRRŽnQWP€§;hºÂâˆi7/ƒ®€ö;x-rÑÞÓÖ° §}41IêÏ´÷0‚àˆV]µcŠ¥%Y + CÀÞ1{Ƥð¤Å+kjòKK<ág-êd4%•»³²ò!fA¯+õ1­ÛQD@WfÀž‚ÞËϘú³‡“©º†JëÆÒÂrß؇O²!`tt°C @ƒÓX@×]]ìÀì°C@xc‡¯^½êJ [ÐÖÖnëO¼°Ch8ü@;ž¥v`‡€€vØ! `‡€ô1;$55aQQa\Oçà(8n‡´ÃìóÌÿó§ÿxi|þ1Cã ¯†ÏTÀ!Õ™V ÊV»è2‚y€àó¬ZóQn~ô•£eÚ؉Xñ×ùä\éefˈ·lëzÁAÑR—ëõ»ÉŸÓO\;¢µzMT…f@âæóëÖ?ýÞ²‡ÜäУ|ì÷¹zzÌû+þ>á7_–6Êj­<ã©)Ù“çÁ7Pª•MëÕ×Øœ²q¸8ë~ì*uç¿‘‹YíðëýõK·WX_H´XuÃ|…Wãæ+猈 …Róöua“òˆQêB=É>HSI¼±ÁñÏœ´AÜeQmÔ3 Œ.ªŸ¼9Y¶e[× ì ÙẫÕj+"Cuö›ÎC4_Ñø“{fÏc¥í~®š²rCDL,÷ù3bÄY“51U“7¸­ÕÂçOXk¡vHR­ìŠ~óÚg4@ ApF(ɦŠ²«ÔƒË1\ívWT ø#ò—÷ßmŸÏ‹»¼cp×r“KeDlˆesL$V<:±'àüßïñ2æ¯XJü#¶nßåÈßä)ðºÏåNå>—ÃFe‡·î³ÖÕÛfŠBªû +G¸õWNÇ9!Æl¿œ9_C,¿i³ì b5îCä“ä$«!¢¡üA˜÷‘dÊåµÐó¸÷Ô"[º›MôV=æf°´?}Á «¼`¶Ü´ýJ‚¡Ú÷ûvË·•¬:që°Zº¢¤“0ã—³±CÒ÷]}®=+þÖ(®]Y¤§Ï¸@þþdÓò-¥6¶i{ žœ^ªôí–ãj÷—ƒÖ¹ÙM•ø'¬g1Wòíó¯ÎyïÍP¤ÝªkŽ)òž¡àD>ž[³2LÎ÷Jää"·eö/Ñ{7å‡ôEI+¦I² ÏØÚáó³)¯”† %•Þ÷÷¿©¶÷ä’„ Ž—–»®pz¥wæ‚ÃGw–”™Ð qç gÑÒÝžÓeÊó û-1¦vȧP¬ný«Uúg3êFšhÇ~uck‡Lû$l½l¶þ©Ø$ â³ü:µ™ƒüÍGHÂSl„©³”êRÛ„ZX&Š.Ò*½V<+0Ékºlík¦J=Fåï­ŒÕ*`÷gÏ-/×xXÔô½-¿ýbâڿc¨V¸:æ^žêdàž«mç¹F53ðÐ¥ÆÕ'<ò¶nê(¾f‡äªG˶}ÛzÚñ†{Íö+q+Õ¨—€>&ÖdmZju·‚Dœü¬ã~2ûjø 9º³tßÙõqkè÷‘øisròšÏv 7ÏŽûóÀh)^ŸXo¦>×k™ÕÃ_N$XüµÞ˜ïû)aÏ{WövȸO–KfëÿÕw÷^F¸°÷ÈšÁ†ÎP€b¦U+ûâ™>¾&ƒÄ!ñ~Ô>Lü›ëÌà -VŸHòúUŽÚ˜f¬Ô̱Wâ'kwÙ”C_Ñê¹þ«Ã"§ÏƉ$/³­VŒ1Üiéú¼9qìѯH3[º³ÆÀMö¢/¦tÚ@í!~JY·2DiË´‚À .liL—r‰Í ÝÍ~k^ÜynÌ\©rõtäYÚ¢3ÑýVÐï#$¡6r”ÔKkx -Å9 a« O6Ð> ÷ûýôŸžDwŠÆ\õÇ¢)0^{y¾eÏw]Ô‰øcÿx2SQR‹‰Iö¬vX—í¶Ô<]b¥›û¢‘B9û¶‡àÎ]X_±sù–ÿ†©ãs„l’×+å²I™U„¯y>zr'åb®Î‘¿ßä¡??¡YÝöKÓ%HH±ßJ»wmÙ!Ã>çwþgkvmHøˆIÈ?ënú¾år‚qèbÿHžX‘æfè~ë«Ô$÷skQïJ™í¹ZIWùš;SÜËê«ýBGÊ›ÍÃÅÙV«ví°ÚÀMîâáoXÒi´Cÿ¿€•ë.á„›ê~=ùgàYbõë篫«ßv;úu–×¾µZcÇ(?ÙbàþRÃÔÅê75rYΓǟKÿ»šÕØßàш|áÑayìÄ°Ï3yÓ‹JíÀ9çSòšå~ ‡wMS¨Ï9âXix>yÝÛ­«Ýs†˜»o˜"ùé n¶™~?Q¤±ø”ñª²õ1ßùd–+zÉXpã5Å -Ž­2½$)Úðõ×L”%–ßf-&£A,­C»‚Ÿ·,RGe*$;jÖ/—›Ý–4Þí>•ð0Ô/±@Ù-Óù>«Ì’KEu<¯$õDZK™I %ÉQ·D4µÕ… “|Š,ϛód>…fuT n~‘ÝPÆ}.‡(û8<³y×ï„KB_ý}åÐø¶FF÷)X‡Òh‰ÝÛnìõj†«þË€+òNgOšE-±R°‰±Z i¿>À`cvb0U«uòoYcøæÕ¯Ç8x©d?t¿2Ìã³ËçöÓi·z -¦"ߟ:-Ûpï«Ôø×Ï,RfÜü8·éÉ©AIÞT4ˆ)£g±èͱý%¿Å$ÛÝ57>'±åzᄾ2죿õÐŽ)…¶`‡œ“n=Ó­|]r²ý0qbÙe³e›6_:g,þW¨×ѤÞ7ÈŒXàâ3_U­:%INa÷ *d&Å\°[Í\p“Eó®Xw¶TvNø•ãSåÐV ‘µ˜ôT0 -@b¸cJ²•øm_—£×_ÕÈ›§÷55…hL)Sò«ýËÖÝìïs)f)%3lRf@ã‡ó;]"å—׋õû»Û×yªÐnàSØØa»ZlcÜçÊi}äa Çá”?#j vø:ëÂp)*Ì?´°¶øŸÇ¡œq¾)¿î_m³ßÆsQ–Ã$+5KìÕ·5xã·»‚ÞÆìÅ/3U+‰,Ö>¡!ƒ@å5õm½v-©qZäø¹ýtÚ­žj‡À)¤úù/^Nz:Ũ˫ѢÔæx¹&û{–fÿw2¾èŠÿÞè§U"ÂböÇý¨ÂŒ6| Oípšå-E³dªŠ)•Šú/BýÿÖ­[¾êÿ쌂MÎFë*¶139«o1m;ì>;l'amÝ ŠVÏšoù°7Îu$u=bi²ù¦ï8·‘,êu¨“>·[‡ü¥Þ•5>?ÄlSñ†ÓçõjøV-¤ / -kað-¼µÃù (éRÄ4‹A455óòò¨_‡KM½Ý¶ˆ -#¶¹ß,*(¬PÑ$)«ãº«_ª·û¹7µ$2Qh€ÞfoÇJÂXìpÅÞῨç¼ûR->ÞÖ×så`¡O—˜ÓA¾>‰ð ºQD‘³ÁÏkj‘-5‘ñ57öm¹ ævÔa’ßÞåq»³K0â ´uEhi®<0væþz-¹"8̾î&³(Ëè]ùö†ñ3ÏÄ/8oshâÉ(}äa¨÷‰ŒRQhðÒ]{­ÇÉ -2ÂíÖ!ßh¦¥'€F$ùÁ^Ú¿óLvIfœÕŠÙÖ+ö˜¬öòí—j±q”(¡ðÒjÙq ±"‘éZøŒ7ýwœ9ô[ÃW—Äü·­ -¨„˜öÙ;8~+É?Áù'˜á¸ÀS;œOhË=%*fDK[;88xž¾>MÑ©iiµéc ÿ¹‚¤¬*%Œ4'˜n.òIôÔjÂ`‡K\¥w%ÍWúšêbqN/öÔ¹ -ÆtìÞ»›ÇO 7)Iª.þ$

    µCÛ •×v_äyÔ~‚,?ÏhÉu;ÄŒ°‡¶.©-Íß÷h…$;+^2µËóNÚ%uÆr·Š·Ã_;cß)µ¼àzsËéÍ<2 Ozë*5½4ßAð‹·×h;d€Û­C>Ò ÂRÖIJK66é&1hL¸åŒÆ„˜ÀË~D Ësú1GÕÝ ƒŒ‚M6Æ™„š'nOÝ~ÞŸ²2}RèûUŒûD™„™·dDæ“ÿ}“Ð1ts_£-ÍÏ¡£ÃS;ÔGÅJMY[[çUn®¶Žª`=}=š®qd$-ý'vH¬ÊŒ÷¿‘[IÄ‘êß—÷½vj2‚ÁW‡X$ÆÌV‘¿Þ·4½àœtlØkÆt’6ž±\­¯,ô#‘¥[¿áÈ5Ó]Ü7EŽ¿Íd‡v¶~Äh‡X‚öÐÖ%UP -÷Ćä¨iÈS+£Ç䈑Ï7¤/ŸZòT{\É£‘“ Ï*ø8°Ò1_a 4Úœ'7}'ŒHO;d€Û­C>Ò ÂRÖ5YNFAñÑ?bB´y9}”¸èmdîcfu’òjŠíT³ÒÛ¡ã>±ŽQk]¥=â}ç«Vex™‡ O°óáò+<µC½¹zÔÈôôM›6¡ -ž;wnËÍ"…ôôtì°þµ¡‡ôž˜­“…¾Þ7_·ùB$çvxÑù´ÃVŒéœqBípY\ôÒ ÂÖ â›c‚…é…mÌvH5HÔcíÃ,[^é-þ=ý>ñniŽ³"ON—Ç!UY­‰wJ -û¥O -¬WÀS;œ3gNëcäô»wçÌžC÷ì€ÂÝ{÷8°ÃÚ—.†'EœY;T”âdrœx=r²p¶›áÁÉQq†ê-öê·Ðu–~»ãjqvṉ¡‡×0¦sõp¥§yüÔ pÓ’¤ÚOŸ…Ôdrl(ß{j̇pËíïíOï›ÃÇKžq»³K0ÂÚº¤ -;ü¥á–ù -_¼í™ø¥¯ìŒ|¾›œ=o%uw£ÅÙ™Áá&Ã%I5Å9ßTÆ –Âw¤“>·[‡|¤”šç›žŽ]LæI,»dm“¾Ž}g)%JÄëFèa̹&Ãù9ÞX²sš\]–Ÿ‰là9Çá]Î -pÞÚ¡®.E­ÍBÆÑúL–×(÷2îsÒYŠ/NÞëK”“0qÚÇ´w\Œœ,ƒçæœø^DYÛåøþéŠB™q‹ÈV+|†ÿÒ/û]yø8[ß+“YÓ™ØôøäÞ ›ÅDQi þÞ-Ci&ËâóO­ßœ³6öÈâ~ü6¹m‡X‚¡­+ª`±ÃÉ"¹»Vl#\ôUb¸>kÇ…Èiò„òaÞÇo— èuQîâ·mª‚PG:Qäçö÷ÃíÖ!i…T²mWz­‚òÐUû}Võ©/¼Ø<”Fz¬ÕÏ•JÙÖ-Q¢Zl¬Í¡«Ð-LV—°3s·gZYõ{ê¨5½Ãû&ù¬c¶Ì ÷Žî}\Al¼Ôsßú‰ü;à©êÎÒmUÝúöMÍÂ&ßÏx?ží:Üþ¡–`„=´*øn·{™fúvÏyŸ…§v8kæÌÖÄ)R¦Ž¶¦·&SûQBàë:ܶC,Á{hUðÜnö2Í€öI`ÎR„Û¥X‚öІ%o  -nÃíÖ!hà`E ¤ÍY -ð ½hÎRà`‡WhÑ9 ´ñ9½hE à`‡¬wp -,ÿ `‡„6€S@3vt„6€S@3@oìèm§€f€ÞØ¡_§€fìPÐp -hÀ–²(âüСÚú&ôõ—~æ,ïA3€`³Ò tv8”“ãŠxo‡  ->¡ùgø! Ð ðÔ/^Ìú-m*CÊd†Èõ×AÄ]‡«vؽ3Œ€*ø®¶A3@¯ gìL&Ñfî¥J˜L™Â:‘áÍ7»yâÝ>9o»vHëAms;–І%u"´uƒ*êr<Œýuz¥mê§kÂ×%DÎPÀýØ©¡8z»ëÕ‚‚/ê¡×iÂ`ÝÒçàjë¿4ƒ1&4|¼œôtŠÑòí/OX›ãåšlìï=ZšýßÉø¢+þ{£ŸV‰‹iØ÷_  - <ñ-<µÃhZ”·ÍÒf²§MâÛºîÙ­[·À»Ïì°`„=´u§*Ïšoù°7Îu¤å#±4Ù|Swœí#= F¸Ý:ä#Í`,èîÑ>?ÄlSñ†ÓçõjøV-¤ /Šëø( gà­Î_€4Ohß¼° úª©©™——Gý:\jêíö*ÐUGæ,xûAQ5AuíA³[[¢–~E߬Ø;üõœw_ªÅÇÛúz®Txɼe°8¡<#ÔûDF)(4x鮽Öãd…˜RZ3° âvg)–`ÄAhëŠ*Ђ[±oÄdµ—o¿T‹³õÝ<ä°M”eô®|{Ãø™g✷94ñd”>òM‰ƒÒÁíÖ!Ÿi†)&ˆá /5/ÿ+3ÎêÀ¶‰i;Ý®P×õ•”`ä`,÷ÜjÙq ±"‘éZøŒ7ýwœ9ô[ÃW—Äü·­ -hÊLûì¿Î•äŸàüË ÀðÔçSÚR—(˺hikÏÓק):5-­;\¼ qˆ [;\’T÷½*gËÚ“Ìv¸ÄUzWRÐ|¥¯©.çôböw_Ƹ%|Úóm†'½u•šÞFšï øÅÛk40¦L’”ëÍ÷p\·C Á{hë’*ªJÜòÜ,¯I)!ý¼þÚûNÑà¨å×›[NoþàÁ®ÄÁéàvëo5C‰ '¦<²³I7‰ D·ÜrF·ÄD-W«cÔåŽ9È(Ø4acœI¨yâöÔíçýÇI3ʆuŸ(“0³ƒã–ŒÈ|ò¿o:†nîk´¥…Øg èyxj‡ú¨X©)kkë¼ÊÍÕÖÑA¬§¯GÓ5ŽŒ¤¥ßé¨uxÜ$1vž²PóÇVl}³:Ä"1f¶Žüõ¾¥éçhó sÆ-1Ö‘kóJ £iúN0žÌ˜r/‡Å;è ¥ûˆÉ±#ì¡­Kª¨f.q«-Ma/ŸZòT{\É£‘“ Ï*ø8°’]‰ƒÒÁíÖ!?k†¬‚ â£lI:þ3™ÅÑ1vaV')¯ÖŽÉ§š-Þ™ö‰uŒZë*íï;_µ*ÃËßMΞ·’º»‘¥ÄñÙn†'GŪ· ô«cÙÒ—àvë5ƒÆ„°É6ؤ¯cì,­¾Ù(`áéØÅ´¡ ³Ãäc8?ÇKBvN“«Ëò3ñ‘ <ç8¼ý¡ª@ÏÁ[;ÔÕ¥¨µYÈ8ZŸ Ò2àå^Æ}ì\÷*|óö‡2“F÷ϼó?ïË´¡4>Ãé—ý®¼F|œ­ïNêPÆ-”¡4¼ß.AЫNwñÛ6U¡ìÁn‡X‚¡­+ª¨þQâÕbcmí\ÕïÝîÛ}G•…®ÏÚq!rš<›¿ssN|/¢¬ír|ÿtE!„̲¥/ÁíÖ!j¦%&ˆÕ^lJ#=Öê€çÊ¡8RuVȶ]éµ -ÊCWí÷Y%óœÙêvfîöL+«~Oq#£¦wxß$ŸuÌ–9¡áÞÑ¡+ˆMBƒ—zî[?Q®/Þmõxj‡º³t›GU3Þ_¶Ü"’ïg<€ÏvnÿÐK0ÂÚº¤Š¾ÝÃÙp»uÈGš€6à©Κ9³5qŠ”©£­©Ã­ÉÔ~äÁÇ â®Ãm;ÄŒ°‡¶.©ì°›àvë4ms– - Üî,ÅŒ°‡6,9Upn·A3ÿ+Z ½hÎR€OèEs–—;@¸úC‹Î¡ÏéE+Z—;@`½C€S`ù_;@ ´œš°C  ´œšz#`‡@@h84ôFÀèø84`‡„6€S@3v(€ÐÊb7±½%÷ “Ùn‡ÐÖ7a®¿72E³0¾Í‚ÌJ#€´–E'‘Ç¡ TÁ'ü¨¿œ! Ð ðÔ/^Ìú-m*CÊd†Èõ×AÄ]‡¾,8uDÏ0ªà¸Ú:ͽ‚ž±C2™D›¹—*a2e -CêD†7oÜä@Äž¾¹áã大SŒ–Ѕǘʂ#GÄÚ°£N„¶îQRŸç·yדOE”ew†¨Mò óÔ”ìà†âèí®W -¾¨‡^çPN‚¢%®¶ù^3íÓÄ÷xj‡ д(o)š¥ÍdO›Ä·uݳ[·nñÂ]߬eÝ9 -mí#ì¡­›UA£EÜ9UŠ–¸Ý:ìši A)b Cxk‡ó ÍÚ7/삾jjjæååQ¿—šz»ÝE;÷˜¬öòí—j±q¶¾ž”¥}W;sÈ?½–\f?J×ôé’·û¹7µ$2Qh€ÞfoÇñïlöú%†Ú ®Ø))1ÀÈ?Àx ¾ðRóâŸ2ã¬x¬P̶^¶C\C¬Hdº>ãMÿgé*÷žU;Ù–FGÄÚ°#B[UÁ¬–íôk”3•æNéí«µ4Xœ%êuNK½u@·[‡ü¥¦H2Xˆ¹¬g(Þ_Ùïõ¢QFeøèÒÌï˧ÆV°D ætÄ å¡Þ'2J D¡ÁKwíµ–gÃVŸ_ÂS;œOhKK„²¬‹–¶vppð<}}š¢SÓÒÚñWé]IA󕾦ºXžÓ9ªî¾bVH²³â%S»<ï$)þsIYUJi,N0Ý\äsjþaC¦}Xn÷ˆe—llÒMbÑ”o9[œÓ‹ èadlš°1Î$Ô¢­²À∘B†`„=´uU¿³”/Âb‡«K3Êø˜!£–N-íWÇd‡ÒR¯…Û­CþÒ S$9µX®‚±¬ãmò6ÙÞ1‰96O êþ8P²•%J,cL'|êóm†'½u•šÞFšï ø˜´w5;}| OíP+5emmW¹¹Ú::¨‚õôõhºÆ‘‘´ô;í‰xuˆEbÌl%ùë}KÓ‹ÎÑfA'6$GMCžZE8&Ÿš,K¬ÊŒ÷¿‘[IÄ‘êß—÷M² cÞ‡%„Õd9ÄG·¤|Á9Ú<È"Ü1Æ.Ìê$åÕºåÀ^Bë-XGÊ´ãˆØíK0ÂÚºª -–òEXìЀ±4cíÂ̵”ô3™ÉØ:¥¥^ ·[‡ü¥¦H’ttØk¦²ÞxÚúGL0_·ùŒý–æ(Á¤¢«È5Žù -¥…Ѭ5}'Œ8¹&U3¿ÂS;Ô›«G}P€ÜIOß´iªà¹sçþXAÒÓÓ1‹¸Å´ÐH„´„$‘×>†Ò{b¶NVj±}Ó>ìí0Ð ¾9e Ó Ûh)ÇÚ‡Y¶¼öªxGÿ»C쎈ݱ#ì¡­«ª0`)_„Ò—æi{F;¼àœtœÙë;¥¥^ ·[‡ü¥¦HrÚñ+¦²v:c´ºÕã6Ç¡vÈ%˜Tciuly\Ì~»A¯¦êt¿ "ÎF`‡½žÚ¡î,ÝæQÕŒëi·Ü"’ïg<è8ðž:‚í$m:"vˆ!am]REç-±ÀíÖ!i¦»JT$pðÔgٚ͜8EÊÔÑÖÔáÖdj? -òàáC°Ã®ÓÖœ¥í;"v;ÄŒ°‡¶.©¢s€–Xàvë4v´ÌY*€´3…w;ŽˆÝ±#ì¡ Ë*¸ ·[‡ €ÿ-öW´h˱Û!–<` mŸÐ‹æ,.v(€t¸À[GÄh‡BŸÓ‹V´.v(€ÀR®§€fìPÐp -hÀ€Ðp -h耡 àÐ Ð;@ ã àÐ € - ÚNÍØ¡ÒRí¯4Êü[ Úú&4ÍЖ¦§mÁòžh `V„®,8vD‡6PŸ@_95EÐ ðÔ/^Ìú-m*CÊd†Èõ×AÄ]‡±,8sDÏ0ªà¸Ú:ͽ‚ž±C2™D ÓT “ɸæÙ}oÞ¸ÉÓ)¼9M³6ÇË5ÙØß{´t÷å °”Žˆ%´a FmQXxòÔ”ìà†âèí®W -¾¨‡^çP` /'=b´|€8'Gñ\mò·fºPú€`ÁS;\€¦EyKÑ,m&{Ú$¾­ëžÝºu‹¯í°—À®,°:"G¡­`„=´uImщ’íœEBÜnò»f¥®À[;œ¿ižÐ¾yaôUSS3//úu¸ÔÔÛí.Ú¹wø/ê9ï¾T‹·õõ\9X _x©yAN™qV1(ÍÛýÜ›Z™(4@o³·ã %aôëV™³làíEÕÕµÁ³yº$æ¿¥»…$”g„zŸÈ(%…/ݵ×z¬P^ÌΗŠqâÂ2½Ã<{¬ ÙFY`rD,¡ K0â ´uUûFLV{ùöKµØ8ª*Ä›··F7ôý²âbE"Óµðoúï8³Szû*–£˜bÓ§KŒªÿΖAKC¿ÄP[”fè I‰FþÆ{ë€2n·ùH3¬%K«ïô¥ÏfYi„øõI„OÐ"‚¨ˆÌ˜ ~^ó>³*„­^Oíp>U -7–”Ú¤¥­*VjÊÚÚ:¯rsµutPëéëÑtV²´ô;í¾Õ!‰1³•pä¯÷-M/8ÇXGZÄGÿØmdÁb‡'6$GMCžZE8&ŸšŒËr2úq”ùš¸ÍNŽÊ‹÷¿‘[IÄ‘êß—÷½vŠràªã&‰±ó”…òÐZgj²œ~wÌW(ÊÜô0" Ö9ÇÕ:EnÁﳦÌÔ›6B¶ÇêÝ-XÇŽ¶ãˆXíK0ÂÚºU“‚~–a±Cô}Œ]˜ÕIÊ«u„c¬]˜9ËQd&c#Ve2ª"É.Ì‚QK²‚f‡4¸Ñ:ä#Í°–,­¾·o‡¸¬MFËã¢õv -aÕ•L¹øžÚ¡Þ\=Z%º“ž¾iÓ&TÁsçÎý± 6‚¤§§søb¬"­ â›·X˜^Øm~Ü2Ü!9r2ù+Ã_l•uÐêV;4ŽÛ|vû +é=1['+ -5d$sõhͽ[Ãà—„ÊüÌÇnÅÉ·~h7Œ6ï Œ¿;ÄîˆXíK0ÂÚºUœ“Ž³·ÃXû0Ë–×ÓöŒa‹z“Ö¿ö1dTÅû0 æ4³CîµùH3¬%ËZß«3­ # Õ—ÅEÿ¨ïlª+°ÃÞOípÎœ9­‘8ýîÝ9³çÐ=; p÷Þ=,Ýbßî¸Zœ6ùÑ›ôut¥ÇG­;49òôâºë½þ`g‡RŸÿÜ`{Ç$úˆµ³t]@Ê–D«ƒ“"άH*Jq29N¼ŽÁ‰å·6Zœn2\’TSœóME[¡¼Jt°Š©ôò:ëŒÉGÇ÷ÐÃC–ŸáctD¬vˆ%amÝ©ŠxÝèÈåj¬¥¬vhÄrTC¶›áÁÉQq†êÔf}íKCFU$³³Ãšç›žŽ]¬Ú»;ŸÝ:ä#Í°–,Zß…K¿.ÇÓ˜1’HU¤n6Ÿn:B’Tû鳚\¾+«BXuÕ»uÑ·à­êêRÔÚ,d­Ïipr/ã~»ƒ&|†ÿÒ/û]yø8[ß+‹Õ^lJ#=Öê€çÊ!¤×á›·?”™4ºæÿy_fg‡²HÃûËû<¢_4È(Ó.û¯hïåµ›{]¢s‰rò&Nû˜ö,vˆ/8áì™VVýž:nBFMïð1ûÁ5¼ß.AÐ3Wîâg¯¹m÷£¯dRƒ˜–éoãa’í?ªãìf¥ÁâˆXíK0â ´u“*ªÅÆÚÚ¹j(ù Ó-6U;²Úá:¦£$pdüÛ87çÄ÷"ÊÚ.Ç÷OWl,NfTE;;$Ug…lÛ•^« ¡ÍY -\ìPÁ°À[GÄd‡BŸÓ‹V´.v(€ÀR®§€fìPÐp -hÀ€Ðp -h耡 €¾Ø¡_œv(€€p -Ø¡vÀ)0+Ò‹ìTŸÀS;\¼x1ë· ´© )“"×o\‡À×u¸j‡Ý;è>¡gìL&ÑæL¡†=2×<»ïÍ7»9ðõÉIu¹m‡X ¬vÈEU4|¼œôtŠÑòâtks¼\“ý½G÷в”@שÎ\¿ÀúŸïdNX\~À˜ö+r·˜'|hBĆXž»è2BsBV ÊVqr pðÔ iQÞRâm&{Ú$¾­ëžÝºu ì°ëðÌÛ10ìvÈ UôIô(vh÷^ïžßUšÞß=ê{k ¨½tù _·À:#°C€3xk‡ó ÍÚ7/삾jjjæååQ¿—šz»½¥|–í×+™®…ÏxÓÇ™C¿5þáí~îM-‰L ·ÙÛq†’0ºÛª#s– ¼ý ¨š ºö Ù­-Qh_scß– jnG&É‘Ë3B½Od”ˆBƒ—îÚk=NVˆé¨à 5{ñÈ nÛ!ãÀ»¢ -¤éÓ%f _ŸDøÝ("ˆŠÈŒÙ°ßâ½ïŽ«Ôu›%%ùD>&¹º$æ¿ý¢zõHrÕc³¸å±!ºJBHí /“cSNE.UúÆ¢“N]R€{PìÐá‹éÙ8›Á¤â«ÛlÂUƒ/ûŽ'3{±âщ=þçÿ.i”ך·ÞËÓp”Ø×aÞG’ÿ~—µÐó¸÷Ô"[Ê!gÏ®Êt·|3Á5æðJ¥œ WŸkÏŠ¿5Š+še¹ß{í ¢Ó®Î‘O‰£æ +¾3,âfäÄF4å€ó”t†M_ëêm3¶üü^SwÿW%¬4Row˜÷\eá¾Ffxj‡ó©A­eöhÊ ÀZÚÚÁÁÁóôõiQ05-­=;\dlš°1Î$Ô‰žZM™V‹·!±ak‡K’ê¾WålY{Ò6håµÝ—yµŸ +D,OÝâaxÒ[W©ém¤ù‚_¼½FãQ$I9Ñ^¼Š5×íƒa·Ã.©!á?3j Áî½»yü”Àp³‘’¤êâOÂI ³mÒm$ÿÇÅä ëYL-ްСd†õج3Ï4·Eû “ ~6å•Ò°²¤Òûþþ7Õöž\’°áЧi.®??õ?v§aBÌõÕ; vÏÞºu¶Rñ•Ã'^L ð®Ý³½`énÏé2åù…ý–˜NS;ì5ðÔõÑGMY[[çUn®¶Žõôôõh±GFÒÒït°ÐkŒ]˜ÕIÊ«u„crø¨¼xÿð¹•D©þ}yÿÐk§&#¨k7IŒ§,Ô|ÔÒ­ßpäšéÇ.î›"‡n«ÉrúÝ1_a 4ªRrÓwˆ€„Êí$ýQ½nÛ!Ãn‡]RB¬ÊdÔ@ÒÆ3ÖËã¢õ鋲#;DÈÕ™‘ #C'í4 Ÿ6_â%È´{ížCí,ý°ðоåJ5/÷ejL96_üƒ¢U~éú¼9qìѯH3[º³ÆÐSýŠÏ›_£¯ú—nIÈj¡ÍÓï"6Ø*>ÙE[A?]?âr=ëCu Õ¢øеƒnz§ÿÇî!»—›¤9uÁéÌ«»¤–ìHüädð¯ûñ¢‘ú‹fÎÐ]¨?QM¼ßW÷9xj‡zsõhËÂÜIOß´iõæÎûcAlIOOïÀcíÃ,[^ã·ß°òÞ³u²¢Ð×ûækâ6_ˆ¤Ø!}àCZ~`ŠïŽzÿC5ÛbwM“Bë†Ñ±åq1ó: —½nÛ!Ãn‡]REýkCF œqBípY\tÇå˸±æÙN³ý ›ÔÍ‘úQas•ëØéà3¨¥å)ç톊Õåì\jú—vôŸ¡#^[/tø´òì¥í#ÙÚaµ¡gŠÆ\õGg‡ò†™,k¸|ElÃùó!„l·¥æé+ÝÜÊÙ·=¿Ø½ÿÃÅó¨vèµÜäÅOÛ¼ÐÙà0œ:HKHBmä(åÚ7>zr'åb®Î‘¿ßäA@½žÚáœ9sZo•ÒïÞ3{Ýó& -wïÝãÀÏlI´:8)âÌÚ¤¢'“ãäÀëììòñÔ˜á–ÛßÛŸÞ7GáÛ­gg‡› —$Õç|S3Xªì°,vˆÅÀ°Ûa—TQûÒÅQWWzšÇO -7!IªýôYH­¿¤PÍóÍF OÇ.V¥ë¹bòÈÚ»ÍüeUª M(}¦BÄr6:ÀÆg´¥Yª\ÿæÃGo %^ôün÷2ó[²fÞ®¿©+Ž?²éÎÆÕ¯Ç8x©d?t¿2öäÄãëÜs†˜»o˜"ùé n¶Ù¯”ÎÒ²UgãþijyIÍ=éÔâ¯^¿›Ý–4Þí>•ð0Ô/±@Ù$Àð_ã3]]Çÿíw”ÚYêûÍÃÀý¥†©‹Õoj䲜'Ï$fªÎ‘ÒÔV.Lò +²L¨CècðÖuu©ü´ 8Z?Ò2Hå^Æ}ì0%Díæ^—è\¢œü€‰Ó>¦ý»ãb[vˆ~ÄçŸZ¿9gmì‘ÅJß„y¿]‚ 9Vîâ·mªBØa3Xì‹q`‡]Q‚/NfÖÀĦÇ'÷Ý,&ŠŠHëlð§f?L¢.Û{¥yúÈÀ+Çg)R|P΢x Äg´>;Ä ‰J«þôëê­Þ¦) -ã Ïz:…Þ/ª&ÈL »3]º"#ÔëhÒ?ïå5õm½vk‰mÞÒ 3bgˆÏ4ÚPšs•ÿq7Üúö¾¿‰û»½þªFnÜ<½¯©)Dã„3óïît‰ý0lÚOò5OÝŸÐôäÔ ¤Go*ÄÑwt–~(úQ~y½X¿±¿»q§*ÒÓ À -OíPw–nóH|ÆÕØ[šäûà×]‡ëvˆÁÀ°Û!¨è%ë -nß/VR“ø’vÈ'‰hž”â8\¼ãÀÞOípÖÌ™­‰SÂu„>uˆ>™Ú÷†Ò sè¬Bº+ž*ŸÙéûY~NäMhOÂS;\€¦EyKÑ,Íi?·®•wëÖ-.ÞÓ"Ýl‡í#졪è3EßièŸr䈜ÚaÏk†­:¡î_òï«zÅšýŽ§@¢= -oípþ¤y„ææ!]ý¢ÔŒÔÔÛí¾†’+ûÝN=kS×_öÏÿ¼.Qû]udβ·UT×Ìzäé’˜ÿ–îF¯áý•ýQ/eT†.Í,ð¾,ø‚ãvg)–`ÄAhc§ -MMͼ¼¼ŽU†¤ûFLV{ùöKµØ8[_Ï•ƒÅð…—öï<“]'D’guÀcÅ cäªyî½îèø“Ñ+Õ…‘úÿ]»S6(~ýÐnxÚÕ‹iÇ‘6n¢8²C>ÓÌÞῨç¼ûR->žªqo#³ªˆôõI„OÐ"‚¨ˆÌ˜ ~^S‹l©‡Œ¯¹±oË5·£“$?_òv?÷¦–D& - ÐÛìí8C‰Àµ&4d„zŸÈ(%…/ݵ×zœ¬wl|Oíp>U -uŠÜÒcŠ£Õ ôcjZZ›"&~¹fg}à *h¡ò·Ôm«÷Õ\£ÚáâmˆClØÚá’¤ºï$I9Qƒ°ˆeWlmï˜Ä›§øõ–³Á:ÊQ‚.8®Û!†`„=´±ªBK[;88xž¾~Ǫ@Ëz‰«ô®¤ ùJ_S],ÏéÇœ˜üÈÎ&Ý$&ÝrËÙâœ^LÔrµ:ÆXƒÿßQÓ=ÊÇN[ n|¹×ÌotXŒz_³¼­ÎÒvàÌùU3¨BbOýÞI!IJK6Œ*Š˜ñb›yü”Àp³‘’¤êâOÂåsQ;´ Zym÷åAžGí' ®F® )«J #Å ¦›‹|â׿Ýʵþô­ÜéaxÒ[W©ém¤ù‚_¼½†Ø!_ÀS;ÔGÅJM¹¹Ràèêõ1BZú6E\“µÉ(hu|ôìÿ³wÞqM$OBïMÁ~*ÂY΂¿óõ)6,(MA EºtBQ8@%€HP½" ¼Ó³œžųP<¥¨ô’äM!H -°Cœï|bÜM2Ï>ÏÎììŒ<œØ|Íb7Öõµug–—¹^ñeËÁÂj»ïl‚6bØ‹ßLJ#u~ù'´8„bFЭm@jjêOªªÔÔÕIEéèê@R©® ,ó0ÔúÝg^莱J³úRãûÌϹçÇý@dðšÞúLKöÃؽMÁºéñë¾õe\âŠdØŠCÖ +…Ðûy 2Ý*V›¡;`5¤r¶ºµÀ‰m«†­”&¿ÿt'':©¸ê#Nè¬oœz"ß)IïZÙÎY¦ŽÏeU$HŠ#ö~³DÄ!OÀÕ8ÔÑÖ¡Ü(è?+h9H[DÃápÃÆa¬a†1‡¿ À¢»°®…ü/8NÇ!3‚nmª¸ŒÃ¹¸¸ŠÒÖÖ†ª -fkà Ӭbh:±4?çÁ")½NU¶vï¢JM³b~”Õ#wüË8„1©fðûlÅ!k¦Ð=Í*éUD‰ÃíØŒõƒãPÿðÊH¿Îèˆ6ÌC«dOCJcÜ4ä´ðËFÒ»)‘Çõ±º+xˆCž€«q¨¥¥5`;Ä/ ©Ã®¯\½:Lgéoû‘%†éèÍ --冡´ÎÒáãÿþW;›ËfGu(¥á1ßÀðBNw–B1#èÖ6X¸+W´Öi±¡ŠA_-—½-s43’~üÓη‡¾³´û‘ñt¬±­Hh¾âº'ú‰ Æñ¼Å¬ ÿ–àès‡<­™SÚ˜”­“‚o(BÒ«(å§î9?¢“ÌçŠÚß¾GL‘|lMö™Ô…ÿ%íóª·Ï -Ó­ò4>²"%ÛT…P{ÖÙ,ŽûkDƒ½kýÙìkyjM|’Ù1B[Ýã–I §‹#@òÜCMM²Zû… ‡ÑÚ‰Ô×$®V\a(wʽn%µeïo=.LZ·]¯Nºû—7´Ö×4Mš5MrŠÎÏÇí•?œ;˜ñ [Ra¶ZÃßµ!`(ÍP@ŽC(fƵEäa¡s–O~ô²±Ux‘uD€ÁL‘®šÂþA‹¬ûïœ) -'v½Àú¸çÕ *¨yÆ…¯–#Ùñó;Âg%ó˜/ -í÷ák8ýÜ!oj¦Md±Mdy( £BàL*"4ßHA—Ôá…%Ôí¢Q´¡4R]ÏSm]›fÕî* ñ̨ÂKË(/[õ¦ü®_aÚâOŒ®µ¤»2wé5Œt–*®öŒòXô:ÐÒífSss›¤¼œâšXlˆº8ëà,\C͵šý£ªat§í‘x­¢r˜8$ô|î ¶?ŒÝ.‹EÎø¶G§´€bFЭmLªý5uGUŒJæXŽ-N?wÈCšá.Àµ&\õkÖ Në)¥·&RúQ`•×¯#â¶aöA÷:á¹æjˆ¡6ý¶átB1#èÖ6&UŒ*‰Ÿn¹DÜX‚vÑ""ÃéçyH3ܸÖÌYʇpº³ŠA·6( ¨‚Ópú¹C ïV´àC&Ðœ¥ÓÏB)hðuqȇpôA‹Ñ¬Ç < ù°Þ!€]@ ù±Ô°¶o Ä!`€µØh0qƇ€‰ˆC:K‡€vþ²;˜†:(Ä!€?q(#KGµ#Ä!€_³Ò€/qÈðt*Ë7aƒÚ‘ÜCà$1|^½zu<ãPOOù(0êT†äÉ a‹/††ÐÛÓøæ×'oXÆáˆYƒ‡ã;+ p‡ø:qH$¨çEÂDò†”‰ KŠKÆ_ÄÝoÎçß^i¢¯,2ÎF¦õŽÕ&ëÛŸáA1…ï~Üue»BÚÂóø¦?ÏTIlß;¨âÈ¥94œ.ôœ;ÊE™Æ^ŸÂ‡Ãg!qÐ (q%ÀF‡£qÆiß»ë2¼¼{õêƒÒ ¶CŸ - ŸnÇúD\}† ÍÜúA -Ìñýµàjn$•E~IÖ,õt¢Nâ;°îYiiéøÇ!XWó+BŽŸý5‡Bvvýv´\ YpÖq¤ë’®çGL -•’KU¾íÅÓš^…¹ó•DGi ‡€!GÌBØhãp˜ƒ‡cr–†0 -—§8ly§^fÙö±{‚`1yî@š_‹aâÄ8ß;ܸa#¬Bûþ«KÒ_UUÕêêjJúÂËÊ. )bbûL@@Q\D@r*Ñÿ{ ò2žas5¦<|ñ¡Ux±M¤ÿÎéÂ]5Eý‹vJ.¶:챬<À‡tÝGY XLTÙ$:f— -òÃEÈñcÿfÛ©óUþõܾ÷ÖüŒ‹'èùãdpô™¿^÷È,Xoä¿ù³ÓfJDÙ}tØ4ð‚Ô¦¤"­)‰—ˆÖ7+jèƒ ÏØG 3JÉ5?èN{zí_ñuéa[& t<ÉôvO»Ÿ¯5»îÒãÙ)%LVÅ" ŸïÆz‡þ~¯®¥GDaþÚ}AV‡,2D} sŒ¦tÜôØîôð)E‡g=H -Ž9óW}—äìÕ¦Þ(땲”°tç÷ÿ•þY WwKóLJ½òï'ùy:‰(mhÍ`Þ`pBÉB›q%À؈ñ8 Ù7Bæ,WzüòC«ÈŠoˆ0e‘ÞIî˜!Jh¾™Š.®í”\hD[þwI[qØsS|Ž9¬{_„ò=ý¬@Ä#”u\QŽ?É÷½¾î“z¯[ZIuI탊ҖvWœ@¬xׇGLßz(¹¸¿9Hl¾fi~Î#?îIÖÀi¸‡(¥Näe]¨©ÅÇǯ×Õ¥*º¬¼|H·Ýw6>¶%³YÖñ¡GDQL€¤à-Þ‡òÑä›Ë<÷ÖÅœÔøc¿5Î Kz§ÔÝò´&]Jh~=¨q¸%+ÏŸom—JØWgôÜÃÈ·Jm¿ÿnÅ;±E=†'V»yÐÅ¡Û”š<9 -©óŠòV•’V]2O°þQUíÃHŸØ“8´y(·û eGrä%¯Â< áoWyzÿp;úøåqøÏ©³Oäg+KÞ]‹Ž.™’¼%×.¦Ç±(wk÷ç':ÙçÞøÔ­ss['_wáç“Vž,ŠT­Fn²þ¶ØÌÝæ'ÅöwÝ¢—ø×n ô_-Ùø¼fòóUò2©Œ˜…0vãB€AÃ19 ½o\"3uÛd—À7YÓ;IÊO<,rVÆ&í'Fh­{+ "SEŠCôÎßÏOó?f¿””j„®÷MEqXO]®¹kmhŽí 7d±Q:z“BK™‡aX{̯‘*Œ“Qšò½/Ò,üú¢rìg‘­ÞÿÎ8:ÜÝ—¹Zô–~%¸‡º$±’!ª©©?©ªRSW')XGW‡ªk8VŽ»<¤ˆ{ÿ;å€<+½qÛÚ•ktVÍ• ËÚ0Á2³NNº°Úg^莱J³BådÐÞ9çNºÔ"‚8üzôß;$½‚ )jú$EìR~æºÕ¶Z ûKð‘¦ò½[ÚŒ|¤ -#›Ç!9«Xu–³×¶Í›ßïÊ+D~ö$•¬“óKàŒWúf¸©â°çíÅ£þ ïÿ×ÚK Qd¦MnÚ÷Gü?ìKsýÇÕçåŽÜB›6ï­VWš´RD¿s-(Øý~ÿ&»ºuØ_/Nz¯÷í‡Ý1µót7¯ùIs“î²)"j¸Ïà8„’…06ãJ€AÃ19 £o°r ÒÅ· ½“`éV±úØ ]Ä—r¶ºµÀ‰m«†­¤,#ÿt'':©¸ê#Nè¬oœz"ß)‰6¤•c±ëšíœeêø\VE‚t±DìýÜ77&7f‰$±½*ÙÞÿ¿}é( Õ©ÀgŒ‡7m·8ÔÑÖ¡Ü(€]Æá\\\H -ÖÖÖÔ=ÃápÃÝ;ìûøüÎÊRlv•V&Övf7“¬1È4«X£œþwú{@~E¨÷ òW/ ;ùlyLAÌŠºôqØjä#]Ù´“‡ÍŽ›Ø‰CGr -Z5ÛS_ ?yèÙ=[O‰Ã }³ËÐâ°ã‘ÏV œèNßÍóüºLNŸ³m -Ð?ð÷l¥®Çë‚<[ù*ç-ÖÔc¨÷=¢Sæ͈d(ª¯¹úÆõ?n^>[X¥~ôlÔÿÉL «ü¡´€Aè;…‡P zŽÉI˜/£óѬâÞI(q¸›±~pê^é×Ñæ‘yh• ¢ói¨ñA‰`Œ›†‚~ÙÈXCZ9ýqˆ<®Å|)‡ôMßýæoÿ‹ZÚj¾Ø„ºˆâ7¸‡ZZZ•»rEkÖ {”ã]½:¤ˆñ­u-BÓ'‰Þ߃¬ð+8¶„ð¥Ó£å²·eŽfFÒÚYãöÐw–vþãj³)+SO\vq{‡^’,cZ ³Ïì}ímtðéB“Iwâ" -»v&ôq¼>çPœéýƒÞ¿ í¡LO]ê.ƒ"òxäe)•éÒµŸ¶¶>ûÙçXóÚ 0Ó‹æ´ØB‡Ž¢…f†QMk¼½—üulèÎÒý¯~p<°Y‰¤W„ÔüµË{Žèï½$¶+Ð÷Ǿë'¢ò^)X>€òóPƒ½ï„Ôý/äšL…7^r6ò}8ËÜÓêÿ¦ß¼'c°ùÝþÁqØýº ½TPUMI &?4±v_Þ‹iè65GŸ;$Å!”ƒ‡cr’Vzß8¥IÙ:¹û‘ñt¬±Å%ð EHz'Iùé»EÎè$ó¹b„ö·ïS$[“4uáIû¼êí³Â´D«<¬HÉ6U!Ôžu6‹#ÆþÑà…,1LGoVh)÷0 %w–6ûZžZŸd6GŒÐV÷¸EnúÛd§X¼K¢×*YàP_îÆ¡¦&Y­ýB†SûL`´×$®V\RÄOcþÑL$t /0?ŒÚ5[¬íŽÕŽÐ9Ë'?zÙØ*¼È:"À`¦HWMaÿ p‰EV‡ýwÎ…Zï'xµË*Ì45˜:Ñ~p ùú8tÕû0ÕÓ3óï¾Ù«f¼­|®šZœ´‚E~)GtŽãÙ+‘K‘žÇ.>i“^¼^§¹ì,~ùŸ„oßS25´³•|…o¾™zÿdz¦na¹i uÝ"üVÖØ ŽÃžÿÎx¦üñ¼±Sxò¢m>G½×+ -rïw3œ~îJ€±‡cq’Ö/¾Ñ&²Ø&2€<”†ØõëãžW/¨ æ¾ZÞÉä$„æÉ!è’:¼ „º]4Š6”FCªëyª­ëcÓÌ£Ú]…!žUxiåe«Þ”ßõ+L[üéB¸wʽn%µeïo=.LZÒ]™ˆŠ»ôFr"ÅÕ.NÒÇmÓ»”gH’³P\Õ'>ì2 ‰øuàjj®ÕìUMŠÑ.‰×**ÙxÐ÷H‹ -ÛÆî —‰Å"gŒÃŒ=ŽÀÕ8\»f í_)SF[S†[)ý(°Êë×AF ñÓ_‡öy—¿ü„—˜¾rWÀaçUr£é}¢ŒYý»o†®ïÉ•oÄ»8ýÜ!”ƒ‡ãì$œ¤íA˜}нAAx®A` ¹šÄ7qy5117mÞ æ,øN?w%À Ç!”oœÀ.Ü‹CÀ³pú¹C(ŸbÄ! < ˆCBnÖÓqð9c9AøƒáãðêÕ« uØÄ!`"â0ÀÚì4˜ˆ€8äC@Ç€]€f‡|°6»ôk¦¸‚½Ý6¯…Íø…ã ¥™xPëÎþHA"XÛ7 -Y3ìf!•Íkfü÷âÌ%Á5âÈü45 æÿ¥¾Ãekªà¾Ä!¥Á Úö@3þ€«q¨§§Çô6u -_"œ<™!ìbñE â±3b²ü/ˆq8¾3ŒUðtqHz1ŠÃ¼¦!f‚¯‡D":ÇEÂDò†”‰ KŠK¸1…w÷›óù·Wšè+b¹ƒ‰Àðq8üûP¬ ŠÂÚÆG,¡Æ»ë2¼¼{õêƒÒ‰‹49>Þ<}éÞóõ4æuùŽ¶yK3Œ¾Áªö¡0nKt½Hðð½ü(# ¦ê8;¬U ~¸‡7n¤ÜÏ"k–:S0ußuÏJKK¹‡ü¾Æ0q8b“‘-kÆŒ [Û8«‚%Pjœab×ë»O:åÚ³œùW*°ˆÃÛˆ£ŠÃ¯¯–b…'Œ›zZÚ²R‚pR0fìq}Zö½øËŒîÆᆰþ íû'Î'ýUUU­®®¦Ìo/+»4Œñu¿¾î“z¯[ZIuIíƒrìÍ/Z3ãÖŸOÅvÄ'Úσ»jŠúí”\luøàŽéø§˜€€¢:¸ˆ€ä2T¢ÿÜ&ê•`MÓ¤YÓÄD•M¢cv©ðÛ  ¡âÊÝD(ÖŌذ¶±¨‚dIÛýDf × -®^ÐUñlª_v„¦LKÅ ÔÉŠw}xÄô­‡tï |kö¶å{úY;ˆG(븢’/—œ˜pºuÈ[šÙ2g¹Òã—ZE–ØDú“—ÿe¬h&'™!Jh¾™Š.®í”\hD[þwI[qØsS|Ž9¬{Ϥ«>×*J[Ú=XŸ!ÈÅR´%ŸðŸþ>a‹ÂºRV”p®ÆáŠ@i†L^ÖešZ||üz]]ª¢ËÊˇ1þÃïû‘ÅFéèM --e†aí1ùö‰»ƒ$¸Ë™ï¯F凪‹4Y[ãÌ0±ä›KÝ-Oë`Ð3ÃvÛ’Ù¬ëøÐ#¢(Fî…àwc‡Ãg!Œ­8„`FЭmLª U¥Ú$Þ<× kvÂ"Ï«Ìë”oƒ¿C…q2JS¾÷Eš…__TŽý¬n†'t½o"((Š ÀzêrÍ]kCóüô‚8äà½CÞÒÌo‰Cùh’K”y’\"3uÛäúŠÆ39IÊO<,rVÆ&í'Fh­{+ "SEŠCôÎßÏOó?f¿””jLºÊ±}áFïZ¿F~ `Ò§pÏëÓ^9j»zdDïšÁ§wqx®Æ¡.I¬dˆjjêOªªÔÔÕI -ÖÑÕ¡êN„•ã.)â¶û.&hÃœŒuòpbó5‹ÝX×lûDË“vé«`·­LR R5à÷MÐF´mö™ŸsÏõ­òFž•Þ¸míÊ5:«æJQúäùÝã˜ãpÄ,„±‡P̺µIÔªÄìO´J&ÿE¦8f:e™:>—U‘ U5±÷sßܘܘ%D†Çº“T\õ'tÖ7N=ñ{ª Ä![‡¼¥ÃË<Ì—ÈûA!mLN‚A¦[Åêc3t_ÊÙêÖ'¶­>^¶Ršü6“®ò²‘ ®åÌBŸ’ÔoÓõªÈÇ¥T'=Q -¸yø5àjêhëPnÀ.ãp...$kkkZp†Ãá†ÃXà }R<`dä8Œ5¢mci~΃$tÑÏïܨ,ÅfWiebmg -ó¿Ç1Ä!”,„±‡P̺µIԪ̴OÜGû›åœ…<®Å¬°-Sw> 5>(ŒqÓCPµt. Ä!Gïò–fèâ°Ð=Í*鄇۱ëÇ¡þá•‘~Ñm™‡VÉ ˜u•íœdp-Vú¤Aüø‡•i®K~âr~×oÂÕ8ÔÒÒx4wåŠÖ:­A÷È\¹zu˜ÎÒßö#K ÓÑ›ZÊ= C)¥ q(ÞP„´ÆíÔÅ‘¬ÝÝ*4}’(áÝù=È -¿‚cK$HZÿÇÕ$fSV¦ž"^ƒ ŽCˆYc'¡˜tk“*˜ã0?²Ù×òÔšø$³9b„¶ºÇ-“Nï ¯ñö‡žÆGV¤d›ªjÏ:›Åc/¦i<ò1>¢‘Ž5V`,ÿÛŒÃa'yK3´ÎÒ–ËÞ–§´1)['wÓ×>žÉIR~zàn‘ó#:É|®¡ýí{ÄÉÇÖdm¤.ü/iŸW½}V˜–h£®~hð¢w­_™ô©.ÿ¾¦cêwŠ"p|ãµ ‹¸i'N9ÌÝ¥_îÆ¡¦&Y­ýB†SûL`´×äãU\a(wʽn%µeïo=ÆÚ$0Ä¡±³¦°ÿ¸Ä"«Ãþ;kŽü£™Hè^`~µk¶é°„Öû ‡pí² -3 ÂC ¦òíP jÂ؉C(fƵEÌqx6miwe"*îÒkéWP\íåñ£,œ¡Æñu!žUxiåe«Þ”ßõ+LÓìzõqÏ«TPóŒ _-×ùÈßÒífSss›¤¼œâšXlˆ:÷ãô½CÞÒÌŽÐ9Ë'?zÙØ&²Ø&2€<”†ÈPûpF'™)Jh¾‘‚.©Ã J¨ÛE£hCi4¤ºž§Úº>6Í<ªÝUȨ«ÅŸè]«0i ƒ>]f] òȨîBôõJ.Þàk²@‚EËÀy¸‡šk5ûGUÃèLšv‰H¼VQ9Lz>÷H‹ -ÛÆî —‰Å"gŒÃÜ|”Yi˜a#!˜tk£*ã§[‡ß¬f€kM ¸‡k׬¡ý‹"eÊhkÊpk"¥Vyýú0"n{ft¯CAžkh®®¡X3Š8hJB±6(fÝÚƨ -À¸Àé{‡ß¬f€kM Àœ¥|»q8ø.#kƒbFЭ Ê'ªà4œnÍx°¢ÂV2 @åòü“aÍY -p‡|ô8d~6,Öómx@ò!`½C»€8@ò!c© `mß&@3ˆCÀk° Ð `"â0ÀÚì4˜ˆ€8äC@Ç€]€f‡|°6»ô¿‚±7þŠ:µ Ð €?qȇЬmˆÀÚ¾UHša7 ©hÀ€Yiø8xìqj,VÀ¿FUðqH3†HÓË0¯©/¸‡@3ÁÕ8ÔÓÓcz›:…/NžÌv±ø"ñØaŽC*Ç"Ä8ßF€*x„ÁqH}gÄPØhÀ|8$ °þs‰$abÿå(VR\2œˆ»ßœÏ¿½ÒD_™­ÅÀF·}u^Þ¿½zõAéÄÅ °ôÝPqHeø÷¡X3…µRPAÌõKøt;Ö'âê;˜0Lhæv?”ÕRü=ó2G[‡¼¥Æ5,G{vïZ˜ÄŽªxsË3ò‰%Àaø®ÆáÆ)çY³Ô™ì©“ø¬{VZZ:œñNã¥Ú‰³ìðqHe¨¶#[Ö6ŒA·¶±ª -PêŽnBûË;õ2Ë(´?ˆÝ‹ÉsŸ+:¦ÀãpºuÈCša)†QœÝãiÄŽÇ']S:>T==T8†_ánnØë¿üì_Ø…ôWUUµººš2¿=¼¬ìÒ"¦]ÁÕ4Mš5MLTÙ$:f—ŠP_cÅ ÔÉŠw}xÄô­‡B,&ã<¯oIŽÜ¤Ðúg˜mÊôPXb Ó^,Š')Ûà¨Öv•K•µ­}Š¦Gö–H§_X˜…úŽŽ\,…`('½›åá8 ”8¤Â|ŠµA1#6¬môª TÊv?‘Yµ‚«tU<›ê—¡)Ó2¸^tï |5{[„ò=ý¬@Ä#”u\QŽ?É ánÄæk–æç<òã~éלÈpºuÈ[šÙ2g¹Òã—ZE–ØDú“—ÿe¬}bWMQÿò¿’‹­Ü1C”Ð|3%]\Û'$(¹Ð.*ˆ¶üï’¶â°ç¦øsX!öžIW}¯/„û¤Þë–VR]Òpëß ¢´¥ÝŒ¾ïxœà”9/ÐðŒCÚ„¸àæW¸‡(¥ù/ùÌZ ¦¿^W—ªè²òr6Z‡øƲÆÉ(MùÞi~}Q9¶’•AvEKC·þø˲´9Œ ¶ ô<`™‰¦sÄŸ?=>`šÉlŽ¡­îqˤïjRö·¹'n¿ëîÿÞ)Ã$Qƽ(t¾ˆs ¬·Jøy­<}sz2t<öß¡‘–¥×‘b„¼ô åýŽG>ÆG4Ò±ÆJC}átñvž‹C*ãøÜ!ÉÚ ˜tk“*˜ã0?²Ù—©^:è5ÐþÐÓøÈŠ”lSBíYg³8bìÅ4 ºúźuÜ!ï’èµJ–φ8Ý:ä-ÍÐ:K[.{[žÒƤlÜÍpv7!­q{è;KÝ-r~D'™Ï#´¿}˜"ùØš|²§.ü/iŸW½}V˜–h£®~hðB–¦£7+´”{†’;KYèAû`<àß2ÜCMMêU%øÀ•(uÀ5ùx׆‹CBëýC¸vY…™á¡S…ú+Qq—^ÃHÇV\í¸¶Òí¸DX†“ºxO]Ž³óƒ]º“àŒ{‘Jê¨ -ÚfûÒûBÖ¦I¬:T‰O’\½®K®ø~êËÿ¢ÎSÞ'v½Àú¸çÕ *¨yÆ…¯–CÐÝ3ÊãGÙž4§Ÿ;„bFlXÛXTÁ‡gÓ–v3Õ £ðu!žUxiåe«Þ”ßõ+LÓ\¿AÓÏš¥v)Ï$ëC\Õ'>ì2ü|ÁÎéÖ!oifGèœå“½llYl@JÃxvÃ;k -û‡ÒH,²:ì¿s¦(¡ùFrº¤/$(¡n¢ ¥ÑêzžjëúØ4ó¨vW!£®ºîr¯[FImÙû[σ “–0ëS€öÁxÀ=¾e¸‡šk5ûGUÓÛ2í‘x­¢<<;v8ýÜ!3‚nm@¼§[‡ß¬f=Ÿ{¤Eˆíc÷†ËÄb‘3ÆaÆGàj®]³†ö/êIGSF9˨çYåõë<"â §Ÿ;„bFЭ ¨‚àtëð›ÕLÛƒ0û {‚‚ð\ƒÀ@s5 ¾¡<±s–ò!œ~îŠA·6_¨‚ãpºu4à}ÀŠ|§Ÿ;„R&DkðhÎR€C€8äC8úÜáèÖÆ〞‡|XïÀ. ‡|ÈXêXÛ· Ð â0ÀÚì4˜ˆ€8Œ°6»Í&" ùÐñ` Ä!¬ À.4Í°;š†ÿöJ}e‘á5{ÑQ—áåýÛ«W”N\¤.¿Âü)© ÞrB1£QXÛ(U…4À²6»^$xø^þ@„Suœ‚Ö*ðñ‡mò–f×Qí¹<^ë1‘ÊÑsiPœ&†™nc $8¶ò£†«q¸qãFÊ DÖlÿ$™Dê̇ýëž•––g|£Óß8ª–¡^]ŸŒ8¤BÝ’ý8ÆŒ [ÛXU(5Ÿ ¡§¥!+%'cÆ×W¡aß‹éSð2œnòfXŠaç2çŒð•ànnØëŸÐþ˜ѪªªÕÕÕ”ùíáee—†1í -®¦iÒ¬ib¢Ê&Ñ1»T„ú+N NV¼ëÃ#¦o=b1çéx}Krä&…Ö?ÃlS¦‡úÙöb.ß|3%]\Û'$(¹Ð.*h½"‘¾däb)Ç!ÈqŌذ¶Ñ«‚RÛýDf × -®^ÐUñlª_v„¦LËຠнƒòeÔìmÊ÷ô³vPÖqE9þ$/0dmâ?ý}Â*…u+ -ùÇœhpºuÈ[šÙ2g¹Òã—ZE–ØDú“—ÿe¬}bWMQÿò¿’‹­Ü1C”Àà´å—´‡87Åç˜Ã -±÷Lºê{}!Ü'õ^·´’ê’†[ÿ¥-í¦÷–ÙÕÖâá„ÎúÆ©'~OÕ€ Q›Ä®WE>.¥:é‰úSø÷æ!§[‡¼¥ÃË<Ì:y8±ùÚ>ósîùq?™¼Åm”“ñe 2ÝŠÞ%HålukÛV/ [)M~›IWùNÙH´!­‹ÝX×lgF}bÕႊ’øúßÚf/NɵšžYûJp5u´u¨k¥]Æá\\\H -ÖÖÖt™ ÃápìÅ¡Éq},f½Â õ¥»ksœíÏÖÊjMsY$gÞ‹JnÇf¬‡Ì%óAg)„±¦P¬ ŠA·¶1©‚Z™ö‰ûh³œ³#Õ]çÓPãƒÁ7 9դΥ ‡¤òñ+Ó\—üÄå–ÃÕ8ÔÒÒ8ápW®h­Ótï€Ì•«W‡‹Ã¶\Mb6eeêQ›}øÆR'ËSkâ“ÌæˆÚê·Lú^¡&ep›{âö»îþï2üHeÜ‹Bç‹8ÇÀz«„Ÿ×Ê#È¥®9?¢“ÌçŠÚß¾GL™Ü^ÆPòÂéâ]|Œh¤c•håt0½Ãpô¹C’µA1#èÖ6&U0Ça~d³/SÝuÐk ý¡§ñ‘)Ù¦*„Ú³ÎfqÄØ‹iôµ‰o¯yÕ1õ;E8¾ñZEÜ´§fóow)§[‡¼¥ZgiËeoËSÚ˜”­“»j¿¡iÛCßYêNï’)÷üRþ—´Ï«Þ>+LK´ŠQW¿F4x!K ÓÑ›ZÊ= CÉ¥ôúl’R–•›$&€o®1SI<µÖ8<´  ÜCMMê*Úà0ÚÊÛÔ×äãU\. ­÷<áÚef„‡Lêk¬LDÅ]z #[qµ{àÚJ·ãaNêâ=u9ÎÎveDèN‚3îE*©£*h›íKï Y›&‘Õo¾‘‚.©Ã J¨ÛE£ÈCi—ìåñ£,¢ëÖÇ=¯^PAÍ3.|µFdz‡7àôs‡P̈ k‹*˜ãðlÚÒn¦ºcÔ¾® Ä3£ -/-£¼lÕ›ò»~…i’ôµ)ù¾(À#£ºGÑ×+¹xO€¯É ^©`ÀéÖ!oifGèœå“½llYl@JÃx.Ã;k -û‡ÒH,²:ì¿s¦(Á%hCi4¤ºž§Úº>6Í<ªÝUȨ«ÅŸ.„{§Üë–QR[öþÖóà¤%tú<à1çœ_f-\ˆÐ#¦n°›¯eÆãp55×jöªþr^‘¡XÄk•àáÙ±Ãé硘tkªà8Ý:üf5CèùÜ# -*@l»7\&‹œ¼ -Wãpíš5´Q¤LmMnM¤ô£À*¯_çOh8ýÜ!3‚nm@¼§[‡ß¬fÚ„ÙÝëD„çš«Æïæ,åC8ýÜ!3‚nmP>P§átëhÀû€-øN?w¥0ˆÖà&Ðœ¥‡qȇpô¹ÃÑ¬Ç < ù°Þ!€]@ ù±Ô°¶o Ä!`€µØh0q`mvšLD@ò! ã À.@3ˆC>X€]¨ši kak/¹@9Ð €_qȇPëÎþ@A"%ø­BÒ »YH…”ˆ@3þÌJÇ Ä!‘~B¬¡€÷OŸç~UðqHmðÁ(-Åá_l4งzzzLoS§ð%ÂÉ“Â._";ìÆ!ˆq8¾3ŒUðƒãpÄ „ êV…‡@3€ WãpóæÍ´õÏðD‘0‘Hkž”— 'âî7çóo¯4ÑWfkÙ9ˆ{µ?ò.Øú^b¼Kæ:ƒãÝ6"kƒbF£°6"‘0U@a„šê®ËðòþíÕ«J'.Ò/ÿK쨊7·<#ŸXÂs‹¡Ç!3bÃÚX©BUUµººz$UPjj»ŸÈ,áZÁÕ º*žMõˎДiü{èÞAùŽXS?É 0¹) œ2çžqHãÁ‹žñ…Ó­CÞÒÌŽ9Ë•¿üÐ*²Ä&ÒŸ¼ü/cí»jŠú—ÿ•\luøàŽ¢†3—¶üï’¶â°ç¦øsX!öžIW}¯/„û¤Þë–VR]Òpëß ¢´¥Ýôç»ê‡xSoBt®ûw¢* -ÀA¸‡(¥ù1‘Öc -§ž¤–•—³Ñ:Ä7–p¨0NFiÊ÷¾H³ðë‹Ê±•¬ ²+ZºõïÀ_–% ÈÙñ"nðf¤×Û‚$¸Ë™ï¯F凪î;Û’Ù¬ëøÐ#¢(&Àüy`„®÷MEqXO]®¹kmhꆟéËi*;`‘³26iï<1BkÝ[•©8Æoa?kl†¿w8üû¬ ‚A·6fU,PS‹_¯«;²*HU`€6‰7Ïuš°Èó*ó:åÛàÏô{vTSyþ zé·!¶?ŠsJšõs¬v½-OöŒ/œnò–f¶xKÊGoo.ó´<­“™ºmrƒ·4Y[ãÌ0±¤mJÝIÛ`R~zàAæÊT‘âнó÷ÀóÓüÙ/%]Å2é*Çö…²Ø(½I¡¥ÌÃ0¬=æ×Èôú<ù¿HÓ#‹·Ì½sóßQucßÝ`MįWãP—$V2´“>èü ÜF(Ç]f#Ûî;os|.«"!@žFøsßܘܘ%âŸo6õ¼2ÿЙ˜ÍÔøÑÅ¡ÑI»‚ôU°ÛV&)Ž©¢ÿr@ž•Þ¸míÊ5:«æJ±,ÿéNNtRqÕG<œÐYß8õDþþDKúrà÷]Lbõ±º -4Á³ü’Ãÿ–#e(ÍPmG(ÖÅŒ [Û€*ÔÔÔŸTU©©«“ŠÒÑÕ¤ -j`ö'Z%“ÿ"S3²L™~OâH5õ{ªlð6¤0Œ·‹WŠJ0QéâÑ.ññ…Ó­CÞÒŒa‚ef<œØ|mŸù9÷ü¸ˆLÞb‚6ÊÉø² ™nEæ’ÊÙêÖ'¶­>^¶Ršü6³8e#ц´r,vc]³õ™¼ç¤©·ÄÁœÈ ŠŸ*‚,f'åÚ̇‘¹¶ájêhëPM˜~Ñ…Ó`8Ž½849®Å¬Wt-Õ]›ãl¶VVûhšË" 8ó^P -x=Ø"û>>¿s£²›]¥•‰µ)ÌTrçÓPãƒÁ7 9D¿ôí-éË¡ÄávlÆúÁqÈü-Æô‘¥Ì÷¡X3‚nmª¸ŒÃ¹¸¸ŠÒÖÖ†ª -jdÚ'î£ýÍrÎB2ýž#ÖÔ9úº&]ÜgØXŸi&_ñ7¼ù(;o]HJäÿÉòí=N·yK3tqXèžf‡±F9ýÛXšŸó Ä!Ý™K*GÿðÊH¿Îèˆ6ÌC«d,À9kH+§?ôÙõ,boÌÚ´äÕ2pا?­vç8ç'.çëk/ž…«q¨¥¥5hÑE±aWW®^.Ûþq5‰Ù”•©GmöáK,O­‰O2›#Fh«{Ü2é{…š”ýÁmî‰Ûïºû¿wÊð#I”q/ -/âë­~^+?HÜÃÄ¡xk]‹ÐôI¢„wç÷ +ü -Ž-‘`ú<í=¬HÉ6U!Ôžu6‹#Æ0Å¡xS™«EÎè$ó¹b„ö·ïS&·—1|‹…ÓÅÇ–Œ}îdmP̺µ VîÊ­uZl¨‚9ó#›}™~ÏŽ‘jêbš†À#ã#éXc%‡­Ã±µyK3´ÎÒ–ËÞ–§´1)['wÓ×>¾¡iÛCßYêNæJ>¶& #uáIû¼êí³Â´D«uõkDƒ²Ä0½Y¡¥ÜÃ0”ÜYʨÏïe«‚‹·$¬’î¸e*{Úq VÿFànjj’ÕÚ/d8ŒÖN¤¸&¯âÚpqHh½Ÿàq×.«0Ó <Ô`ªP_ce"*îÒkéØŠ«Ý×Vº—ËpRï©Ëqv~°+#Bwœq/RIUAÛl_z_ÈÚ4IÖõꤻyCk=e´…äŸÃV„î¡1§1ÿh&º…˜Fíš-gþ<øº‚ÏŒ*¼´Œò²UoÊïúa™âP -†o¾‘‚.©Ã J¨ÛE£ÈCi Ï(eÇ6ΚÓÏB1#6¬m,ª`ŽÃ³iK»™~OF 0ÕTaš†d× ¬{^½ ‚šg\øj9V×Iü §[‡¼¥™¡s–O~ô²±Md±Mdy( ‘¡öá5…ýCi$Yöß9S”ÀpæÒ†ÒhHu=Oµu}lšyT»«QW‹?]÷N¹×-£¤¶ìý­çÁ…IK˜ô)Ùrõ˜ß‰Mø^Äô­þa¶Ë¤Áƒ_®Æ¡æZÍþv½MÓ.‰×**Áóc‡ÓÏB1#èÖTÁ pºuøÍj†Ðó¹G@ZT€Øþ0vo¸L, î ò,\õkÖÐþ5ÐSJnM¤zvåõë<"â §Ÿ;„bFЭ ¨‚àtëð›ÕLÛƒ0û {‚‚ð\ƒÀ@s0j”‡s–ò!œ~îŠA·6(ߨ‚Ópºu4à}ÀŠ|§Ÿ;„ò Z€G˜@s–Ä!ÂÑçG°6,ð€8äCÀz‡vq€8äCÆRÀÚ¾M€f‡€Ö` ÀDÄ!`€µ€o‡|èøvqȇ€8vqȇÐêbË/€‘¥àÌJÇ ŠC†ç™ßaü_.Ç!PงzzzLoS§ð%ÂÉ“Â._Æ7v†ŽC؈ïsy†  -g ôöôÁ„„¸°D%7à \ÃÍ›7ÓþÕ?s/ÅöˆDÚâ %Å%Ã_÷›óù·Wšè+³µØèöúºŒí3‡°!þjB °QÄ!‘H* 0ÂïÙ]—áåýÛ«W”N\¤-äÔzÇJÏ¥AqšBdºYLŒ’à˜>`< UÊ&‡ƒÓ…žÓÞf;ì‰{£}:TKžÅrH_¶œ+:øõÐe»^„J¾\ÝØ'>gKRnˆº8Ä£3–oúóLA•Äö½Ês\ŽÃ7R.ŸÈ>GÍCê$¾ëž•––g|£[yn"®W7¶Ï -aLÛ°‡Ãô8«* å÷dØf"ʆïéžÜlÝ‹6vgö¤f»,”`Ù$÷½xZÓ«0w¾’(Z¶?ðÜbq®ål8éÓçï7éMe̲¡Ž>øXäíºž52)TJ.â™`p77l„õOhßß<äÖd7-+»4„ñÑ®ß)+ôŠ‰*›DÇìRêk¬8:Yñ®˜¾õPˆÅdœ§ãõ-É‘›Zÿ ³M™êK dÚ‹¹t|óÍ”PtqmŸ äB»¨ õ“zkŠúÿ”\luøà¹GÈí~"³„kW/èªx6Õ/;@ÂË l®Æ”‡/>´ -/¶‰ôß9]¸‹y¯‡­™qëϧb;âíç‹Áa Ÿ9»Úšn›™0,¾éð¿íu%aƒ¶„‡PŒ8d¥ -UUÕêêê‘TAq(†z‰Ð”iü èÞAù2þž°·E(ßÓÏÚ Dºp'«cYßþLÛEZS’¶¬ç“Á1gþªï’œ½ÚÔe½rŒë{8WãpÅÔhM¤õ˜Â©nJúgYy9­C|cÙ‡ -ãd”¦|ï‹4 ¿¾¨[ÉÊ »¢¥¡[ÿüeYÚˆœ##ú¾©ì€EÎÊؤ½óÄ­uoT¦¶þbm3ÃÄno.u·<­ƒ‰U9hŒ6‰7Ïuš°Èó*óJßuÜØ[âP>š´M™ç¾Óº˜“ìgÚkGð‚„w¹"óýÕ¨üPu¦Ï|rEˆ!ý6âÜlrB0èqȬŠjjñññëuuGVé‡2 ¯—S¾ þ ª°ŸÕÍð{ºÞ7Å`=u¹æ®µ¡yþ zã¹Íóã$9¼äb³€ƒ&óÄÁ}¡¯9llî¶Ã‰±…‡ÎaM¦ -RÞy(·û eGrä%¯Âšæ²ˆr[ZnÇf¬§‹ÃX£œþ¨³4?çAÃLûÄ}´¿Yöôqx΃L³bµéÐV gúÌo°ëê}D(q%À Çá€*.ãp...¤¢´µµ¡ª‚úCÑÕ‹s’I ¿gçÓPãƒÁ7 9Dó5‹ÝX×siŒqHƒøñ+Óg|ÈÁcÿßfì©¿š[I9ŸÉ5z¿“#9­ší©/XÇ¡]õl³íÝç/ÛÁX0gQû¯-ÖÕúyö„, óäúÉ ÄW§å9ÍöèV”’FŠCç-ÖÔc¨…!D§Ì›?E´y®Æ¡––Ö€ˆ_ņ 8õ•«W‡‹Ã¶\Mb6eeêQ›}øÆR'ËSkâ“ÌæˆÚê·Lú^¡&ep›{âö»îþï2üVÉ ÷¢Ðù"Î1°Þ*áçµòrg©«EÎè$ó¹b„ö·ïS&¾€´Æí¡ïöÜŇ&ý¥-—½-s43’~üÓŽÕ^ƒ£Nœé3Ïjp2fŠCVŸ:}î‡P zVîÊ­uZl¨‚9ó#›}éá…ÓÅ;èÏö‡žÆGV¤d›ªjÏ:›Åc/¦i<ò1>¢‘Ž5V"mCènj&ÈNÀ7W„˜Ç©$žÚ? \Ïu‚ÇM沃ѡgËcwgív¦‹C'ÅWÿêè?³g” » S2}ÓáÛ!ê‚SÏB 06âp,ª`ŽÃ³iK»éae5€¯+ñ̨ÂKË(/[õ¦ü®_aš†d× ¬{^½ ‚šgê»k¾éµp!B˜ºY`ÀîÖŸÀEµÃˆÕh£=§n’¿ÿ<8É/賜³O4¤ìå®pË×Øí–ZØÙØ-Œš=o/% â/Ü©ï’˜µd™DõŸŸ rΘ/:âÑ#Òœ!¿=¯ó:'^{õ±[ry(MïÍÔÃèü?ž5u ËM[¨ëá§3 ¦áA¸‡šk5ûGâÓÛ1­YA¼VQ9a¸æᑇœ~îJ€AC¾R˜°p5×®YCû×@O)uˆ>‘Ò÷«¼~}Âß„CÓ6PãJ€AC¾R˜°€9KùN?w%À Ç!”ÏT8 XÑ‚áôs‡PÊ‚‡À#€8äC8úÜáèqx‡|XïØÄ!2–ºq¾M@FÄ!øq‡všLD@ò! ³À.@3ˆC>X€]€f‡|µ.ZÂZØÝQ.PXÛ·Iÿù gs42yùg‡>ÌJÇ Ä!)Þ¨ï ~=Ôm¸lm@<ŠC ‡àjêéé1½Mö™'O€ »X|ˆxì0Ç!•áCbŽï¬4@<Gãh0!ø:qH$¨‰S$L$O{I™ü²¤¸d8w¿9Ÿ{¥‰¾²È›ŒÛ^,Á¼qÔ=üz«¨Ü÷A'B–HŽ¹@Î0TRþ}(ÖÅŒFam£TFÐ@w]†—÷o¯^}P:qñËœìÄ®Ú Ñ!·? -ϲ‹Þ8ªÅ''œŽC^Ò ¡õQnxDQu—œ :ß<*|Ãvz. ŠÓÅá=Ý¢ ŒìUmÍ0A?áãͣїî=ïPO+áʼnûc‡«q¸qãFÊÙFÖlÿìa”‰ŸÖÊ+--ÎøF·ˆÄ8.=Ñú÷~“x³Sšr<½–õðqHe¨¶#[Ö6ŒA·¶±ª -P4À¸M×ó„½.uvYGÖOFt·´"de„xºÖÇ×âðëk¦ëÅ13_Á,—E°ž/êEgO®¶é¯z|Óµ½h¥„Ô•afô‚!v½¾û¤S®-Ü1Ë™'×±ŒîÆᆰþE¾L¦©ªªZ]]MY^VviÓ®ßkš&Íš&&ªl³KE¨¯±âêdÅ»>Ñ~¾†o¾™Š.®í”\h´^‘ØÈTòð?.«º€~¿pðk(ÖŌذ¶Ñ«‚RqÛýDf × -®^ÐUñlª_v„¦LËà_/@÷Ê—Q°·E(ßÓÏÚ D6CWf¶C2ìÆ!èqÅŒ [Û˜TA­ÌþD«dò_dŠc¦S–)«z¡ÓþÓœè¤âªx8¡³¾qê‰ßS5`Lq¸Ý[â`NäÅOA ³“rmfŒÃxI…ÓqÈCš!Ó÷ñù­ëÞºúÛ…f¡ÎHxnuiPœ&‡ MÕ0ótÝ6é’¥i€8äk¸‡:Ú:”°Ë8œ‹‹ IÁÚÚÚ_Q‡Áp8{qhr\‹Y¯0誽»6ÇÙþl­¬öÑ4—Epæ½F]2Œ)™·±œ Ì—‡Û±ëÇ!Ë£Cfp²ÛF„bmP̺µIÔß3Ó>qío–sr¤zé|j|P"ã¦!‡h¾f±ëz.1»žEìY›–¼Zûô§ÕîçüÄåük‚œŽCÒÌ ðŠ-öþ/ž¡kt(ÓqÈ×p5µ´´Î6Ü•+Zë´Ý; såêÕáDÜö«I̦¬L=j³ßXêdyjM|’Ù1B[Ýã–Iß+Ô¤ìnsOÜ~×Ýÿ½S†ß*ã^:_Ä9Ö[%ü¼VžbšLÝ°Œ%/œ.Ž`ì,e±MûHåÌjp2¦Cñ¦2W‹œÑIæsÅíoß#¦Ln/cytÈpô¹C’µA1#èÖ6&U0Ça~d³/Ó¯×A¯ö‡žÆGV¤d›ªjÏ:›Åc/¦i<ò1>¢‘Ž5V¢lCl½èX¼%!`•tÇý(³P©ØÓŽsÆ>8™WátòfúšïÞÿ¤ºt¶¤¡õïXóP|LšÖ‘= \ŽCMM²Zû… §ö™Àh®ÉÇ«¸6\Zï'xµË*Ì45˜*Ô×X™ˆŠ»ôF:¶âj÷Àµ•nÇ%Â2œÔÅ{êrœìʈÐgÜ‹TRGUÐ6Û—Þ²6MbÝ¡J_²g”DzŒ›±Ø¦c¤rìÝMèãP -†o¾‘‚.©Ã J¨ÛE£ÈCiX2œ~amcQsžM[ÚÍôë1j_Wâ™Q…—–Q^¶êMù]¿Â4 É®X÷¼zA5ϸðÕrˆ¾Æ«ÇüNÜhÂ÷"¦oõ³]& ´`ròfzߢü2|&ö -ÎÙâd»à_#¦8ÜìðBXVr±ùî™ š –n7›š›Û$åå×ÄbCÔŇým®Æ¡æZÍþQÕôë³Ó.‰×**Áóc‡ÓÏB1#èÖTÁ p<f<Wãpíš5´Q¤LmMnM¤ô£À*¯_";œ~îŠA·6  -^€Óq4à}Àœ¥|§Ÿ;„bFЭ Ê7ªà4œŽC ïV´àC8ýÜ!”2!Z€G˜@s–Ä!ÂÑçG°6g­hp‡|XïÀ.`ù_Ä!¬ À.@3ˆCÀk° Ð `"âŒ3 ‡t– ˆCÄ!€}yЂÍÝ(3Ì€8ð`V0‘â8 €Cp5õôô˜Þ¦NáK„“'3„],¾D pŽÆáøÎJœÀ!¾N‰ê™G‘0‘<…!e"Ã’â’qñð+“á?Þ8ê~½UTîû !l­5¾ÆÊÔñ7_´ÀäÔõ“ÒªŠ1o„oúóLA•Äö½úÊì,"ˆo¾æ½+J*ê j)âq€¾Å0¿F/‘èz~Üx×9åØ<›Œ]6·?Ó¶–ÖÀ”¤i=?j`Šy#½!ã±e¬jš$•MŽïw庵 a׳Hƒ]¹ÿõ„gì;]è9Wêçí{{ÆÊìœfÖf6o¯•Èé8„`£ˆÃÑ:IgUÈNsܼø_âÈË;³¤ûÍùüÛ+M†Ö'Xûïàjnܸ‘"=²f©3ÙS'ñX÷¬´´”KqØú÷~“x³Sšrì`xz_g[¯·ÇÓúb¯nüó?'u æͺž52)TJ.aËMºžÇï²(ßrºÀn¦0¡ùÚþ­^MÈsy6*ŸŠ-võ¸^Àê}®zP•zCÞ+Ê[UJZu‰ªØÛœ]FqïûàFØó糈æ‘ãÐYÿøñË‘>±&lÅ!ŒÐRá²>§%ÏÎÎ܆kq8L€Añ:I׿1{ý[…úÚ=³c–¡¿ÓÄ!ßÁÝ8Ü°Ö?¡}ÿÂ.¤¿ªªªÕÕÕ”ùíáee—FXèuð¹¤;/Z3ãÖŸOÅvÄ'Úσúë/„LÐ#9iÎ÷ïî¼BO[Ú]qu²â]1}ë¡äbáºß’ÚW5M“fM“R­Ãñ¤§&ÑÈ$±¿0ßzÕÉaãÐ`pºÐî£Ã—Ötm¸âx¹ßB¦^ù÷“€ü<ÀD”¶«¥v;«PÛmþ6€ÁQ­í*—*k[ûMãÑ»UÀÈįWãpE ´åÎÈ˺,PS‹_¯«KUtYy9{q¸-xAB»\‘ùþjT~¨ºHÛËf˜ãëåšKÝwÄüù1À¡Â8¥)ßû"ͯ/*‡b¥àÊŽC´Ýsг~² ó{ì’þ6!sºM©ùçÁ“Ó¨ -¹þ6Üwúö/·ú¯–l|^3y‹ù*yÑÑS“d´ë¬jê…èÅ”²;«Ãô-+×eŸÝû‡…a¶Jü…„ÿIÃâøù¦‹þwÖ)6å!}þ¿dme%ò'´y$ozв=)â’ŒWaž‰ðg#ß*µýþ»ïÄFõbÏœö˜.ñMe.FuëÜÜÖÉ×]øù䃕1¨ö`¯WŒß¢ïÍi³'ã;ñ?iŽþôc‚ãq!À ÇᘜÖ[Ÿeéö1<Ëø–cMHÞAÕ^&o‘b²|C‘µ5Î »Ažä-–§u0±*w1x¡ë}AAQ\ÖS—kîZši|Ñ&Xáx–åôž‡!{£¾OÄì¼r€É‘ºïXéyÀ2Mçˆ:>Ĥ…@¯ÕW€«q¨K+¢ššú“ª*5uu’‚utu¨º†aå¸ËìÅ¡ÑI»‚ôU°ÛV&)Ž©ðûÎ&h£œŒuòpbó5‹ÝX×lç,SÇç²*$_"ö~Cn ‚8äm÷ì7[?]>l’ㄾ³´÷í‡Ý1µót7¯ùIs“î²)"¬Ü ý÷-¶¯vççS®hHúé‡í-nYŽÅÖ¾m^°;§Àâ°³*h»Õõå's-ÿ´µ(˜{áäjYƲ>¡m³Ãfgr¯)ò³çVÛj-ì/Á DšÊ÷n hÛ—_`öaÿà8l»ï²ÕêJVŠèwŽh£»¾qLßâó_¶›\>¹œ?eª,È‘ß|<àtB 0èq8&'Á¿+°°à*lnC‚™7)ŽÜ&?9Ûè¼eŸù9÷ ´%ƒ‡à?ÝɉN*®úˆ‡:맞ø=Q霥GûaìÞ¦`‹ Ýôøõ"·19‘Ô:Œ3ËË\¯ÀËêüWãPG[‡r£v‡sqq!)X[[ûË‚Ø0‡&‘ÆIiÄ[VÆ)L¹Hy¿ïb‚6ˆÃ]XW¬sò¸>è3‡¢»&ÑØ#àpn [’6ïv’â°Ùq³ë8$Ñ×\}ãú7/Ÿ-¬R?z6êÿd˜1aø·g÷ìL?°êUìƒM¹çPbŠ.»_%'×tS ˜¼-ë×#‹oeÜ;´j¶§¾`ŠÃÖ}ùgÍ>Øorx»óT‘×€Ÿ¼ $(º -Xº½¹µëŠY. 0ŠñîÊ -$kŠh¼#"ºYB÷FD!5pÓuM@`¸H«ëeÕJ -,]5Ôâ¢(3ç=sÎ0 ðŒxlæÌ÷ó*zž˜Çß—ß™sžÇÅEýßMVVæ2ÍEã½¥²òònã°åÜßÍÙ-és‚OExTºñÏ… Jý2?tcO–nj‰?øþ­•ów9&Kýž7U4ÕŸ»=l³ƒŒ0ÿøs¿>ë-ïÄïÇD9 ¬ý×™W‚ÿ7Û÷­ªç£’æžYµüó~ó¸8¼_¿Í×+þèý6ÏØÚÐ3‹LìÄ#/çŦսµçÓÀQ]ç“òd©Ï^»Œö“¥ì%oÌÛ'2~ÐòÊÖ&üîyã7g5/¥dQ³Ñÿo­ó?ˆzÕòî¹W%ÜñþT•šºÆáÒÁKg¯úfÂâ5>ÃN&mþìÞ9{W©]7+°è™€˜å¯òÂËã”.›³ò«1þA¯ ¯Ÿ;vzà´Ï êüU°'KÓ†%žfÈ'KIŒ<ûPI ²y{æí’:5b2n•Ïæ—·m{)u^ÇÚ”…¦³a>ñ3³³Toùʯï þ³l^'K›¿Šð~oRúι¶Šº½Ëü’è„Cf·ÊÂæÅ7qøhÏfÞÊ,ZÚ¥"5£鄧‡ÎÎÊÙªšÈ"îœ Õ~Áµòñ*+ºCºå¼4,²Ê|Ò‹Ö'K/ÆìT2ÝÀ•ýWe~ÙjnõkñõÿÔmP^Js$-&éð÷óü†OØ>ÅÒqȧ7Ë·nLÜûïKw¨!öolÍSd‡.ÎoÕ²´ŠÚ;­æ“vØpéýˆô/¾ýñnÿ_ýæO+>\>}ø£©–së=ß>Ý~)ÒÏ'–ÍZX~kÐËìßùúpce°i\¤cþ|À³?æß›—Ÿòëòëûf½÷ lßîy¶ï‡aÏÿX™ý·¼ãWî[ØIDGùŽ73ºwyךe©umæÓ -wL5¿}lÛ_ó¾¸ÐÐÚȨ ’%Ë~-ÛœÙé«à.¥iŽÜŸõÇ_ð¥4$¦E>v%¡ï|±lnꌬOå‰uæOK|?ž‘ýñø}ïv¨-LYP4žI ’5[ZöÚëemr÷ògªKiÌ~ô×5o ý:øõÅßõ·4aŸ†é ïf¥¸ÞýlCDfµ|°…ÍÄW¯–œZý3ýóÑwþoÓéßÃ_`kû±KEjA9Ò O5œUWU«ßD`µÿˆHWTÁͳн{ß&ùÊþwwÞÂÑO`Ù“§»Ñ‚ŠÞ›äú¨«ƒtïqH`äq¨W•¤¥:>0Æâo¹o?§'sÖp=Õ8trtlÿ;•Ù«­ÙË­iö< -u¤ªJg&1è"yCyä›q[>]ÿ;s}¸ö®íZ^°ß^Çí;ß~žü^Å_ßqH`äq¨/•„þéxtèæSÆÓ6$†: Æe2ºk–ïqH`äqHòÔPI@[ØÑôiÍRž @Ÿv´à â°ý/⇈Cx⇠‡Ð ”6Ðæ è#Ä¡áÄh sq(@Ük!Òò*AW 0Ä!âP€˜×BÛ,ä0‰ˆÒf˜¸ÿ¿¨k{àzêÌÄ¡iÆ¡råÑGê—ˆC¬0¢#ÔqÈÄ÷òßc΀0 H‡Ze!E‡Ov…¦´yxxtù4·°3-R.qI*8„ÒÆ7Í8$BÂ8Äœ½€8 ^»C¦´‘£Ç(m4­à–EaÇ¢• [²Ë[öµ´µ^ÝŸwb²§ÍÕ'ä·¦®Ž—]WP#\W¾¿äUK]Þmâiàµ;ÔË9ÓU—YÔé¯ë3#—¬­½92õPûVMØHN¯ ˆï—6wwwöñ•sûpK;«wÃ+**êkië\•šÏ®Ÿ÷Áó ;­¯î ~§vÕî˜ß˜õéôßÝ¡þÍ™®H²­Ó¿AêÄ¡ñÝ’#-JÛ wJµÍj»æ£]MM »ë¨¸øp¥M~ëXzlbA][?ó ·DO©[ÐaSèÔùìÏì—†e:ÐÆ'.Þ×êò¿õ¶É;çÙš´ý°Ë?ôÚÆ]ãt{&¾ñÝêÔœiýþ›Vl;Ý:x¤ÝË×_ŒÎ I›»zÀ˜þu&SÇß«¼`½zçfg‹Û•©1Wþ·Mnôì£ÖJNƬì4‹l©kûbVî¾Ð¬ åF6na1Kþ0Ô¸k¾ñ×ß8>wü_ߘþ_rZÈ ¦ú°-™ÁB -ßÝ!I1"/m3زվ žr³Ÿñbqrròt‰„º¸¤¤ÛÒ&o(~'0wr‚4`œ©¢±þš±­EuÇ8d S§"Õt:Ä'Å/y^yòIIøkÛBv…æ¥M4'þþ -ßÝ¡.Í™›Ÿ/ -.˜³=q¦ÕíâðÙ›ãóBÒ}’ý?Yšã—¸'²8r×ÊëkWzoqú໌ÀÕm[rCÆ´vjõ÷n4(¬†2¦î×âV»gÍø]âðOëǧä¿;dŸÿ¢š˜¼XûA½¼ð B -ßÝ!I1"/mæ(v±Øþ|uµØÞžÊMâÆ=€ˆ¦Jd¥Ý–¶¦3¡> ž9™«ö½UÕÉ×[îÞþšEýô¯ ¹¹ˆC¾»C›3‰³s3§ Ñ·*ßÌ Û’6_ºdÇ¢´ ­ÊÁéK²–fÏ]ò­¥­™1ó ~nÿIüËt§8”ÿt27NZP}G.Rܽò£uêçÛ:Ì:Š›x/Ìßþ*u"È'}Iþ6œ5ÕeˆCâ»;$)Fä¥ÍÍÕ}ûˆ*•ÉBCC™¡\]]n“NQ2™¬ç8œ•“9]#ƒ½¥‹ó3èãAÞéŽÃ{·ø­•²ÓÏƤí‡Ýþ¡?l܉“¥ŸÝ¡®Í™Ù¹;:ÇaVHÚ[í³—e䙳ãá¼¢ºÌ¢»ßÄz¯2[¿ã/CŒ¸qþžñ¨8ìòÃè*Ä¡ñÝ’#òÒæââ¢~?EVVæ2ÍEã%¥²òòžN–†æNI”ú5U4_»a4ÂâR”ïf‡Œl–ô9Á§¢°¨él˜OüÌì,áܤMg×ùÇÙ%fÎy5wAØÅå»c_Â¥4ŸÝ¡.Í™›ÎÞžøºÕí’ðÙ±ìÉÒNq˜÷þ­•ów9&Kýž7U4ÕŸ»=l³ƒZ:΢æ¯"¼ß›”¾s®­¢nï2¿$:áP†ƒñ×+¼ßsØžã=’ý7ˆC½‚8 ¾»C’b¤EisvV¦QÄI£Ú/Ãg”WVôx)ÍÑ­ ëåýLÌìÆÅHÌ.HÃ"«Ì'½h}²ôbÌ~¶)Ϥ„GÉš-­F{mŠõ²î'¿õEÒªËoТ_M[þÁ²©Cp£¿Ý¡NÍå¥4ËÓO·ZŒO¼qüÛõ9 R:ÅáތߵI‹I:ü=Å|_†OØ>ÅRÔiÉëó7DdVË[ØL|õjÉ©ÕŸe8˜ßû.gÅ»{®˜X‰#’6M5ùâP ˆï—6g'gÕµöê·–¨öÑØ_+*à–j¾ñÝêÔœQÜÿù¾ñàÆtóW ›,r‚Ÿ{«è€ÞC -ßÝ!I1"/mNŽŽ ¹k﹋ðiöìu¤ª -qÈ7¾»Cš3M_n ‰>Ýbb¤è?ÖkÝ:±™Qwÿ âP€øîIŠyi#ùŠ‡|ã»;Äœ݇8 =Z³t„­Y -ÀÄ¡aƒ'ЖíhÀÄ¡!A[Øïq(@ØÙ´…9€8„^ ´¶0g@!¡(m -ÌÐGˆC‰/Ðæ âP€¸×BÛ‹i¸»£QÚ âq(@Ê+Kë@¥ÍPqÿÿ­õ…¥Ô+¯`΀@ H‡ê}V{ýHµÿû§\ڰˆŽÐŒÃWTw*ÿØóï¹ß`΀0 H³;Ô*IâðÉ®0”6.Ÿæv¦EÊ%.©C‡PÚø¦ŽCÍœãôð{Š¬;Äœ½€8 ^»C¦´‘£Ç(m4­àž ;­\Ø’]Þ²° °¯¥­õêþ¼“}æô½ïO¿;¤iÓ’ìeØ‚ŽÅww¨s¦«F‚= Iþ è*Ä¡ñÝ’#-JÛ wJµÍÁçdggWSSÃîz *.>Üãö¿ÇÒc êÚú™˜OX¸%zJÝ‚®¦ŽÈgf¿Ü0lÌ(Ó6>qñ¾¶ì\EåÒÀww¨SsF¹ýïŠm§[´{ùúñ‹Ñ¹!isWÓ¿Îdêø{•¬WïÜìlq»25æãÊÿ¶ÉžýcÔZÉɘ•gum_ÌÊÝš´ÜÈÆ-,fɆw˜TôOG#r<³Rœ‡QÍ_Fû}4y[Æeè[Më.Ä¡ñÝ’#òÒ6ƒ-[í›à)7û/'''O—H¸¡‹KJº-mò†âws''HÆ™*ë¯ÛZT/èºÿø#“q¨ïîP—æÌÍÏÌÙž8ÓêvqøìÍñy!i‰>ÉþŸ,ÍñK ÜY¹kåõ5‹+½·Æ8}ð]Fàê¶-¹!cZ;MŽ -«áƒŒ©ûõŸø‡ÕÅîY3þA‡Cÿ|<"0kVfÊ´¡-gÖ$ý!}Ûëц: q(@|w‡$ň¼´I˜£ØqÄbûóÕÕb{{f(7‰÷"š*‘•v[ښ΄ú$xædJ¬Ú7pU‡âP|w‡:6ggçfN*¢oU¾™¶3$m¾tÉŽEiA[•ƒÓ—d-Íž»ä[K[3&»è?·ÿ$þeºÓ„‘ÿt27NZP}G.Rܽò£uêçÛ:Ì:ål<¹j~ÆÌŒT‡ºµþR׌´ƺ q(@|w‡$ň¼´¹¹º±oQ¥2Yhh(3”«««fLËd²žãpVNæt8 ö–.ÎÏp y§# ñÝêÚœ™»£sf…¤½Õþ1{YvðGž9;Î+ªË„¹ûM¬÷*³õ;þâ0Ĉçïãy´ÓkÒ%‰.ËlOsÕt âP€øîIŠyisqqQ?YY™Ë4w””ÊÊË{:Y˜;%Qê?ÖTÑ|í†Ñ‹KQ¾›2²=ZÒ矊>À¦¦³a>ñ3³³<4ÏT!5ðÝêÒœ¹ypQpáì퉯[Ý. ŸËž,í‡yïßZ9—c²ÔïySESý¹ÛÃ&<;¨¥ã,jþ*Âû½Ié;çÚ*êö.óK¢e8½Âû=‡í9Þ#ÛgZó—ëâžÖxÙOyÎi¨Ë‡ÄwwHRŒ´(mÎÎÊÃT#Š¸3iTûeøŒòÊŠ/¥9ºuCba½¼Ÿ‰™ý¸‰ÙiXd•ù¤­O–^ŒÙϦ¢ñLJx”¬ÙÒj´×¦X/ëû_¯™ÿ—c ·n5™2Ü1!gƒý ¾¡€ïîP§æŒòRšåé§[-FŠ'Þ8þíúœ)âpoÆïZ¤Å$þžb¾/çFl Ÿb)ê4‹äõù"2«åƒ-l&¾zµäÔêÏ2Ìï}—³âÝ=WL¬ÄI›¦aâ¯åë˜7eãþ‘ä4i¨Ó‡ÄwwHRŒÈK›³“³êZ{õ[KOžùµ¢òn©æßÝ¡NÍÅýŸïhL7•°É"!'ø¹'°Šè=Ä¡ñÝ’#òÒæäèøpš»öž»ŸfÏ®QGªª‡|ã»;Ô©9ÓôåÆèÓ-&FŠþc½Ö­ó›¡k -q(H|w‡$ň¼´‘|EˆC¾ñÝb΀îC -­Y -:BÖ,à âP€°ÁhKv´à âP€‡ -ìw€8 ìlÚÂœ@B/PÚ@[˜3 ‡Ð ”6Ðæ è#Ä¡áÄh sq(@ª×¢ R»Ã^w¢PÚ âq(@Ê×BÛ,ä¼î„Òf˜Úÿÿ–i¨ æ âP€:Ä!Óó1¿'ùHýqˆFt„Å!æ ðq(@ãP«,¤ˆâðÉ®0”6.Ÿæv¦EÊ%.©C‡PÚøÆkb΀^@ -¯Ý!SÚHŠÑc”6šVp«Å±cÑÊ…-Ùå- -ûZÚZ¯îÏ;1ÙÇÓfóÅO'Vl.ÿ/ÕŸê7zÖ꘠ß>ƒœùŽCý›3]u˜E @ˆCâ»;$)Fä¥ÍÝÝ]CGy°j UvigõnxEEE}-mvúU4_:yÅbâx+ãæ/æESñ{Þ;°Oà ÀS‹C½™3]a¿h¡C -ßÝ!I1Ò¢´Íp§TÛ<\RÜÎή¦¦†Ýõ@T\|¸Çí¥Ç&Ôµõ31Ÿ°pKô”º\Í¢¸â•:"?rùÁÚÚË ÃÆŒ2hãïk«š«ô­ŠùþÏKú­9ñ7W øŽCš3ÊíWl;Ý:x¤ÝË×_ŒÞ—1ñÁãÏ" Ä¡ñÝ’#òÒ6ƒ-[í›à)7û/'''O—H¸¡‹KJº-mò†âws''HÆ™*ë¯ÛZTw,dìÏòþ¹þÁŸ.Y|ê­ïOµ4ø³¥¼Ç¡Í™›Ÿ/ -.˜³=q¦ÕíâðÙ›ãÿùÁµ=‹@8‡ÄwwHRŒÈK›„9ŠG,¶?_]-¶·g†r“¸q ¢©Yi·¥­éL¨O‚gN¦Äª=ÐÔ5«—BF7Wo YóÃ[ÛcܬŒ{ún¾ãPÇæLâìÜÌiCEô­ŠÀ7sÂv.Ûüx³q(@|w‡$ň¼´¹¹º±oQ¥2Yhh(3”«««æ¶Ä2™¬ç8œ•“9]£{Kçg8Ðǃ¼Ó»+dþ{pMÈñ–Ä Lo÷á;umÎÌÎÝÑ)cÀ ˆï—6u ÉÊÊ\¦¹h¼£¤TV^ÞÓÉÒ°ÀÜ)‰Rÿ±¦Šæk7ŒFX\ŠòÝì‘íÑ’>'øTô¶x5 󉟙å1\ÙÊ:þÑâyhZä«–h 9|Ç¡.Í™›ÎÞžøºÕí’ðÙ±ìÉÒ5ZÏ"Ä¡ñÝ’#-J›³³ò0Õˆ"îLÕ~>£¼²¢ÇKiŽnÝXX/ïgbf¿0.FbvAYe>éEë“¥cö³…LÑx&%WåÁÜþÜÒÎêÝðŠŠŠú‡÷1WÜ¿ÝldùŒ‰ˆ ÆÌyaµ±ù_Ô§G}‡8 ¾»C’Ó"g¸·?UÕv?ÌG;;»ššv×Qqñá·ÿ=–›XP×ÖÏÄ|ÂÂ-ÑSêpÉGq˜:"?rùÁÚÚË ÃÆŒ2hãïk«ž«òŸþ“´™Ú’6v ñ÷„q(@|w‡$F‡3بkßOy»Çx±899yºD ]\RÒmÊŠß Ìœ gªh¬¿flkQÝ1ÙŽ°swȸÿýîÈðܯëZ'„gÆù>7€ð{ B…8 ¾»C’#C s;ŽXl¾ºZloÏ å&qã€y~%²Ònã°éL¨O‚gN¦Äª}Wuòõ‡ÜcÞ«Ý·"´Èm{šç¼y`؇ÄwwH`äqèæêÆ>ªT& e†ruu}¸M:EÉd²žãpVNæt8 ö–.ÎÏp y§÷‡ÌÃÜù"hî'¡yi¿ïòW`P‡ÄwwH`äqèââ¢^2@VVæ2ÍEã]H¥²òòžN–†æNI”ú5U4_»a4ÂâR”ïf‡Œl–ô9Á§¢°Øt6Ì'~fv–Çp¶”7_®m±þŸáDò+¢“F¥îZükœ.0lˆCâ»;$ 0-âÐÙYy˜jDQûjqª[7å•=^Jstë†ÄÂzy?3û…q1³ Ò°È*óI/ZŸ,½³ŸCEã™”ð(Y³¥Õh¯M±^Ãö­ Ϭ¹ßϨíùKóÖ®ôofÔÝ€a@ -ßÝ!I€‘Ç¡³“³êY¨ßŽ¤ÚGc­¨<‚Ûð€oˆCâ»;$ 0ò8trt|8÷DhîÆ š=#K©ªB߇ÄwwH`äqHò!€oˆCÒ£5KtâP€°Á€¶‡„8ÐâP€úòZ À0!¡ˆC0ˆCèâ âP€p²@[ˆCj-´½šFyO=â âP€Ø×âq®,¥pe)*Ä¡uŒCõ½½~¤ž~bUЈCÒˆC­²"‰Ã'»* ‡]>Í-N‹”Ë¢R‡ -!€oˆCâµ;dâ$À#iZA©ÖŠcÆ¢ÕËÇö5[¯îÏ;1ÙÇÓFsSCº¥:Ùþ§CÓ -±-0Ä¡ñÝ’yº»»³¯Üãö¿ÇÒc êÚú™˜OX¸%zJÝ.ù(.SGäG.?X[{¹aؘQ¦m|ââ}mû1a˜²4kٟܺ.Îè“` ‡ÄwwH`äq8ƒºö•D‹“““§K$ÜÐÅ%%ÝÆ¡¼¡øÀÜÉ Ò€q¦ŠÆúkƶÕãºNÝ!ÝüuÒRé˜\¯¼Ý¹k…8 ¾»C’#C s;ŽXl¾ºZloÏ å&qã@DS%²Ònã°éL¨O‚gN¦ÄÊHõuòu‡L&/L¹%ÅÇö^ד¨` ‡ÄwwH`äqèæêƾåH•Êd¡¡¡ÌP®®®šÏJ&“õ‡³r2§kÄa°·tq~†}<È;ýQqx¿>sÁŸ?½= ¿¥¸wýêËqÓ6¤¿ÿšåãÝ© 8 ¾»C’#Cõs•••¹LsÑxR©¬¼¼§“¥a¹S¥þcMÍ×n°¸å»Ù!#Û£%}Nð©èl6 󉟙å1ܸÃá¸Ä âP€øîIL‹8tvV¦QÄ}¥ÚoÝ`”WVôx)ÍÑ­ ëåýLÌìÆÅHÌ.HÃ"«Ì'½h}²ôbÌ~6êgR£dÍ–V£½6ÅzY·ÏUÄ!´C -ßÝ!I€‘Ç¡³“³êþ õÛ‘Ï›ùµ¢ònþ!ˆïî$ÀÈãÐÉÑñá4w¿wãÍž‘¥ŽTU!€oˆCâ»;$ 0ò8$ùŠ‡À7Ä¡éÑš¥:q(@Øà @[ˆCBh q(@}y-‡`˜‡Ð Ä!Ä!ôq†q(@8Y - -Ä¡q¯Åí·µ:jȺ!â âP€˜×BÛ,ä0‰ˆ8Ä8 u2ñÆü†ä#wàÓC¬J:q(@šÝ¡V‰H‡OvU&=<<º|š[ œ)—E¥B߇ÄkwÈÄ!I€=FÒ´‚[=€‹V.†Ê.‰ZXPØ×8l½º?ïÄdO›ìOy„^>ÊÔhÀ³~ññ^#Mú4:âP€øîIŒ<ÝÝÝÙt”«Qe—Wï XTTÔ×8ì´¯!¶9€.‡ÄwwH`ZÄá wJµ5ÆÃ5ÅíììjjjØ2DÅŇ{Üþ÷XzlbA][?ó ·DO©[ÀEÅe^êˆüÈåkk/7 3Êt O\¼ïೈCèq(@|w‡$F‡3بkß8Q¹AÔx±899yºD ]\RÒmÊŠß Ìœ gªh¬¿flkQÝ1ÙÌëÒÿ)âΰ!ró—üÖ®ò7èñx!A -ßÝ!I€‘Ç¡„9ŠG,¶?_]-¶·g†r“¸q ¢©Yi·qØt&Ô'Á3'Sbe¤úŒ:ùzˆCŽ›Í&ÃÍåW>_õöΗÒ? z“Àà!ˆïî$ÀÈãÐÍÕ}Ë‘*•ÉBCC™¡\]]5wa”Éd=ÇᬜÌéqì-]œŸá@òNt¶£ï|4774ïãßã¬)€ÁC -ßÝ!I€‘Ç¡‹‹‹ú\¥¬¬Ìeš‹Æ»Jeåå=, Ì’(õkªh¾vÃh„Å¥(ßÍÙ-és‚OE`#°él˜OüÌì,áÆLoØÚpKa9ÌÔX~«rƒ’mÚ®EcžÀ­• ß‡ÄwwH`ZÄ¡³³ò0Õˆ"îì+Õ~룼²¢ÇKiŽnÝXX/ïgbf¿0.FbvAYe>éEë“¥cö³q¨h<“%k¶´íµ)úµ¯Y¼½NÔOqßÔÞoÝÚ7Ç›u7: Ä¡ñÝ’y:;9«îÏP¿IµÆþZQy·á߇ÄwwH`äqèäèøpš»_ƒ»qƒfÏÈRGªª‡À7Ä¡ñÝ’y’|EˆCàâP€ôhÍR8 lð -Ä¡!´…8 ¾¼ˆC0LˆCèâ âq€8 ‡â€BPˆC -q@!(Ä!…8 ‡â€z‚q TˆCÄ!â€BPˆC -q@!(Ä!…8 :Åá/ýd~1ª8ü¥ŸÀ/ìÿu‡‰ -endstream -endobj -147 0 obj -<>>> -stream -xœ+T0Ð3T0A(œË¥d®^ÌU¨`bjh¢gb7161Ô³4«4CC3cˆb —|®@ \'ƒ -endstream -endobj -149 0 obj -<> -stream -xÚÍYßoã¸~ï_¡Ýì¢ -Z+â‘Ô£b3¶®¶ä‹äAÓ‡¢Å] tq½¶hÿýÎpH‰²äÄô¡XdMQ93œùæ2ù9aIÿX¢y¢U™™2ùÓ·ä±OžXRfRɤÿ!a:ãe²ÒYÁ’þÏ¿O¿´ëÓÁ6}Õ×ms¿âE™Šöîþýw‰P:%L‰ãVÕó=+Óõνzx’ã”"ϸðÃÞxÎá/‡?…mûäç$+”NþÖg,&ù–H!²Ò„ç¿%]ò=ŽUR)§ µ4h“¬S™rJ=<}Éæ'ëÔ+ü¼Ð‘~BÊ ;@$U[”ülŸQ=“¾å¹"Eå½2iÛî» ¥ŸíÒXBÁd…›Lxõ‹,††AE&¥×^Þ¯O9ü/ÒO÷Ú=³´pÏã—£áÄhßÌöûºëIÄ»êØŸœ½­ÿ*ÚÁ•0™`2ƒ_ÇB±‰P"Š9¡8¥"¡xôå(‡–ÿ´îîW"Wi¿³Ô ™ŽûjmÑi¨ó©}ƆN=—ƒå eá§ûêÖÌæk²RzÚöþäœÂß03N:ŸO”a3šäa€‡äy¦i´ÜÙ90Ø〰E3xÑ™ »RDðÂýHŚΘ˜ûaÇ `- ¸ó E΀í¯sÙ¸Ã=úàKÕW nñ¹ê–@I³Ìè”$aFkÌãà©âEXˆz@9vkÔrdnª;÷ÿ×¹G‚6y˜‘ÏU(²Ä-úÈ¥—>‚ÚRû e`BÊtB}vÿÿfòÑo\\…‚’]zÞÕoÝZ;‚\܃Rø¤ëŸOë¯dä"µUøþÅ'Á{™§Œ­˜†ìKÙ¸,ü®UˆP¬Å ^ìä.!œ1 -$¢ɽÿ釿þ¸˜CLp4†MÌÅ&90€Õ¾ÝÖk@ä¹¥J”’¡"~w`N„¥¹„RX˜ôø—«ê_,áq÷Ú-‹(ò­ ƒ­W²Ì}<À*.{Ò;TÅ>·{í©÷Cú”¬¸V™dq@"ã÷ZjŸ‘»cÛtõãÞu†Œ,Mz¨jÀ¶º©›-u €†—MÛ;ür”⡱nw~fýJk<ÚþlmCÁ“:R­0:åvl˜»rý^´Á^vÝòõ;p°ÎÙV¿ói¸ÀÈK×í鸧oÊrOæùD<#)dˆé‚G]8AO×·¤ì†žë†~+×Ù#ñÞª_БëbÌüì]ÝΔ!gâÔ•àh×õ|jU Õ½eæ5Í[~¨zÚ-E”kØ„;“näNW£øÀ€¯|¬„.µžO+2ôW 1iTÆBýûŸÿZ0&Ë仫ؔ´Ú<%@¬LU1ëù2É2l’t1ÁÁÁêÐx¥–AA󌕣B”¼É8ó Öá -ËøÇ¿/)Øpþ ãÕð«n0WìÚu)“•2©Èp“ø"r_°énÁêrÄÛ_mÌÒ9LUܜϮ‘¨´úh–`I±Wc]ô>(À‘uüõ›Ž2M°‰u‹¹@9&™"ªÂ–¬LÕÜj;_Ëœçë‚c‹‘ÎÏéçE (½£بH­SS/1z™y‹’•Šô‚›à˜š j5Ò”•UæP$Ä~ºh`>¢8âlB³rüngæjLz‚Ä%sFÅV>SºœËÀ eô`1]¸³û%ôx¬Ð>~92–aiÒ‚þñœkD”tW½X’µj^ƒ>˜î\_È­ÄEJ¨ÄcP8F´³ˆ‹è€ŸXM·‡ãÞ¼R¿c?þ•£Gúã6UÅž;)™~Ú÷»ö´ÝMN#tz°‡öùur2áÊ;ÛU#¾ƒbåÏc?ò“D„†<ê‰6l¯µG:O×»ªÙ’pàþî¯÷{{ê|ß0ëRу§eTõ°+UÏÿ¶è†¯o¤(É>¤W†€œúQ;0Õ+Yªi%€Wdþj¿÷/'Û1†3'U'xŒÄÁñFÀ£;áPÌ#,4ºêàZ|ÜøÜCŽmM³q -@÷yå{ùîéó]¾çÅ¢akMtÏ>öÔQ=¶§ ýÈ Ožù×ygý™Å¶uL›}{qšòDžðÇ~ çg€¹ì¦ÜzkR|¸æy7¥V}‘Z#W’ãafTa‹,u¼áŸüÉ‹«QœQÜîA£³ë6†,»·cºb Züss#&è[”äð{"f'{‹¡¢Œ-Dæ°d@ÝcÛ…S¸·\ðÉÔ¤Ë_å ˜ -;#¯XAÙÌ'ƒsÀjï»Æ1XŽ y®”BCæw¬öjªˆx~4lü<ž©àÌ!£ÌÉÎŒšÕ&¸¢îÈ´G_"Ð ~ùŽ­8Ç:äF[ƒ9ÀU¤ÜÙ -®ÚªÙ¼‡YYeçÆ#¶ÈT‚_3•Öã¹ÈuS™q±¨Œã!Essev•g|8š©^—Nf„šŸÌÀä´(û£¥U¢}×_(Q±ªV,ÆÒk«¶ 'ûãê@ýê2çÓî„*úî/|¹\äéç–êòIšÎDD [±°A) [ ´ÆÙô.P&1ÎwÕ ¹ óó&¦ü^ ü]ƒ+<_wã\á ï«ÍKMǑЉI‰¤ø¾0³wA÷Uã¤Å^PÖ>Ÿëîrtû\oëÆã<ûÔÐÍ ÉèPh¼rWÍ{AÍx>ÖËWÉŒühÔgÇ´â vÜÒöù¹î{ÛÜØÚ`‰uc`ƒ•w,B£šw‚ÛŒE’ÂòÚÑ"À¿%€™œy9Jâ±Îx³sunm™ÖOô²ZÚ¨œ¤ùxcJ³(cYæ"¶Ý‹ž^x’ŒM'­?Ó”˜´#÷òEHa"6@tZÍÐrLÔ_8ùdr‘GƒR-ƒÓ`-»ÇåM´Æ³]Eûº‹öW@ñK’kH@ÚD…}î¸8øß-ãb¼ czáÖ.Óìú ¨Ìä­ô%ŸßPʨ¦ÈÕR Y$\¸ÿŸ^ò+Pabz»ÿý¯þ b^O' -endstream -endobj -153 0 obj -<> -stream -xÚ½Z[s¤¸~ϯ`Öã)\åfи[v³KCOCÛédò´©ìK¦R›—ýû9 „ÁžžT%岑„ŽÎå;9ú=Q -?"Êe”›2)Êè×oÑÃ}~Q™h££á‘ÈYF›<ÉD4üý¯ñÇn{>Øv¨†ºkï62+cÕÝÜýmø9R&OT Kâ¼Muºe¼ÝÓ«ÏzZR¥‰TnÚW™JøMáWÀoF³íý%™É£?üþB$ªˆ¾EZ©¤,|ÿŸQ}a’³É:KJC›¨K;ìíPÿ¥nŸ˜äªÝq£éªÝ4Êíë§ÖÑ°"…m »ÓÐßm”.âޢОíéN¦qÕ¸/Uð¥IJé>Ë…³$ó -ÐX\2»Ó¡ú¯©0KUÈT’›µƒŒ3db,Y]ªDx‘ÞƒÄĚĊ¤¸V^` '$ûú{»Âh/‡¡ëší¾ªYe7*Ï’œMÄé?ð>EþWÇ»ω,nªKwà•†~¦â»¯žëîLgñÃ$Ŷ‚³ûátÞó—Ïû]ÃoqƒçË;¸o4ö¸…ðÛèø§û¥&È2K”¼V>ñê­šº˜/=Ú¿çç‹my0BÜ‘ež”s'£µl»ÝªÓ/lýN_]gÔ™¤ ÂÀ™Ö×®Ò¼ò¶kÛ¿e@^‘9âæ‡cóe£,h ;ëÆîxô¥öܺ¿ý›ço?qß!‹I¥9ÈxØwç'7½øI±_Î5a„EF•&®¶[{ªvkyV÷ÈO2¤B­ø¬HLÈ9tË#ØIM½µmo¢&ÑE(ÊÖÕ…m7pƒ¸A|¹½Ú¹° ê<µûúѳÑ)àɧ€Fß=/ìÙì(9pWo¸ ¡Š$ }P_Ðfñ¹ÝÈR³¼\éúK?[,dø<‘ÏVãoθ€ö€hâ-V –_T¼Áš¹E’_ol låÌ~Z³œj§α@BPŠ\Ì ¢¿¥k/)U‰òZÔ{OoONM¿ìkCˆ Ǫ Õu\v`dõM€µ#õB’ºŒoºSÝÖÐ7Jñ¦ëžÖÔŒ‰§šÌAc“$Áþh·õ’‡RÈk”'¨êÝ“Fb`ó‘ -{.+.|OñÞ6&ßî–ÛØGÔXÙ"MÄ•ê01pEözãÔÏäJ'Ù«5ÙoTi#C 莀@«Èã‹ZžSË ´íZMv«:Åõë=)oµ[1Tv]´´¥xºg¥•ôìH¿'|††ÃgîpÁÓë%÷XëVCaâÎÍZ_ŒËÌwÁ7O´gÏ܇|H_Ñì•CâÀ÷Uß®™K2& iªWüĨÈÎ>XÛ®¹Àê b¥ÞMª‡çœUXô…Ý1^<ÕÏ~ÍÚ¹Ù•ˆP­#oÿ!!dF:F{H(4¡·â´ïôäÿþmárTN]k‹*v`ÝÁ¹rÆrëzsôwÀÅ{+›E†˜D.»qNkwá ëÈžƒ‹çzgyð¡#›ËÊéda÷¦y ­¿cøM¡xÚŒ=Ÿ9²ÑClHPÓg7„Ú)鼨øJw „ö\¡tàZäJ™&Ùà ”‰ò'a®YÏBPwûó™ÔÞMŽ’‰p´vÑ™ –³<)Dˆ®”oDéa[+€Ü»0?t1)/@ ÕðÙ)?1—A7ˆíŸšúq"¦;»)dÆØ döÏøÀVLAxYÇ{œ1Á'}ØñóhOh4®ÓT[`IjX/ÏÃ5Ÿ2å2ð+§À¯Œ?4MMó[q(o®f‹}X«:H@ü/¡¦ F^“}z0®]é€"+ºf<à”˜R—\NÙWŽŒÐØ -Dõl› /yîѤð ÌXÙ2 ‘‡y±ÕɇeR„£ýÊEò^•f°ñrªز*@ýëZÑ«8piW3zm ÌúÕHÍRo!¬=…hudyÔKQëNß©Ai -£ó2Ñ$ÒlÊJ5YàíÌöÂj’B”ûAW´t¿ ¬>š92õèÛY? - -&‘T@ÊÁQÙ>9À)(!ñFîf-ƒpO&¯„8'­LÒ|òŒ‚ «Úª¹ õK¸;½å}/ÊÑA™*87BSí㙾(!Bˆ,&¢²zà9^Ð).º(¦¿_:A%¦l=t]ññ{ß5ç ÕÊÙ­NI§’jˆ(´R­øñP»Y/Ý©·Üö¨Ýز)Ã(šižIP]^L­R¥QXÁ -ÝÇÿ´”j®ÇÁC&\u8f?[µÎ£|N„ÏÃl»­Žý¹ Šê¾ô°ÂžB [¹Àž›Ï(èo¶<©,u5¿Øè·`ÙH§×nJhEøˆÆ|Û»(kŠRá!)]†Œ¾Äô¯ß`¹oi´ûWô§•`D™D’ÂKß|Nž¾uY`ŠdR"^ÒÑ»Á—ù„ž#¯ö ù7C‘’?Ñ Ÿ¬­¿œ}~(ÂôSOW!beÁ o9 ѯç’A»ûšª•´­H÷”TüM_ˆF»'F=®B%úKª˜áŽo±5¼tÞû,üš;f½zfS¸!V¨3ÜXöŸ-a‡a Àë%çÑsÉkç HëØÖ„€0·à@\CÚv¨ÚÑÊ -èýâj/¸`Ńۦk-ÏFÃÂ!†+è¿^X;EÀ ò¬œ£,'¹`¦&Š±+¹´Žš3®1iœ;‚ð³ÖRL30Ú¤™‡c¬pu%̵˜ æšb‚[Ý=ÙÉBãk¼CæS<—¹««·.° &†W¢È  aöz»VÃQ -ëš¡VUCõPõïGÚe’ë/!°>>> -stream -xœ­YIo7 ¾Ï¯˜[œ OÕ¾\» ÐÈ!) -Ãv–âƒ8 ÒŸ_’Zf´ðÛð£4?êQ"9_gÎÄÌñú½Y¦ŸÞ¸ùã·Ixæ=œßü>©`gåݼLBk’Ž$­™Y*¿V­ö)ŽÍóÓ§ér²LrœfÃõ,œîàAÄ{ø8}D”ÓÏÍ2ÿ|ÆùY&9óÕ‡)-f瘆L™ùj™.^Ýû÷úþæîùÕ?0#̹¼Å£˜·f]ÝNŸÿ¾¿^Ò0ÀÙŽƒaB -1+Ç<]¶cÅÖ -ã˜u^$¿Üóû‹?¿ÜÞß?Çñ¿]M¯3ŸÒ½B+äÑGéH’––xB¯0R@Ã!ÐFŒÃ‹ŽÈ¥ä.Z¢¨êÑ£žª5]·|–´,Ä÷q2Ümz„º¥6LŠZ$gR#¼mÏÑ’d¡-Á0ë 8yΰÇq¦¥œàÀ4õ4HˆþöÅ|Ÿ6 -­—²DQrK Zgüûe`kÒ[Òá~x‘1wRøéÂµÒ ¦Vª&\{]Žµ ƒË[¤B8 ÍT“¸R=0®WÛCw@Àð^ª>=åĨ;20e‘G-™ÇÆõñ{뮂K›ýÕ9ÝŽÄì±ÞúÕ¹„¶®–“‹EÑê`UvZ£Ÿ -é|-Ÿê²Î$†<f¡‡3¿îÁ ŒhÚVnXõÀZõöí´8ÃÆåÆmåËŽlíqz[Zäâ²{)<ÅeGÞ` -*Â¥æáØ®-ôÓØÝàÂqh¡šä Õ½q½â¼ƒ†÷Ru†Ë -ÜÈ^W.{sÓû¬ó²Ü±F•»2ÊåžµR¯n+¥Tµœæ]Ñráðü‰~å謒+]Ë';®ƒ0¢æ×[í#Ï]µ°]³Ý÷€ýÍ;jpZÇ¥§ÝDòÈq¶v8[ZäÕqwRx’ãmÌ—÷–ðlE8¶k =N4v78«ãÂÐB5ɪÆõŠ{ð -w'Uç8®óÌÚÊq®—.46Êg¿•Ò—ë2ÊÙo!ÏØIJ2¸PËiNÑ•bd­Užµ”VòW/Eß:9V6¸ûm´˜:J`l¬Úî¦Ü^CǾ±›5B"Óà#ljƒ ¹7²èLh0×ðølU§8+„Þ¢FK…MgdÅnjorŽ®Cº­½5Ba7˹M)¼¬jtv˜ Ðy¾’s¢`) äÞÏ\¾ÿ÷­¸æSßR`®u(\Dî°V0tB%!Jö};Mv ãµ`‚š5By?ŠAÈó#Žö½;M4&½¥Þ¶Fs‹|B¾à 9!ÊÒxn5,0ws‡àßâ±Ly¼ÃpH²v·y¾ªlV.¬cÝøò,ö6ÌÄM -büCÅšw±:Çc!n+¬)iðåš²#…1þI$Î¥”˜”î1Á·éOG®ÊÑ"#ð¦PZrÑöUÀT«Q—}U Ç9kò8# ‚²¤fiÌXn´ËæzZü£ŸàâŸÊdˆu3ˆ%°Þœze) 6r=Hb]MSÁ$¦Ât[íí<·(MÑ+¦”iì’ZŠûc°×´²Ö§;l@ªNÀéÙ»ÇU{ÃR8ÍùŽêÁ±,Þ0$àÔa€c‹H³8÷Øâ¬Q,9 -Ñ€%+¦{ë:½½1 ±{è9‰V £×ÕaÔÌÁõ†Æ‚¬˜öÂAôQûvH6«˜•VÔ†ÖÀ}Eko]¯ºï ×]ÉH,üºÿ!Þ±Öà¾_¬­8ŸÒ˜Äuö‘A5œÞwvµj%3÷B®ÄÔdCîÈÂNsoN‹…¡Ý>šèè†X^MóµäÉá$|T9µx6P {–êÊFèXF†´‡êÊÛª¿¦9£8WcÕÖÀMAÑj‹´F+pÓâi\ò«×`ùÇ‘ê|¤ï¥Šª´œŸÁ:\ݱ>Q,*édŽ…pTÒ©ÚVn¬õ˜X)«iqÖ}Ž§q"=Ê+ë#ãzÅ=x E¥Á}TÑ>·ÆžC¹÷ª1Å{YQ”ª(ÇvmØ ŽŠz9 Φ¨çV¦œä å½q½â¼ƒBÊwRk#BžA¹´ -Ó§Õ’Ü‘†ô*lÏíbÄ ‹Ee! ššÓ°ÈušR¸XÕèì0<¿ÏVrFj® 8«^˜–ß|¹ûþ0ø  éüþ1]|ÆÏWÏðkâ(`íYÿe.¸TÁl¸Æ}²~L÷A`Éôômý6ÁÀЃgŽ>¢ðèýÉ_¾ú5~õÆ2‡ UÎÅúàsÙ£SáðÜl¦¦ráNOx`  ýÖ‰¹šq€PPKÈΛIåŽ×Óÿ…l†i -endstream -endobj -165 0 obj -<> -stream -xÚWYoÜ6~ï¯Pà,-"¥GÕêÊŠ²³hú°pÝÀ@8±Ñþý9Ôa¬†,ŠÇß|3þF4JàFŠEJæ$Ë£Û‡hk£‹KåDHÙ¿"ªË£")쟿Ç?·»¡6Õ¶l›ó Kó˜·gçØ_#.á9ˆtû6zNóxwå—..Å,’'„ñ°í#K< <žÔï66ú‘TªèßQ?¥„gÑC$8'y6~ÿõÑ{·We‰òÞàˆ)¢h´aB‘9¯..DT|ÍÞ¿tá_N”€­R:ÛIgmÝ ¶lÞ¡wöÊà ©ôÎ8×ñó÷Ïèàß2FRoa.½@á$Ð\ÆÝ,æ*Ö£¿Xö8»óêM_Cï qCgêÊAW.¹×•¥  ±¼{¾{º?~&ǧǻÛçýñùþËŠq4%B„º)ÖD`ÄK‘OÇÛ»úøíÓýçS‘Α]Ný¹}Óµ±fŽ1I㶩nÄãòÒ½Y€Ö ÚîcBÓ©*Üq¥{\Ñ N˜º³‡0µl,l[§è—§Lc Ë&ª1~j<#räâ«V-5³Q3~LÛÖë€1$]Ò`xÔ bÅÄ®Eeà•ã{wÁ¶Óï´gK3'ܯioÑ’œeÓ[ÝìL8\·…©ÂY¶ö}ym "‰h¥K(Dº "3`ê÷òàUæ_€Ep(ƒ ák‘,à ó[ãa€©¢mL€'Ë‚R˜ö÷¸y§›¦ Ð9°Ó}R¦ABrSz”¼tœ-ë®òÚ=ž°P´{ØK= ž³XœË,1¤ÂA±¤µÙ_¶ûç‰w ^q&Ü8ùì_p!ÏâC;¸ë¡·x$mõ~Â0Yä_. súöÓó -ÌŠäS]%¾t¡üAÚ7hº.ŠÒÕôÙrŸ¦`xð p]õ0*pˆ!‚A÷‚PK˜\²Áõ .T\”ýo¨…«¥»iÄÇ Þà§nk0AIdðþð‘62z -αYUr\B$¯JhZ 8 ´û±l[C×ÛAòÐ0\®Z]80¼©UëòÅ oJÄx„ÜTclUöšJ’©%»iWeDv’žVè@çt¦]Ïn膎V‹x¼-ëûxÿz*ÿbM_ºjÌû¡ëÚ½íÝ—ˆ]å)+ƒ …’糈 • ÷ÇBóÁc\ ÞZï°*ö˜°)ñ› 7!Ü0sÖîË?M*¨» ÌWSÉèwS ða³„'$Ü`†kh‚SjqŽÅÞ™X´¦oNñQœÈ|Òžˆ•ðQv “ œðÅ* cí›ÕµÞV&L8(Y‚Púj+}¬|]ČϦš5Vnœô\rý8Kæ àêÖ¸H¸ ]¼PX3 `›ï%°gR„«·eUZLódI;ÝèêÐ=qJH× ±øÞ·«†{$¬BÞù¢:,êZ60b‡}3öÕîåÕ®ÖŒ-{hfC}­ÿwOUp½JÅâ¢&ð¦.×p™†ò”Ãw_ͼ¿éù®J üçñÆÿ?[Mx¾¨ÿjÚ1 æ3½ßNÔVáV¼Ö¦u ¶ -’SâCf̼—kÉ+™£Æ_/HpA,Ò5búþ§ÿ/åÝ -endstream -endobj -172 0 obj -<> -stream -xÚµksÛÆñ{“8 5.aÜÀá#DB"  Њ¦jg<®âj;‰ì´ÓßÝÛ»ÃÅšNÆ!î°ØÛ÷ Ðâ·[„ð[$|‘Äi ÒÅ»‹ËvñêŠ-Ò@ÆrÑþ´`IÀÓÅ* "¶hÿñ×å‹z}ÜåU›µE]]¬x”.EýÍÅßÚ¿,Dœ"”·Ê,]®·úÖ«+Ù¡aÀ…»ã!‡!ücð/ÒÐy»ømDq²ø=Ÿ±@¨Å‡…"H•]ÿ¼h¯‰äh@²Œ‚4Ö‡|ÛæM‘j¿²‰¤¤{$Š‚P’˜¹íaŒƒHš»×Ç׎}µ ‰Ól—·ù¡ñ@¨c !‘©‚HØ51ð¥°#‰‚1Kä„\¸@¤«$ RÍ -Ž¬h ÓÊ“ åÔÄÅP,"`V0‰b(W.;çåj(èI.UóY4ë³<†2>“Y¼Ýçì" ‘|‡Ý®Ïaaæa‘_eDz GÍ ¹]ûÈOµ°±ò´NëçÁ¢I((ÑY€*uÞBTpyê9³†ny´çy2PS|¨4…Ç­Ÿ‹L²lÓs €åÂg:¦ÓXxL³0 -¢Ds}ÿùþÓÃÛÁÛO¿Þ¿û|xûùá—IãìN2ƒ£ØÐ:Ó4ˆúææÚ×Y¯§Õf7†§…gÖ\»ãXNêÍávŠôp÷ø†oa)±‹žOîvÚ·êã)Æã'ê!…õ û:9¯Æú"y± MÂK"<àì$ryX"”(Ý­rt±l·úB.·yq½mi“’„\Þ›Ö¦BÏöXÈÐèÑöÕÍð ®c?dÍ>_Ä䊅îB&ik™Ã.‰Ÿi0,ÓHcX×»ý¡hò yôeÞÞäy5LÑ ú.ôëÌIÃl)«6C$,Eëëc±ÿ¦­Ð*óÄ,ÇcBóžYÑÆs¡µÑIHî!K5D èP¼D>ýúöÝýîíãû‡ÓAÄå™´œµ`P¯’_FìyncxÞHñŒ¦hqû•j2ŽxÌý8BSqÄ‚;Ž‚[•AY+¼Ügh›Š#º¯–-D"HL0×@ÄËóÇ–Ê+ÜŠ–7Û¢5w›}¶Ö—É2Ûl´/Ân[›ß­¹×ÖmVÒ%ÞÜ ª¯ À–4úÞ´à‹TØ'_çe9­Ó'ú›ð €Žü$l6ž ­•£´}ð•—Ì%maÜó·ß?>üôËã‡ÍýÇOŸÿ;írî4OûÉ\âf* Â~æþº®ËiG³§¸á)cŽÖsõöçO÷ÓÚ³ø}u&ÓIÀUâ;mL9›wú7úâ!(×OÚDÛ„³uÐ}…ÌÈ?•AH(Ùæà°ñ„§I¸1v}yS”%]]š›ÍÞøцžÊ«7yUÞÒÍl­oÖMÓ¡x9–vDð¬ú@-eV–5>{cóªöe¸qUvtýQ“ðuylÎVÐN6'j÷2„Nü¬f6ž ­u -~–z9Ó™ȹ6bß'ï—ü<é‹Ý)žq¤séSi4hòz5À¤lØÄúè‚ØV1U;éÈŽD·1$qÄ‘=ù´º-n_ÿédÆäÐT3?cš 'vàNá£àVÁ2íu‹†¶)'vÐ}MÎ(NH¬ºP("oÁÝDœ’‹$\^feV­í¨zá@  FOÃKÌ…ÂÜØ—\¾çÆ®B%ߤ2=]6uyì†X¯YY´·ÓJ²¬žhmÂË¢°ß¬šçBk•Ä ?/O"0ç3>ÇAÔÏ“¿üþùáãûÍãÿï§+Óî0»18mLÃ8çøiÒâ6†§ŒyWwÌù4éð» ÿÐÃb͆ça´1åaÜ©oܨK„œ”ÝW焇uÐ}…ÌÈ?‘HH/MF UŒp -´¡·(Kê½Ã-mQߨ®i£Àù i7«†ölÇ×s2]äšòVH®ãÚŒJ…:/âo±£L\£q¼1ÀöØì²@O¼ …€Jš§\[ÛKÈ€©Ìqo&µïdxbãΈÐÜwF³ñ\h­{Óij9Sâ -¦‚¤?—zÿøö×>¼û4éµÝ9žɹâV0î:™ÿ{Bu$º!‰#.ïÑ8PnßädUŒà‘?Ê2îîÀÊGÁŠ%ƒŠ•y*'Ú&ܽƒîkrFqPq%TeÜ‘OÝ\¬¤î[LžÒ¶•x±)È‘·@ÞÛ—æ6UÈWTç6[̳¸ªé­èú.dÑÐ#Ý£:|`ÆmLuÜœ$`JÕ€%¶šÔ zC8,Ÿ€±•ˆ6ùšAwùà¾Çà8'éŒîšÙg³íQvY·["í¸ßÛjÝéÒÖø |¬6Í,割SÆ'QÞó³”×Ô·`ÓçaŒJ$¥5Dz§¬O&O§º_Fµm¶zÔÄÚž4‚ÕƒÀ3Âã :8; ã¡9ó¼Ýl| ôÔ‹JÚ÷-/«â:—v0½ú¾¬/‰ÇtÉ!Gº÷už<Ð u@ëFQiäêZ½Ð“#ø}éžN‚(áZØ€ÇÆõÀ…ýî6&Ì‘¨ïx7Ç~9¤-ÁTf^ ZVRÙ¯4pÃÖä љ٠ƒ÷ò×ÇâMVB®§›ºÉÆßmÝäŽ?£uz³}¸6ïÁSp~„¯‰&,$í»ïy÷<>jžòß]KÍŠÿŽ¶‡ Œö¡u¡x$‘ï†ãá˜}‹ÈÇ°’<]~§g(šŠ~‹ -­d“ïÍ먔˜öá®*ÛäÍúPìM¯#™üŽ›A=Ï Ô93à–笼®E»Ý5öõ K–;ÌOHᆢDUÖzf#M ‹·à¢)š>C/.Dj„…°/FèƒúÁò¾óeÿfžÝãõé?ôbœÂNÁh³â²4t_‘Ñã\HÆË-UÖùß¡ÜåO7^9·é¢‹’3fÈ>q £g¦+¡c–gA:šˆ(qÎ+l>¡X¤ï¡2 ó"ž°ª[ZÜæ-¬=±ÁÇ»¢*š¶X“šbÀ!/bP!!YôÙÈq÷F;:îµ[‹º,v}yBFƒÝAF·:ÊT/¬Íxœ¯ $C­âÏÌí$`èÅQ`½xm? ¹´óƒìMnR«÷AmõÃIÕ@êEûµÃÁ+;6,³ÖÇ&o:ùcùòÿ - TÜ…NuÒ¤áMí pÃ’—E¥ ƒ«lä§P]¡~>½jÓUØ+êúHY/Ô§íÌU宲æPq]™›Õ¦O’_å³”w§þëýãèëÐØúoŽ…æ-~y¢ b$ÈBAÅ1¯yÊžmZZR‰–'þVOwK")îk¿~$Å{‰ûŒc¦ Žþ}$ðØþØ:ãÙemg*I‚YÂ3•U^?˜œÖx‚ÚÊ(†G†%^W-A P@¥PÏ@-†ÉÒ¬OŠ€•ˆ1 -B=¡eı|¯|¤¶.Ÿˆð. ãaK熑‡Û®}ä§4,O<šií·PQgrIô¥ñÕ€%p^ªyô( j€¤Û8! …¦"¡¯)쀓dB*ÆÏë|*Ä - #°Öþ°H™~·oÖãxŒÃÛæ{ÅÐ0oɨîf Àeä3â6|NBÂo•/$Ú˜>‹B¬(ÎËŸÅœ¬Å*€Ï“òGèDùtÛs``$i2£‚Èè€% Ï8¯„È¡ÎÞä$ùÓºÞf,ÿTàÖã†V£*pr²:°rªÀ |Æñ\ðPó‘"SÈ=/¤õxäHÁ -ºÀ‘$'³ß‘À¡ž5 ^»ôŸ’  Â£V/χ 5/’8ˆ™ï -´1/RN£]°b3ñBÍ ]¨+ôò|¨P_',nÃç` œTçeO8´1'Ôl°RÇ!/V±ãRwAÁQm7ÎÉÝCÆŸ§CˆZš!˜]OáÉžz‘®<:èiFLjÛ¿“•¿ÓPþ~0@j"D ‡1‹E×Kúòe0Ôx‘·YQÚúIc—c-i(ŸÚ¨IÝñ};ú)›rCk]3ã$­ºÖõ9\7ÇamEÝ×ËwÐWŽ5’»Ï›MQìµ]‰ìw6 mè–~ƒ!CŒC™i‹ào5K\ÿÿÕcú#øssˆGÈ3ó|é•Æ@5µBªk´LY\Ó>ü†“Ìü­¹8¡bßÆí{¤ºJ}—ïj|'%”€º·n÷‡B·„Ðô醛¿rW7-”E•gÚÇ”º\™© }<‰ ú’2Ÿl"DuÜ]ææYýJn^C{†M—›€Þ0V@rˆs›5tÑ×ë¼i®ŽeykšnèÇ÷Ky']Ó8º6 -¼E›üîÜ\žÆ¨™kbý1¹?2iá|ƒÐéŽÂ·ÈfŽgÄc&ñ;•$Pî5„CÓ ¾ƒñ(j懣^(ç£'õ¢‡¦í5ÖyÖæ×õ.7=›iT£´{ÙÐæ»=É*;Üž¼ˆ¸ªí<î…1™öP¬µS>¡£ŠS0ˆñ™¹ß"êr£ƒMPBõá3ï&ä#1 *™ÔªI å%1ã…^ŠêĘ“õlÄüzlˆç”a?6YyÕ×Ùñ:÷ÅéŸô$LÐîozÌF/yÓ8úCž`š¶ã;fÆw+ýÿoF\PàˆßÅ¿dȬÀºgRV2xrr ‡1Bú_QÇcvífîHœýCª~œ]Èžó2÷ùôë?ýæcæ— -endstream -endobj -176 0 obj -<> -stream -xÚµ<]“ÛFrïùÔIŽ¹eÆ|xÄ’X."  Pë½8²­Øª“N9ŸR—üûtOÏ Ä€»*_ʵ"Ðhôôô×ôL7¼úÛŠ­Rø­2¾Êt‘äÅêç«ÛaõÝ[‰Ôr5üçŠe /V›,Ql5üòïëWÝö|¨Ú¡ꮽÙpU¬E÷òæ?†[ %¢’ˆ·)O7¬XoïÍ£ïîäHR¤ íGžrøKáÁŸ2ØÕ°úÛ*Q:[ýÃÏX"òÕÇ•")rwÿaÕ¯¾'–E@_$ðêFª¤Ð4Hʤ#|9?Éâf7<]w§×=Î-_—ÍCùØÓ<ê!2›\Œ“†H‹ ‘%¹´'Cý<Ôížèª¡lˆ|S>V';pœ:B¥BŒ’Û¸ç2©``c¬¤îýáÞ2³¿Œ$²$ÓÏIÍG’ãû0z¢‚¹¾´B|ž¾FÜWHLòuÛ tQ6M‡–÷€·ÌHr(_#¤"„ºì;åvÛÛù#ÀÑØlå4UíèÑCMÏz"klÀ}½o˦§›n¸¯Nx)@ºeë…Î>†3³M3+–ôf£ùú»›`u-Ö_HDmà1ÚÙXwšÓe€Ý)¸[feRšiêP·à}Ä’ ªÐ”6‚³µ¼¯mTs¿%ý¼nÉQ[ -…·ç½}Üî\Àmll¼­èwÛh -[rLx­n]øŒóÁ%¡4UÙWý,ð„ü‚YK˜™°Ø®_Ü""“몄µ ®Ôútn­…¤jý_¼÷e°ìq ¹˜û'‡ ‹ ~3ØD»ˆ¹«ûccÖä¤Ä ¶1?`Ãs eÕC¯o»Ã±©h6@yà‚Ñ2ŸÛ÷îk7çù·£•¨¼@ Õ÷çÒ‚ ΗÆe"ô¸80»¾Ç4&’<ó[G0bºyÕ4qðTæLÙÅ ™K‹õÖÓºAÛàÎfân¹ÅÇ÷eO·ºâôç-øOwnš ’„óÉó$©×c€æܪÚyÏO…¼¡Ø·&üÀ %ÝÞ¯g¿æHôn–|XZþÊálh¦•æ0IŒHî ±~ìÎ6ú,‘"Œ>‡òpŠ ÞÙš% !Úð8×H.Úí-nÀYÀüý\ §È| )ä‚ùzoòÆÈrO>b+ü3CÏ­pzcVASÃåº-Œ…c>rjhǹ› %I+Žö˜ÕtÚÒ4×ÒJT¨ÆÀª!wDx(¨çÝÌD§SRrGÊÑã#ã©ÞÚKc4ð[ÒÏC½31jJÛز„ýRêMÁ„U™bÄG· —Ý4U»îi¢°'°±[¦»¥³l¼¸œ—L3éCšë¸´êÛ7è+¢â“A—-“ûât‘Ëo"U–h·Ê'óÐ YHöTdv†úM,‰ ¢“Y¤vr,ŒÛ¾Œ“!¡PÛÈ« Ö4J°²©CšE?Òu?TG\-u:†û+ Ò¸ë|F} ›…š°Ž¤l€ÇKâåH,ô&@á¸][Ñót»}írÆ`Ÿyûæ`ƒÛòXnëáÑ3K¯;ܘÌ5™ËcR÷*ýv®RHAÕsÛ?͉›ÅC©Ð1öåy_ù e¾]Í%.–³¨ÀýÎʉ®Ÿf(ÃCîô\‚‡îRZñl¾aƒÉt\©Ý¶9žFŒ€vGFF‹ú’ÌP0×|)®à¿‰m=E¸®øµ¸ax¸8 -wÈ6Y´z’GîÈZbŸÜug›RøÇH‰nsEãU?¦‚O2ÂP×,á Y*’´ðdº‰,"{¦øf5 öʧ'ÈNl»l¿D‘ã.z¥rX&‡­yÁè@»« ºFtp2V ºº` ›1Æ!ÇVSÈÇ4Ÿ³£ãÌHßBúsî]!÷Øa*ˆo’rÂÏ‹9+Z›Ëežd@šÃæ³ð÷—Œ²Â‡"'òáî¹X’Š.’LM¸.,’†­/ΤÉ"è~°Ã ƒe^®ùZ ôr@œfÌÄß3™ËU(#s¿ }9Éž>—ŠLÆJ_H†I_\ú\ê$å4lŠçxpEühQÞø*†EqK40®4f°°@Ú!¤'ž™ŽžÉ£^‰³åy0!ˆiÁË -°ùDXõ‡D£Ë`#'™SŽØ˜Áë+g€r’m?»Fj_SÆfän¬f‘ffÂÁÈ9Š† Aó À¥…ºFôOmp‹/5TžnªñªX¿™À»¶yô½LWç“o‘' K¯wg®&=7‘ ×Á+¢œ©ŸL^eæÐzŽ²œ–›\Ø´¿àæÝ.Â`›…¦Ð_>ú{@žfÐA‰)g¸ÿ€wïé¿ûüöý‡w¿ÜlTQ¬¿¿Ûœ>ý÷çwóµx1)“ÎÂñfSl=™ -â¡’¦,dâˆÒÓ@÷ÔF‚W}×¼©HªU„OM‰u6|x[ Ô \-¥_í±lÝûž´ †'u=ì ì¨Gk¿¯mé‚­Ëö‘.vݾ©ö í°~Ä‹”±0~GÛŽ~—ÖTêÂEM½Ăé¡}¯§ö)S†ÂÚsmq{›ˆ0*mâuà°uw8Ô0ÆX¾aÜlôÆðú¢µ5̶‚~ÏZ¾vÕ®Áwõ>óqP@qÅžåŽg*˜ÏÈfÉív®S$] Ìc}íåñX•îÆ™ähcUdy„­N1ö׳HAKÒ¥8칸÷[9úØá´·¿ÿÙeæh]b3eFÚ¸·Žð­íÙHõ×–myby;’GÊ¢…‘~Htv@¤fß[¨ÔDkc‘õ`xÐë—[³¾?!wJ -»¬ñìØv\MÚµ°á7¥œ <ÀöíÔ/Y±Œº-–^ôÄPÄYŽ!áÿ«!+ón^[:ÓÓÇ!SÛ–=^ÌÌÇ ÆÀ÷÷SNÃ0óáù—„ñ¨[¦hÚgÃ×C$uIÇƶÅm¬·±Èõqª ƒ}LG£Üc('?‡xœM’° / ÎÓôøÙÆ_Þ~—D:[`·ì¼Éf‰±.÷¬Dl̘”Jø¤»ÒûV,¢ËqŸô…{Íg¯Ìѽ¦oPDÙc÷Ô({<ëh©¹«kÜòXAÎƸà{Ù¹ÑÂm¬+a’%•]¥ÂÅñ®<7¸¥E0d&gû`IXK—·•ÿÈ‘|n/!C¿#q²tó"Ö•'Ç4ë[#êH÷]Ž§Ï”ï óQ }wòr) Âþ Gq¨¶÷­=ã@Þï +V}ýüñÓß#DóÄÙ0¦Ns­X¢ {}ÿ§yÿSÔ„³¨må¾G0-ƒØÅ9[GÝvñ-ÝÛèŽÕ)ÜëJiš àòØöK±±±Je…m»°÷€,–+@æÓ+•)<Å7çý¡Ù[qäkóÑóPaksŽ iÞPÏW,‰ñ%Ër0=\ÈÍÑç8M¸:ÏŒ{:Q‰Ó|<ÆNzSs’ãGð€k#ˆT›3Ž`„WÖã.@5Šp˜Y`Ë<´üQlc#°{ šÒhC:ÂfŠwAf¡6ÇrC½µÍSÑ´b>}7h(½8!ÜàðpBø£Ø8] y_‘Ó/$6§ÅÏÅìô5¬ç‚Bø_Þ~~ûÓÛÏïN>ú/<{ÿ×_›·ÿûî÷EãtÆ;‘ÍWão>1^1œbµBg±~oÂóq‚¨èl8È|Ÿªuè• 0™·0óÎ1ÿ#~è}¸@¿x:j1Žî´(l;ÏT«VØ{ª“'TÀÌ4É»#yÇögT`ÞP¸³úB­ïëý}eN¯ê¾ -†K—X˜S¥Ò>·Æ¶†³ù”!wöÑ 5‡™ÆìÛc\^ëvÛœ{H,—,¯j'° ÝÇP ÓX¨ND»¼¾Û(x­yÚDqW)ñuꮿ~øôÓÛÍ»¿þúù·á·ßßýý·O~YvZ?¬7¡+Í›ÞbÆ'+뫂 ?§~ê³aÙß‹0g1æï#LªtÙùÑ&òso,ÉCo'À’·;toQt§ô\SãíÔ(–¼ÝcO•ù„îTŽ»QÚ«à†Sk9Ý“È="'ÔZùú½†¸$ud¼ vÁWZÊÜûÎTü -ÿ¹N‘Òv~ÍÁ?ü6]»7qÐœï§Æ£wõΡt±7‡·æªëvóÃì7@¸ç0§H‹êwB¼°‡Ÿlf °PúæÔ¢ y¹;%qt¬„Û¯º=W;÷­’«3 ´°'?Çr_-ý_$2¦0¹ÿ70ái< È ß°–‘(sš}ÍÆüÙCBÄÁGŠY䣵$»ò“Lž½ƒMç¡Dߪ¦:ÚOœWdîÿÝ1ý -6©BN>yÍâûù?[5( -endstream -endobj -179 0 obj -<> -stream -xÚ½[[wã¶~ï¯PϦ§ôIÄä#MÑIT$jm·ÎÆÝúÄ»ÞxKÿ}gpç²·NŽ—8˜™ÌhöÓŒÌøŸÌ‰¬ˆóböîÃì¼›}}AfEÌ3>ëþ5#"¦Ål.â”̺þ}ÑVÇM½íÊ®i·gsšk_ý³ûÛŒe"ft‰tórFŠ¨ZÉW__p×%KbÊ4Ù[šPøKàÀ_*©ënöÓ,N31ûÕŒOHÌòÙ‡g,.rS¿fß"-ƒ6K˲˜")Ïã”éês(9P¦IÌR ÕU äšR.XêfGY ŒÏy‹LN1• ITnê®ÞëÕÈ}Jc‘ÛÕ LSx=²˜˜åZÀÊ7šBxcr×wÅ)×o5j…õ ‹<&þuýÔ³Þ$9NñÍ®õÎ’Ù·½›ú‰ÞY’ÅŒø½Q_”Çu7êǼÎMÝë|(r MSOæªþr´¨=³Â)ŠÞZ°EÆ^v‘ÆI:Ä_/äPíFÑ/ê]·Ï•äÄ­Åoã‰æ17o»vâs‚»™þúKT:-þN›? -_‹Týy´¨ct£àN瀶(NcI²‹OA¤pC9î5$!½£-` àqAÆ[Ü´jo» ¼XMØà |ñX̃¢¶]{²/ŠÀ$ ÷F7 Æ’‰O“‘sçNâš³ÌXâ¾O !iÌž -4sžˆ¨T¿¾ª×k,æQÕÂVÐlêŦ•f[c-‹ÀÏÙ4Ûr}P¤€‰Ä“IÁç4j±¿ûùáæãûÝÕcv€ÎyH QÎœRSêCM·*Ñ#Í9–:,eÑö¸9¯÷ -µhA¢ ÅhUãëç…‡eøµ„"hm/Ô³[Õª3˜ó¶®:èMù©‰]éV³]*Ìêãàz®ÚC­Šö›kô;µ¯aÕÔ"¨ê4¶>OÏ öÇé¤ö¥"&žãKàO{¾$eà»Ë5ùrÛ|£%QÇ埘«ÎMž½w$f=³R Ï¥–óŸüuHqÒˆ`q®½´›‡ëøßÝýÕ»?ï¯?_ßÿrýÃúîÝÕm}퀦a4âü‚cX—‚_âm³8…¿ŽG¼éÛׄ4èá!yæ»xº!À†ÜÊ~’\˚“z~žæ-€ÀŽº/ÉGLnöÍ „'uå7Gi‘GeUµÇm§* -…° ,©úæ ¾Ù‚‡U/ŒPý£{ -®¬ñ÷ª›E=!z›¢)ÕååXÊ{v):éØž›õˆD&9ÎåUÇ붯o<6Å…Ò€tûŽÀ¨Fë<÷¯RûJ)±SU宬¤‹5 Õ+è«m{ð\/–5,cLãSöÅ·^)– rÓÈÎæ)gÑÛ¨Ý7Ç O•Û…*¼®÷]cæ–øë#§¼ö8ªÓúPï_ƒ  %óØç 6Sܸð¼V ‹æ€+ql+õE.w®Ñ¦ƒû.˜}­@ô娕ãÍO"9ƒÅY½˜à4z"5Ï< Ò Ï¥–öÆEœgoHœe§±–¦‰Ú_~кÑ<î7a¯”ó8¡/´–EÛ0fqh=Ã@kûöõ ËB@‹ä9ñ€V7€Ö’[ÁO’AÃÑ?õœ Í[h-u_’ö‘BÈE©.¬AôƒÒ’ß¹qÛõ3l V8`@-ü{"Ýð\j¹|"=—i‹ô´¯FEÕ‘¾ZÓÕ¿ËW3Ãù Qg"²¸§²þ"±‚ÅI¦32´ÿ‚ödü4yy¢ŒÇFáÚýÔ…îÂæЩ´†Ý„|Y\ØíüQë3ÓêË&`N@œ÷ÌI5<—ŸòqÂ(ÆcOZ‡³#ó®|oñ¨øëscYá›&O€³—2?Ë¢µ¿1‹öçñXenûvJàõ=²?[ñ P7,Ð’±O“±Ó~„Uó0BGÝ—ä#‚£6ù?¶ÂðÍ*cOµ@;§x¦ŠÓA0S7<—Z®=+ð+' fD]8'qæ™àûÛ»ïŸfƒv0+ÛáhS¢d褼 mØÃ)´,¦a™›®¤SÑ0c@Î{¨BhÈ­Ô'É”E?ƨy Y ¥îËñ±Á6X`š8 Ä2Z`šX Ħ€BgF|:v0™k3Üí5Àœ€—RPÿ2àr%}eN̵”ÖͦA™ëhÒájU/T˜„e4êöÍr‰Wuêûv×®ÛeS©/7íb°Vþ@3>§SÜÌN\˜[ÒJe•K ¢¸‰jˆƒÀ¬nx.µT¥¢ÆEâǸ¼è‡qoï>¾_>TŠAw<â”væ/Ƶ,Úñ”0®Çã X)aÜ^ßcX)a\Ý‚•bÆ&7i•´èª5oXqÔ}Iž\šØ0®ƒá®SÁ¬ÀÓÀ -°Gtn÷uL'Á®B“ò8`¬Ï)¬è£øÌi–j¨Á’‚šq5ØhšFP#¿°P#kj¦3b*•é—#M€ ¸1ìI7” •Ü@ yº@ÝOÔU „zT1¥© 0üå;¹ˆ•ŒkëèÊ›ne3ç+P -“)dÒ‚^-»ñràÂJ›‘å² XtÁt2@wÔ÷¢¿GVV—%ÃŒ#d©Öw+uÓ­Œj˜èi§(ÌêR¶[5¾lëAœ9•¿+€fha:1^¨üqÁ×’ÙâN-tÚùë,ÅØÎ<ÃåETWÕ°†æUÆx[4pdЫ·]mÕOú²#£gz Û`¢VuÎH}s'S b„e-Œ· £“ÙjÞ®*|÷þa}—mq<˜T’j}`ÇÆQ¸ùðéî~¢k–c†¨Nî­«U¹mÝ¿¾;£ ô ég ” åØYBù`f)“²‹3vtT•MùFq£õ$c.s…f9Îßä¢í¬­‚¹MÀcÛª_áøæ7ܨ˜ Çß¼ÑÄÞþŒ™+$„!øÊÊ‘Ye€’KøÄÜ™R5^·•^~$)×k›‰ä/X7·{Õ»û›O›«›o£©$u°‡Ü,ß% “â©ÝÖjŒv‡ãé QÞô³Þ•ñþ,–òJ&铹Î!~AS½EExË^c·ªê‹q7ÙØ©§”Îugûãv«P1Çõ²‘iS–DÀ¾¬?žÊBÇxƒ0«²½ûx=a -™óè$2ç™ÌPÓðK¬Ìì>½Ì'ÀD}ñw˜j½¿(«z˜¥jv -³,Pƹuà’†Qäî¨S]ßÞ¾¾¹þõú~Ú0„ŸÇ«89˜Px æîÞðs^ð£6³]yÞ¬›®©õívýæŒÃ4§ÞïÆIÕÆb~8¦zn¸¨‚ê 7yAš°ruç üË¢¹ü÷Õä}'sñM",…í˜Å¸î_YÏÞ¾åÖíëùõö=už^2œ]ä&ɦ<)N<æ̯õú?ÉË(^÷“gÖôÛ?ý­‡ -endstream -endobj -186 0 obj -<>/Length 10116>> -stream -xœí}xÕÚÿl¯)›lzHèð!E& pé( òAš!ˆô®R ‚€xA@Å+Ò®W¼ßõˆÁG.¨tË¥‡4RÈ&›í»3;ûÿ9›%Yn” îûð,“ÙÙ3gÎï¼õ¼ç‘Çãa‚`$ -¢€D%)ˆJ R•@¤ *HAT‘‚¨"Q D -¢ˆD%)ˆJ R•@¤ *HAT‘îÞÏëÅ~^$¿Qá=~¢"ò• Š÷‰Š‡Œö=}Q¹ò[‚ ¨ðÂØÝ˧€Lp ý¤û@…ñ• ùG÷‡Š?7ðóú 1AT“j •êšañŸ~T˜ ¿øM÷ƒŠ‡gl6N¥’^¿ž—™™¹ÿ~|^¹rßòqâÄ—_~yèÐ!Xááá!!!¥¥¥)))K–,Q*%¸ Üe±8ÕjÑ7A^ùoPÒæ €<(ü‰õ‘SlDåÍ_¸põý÷ß<&“ ?Á• 4X¿~}ëÖÍívbÑ1ÄLp©5ò}ÀZI~£âp²‚2—øÎPæ vTÅ+4Óî¢lärñÐêW¯f½ýö_ß{、¤$H¶ÐÐÐÉ“§€oT*1ì:°À+t±àÞcš•"o÷v½_íÿÑôǬEòÀ F—X°ˆ ò‹¯^½6cÆŒÜÜÐCy¹ùfÕªU`A•šqr.¹ŒŽ—˜åX™Œ(æÜœT"­¾}®*T¼ÇÆñ¼oÁX1“Ùîb]WËÜúhu3áóK¥RiՃ×V!»Ìf+Ü)Êv;«Ryá¹yÓ¸xñb¨18¿ù 6ÄqLL ˜RÂlA·18r©¬æå·è@®‰D"£n £FlhO¥‘=ûŸ‘#G–™L0ÌÀR ˆˆÔ‰Q(ä•Q©.Ϧ’˜ó¤ÁpÔÛ5™ì'<=jÔ(«ÕÉaµ™‹ŠŠ-Zø ãáÞj4*Ú>¬2Ò±BŒ¹Í9€ ‘ÉÜž¨_â6ªoirèÿ¡Ã†_¾|¹¸¸X«ÕÖ©“°aÆ.O´«¾ÙÛè*¾ƒ‡ÀOîRTTúæšuï¿ÿæXO­V»\`#?Àœ={F¯À?úsÎMŒfÁDxFXäNV¾ÞÒY³æ¤§ï‰‰1 QQ‘+V¾6|ø¦Ü-eD<|Á´f¬6­F[Þ’‡Øßå64X# ?úôÓAœ8þƒJ¥ÑjCóóó"##Á@yy9ºˆ0ÌŽc¿ûî[œ¤öžÃéP*ÈÁŸy¼f3·`Á‚­[·4nÜÄá°™ÌÆ+VL™’ -u­R)%$ -Iùß>7Fä¤Ý@•ÊŠo¬^½Úfµ&&&à -¿zõ*.xá…RRRÖ®]s }ŸJ¥*)1 >|ëÖ­J¥ ¾DT=±Çħó‡<·8géÒ´7ß|3:::"22mÑ¢EóçÏæ8¢„!íyžÃUf‹Y£PÏÐa0º|ëçŸ/:4;+’ -O -ï&@bbâÒ¥K;w~<66V­–&×mh -Å¥‹6oÙ¨ã˜h~,“þÉyE ’R‹.\[TTvüøiXÌà¥R‰íÞ½û§Ÿ~B$=ü‡[©”@FiµjÈ(vˆ»¸¸F–€8ŽY¿~ýòå+ Õ Å¥ÔºCtëÖ}åÊ•­ZµÒj lN'sòÔOtéŸlÌfó¡C‡Z·n.|E<ª‡Õ_¹;Ý,!–±B6›!!ÊK—2ÇŸ““nÈÏÏONNÞ·oú+—©Ñ·Û­¾åg³™¸îpHGsüøq•’,Ê5jÔ(++K¯×ƒF<÷l½zÉ€Íå"áT°,³víÚ…¯.jР!.WýûßG?ß#“‹¤@€*`â›7Ku: Y8Ðéùóçoÿp Œ2™L›7o>|ÝΨT%ÈjƒöìùdÖ¬YJ¥ -vþˆˆˆÜÜœ6m›3gNÏž=#"ÃÐ2°t¹X9 ©—íú÷üõ×_'$Ô_ùÔSOmß¾Ååb¼èA0ËD…¯êXl2Û1ñ!‘p,—{Ãû0¢6¿óþk¯­p:Ùúõë`|·ny—¹•*¸B"§°¾Ÿ_8wîÜO÷îM¬SÇnwµQ™Òb±Œ;’°Y³ÿÁ(óoÐ%/¯0!Á+ñv浬Y,6Ícï¼óÎs#CÓÓ ö?˜¦‚.&ÞŸLŠ¿]N¡’BÂÔÃœ9óë¢EK~8uRyãÆ ØµëÖ¿9âÙg¨ƒ Yµêììl0€Kˆc(•yóæÁ¸ŠŽÖݺ“`aÃg¢éN>Ïf÷îO^šúfˆ ¡ån7leц·¶Ìž='4T»®~ƒ¤/¾Ø-åË©@ü7*¢ÛOÀRIˆÓ=ü󯿤¦¦Âj - Õ„‡†%%$º\®ÜÜÜþýŸzûíµx Xv;¯RûD<@pü9…LY•Š$¶;œ*¥Š,¨d#F¼ñÕ×õê×=sæÄØçÇþíoÛl6ov•o‰ìŽFxæ¡EåŽ_ÿòó‹câôK—¦¥¥½!‘J9—«Õ£Þ,ȇC{ æ¬Ç#úå—_âãuV+¯VßZéKX0Í…ªê¦baí¾ Vß›kþºhñâÞ½z;ÒXfغuë˜1£árÞ‘Ês*â‡TÛ{7ÄÞʈ „‘ºxñ⨑cþsé²R¡®W¯žÛí.(¼¡}ùå—?û쳓'O–Íܺõ=µZ&,Zúp¼Úž—z#*ÛÞ»Ðl^._»–¿lÙòûÓ¡ºš4iätYLf£Óé8zôhtt´^~gŽUe ö0¢Ra7,S•uëþºnÝ:ص0´xF =¬R©š·h¶xá‚'žè˜—WÔ¡CÖEöÌš5gêÔjuñ ){’–.y*(‡J0BàëëŒCóæ-ÈÊʉÐEB*&%×±XŒ…Eù6›µ]»v‡ÕÍaa!•{ý¡‚[CГÕâ -Ñy'ë Î:#q8R‘úöôéóPàß|s0À`‰DìpáNœø‚>J‡ËËʬǟH?¬üóÌ¡C‡:thi±:µZ|R©L É"äÉX·KX÷%æu_hôâ¤);vì - ð€D©$qèxø@ÖÄŒÓ×­[-¬X“¡§ŸV›WJ„€¿‹u)d5û(¼Žž(”J–wã yYß’KÄ;wîž;w¾Õj•Ëááá€Äb¶5kÖlÆŒýúõ³;¬:–¦Á<=zÌ÷'~,((jӦͷßD tˆ—D*þ#ò•L&]D;÷+ÀÛ`0 '6›-))iêÔ©Íš5íß¿OBb"C–ÑÊ>ûì_=zt…[£PHxþVB“›wÃÁT*”5y`¨€K`Èâîxhw1 cØlN§R¡(..}õ•WvíÚEM,|K6ÊÈ#F<7gÎœzõiÄžu“Ø t<ð‚C§N8–/**Z°`Ák¯½zõZvRR0>pn*,ƵìÀUië7oÞŒ^€3À‚z½þÒ¥KíÛ·…ÀLLLë¼ûî»sçÎÕE„ábðë/¿ü¬Ñ(Hþs»‚Á]Ä55{`¨Àp" ãBš+ÍtEO - -oêc¢1û¾;öýĉ¯\¼Ô¼eóÒb'PÆ S'L>b˜F£"ÞœTâ&fÜ°Ç …«)dÿû¿ûÆ=Ÿ‚Á„0zöìBÑÇ ‰êto7ô™™™;v̸+W®¡q ·NãÍZX˜?eÊ”%K¡5 n,µ‡‡«š‘‘ѸIü¼¼ìØñïAÐ2~îË#¬Ý¼T Žé1ú€‰ Е2+»|eÚæ›à¸AE—–’ë˜-¦Þ=zÎœ9½Cû¶äz8ë,‹oB v§ ¢ž?ÃH4ù”—foÙ²9**V¯8}ú4¼N\L—&ñ¬F£Y§#ºúÓ½ûæÌ™¦ƒ\/‚qƘvo¾¹ºo¿îÔ)¡òÍÍ1—/gºC;­*''gõêÕ“'O`/JØŒ ÄÇ€spJ  b·ÛÁ+`˜§W®f 6ÒÉòðE`ŒÆÄDËJ }¦M›2cÚT“ɉaòDK›JM÷‰…ÓXˆÃá¶Y}ûö”•SRÆoûàßM麦ÿ´iÓvïÞÓ°a“C)fæDH¨¶oßÞÓ§O­[/‰nÛ`9'š…6²˜Y­V¶mÛÎW_}ú/"2?IO?иq}F0ó„jŒ$SëQ¹`á¼Ú¶]§OøÏÅ+˜¹áá¡ùY×Û=Þaã_7´mÛ—5,‚êyv0T0=Á%tÏñÙ³g׬YóÕW_±xx¹F¥1ŠÕjõäÉ“&¥Nˆ‹Ó“L ZØ;dK,ç’ -K.¼›ÌT‰DN£Xx³™Øcà˜å¯­D›QQQfKYVVVdd¨Õê„‹¾hÑb:G¡P)•j¨Ÿ>}ú¼òÊ+íÛ?"¤³úaªÙrhu)´‹ÝÎ)Òy7[¶l õ#{®]»¶eË–±cÇâ<bà~AèÕz^)-%+Á€§qãÆxÈ'Ÿ|òôé³Æ23#wîÜyüøñ½zõRÊH:Ým¦N…?xŽÄƒ%tu„ž²ÛY¥RÁqž¦M›ÂÀ…;ÔªU«7Ž7îäÉ9ܘÅeF3|u(ö矾'˜ìéS1šâ]`ÉÈ8Ú·_ßøø:BB¨ä㽧9¬ ‰ÕÈÂ/Á0ppúž~úéäädÈœ›†bLÀ'ºt{ê©þwݶâ#þþÃ@ƒÄb©Lê àgffµiÓf·R©’ -©D°*” -YqqŒ`@>þüŽ;âC“CVM~þùÙgG8]8Ê‚ü¢ìœëQQ¤žÝæZùו$>X -‡F£Æx8d}\’–öæ;ï¼c6YëÔ©ƒ+**ÆùnÝžX°`VÇŽí!|F› †jzJîEE&“Ëä.IÙ)SænÛ¶-6!Öl6ë£#<˜]ë%˜¨(ƒû‚ÇÞ°á¯K—­¬)O‡>ÿüs›Ý¢ÓioÛSQqÛ -\šr¿/]Êlܸ^vv>øÑ£G1—¥&è Wz½†ì!ƒ#"ÔtB0¤è‚ \< èFŽ;ÉCsæL°ñ'H´ß{ãFÁôéÓ‡ Ö¨ úR÷›ò -x´¤¤<$œ÷T«ó…á1–áo’ Çp¼W¢Z,νÿü× ãÆE'Ä‚ç ÿ³2¯GE†ÖbTª#–eNœ8 Ä -Í»‹—þƒ! QaÜèŠ,f²k2$¼åp­ôô ˜«ÐLøqb8’ •ž’’'·u‘ÿB¿š<ÊÁÏôéÓÿÜO?i¨ÆG[¶8ôõ—Ô½§"‘a«ÕQÀ¡‚ޘʜ›6m~ã´ÐÐPÈ–¤äÄôôÿóV® ¾g™NG´taá͘˜(\¼z5Qì´î’ÉdÄA(͘1жoß -6«Íê¤YH0·÷Ð!¦ -Tó`_¸p¡{žðCå2)y¯¯X2{Ö ê 3B”O¥RÝEoUIˆ -ØÅaw zzÀùó硱¯^½ºlÙ² f Ù^\Hˆ7Ò̲žï¿ÿáÕWegçâÉñ à-h¨“™³¦0 .NO¯ôÕ‰¹Ÿª¾áÝ~ÂnwJ -4¸î­wV¥­K¸œV}DÈ·G¿IHH "‘ÊF¡è€âÞïp¨˜…òI0p!Ž†&T )..NOOüñ¶´ŒŸÅbÇ£îÚµëõ×_;A±C EFê0%»<ÑiÅŠÉÉÉð1j°î¨ñ<ÀC2™ÿ.^õ¨ÀÏ—È$Ð.­¢k×¾'NüФqà ¿œ}ù幫V­‚ÅŒž3¿avWM‡ -í ÇsyÏž¡¢£cð`ðÌÏœ9E¦,.¶Ž?þÔÉÓu’óòr”J9<7Ï>ûì³³gϦ¦™äö«ÊÛôP"ËSr?欷C4éù*· ²rjcUjÙçŸ=aBªL*v9Ìáax¬ Ÿ!~”Kuá:!kTýâ‹S·mû 11±Ìhî×ïÉ¿ÿýo»v~¶|ùr(h·›‹ºzõrýuÁ7ݺuãy7ãÖb!»…†dXŽ•KkÎC–šÝÂg‡=Ï=•”c(.˜3gÎ’%K0¶àôÓßA@Tx‹Up&j»ÃÎxÄãäÉSj•¶iÓ&œ**^¡Ãî„—Ó A£7n$&Æ/Y¶ S§Çcb"?|A³òx3/D§`}‘Ø8ÆïŒÓjxÝƒÛ -£Üê`]N64T]Ô²esXÅ1Ñzø.GŽyôÑ– ÙŒYiæ×=%tI*%ú<ÐåsçÌ?zôhÓ¦ME"ñ7ß…¿i·9IÑ×é“›·h"Dmˆr¹8Z©¥r“5¹ßç6ò‚ÒW£wïþ?; »ñ•W^Y¸p! šU•nÉÜ¥x\À¡R±¯BÑ·T*;þ'8rˆ0…ZØ_ -Á311V›Y® #Bë»Á¥Çe´fÌÐWj_ù¬¬”” ÿüô_M›þÏÅ‹¸sçßjw«ÖÄÔ&T¬Vïâ1L^F ½½fÍÚ•+Wv}¢{ff¦ÁP²eË–Aƒ ïBñ’òŸ®ã]•ùƒŠWúEÔÐzûíóæ.èÚµPÇœ=û#üV‘Ø#«z1¿ö "$ÏKl6¢håjRŠ@Fzôèáæ|¤w¯¾½zõÎÊÊ2 ™™×Èüñ¾ýÍ•©ö Re_-Fx<Ö¦ôGHH(0¨_¿þñãßšÌÇMu‰[ *LÄÕ—y«AB7hÖ'EåÒ¥+ÍiùøãJKKÑÛcǾkÔ¨¡DZ]Õ¹Z…Š5"^+û¾€hÚ¿/}èС*•:&&æúõëo¼±jþ‚ÙB>ÝéCrŽÛýnDÓ?é¯_Ï*Mš4eÈÎñ¼þóÓÎ;0U°¥O*|ÖT0ñ1Õj¢! T©-†±+hU‰Á4þü/¾ø’Fb„mÝÜjqJeb¡‚ I8¦{¿k?}yéâÅËíÚvHJJ††ƒÛ»÷“.]:V¦®=¨8DXI$2ß|Æl¶ŠERFѺuûÂÂB^ fÍš}ñEºŠlÐ" c¤0•V]±ÖäïDUF·Îž={$!!ªþÒ¥Kìo×®µ‡©®ÀEíA¥º¾z}!:yìØ¿GŒAWásøðáðªi©¼ÐPa“±›©ª\dÍ—ö”@îÝ»oß>ýrrròóóù¦eËfL…×ÌÜcj *¾Dlª/Þ~{óÌY3ë&×5ÉJð[o½Õ³g_ì«šÊî5Œ -}³‰`õ‘PXüÃ?š1}Ö_þÒ¨@º=z$>>úa`wé+Yï -÷úíN'ßþàÁƒ‰‰I™×²ZµjµÿÀçt!!r«Õ¥$•«ÃW8®1T ÄèÎ@RVV¦Óéf̘õ÷=ÿhݺ ,½^Ÿ‘ñlê+ÿ?¨€-ÂÃB…’¸¤JQnnáÓO?“£š¢,55uíÚ787¯R•ÿVt[›Lu-ßÑâqBqlïÎXÆݺýåê•Lhû+W®ôïßçÎm6²úRM*ä;7Yz‘ËÅ”!öíËxfð0XÉx -‹Å´{÷î>}{á*Z¿úTxÆ߀qõD—ñ 0è²#Œ®öí;ʤà×ÐÜÜÜeË–Í™3½r7îõIk *^GÌã-•Ç²ä¤LÆ,|5míÚu¡¡!ïÑÑú/¿ü2.>Ü{q¨€j¦j4EÅ'ÄpfûöíS¦LÓjBáÀ@Ç|ðÁ}úü…\*z(¼Háóö¾:,üç-%;+š¶¨¨8>>~ß¾} ‰àáo}bNà ¥RØæ`h¶pfæ™3g~÷Ýwø*<<Üj%ezõêõÑG[E"o ™² µ¾ü]…«õ¨ð I­ÔXmV¹\)“ÂßæýõÂOtu99Øʘ©»vízzP/–cä2P6[ÒWÅX,¬°ÛXúí·ß§¤¤dee…ÁŠVçàBŽ9rÑ¢Eññ‘N§·þ!EB¨e¥õ÷©j=*žÛ½<¯øOOÿ:uâ‹ÂËÚ#BBÂ.^¼øô !7mˆÓñ·P”Ì›©ÅiC|ºOxÙ•˜~åáÉ«a!{H… -™iië6n|;44”–Þ'êÛ·ï¼yóZ´h|?ûcª¢ÚŽ -SƇŠÃÁmßþÑ«¯,‚=Í¡‹¼–™õüØcÆŽlÞ¼ãÍo"¶™oU -|††±KßB¼v!Še29ánØ°áÂ…_Á"P㸸¸¸O˜˜2}ÚÌØ8ÓÉF•òá¬êÝ¥÷v;{æÌÙ§=c0uº‰XÊr®²²¢ð°°:ÀïÞ½{ll¬áä}±ªoïö ËøñÔgŸ}žžžž““C“ipµÙR®jÚ´éK/½4fÌh©”¡ëÓLm¯DUST]ï©{`\.öÿ ~úôYaEÙ*—A»œN'Ë‘ú‰‰‰Í›7¯_¿~Æ aÐMšN°ÜN:e6[®ge+j¨taáÑ­TÉá‚à‚ÁƒOš”Úµk'z;0¾ÃQ!äaÊ ãJDÄšC¨FV‹Uò÷ßßµxñbŒfhyD&;Ôæ>Nfçdãzx£ôÕw@+22Z¢L¥ÖBœ?Þb%KÑà°×²eKûõë§PÈhYPc™1<ŒìB6”ô‘ÿýCÕ~TîØ‹%OKUX¬6)妲Ûx“É´iÓ¦;¶AÛ7hÐF3}|Œþ¥K—yäðJ~~>¸J¯×ÛívØoº=œž¢›7oÞÔétÏ>;l„ M›6ô-™°œ“:ÿBAwU­¯ÑZä©,Á*,¨8]N .}ƒ„ÉdS©ÔÂ+ó˜¼ÜÂC‡}üñÇÇŽ3[ÌGÌ}(m@U¯^=T@Ÿ`#0“Ùl..1@|A…€9P¿~T$!8ÉͳÂ; xß+ÅËw-ý·ÀÔrTªçúŸ±Ì„ñ…‚¡þ9”¹Œ¼;Š”&üôÓOð!JJJ·†”È€ÚP vÖiß±CÛ¶m -Ù%,J \âÛ^\F)Ôã}¿äŸBUè•{"ZœRnn.˜ÃårÑ(¯F£ QúÍ{¾÷¯P -J°ÿŽ<3\BËø‚i„Òžà„”þì¨ø|TŒb=¨Žý©Q©’(*tiD¨‘ìçžãš  *^‚ì"U“„Â×ôÌ}¯Yý÷DÅKðö)*⊯¹@D%)ˆJ%¢…?@¦ ¢ˆD%)ˆJ R•@¤ *HAT‘‚¨"Q D -¢ˆD%)ˆJ R•@¤ *HAT‘‚¨"ýÈpB= -endstream -endobj -188 0 obj -<>>> -stream -xœ+T0Ð3T0A(œË¥d®^ÌU¨`hl -–‚3ô €ÀÈØ¢ÌBÁ%Ÿ+DS -endstream -endobj -189 0 obj -<> -stream -xÚ¥[m“Û¶þÞ_ÁÔž˜7©â/ýFI”ŽE*"u—sÝOiâzÆ'®gÜé¯ï.Á#)¹½É\.—Àbñ`ß,ˆá?¤ºàljȂG\+©¢<у|Ó<ܬD–†ÝæT{lgᾺ+læaÛ©¿-©±i‡¢ÙÒC]5†|_Õ5µÖ†r:›.ªÃ¡ÜVE_?˜ù2O ž±HYÅ»¾!N#6²T9ˆ•¬¹Ä]_%™×Mª¿;N¤ÁÁÓÌëÞüî§Â»”#³© óvÓšZž¡m@iZ§~sîǘo¥Ù¤ÚPaL_Ýt®[½Ç¾Á4€MðLƒÔ_ñ lI¥Í ÏÃݹ٠Ac×?‰à€-2Å­«þÆ…7]q0-22Ͷ<Ñ6á),ôæ¶hªî@…ém§-Ͻ^6ôuÙ,¹`M§[QF™ð‘R·í°EÁEÀ¬bœƒ0¨›jMÉÁ:¼h›þ„škëzÎÙJ¥lÐ3Ö(áým!‹Ò˜#h4.¼ëK¢¬‹Í{ò„g'(ò˺q8S¬3|a¨vظ­öæµÑ|[ŸÉ½O4¸ÊÑ.xÀüß‚OçlwšÏ±úIw[wä\EžËô¾b:DoF­)˜˜ŒÉÍKÀNQw-µú{Ó8´[ÃÔîˆrt^Ÿ„ýá­QN?›_7ždK/-œçЋڽ!Êï¨óÁ àØ«ªÛPËÑõôضQŒ¤ýEy®ÔúR²b+œítÛ±8Š¥CŽY ßR#Ê1 JÐòÊ,Ržêÿ™["7LB0à¶ÏÀ,’£q%ÄÑð xN‘¹ÙHì ¤ü¾-áRç,qù¨÷—ñ4ÎbF] ³TgÃvŒ‹£‰2 Ú‘à&Êœëß“Ù&2{Â@ÂAöeþšØ<Ë–6”êŠýT¸rBxÂ8‚/Ìdá[1á‰ð\n °ˆ‰Ä>󵢦0àW(ä|Qb²ƒ¾ 7Š‡ ñ0r0Ã86óÃ,py‰Ý(ÞšGa3K<ŒBéZ)0õŒ³’2Š­KØüòáà ÔàÛËÇY¬ãHü½+OÔê…Ö4·eW훎œ´ˆe 2$#{L9&ª}mb«uµß»´¬ÙRcœUQ»Ø¢ñõóŠ):­}¸¦‹xîl„7"<—[£1‹£ÜG§R¸—Ñ™¨HÐz¾ÔZý|ºq`Ÿ4‡Ïa$À¥0Š øt£8À>eŸÃ(„O™Z¸àE=iê¸Wæº.ql;m‰$ùaü½¯L$A]H¶°é©=÷è õâQˆU5egb  ¸±ó€äÍo‚„Œa5ÀCþOn¥s}øá\W80N„$èçGÐêcl?[zÿ(1 Èw4é‘CžÅ“p% c -ÜšQBþ jû¹H%¶™ÀÄÈ8Û"üçÞžv»3¬e$Z‘|h¦‹ðÊõ©¯/"<—Á§ ݈½PBÅ1.ÅE0*ƃr ^î¨üßÝ.Ò`Ÿý&k«bfŠ±RiÍÂ(³žÖ€]±+ ô& Lë)2at&üþ-Áï*=Ó®Õ“žÍúZÄAù–0Ñþ 2=éåÌ“.ðÙTŒ¸iñ”¼wǫݱ.üìm«—­¸_„¨“Íæ×@‡ÜÜ/ÂÂs¹5$7Û}€¬¼RêSX§ÝûªíÛElÚ®=¬Ê «›Òé¹µ;†°„M¼pàCå—× 9þnÑ^ºží³ßóTl }©õó$²=ŒŽµÍæ09ˆ iqyêÏK7‡`cd™w¿b6²§Ø8TMu8ðozl Y¦bà3¢‚ž ¼M¥jE#x Â;i噎g2<¶t dÚ´oí³K¿Ç^¼ŸÂ®]ú±G|ý´&ð6ÁåL cbèH]²ÙŠ ÿE_Ý•ôâ^ïix£ @èÊ¡L»b\+‡@νiÛƒ©y•T°ª—-‚…†o"äâné»!Cx.·¶I‚uŸGßB$ל„Ê&Åÿ+NzÉ"Ø®= ‘,{+ÈF[K?/Ùè:ösä¾–ýªD`^ŠbÿgÙ¸ž-Áëy*4ps?î3„¯ã˜œ ¹¯În•N–aV%\§žà–pI%¸’#Ag’/ŽþÖëØf5bev±Bû™ÚH?Ïh&WÝö 7/»#æ*°ÛèXÑìC‡k]ß"j1c`%ón¿N H‚91ìŠMoO.çï}Êd¸ÊrnÞØ1¾¢pij¶µôñò¡žÿµÒ-Ú«fßM÷b®SÍÙEÉsG˜YCï­gpæÙÉÀ$o¢dm* š Ç<6)Ž™CjAGRºe·e†:æXJѱÔô„áÓ.éäïç -1ü›5m¦Ã,Æ@¾‚ÛT_Xıò}ˆ·b:IŠ‡àîñèƒ -ú!< Å´cÕ/ ·uÝtt£ò,|YÎœeÞ«Ùc#{#D_®VæìÊ M0K1u˜DZYIb·ÚÌ5<9TáoÛÚÔ’4Üê¼î¾¡'ò¢Ð¨K]À֡=wš˜…öîÖð范 w§ïoõETúT;àáÖ ¤„y>òßî G¹xàê–úÉfš÷¾ÈÍýÍ`K÷ãS`%0‘¡–Ø?¼ èhñ‚ù4÷ ìICw1{{·ltftc?eúÆóp÷ÔF2 '’©–;ÑŒHêv”¹l¼Òÿ1{k^xÇ-éôôJ 0ü‹3wî-Ä?s¡àpö5\Ÿ¹×$£l0•ÉÈ¥wË0µÿNb|¼Š;à5ÿÂ]uúñOÿuøìV -endstream -endobj -192 0 obj -<> -stream -xÚ½[Ýoã¸ï_áC­ƒ»hE‘©GÅVbÝ9’×’74}º~<´éõ€®ýï;Ãá—,ÑÞE€Ã"ki4"‡œß|‘Ôê×[åð­T±Re•éjõóÛê~\}x`«*¥X_1•ÕêNe’­Æ¿þyým¿9=5ÝXmßÝÞ²Zóþæö/ã+^ªŒWÐ$òÝÕÇ[V­7;óèÃMò<+¸e{-òþrøcð' w3®~]e²T«ß\ÿŒe\¯ÞV‚ó¬Òîþ_«aõy9Ðp¾”íd×ï·m÷Hïo{|å¹£÷}/Çöq7ÒåS,õþ4ŽV=“ÜQóF\Òìó®Ý7äTŸLŸ¨GP3õa@ÃfêRvéõªšY&àTYÜrŽªò„sš> —`·&WU™ŒLÎJ6—ÄXcžZÔ5b -ÂÉ—ÚfžÅm 0}|¤Éþ"ò#™Õe#bP:5"!r2"!Šõhe0×;sÁb¨"½ rßYF2/º¶Ö…Ïñ}”>eQÈ µ>ôCK­â…<\—ëÃ0 ØÎ'€£+Ä€Ë5)žK‘qå gºDv쀹¹Ý=pËÉtU0]UÉMB¦nìVLHðÍxÜÏe®™Šw÷qãsÉ[Ç‚›ûeÅqi$ˆ%©»­ÀxšÌÄy/0÷ÐKE?óEZy/—ÎKÀeÊK€5ød‰f.×ßÐ;‡þp:Ðå¾l›ü}ÞÕãÜ­V‘ß|Ís1ï2«Â2 Ô’E^:”Að¬`1Öb€‰õ°£ÉèÅä…\·ÝØÓø:HÍÃ]€FÑ.œa˜ë]c›DÀ91ÎíÜúdt€ÌÔzJ3øÛYB;6O—=§³ò3WšpÀ­&®“)×éؽë\f'WY0Ž¿og®tÙuzæ©+=oÙzAH·3…Á˜Ì„ô„vm%ÉÍ0Ø+°e–—Y®‘ HD3§ -ý2nÙâ–çr{!b¹‰°0ßj2ƒS~Ùe¹Ïƒ„Àq.!1Fí}»oÇ—$®¼(g@[Nj‘»¬" XÂ{¹ ¬Jž©€*äÕÕå$¸(*Ç”2}7o‹|Ýï÷à©°ë#§®ÒJ ã(‘v® !ÆÂÔ˜™yí -Ã0°|×Î!)L¯QûŽ·?—ØeKO„$ÝìGNÿ"ƒðÜ:Upbj×nϹ1êRyøÜv6LÝBæá½ß¤ Ÿ¸Ò×¢àó ÃuQh!¨pÞ•˜Â㘒»h˜¯ùs;ƒÂæé…®¾ëÚûœÂ /|jMÑûÜ)r-פa?‡B?Or—[ð}Œ-3Áï”Òå~¢i†¦]„ [áMI‰^´Ýp0²Ôû§ÞDjx`Æñ©9¾Œ;ÊóM€¤øjzÔã8’–·ÍÐ>vã˜ÃYìtÒóĘû÷ñš5®2]D¾¦„l튫Ñy&(E/Ná!åb|ÛÞ儶çF -«8l˜û”ƒQ -™"SÊ©ØKþE —.þ3í|ËŽµ<¸KKM„„¯ðL^c3Y -(– -ꚪ>sç»(lßÈíî;™Í3TæD”fØ,8\a’(ß´»›žË Ü:ÛÜ'¼m w¿g\ò¶Aì˜7r^BNIæþ#†>K[¨±y-ÞhhËpÃaæ1(<áÜŠRc¾sn¦Å¸a{¿6/±›ùÖÐHÍlF -îF4V31”®s(sN&!í©ß6ä’¹DH ®€KôÒÆíéUù=[+ëõÖè ~Æ;åªaM½P кŠëlÞ5Žö§v¤;[ik'!^¢„t-MJé‹Ur(N‰®Ð²Q›`ÌΧW ‹;ž3\Us÷È,dJ÷¢ \i¬bSf…‹IÛ–0iü\näV,’Ûpƒ ¢×`4Ô¥IÍUÀA¥#Î}-9‰Èè= |ɲßã(6»Ù·›éÒš%$ØÂD”iù=¯Ó!6ÉÒ¶·oF*õý²‰N–å`!•{qhÌjg¡\­ê 5}~M¦„mBE{횃†*JhºÄƒ+K¬ß"°’Œƒh­léÚMãáyBNÆ -,M¿|™Ûj\GFF»X¡ùZ¤…!ñ™Yftåìu ¶>ýS=¶›z¿¡$Èç¼]´2º½¼0êBÈ“Ò[Ýs0¼ˆª{KHT÷žÝo&-³ÛÜHš¥ß·³\i¹º÷ÌÓä'‘8pp&"®’-!‘ï`ãLEù²—âJÂÃaL]ý˜LxBÓŽ7=عŠ'B*ºû)œ†ûËá=üfßÔÇ À:Õ 7A𸜎zd9aΠ–ØvîJÅX!Â{¹ ’ª<Ëy„,Y .¦Ý¼,°aœ”üˆî%•u»¶=0£¶ôi"O¨-!DHPÊ ¥ 3W€D7•ý!YÙ‡ö!n.=°kKO„ý´{xžÏûƒô7§#%݈>ŽKœ€È#ÝoŽ§ÈÁM*x–ëÇ~‡ -Å©ñò²–ä6›p¿énoAÒb4R—£YÎq’¾®_(²ý"0”ÌfÇ7Š~'R0JAà÷ÐþddÜ•d©×¼§g -áÂæw§½ ¶æ½Íx":òõs‹Ž‚‹b}oߪégߎã~aæ~ïôº%G²=YƒëàÆõtc‹ã©÷m=Øí>ˆeÍfWwípy½Ú£.ø¡E‹´Ž¤2ETäHˆð^nt3‚•(À[ì†Dqåˆã˜d˜RëÐàŠ†ºÙ÷C“r?¾È‰tC,ËØ€‰p? XñØý».¯¸A+çÞýôI÷Úwî'n&½ÈÅtYÔî'Läĵ`I -˜ÚuG«lT²EkNw%+mJ‡p6èÅ®~jèêé4Xopo)í§¦››Çs;îúÓH˜?€¯³;66££oðŒ>†lÈDw´UxzÜÍ÷f $¡ã¸šÈeŽt„ó½`7gÚ ³3ãJ-Ï7&!®º¼°wÅ\ûþ.n.zÁÌ^rsŸ:K)ÌÒL$ŒQVc½›vî.ìæ>þÔö§!ìkH==ÏjfÚå3ÞÅ„#~6Û±{‹ä‡Ú!lØ·©íŒoë±Ù^M~ŠÏüTâÓÎÍƶÿ4ÁÜ=ïì3 û -qWç<Úú¦z¢S'pó}ëæäãË0wòi±Ý|Up8ÔGÛÐC8Nç”ý=Iw -šúpLº¯î>ÿí¿Ÿ¢©'±ìQŒÅ.!5û¶xqo;> Õƒ[íÚ€}Õú‘¼Âa‡›Eô,¹-Ä*šìª°Õ=gh†Ž0se_É­€»GL‹ÎtÌŠ§’TãîàŽ5…ýÒ†d¾·Z8E©*sF(ôa ;aZš¢^[ÚÔƼCŽ0éà|‚[«h‚,á½Üf:ÁÝØ=9;½æàx¢žr󉱛»mj9¾¾â¹4ç§1=µ¾??×犅©:¼¶îçxÚ¸$åÑ¡xpÎT~þÇ‚-9~gWô{·ÚMýàÔLÒ;¤NÕnÀA÷Ñ€gÊCï_ÄÊ#Â{¹j…BWñ«þlAsAÕزöªþ>¨zß?â9æ‘Ô¶ï2RzÕi;ôùm;Ô÷æ¸påÒßJ£óˆ™±Ó".ÛØŒV¸ EZü -™b™ÿ¹ßäñ¬tçòâ »)Í°©V‚¡ùxj̹ #EœÃݸwÑŸ?ÿo¡¶Pñ &(”I9CŽ$‡æáä–vMwVô§ñàV~]4¶YXKyÂft›&~¯d¡ÒEغZýü¼,²rúùyá¦ôãþîÖËÞ -endstream -endobj -197 0 obj -<> -stream -xÚ½[mÛÆþÞ_¡ÖIªC¢ ÷üÐ<‰Ò©‘ÈË‘Šs¨‹Â±/†Ñ»;.úï;³ïII©ÐÀE.G;³3ϳ;;Ë›ü<¡“ þщf­ -’“7O“ënòõ’N -"”˜t?N¨&¬˜Ì4‘tÒ½ýûô³f¾ÛVuWv릾š1YLyóâêÝß&\i èåfåÝ-¦óóè륈]òŒ0îÄ^±ŒÁ'ƒ…4ÒU7ùyB¤Ò“{ý”žOž&‚sRäþþqÒN¾EYm [É'3®3¢”hán/‘Ô )3Â%ˆº[NÒ8LÆÑ1I -:™ E´2CüãÝU1]§µÉð\÷,)’þÝý4—DëTì*ëu½êuŽã’"vîï“Î=¢R&.±÷¿Ÿ,:W+¢_ƒ¨Þó¥=o+J¨Åç«ŒÊÕ«Wø…ŸMS.LÓ¦¹.7£î*c8töýu² -Õð¥ýrú̵!B³ë0DÐOÛf³sô»¥}¾µw‹uû ¬®f<˧â¦rüáɘ3IhîDÝóÄ@‰C°O7•íuÞÔè# ™p¨F¬+×µµèÜÝTö"1¶³W×îy]n«…WŸ:H8[8‚g\̫;Žë›Õ]ßb^D“ÍàÇìã” [Adóröþ2YÄ#Íú-àSk’ÉøÌ5ŸøiËïª3€•y¤ö´õ‘µqÐÁÒ™‹ªJ ûÈT1ä`™@>]×]cŸ•}$Rm t6AåhGÓ#fUX³=MÛ®WõqDiüň -K|šqBSœ¸†K¥ ¬XAX+æ§pE)¸-Ë37þ3¡ÅEÚ¸)̇ÕbŽåÒŠ°,ˆŒ#0Ø Ù3¬ÁÄ°7e½Ë É /Ð{5/oËùº»·wËæî@Òã¯=^«; PÉ$ÌF(ÙÞœö²ªê~ò£‘:&Y:šä9e½è÷ñI²—AÔN€iÙ—A’(ȵ@"'¹ï‚á©"4ZÈxÿç,á˾zAò<ª§ÇÑïƒé·h{€¶ —J¸Ã ôƒ¬:‰~‘‘,¢ÿÏæ4xe@Ž¸×œ^ÄwTÍvõÁ¦XY$õÜDÍ)Ôe˜ÈbBŸ ç#j4È œ§16÷—ÉšøKM -‘àd‹â¤ \<°ˆ‡E)ΦZœ‰ˆ <ÈöHDí}HxNƒ" :N¢9;7ì0*:ý¼ü‚гcïGž‚!Œ¼P™*ÒˆÚ†K¥MÀ »7 xÈ ?µ  *':„¿á÷ÉÖ¢r‰C\ÿ0 -‹ã  ·$ £gÊ‚)˜ÂC.¯¦V¹½¶Y^½¼YÃ.µ ¶x,ð^N7å=ÜY¡—ëÍÆJ];iÜ"Duo©r ¢ê(ºŽ(¿azÏétÝÚﶳvÔ«Í=¶¸t±š7Û-,ŒËÐhÒCÎ`§ß4meZÚ¯Åz`õ/ê°<2Êú&ÁîÔƒ¾²*ëÎêÂäѦ„4‡54]î“]*ÙÃìl¢ŠLÛÕÑÁÈûÄcã;ŠX/â =¸¸ËNÐ^ŒïºÏ•E&0Tªf€¬:A –©€Ÿ"ø¿Ãš„Ù&¯·ëÎóbÞìêî(%¢ GÔ J$F8NäÓmùýz[nìM½Û^㌈×ÍÒ~W)c¦…¹ì¼H`N§k/!´Ìa -Ó5·­Ûd ÖÈÃÿ½…ý°=\—ök Ów[.+׸ ³†›MÓÜÂ*í°JÕÛ1ʨáY6m«Î]‰zLQ‚°<&š¢O”œ0O”- öm­U`½—M×]öµ}伆—íM³Û,œ)»eH£÷¶x3 KLêÆÁ„×g.†f ÐL - &‚½Hó“^ƒu®‹d´9'KÒjW̆ê Ñ;’™GŸœi¢!&¹ßOÂEvßݘ‡æ#Ç®ÅGljÍsˆ* ßÖFì’ýPMxz~ûëãÃ@ÅAîåØ´¢àS^…4ÓÛïVîâ—w=ûy!p7–Úo­ue,'boÑãÆàÖCÏ~¿XuQ%jë+b‚‘„™’,?]$ aHªG™›íF5Ûð¿H÷\Äà -6¸¢°†ófë˜öù÷åövS9w®˜é%™Ô8ÇáÌ8ƒ^üèÅžpºw•©¬KîóéuÓÝô7|X38šò»ÚšÍR\ÌZ[§Kw ió“‘±%`…eƒ¢½ÂÐà¿^Í$L÷oÞ}„Ìõ³OîÛ߯Ü÷ûž½yx|üËÛ‡ïßýä›>¼þô0³MîÉ?ÿõþãÃ)c,ÏuqþÊÖÓaØ¥ñ­UMÒ²nv­}˜úý t‰<{ö;…rV•Ÿ’Ùãóë·³wÏ?¼~ü¿EG‹Ô™Á‰²ÿ'êg:uèÇî,"?8‚8ÃÇh*#ì­÷ö|½çãT£ìŒ -ØöÃ~Ŝí[<ê(ëÊ!´€ù¿ÃÑ üÙ_k…ëÌ~ÀWÉBÃá\ù[¥Jætä)܃°.ÆŽ-$r%j³ô”víÞV>þz™'i#:ï×&’.9.bV`¼ß êtŠ}Ð~ -ך°<ô .‡4fh8:Njª4é@¢îþ¶_‚Ý5ž2G ¡á˜Nžm¦>«–ånÓõ×W#g‰‚Ð*衤 ‘¢À6\*-ÌÁ§$Y‘`¦ ±F3‚™AR`Æ©0ÕÝuÓ®»{L±¾j‘3û:€S;ꈠ>z†ÕˆìÐPš¥tp —JG@z"xt -‹½'“w£X¯3YâûoÈûŸ~|…mPzh¶’J<™Laû§¦ÙŒB7h }-YˆÇn¢fùúñÃÃxÀ|ÿiEÏ©8Fî­¼9R‡†ñƒ§IÈÅ}ˆ„ÄrÌÓAL¡©ôA@NøŸHLtÌçuy§šªxj»Ám¡*d²¿M÷êj³“Ùº^6•8˜Pãa©©ÎllïÛªmË•S…,ÿã$rZ`Bnþ&oOÁŒæÊÍìRîJ|U¹5u°Ñ {WD}„g -Ó Ç5\*mB* L¡žÒk~‚•Š‘LGVþðë»qRúþS”è“ ŠÐßÀI¯$4ô• q2h9AIß}>ÍG) âyžRÒ6ŒQÒ‹‡x ŠûøäÒ&,ûñ£¤—>Ç ïëŒdb’yF#%óŒ S²`ñuµëÝj€‘<¶Fbç‘x3ÆH“›7t„ü›8CŒŒ)´Sè²ÊyYï¿ŠSú -S×m|å{^ÞÝÝ£Äûú6#,ÅÊÊ^ÔmÃ¥ÒEň§3E~œÓ*chtàôãó»íóÛ‡q^{)ÔŠ“È*†ŸOl¯%4ôµ ;ª9ÁlßÄ"c6ìd0Ìv #Ìâ>jÃâ.JŠI¬/<Dq„ÙAú ‰gDßÿŠfˆ§³¯–ˆz5­Ì °ðÄÑÓ²mw¶@¤`ÏYvþÊ5Áfóvçö°amÏŠ¤= €öºqe¿483&$þøñ?vfq¦qõ!ØÛîn]U£uå [-—Ø2/o}™¢­¾ÝUõ¼Ïšƒw€2ÌNÅÉöâl.•6¨¾šøQ¢ð]ßã\æ}–ÀåO¿üðüáaóðéá‘Ž2:hŠ;T5ÀhÅÍ~ùlF-¡¡¯e€Ñ‰šî—_Ç º‘LºïëÐéRíÆíÅCèÅ}¨¤°ôß塽ôAéÆòm, š¥mþÎo$¯x1+!¬ëv‘ßÿiÿ Ò%–¼éÅÆ£àÇr–Bàk{„° —JŸ«œÄ„å)ú@ú“ЇÓÇkJ*OÒG ü3óé㵄†¾–!úD5ÇÄÐJ9ÎW:åmã±÷±ÊÖŸb9Æ/}þ×9É-x5oüIÃIúÏ[qàÐ,ƒ´b©?lÃØIF\ž•#™ü“ÿ\Í8£ø^z·®w~©ó…ÞÚ èûÎŽç3í‘¿ ÑÔo݆¸†=›â UÚ¾í ¦ik’4/Með?ŸÎÌÿ/÷œÇ£=Ý ˼ìj¾ê¿Ç%ˆ8÷}ά?‘â,¦†Î»Eò~—ö³ÿ'7¸¦ûsýO¿ýÃýè“: -endstream -endobj -200 0 obj -<> -stream -xÚ½WßoÛ6~ß_A´y‰åoŠŽK7l+™ź‡Ìõºñ†¦í¶?G‘”(Kr†(¦ôùîxß}Ç#úŒ("ðG‘fH+ƒ+ƒöGtéЋ%E %û Q™A¥Æ’"÷áçâ¢^ÜnìÖÍݪÞÎJ&MÁëç³_ÜOˆ+¹“WÎofÔ‹«æÕ‹¥èLr‚°÷Œ0øøPøÈmúŒ°TýüSŠy…ŽHpŽM•Ö÷h‡^{,‡g-–+Ì~úÃ=ÜíëÃ_‡ûɪNnÒzà‡˺sÔ+ë^c:”mn «$Û­›ÔEŠ/­‡ñ‘.I]€d’ãd¸å<3|Ê`™Èx ë§a=©†‡®ÝQ.ÄyŽô¬ãøîŸÿÀqr“qÞ÷3ÂqÞw¢8…—Q~ÞÅm|Ó '»ãbÀ„Ï 9’)©ÓúÜÙq< -Ž¤Rj|]ûœDAspŸºóTQ±å~±Ú]¯çïf%çUáB¯[X¿ÔÅj»¬o6a.‰Lås •âHÖ¥uo­Ý 庹«zM»·up¹¶ÞåèºaR)©„y„5óˆ !Úõ.ŒE"ÉCF°OSr±ÿpøõÛÇ‘0€³Ty»°M;߀A:Y mfûÕ1®ay£ŽžŠnê&4Øé1¯õHg§p`ÖÉ~÷uÿûâχää[/ye©Ç;…Ñ“ô;û³º^O*·õÒ>zÑnæfywÿå0MZ²Ÿ³¨Ì”†=¼â™ˆãƒ ·ð–·QxâI?&OxœrBŸòHþ¨Å4‰yæE¬4L´Íhµ-FÄ")–I+¿Ž4`ŠEÊË:XÜÖ.š¾Ý\ûoU±¨ƒ†À‹šÁT"€~xÜü@¯ìÖ†VâÂ)Pjæ;#ê0€Ö[D½³.|qW«]Œ‡gÃ<ïn@l®ÄIùó8°¹zd×0ΧyÝ=|;S>‰„“zš1 u~rÇÿÝ»žiè®!’x?‹zåwH¸j†(¹Ï²N‡½V(u¥âEÙü>B6$·½7ÂÜÛ"ZÃpN¤jø±=ÏÛ·]V{§yûžyÕìÐíM0ÊvwV5Æm[‰>¸t)îß|Ãääê+½¯ø'¯m5 -endstream -endobj -214 0 obj -<>/Length 46926>> -stream -xœìw\ÓÇÿÇ?IÈ ì•°)ÖŸ{ jµUk[ÈFD6jAÅ -¢àEAdÈVA­¶nk]-Ò:@DEA!ì•2>¿OFH> SkýÞóáò¹»÷û}÷¹×çîsŸ|00 C 6Ÿ¿º`„?#rhb:ü_³_(Ÿÿt ƒiÄ¢ç@ð¿C€¾\È”¡G›i©+É`¡–†š—î>ý@ïG9£GDþææ=éG^çeNÈߤä‘ÏàsÈ!àË„¨:ÜjþXL/|RPMg)©ëPèO¯=­ëGQÒe ‹Ãp9ïŽ D¥—  ‡€/“1‹mF*^\?“Ý1#Ä`10Æà'˜Oª£&±ªËßüuïa#_rZu;ïÍx3}"Ì(Ⱦö¸´¥3½aa»ó´d¢™^Kþåßòj¥+.‡,éë “L†hɱÈ̵(÷þ³ÒÔ’?UÀ€/ï¾õøq^uMà_u5µ1cF]¿qSÒñ@_&vNŽ ætj*ƒÛm‚5l®å*™Vð ÒŸ0œB¯ÈɼöêСúâ¼ÂÅ)c 9m©'¯#)††Ó-,wîÞEþ¾yó¶ó`ú‡¢Ç¯ª!ƇW éÅŠËáЙ‹-ôåiÅokèJÚÇéîŸ=õ¢…-^ò'‹ð è«D #8X8{ïïM^ ‡€/žJMev—CG‹È$"-s´âr™)©™P‡VKKmââ–9ÙÁ079%ME|‘Sò[zZ ›Û›bÅåÐÚÑA‹6¬úÁ¯ êÅK¾$ú*Qâû§ˆ½Éäðe2f±íH¼øbi_uKü_Ô”þÉáÃ[¿×°ÚÕšÝ\]ÕÄÛm_<ý¶~‹(Ô—9%CÀ—‰ÐVšü궢š–3ÿÆÓ:“¹–“y«šÿ¼…†LN¡Wæd^•¶ª‰`åà(‡Ã<Îþ³¡µ±¤´Zü„¾k0cÑŒ! -ôŠ—¹Å•0Ž¤®©«T‘sõE#CÀÿ}•´~/±‚Ù!ÀƒL5â=h¡¦„GT±±öÅßwž| óö¼XL1ÒQ—ØÕå¯ÿ¼û@úžê(‹™_ë“d°læ›´Ó÷Ä@èk± ÑlüD“!Úò²x.‹Y_[ýêáý¢&C`°÷;Kè;@rC ‡@9äÂpé\õÑíß>ü‹µ ƒÇ9Àÿ:@èÃË—.Íœ9ó_±àÖ­[ß}÷Ý¿R5> 9TTTüWªÿ;Lš4éß6ðYó¹Èá¿ÛSsrrþ—O•ÏÙýÏÙ¶>ñÅ8ý7}ù/Ú øÄ9äñ?~ª|Îîζõ‰/Æè¿éËÑfÀ'¦g9är8‡EýN:ìÚûw_[LR“‘vÃÏÙýÏÙ¶>ñÅ8ý7}ù/Ú øÄô$‡ô‚@»`íÈobŸËn~èfëuòØxyiGõ(‡ˆw½Îœ]ÿè¯C¦M¡`kÿ¹[Äû@è³]âH?UúA0¸Ìê÷•­²T-5’xÕœ–ª÷UtœUíÛ¾Ò£û0¦Ëä_ä?L…²;h`-Õã(†„âC§H¡ªJ{6 $¯Ÿcë/ƒÓ(’¤€‹äÐ#ý”C.³¶²–«DU'ã$'v“C˜ÃábÐNøäž¿yËM¶’ LùᦠÙK‡MÆ宲>´4-a†lñ¡Ð_¿ X3\®_à#íTA ° -Ô9’±Ò°ïý…Ûø Â;ঌ±6ë=}RX¼¯©ã+Nããä]IYÚCTáºw•2#CC\LÉ=ë“dzpÿ§eו½N§»óÀ(ܶ4HûHšç´±Šùª«-š·7±`‹WüOH“)‰Ù(||?lãÔeGm:_MªÕ¾«P°Œu‚ÚJƨô.N†Ñó%Úß>—>Ö‹˜÷Èà4Š°%!à}°àÓw9„é/Ó·mTqèÕ•5,’FÇÕ¯ ŽÎI“ðÅ~ÏöÀ¬Ze#LV×P•å©>\ÏÃ:Þ.#~––ÛÚÌ%ÈwØÌ®ÈôvJ1Üë?S“INcá×8“–ŒPÍeÖ W$ŠT ¹ÎËÑÂQèÁýÅ+ 8DÝMé‘ߪáºË¡ˆkpÃ?]mÁx²ºCÚ›L̘nÇK˜qJ±­µø°µOÉšŒ½3UǸŒª*H*‹E‹yw9kA–¦jÄ4EMŠNÄ0¸Ó~” Zƒ$7`Õ¨*ICxïú½4±Â; µTW¶)¡.ÝW×0=êçùÒûF¶ÓüÈ %à’b ³êiU,yªñ‚ó¬§~äÐ#}–CVYš³×?Î'Âæªc²ƒÂ4"RWëW£$±yrèç[¸'øþˆÍ{]F+ uÓ¾Éa縆çÏS)Yísᕦ™‰’‚ѪÝë4ïìYý\ÎP¹éuƒÙÏ›çQñM\í:Jµ NVwΖvºâóš¾Éa뛘՛ïa5”¹´U†>Gw,Ò‚Ê’œ}ÞnÎØ6¹ºåÐ~u[ñ‡[ZØ4%Vùo»¥Û³ãû²C«Bþ&iš*“öÆx!õ0_†Û¬iYŸºÙ\¹[ÈZ_]êù|cfä4e±1 -¦¿HÝâŸNÓ2À—•Úµ×c´\ÿ€XáâôàþÒú+¿¾+¿7cíp¨S!Q×æ’óC…Úbë÷‰®B-•–`ŽÉéfL´CÃ~ᶠ§ˆ"%Rlc†,ñc¢$¼èІó.9Dk¨µôüÎõGòÉÃtdjªU×…Ù]@qD™!a,Òš‹CM'jÐ8Œ’·Š¶Ç»•E³¶W}Lý©xiñFlCºP°þÿQJ[ImoÞ(X w1!cЗîÚ._… [Q<ÀùÒÛFî-òs¹÷ñ·ŠE.ó%¶Ü¦¼˜µþ¿µàÛHC*Ÿ¾ßq6z4§ç~äÐ#}•C¸áž§]¢Szœo@nÉõ³ ÿ&.aæK±ÄÄ…r¹n‹ e9Eûˆ]‹ H.›{–Ã…ÿ¨ÓåÍÂÈ&«ìËc…Ù2=­8ŸŒŸª„Ìκ¹ýéxbß·ê8vÅyO;î©&cºü°QyÛé³Õ$ÌŽú(‡0‡ÁÅÊò.¬9çÜ<úg„~M¬ºìézcEÊ©Jìw‰Ë|J·œÜ6‚Ø {ÿö²=±âäщŠü’a RnÛ‡_wxù»QcQį1ŠX.ãÝã®Ù˜!¬û®‹Â¾I9騋‡àVÚ›’º6.FFA¨‰S–âàú÷ŠÔƒó40õÚí§>éKy"^xßÝ_2üh¸ê÷ÌïŽ_—CWâoh®uµ…è…KZ˜—Þ¢Æ4=ê:¾MÓZ’æï™K23jÔXóïÍ®ŒCïØv¦µžÿv|Kærçß'FYêà‘ ‹ƒÁÓQ™Ú’*á¯X\~  †œÞ9]…[žáàñ$(s÷rû"‡b¥é?kDD±æ¯—Ûš9Wªù}­SÂÄãI6¸ }u…Ögx ä|é}£÷ážÐÙs9‹Æ°ê8{ï7kÒB¦)ÃÕ¿¯³ -i û5Ú¸°ç~äÐ#Y­÷™*{½v^ØNk#Yt=ìY-7ÊnÚoÇ;Ÿq²Êu»—– ‡pýŸî‹‚ä¿ý^Ÿw§ÛwõÙ”¸tdˆ±Œr98]|FÕAßäKu9>îâã²&.Ä()!m>—üoV¼Þ9áÛã13ë"l7“ÂÓV!—õ½°‡õ!sղĶñß͘:eæ¬ r8Nåy÷¿Û$«¤¯Ú’73ü°ÛÐ×ö‡¾‰ý/$‡må™!{o¿/Í}=äȯ‘#Ùw\—Æ;Ÿ>Á_D«ý³“R~äž)¼?î#r›bňsð« HXúëŠ`í#©6e+Ñ\Ë—"‡S™Y¢Æ P!ÞYõËGòžäÜ8{éí˜Ý!£ =Q Ó(àÛ?ªÀCìÛ4û²•K/;•4Cµ³ƒ ŒÎñ£žº‰Gx1ù±‹ÕQ÷Ó ¼#[ò~¶ŽDŽ´@ëi½•C±Ò&3ÄãöÀeÉáe§¿QÅ"gäŸ+ì<2¸ëúè\Ögx ä|é}£÷Ir(¸y®¶iÞ™±<åƒko;ÛŸôÍŒÙ,zõÙf ‹¥Ë½.OÜÏS€¿‚ÂÛKÅ‹¥^i0ékwäOß³ÏÁŒŒ²Ël@‹¥"rxÇuÉ!‹m£'2–¨ejªÅzäbã“7AAbú$‡ÌWá¶k[ýŽúZè’™Oü—î›”ô½bî±²ççüu‡¾ŽM²Ó–é­=œæÒÜììû·/gåîK4{½ÆjïÌ©‹5¡º?ý‚‹¦ÙËß}ºøت¬7G­=žoÈŠœÖ¾Ë€]žîà’³ù¬9\Lʼn>A¥ z#‡ŽZÍw7:ºÚàbœ!"‡%Þh®åJ‘CÄ2Qc0¹•ÃN˜Å‡—zænÎ -c­E1Œ×)ibßšÈþã109ìhÍ–?>ç‘âs¶­O ¦#½˜À}TþÕFiÎÛ$;D [ùøV±Ñ¦ãÁ’wÀ -óÅt$ÀÇÈ!Ÿ*0óC^naèH3 -q0Kã“ð9Ÿ³m}b0á4<}üNÌ¥A™dõ·Q8ŒÊ×E%U­DMãᆪøAZf€òù?U>g÷?gÛúÄãôßôå¿h3àäÇÿø©ò9»ÿ9ÛÖ'¾G ÿ¦/ÿE›Ÿ˜ÏB&Ožü¯Ô.àüTùœÝÿœmë_Œ#ÐÓ—ÿ¢Í€O Cÿã§Êçìþçl[Ÿøbþ›¾üm|b€òø?U>g÷?gÛúÄãôßôå¿h3àóYÈá¿R/|?þ¿,‡ü» 3 ‡ø_È!@räÈ!C ‡@@€€9rÔW9är80a°8,¦[:Ì,Ͼý¤ôÕtsc9\ªïwFÑrX•êÚpòjšªr8Lϵvü×é‹6?öùÑ#»†0QNMÛdÜ·ÖžËg !a8´KÎK‚^i¸fœô6$ö¡ú~gìfŸYø÷·tDª1X¼ÒpÇØ㫇’Zߥ…†ýÉ0ðÙî;B] ¡v|ô]ªÓÌÑm+˽“ý¢Vœ´6ù >®¾¸èO56¦yÒÃi®ª¨ebåÔ(ªdÁd æp¸Èć…›«i 2Eƒ?$˜Õ\[]×Â!ªP5ð˜Žù(×>ããÿ‹Áá°Fqh]-ƒó ½˜éE ðÎÛWEl)رtÅùæÏŘ+·Ë¡H9PÍQ9ä´TWÔ±å(eBGâ¾àK£ïrÈ6 =›øǦ]pØz£^qfÔ™†÷:uE¿åξUÛÎ5ñ'k$ýqéA¦D¾ì½³˜oPtùMОéw(ÔÚ€P%$‡ì¼µK-çÔ~ò&ëŽÚ ôWgölºö¢‘ ádõÌÝvìpÁº'î ù£5þ-ú/‡Ô’ë¿Øíf³Î²” û"vUóPøcÅÂ-oü#CÌ•šÊ - kG/øA[†/‡ùmªÓWn²¥ÆìN~Ê5Ûœ·{­K¡—o¼Ô65PÅÕç&l¹Øhº-ë¨Iª½ó©–)gÂ&4§-³ŽüðuhVÌ<õ®;}ôÂp'÷Ô7L‹WÐ25é;k7ëi¬¢ß3ìŽyتë´ÆÍTIu¤ÎŸ>®¢åû·KGíšoÚ:§WéÚ‡„.PÉ=èö7aþ‘˜É‡¶ŠúVUàËc`r¸n‘Û-:ΩvÏ;äЛò<ØÒýb¬ž©™ÑPÓ1³,—L×#qùrX¤d™z&À„Ôô·Ï"ï¢ ïvÉ!¦òvʱ¬?‹>40Y-•å4Õ&9k­ì9gû°rÓÐŒ-Õ~‘5ã#΄[(c…íâ4\;}þFÎã¼gok[a‚¾CÊI?cøùËåçšGºpÜB±ÊÒÅÊ™ÚÖ¹XêŠMu°=RŠûjòT#9Lkeν<:ÕæØÖ–€Õ¢¾€õRøòÀbiåÕA7”f9³Ï@HÕ̲œKï>}U\ø÷£bÕ:5s½Qc‡f˜È¢Ê¡ùš‡Uð3üD?ëá¸'‘;“Ê•­’Ïl6¢ßô³Ü˜§¾t>û—sô™ÑgwŽ•V$N+ CÄóõ‘SsÇßfý-æ°mY')½ì&‡È—båÈv-ÕºbSl¾#[°àÿb‹U0µv°`=õe飵þ%ú±•FeÊßé²Þ=¾ówq3¬4Ù?9b©v}×-@ÍŠÓçžê®«Øš³&øJëøØ Qc‹¥üÅÒ$Þbéé¸Å¸ÎÅRW\šƒMT¹ê’ÐpÒ­›?aRxr8ŒÔ’»}©×ù -6„׶>q2À¬ÛÍ;Ö»T·õšOe¨¿¿—pƒ&?ëع½ãðo¢lãß+ÍñrŸ>døŒ&rLÑr„7òh¾ ·qΨֶںÝf„<ý}AÎ_e3\æ=¸,æËx…Ú"øèσ N†$¯¦ýÕØïl½–ÍÔëþ ¥h«½×õwLþŽP¢æ$·}û]†“ª[i¦Ï7x~ùEÐœþóáݶ†Â[iô®¹‡^}׊‘6gãÖÙ÷üÙá0Y¨õÍ1ûØ·°þŠô“>C»ß»ãÔÞÙ»áÀ¥¼-ü-8x•á‹6ì_?—‚‡Úʲ‚ýŽÜzÓ؆×ì-§Û¾VýeÖž £×Šؼͫdêh›C{g$¬óE+!>øÏòq~•†Ã¨¯ªidÉ(R(ÊDžzt O†‡Fc%L¥È£=÷Îi¡U4Ȩiª’„5‡[×ßrí?¾)Žºx´ -¹Ì¤ÂV¬¼EEVâõ=—qè5Õ-XuŠ -‡î ¾<>Ñ´õÿwfñA÷ÕYEÕ,"Ò§*õW«|‰|"9„Ûªž<~ÅÀ댭/Û'%â4æýq¯Œ£bj½HçÓÉ!RÓœ9s0|)0 s¹ÜëׯO™2…HìÕ[¹Þ‹é!,×^3˳o?i }5ÝܘÌBÿ,÷ _è·5VVÔµ”5)J„^¿ÊJØ IÖJò´gïZ+³o=ªã@† 9eæRjÞÞØÐKË9OnÿUÎäBNyÔŒÉ:$ŒÔ2½‚×ù…z>Ä®{xï…ÞÔI¬Ø§°‡ÓL+¯i%©i£¿Ê¶T Å=êÉ$&ן——²kïß}il1I­O—⨹¤;ÕתûgØÀó -ìÚœ{¯ÍÇ«þ7'8ŸHZˆÅbˆüEDùùËápz©ˆm%q¶v1o˜Xåiag#-Tø'ð‹…õÐ?÷í…Ãý…Ky>b_ìżJ&Æ`‰£lÂ"ý¾&÷F -zózdIžöè·ö—…럱Õt´õ,v^«üjÞþ½¢5ãuÔÏn¼-_3 =›ø¼`r pª®xZíx?7.kóp² ©%××þˆUR¬>¯ý¡0hÕ‰î¨øq¯?8M¹i¡{’ó¸ÚºŠìªmFV!¡ËÍzÓÓéÒ,ìô¨—ŽÐ 킵#S¼ ú~†7?t³õ:yl¼ü€suš­Ü»°K¯º† <ï ÐüÐÝ>Ñ;=jì¿eÀÀøtr8wî\ä›ÍN,“^½zu̘1JJJRË`¾Š°sH-C&9°üØ]gÎUã ²EW_\ôŽ§SˆH/…Y͵Õu-¢ -UCÏï¶0‡ƒÌ_08L¯¦554dºº3‡YK«¦c)EBg*§¥º¢Ž-G¡(‹MüØçüwþÕH4œí`kaHj|s¯x^Ès¾jsè5•µm$5Šªl‡2tÔŽå6Ñh 2©©´¼ËZ´,Ý„GÄ;äJ½ª¢–‰•C'ãDNJ¾ÒÛ’•²X 'TN†‡FR5ECN4’ƒ¤óÝu¢ö܆½Å|k5ßJË"æ‡Â+nykäb®ÔTVXX;zÁÚƒªæ·©N_¹É–Z³;ù)×lsfÜbì5é‹6Ëp‹Œ‚@Õm¿µ?î)ù»M1A?ê“xÓF ‡ƒ³øã&ÜÞoµ뜓çÆGóû˜9Tâ2¸XYÞ2§â¼×ÊGkRa gR·§ï0Wæ–Ÿr^ùtKz¨IC–«ÛÍE±‘‹uá•Ëâ`0Uç½¼³íâvÍVñ+~õñ¹ç–´g¢B—ò5Þ÷´Š˜‘j¯‹ïf$«,ÍÙëçasÕ1 ÙÁNa©«ØÝlVÙš±g–*¯tØ<¹9å`Ž¨G£_­rLrI=<^âÍL`L÷•19DµA¿Z‚a¶±žq¾…{‚ïؼ×e´Bo:)ß6Éœ Ÿ£ÕÞÜà’4þh¼ò3)a'|0žñHZÕ¨UhcúW2±hÆyäó“gÖ"áÂ哶GÊÔR2×}Ej¯¾­$I,Å}5yª‘¦µ2ç^j“–¹Þ¸ýˆ9z>QXÛJâl–S\ÒN¯6$6?ò[èu‡52âüqsÖeļçäïŽÝ=N^XÔ]±)Ò²ˆ{Gylé~±FVÏÔÌh¨é˜Y–K¦ëuÛ»‚*‡EJ–©gLHMû,òÎáŽ;z!Úð®ÔˆÅ…«/L{i­,—«<;8eç<-|û@ z~¨SˆvDò -}|Óƒ ŽQcâ–jÉH“CEFñÕÄ„KyåÍ\˜QRJÚ˜•ð­€cn鱓‘"Ÿ¬µ²LŠñÌÛ.Þ!-~ºJÇþ¶†l/Ëí -³çèòn|z=RL²—ФL‚ ÷<íÒãøK†-¹~¶áßÄ%.”Ëu³‰^ž~Ü\Ix÷ØÈg^(Ë?qd2㬯k2kì¬éS¦LÿfÜr÷Ž$*‡¨6$Ì|éƒnØ¢HYNÑ>b×bƒî›½¸M—~}Xφpj“|?L®ÛJ¦õQÇ´ã3U°¼AÉÃ)Ñ-5vD±ä°Ï–Éöêa~!«–PÅ\¿J†ëïz8¦{fDó®'àº;®ËN¯ÊàËaW£ 7Ü2¿£Ë¡xzêåæž=A7ÔÜr]–µú$Þª‘.‡Òg‡È€¾ÒrãýFO$Ê` ¸ÉäàõSNùá{–Cò5«àgø‰.~ÖÃqO"w&•+[%gº½òìZÌõ]àqša¯ -ªòTíiÜ‚ÿ×¾BŠU0µvœ¥Èln…qr -ò쨋¥m¥ñ(Ú~>Ö‚u…oÞŠŒ“>†ÄžåP(‹˜Ø˜e9—.Þ}úª¸ðïGÅ ªujæúa¤nÑC—ìYT9DX\8u»‹9|éR 4⤵Ç÷Ú •åßÍr88ÀM–úþÅQäß9ƒYÍ-ª®©é.úÉr8¡&Òq}ÛêC«ÌuÉ­O7Ù…ÍŒŸ§Îº±DâoµðDÌÈ|19¼çie¾uÃÈö•,QÓÄDKènUëÛX{Ÿ‚uÝK%Ë¡ðæŽ>Ê!ò5§¥4/;'çîÕsO v'o't‡b rh½ÌTÙëµóÂvZÉv»€l)ºv9· áU&Ìûn(YLãf"ñ“C´°ÏÅßG-‰U£WqH=¾_%CÙÞö‰ÎiǦ mÅ­¹áâü‹ïI¾ -ÝbDm¸ŸdnººßñO ùš Áõ÷ܜϬn—C±.ôLHën»:e9ì¹ér(õÞ!§ê’ç’À§ÉüÅ“y³{˜Yzåì­Zu«¤ÌÚz”CW\šƒMT¹ê’ÐpÒ­›?aR$Êa„IùA[ç´râ(ÇõîÓ©ô’bÅox‹¥¼Ìjm«­ÛmFÈÓßäüU6ÃÛ™{ÄÚ)­ÖdÏùø¹JUç|wf7 fÙÛ˜’šÞüóWñ¼¡êñ6ËOU*»f‹¥FAlHÜcÎðõ§ã­©B+ŸÝåÐ[óÍëž²{ªYqúÜS½‘Ãu[ócÖ_i{!Š¿ºÔŽäÅÒþbio±ôtÜbÜ5éK³º´\,2í‹¥.1þì=ÓŠeÍ7ße…\˜9$êïú9ÆÍŒKX¤É"£h¿ýÂT_ñ¥ÅÎcßøÙü>1až¦ñ~¨ý¦W«²QåðØÆW· bYêÚKigÜ3r/ž×à¯dÊo=6[ª½½É%~ÌÑx{å|)aW¦e‰DX°¤)±j´*ÒüûW²qã/î,Œ[¨Ã}sj•s,éà9DÒþö§‹_¬ ÕÝ ² ¡ï=‡*‡Ç&7¥9¯*ôNÚa¡ Õ\ó·ÞËÚK¥Ãf³ïÝ»‡ªˆˆéééIÎü!s¹Íî"ÙÙÑYû›êXe)Ž¶o8ž¬u»ÇÅR½†+Aî¡Wßµbä‡Í™Ã¸uö½äÙaÄh2£øܾÀ¨ËÏëÙÂ[i^fí :z­¨ C™:ÚæÐaw!9TÃñ´8¸ÿøo¹‚-ÔGY‡G®1ƒŠNï -Œ¾^ÜÄ1xÕ üw­ý^‡(²!³Û¿xúóž²t[,-Újïuý“·í¹”Ÿä¶o¿Ëp¡õI[i¦Ï7x~ùEÐœþóáݶ†Â[iP#v&@ï½Xdº¶ÒœôP¼¿wEÀ/¿ 8¾c±vÃAáŠû'&ÄÿØD櫇 ÍÛS _H’Ãi¸¼C+7ýA0ÕÃ4au¡â·K“âÐåÐB¹µôüî 1ùd#™†zõ5GvÅ—] -Û|ôv2¡UÀSöYmDêfïA‹{“ó8:ºŠ¬ª -ÖWÖ;w8 “e¼LÚp’FÕÅ}x/÷ÃŽ=nÂ;VºË!+ØÁ¢óݘO6®ˆ¨Ö4PÃÔ¼®5p?8_Sx…‘CK÷›­r²‚Þ.gº5q·Îåm¢Åò¶ÒH6ŒÜò,iý–ì±;ÂW É=4†`ŸËpõw,R[I‰Üâ}–›vn¥A;Ž)áaEÒªF«‚ÔœÛß’UoØóO“‚šá„Éåœ<ØMÕ Áþ#±øÀŒq~«Ï3 t‰8Ê°ŠGåA§ÐåÐB‘^¸~ý…VC}&qHuØJÓ Z[[³³³ÅÓ{ÐÂÁ‚ÓB«hQÓT%õâjßÕLÇ*Q©ÂZÐk*ª[° -겄f5WUÖ¶á•EžÐ¨ªà=5¡©&)ŠÁ}È‚\ÃWÕ4²d)e¢¨ƒ9̇õLM §nÙå3´k¥³™VI'SÑ£–1ÔÈt‡Y’¸%ôW…E¥ Ã.é«\%-^ü¤Ìj¬¬hÄ©hitö^÷«c‘T©’»ï±£ÚV¢š¦ð F o¿¾foªíÕÁÜÖ­ V¤h*Iên½*¶O†õXC3­¢™„œ2¢&I;J„ûZÅ€K¦„/ Q -Kr‚¶->ÜÖÚÊZH…Úó  ³*i­ -š”Où“'ƒÏ'ý‘6D™|8ŽàI|×Ãó€Ã[[þåN ùHòýÂêø³ vmö/‹éÈ'5ó…ó†öê§À Óò$pKªìM,-÷NñPÿ˜@Á_à'¼à‹…à½yQZÝF ~ef ‚W¦RrC€9räÈ!C ‡@@€€9úÄrˆT&žhnn.##óQë@:ŸN‘šæÌ™ƒá#Ha˜Ëå^¿~}Ê”)D"±7…p9¼—ÜBX®ã‡Ùafyöí' ¤¯¦›“YèŸ?å;¸à¶ÆÊŠº6‚²&E‰Ð»W+Bݽd­$O{ö®µ2ûÖ£:ašSfŽU––A’%½±PNã“Û•3¹„S5c² ü’þ@áu~¡ž±ëÞ{¡7u+öí…vƒ§™V^ÓJRÓF_&*l©Š{Ô“#HL ®×ç™p]µ÷ï¾4¶˜¤6X—â¨J÷÷cØ6è~õÝ€œ{¯ÍÇ«þç8ŸHZˆÅb(xÙ!ò/ò—ÃáôRÛJâlíbÞ0±ÊÓÂÎFZ¨ðOIïˆþlØ+©(\úËóûb/æU2¹0KÔeé÷u¯Þõ'ì…$k%yÚ£w‚×ÿ>c«éhëYì>¼~˜l?,é–½K û“aà³Ýw„ºŒ×Q?o¸ñ¶ü}5μxàpª®xZíx?7.kóp² IôÝñ±„ U'~<¸w¢âǽøà4妅îIÎãjë*²«>´Y…„.7ëMO§H³°Ó£^:B/´ ÖŽLñ6èûÞÜýðµÀN ¯£vÿ6{£¯ù#Û6è~õÝwûDïô¨±ÿ–àÓÉáܹs‘l6[8]°LzõêÕ1cÆ())I-ƒù*ÂÎ!µ ™äÀòcw=:W7ÂJ \}qÑ;žjlL!bøo©¯­®káU¨ -‚—~Á2yÁàp0½šÖLÔÐPz·5‡YK«¦cE^j_]QÇ–£P”Å&~ìŠs~Ž;ÿj$Îv°µ0$5¾Î¹W«e§+É“BNú^££7!ªñ3¾ö¢‰ cðj#—¬ßå;W‹ 0û¥âì…Cžžÿ»Åx­7:òµÀZ‚´,(ž¶ÜÙ·jÛ™¢&žÈaIú âÒƒL…¯A»Ë!«4ÙÑ6²ÒlÿÙãÓ£mêFEþrdmÿR§3Œ©GÎl¢­²D ¶³öä¹ç“Þµµ—®0îøoÊWÑ‚äp°h+Mp^KÛzp\”ïoöñʼž'.‡dKŽûþ‰ÕPæÒ^VxÚ¶@ Ï(—î6O-¤qïJ¬\n( µ–þº' ¦€ü•6®¶FÕïè®q„òKûb‹ÈC”šß6šúØ8—‚²¥õí1{Ÿçë2§*u¿î‚é/Ó·mq9DµA’aÙÀ—_Þ·)MÆyÿºoµzXÒäT_ñòÌ^“²}8æå¥.÷f$ž\oÌÍrŸk^â)^G'"£ýVÿöJÓÔDI~¨÷N?êÝýR"Ìk)«Pýï˜Ä¶’y«û— #·½EiSñæ3)õkÍdÚ ÿ€Ë,C}™6Ù!UÏÞŽ uokÕ±Á5×ÜÜÿ\Ÿº·јãîtrezÄh­ÁôÂýϵèãyUäó«r(¥š9sæ n™a±Xׯ_6l˜¶¶¶äàæGK<¯µŽÛ{rà o‡8šÁºÌ[™ÞÉ!ôáò—Ú¦ª¸úÜ„Í!M·eÅM~°bIP~«âhÇŸ­U³#¢~oÐtL;å§ó.ÒnYjq”£¿›¥åíåÙV㈯Ú:§WéÚ‡„.PÉ=èö7a~tVðùöSyÁeIpô¡çæ© üŒ¢pçŒ -åoý¶,¡‰Ëå ßoE©å™—Ï é|cg7A¨‡=·ao1ßZÍ·Ò²ˆyç¡ðÇŠ…[ÞùG†˜+5•ÖŽ^ðƒ¶ð !2;d¼<`í˜É˜yìÌšo«Ð¢6ù‰=m"*LwŸ96:Ç-,†5¦;µÞÍ<°;æa«®Ó7S%ÕQ:Ù>®hÁá9˜Å‡7áö¦x«=Xçœ<7>šßǤȡ—ÁÅÊò&!œŠó^+ñFp22È. ¤nOßa®Ì-?å¼òé–ôP“†,W·›‹b#ë c+—ÅÁ`ªÎ{ygÛÅíš­†cWüêãsÏ-iÏD….åk¼ïi1#!Õ^·Û±ÊÒœ½þq>6WÓ즑ºÚˆýÐmÁf•­{f©òz@‡Í“›ÓQæˆz4úÕ*Ç$—ÔÃã Þ´Æt_ù“CTô«%fëç[¸'øþˆÍ{]F+ô¢‡²Þ¥:¯oMò9é¾öƒ<â@¼-;Úy›òþøe*OÄÃû5Üá‘L®}̲Ôc“!vÅ/Ò#̓ß6Éœ Ÿ£ÕÞÜà’4þh¼6F¼M D›Ïx$â±?yæ`-.ìQ>é`{¤LÝ!%sÝW¤öêÛJâ‘ÄRÜW“§ÉaZ+sîåÑ©6i™ëÛèáç…å°­$ÎÁöh9Å%íôjCbó#¿…^wX##Î7gñÖ$Ÿ“¿;vv÷8yaQwŦHË"îåy°¥ûÅY=S3£¡¦cfY.™®×mãŠèbiKî¦ÅžÈÚñ-Þ´»mºÜ«Çsö¹=\ø\kýékü5g”°„hŠ'÷ùËåçšGºpÜB™%18x ‡ƒ=?Ô)D;"y…>¾éÁǨ‰1qKµd¤É¡"£øjbÂ¥¼òf.Ì()%mÌJøV·šwÌ-=‘!ú“µöQ–I1#žyÛÅ;¤ÅOWéØßÖíe¹]aö]žÂÀO¯çOŠIöš”IC¸áž§]¢Szœ…2†×Çülÿ‰K\(—ëf½<ý¸¹’ðﱑϼP–*âÈdÆY_×dÖØYÓ§L™þ͸!äî½HTQmH˜ùÒÝ°E²œ¢}Ä®ÅÝwzq› -.ýú°ž áÔ&-ø~˜\×*óå~§PýðÝò!Aµî3ÿˆS ÝÚ¸amÙ¶”uÆlñð›&“'&‡=G˜'‡ÖGÓŽÏTÁò†>§D·ÔØ 8±6-“íÕ½ùøy»ù×ßõpL÷̈æ]RÀuw\—^•Á—îvAo»e~G—Cñ^ôÔË!Í=#z‚o´¹åº,kõI ‡R«‘.‡Òg‡È€¾ÒrãýFO$Ê` ¸ÉäàõSNùá{–Cò5«àgø‰.~ÖÃqO"w&•+[%gº½òìZMÍõ]àqša¯ -ªòTíiÜ‚ÿ×¾BŠU0µvœ¥Èln…qr -ò쨋¥m¥ñ(Ú~>Ö‚u…oÞŠŒ“>†ÄžåP(‹˜Ø˜e9—.Þ}úª¸ðïGÅ ªujæúa¤nÑë~ï°î¶÷’µÏ”úšq»~¯ÙQÿ[£õê{¡ä~ògƒFáEæΰDüŸ9DÎwT,ÃAnz°Ô÷/Ž"ÿÎÌjnQuMMwÑ'H–à 5‘ŽëÛVZe®Kn}ºÉ.lf|üôIÝ=Z®Y<¼Çº–Þ"Ü!‡q3‘VéÃCêñbm:M»ù5f{Û':§›‚4·æ†‹ó/¾'ùr(t‹µí~’¹éê~Ç?5äk2×ßss>³º]ÅzÑ3!9¬»íê” ä°‡j¤Ë¡Ô{‡œªKžKŸB&óOæMíaf镳·jÕ­’27kêQ]qi6QåªKBÃmH·vn>þ„I‘(‡&åmÓʉ£×»O§ÒKŠ¿á-–ò0«µ­¶n·!O_óWÙ ogîk§´Z“=çãç*UóuÜ™ÝH4˜eocnHjzóÏ_Åóv„ªÇÛ,?U©üíš-–±!q9ÃןŽ·¦ -­|v—CoÍ7¬{Ê"ì©fÅésOõF×UlÍY|¥u|ì…(þêR;¢rq*~q± )d@$“€Ódž±r½ZÍÅjÌ?2‚Hë…Bo¢lãß+ÍñrŸ>døD­‹®.bÁñ* îõwýãfÆ%,Òä‡Q´ß~ á@ª¯øÒb燱oül~Ÿ˜0OÓx?Ô~Ó«UY‰¨rxl -㌫Û1‡,õí‹¥´3n·G‡/ÔåÝIã0ê9Äî»=[i†lŒ^;C“ ¶Ò´ŒœoܱÜûáòÄýß©cþ -v -ïZ““CÞb)ÊÁbM%6sˆ -¼Ú™/ö:kDœX¡/tm±T¼Xýj”ÄvÃÒ`Ò×îÈŸ¾gŸƒ¹ç4üÑ~¥í^yÂö´íC‹·9þÃÐܘvt† -Vºò7؇sü8r­ÌþÕC„ù‹¥ò[O…ÍV…joor‰s4~!Í_¼M•iY"Í'X,ö˸ñ÷?F‡-Ôá¾9µÊ9–tð‚ˆ¢Ç iûƒÓŽÅ/Ö„êîÙ†Ð÷žC•Ãc“›ÒœWz'í°P†j®ù[ïeí‹¥R`³Ù÷îÝCUDD ŒŒôôô$gþ¹Üfw‘ììè¬}‚Mu¬²GÛˆ7Š?Ï ÖºÝãb©^Õ ÷ЫïZ1òÃæÌaÜ:û^òì0b4™Q|n_`Ôåçõlá­4/³ö½VÔÀæíÊ$SGÛ:ì.$‡j8Þƒ÷ÿ-·Bð …ú(ëðÈ5fPÑé]Ñ׋›80¯:bÿ®µßëEžgèö/žþ¼§,ÝK‹¶Ú{]ÇämB.4'¹íÛï2\h}G\‘Ùîq[»co¸zËÒ2|Us<ù?lQœzølÔ%noäØV–ìwäÖ›Æ6¼¾kF†3ûW±à¬r88\qÿñä„ø;"È|á°¡y{j á Ir8 —whå¦?¦z˜&¬.TüviRºZ(·–žß½!&Ÿl¤#ÓP¯¾æÈ®±ø²Ka›>ÂA¦!´ -xÊþ#«HÝLâ=h±sorGGW‘UUÁúÊzç§a²Œ—éANÒ¨º¸ïå~رÇMxÇJw9äo¥;Xt¾3âÉÆÕšj˜š×µîçk -¯Ð"rhé~³UNVÐÛåL·&îÖ¹¼M´XÞVɆ‘[ž%­ß’=vGø -$¹ÇæàTœu²:¢²9Y³^¸¾nuV’¥f÷-âr¨Ø’{x]ÐÍ‚²é†Ã[µï…K‹°`+Ípõw,R[I‰Üâ}–›’šsQÚÇm¾aEb~9ªÞ:°%æŸ&5à “Ëÿ(8y°›ªA‚-Hb!‚/âüVŸgèq”aʃN¡Ë¡…"½ qýú ­†ú2Lâê°•¦'Z[[³³³ÅÓ{ÐÂÁ‚ÓB«hQÓT%õæ°}K3«D¥ -?hA¯©¨nÁ*¨STȆw˜Õ\UYÛ†WyB£ª‚÷Ô„¦š¤|(÷! r…YUÓÈ’Q¤P”‰¢ -ä0Ö351œºe—ÏPj¥{p˜%‰[BÿxUXT -™9üà2‘æà*iiôâG`VceE#NEK£óz^÷«c‘T©’»ïÉšÚV¢š¦ð F o³¾foªíÕÁÜÖ­ V¤h*0ê¹Ø>ö)è9ÂœfZE3 :´Ð¦(Í'zAø²¥°$×!h{hÑBÄm­­¬…T¨=›0«¡’Öª Iù\Ü>é´!ŠÈäÃápOâãp¸ž¯ ÞÚò/wªXÈGÒïÎPÇ÷˜eà°k³¹XLG>ɨ™/œ7´W¿F–'[Re‡hbi¹wŠ‡úÇ -vùÄ?á _2íÍ‹Òê6õ+3<¸2•C€äÈ!C ‡@@€€9räÈ!Ð'–C¤2ñDsss™Z/ÒùtrˆÔ4gÎ A - Ã\.÷úõëS¦L!‰½)„Ëá½äÂâp¿Ê3˳o?i }5ÝܘÌBÿü)_À·5VVÔµ”5)Jl7óhFߊj­Ì¾õ¨ŽA‚æ”™cH¨yûgj.Nã“Û•3¹„S5c² ünþ ÃëüB=b×=¼÷Boê$ -VìÚÛìN3­¼¦•¤¦M¼f=àÚ{] -‡ëÝ›KEª¨½÷¥±Å$µ>]£æê«¿Ò«îŸaÏ;(°ksî½66¯úŸ×|"9h!‹H àe‡È¿È_‡ÓKEl+‰³µ‹yÃÄ*O ;i¡Â?$½#^ø³a¯¤v pé/ÏG싽˜WÉäÂ,Qc”MXäÏ·Ë aO{,JðÊßgl5m=‹Ý‡×*ÿš·OeJÏÅxõó†oËßWãLÁû~NÕO«ïçÆemN$‰¾;>Ö‚P´êÄ÷NTü¸×"œ¦Ü´Ð=Éy\m]EvÕ‡6#«Ðåfp‡Êý­^Ð+ûévÁÚ‘)Þ}?£š»¿~ ¹:ãßK¥WÝ?ÞwPh~ènŸè5öß2`øtr8wî\ä›ÍN,“^½zu̘1JJJRË`¾Š°sH-C&<°üØ]gÎUã ¸’äÐW_\ôŽ§Sˆþ[êk«ëZ8Dª†‚à_0‡ƒÌe08L¯¦554dºú5‡YK«¦cE^j_]QÇ–£P” ¢W¦ìŠs~Ž;ÿj$Îv°µ0$5¾Î¹W«e§+É“BNú^££gÁ·ª'3Zïí[µíLQ’Š$ê/ˆK2%ÖÞAI!š‘£š¾³˜oPtùMОéw(ÔڀГyÃÉmâ©×tŠ«3óô:ïÃe¦úEï¶1&V9ü(´•&8¯¥m=8.Ê÷7ûø e^Ï—Ãβ%ÇýÿÄj(si/« <m[ …ç šKw›Ž§Ò8Œw¥ -ÖG.7”…ZKÝS@þJW[£êwt×8Bù¥}±Eä!JÍoM}lœKÁ ÙÒúö˜½ÏóuáS•º_‚uÚƒV;§áïß]ÿ‡jš*™wE¹ë1ES ØÓ&f•Ð@+.‡0ýeú¶§hšúø÷ïdرÛu”<5±S9ðå—÷mJ“qÞ¿î[­W;‘\V¡ú#4Þ1‰m%%òVö/F¦Kó¬I‘´ªQ«h{ÛÏ’×L¦ð¸Ì2Ô—i“Rõì}Ð騱RÅ®¡#U -ëHºßnÚn­Z"¸æš›ûŸëS·ó– sÜN®L £õ˜^xb£ÿ¹}<¯Š|~@{YÍœ9sP·Ì°X¬ëׯ6L[[[rpó£À%ž×ZÇí=¹á…·CÍ`]fŠ­ŽLïäúpùÆKmSU\}nÂ拦۲â&?X±$(¿Uq´ãÏÖªÙQ¿7h:¦òÓyi·,µŒ8ÊÑßÍ‚Òòöòl«qÄWmÓ«tíCB¨äôû›0?:+xŒ|û€À©¼à²$¸ú¿Ðó óÔ…„ ÛD -ÅŒSû›,·¼5ò 1Wj*+,¬½àjÓ• Eµe„ŠÒ,E1R¹'9ÌoS¾r“-µ0fwòS®Ùæ̸ÅØkÒ£m–á V‘‚@Õm¿µ?î)ù»M1A?ê“xÓF ‡fñ!ÇM¸½)ÞjÖ9'Ïæ÷1)r¨Äep±²¼5NÅy¯•Ö¤ ã2à. ¤nOßa®Ì-?å¼òé–ôP“†,W·›‹b#ë ã,—ÅÁ`ªÎ{ygÛÅíš­†cWüêãsÏ-iÏD….åk¼ïi1#!Õ^ßÝÊN{ÐjçhÆyäó“gÖ"áÂ哶GÊÔR2×}Ej¯¾­$I,Å}5yª‘¦µ2ç^j“–¹Þ¸ýˆ9z>Q²¢™‘b×bƒîû½¸M—~}Xφpj“|?L®ÛJ¦õQÇ´ã3U°¼±ÈÃ)Ñ-5vD±dgËd{‰º€"±j ULÀõ«d¸þ®‡cºgF4ïR®»ãºìôª ¾ÚD/O?nΛ֣-ñG™ßÑåP¼ç<õrHsψž Àmn¹.ËZ}Èa¯«‘.‡Òg‡Èà¾ÒrãýFO$Ê` ¸ÉäàõSNùá{–Cò5«àgø‰.~ÖÃqO"w&•+[%gº½òìZ'Ìõ]àqša¯ -ªÆ9Ø}G·`Áÿµ¯bL­g)2›[aœœ‚<ûE‹¥èfœ ЯɹtñîÓWÅ…?*fP­S3×#2ËÄC³LdQåÕ¼¸pêv røÒ¥@hÄIkïµ*‹€~ইK}ÿâ(òï®Á¬æU×Ôt}‚d9œP鸾mõ¡UæºäÖ§›ìÂfÆÇÏSgÝa¢?ñ·Zx"FLxx£¤u”ùÖ #ÛW>°DM-¡ÛV­ocí} -ÖeDHZ,E¯é„-¥yÙ99w¯ž{b°;yó8¬hJûÝÇ,‡ÖûÇL•½^;/l§µ‘¬pÜ–¢k—sØ^e¼Åä0n&b˜¢ù;M´$V^Å!õø~• 5f{Û':§›‚4·æ†‹ó/¾'ùr(t‹U’¹ùÿìw\S×ûÇo {Y2d)uÕ:q[´p SdŠ´€¢€ˆ2TdˆlœuÛ:±h-•:…BÈ ãþ2¹8jí÷¼ÿð¹çyÎsNÎçž'çæxzß -*Œ% Áíå^î'6ôÈ¡ÈÈy"$‡m7=]K~„™ÁåpÐïÙÍ|—‡?†Ì.›Ì[æÃô7—NÞ ©Ûå•n1íR=1EΩ ªËc’p7vmËzD×+‡Éf )ŽîE Ø1.ÁÞ3Ô×uŠ³yÉÒ$÷’m»°–òÔwÕ÷~};s­;ç ½kÉ,îLÎ|¥æS.»*ÈXƒ9NV†¸Î—÷­[%´•Ù"窋õFÔUd<ÍØy‰1áÐÙÔQ¤ã§D -ÇÑ„’¥¯œ”,YÊO–æñ’¥Ç³—a® ¥"» «E õ$K5<2‚Xq[ŠêðV!Y±vÜ»R ‡í·]²ge^ªÅ(­6Ái»ÌÞÂc¶X9ÿ2Ð!å‡Üà 4Pä»1N[_¬/ËE”ÃL~Zòg›Œý+ôdz’¥Ä^>7–¥'Ùêò¾×bÓÚÙØþûi[i†oIßìXâ\Uˆts«Gθ´'姃´W™X6° ü”¦XÓH&l‰AŸV³ ù´÷uÛôD[ÎËcëÝáRÎCä qUSÊ´ÌœeZPÛíÇhêžSˆr˜9¹³È}}ÍÚ¼¨éÊPë• û=Ì,•‹U^^Ž¨ˆ\-466ÖÓÓñûÒÕ»kñsÓËâ›ê˜o \“_*.Ê*vsÈd©^Ç¥ï˜Ëõ ”¼©µ5íÆÉwâW‡Éceiu§âÃS/þÙÎÞJó¼,."íJm †PYÂX‡ý¼…äP Ã{Ð"%!ë\U£àA õ1öIû„´@t#q¾§ßÕz:o ÷F|’W|‚ÇHèI˜“H!®Ex+ ’“Co¥™±ÐàÏ‹¿™2Z36Øíh(¼•ѽ¡zïD }ØJsÔGñîž5¡§ß+ÎÍŠZ¦Ýäð‹sÉ{ñQÛÃ9‹{J‘ìBÙYnøLœNÃ<Ü¿nëus=T'Zª{µ2/Y§+3ޜْñTÖXGª£]}ÓÁØñÒo/$nK{€Î]’á) 7÷OAð´Øµ'ÿ![GW‘ÙÜÈa¿+ÊÕĺ5æNÈšä-5Të_$ï”ðØŠ% µºû¶ÒˆzÕ+Í -ïk 9¼@MäÌÃrwë\Ür”HÐż'·(*Ϋg+MÄÀ¾­4²]Oò‚·WŒJZÃ-¢û\Fª×3qݯ_Ë-‹ß»Ú¼o+ r´1ôM0­Ì4’ ¥êSkvQ½±w{ÆýN5Ãï&7\¯=šÒOÕ Áþ#‘øÀ´gÙÎÐ t±MÓÆ Çåpº"µ:78ø,ÃP_ŠŽÞR ¶Ò| £¢¢B´|-üR°»ˆRjZª8 n¡žíÍT´ ü µµ±¥ ­ ®©"+f¶‡™”æ&R·´²èÃbÝàÞ7·’™RŠššÊXô`…’8ÉG ‡Oa=s3éÛcý>d:)Ä&ª,aàæõAÜÔPô×¹Ûc®¿¨©}™9üçáйc•£4LC‚ŸW€™ä¦F2Fe˜Fߨ`w57¶1qª5q#ÿ؉UÓR} ’u£ƒHì„5µ”z‘hÉ^ -›ÖÊ{f@«_‹ ?îg§‘‚ã~¤z+&ÚÛŸ]3µ:É-Z)1Ïs8ÒZ¤øp¤&¤Bz®„™MD†‚–æ×ü¥“¿‘¯ú#m\E¤óa³Ù‚'ñ1ÌÏW> ^>ùô­f&÷%nø¶3Õ¥‡¼ä3a‘*NŸ¯£r_I©YÙ.0’¿JüSt= -ß^ˆ®…&Vݪ3 -Êçï& ø oø¯Á¦_>{ÓÒ-Caa " nN%È!@räÈ!C ‡@@€€9räè+Ë!טh¡•••””Ôßj€Áùzrȵdmmâ#(a˜Ãá\½zuÊ”)X,V’J8lÞ‰¸Ów86Lo¨¸ù¨7b†•‰,ùõ×<Œ î&75¶uË(ki*É û¹÷™n|\UŒ¦ŠÚØ„’Ñš2k¼ò`ˆ«ùcg“ÝüµÎ Œò˜™“upàgô¿$¼Á/4ò!V[eù3½©“4Ñ"/N¶ûâ°)ĆVNM»çìLÖg[—¸n( F²“K˜ ݽýÜdú$µ/uŽXᧅâs|ûâíúxî•ÿeb5Aõß¼´ùJr(ÐB4-@Áa‡Üÿrÿe³Ù*b÷ëlÇU/éhåi‰'÷MWáç¼ Îs×ï@~m(‘Ô~.êó3Éñ‡Î?l¢s`«1Æ!qßF_Ê á–Y•àøß',5m½é»›â?¡æ~åP}QLâšÿÎK9d£ý•º1äçW ïZ0æàà/ »ù’¯]Ô»ùÙeÛFÊ -ŠºzÏŽ—î9†~ºLMÄú#‹SöLTü{oDØUE1qù9ÚºŠ¬æ÷ÝÆvÑ1«-à^7”?Õ:µZ"ÿ©Õá«"µ÷¬5øøO¥ÿ‰ðŸb…} ‘ù+u÷¹¹[,dÿfß¾x»>Þo§ÜµÅ©ãÿ)¾_OçÏŸÏ}Áb±„ËiÒË—/7NIIiÐ:è/’W9¾å.x`ùñ±'Óæ«ñf[qrhˆi¯«­§ILL4±(þ)õ¤–¶.6V… ¡ 8ý f³¹ S[ˆ¬††‚Ð!×l:‰ØBE+ö;ÔžwþwKNSSYfà)«ñT Ë®_ÉXÃ¹ÎŽÓ qä¿î•×-ˆŽ7­X-¬4nðê¥47’èh95MUYŒØBVÿ‰s’@_èm/+X6 Ó³¬Fño¨ùÍz ¡¡Ö‹=q+ñ!P„B!dQšZµrÍŠeÊ© +eTÏ*E4 lâOîv¯ €~QXïK½ý®™à©AùÑø-*‡Ê(›ƒÂ ùfS[›Z»ñ•ÞCÍyÝƠ褦´AùÃY”–¦XIK³÷hu˜ÕÙÜD•ÑÐé«éô<ý´gãÖÓ_ÿú3eôÂQèGBr(j‚;‘kFN]CA.òÁ«ÄÈ!‡Û0G‰ .‹_ØO6xAI²Êä~|P‚/ˆaïKƒ¡ò+,IÅìUAC r¥¿s¦k~ú$Åž”Ö`øV’fAo¢à45?LGHÁävÁÌb3S ŽGñ2 è^ÿ!Z+±CFC‹oB$n0§çͯŠ˜E&»Ø?g ‡›Y°`W ¹KÃQ£F -Ÿ>}Ê] rñÒ¥Ka°*¨Õ»Vzž¤˜yÏi?r¶Í,¢ô°-oº•huÈz¸y¹Ïf^¢…ÆéLóÚëfÖu‰û†gò3–¿8ï]·”æÌìøåÚÒ0ýÕÙ½áÎ?%1¹‹<…qᥙKhê‹qa©Wž‘Y¯gåå:FáÃؤÕÆÛ¹o’}|ÿ½Ã -†8ÍC¹Á(_¿ãDm'O®Ð8}›ìâs,éB¡ðZMÉIáY Ÿ2ßä»8îk²H8™5œîè|¸m̾Ó¿%&¬t=A›zðÄVâú¡@÷YÌŸÆÅ%¯¾»§v…o³Î%+_F -ÿƒî7‡Ý7ÃR¾M 8甓<]™7òDå°ïþuV`ø´†2‡ø¼ÅÀwÿ›aÒ¼sånó „"›VÿFÁþ`ÊjC<ÄxóS\hFµìm ©U50-ö[™† ñ¡‡je‡+Q^‘Íý÷n™¯)-ä ãU¦“ÿŸ?–$MUê Öç’uvÇoɱ÷±FÚ2Mô‰±©Þzô%¬Þ”»E¼šeEå¦>/Þ±åQK_ú]=~QÔnÏ1òhÄÂ>Ùn¸¿µHÊ=áÇyÆHi²[.ùùVl*Ø9õ|ïJò™¹GƒM8O#Ü“¦¦²zí+UA(Ž$+¦n8÷BËÜLIÞhí®@Âí„AËë »}Kz:¶ûõky»½ n¦²Ý¯ºR´×Ìj¶kÓd①ЋLC}©nüðæ'ï"Ž§Ž‡¸&bF«Ô´átçmÝi¯úZ$Dpë/ï;Á…;yYò=oף늓ÇÂHƒ¦ÖÙtªË@_šgâ)ßCIÌX[[3™LîkKKKAá“'O þñêÕ«¦¦¦ÚÚÚâ+€)—û^a|»çhȳµÎÙDƒK u¤$“CèýÅŸŸk›¨bÚ«o‹>O6ßQ–=ù÷5Ë#ž2Ǻl´W­HNý¥CË¥èX Ný¾Un…o±c\‚¼¦kv½z©<×î[ì‹G÷âf]§è•ª” Äßd¦—EŽ“ï™ØMg=–GVCßÄœ9¼@]HúçEÝ8/³uÅöWÆAû¢­”:ßÖÔÆÚ,"t^Zc;°P[J¨*­7N*‹•Cˆö|¯½K)mVæ‰M¯×ÚÅÔvk,Ì-ñùÃ×!¹Ñ|÷‰Ì±÷Y»*ǹ(g†Jïþ¶Ž -¿;æZëò¤&?¾útRF¾ŸPZrh9D²®Øt"À3Ÿ9~ÎŒ)SfÌþv¸,†ù~`Io ™£Ÿðj@<È!ÜQî»*×µ8›Ÿ¦íª -tLš}xÖs‘Â\[¹*¯¥¡²œ¢Srì2ƒþ›½8Õ~ªlgAµI6?˜Ê}HþП'¸Æè'í–Ž yϺž­FÙüvGÁ&,ѨfN“z("‡C–'‡öi.EY³TмÏÇ5׫ðÐw‘`ΕªðîµýÚ·ßöq)ö-IçÝmÀm·<ÝŽ¯/áË¡Cúêâ,+ÞÊ1n¹‹¥~A–CÑÁóØϹȻ$ý;Þ„sÃÓ­lÃQ ‡’™™={¶¸¿^¿~}ðÕ!wr_·bË]2$ÅJ¡ ¸›NgKë» 0–Z}d¯øØE>‘žèh?óhß®¼e»üR¯¾Ò˜U6>åдœ³{Tå0ÛÙ1­÷­Í7=R´‚¹½ËE:…cääYφL–"»q"T¿õޅ󷿨«ùíA`_XlŠ¥¿)4&†rÚn®]¾ù‰ò’Q´Ûèà=iA7Æ굟{¦ä\|t£Y8£ÛŠäo‘Cä€|O@9üÂÀ•¡+~e+ò¿]ƒ™”.UÏÂb}ñrø]ë>—àî û×[éÊ2o]•8+'g:Mèë%ê£ §TÛ#"ÂÛ"íS­ÂBF÷d>ÐX-3³aBßY1^rò¯þ±$Y\²Ù:bw½yXqïÞí˧ìÎßö­z`IÏ·³Ú'Œ›Š¿JZ¸ËÞ/l€ÓU{åbU ’VùnÁ÷F²BßÓqo'ÝS¿s—=û*àÀ¢sö.¡æVúî+Gj懖áÛ+‡Ù³¸Íî•Ãýê9"Áœ/}Iûµ "W¬uÊu/ÊœÂí%NëÏòåPè+FD9\"uÍÓûVPaô(Yn/÷r?±¡GEÏ!9l»ééZ -äPR3ƒTÎýë ß²›/ø. ™-\6™·Æ‡éo.¼AR·Ë+ÝbÚ9¤zbŠœRT—Ç$9ànìÚ–õˆ®)V“ÍRÝ‹°c\‚½g¨¯ëgó’¥Iî%-Úva;,å©ïªïýúvæZwÎA{×"’YÜ™œùJͧ\vU±sœ¬ q/ïÿZ· Jh+ ²EÎUë©«Èxš±)òc¡³©£HÇO‰Ž£ %K_#89H²”—i9í±"º†áÌBgš´ó¼ÜÂAk,Ì9mÙï[Iqr½LutÉy§díç=cøȉÃÎ{zˆÄ×¾;üÒ´ßtÉž•}x©?œ´Ú§í2{ ŒÙbåpüË@‡”r/Ð@‘ïÆ8m}±¾,Q3ùiÉŸm2ö¯Ð“éI–OxùÜX–žd«ËûJMkgcûoûl¥¾%}óL-H°•¦kô‘½[i­«tw²± -¼zèÏö8Gj$q×` (Y£V-”,íçÕÉÒÕk+Wç&|¯Žêø5Ò5©'Y*Z(H–úíEoŽz:#.ÞÙBvè4üÙ~ã¢ìw;‹vÕíp ¿OÓÚR”6S=¸Ê< qJš•Å½Ef½/"°üd©|رĹªéæVœqi9¶Ä Ñ`*ËƇŸ,n— ù´÷uÛôD[ÎËcëÝáRÎCä¸qÇUSÊ´ÌœeZPÛíÇhêžSˆr˜9¹³È}}ÍÚ¼¨éÊPë• û=Ì,•‹U^^>sæLˆÿ¸! -…üËýïÍ›7õôôÄ_ü¾tµÃîZüÜô²xÁ¦:æÛÇä—Š‹²J#‡Ý2Yª×q)Â;ær=%ojmM»qòøÕaòXYZÝ©øðÔ‹¶³„·Ò*i ·xÈ^`7žtµ;¨’Àý¼(’+6Ú·m(Ë[¡ÕK§¨*vUø1âZ«Œ²yÈ0íò¤Á+ØJ3R½ž‰ë~ýZnYüÞÕæ8JBWbèãcZ+Ò.Õ{·gÜïTP3ünrÃõêУ)ýT lA L{–¸á Ý@‹Ñ4m|Ðq Y§+R«sƒƒÏ2 õ¥èØá-Õ`+Ä0ŒŠŠ -Ñò!´ðKÁî"6vH©i©â$¹ìÙÛLE+ÂZP[[ºÐ -êš*²b¦z˜Iin"uK+‹>ü Ö îbs+™)¥¨©©ŒEV(‰“|røÖ373œº=Öß1¥úÙôýuîö˜ë/jjß@f@ÿa8tn×p”†iHð -0“ÜÔHƨ Óè{¤ÝÕÜØÆÄ©ÔÄtþS6$VMK]ô-HÖ9Œ"±VÔÔRê}A¤d¯…Mkå=0 Õ¯Åˆ…ÿ$C–M!6RpÜÏtïƒbºRòøP«“Ü¢•ó<‡#í¡E -‡Aj"A*„¡§K˜ÙÑDd(hiþ ðçðU¤«ˆt>l6[°:Ä`0C<_ø$xùäÓ·šy;yqð©.=ä%Ÿ‹Tqú|•ûJJÍÊv‘,øUàŸ¢ëQøöBüp-4±êVQPF87)`ÀOxÀ6øòÙ›–n ips:$@rC ‡@@€€9räÈ!C ‡@_Y¹ÆD ­¬¬¤¤¤þV» ÎדC®%kkkA ÃçêÕ«S¦LÁb±ƒ_ÎaóÏÂÅ`>ýwÙYm÷¯ßkAkN™5^餘Ei~ßJƒð*uEþ1Õ0½¡âæ£܈V&âŽó’ä=’¼YÐ@.(4 ~| wl@Œàä96µå}3£¨IPé9‹®gä zß!T(ÉXbS›ßq+T |8„“ÕVYþLoê$M¤ãñ éîíç&Ó'© y+¦D‡ÿ>„£÷qHÞÒ!¯<¤kúÓûük¿,Ò½ò¿L¬&¨þÿ[}%9h!H à°Cî¹ÿ²Ùì¡‘ò‡ÿbŸ -–Åg*˯ä7©Ù9gãÇÈöû LûëÜø̳¼£ò'ieãY>)ÑöZíÂÇÁ#×Ê&ýž¡ß,h ™?K e䇙Ï\¼ÕÑBîc?ÄŒú¢˜Ä;4ÿ–r@TÿP«ÃWEjï+X«G»—¶uç¹VM5¨­¡IaYFÚšáìêð>7aey4»E˜â¾=t¥‰,­·q8Rª¦Ó–yø,«4à“Ã;Ô>vOþ¦¶¾*Üö–(õÓÎnf²¨®¾S鑆¥ÿ‰êƒ€XõƒÃ Xu‚Ó¶pçQG/½.u÷¹¹[,d‡~ï‡è õáEò–yÕà!ýXÓŸæØç_ûE Tz;å®-NÿO9 ž¯'‡óçÏç¾`±XÂå‚4éå˗ǧ¤¤$öúrȦ47’èh95MUYÁzf³9¼N4Li!Òd5…Žv†™Ä¶A¦f=¢²šÎüè}»CFoº½Ã,3˜ô²êÎé ûCM)"êÅ;€žÔãÆ |P¸Îþ¦a&…ÔÒÖÅƪ4xç !‡tyŽK ¨U§ÎÜ'IØ|,ßEWÑho{«åÞ¶cÐœ®ê¨•kÎP,SNeX)£zÓ¼cËÛXrššÊ2_åvðEéÐ×p²6Öìš¡ÂZK ¤ª‰§÷M÷ÒÔ§9n·Væç:(?û lòó+i¡‰fÌYg†ÿP-«ñÄú5E†[Ò6ÍÔâ-YØ޸ʞ´”«MýçnÄ;-Ð{è½`>-I³ 7Qpšš -½‡¶ó‡ik7^£oÝ*N{|“¡=/ò\{þ‡#ù®º=ÇS´Á6ŒîYÚõ¼†É•þΙ®ùé“{?¬Îæ&ªŒ†Â#‡"† -û)ïS&Ñ‚1>ýB!(AóX”–¦XIK“{3¸iÉ»@Òšy“d3S ŽGõœ÷'4¢µ;d4´ø&$éÞ QÜ÷v ÕÊ2¨>/ÈDb·[ãçü?/‡ ,àj!wi(\Î] rñÒ¥KAìõBr¸@êNüú'j;¹ë8§o“]aŽåËÌ3¹é j/þNdÉhÏ -Üco€çOÛ\ð°ÆÍ\Ý=ñ -7PiÏVºkÄOŒ:~`¡æ¹QŽ°zÉP_œˆ ;påY' FI«^0˜ [œiêÃÍË}n4 rV8i^{bÝ̺. &‡½W|™èàVØDp+*ÙdÄA4ʬ/Xå°ïÞ¦ã…κ´{^KÖ=”[š_ìtÙÝ%¯¾»§N…o³Î%+_Ž K½òŒÌ‚0x=+¯¨(×1 -@ÿUôNè«é‰A´íÅ;')¢EÿÊ›î©ÕÛdJÂô_ö×êÓX§Iá¥{¿U轎ñ2cÕºgÁ%‰S”DÖ+}s·íyñŽ-LjZúÒïêñ‹¢v{Ž‘GsçS»}Kz:¶ûõky»½ n¦²Ý¯²Ãï 5”9Äç-¾ûwØ “Jyo·ß&Ÿx4Ô ÁTQ[pë/ï;Á…;Gr?°ä{Þ®G×E£ön8÷BËÜLIÞhí®@Âí„ÐCµ²Ã•(¯Èæþ{·Ì×”FŠÞ9D2„F,ìS醋ñ[‹¤Ü~œ7lÈl'b|¨½¡À¿FÄxóS\hFµìm ©U50-Ö¬v0Ó’w$5ošL<z‘i¨/ÕÞüä]ÄñÔñ×D¬Ñh•š6œî¼­;íU_KÒ;ÅÉcáJ¯•»Í'jˆlZýûƒ)« ñ0µæÈ– S]úÒ<Où&þ—åÐÚÚqË “ɼzõª©©©¶¶¶Øë?¨EΤ^¶Û_틶Rê|[SCk³H[Š¯IO»Ug¬ÛêH¨ÉØÿ˜c±­4{Q{òJ÷cMJs6†.Uù#uwñ3†òœþrÈn:ë±<²²Œ9“»@ÝtùÔÕ&®  äÌÙ|˼ܧ^Z¯’ÜK•çn_®Y]ÅRšc§IB6m§Ò|ñççÚ檘öªÃۢϓÍw”eOþ}Í «Ckg;#êe'cXú9è1ì5²Qõ÷|9Ô*-tÔ¡öÊai êNéÞÝ• ]×M^æJªct*ü=‹›u¢clTªR‚“Y˜^9N¤QÿEôMèÃK¶®K­Âšý͸© læX(axu WÚ±ÏU‡ýöVÚölzÈѤ9¸ÚþwÜñ±Û7óp‘‹^¯VïúÚ%Ï<\èÄ]˜Á â«7íÝ””¼ž¡®ou8™RìîwßýHâ|uTGE¤k¢FrácV¥×’­r¡G“¬Õ Òµ¼ i9«´Q4Ï[ª±Ïø­{°©€;IŠ“C‡­l ÅšìÆߊ3ïŽÜ›øŠù¶HÔ–Aâ„û‡¿S†[aædEî÷´ßÚŠUÙ±sÕ0¬ÆŸüý˽òâ&*ˆQ_>ˆ†ô[ -y-u<ä›Py×rÛ± -’|QCAŠò“Þ; Žh dÞ—yz][zhß2n÷p˜l”4íÁ`¦M u$5crÝ6¾ È‹œ¢·^ÛâK?Í—C›m*a%qsT1b‚&¦w*½là ;‹£¬”9 ÇÜ×=Þ^cJ*Z½î‰Ï‘˜™*Pó¥Í ì½gþ·åpáÂ…âþzáÂ±× -žf½^á}¾¯gnald>nΊå3ôp‚e\­ÒŠÂÜÍÎßü—®½Çù6íDÄsû¤7ê®ùÇ7À¶ÝZcûãc™ÙÈrøM̙à ÔiUí~o¦ÒÐÚŽÇ‚”¯õÊ¡'ºÀÙ1­AÓ£èøC,åA ­ß-æèä3YVÌ‹H¦ÏG½YYv§ö}ÙÕÔ@dòK=žû "‡())‡Å†ð&Ž 雧ȾÍF6:•RÈ“ÃáÁeÚ}rx"Ìú3jÅêSËýg³¦+3_ç8;|ƒ1yª±ŠÑt¯ü!•àPTl‚û"½ -ø*Oè0³õEÕƒGïÿrúâ›11‘3±µáv~÷ 8¹a#g¯òZ>Z3P¸rèm·o–89ìn8›xëÝ›‡/‡ï?8Z®GÆ2G?ñ[•ëZœÍ—³®ª@ǤÙÙ¹¶rU^öi.EY³TÐL®ðqÍõ*<ô¦îrîá (˜öú nKÙáyj41rh·á…å 3,ùÅoÏu6eïZ )Åõ°ÜWÔÖb©_•C¸£ÂoÅN…¹Öº¼vÂäÇWŸNÊÈ÷΋Š†ÁÐáYÏý‘[º4R–StJŽ]f€ëwÉ鬾ðSe; ¨M²ùÁT®_&S4>–u=¡P¤‰j®T…ߪ碜*(¡JÄšc¡ $©n¿íãRì[’>A¶[žnÇ×—ðåÐ!}uq–/yðQ½Ã½‡Èô*>ĽY¨6;¥®ÈË°|ìç\ä]’þׇtÃÓ­lÃQ ‡bàÊ¡Ä«ÃÜEÌ·÷.œ¿ýøE]ÍoêhûÂÒ`cr¯–…šá?J!Zm¼Ûñ&ÙÉÑ¥û~PÇ@lâOîvÏU$‘ä3‡¦3/!™>M ²‹|"=Ñ#Ð~$æѾ]y Êvù¥^/|‡H–šX›ì|²Q~öÞãQ†']N£;9¤4è+rÑn;ç¶<ò™"’òÔ´÷­Í7=R´‚¹½Ë÷ið¯ñÛ/ú_Wù?ÜzüÐ7oþ:ðê“§àŽˆÒ„SãU†“ÿ³ £‰S3%«á¨»Ïý-Ç%•ÃìYÜ)¶w.Þ¯žãܽaÿz+]YÆã­«gåä,P§‘,e¼*ôY×áð¾…šhÄ w‰Ô5Oï[A…Ñ£d!¸½ÜËýĆrXîkŸj2º'áÆj™™ ÉI&óøH9´O7•´ q—½1^X”8]µW.Vu° i•ï|o$+"‡ýâÓ'‡ßµî Ô|é»H¢%Ö4² ¤.¤fˆ\±Ö)×½(“—5ç´þìá~:à(_…¾bü˜Þºú(È)ÕöHw }ö›ž®¥@“CÉ¿;œC;qê±Þ葺ŠŒ§›"/1&:›:ŽÖ—± åg,óxËãÙ‹:z’¥Û–©üq ¶H4YÊÛSp*ÀeWYfølG{+…öÛié[5úËáZ­—{íWkRž·iû -êCÑÙ°Gϱ'M§M¼èîÚ º<&Éwc׶¬GtM‰ä0w‘ùÚfûrš¾WþáÙ']‘Œj‘¯ù,ÛòÇÌ5ÈEí~úÁ‹ l_Ñ/S]rÞ)YûyÏ>râ°óž%-Úva;,å©ïªïýúvæZ_#üÀøþÓ;¡û¨ÖÕv™ó'{N{E¸s,´çØ.£WCÈ!«ýÏKia)5ó2²üF¥X'ׯ)š0ÿmóMÛÚªP!9ä%KW¯­\›ð½:ªã×HפÉRù°c‰sU!ÒÍ­9ãÒrl‰A)?ä^ "ßqÚúb}YîÐrÁ]w¹îŽ.%ÝP„`‹]ä”2-3g™Ôv;Â1šºçTòXÔ“§¤ÙYY?h`Xï˼|n,KO²Õåo¢µ³±ý÷Ó %KE é· Yç'KýŠö¢Š7G=ïl!+Á÷î„ø8)?„büË@Ñ@)Ë<½~¶ÉØ¿BOF8¥)Ö4’ Ä.¤fòiïë¶é‰¶:œ—Çֻ¥œ ‡ÈACî9ÌœÜYä¾¾fm^Ôte¨õJýfÂÿr²”Åb•——#*"W õôô»^8YÚ¸ÃÉïj=ÿ"Vk’W|‚ÇH\‹`?ËŒ…^üȔњ±ñÀnGC<§ãÞM!E;!¼Ñ¬EPE™èV.êó3) Yçªéþu³©‹ý¶ùMc}øîÐPšúçñØðô«ul%­ji»ùlïVš¦¥›/ExÇ\®g äM­­i7N¾“luÈÛ:K{¾ßÑ­ AnúÞcQZWãDBœÎÊ}kŠk©¼Åü…]×5(ñåßý¶,2ðà—äni}Ï’wÖOqiWj;XÜvad cöØäð_EßÎRôñ €¢—8]E¸åå{ù9›~œ§ÉDZ;òfð¾ÎT’—†`§iaµÌÃÛö›ß|ñ´ˆ/¬b ÓUÁtµa£Åë¶y[q_ o¥‰9J$èbÞ¿“[çÕ·•f¤z=×ýúµÜ²ø½«Íq”ªýë¶^—1×Cu¢u¡ºW+ó²%CîÌðþ„—ç奇ӖºlÁ´gÙÎÐ t±MÓÆ Ç’Çâ)U~Œ¸Ö*£lr L»´ŠÂ½ ln%3¥55•±¼!ÒïirU–ÀÛRÜÜÝÞÔÊQ&¨âÈ0“ÒÜDbH)¨i¨ÈŠûÎœÝÕÜÈ{æAKMô-l -±¿iv±±CJMk(ËCl”CkmlG«k©È ±3†MmmléB+¨kŠoàß›J"¶tÁrê5ü—éKþÞ|ot(#S6­•·½^K£ÿGpG{#G (öîòçйÌ£4LcÈ_£Ä[©‰© öùå}@Ú˜8U§RrCâZúiˆÄ§1‚™ä¦F2Fe˜†¼¤° $¯™Zä­”˜ç9ií'öNŸMD†‚–æ—ˆîßÃWý‘6®"Òù°ÙlÁ“ø f°©Ä|Ô³ðè¥ëQøöBüp-4±êVQPF87éÿ ÿ‘Ÿð†»›ýñ‚&­3f¬>{ÓÒ-Caa "ý?ûÖDø€ä ‡@@€€9räÈ!C ‡@_Y¹ÆD ­¬¬¤¤¤þV» ÎדC®%kkkA ÃçêÕ«S¦LÁb‡8–‰ÃæŸ÷‹Áü㿶.ð…Æ ?Õ˜ÞPqóQnÄ +“ÿ¿gþ¿³Ù¡‘?à¿Àêx^Yù¢?zædœÈu¬¶ÊògzS'iÊ|ÌU’š&Ý+ÿËÄj‚*â/‹t÷ös“é“Ô¾àý°¸æ|Ë¿,ˆñùXòçtÁßÑ}éÀ`£ëãùJr(ÐB4-@Áa‡Üÿrÿe³ÙC+bÿÃâÿ&'?À¨/ŠI¼C3ðß`)×"xB†! -ƒ•SÓ6ûvž½ïê9Ã?f¾§3$‡Cºîá\à^”=G•t¥ÒkeÊâÜ#Kµ$ü P«÷¸‡¶X-m<{Å"cY‘Ú…tfýWI¥ÒÛ)wm±˜£Ï)ý\ÿ"P«#ÖYœ²g¢â'ùŒ/½.u÷¹¹[,d%{?b|>ÖÃÁƒü9]ðwtßG:0Øèúx¾žΟ?Ÿû‚Åb — Ò¤—/_7nœ’’’ØëÅÉ!̤ZÚºØX‚†‹HþQ áûÍ;S^SµïqÞvïÛ¯yoætUG­\s†b™r*ÃJÕïN\à Mušµn÷Ûª[Ï:`ÅI›óSôÂÆîjilcÉij*Ëô¼È¦47’èh9®eY~U¬öºÚzš4ÁÄD‹â7£ƒØÂV"¨â ÷ùS[ˆ¬††‚ȱڀÿ“C˜I&6uÀrê*Æ4«³¹‰*£¡!€0£¾Ä+¤1<'ÀÁp?0Zðq€àž×HÓkÿ«xå:‰w:A½÷¼yÁ"¢µ;d4´N˜E&»Ø?çÖßzæÓ’4 z§©ÙS Œà$ÿ5÷cÒÌT ¨ãQƒrØ/w#ðÅu¼­FP–é[^#ÕÓK¿hð¦ŒÖn¼AEpÖû€…9wzz&„øˆ¶&Wú;gºæ§OR”,Ñ…ŸA=ì>¥…;.”´4å1ýE‹×‚Þ Q¼ Ÿ\³hx†Š$á‚Ä÷ âèú|¾ž.X°€«…Ü¥¡p9wÈUÄK—.YXX±×#Êa×ÃÍË}n4 R—8i^{v-%G9¬¿Yx¨tçX9ÖÛ"gû”Ã-eGv‰ ;påY' FI«^0˜ ³¾`•Ã¾wz›Ž:ëÒîy-Y÷Pni~±Óew—¼úî+ -ßfºýéï ‹x5Ô9ìçvÅY©'’&JÕˆ K½òŒÌ‚0x=+¯¨(WKfyüú'j;y*‡ÆéÛdG˜c…W‡RäßÓ6<$Ãx£Y‹¡ŠÒW¸Ù9gã-)¼÷<“Ÿ±ÄøÅù{ﺥ4g†dÇ/×–þâ}øÿ89\‚¯Lˆ½5Ò–él¢OŒMõ6Àv7\ˆ=T+;\‰òŠlî¿wË<éû»·Æ]ªaš­_‹Þæ'¸pçHîê„|ÏÛõèºâ䱈²Û~º*2lFÇñ[Žµô¥ßÕãEíö#æºak4Z¥¦ §;oëNÝ©;˜ZsdKЩ.}énüðæ§ï"Žs',ßækJó*‰Ñ·Ô¨§c»_¿–·Û›àfŠ%]ñòqOyx((ô"ÓP_ŠWç~²H…¨ÞæH=ðZ¹Û|¡†È¦Õ¿Q°?˜²ÚÏAºqí…~­¡Ì!>o1ðÝ¿Ãfô¶Àsãë-…a£dy9žó~¾7×ä홢@{^<0>p«H+Š¢Qû7œ{¡en¦$o´vWÈx…¡)>²ÔA<äNŒ7?Å…fTËŽÐÆZUÓbÍj{DKºábüÖ")÷„ç “ÔD÷«O¬yÓdâ‘ðBý‡Š½êkIÂÅít¸¡‘G×—ù¬}Õd)â–&“yõêUSSSmmm±×#Ê!ãýÅŸŸk›¨bÚ«o‹>O6ßQ–fVèä~¬kJò‰Äï(EnöûÞŠ)K1Ì_å^Ò¨e(ŽuÙh¯Z‘œúK‡–KѱÀ¸/Ý7€ÿ߈“ùo7ºäy˜ ñn£a†ÝxÚomŪìعjVãOþþå^yqq …Á¤¨ÜF86â¤#*‡\˜oû®b¾-r÷»ï~$q¾:ª£"Ò5Q#¹pƒ1«ÒËf›JXIÜÕI[îûW¯{âs$f¦ -Ô|i³C{ï™ÔÑ$ßP¼–l• =šd­‘®…xäMH˱Ç]urdk®ÛÆ—y‘S”àÖk[béñ§S-I…ýäÐ6œ°³8ÊJ™ÓpÌ}ÝãíÅ1&-H— Ê¡‡ÆAãyK8vã¿u6ì‰m¹äïsÝãHÜdEV}þšo¶…’FŠAâüþ‡¿S†[aædEÉúžÛ×"ñY¥üdeÞ—yz][zhß2®€q˜l”4íW´|³jâ"ïZnÛã1V3” mÔ§ÕŒm@ -/Ôo¨ '1áªíASÂèú÷ÉáÂ… ÅýõÂ… &&&:::b¯G”Ã™ewjßwЙ]M D6Á!¿l3þ”»SbƒyLÉö–@ç}­’OÄé—¹:¦5hzß`ˆ¥<´õ»Å|&k*¥'‡ÃƒË -´ûäðD˜ôgÔŠÕ§(–ûÏf LЋÊáK½®wé¸Nw?ø3bòTc9£é^ùC*Á!3¬+tÃùV¼ž¹…±‘ù¸9+–ÏÐÃq>È¡—T©«CÒ ׂc›Œ±í·=m6?’ù°:¬U´Í?nÁ~à¿Ä÷zúá³Icä¾H‡þ5ˆ“ÃEðéÏ|æø93¦L™1ûÛá²èŽ -¿;æZëòÒö0ùñÕ§“2òýtš?O±徫r]‹³ùïª -tLšk+Wå徺8ËJiÀæ¾ß¹È»$ý;žó7<ÝÊ6=`üÉ7õ'^öi.EY³TÐÜ -×\¯Âô"N&<ðq)ö-Içi?ÜvËÓíøú’Fˆö—CÇL¯âC<í¡>Ú씺"/cÔ#_„KåP‘Vw9÷ð…‡ L{ý·¥ìð<5ù^èšÜÙg¶ís Ç%äùÊ Æg±Ô/Ë!§³úÂO•í,£6ÉæS¹~™L‘ø²¬ïá\© -¿U9ÎE93TPB•, …”å’c— Üä€hâ;Ì'Õ ·ßFê®~*ðÇ„«R´-û‰Œ®ÿœ~üêÝô“]äé‰ö#1öíÊkP¶Ë?±Í˜z-pÅ–‡ê+²NŸ¢ÎJ?¹Ë²5ÇYT“ΚF)vrHiÐ åдœ³Écþ“ïz;\”{dï ‡tÍé€;-Y«¡Ù]oVÜ»wûò©G»óCG<\kŸj2Z^0fÑX-3³a˜w}rÈi½êé}+¨0z”,·—{¹ŸØð9rˆ¼¢¿¶Ýôt-åÉa•/‚o¬?øsqö,îÛ;gŒ¸+âd’Ñ£µN¹îE™S¸3*§õg÷ÓGŒx,Z8@{=¤> -rJµ=’1¦Æá$9ü®uŸKp÷†ýë­te·®Jœ•“³@ÑþLpÛ­¿k}uHêÈ´m)äù}‰Ô5„P‹‘îÚ+«:X´Êw ¾7’‘Ã~ñé“C$çKßE-û„qSñWI wÙãLh&ö«ç|R͹©G ~_1~L¸*E{pô?‘ÑõŸ“C‰¾;¤©LYlmÈïN¬Î¢ù´ðÕ© ªËc’p7vmËzD×äÉ¡)®«jçJ¿3ÜÑ¥mäh¨…,íϽö«5)ÏÛ´}…Fõ¡èì?Ø#ƒçØk‘¯ù,ÛòÇÌ5ÈEí~úÁ‹ l_Ñ/S]rÞ)YûyÏ>ræL3yŒˆ'‹¾×eÖÿqë·: -¬49(?y¥úË$÷’m»°–òÔwÕ÷~};ÓcÁïë©«Èxš±)òc¡³©ãh¤Nûý!g§¬W2£í×Ì“T˜w½‰­ä ómñjŸk+¥/ו†ØÄK›ÝsF¥úèq:ÙXÞ–ú³=ΑÉGܤÏzùÜX–ždËÿ"Mkgc•eØÒž¼Ô¾SÊ´ÌœeZPÛíÇhêžS%KW¯­\›ð½:ªã×HפÞd©˜]…ÌúB÷õ5kó¢¦+C­W‚ì÷0ΤŽî,CðÊËÔɇKœ« -‘nnõÈ—–ã¤üTÔIËΓ>Þ×mÓmu8/­w?„K9›:š‚P8¨fN¡ŸB¸IÇ¿ tHù!÷ð ùnŒÓÖëËryru¿9ì±þW,å{äà|5Aö!>l¤P£ž„8%ÍÎÊúAC²]Áäø â¡2±ÌÓëg›Œý+ôd„Sš~E{QÅ›£žÎˆ‹w¶\D¶Ä O«Ù„|!¼ýäðcÂ… ‡™“;‹DG׿LY,Vyy9¢"rµÐØØXOOo°ëûoèE~lÒÉÝÔdŸ˜Ëõ ”¼©µ5íÆÉwüÕ¡)b¼Ìtv:ô -Ö_S|ÔßËí;êŸÇcÃÓ¯Öu²a”´ª¥MPìæt°§³rßÚ€âZ*$o1a×õc J|9Äw¿-‹ µfÕ{†î?T$’NW¤"®Oÿt óõÃg0¢åCká °»ˆRjZªÂ{!Nûí ›ïk”¸èJ ½¹¹‘÷ …–š¬Ð½‡ÖÚØŽV×R‘jlJèµµ±¥ ­ ®©Òc†{'ÜÜJfJ)jj*cÑßÏ¡Õ?z'7ÊHUŠùîêÎÕaWºL·–Y1 üP@˜ÙÑÔØË*}ƒˆÃè ;aEM-%¡ÑËçmLœ*¡ß8ïƒÃ 5‘ BÿÏÌ°i­¼ñZ’ýpÏ]"CAK³ÿÛ‘}cSˆ Ø·Ë0'©ÕInÑJ‰yžÃe†(œ¡/áйŸeŽÒ°þmî~“ëظ½0t¤ðÓƒHñùÄP‹ ŸÁ=ä=€ÓÔHƨ Ó—ðáTŸ]óàáý¼p‰]ŸÍWý‘6®"Òù°ÙlÁ“ø f°é'@¯KñÞPVÛÂÔX”\>UéóÆáW€ÝxÒÕ~×_h,‹Ba`Ô'ûïÛãfþÉ=ÿIº…o/Ä×B«nÕe„ó¶)"~B=’Â&W=\vágÒÒ¬ý+Á+ŸÞœÿÜOx³É¯—¿e«˜L™hªø¯è½éÅãš—Í]0NÝð›q¦_h™ -ü—`Óˆ/Ÿ½ié–!Œ°0P‘F‰/ü„z$¦¿ô茥¹à÷3"|NxÿqþsrÀÇä ‡9räÈ!C ‡@@€€9úÊrÈ5&Zhee%%~ÿ$_O¹–¬­­Q|%0 s8œ«W¯N™2‹Å~9‡Í?AƒùÇ"]à -Aª+0½¡âæ£܈V&Ÿs`Ìfs¸ž`0h!ÇzCÔó?4ó¢­/åàï‡×ÏB#À%€Õñ¼²òE;~ôÌÉ:8‘ëXm•åÏô¦NÒ”ù˜«$5MºWþ—‰ÕUÄ;^éîíç&Ó'©}ÁûaqÍù:—5C÷iÎN/ü=ø‘ 6À>’¯$‡-D£Ñ vÈý/÷_6›=´" -ΠgYÄœÌ]¤ù÷OÞŒú¢˜Ä;4ÿ–rý''dB¡0X95m³oçÙû®ž3ücæ 6Qè¤û!nþ,ÞÁåhÛˆ°ã˵P¤_¼—n}ÀÔ_ST¼ÁKy²Ô÷sBÊ©Èö+lõóß^À? ‡tÝùÀ½({Ž*ÿ¶‡Réµ2eqî‘¥Z~¨Õ{ÜC[¬–Œ6ž½b‘±èIš½ç¿OWF}ÄUB©ôvÊ][,æ¼rJÿsÒ¿ÔêˆõG§ìú¬yD£ñ… ×¥î>7wK€…ìÐïÄÐõµ]æ¯0ô9½ðwôàG:0ØûH¾žΟ?Ÿû‚Åb — Ò¤—/_7nœ’’’ØëÅÉ!̤ZÚºØX‚†ïl­‹Hþ{—Oljk©§¦©Šï­B°¾¼ýÃZ‹ÓUµrÍŠeÊ© +eT¿;q'4Õi6ÖºÝo«nU<ë€'mÎOqЈ »«¥±%§©©,Ó{ô0›ÒÜH¢£å¸–eùU±ÚëjëiÒÁ±i0³ƒØÂV"¨â ÷ùS[ˆ¬††ÂÀ³°;ßlëWΙ¸ïÌÁ)R·-õ¼ÚÊÁ[ì(Ë·Q|•äèTØj´íø‘x -d¯Ä‡@ªGÈi*R{øLa&™ØÔË©k¨|Ó¬Îæ&ªŒ†† ß`F}‰WHcxN€1ƒá~"`tO6îy$ý¯â•sè$ÞñåõÞcì‹TˆÖJìÑÐ88a™HìV `küœ?ÌV|ë™LKÒ,èMœ¦fO%0‚“ü×ÜI3S ŽG ZÈasP¼ÜÀC×ñ´A¹ïQÄzzé Þ”ÑÚ× ¨h°0çN/P_nF$>¢­€É•þΙ®ùé“%Ktq  ï²Ì} c0TAèÒG1ûµNÐvHÄÐÀÈ ƒÜ hó{»–ÒÂtJZšò˜þrÈs’?y‰Fa´H1H|'"°ÏäëÉá‚ ¸ZÈ] -—sˆ\E¼té’……@{=¢v=ܼÜçF³ u‰Ó™æµg×Rr”Ãú˜…‡JwŽ•c½-r¶Oi0ÜRvda×™¸°Wžu²`”´ÚèåÁ±ó‡É0ë V9ì{§·éx¡³.íž×’uå–æ;]vwÉ«ïî±¢ðmÖy¡{Ÿþž°ˆWCÃ~nWœ•z"i¢T݉¸°Ô+ÏÈ,ƒ×³òŠŠrµd–ǯßq¢¶“§rhœ¾Mvq„9Vxe&Eþ=msPÁC2Œ7šµª(}…›s6Þ’Â{Ï3ùKŒ_œ¿÷®[JsfHvürmi¡¨pWx«—ïøSÑ&ÿD6ÇÉõ´ÊLü³ -Ãij‰º—Üìc_ª¹ P¼†XºÏ‡üùg\ú·÷\²òå £4ñŸAœ.ÁW&ÄÞÇiËt6Ñ'Ʀz`».ćª•®DyE6÷ß»ežôýÝ[ã.Õ° Í ŒV„¯Eoó¿\¸s$wÑ@¾çízt]qòXHDÙm¿ -]6£ãøŽ-LjZúÒïêñ‹¢v{Ž‘GsÝ°‹5­RÓ†Ó·u§ƒî‡üL­9²%èT—¾t7~xóÓwǹ³•ˆoó5¥y•Äè[jÔӱݯ_ËÛíMp3Å’®xy‹8‰§<<z‘i¨/Å«ó ¿NY¤BTos¤x­Üm>PCdÓêß(ØLYmˆç ]"<“öÉ!þuV`ø´†2‡ø¼ÅÀwÿ›aÐÛϯ·†’å}úÎûùÞ\“·gŠíyñÀøÀ­"­(ŠFíÜpî…–¹™’¼ÑÚ]!ãDvË%?ߊM;G¢žï]éQ>3÷h° çi„{ÒÔôCV¯}E['pþH²bº°¡@Âí„‘¶ƒÔ ²Ý¯DšÏ½ˆñ槸ЌjÙÚR«j`Z¬YmJ7\ŒßZ$åž°i2ñˆH„¡þ£Å^õµ$ãö;\‰Ð‰Èì |Ö¾j²qË “ɼzõª©©©¶¶¶ØëåñþâÏÏµÍ T1íU‡·EŸ'›ï(K3+tr?Ö5%ùDâw”"7û}ïGÅ”¥æ¯r/iTž¸}¹fuVtv{dHiŽú{¾ê•:êP{å°4u§tïîŒJ†®ë&/s%ÕIs„2ã=éª -Zæu¢ãVÿÃOnîÅͺNÑ16*U)A‰¿É,<˜1y¿sØ+ã }ÑVJokjHcmiK É¡ÖËx;÷ãÍÊs7„Úªþq0¶¨–¡<§OŸ2Ǻl´W­HNý¥CË¥èXàœPX¯2V9g6êl(JR wJ” O~`Ó¯ÓgOOq ü]jfæ鄱Täz ɽ>»2n÷kï -Ï I/‹'Ò¨ÿâäpîÛ.y…&(@¼{h…a7žö[[±*;v®†Õø“¿¹W^ÜD\C¡G0)*w£Ž8ãˆÊ!æÛ¾«˜o‹Üýî»Iœ¯Žê¨ˆtMÔH.Ü`̪ô²Ù¦V7Gu@Ò–ûþÕëžø‰™©5_ÚìÀÞ{&u4É7Ô¯%[åB&Y«A¤k!yÒrìq×DÙšë¶ñe@^ä%¸õÚ‡XzüéTKBa?9´ 'ì,Ž²Ræ4s_÷x{qŒI Ò%ˆr¨Ä¡qÐxÞÊŠÝxÆoÝž,a[.ùû\÷87Y‘UŸ¿fã›­Ea£¤‘âcÐ…8¹ÿáï”áV˜9YQ¢®gÖºwÄäùHõÞü„&k¹7Ç‘•î¾C9!ÇMå‘hëFÁ}m¯ê3ÄBÂJÌQ"½°J%Ú|™÷ež^×–Ú·L‡+&%M{À•Cß쀚¸È»–ÛöxŒÅ6 Eê7ZG”˜ˆUŠ6Ó”„0Àþer¸páBq½pႉ‰‰ŽŽŽØëå°»éfAfÙÚ÷tfWS‘MpÈ/ÛŒ?åî”Ø`S²½%Ðy_ë„äqúe®Ži šEÇ7b)mýn1G'ŸÉšJ)äÉáðà²í>9<fýµbõ)Šåþ³Y¿B•Ã—z]ïÒq?œ î~ð fÄä©Ær(FÓ½ò‡T‚CfXWè†ó­x=s c#óqsV,Ÿ¡‡ã|C/©RW‡¤7®Ç6cÛo{Úl~$óauX«h›"Ü‚ýÀ‰ï=ôôÃg“ÆÈ {C}¼ÝÎãRרЭri»I¾% VnnZa|2ìr§Eôéà TZ‘ë±ìZ¡r„ÛË|ãì(Ò¢Ò`øúˆ“ÃEðéÏ|æø93¦L™1ûÛá²èŽ -¿;æZëòÒö0ùñÕ§“2òýtš?O±徫r]‹³ùïª -tLšk+Wå徺8ËJiÀ]Ì}¿s‘wIúw -<çoxº•m8zÀø1’oêO¼ìÓ\Š²f© ¹…>®¹^…é#*DœL2xàãRì[’ÎÓ~¸í–§Ûñõ%Œþ-ì/‡Ž™^ŇxÚC}´Ù)uE^ƨG¾— Ê¡"­îrîá (˜öú nKÙáyj(ò½Ð5¹³3ÎlÛçŽKÈó7”AŒÏb©_$–CNgõ…Ÿ*ÛYFm’ͦrò0ôç ®1úI»å£#HÞ³®g«Å„‘C6¿ÝQð£ ÷vd`ë2§I=‘CyTí#àŽ(‘^8ôF¤ùs¥*üVå8åÌPA ]»4R–StJŽ]f€CÁí·‘:…+‡F ü1mf†åc?‘öß’Ã_²›~ò±‹|"=Ñ#Ð~$æѾ]y Êvù'¶S¯®ØòP}åBÖéSÔYé'wY¶rçw9L:sh¥ØÉ!¥A7ðX‘‹vÛ9·å‘Ï?NYM—·8G\ëPšs°dã#?Ç´zÜ·66ßô$Ñ -æöÎÓ™.œ¿ýøE]ÍoêhûÂÒ`㾕ÙQo™S®+ã_©:ä—n1‘i½âa»­÷auØ#W¬ªŸrhZÎÙä±ýäÓvs­íæ*¶®±TK×â#Ç6+ýì¾"®Ùßþ˜¦³¶è¨÷p ¹žo‘Ãlg„†¸|Oè—a|%`ò]o‡ƒ‹r,ãïá®y8pç$k54»ëÍÊ{÷n_>õÈ`w~與kíS­ÂBF÷¬ãÑX-3³a˜w}rÈi½êé}+¨0z”,·—{¹ŸØð9rˆ¼‡¢¿¶Ýôt-åÉa•/‚o¬?øqö,îüÚ;gŒ¸+âd’Ñ£µN¹îE™S¸Ó)§õg÷ÓGŒx,Z8@{=¤> -ú¿öî;®é;àø; $ì!SÕ¢õ¬vªu\—Z½ê) -·â(§ç¨R[GÝ¢(8pKQOqœÕêuØz×ÉOj=[«ukµN@À² $ä—G€0l{ZÛ×ó>lÈ÷›Ï÷›ox%ß|¿|Ã⺯_õè‰+“XËá“KúM,½tT[íÑI¯,ús||gO•œŒ0¯îœQÇ#ãš®ˆõ³±þËýe›O¬¬êJr˜wêãgéÄÖýÉÎ/6tPZŽfÒÀ¸':ì¹0fY×÷F/mðr~¡ˆMóZ8Z~iwséV·³µ–Ã$kkÞòËÀ›9,ó,,õŒ¯°øl¿²–Ãè–mì÷ev^4'$Ð^²“­=)Ræ+Æ»YcsUóïGVØÀ~_9¬Ñw‡î­ÿÒ±½é©ÐÔéÚ©`ê ¸+µzÎŽ µûlΛkz›rØØ.ïðŒÞ#w§·.¿õ[ßhâPpraÈ m©n/Œ›ìu|ͬußê›NÜâ›ýÉð¯[òpÿ ý<®\þá½Oi•çãúô‹¿êÚqä°öõšvè𰓪ÂHº¾è_|éÛ/¾>—kpm5acloÏó1¡·¤ûõš2#´™SþÕãö_î0¸ó?<м©¿‹öتqÓ÷jŸX³'®eÁù][Ó7líuó!/8Ù´áÓT½{Ís(º+[û†,<] J÷ö«ßyB}aEŸ¾kÔŠÊ»kÂŽÙÍô5É¡”YÞ§j¿?tpùyuDCû_aCÀÝ+¾œ8hø'ÁkVöô·}ÚÞñãY¹ix@IŽ^ãl:0¢ðôü¾Ó½b×°Ý>ü³+cº—~‘§/øI¯qSëïìö4íÚ[üÌêø¾rãËi}fåÏßU£¥ƒ^=4(!úEOEÖþéýcní,­äBÓ.¾Q'^Ý0³›d|ÌíXÅA6ËÙ9|اÝW.ê^§äü¶Q×Ø-Þ×<×ÊUæpuëÂ]V&±–ÃÇÎ ]üRÂÛ½Ù_Í›tvÔŽS¥èâÛƒGí/0ØŒX¿¼“‡yן•õ£·¶ªßG†Å<»víK^5<*ØøÛþo}æ§9<9cóŒ†çÞê?õ`ïë›WtpWVCõ±Û¤»fmÍ[ kåYèž6¡â⻥íþïn«–¨-w–ŽÜ¼P‘8~æ±öQ ú6Ê~×Ê.“ûYcVr¸ºUÎæŠ؃”CN—””dµˆÆT5ýíÓnqj³s^~ìðÙ]Ò*œwìXðÙΫ¥ŸÛ‹öüê¾ak.êIÜÑPc|âòOnŸ;uå¾s9zƒÂ¶V³n掩ŽFJr-yuLâ©|qjÒ©KÞ§Û®¸–æоèòŽéc—v>»È¶nÙSnD¡PÙØ9yø=ôØ‹}Føs€ñUþ™QÓV||*Kg::ÔÁ§EèÒùÞ2rߥÂÒã]5¾O‡/ˆÜÔ.Ý"Eê‚vFMYùŸt¾­{¼”²cÕûÞ×´f9”Â3ó{ØzEçÐlÆ®„.Þªü#oÙ{½Äù‰ØwM¯šåPSvy· Ôý«ü‚,MïCÁÙíÓ'%œr¨ï­L¿U7lö¬Øg}9$6Ý·¾‡"ã‡ÌúÃOíâk«½üÁ¢7W|£¬g|KŸ–bh½|t Ê"‡†‚ÓëÆŽÞ]Xß_£ònœòÍ•i۪ϡiÃNœ¹5ÍÇ_uíªc×™QáæCi*;¾$ïxÂĉ{´ êÚjê¥7é`mlºÒƒ8šz^*¶+úñGÇ  -rkƒtÔ^z/zòªƒ9Î žluåÓãol]lýF©*‡íÜŠ¬ÍÇbð·røŒê»¥›ô©:(@‘£ô—szoXWšÃÒýR!Ë<ìˆzÚ|.‡ÕõcuUÛç^öÚ´O2ÔnA‘ËfÕäT}ÊÎþ½–»GïŒkí’ü÷îoŒÞ±!Ø·ì!sè’gñ@Sü’bʯyË/>r­< v¹‡­-~áÅÝó"Ws¬c“õ“ç¸åsß:”Æ!ïû ''?63¦_­Ï–_Ʋ[KÍטµ¶sÉ·¶ýœ—V9÷î4|­V›œœ\ñöê[X}^ZJ–‡o-ËÏþRòÓ—‚Çô³åýüm-î|=Åt¢…¯‡ƒÅ{³’‚Œ”Ÿ”ž¾îê_çH}~FJzžÒÙÓÛýæÃß]ÏÈ.¶qñövÓT8>³¤àÒ‘«Ž4¬eS|uߌAS>ÎkVŸ·mfj¦¸û”}ÍTK_a:,Þ׫f´Á4Ü4­³¯wÙ»[›>7-%×ÎÇÇåö!þU 2ÿxÌ€Y®‹6 ­§®æƪU?II¡ñ%PâZ»ì2]L<6eò¦7šZžÔgmýüÌUý?QÍV!Vžë‹o:»'5%[å^ÛË©šM¡ê5üËÖX%Ø/sOÿH›±ˆ…¥ôz½ùL|•JUÕ>ÒŸ¡ðÜâa£wœJ/öê›8µëýß«azû2祳F—›«Uy¶ŠX2@ÐÏ>íø]Ê;2uò&ûz¾Ê´Ã_œk8aÕTÓ1ŠVoüó©)}öá­oïøàß™]»´÷ýÇúÛô‹Öðýõ»ûÞúìï>Mº¬woÔú©Æ.ijPR˜zöè‰ó×ó vž þÔ²±×¯ô1ø=Ѥ?}1½HíóP“úÊoüó©!Cáµ#G®ªë7 2ÿý XóKÖðýõ»Ë!w@ ‡9@È!Br€C„ ä!‡È=ΡñÁ*Þضm[þ6<à~ºw94>RÇŽ¥Ì· †’’’}ûöµnÝZ£ÑT=y‰^óâ¿ -•ª’«6 -¯$~$Ëî¡ömýšWÁ*÷(EÙ©)7ŠÔn¾Þ®ê_?ª&c³¼Cñ½X<@ô¹iW2´v~ÞÕ]gîÝCI§Ú<ímõ’~·ª¬ònŒ/C©ôõWõH2¿úòL£vO{TöÖW—uæС³?Ù7ïЪŽÝÝ]áæ/‡Ê3T³€R÷(‡æ*•JsÍ;4þ¯ñ¿z½¾ú"Þº½éß -•½çCmzŽzchër/­2W~¯lfÚK›g/ú¿‚ú3Æ4s¼ËW]þ™Ý± Ö¼ÿ]ja‰A¡Ôx=ºhÉØGjtmšŒÍò>u³j°,øcÐçÞ<;jãw%~þ.ºë׊{Íš=¨IM¶»üãÓF­ÿËâùÖ/¼~ëÊïíÔ'ªº›Åܦ¾2ÝoÉ?^­÷[dnÙë¡Wœõüo¤·}¹yà³Á]ïêrŸÆQÿÜàæ¤Ô)|ZœüFïFågPõz(<7ï½ç_ÓÄÁÊñÇqïrØ©S'ã?t:åíæݤ}ôQË–-]]]+ÞœÃB¯^éÑH.}¾ó£ãyŽOÎÞ¶²³§èKL…T–䤥8Øå\¼R`ëÓ¨‘·FaЛ¤2䧧åj¼¼œMWy.É;>³÷ݹÍïZÕÖM¡T©L¯}^zÊ £··›ùóÞ­iͳuññ¶W‰.e×Ø~sögk<ß·O»vÙ?H:×yÖ¶î¦Iôù©™EvÞµìo½u/;“2c+ýy…IÊ$SõÓ¹S—,î¯Ï½ž’Y¨t4ÞÝAõ]B ¿”.õÝу7Ô\ñZ‡Új… -ÜÿïÜæ]q6mw%…™¦KŠûx޺ƹi«Sª¤ #-KíåëlcЗ7AóSþηsè¦(¹}7CqvZj–ÁÑÓËݾܧÐJrXa Ön,“CÓ -?Ë´—¶„G¦Lho~EV»\w^wFe›,~À˜/zoLõSU²ÌóQgŸ¥ôðq3]\Ô}(¢ïêþW>í"æ_]ÎõÔ|µ—×Íß½Šµ„Ö½ËaçÎ-4~4´¼ÝøÑXĽ{÷6iÒÄÇǧÒéÍ9Ô5™½3¡«wñéù¡ý¶¥¸wIxçïFöœvÆåùîõŽîþ:¯Ñøð’•K~°øtuÚ©ýËgß?pµÈÆ»Cäº] -—‡öÛp©èæl_û^¬ÛGQSâ>>­•}@Ûð™3û7+Ø;Ðb¶AQ;^ôОZÐkÀöT‡§gm_ú’׭רA’ö¨)Ë>>£3(l=š÷œ8wL§ÚjsÛ¬Ž­ºªI*~:¬›÷Å‚Qo½s*Go|8¥]Ýnë§ñFöB{auXÄÉ׶Ĵq-û.È&ñ­×·¥ùÖµ½zɾëÌyCuR«ÓknÃæî'nØù¿0iÆ_Ò'šƒçZ`åηshûùmcÇÌ=¨iè§ÎI-|jnÜ°2᫘C«c¨l`æÚ^ùpÁ¤Í6£_{¡¶y×¥þÆþy“¢öžÐ5x¸~ÃàéSÚgm¯n¹BýÕVGeüú¦:zËÿãÖ׃Í7á½ç=ás"M_pé¢sÈòŽNÏ;ú½³¾A»:5|uÎXŸ/£ßXsÊ¡žkî…ì ˆ…¯wò¶-ûèÓ:_]^ÅZÂëžî,µzÈLqqñ¾}û7nìççWéôæÕ0uÜ“¶—>^÷Þe£q[6t<ÞsÚ±»:ϾòÊ“žšå®Èùç,rrLëÒ¢ßßCj%ÇÆý'Ë·ßæ-Ấ.œ·êÖ¿ÿ¸ð ×ZÖIŽšxÝ?lÖìnî‡OXôµºËÊí×"‚ïÌÖáñ—ÿú&mÏàžÓËŸfï~»³§ÅûÁ‚S1¡·¤¸½0vrOïãkg­;¬oùÏø^Þ™¥°66ß UMR!‡Ã?Ò}ò…À Kfµu͹|âDf‹n]ýxþAd5¢Wl‡·7…ùÛ–¹½øòæ#\¿¨“§"+yzÿE^±›Fê…w{Ó}Ê–¨çj™6Ò[Ák•›håÎúò9lqvT¿ ƒ7-{ÂYLŸˆ Š²û!*äÐêê¦W2°>kF¬s"júWÍÞœ?¸…³ªÌÂl<1sfÂßÚÕh¹ÊªÏT×·–ô¯£¿üÅŠÉë -#·Æ<§>lu=˜rØ}ªÏŒÄ™mÝJ®lø·£“g?RòmDت›V·r]Ê»#_M~eÝÜç=Tº”ED$…oˆzJñåÜrþû·ªÖX÷.‡]ºt©ì§|ðA£FêÔ©Séô–ß)5µŸ=w@PžécÜI‡Wïœ÷¸“•ïÞN¹tßøÎÔ&úo"^q@Ùîí=1*OÎ ´+·ÙÒ=kÛ¹ÿß·Ïò‹ª‡Zµ tThS$}—ïºqù#³Ãî̶”>ÕœÃf³w'Xæ°èÇu}û¬¸â=xóöÑ 4¹ßŒí>ò‹â汻׶-þ°’± Uþ£ªI*~:ô>9=xØûöAMµ|.¸gû€»<جJrhÈJñJBÿÄuíܦ_÷cûÄ<».¡»ãáðЕƒ׶5”¼™ÕÍ¿iåÎNGËå°UÁÎ1C7?ö\ûÖ­Û?ûx=‡²é)ŸC«cxûÏg"¬ì¯oˆ›£KXìÜõËo¾wr¨©Ñr•U¯‘]øØ©k7}ö•ðžÍUÆÏsVÖCiû¬O\c,Ÿä¼aõ3ªÃ·rhÈJ<ÃùùŽþ¦%4dÝwìéUGz~o9·âkïTµ–ðÀú­ä°fŸ눚òL-£WÝz>¦mðVc†lÙÑ@Sù¡(ºÃcº O’gâ÷Ķ(—CSÌ.Ù=Þ­ÛŸœÍß(ƒzu,žjžíߢ\­Aåèì¤;mugiÑÅx+m‹Ù½¦]ñÞJÆf=‡“T¿ºðòÞÿòèÙs'¾þæ\OȦNll÷ë>EøÒ^Xqüµ-±ew–VžCË#Vî2‡Æëó.~—|àÀ—í:RÞÆ7w¶8Xóæ0$ºeû}™Í ´/[µšä°²#q¬~£YîÈ29¼u{þ‘ aqÝׯngc‘ä!qm§D6w2P©ñ}øáÚºoË=zUk ¬ßJïæ»Ã;ïÅÊ®Y£ÚœëÓ/þªkÇ‘ÃÚ×kúTí÷‡Þ’î×kÊŒÐfNùWعÈ'G˜§Ýðâ;ýúoÎ|8jw|'×ë»Æô›“œ­©ÿ\XhÛv9çî?×yælÏøÐAÛRÝ^79ØëøšYë¾Õ7¸=>Ä'³Ò±ùž_RÝ$–ã÷MÙ¾ëh@ó¦þ.Úc«ÆMß«}bÍž¸Ò=5ø0JSïõ•ã;øªÅ|(M^ó.²¶ zõР„è=Yû§÷¹³O²bZå&Z¹s…¥m4¹z³éð‘ÂÓóûN÷Š]?¤®Å© Öv–VœmÝt+7ÞØæ…ŠÄñ3µZз‰ƒEBÊî,­~¹,ýòªE†Å<»v­ñm®îÚŽðáŸõXÓ½ôÛI}ÁOz›:¿ÌÜô9U­%<°îQu:]RR’Õ"[PÕô¿b‹.ï˜>vùg糋lëݲe î_QÓV||*Kg…ÊÁ§EèÒ¥¡'‡WÌ¡‡Êt¢ÅâèµïN1ŸháùhHÌ’qMäÔö¹SWî;—£7(lk5ë6aîø—êhª[Ûü“ÕMRfgé©)a#÷]*4\e|·útø‚èÁMy?ú‡a:ÑbÎüßéëø»_O)~(dÎÌþí Î$N‹Üšæ㯺vÕ±ę̈pË#VÊeÀÕÚËJ³ªÙ‘ׇĦûÖ÷PdüYØâ©]|-÷КNiö‰ÖÑÞ¼í9MI˜Wç÷ÊÏÖt(MåsÈû~ÃÄÉÉÍŒb¼ùæœ-r(UOþ¿È¡KÞáe¯Mû$Cí¹lŠ_RÌ›+¾QÖówЦ¥ZG//ã’_DVµ–ðÀºw§ákµÚää䊷WßÂ{@ŸŸ‘’ž§töôv¯ö‹CqîõÔÌ"[7ooõí]>ú¼ë)¦³&|=jüMÂ]Mb|›z=#»ØÆÅÛÛMC ÿˆLgej5¾–'4è 2L'$øzÕäo5ÔäÎ%Ú¬´´ƒ‹·¯«º†ßO[í] ìç õÈôÚ¼QlW˧’×æÏXKøí»§¤ÍXÄÂRz½Þ|&¾J¥ªj)÷Âr9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!R.‡÷{0Ü77sx¿‡À}öÿê%e} -endstream -endobj -216 0 obj -<>>> -stream -xœ+T0Ð3T0A(œË¥d®^ÌU¨`bjh¢gb7161Ô³4«4CC3cˆb —|®@ \'ƒ -endstream -endobj -217 0 obj -<> -stream -xÚ­XmoÛ6þ¾_!,Å&5Ë7‘ÒGÙVb­ŠäZt³`Ù§½¡@»¢é€ýýÝ‘'‰²ÕA‹À%žïž{¡’O‰H8ü‰ÄÊÄš‚åEòÛ‡då’W×")˜6:q&Â2Y$KË2‘¸ßI_tëÃmÕºÒÕ]»XʬHUwµøÕý”(c™*å–å~!Št½õS¯®õ©8“ŠÄ$—ðãðð˼tå’O ËŒMþÖ‚©<ùh¥X‘÷ï“>yTÎ|”ÙHg±ÂøUô¶ -ª^u­ózuMSíIµh·sÜÄðIÄÉYNÊ4ÉŸBÓš C²wu»éPö5ÉÓº­»Û]×W›p×]‡k_¡’o«6»rÕ?p%ëøÇLŠd™K–ÛÁ¬âTÅôàž.Ì€X°¿¡Áã_'$Вɞ왧/»îuÐX/l‘–« áN‘—̪ËuÖ›jíÂØ þÚÔý®)ïIÂÝ7U¬ø±$¹kðb¤×¿°\~…"|oeMúCÝ8 €_l -Ê9œà¶uåiZzz­·õºlp&KbFÓI4^Wô&Y¬ÚÀÎôb©¹™Pï-!Ïðº?¬VÕÞCÙ´l7„IÄ_ͬôÁF´©!ö{Šü<=´µë¿àp¶€ •#1Õ©C2¦¿ÆüDL0ÁTãæÇîy•33 ͉¡5Øž¹­7ÈG;ciC+ÿ¿Q ZE&1É*úœUÔׄk„?æ?V¹¦îÝ3CÂJÏð†˜]…\êÓZO–wÛððp³œM£œ³\ÐöZRëÄ2ÃЈl°TR¦Ö/°ÝS*¥:Tö}·®‡Âd@§Úm§„rFe°Šx¼ ïžh‹!TÇ@€Œ|ïsÅÌÈûì›ó~‚y?íây¤‡ÚigˆeÓÄåjðøÛÚçz -BG {}Ø{÷C‡¢d›¡ÂÁ ¶d HÝØ“õÌ·¶^?z=«óflR䙤%™º˜¶ßÁ;ÈÿR=Ãè’©ù>W¡›˜âIÇ<¨€ÕÕ~˜¬Âš/JW~_öUÈúR«iêªò^éAÁq*òVð¾ŒÀÕeΙP3Ú³.ðœÒŒ¼·ßÜs|Ä{çêö¦í…ÁŒ–ëuÕ÷O±Ûu]C»QŒµSø¹D.ÐÏA€ ×cš‰p€ÅìÄ9£eÃìÍ!tn¬Ä=íÿÄ9ÙI+aæ¨/>ßÇ=Ý t:@:ÖÀ¢”P™[8•ñtÛQžÀ›ÐÀŠcwpAú®FûâÓÕb)R’ˆûH÷YaPËÀÒ°vÎø~^ÀЫ}wϺvˆä4/ @±í…ìÆ32ÝîñÝßÿüñÈÖß}|ÿîóÙlïå=í³à5\ã¬Ã2q‘à}Ãt¨8´´U_ß´˜ñîºÛ_N!¡^a•ïë½ °Ù #Õ–»~Û¹þK  ³ 0Ø\[9˜¹¶Ý¡!…Gø¦ën_cjÁ¡oGyá7N§Åã¨0` -8˜Ì¢bhê/‰‹ü¨’D4di.¢ !¸Åþ" šÊ…ÁýèÑ6½Û–4zâÄíÿìÄ’¾÷€´X d@§¨„§þD³óˆë¦éÑj÷äL8Ye±/ǵx9Æ1Ü´‡Ûö&D„ mLOœö N®…N¯ºÛ];¶—K+3:¢Ã܉2… -ÊÀÜ‘20¬‹#€âÛ¾û©¦* I‹Špëk\É,¤Ý -!èÕMu]špäá±î¶5ï>âý‘²+ÉÁåpð<ìHŠ!”g´n¢›KðÑ@ÍðÉ,xÄ<õeÎ -H`:ú4G¢os"±,³’²m¢•–Ù2³äޔÕ.ýÿ«3½¶Šbè6JŒÀŠÙ¡¿“Ã8«§†3îåÇy(ä–øijÑã¿'""Rnø:ÿDg$ãbþÕsüÚùæ»ÿ‰{Ýy -endstream -endobj -223 0 obj -<>/Length 28112>> -stream -xœìÝ\çðK!¬0CX -N@ý;Z«uïQÛjd)‚Š,¥à8P[†lÕZ­­Õº[µV' ! $—ûg0B–" >ßϧ–—ËóÞ÷Ë{y/‡Ã0 :[ÏOœøÏü841Òmµè¥z~w ‡«ÄÜ'9‡>w‡Ä!è½”túi¦§­&‡Gj*éÏþ½õ°ˆùË9b8ÿß̬ì÷x®ý2;þ¿ñ ‰?zˆCÐ;)h±˜÷c>ÎÎ)crÔ´ t˜ÿxXñ‹j=ÆðmñÓ‘‰ÃÖ— è\‡ wµÐj¸*ñéåŸî4ôqxÆÃpòWÇõ7Ð’C8e…¯þ¾^%ŒQVÝÈz5Ú¬¯ÆʹóGFAMãôFâÁvóaþ³>5~»UÞúb¥ã‡' ýj¬‰‘ž²žßsÍͼû_A¥Ì%wÕ - ·™5szFFV.z¨­¥5jÔˆËW®¶4?Ä!èlì–q¸SII,^³Öà9æã¨J´œó‘¾_ Ñaß;ýÇS¤!‡Þ½Èz\I÷E?´®8éÄeþ”~ýŒ'OšÄÿáæ­[ü_½Êkœ™Y”›ñ¼ a=/fµ¾Xé8ì?u᤾*´9yt¦šþÁ¤»gN>­áJ/¹ËÖ] £%N4³øÓÛ?{ž qz'QžLJb7C«¥KHxj±þŽhc%wÙ>ÖŽuÞ¦ÎÙ(â•|„ÞšzÏ8ä±é%å<2•¢Lhyb³8d®…÷¿ˆÃ†œ$/ì?H÷t¿ð\×ÔDM¥¿ëOê­ ÍQ¹JFjŒ¼*S·ýÞstäéŽþý‡k<® ÎÜ´ÓÊPâ@þ^qˆ2ËJè¥áݯ(r;Mâoö1nUi KžBшç2a<“åp§’VR…)iS4«{wÛÉ2Æ&5fºžWËàU"œ[|ÚÕ.±ßÖ¨ SuÍ@«_û»h˜*¾¥í"¹pÙ뿵æ/\ƒ*nJ9ßÄ­&|¦(Š&âî5+&|IeØü›¿$ˈ’Vjc=޽ȓµí”ß85ñwYu2ÖySÊÚ"HmÁ¹=C) 6£—i®?`óÛf QgÉÞÉú™ŽÑÍ¡¡¬ü<²uäÑ•ýeUÛ®8Ô~(½4¢ôF¬ãïB;úþO§ –T÷ꕪå¡àå&J8Y o½iþª¿øÈh‘Øþ¹ÇFòícçlñ½EEg¢òÛ˜ë/$W¸\ºŒu˫ΊX·áBÝcù:’QÉ÷»Î„DÛÞÏ!A›:‡œ7‰KVþ³"éÐ\ -îÝ_¾6A:GOx•É˜8#ˆC—øµ9~¾wÿçä8ŠÜr蘆8´Þª¸!ÀÊ@A$µŠ}+ÃZˆC¬òŽ‹ùNÕ³ µbU/?‘à¢ýŸ£U¸Cʱ‰-œ{épb(‹‡W¼±F‹Ï::§oHõªPú›óÊ++÷W㾎[æV°õÄöa -ÅgÿZz|ßLm~<Ÿsvº¹*iÿ׸ôåßz«o?µŸÚRõ‹õñ'ÂÆ…KÆpüåÖßåúO凃¡.£ÈxëuFÏl”çîÊLK<±ÔPÁji¯ò+êx89Õ¾ý H¨¬í¢“-½pÙë¿Õ8Ü=$,X3pÕéY±Ç¾)ß-ŒÃ• -d5-ÃÙ2ÔþDÌx5±YCŽzæ*YLõƒ¦ù[ÐZmµùÉœg’LGñÅÄo~˜1D_Œ¬uŽ¯¯aBíYéߎ®9í`ÿç¸sÁ>Æã 8y¦Œ†Œ¯I’½“·™ºûԞɼÂÔ%NÙÛN “õ1v{ãPji}ÿ“ÚˆüÄš·QÙçôá9ÚýÏuv±cŽÅ[~éhÓdþ- Z$¶~Ä"¾·ˆï {?¥ÖÆà²h[×Wk“wOPÇÊþ\o±»öÀùðAÛÞÏ!A›:‡Ø»›+ÇØŸ:.<íÄßq-‚fÄ'LËu’š˜¸P)cù÷^˜ºyéÑ}æýH-ðþ'K%âð¶³eÈD¯á*¢×Â+蚘èq3­£\NDŽV‘ýêŽCóùo1Ñ¿f¼©æ!¬ü|Ò–³ ³´q•w6ÚÇÎ<1µâ õRpòþÛú¿Vý°Meæ7}Ÿüñ*³.ý7.:ÅÈ3Y~*n²°‡Ç):½fY\ÝèYSÆ›:ý+ceZrnÕŠ?­âvh¤¬Ùš55ø¨cÿ—¾¶G¦ÅDÍ”‹ÃºÂÓ»÷Þx[ùÒ(ôüáá\Û%ñ;Þ‰…·´þۈèD Vôϒͱ‹Ï¯Ø¡šdõfµ¬¦=j%dzÓ$‹ùÀ8D§ÈÊž=x•}ïÊ™‹y£Rw|ì,£0JŽ°†˜9NR¿M¶}³zñ±e'ã§h6î¢2ŽÎ1#:ÊÞÉ-ÂVŠÌY“õ£åaþœ“¤ûîíC©¥}Í’^oÿ._ttÙɸišx«ük…M¬SêÞú6Mæß²°EbûçGÜ(â{KKq(¹6¢‡e­´Nv=%H>¬ü†½í ÓáÃ’D®€‡‹¿˜¨ø;}Þá½Ö[ûëzÿ8$>ò² žvìØ7·(ÍÑéúÂðàÂ<(몠Nd¦wn²Ÿ[¯«õ ó˜d¨ÄÎÞ°xߌøxþ‹#¬Ç¶~F?>ZdhT¼¾œ`]-:2iû摪 ñ¬gjªÇy 1ÂedÞ¹s÷Æoi™ýö¥øš½\k±wêñ¤…ºHÅ_Á.;r'تÜz¸0rÿMΫ0K§'^i‡'Ô÷t¹…)K–ßÛr¦…8\H%H,ü+²ŒOoÛ‡Kõ·¼íBû»ÿ݇ù®²š–ÙJò+“,—ù¡q؈ýâèbçÌ-i8ëdÆÍjŒ4©ßš(Þwú°8lØš5Yž–‡&ÅÈ°Óî8”±4©õö@‡Ç§ñ+nŒCÎÚ6­å8lk\çlñ½¥Å8”XÑ#sœ-cNF >.à•]^¶äÌÚ´ð/U%ÿˆ¤÷sˆCЦ÷9YºÔñþÊă³)¸w·}möן,•ž(:Yêv2—ì±í¿)û÷/¢,{ÐõÅ!¹&óèúmWéDuS¯£>ú·ƒ·„=À*ÕÒŠ±qA¡î¸‡ŒkÌÌKJ˜GÁUþ½ÓÒë™çÙDA"uÇìœÿbaònIsµù¸E§–_3>¼°>ž+P bM³·(« -U Æ°sý­|)G“ivö—¿‹ _2€„ã¼Iv°Ú_<%ê잯È8„[œæj—4Ð'jÝyÁÖ(8në˜ásæðYÛ¥&¹ðU}e|xÛ®84çײ|Y*«`ž˜º’ø³Œ¦±®³ šq<î[þêŠÃ‰¤jÉb´r›æoA+µ¡•ž0˜é >UæUüµÅj7rà'?í_eƬ/fû´ôoñ%§ì//ˆ ]܇XF‘ýŸtCÆ×$µ¸“Ì8”±Þ4²'K·§ž©…Яo°‹úòX¼5þlG›&óo¹Y‹>êFß[jdí92â0fBíO+®.Œ>´Ð€÷2Õei„âÑ_ÃGʵ½ŸC‚6µ#ç/¿R§¢$ -2%³í‰{ .ú¬O¦éö%¾QùÞŸsýPš-’‡Ò(3Ƭ÷¾ûEÀ¡U#Te÷N:ó[iКÒâ -I“ª¥ÔâQVLÛqØ| ø†¯ÈÚì}…hf„«Â÷Až½²N>.ŒC-9·bÑaíýg÷«ï½Õ¾¹°Ïëh:¾_evI6!8RâpÃ+¿±Î~™ž±Žþ‚ÞÏ%dÇwºrìü³þŽþƒ÷Q¨¢!¦óçÊý–H·ßoÕŸ„^hÁÕï«I`”– ý¬ñuž¬I± ”ßI/\^FÛ‡ÆÈô[¼ü’KÚIg#LFÓˆÕ‡=·\¦+h˜m -²LrÃèÿe¯—,† 6˜¿Ìõ­ b,8¾Ö-é…¢a5¬ôå[•^½féÈËZçÜÆ¡4u2~Kbœõ[úŸÒ CùwÚ"öŽBd4D0”¦åücÅá1ë-J3”RÀUä¼z¥¼(8ØÑL'«á­7-ÔGóüÖÖZÔ‚ÎÙ(â{KÈf…ãk%W¸¬8äoÁ׿z‡Þ«&k÷3®ðÏŸ´ÃFémï燠Mïù­4(«¬¤#ëRTmLlOïKÚxì²â2Œ¬×¼©uÑvkŠ·ðÚl,Ê(-~ÇQРjËþìŽWûŽFc`ª:ºêMÃô1n­„Wo~-Kã"×y°ñ*Ú:Í.s–Þ2.áým5MB{Šé`m(“N+cbJÚTmññõ­&ë·§²¤¸š ®GQm­)²“¿÷áXr½‰ët¤)»¸FJU»¢ãM{}”ÒqÌGA¶;Ô';ÛÞµ A›>/iûØ:åKÚÐÊŒ”˜S.•/:j¥×Ö×ðô0=ùHÑ“këÎlH»¿àâ#éÖÂÈÚ²9^ÑH_’qýÅ€MÇv´<V\¯Ù‘ÀÇqØ9qˆ±‹²2ßû7ÓQèÌïÒè=ùHÑ“këÎlZù0ãußQÃÔ:¥“ÕqÝ»QPVÉËÜüÒZÝACúiÊwÒi á+¼{ö‘¢'×Ö!½¦!ȧٖO±fÐÅ !{ô‘¢'×Ö!½¦!ȧٖO±fÐÅ q¨ªªúõ×_wË«÷=ùHÑ“kë^ÓäÓl˧X3èb‡‡=úHÑ“kë^ÓäÓl˧X3èb‡‡=úHÑ“kë^ÓäÓl˧X3èbõqøÛÅ‹Ý] ÒqØ-¯  çøfÞ¼ú8ì®4º¿_qàsq@‡q ‡q ‡q ‡q ‡ÒÑ8ä¡(† x'öÇÈ.¼s#»’4pòÄAÊ„X.öa/„qªJŠ*ê*ZºšÊõèêô@‰CF†ÛwNw¸f~gâ¾Õ! ìçû-í’iT»¤ä«ö‹¶=§¬L=áÚOá#–‹Ò.¾ç a¬§vo<úg“á8¼¼Ú¥QÇÜû“dÎ\û:ÙïÀ_,c·Ôqß¿=UçÄá:cö‹Ü×,yê A: -¢NZSV\ÁUÖÑQ'â1å z’x^5Æ"SuHÃâKUa>ª%\ú£¥æƒ!Vê.M>éile²fÜÁŸ|ÅH^fy¸h¨_ZÄ\í¦ö˜ƒíV%½b#xyU½A#Æβt´œ «ÀΕªvnО‰ÏÃ#Òk íÖ:šªÕ±‚Ø} Õ4¿F_kÙ,eÔ“·ÏÂþT©ú ÷Í 43Bý“skÕ§Çü`psÅ‚­y6Þ=Q­úÍãÇå#ç«'\ Ûu<™ê_Í™fDB´*óòµç½æq¸Ÿ´Ä:´€0ðëñ”qµ%÷ng1©V ¡Cýl·=Qšy&àK©+¹‘™öWnQ%›SSRHCù³œ^þÌiQãq‰uØkÒ—óçÿOUGxUS‹ÙœVüV¤žp맀–œw²ØñŸü˜åž–CÙ‡÷Ī[$œv|qžÖâ°þ¬,7Óc¾ÓmdBÌ/G*£ô«žæÞYÚ‹çq>Ëœ~fÏ*â9ƒÖrp -ò‚PúÍ V¯³oO‹ua™tµ–}"­:‡RõQÎÛ-Þ—§ÉÏxïADúËlÉ!ñ{‡ûF(²ßÜ»øë­‡Ï_<þçÁ Õ2éôÆÁ²Çóè:ÿÙ¡n^°•}j™¾…ÏN«a*Ì·9÷þ~3Åyáç¦Ñ˜u±K¬B -5ù[‘®ïÙr,›­Ó‡õ#6YOYÛ' N–n\5™ÊÌAžÖp²TV"XMæÎÅ.犹ˆ¼¾åñ›Íš}$Çyä¸ñï~Ç觅½½{…¦2=òìÞ!…2ªuuÀÅX/y«6ÛeÕd£!SÆÛ6=œ4ä…›EëqxЬ4j‰í±<âpË3U²“⯕ ‚8\zêìÃ>Ç’kE¬Ýñ{íè¨_BF«~ÔM  me(ͳ´ÀmaäVrÃ)•¨#­Ž±zâ$u\ÚïÛVù]z]‹S<{6ëú™·êRq(¸4âì>ßßž¼ãJ ¥‘‡‚á2‘Kl£ò°¾+RN¸õoþ‰Z~s¯×þ‹YE5Âá;òC~ð -Ú8GG“QíQwCzÚÏÐ믪êäû -º¼òç›&1ÚnÓFŽTb½<èþçK®î¸…ߧE¶.—_³…ã`tÇ:î Z>D/{}è2í[iP&½¸¬¯ª­£¡$óZu´†V\)§¥«Ij5 øË)¡3ñjT*™ØƇl¼w·6˜¯»OñHM\j(/sve)½ª¯BÑÑP¯ªÍj;ŠÇzýVyhM9ÎÛË;|þ¨¼)í¸¹`¤+ÊzÇ/‚#GÖÑQW€$€¡·|IûÅ¡Uîi¹eÊ·S|Ç«uwÌ Ågì,÷¼Ä«*pŒZ‚ö×n‡÷.3U‚Q3Ð3õ–8D«²®Ý~ƒj 7f0¹'|s]òüáãW¥5I»ßÿF ¦´Õ·ÐzKâ€8 â@ â@ â@ â€îÕýËÝ]=E~Ì»34óÞAq@ÆC³Ißwwô­ü¶¤¤â€Þ âqü85jTK¿‚8 ×jŒCE»»º P«"ˆC>S‡ ½#yü¿a/ñ[‘~ûiŸñcuˆþ‚ ¸åwo=4i¬–\‡ŸŠ2ËŠJ™²UƒÔ¹÷–Xª V#èn‡ ½!™9¾6;ô'º+²ŸØlU>ø£îËmkŽwhïòG»).#ÝÑ:ÊåDäh•Ž< }w/lÓÎ tc-¤¢°DuaDØ -#ìEHÀ…ÞfJí[»…ù%ÖƇ«Éô° µˆš¤÷îµZ‰CŒ[Y\ÄRÒ£ªÉÁz9™q8hРgÏž5ÎóiÆaåáxÑ1Æ­.-a)u¢¨ã„¡(O@XtZ%‘¢«Êÿ[G™ôz"¥©¿&=9Œ²’JLMWG…P‡©áC9%•x-ªºànô¢çÒ}µÚ—¡¶?¾öHÜ3Yƒ¿êy¬²2DS‡ÄHw[i—>–ŒŸÝF1T,ku³ù[X $šßJ‘’+ -âð3ÐBòª2"<7]âôÕ¨(Ÿ·/Øe„jçžÉ G‘ŽC~Š¦4&⧇Ô' ÇqNáÅ}›£r•ŒÔyU¦nû½çèÈó“Ì¿ÿpÇ$Ù›vþÀ÷ôý OQçÑž•;Ù>_O‘˜ÇŠR|>psDŽÒ@}B9]Ó3Ìß$×qq€éhêcÊz] jzÈÁž¸òÇ|ï$Ÿ¡ünJûÕÅùÆŠø½ãÄz¨¬'þVX[SvŽ%7[0FV€§û…约&j*ý]·Y¥û¶ZÌ wó—Aëçßãõ…*NöÚ¨“j¾zQÜrÏbŸäÍfŠü"Ë~wqüÃ!~ÿ5®Œqø‡ìçÁÖåÞ)»Æ©VßÙa³rô„û€N:é@$‡Y("Jć®:f$áñšÇÊÏ­ž—܇ãØç\\ïØDûÏÐ"p‹Ï»¹ÝvŒƒ{à8‹†OjàtMÁ -ÀP¯(è.¡Åç\V?X›¸sˆ?Äæᥭt¼úCÔá…òü—á 8yÖǾÔ)»&ªó -OÚ¯~¸5ÅÏ”ù»›ÓµåÇ¿&s_'¬ø±`S²0›Ôæ§nZ’©`2jøÿFŸ;º™¿£™áf±,)òkr»Ši6¿ÄÚh‡Ü⟥›ÿEuÚŠÕ×%í©Ì-:ãäú=_JdÌ9ŸqØëɌú‚h+çg;ÒöŽPFšì ~â’ú´}…2Ÿ(éÞ᛼ñ ‡ôø8´Þªàé·Ø@ø‡Z—»%ÊàpRCFìj¾SuÆlCA>`U/?‘à¢ýŸ£U¸Cʱ‰j¢e¾¸{1«ÁÃXù$ï´Ø™ZÌt±y°Ê¿\lb–$ÇLÖhÌÁÉÒHÇ”(A&1³×Ù†˜ÇGN WßÛ¼"nZD蔊ÃK}IAñný¤ÞQcúóÌÙïÿùóo#üwL‘ÏnŠ·¶‹ib•w\d4¿Oå¯.®×ãö}Q•hïùzkÂÖ¡Š²ç¤<†8ìõdÆ!ó¿Í‹|"NºVaÖîE~§vQì¾2ø¸zïPšÆ8üÏÅ2d¢×pÑñ¯ kb¢ÇÍÃ~qhéÆ:÷#k&*Õ>Üds`jLÌ\m–øH™–â°aföÛÇ#ù±Áz´, ïž59^!CÂb¬ô[wÊ~jã–µéTÔÐñÖŽb:‡·e4Ÿ„”_õXqvqÄÚœ½k=Z˜͆8ìõ @>ƒ8ŒÇúÉÑéúÂðà†‚kPÖ;TAÈl–.5V‡¾‰‹KÁUÝõ³Ýô|MZœd O–^™qļ±éd©¬8Dê -b—¯ù›…É9£Eh^/Z•“[ÓßTO0D†÷îŽïdïÉ=ý_zÙO;vì -¡=ÅðUó·¶6„eËh>žßý»»Á>¼Ï Æ]“à„•FÄ–ædÁg‡½_K'K­ŸnOÛ'KÁg¢÷Çá$õº7l {€7â÷¶hÅظ P÷Üfé«Î<²zÓ5¢i\5Þy‘·8>Z*vÁ¹¯ˆGJ ä*ßi¯ õœ+;´ä¼“åQí}ic¥.ó¨-HÜà‘üŠdh@ÆÊ^©L_´~¦‘ytý¶«t¢ºé†=æw·ln£^Óü^Gw7]LÂ_æ«®Ö*+Š†é(›úÄíx7X²ù$Áø _K§ëšNoèÀÖÊXQ(Äaï×ÊPš2¯d¿ñ䪿·ÙQC`( èÕ>ý8l'´¦´¸‚CÒ¤j)dÎÀcÓ‹ËxjzeÙ¿Á8U%ÅU =ŠJ+³Õ†nnMÚ<¤…ËQf9­¬SÖ¦j)ÊZNûŠé€6›ÿs‚Þ¢å -"×n¾ÈÖW¯x«øÝÞp¡èÝ>ý‘¥= Z•y"6íâ•òŽY¬×ñ¯« Ëµz~U)MÒ¡á2|ÐÛµrÝáµËçO`diƒ±‹²³ß‡™ê(Àñ|àKÚ@ZþVšÆ,D w@ïqÒòg‡oòrDYˆ@лA€|FCi-€Ûÿ â€ÏÄ!âø™×Êo!èµøqØÝ%ÐSä×´ý]‡Àûƒ8 ˆC8ˆC8 ‡ƒ -hZðù‚Ëð—áð™‚8@|IŸ)ø -oø -oÄ!HïˆCÿo˜@ÀK<äV¤ß~ÚgüXb§¿`nùÝ[ÏM«Õñ›Þ£Ì²¢R&¬CÕ áÛž½]$ÖÇê‚zˆCÞ‡Ì_›ú‡]ÙOl¶*HüQ÷å¶5Ç¿;´w ù£Ý”ž‘îhår"r´JGž…¾»¶i纎±RQX¢º0"l…ö"$à o3¥÷-Fb=|¸šLÛP‹ø¨Iêm‚ž¡•8DkhoË15}*™ÐÆD>u2ãpРAÏž=kœçÓŒÃþ$ÊÃð¢c9Æ­.-a)u¢¨û„¡(O@XtZ%‘¢«*‡ãwØè%ô:EJSMzþre%•˜š®Ž -¡>SÇrJ*ñZTu"®á9„†‘î±Õ¾ µýñµGâžÉüUÏc••!š:$FºÛ’H»„ð±dDôl»¼¤œ§FÕV"ˆƒG˜e% ’ŽŽ°˜ÖÖC‰†·Ržä*‚8ülÈŽC¬&çøæ )4ý~r…o4-:˜(ádNì¶ÂèLÒqÈÏBÑ”ÆDü4ãú¤áhÎ)¼¸osT®’‘#¯ÊÔm¿÷y~’Yø÷®ñ¸‚d8sÓθñž¾á)ê<Ú³2cç#ÛçëÉ#óXQŠÏnŽÈQ¨O(§kz†ù›ä:.0M}LCY¯ T-C9ÒWþ˜ïä3”ßÍCi¿º8ßX¿wœX•õÄßjkkÊα䆔ÄYžîžëšš¨©ôwõsW=¿Ýû$M·¯üÛ׊ßî -X9B/(Ưï0Êk¶B]~¾ŠÅþ eƒ›‡dÄaTÃÕ‹â–{û$o6Sä—Wö»‹ãñû'¨qe¬"ˆÃφÌ8ä¼I\²ü–]Rø÷T¤üº÷’ÈáQ ËtKdLìÓöeZ|$â°1 ED‰ØããÐÂ5CÇÌ€$ƒ¡ñ‡Ö[<ýߣÖåÅn‰28œÔ‡‘ûšïT1ÛPXÕÃËÆF$¸hÿçhîrl¢š(D™/.ÅÅ^Ì*dð0V~É;-v¦3]l¬ò/›˜%É1“5ÓAp²4Ò1%ŠŸa3{mˆy|ärõ½Í+â¦E„N©8¼Ô—ïÖOêÃ<ŒCžù ûáý?þ­`„_âŽ)òÙ qˆUÞv¶‰³K‰ÆPM¦§uð´è¸Ê™Ž–aK“MÕÀó[qÇÉ.Î1)j¬j³õÐ,±Ê;.2Þ§òW×ëŽqû¾¨J´÷|½5aëPEÙsRC~&dÆaíËK—WOMTÇ1²ü:Ý›“œæŽ–ž¸a ©ûj ÓôÞ¡4qøŸ‹eÈD¯á*¢£:^A×ÄD›!> -†ýâÐÒuîGÖL4Tª}¸ÉæÀÔ˜˜¹Ú,ñ‘2-Åaà Ìì ¶! ŽGòÃõ$hY@ß=kr¼B†„ÅXé·2î”ý2ÔÆ-kÓ©¨¡/Ú‡ÑSù/ßÎ8¼í,£á$~ßÒcÅÙÅks~ô® Hô@jaN4âð3!û³C”þç.'¿œ>“‡ ²‹KË*§Çž\g\#câˆCÐôú8ŒÇúÉÑéúÂðà†‚+PÖ;TAÈl6(´&ÃÃêÐ7q±s)¸ª»~¶›ž¯I‹“ˆCÑÉÒ+ó#Ž˜÷!6,•‡H]Aìò5³09çã¡s´$N$¡U9¹5ýMõãuxïîø.ñGöžÜÓÿ¥—mð´cǾ¡8o’\Óâ‚fiã*ÿÞaÜt²TÅçäšHùMËcF…ÅØÈ·¸„Ëh¸ oywƒ}xŸAŒ»&Á +ˆ-ÍÉ‚Ï?-Ž,Å8å/½x§h¨—¿ÉáÔ²Ô¨ZxÙøôõþ8œ¤^÷æâ-aðFü®­*L±¨ãUgY½éÑ´®oˆ¼È[-‡üEœ ðŠx¤4À@®òöÚPÿÁ¹²ãAKÎ;YÕÞ—8Vê2Ú‚Ä ɯH†d¬ìU‘ÊôuAëgê™G×o»J'ª›zÙ¢qa›× ÕPôVùÛ]ŽCi†h¿æêòó•îÛï`*9”Æ|ÕÕZeEÑ¡IÙÔ'nßÀ»Á’ ' FîdøZ:]×ÜpêxC×µVÆ*B!?-Ä!¯Žƒåñ‚?0Ç-ùk’÷NÒÀËœØ]…Й>ý8l'´¦´¸‚CÒ¤j)ÉþܟǦ—ñÔô(Ê­ À8U%ÅU =ŠJ+³ÕpnMÚ<¤…ËQf9­¬SÖ¦j)Ê^Ê¢ .´Ðm(§þ¢Ž0SV1ƒD¥’¥.´hI› 9Aï";¹ÅiN«ÙšŠŒ·Õ}­üüWŒ"ãeO WøôG–ö0hUæ‰Ø´‹WÊ8vd±^Ç¿®¦%ïwÉ?íÐâÉRÁÕ¯eµDþ»6±ïN’9€O_+×^»|ùF–ö0»(;û-Ñx˜©ŽBgždD«þË|ÝwäPøÐéàKÚ@ZþVšÆ,D w@ïqÒòg‡oòrDYˆ@лA€|FCi-€Ûÿ â€ÏÄ!âø™×Êo!èµøqØÝ%ÐSä×´ýô‡Àûƒ8 ˆC8ˆCùØqøüùóÎ] Њ¾ß?n*)µp%à#`2™ï÷D8Y -@‡q ‡q ‡q ‡q ]‡ü×hÏlƺKÅá¼yó¤&c‚à ‡áø.þÖÚ«óP”?7‚#ð£ÀÖƒ'p-NøøP­^KÒÒ×Q!´8·"ýöÓ>ãÇêà~ v]…ð éê8Ä0?Öú0ÄøQ(ŒDä÷ß~oñÕ™9¾æN70uj’|Výêݸâ çê¢8œ3gŽð0,H?L˜‡üÿá„ÿG„ÿ]ºt©µ8´Ù¡8ÑÕXžù(f™ÇÍÅ qVúåá ‹N«$RtUåøËâ±ËKÊyjTm%±P¸Œ²’JLM·±…q«KK˜D -EØÐÙÄ8U4þLÊÚ EB SšÕ³±TAIgËñ#•qÜ·§œÜoÒïV&Æ âeÒKèuŠª©±/Û|iXUºÛ’H»„ð±äú.¥TI˜tëêqK~v_ß×+lý="ÁØù_a Ÿ7T/£i2ã°•¦À窫âpöD{˜(Eÿš˜˜äææ -’Ã]¾üG;âPÿó6«-Ä TÃG ÿþÃ5W gnÚi©™Ÿ²Ýû$M·¯üÛ׊ßî -X9BԜܑ£4PŸPN×ô óÿ’Xxqßæ¨\%#5F^•©Û~ï9:øÊzøßWè¯O¬.añYÕ‡-9…ÿÊÍê±Ýc°ÜðÚ_‹ŽíKz}|åvž5éçÔo¢ãç0c=}ÿÂSÔy´geÆÎG¶ÏדG%–Ô¦2ØÓýÂs]S5•þ®{<©·‚$J’g¤7k•aã9ÎÚ¼H[·'ëSƒÇ«Iôóꤛ&/‡ãq÷[k|®º(gÏš…ˆz‚ˆðÿbjfvôèÑY3gŠ²ñò•+­Å¡µ¯ÚöÃvè››a[£Ù^'‚§3çoÑðI œ®ÉïápÞ$ۻܷ?~`Ž6®ò딃IîFi+¯þux¡<¿ëÈAq¸Òs.®wl¢ýgh¸ÅçÝÜn;Æšå®Y¿<éèhUAi(†#0þ]-1'Q­¿iІ¼mÇLJôMvì·Óåƒ3£ã¿×ªãá³£Åç\V?X›¸s*½4F†›mIJ¤È¯É·øgé’Æàˆ·N\Õ]g‹ƒSb“l å›M—½|–DŽ|.ÙX8y -H—ÅáL~ì `ffCçä˜ ÂÏÂ3gˆ‡!W®þÙZZ¸Ü'÷£’ˆÊzC¦Ù8.®Jà÷Ÿ¬ÂRŽMt’°ÊÛÎ6qv)ÑÂÆj2=­ƒ§EÇN}¾Ú&fIrÌdúC>VyÇÅ|§êŒÙ†‚Võðò£± +.x¬Là|1}ò¸q“§}i¤Dàý$1E²[³ˆ1i.û ŒÎ¤}²GsÇ’ü8üN%ïR\ìŬBcå¼Óbg’K¤–Ö‡²KrÑþO¬uÍ´‡-,‡òX"¿fi­ið¹ê¢8œ1}†pÌ òçÕ«îîîü,œ>}zÃyS«W¯¶ëdi#~ZG¹œˆ­‚t o;[†Lôñ®"š‚WÐ51Ñ#áÑš‚¬;÷îݺt6Û8 aË—ª2¦4«‡‡¡qÜ„%+~ªå›4ü¥‡ ?£†¦,ÛXç~dÍDC¥Ú‡›lL‰™«M@$—†ËjŠC™%q3ÄZ×Lm^”­[ÎúÔƒÍO–¶°4[ú³ÃÖšŸ«.ŠÃiÓ¦5¼¯^»6mê4±a4×®_ÿ€8œ,upMwˆ š¥«ü{‡]pãÉÒ+ó#Ž˜÷!ÖŸ,¥ýäèt}axðá‡q(몠N¨­FTCOØO÷.ÙA9xÜžR+1eE_b³z„qh«Ë¸ÿË•²/¿ŸÛÍüQ‡a}öØú&.v.Wu×ÏvÓó5iqs5ê$—¿Bû©—mð´cǾ¡¸EiÒ%™é-ÅaýP#ïðuStùÏ¥©>o0㌌尤>;T`´Ö4ø\uUN™"¼pP4'úøi¸öP0Ï͇Æ|–²ÍëjH(z«üí®@GÁPvÁ¹¯ˆGJ ä*ßi¯ õÿBþÍÅ[ÂàøÝ7Z16.(tµæ?^+–ékáè/ËWò«pGbÊ<]ùæõˆâРqjM†0㦽 ]½éÑ´®oˆ¼È[=›ð—ÔҌ̣ë·]¥ÕM½Žúèßn^’ûnËq(ºÐbÏÞ„,ÔÀÌ)-æ ´Ü³Ën°RTÓÜ q1,Û»µ¦À窋âpÊä)õ6Ž§j8[ŠÝ¸yëÃ_eÑZèR”Å/´àT•W4ô(—«£5¥Å’&U«þ£3^m%V‘utÕˆ¸¦´M/.ã©é‰ÑöÒ¤Jj»±5eÅåµ -ZºÍ.+iÇrÞ¿iÐ{uQNž4©á‘0… -¯<Ä„)"·n߆/iÐ]à;K¸£q ‡q ‡q ‡q ‡q ‡q ðÞÒeq8oÞ<©É¢[ÿb8ÁM‘‹¿µöê<Þ=˜@ÀŒ;CQžÔD<ða·äV¤ß~ÚgüXößš¾Õ§  Z!½–¤¥¯£Òòý—€ïø«@ïÒEqøÍ7ß4<ª¿ã¯0 1Á­…7@üý·ß[|ufŽ¯¹Ó L]Öá¨ãì·n^[ëdª@ÿÝÕáœ}RØu¦X.ð¥îLÙ5QWxÒ~õí)~CQ¯(¨->ç²úÁÚÄC”dÅaÕ]g‹ƒSb“l å›UË-–U$>K"G>—\pòð™è¢8œ9s¦ðdžþ!N¬«(Qså꟭š…Ë}r?*‰¨¬7dšã¢áª~ÀX…;¤›(èa•·mâìR¢…ÑP“éi<-:vêóÕ61K’c&kÔÔ±Ê;.æ;UgÌ6ôy°ª‡—HX©pÁceç‹é“Ç›<íK#%§è'‰)ÒE5ÄáVýLËtÑþO¬Üds`jLÌ\m¶Ì“¥Q¶n9ëS6?YÚBÃÑléÏÛl8ôJ]‡Ó¦Mk<üÕQ]p¡….EYüB NUIqACÒxA:ZSZ\Á!iRµê?ãÕVÒhÕYGW­þÂé)m½¶ä2;M/.ã©é5k[kå”—×*hé6»è¤Ev¸áÐ+tQNž4©áQã™RÑ•‡˜ð#EäÖíÛð%mº |g)w´ â@ â@ â@ â@ â@ ¾Â@º,çÍ›'5Ytë_ '¸ "rñ·Ö^‡¢Â»øQà{B´Bz-IK_Gå£Üâ@—éê8Ä0žèŽ¿Â0Ä·>Þñ÷ß~oñÕ™9¾æN70uŠYæqsqBœ•>Eyx¢Ó*‰]U9œàŽñå%å<5j³;Àc\FYI%¦¦Û؇øե%L"…¢Nlèlbœ*&emŠ†"¡…)¸%?»/ïë¶~Š‡`ìü¿¯0†Ïª*XšT ˜¨Nvyiµ¼6…_'†2Êhle†9„3àfY ƒ¤£#lˆH ‹Âñ'W⵨êMw«—j‘Œ9±ªt·%‘v ácÉž@ÀµÒ@øütUΞƒb è_“ÜÜ\A2b¸Ë—ÿhG*ðÞfµ…”êc˜ãhá߸Æã -’áÌM;-5óS¶{Ÿ¤éö•ûZñÛ]+G¨à‘Ú‚ó›#r”êÊéšžaþ_ /îÛ•«d¤ÆÈ«2uÛï=G_ùÏAÿû -ýõ‰Õ%ì1þ!«ú°%§ð_¹Qm^¤­Û“õ©ÁãÕšw1æ3é鎋ý¢ä”¢Œü -Ó½MnG]¥×–¾âMŠð%œÁ¯ï0Êk¶B]~¾ŠÅþ eƒ•–`:šú˜†²^¨Z†r览ÔI·H^zN{ÊÓO÷ ÏuMMÔTú»lœzÍ7 ¥Àg¨‹âpö¬Yˆ¨'ˆÿ!¦ffG5s¦(/_¹ÒZZûªm?lg€¾¹¶5šíu"x:1Óqþ ŸÔÀéšü¾ çM²½Ë}ûãæhã*ïì°;@9˜änT‘¶ÒñêQ‡ÈóûZ‡+=çâzÇ&Ú†[|ÞÍí¶c| YñË“ŽŽV”†b8ãßÕSÄs¯ê®³ÅÁ)±I¶†òÍÊ”YÃnºã_Ý]);'¨±l³ð|¶0*ÖÉTþ»«Ã9û¤° ê5éŽßoRÞ|"x¶R~Õkyüè° ìdK‹¢îLÙ5QWxÒ~õí)~&U?K·h îôœCyn¶Ë’"¿&#Õ­6>C]‡3ù±'€™™ yœ“c6d? gÌœ!JH†\¹úgkqhárŸÜJ"*ë ™fã¸h¸*ß² -wH96QÐEÃ*o;ÛÄÙ¥DORç?ªÉô´ž;õùj›˜%É1“5êöXåóª3f -úBXÕÃËÆF$¬T¸à±2óÅôÉãÆMžö¥‘Sô“ÄñrZˆC™5Ä-PÎt´Ž\•5Vá¾=i¿æ¹OòV3E„•¸tÏÀX =vº£eØÒäcS5ðü’î8ÙÅ9&q6´´(Ç”(~ž!Ììu¶!æñÃr\¥[ä¢ýŸÔœ‘™qØzà3ÔEq8cú á˜äÏ«WÝÝÝùY8}úô†ó¦W¯^m×ÉÒFü8´Žr99Zé@Þv¶ ™èã5\E4¯ kb¢G£5YwîÝ»uél¶q@–/UeLi|åÚ¼([·œõ©›Ÿ,m%ëëä¥-wá“ämBBXOƒìv‰³Ô¯Ãè©ü*ێÆ&3³7؆,81ü?-âfHÍ9I®)ùZi |†º(§M›ÖW¯]›6ušØ0kׯ@ -NT:¸¦;ÄÍÒÆUþ½Ã.¸ñdé•ùGÌûëO–Ò~rtº¾0pG â€8ˆC8ˆC8ˆC8ˆC8ˆC8ˆC8ˆC8ˆC8ˆC8ˆC8ŽÆ!E1á8<kcÑ»ðÎìJÒÀÉ)Úžt—ŽÄ!#Ãí;§;U‚@Äá‰*z¦Sl6n²6SÆËž¥]´_´í9eeê ×~ -mOºKÇãM™iýƒ13óì¹ûår×LXj(‡¢<Áü#&üG à›b/Õ‰RMc)éP„Á–¦×CkÊŠ+¸Ê::êDaÎ6,Ï«¦ÑXdªŽ"Â(-.g㕵t4•mõQ€¶u<¹f~gâ¾%¿:`µ,©„º,9u ñ´Õá·}ÖžJZbȺçøýê,å~ò\-ˆ½§Ê“æçþö/KÔŸêyÄÏÒ˜X*{º"Â|þS OÈO«¸A±ÏDÇ]»ì†±~çÏüŒt±{Múrþüÿ©ŠFçàUM-fs6Zm{NY‘zÂM0îc¿¹wñ×[Ÿ¿xüσ,ªeÒéƒI]±¦ôbïûÙ¡VÕÕu–^·Y}’­òÜzgðLì6,Õºú[!J•8YºYxR4^pRôTôBÂ2§[uÄÊ>µLßÂg§Õ0æÛœ{¿™â¼ð‰³Ø0TVþ©³û bH®}±vÇïµ££~ ­ÚE+ @oõ¾q¨C`=;b½,±PyÒþ“ÛTÖx¤ä2³9ój®,TJ3yžñ“ßþ¥qˆº“<`ݯa(ätE„ù,-p[ع•\ Á”¨#­Ž±zâ$‡5Ù>¶.—_³—?âtÇ:î Z>¤¥+=€vê¬o¥á±èÅïðÚºDYŸä¡ Z S‰ª£Bh{:ʤ—ÕàUµu4”d^¤²Þ•Ò«8rduHB¾¤ €8 â@ â@º ù/ =qâĉrrrþZ ×€Ýtì3à}Ü8ä/}öìÙ8!Ñ Ãx<Þå˗ǧ Ð®/ßF´Bz-IK_ê²ÅÀ­H¿ý´Ïø±:ÄN[$è,¸Û4ܤZp—±]êûƒ=°S}ø¡e–•2 dª©]û lÁ^ç#Æ¡hÅãñ¢ý’ÿ/Oå?äÿ‹¢h{vS´:3Ù/0!‹§oHæ–Õ °Øíç`¦Ôî¯ìf¿ ¸0ÃÛÃLúPÌœmkŽwhï2|xÏò¡» 3Ç×Ü馮BÀ8µxý Û7-ê¯ØM[öÀ.ñ¡û úî^ئè:ÆZHEa‰êˆ°FXËÛN¶`¯óqãpÎœ9ü¸\®øtѹ‹K—.5JMM­ÅçsK~v_ß×+lý="ÁØù_a Ÿ7TøýÞ·º´„I¤Pêo,¼K0ž€c——T⵨ê‚/ÇÁªÒÝ–DÚ%„%#xž'˜aÑi•DŠ®ª†òp¼hGƸŒ²’JLM·3; à½|ènÃC›ú‡]0æ“cË<ÿY5MC¸— Lz ½N‘Òôþ_´ÛÔïT%&º‰µ¿—‰4t0¥÷Ø{ŽÜgj_†ÚþøÚ#qÏd ‚à ¶ÊÊMC|Û ïl.¹Åù{ˆh ÊØô"-ì$Mûiòqãpîܹü”ÿ~M|:ÿ]7ýý÷ßÍĮ̀TjKO¯Í‹´u{²>5x¼šÄ>SWxqßæ¨\%#5F^•©Û~ï9:òŒtÇŦ£©i(ëuªeè!{ÊÓO÷ ÏuMMÔTú»nš¶Â¿ÿpÇ$Ù›v~W¶Ñ6Ô">j’z]ÁùÀÍ9Jõ åtMÏ0ÿ/U:q%€Žßm†*šøèÑ£vî6âqˆ %gíWüæ”1Y_›wÌÓ÷/ðPÃzâoµµ5eçXrÃYRŒ‘%¾íöxRoInñšLÑ”{ ¹éú)¶t˜²Û¬ ás3Lü¾±ãŽ Ü´¤K•:þcÿ£~[—ýÝä¤_¯¹n "vtÔ^Ùí;þôìÈEm´?ûûÝòt-1ìøzÎrš³sÙ‹µ O¿ –r‡¬½#ý½ºº·»þn´ysÏØ$ã²Ñ¯ý×^^^Æ Ïœ9#ùOöË]6†öõ?åÞ¶±d%þ‘PÏwÍ’¾M¬ Ïà³´¦Ö†ÉÕÄï;þääí ã7 Ä/2Ô°ßÉ<5Å'¨ÏÖgUÑÅvFÞ†Enìh<Ö¼½3 -i{vÜÀ°AaÏ;± ªô˦K—.Ư===_ÄÆÆ¿8xð`ÙËÆó­—z»›åÞ8÷É{a ƒCÞ~ÙE¥Í¼ðEøæ1WÒµº¬KqVÓ£6¿T'³øªÐ¥Ÿ9"¼sðºN7Vžkµ|«S‹ÔïÇ_!¬À§Š»]^òù蓧Nÿtpßgq.Ú>¿“ù©‚¹+eÆ]~¹“û§>Ø+vœò")ºPÃ<È–ý”-çÏPÿØ7w¾Wüd©.õè˜þAçLkkg¼ØÔ²nË–õÔ?û »+äI;Ê ô êµ%ä9³â;£Â+;£šK¿l:wî\Ú¿>|¸ü£Ã“¥¢¹þùˆA;Fnîn÷çªÁSs'®™Ð±MÎéW¼ÖÝ9«øª0œ7[>ti£Åb§y®ó®o¦SÈ!+°†©â®¦˜ì?Ö ô™±'´Í…;9TœqÍ©"9¼kêƒÛž[Î"AÍó sXÎŒ/¥i<}ÔNu-ÄøRšŒ¶=Z¤à7ú›ÞVöÊ?ñ®Éº©±t´È<¡°3²8;Ígeçõǥ쌌§ª¾î¼¦OC NUÕúeSÆ:Ôÿk%~v¨N<4oø;¹ ß_þ„iô$ïU/‡oîîb’öã"Ÿç'D…+äPrã6ŸðC–ÎlÌ–uÝê¨ôËÐp²´Ø -1IÜË -¬Qª¸«Ñ¤ÅžËhÖªžáõUÚ›ÇæZ"oï^Üì¹ӯ…ÏŠ.=‡!úi-g‘ æ©ÆªÕê£G*.SýõððhØ°aÙ·`x£Åâ··ÅhÜÔÊ»Ÿ÷HÿÅ ‡´°ÉýëÀŠYëOš6Ö?ÏOŒ×uX¾n¢‡ZigT+#zí›ó%[8¶š¶¤wè…ÑsŽ9qû—N >kãán–zÓyòº%³T$ã²éÔ©“ä¿uÌÄÄÄø§þ¯GŽ)ÙÞh1êpžƒ­™è4âÐ敉sÆ<ïl¦½½füŒÃ­šÜ2m þì·u“RE“ðñèþk߉ZÖþö è³K¬sV`RÅ]MNÜöÀI­¸×Ò%]¼f÷â”åo¾äªJ¿3wkçÔ?ºòî×”•ÃçËÛM¡æ©Þ·áçää;v¬äåia!MFR|JŽeºÎE?X“q=þFžUm·:Ê\)º¼´„ø4•S=^æ^Ü—e£@›Ÿ¤u¨çb[Æ,çÆ…ˆŸ½c¦gÑ÷›)¬V`MRå5£ÉLILÊÐÙ:»Õ±.e -îaÆïë"Au«ö_Ò¦_¦Ùù4ñi¾J¥*ëdð€–&-z×æ¨_§¼¾qM¿züf¯‡ »T¿Â¸M—}íÔ©«M¼Z¹Zòã;à 9€@r€C„ ä!‡9@È!Br€C„ •Í¡V£Ñ‰˜ªTüãoŒ["&*•éíKtVŠ_T6õŸO2uíðÂãŽ|4'üo«LÓöuô1uëE„¿âZýɹ±hÅ÷YMüLò²-Þ_ã–¤é,ùFîšèa%’yvq?¿¨ky*çn[ö-ö²)å6KÜÈ¿Ì:‡}ôΣ¹>à¿×ýÈ¡./=%éF†ÆÒÉÍÅÞܤÄAdþ_ Ú4™É )¹Vu\k[Ü„ñ¸Îxuã׆+k3bö±?ÝkÕ‡ÁMŠ’äPT./oxñ“67Léxô†FŠåPá¾ò7751IãàfñË„»r¨ÉHŠ¿¡¶uuu´¨Ø&à¿D•s˜3壿¹n蟉©•û³~o/~=m¡÷„oT=Bß_ð˜­ú¯ˆAýW]i:=jKŒýËæ¬ýò·[j‰y¶ÿ˜ºdR·zy—·ô^}µáä=;5È:î÷ÚøÛ×·Eú|á;xëåÜÛ÷bÿÄÆOCž´+¶%Çs]=­n^zdîkÚô°*¡…mzôMûüZgžß«p_¢Iû÷ú)S·Ç¤ê¬›uê!?îýÓ*?‡Æë}ù[šZTÖ ;ú-\8äQ{šÿ+ªœÃœkŸ}ý{ýVMj«nFožõÖ§i­þµ¾åßÝÞÛ»â©ôˆ¡ýW_k³(jUÓm}wÆ;¾0û®±ßÚ­ñœö~X_çkù9løþŽî™9|?Àäû÷ß]|"§ÁÉ~­j·±}³b[r\Õ~ရK¶¨/|âó¹\&LÌ ^rÖÊCË+½•îËñüò~¾»^|cæëN?-ü-ÇñE}[\^5À7òzŸ·õtŠ^¸â_=6DÍog÷ÀF -ø¨rsŽl‰úþܵÔ켌„+‰7ïmQS¬?ôõYq¥Õ¢³“­N~ò½½ËE °þŠëðˆ=›Z¦Ÿ è5öÛ¼¶ïíßøLúCOÚî]¿0‡{ç´–_ööaº×š6>ç¨ð³Ã㪎¡á¯…ùÎü)ÏDlºmê2xÊ)Cÿi9Hé¾Ö{|:´ÿÊ8ç!ÛöL~ÄòÆ·#z½yÚBt¸Èqç ëâT<ýŒ‡­INÂñ£1™nÞïOmnUMèYª˜CMÂÇ£ûÎ?cþ÷áý=U§V/Þzűﶽ³<2ô™ãܯ‡z߇™/lø`±Wr˜B¢Vî}6=ÒÇ{Õ•»#׿ñÉÐÌÿ­VEs¶‘¼ÛÔG7êݺkXÂøžeäpåþu|ê«œCÃõ/[=ѳçßnŸ!5µoÕðÿ¹™WϨj˜Êç0˩ë]›ZúdéþJ·¬¹Ã‚®ÔþÇ¢•ÞVß,žµñT¶«!‡-¬2¢ô»?^-æõûoÙ5³µMÖ¯ïö¶;Áñ¥É³û¸Ä†¾µégçÔ=aýë¦Ý{úÏÚ–C×ùiúϮhÜòshz1hÀà°«]ÇŽz¾±g§N-íTŶÄÃÞk“ùí¾/“÷èù”ɱ‘·s¸Ø#Nù¾œ -N–NšÕÛéçµK" -O–N®&Õï;g·—]æÕØã?üÕiܘfÖÕ=ü€š¡ò9LÓ^`÷ØÊ–f¾7zÑ—sLìZtíšõÍWó[XKÎÅA>¡êˆÜåßÌRD›ùëž%s7|uá–Fgb^Û«gà’)/»[ŠöÖ‰Õã&EžË»ÖÝzdÞ}Å!?‡Ö¹EÍX÷ÍÅ´\óF#wî×Բؖsø˜ííËt7æÐ˪”ûÒ¤_;yZÄé[bÝì…WäXTáKi~Z6oý—çRÕ†ÁÚ¸=æ½fíDrÿ+îÇo¥Ñd$ƧšÕ©[ÛªèK1µ7¿ ì3å'—I;·n`^äÊ×ã o~¨[Ǧț´YÉñ7Më:YÜϯ(ß—.÷fB²ÖÑ­øææ_?39>)ÃÔÞÙÕɆ7æÀÿ’êù%mÙVšu.)Ïå•÷"ç>ãÀ;5ZõäP“søè_§æþÞ¢ÇY€šŽ_á 9€ äùäP%/ìر£™™YÉËñ 0M fêaÁL=tª7‡ú[ïÚµ«I>ã%:N«Õ~õÕW:t°´´,ûÛÅðVÀ¤k×3Uµ\ÝœJ¼M°âÔ)?~÷{óçŠüðR¯yãÄÑß>ÓÞÕ´à ‹ò·ñÖ¯ÿ¾àöÄcö·*ü-÷´‘ê”ãGÿhÞñÉÚŠWȽþïŸÓ<Ÿò°©ü0UqšJ~så¨Kê‚u2uêï'Nœ¿iݶÓÓîV÷齩egUo\é?UxÚ{œ¬ª? ðŸQ½3UêCUR94.SSSã:Ðÿ©_ú¿êÿÔh4å/ ÍÍãëg,ø$ÙµI¹q%Á¾wðúïm¥Ÿð:vW‘ˆ*MFô$Ÿu}·†>gñ˼ [^]õößk•³óÕÝ:ñÖø}]ƒ<­:uû{ïi]îF¦Ÿå>.2èqÅ+hRN›3býä66•ºûªNSfìÜ>£èíL59ºÚOúÌš;¨]¥öò…c^|Üî l­ìØ·}g&u|­­Gç>¯xTîÿWº²Ç³Š2cÖOá=ZßËdUu¦jŽì AK?é2}RëÿÒÝ®ö™R\]Õí¿}Ö¤ºsØ­[7ýjµºèåÆs_|ñE»víJûöœ?Öù¼qyÒöÅÏ;© ¿¶&)Ij»Zé4Ú"¬?.Ã1‰áCƒMU’rý–¹³‹½™‰N“ž”˜mëêlüí2ÆÒì\ß:;!ÝÊÕU…‚{Ñf§$¤hÜn_±è®Y«Ñš¨L×Ô©Ó“Ruu]íîz¥&~¿ÀùÀð7›[Û­>z89×ÚåÎQí=o¤N–˜˜kïfùËØA…»ï’·/1 †oê¸aU—:•y«g§ÉÃóë¯Þ>®‰EÖï#Ç}úò–mC -~ ‘N}ëzB¦…‹K‘T.±åÊ9¼3°V9—wúM‹Ÿ6ÉÃÚ8÷wÏšè´éíƒÓ¯n¢¿nªi7G‹ÒÇóöÔd%'¦Z¸¸Ù˜èÖØ] "}=ÏÞÍÙÚ¤ØÝݾ‘ºöfº;ëGaïa²ª:S¥Hikµä5F¾œU}{Ä‹-]Ú ÿA!C¶mh_«àS¿ï^'wæÃõIk÷i¦ÊÕÒ÷N -CǬUPõæ°{÷îú¡~Ô¦Mã…gÏžÕ?KÒ/‹Ï?ÿ¼uëÖnnn¥}{Ö¯K¼³fG.h_«p_”÷×ö‘o\š¾cNýMâ§cDZõí¦'ýú-iÑÎ%öº&ýÒVoLoy4ôPrÎõ‹Ú—´³3Õ—¦ï¢F^.—³-s/]²ëûîò¡-l$ó÷ÈNßX·‘ùÕËÖ¯,\:òQ;ÓÂ]³yLÁ>:7îãe3ƒcm©¯JI®°~ÉEŽ&4 ûFŽž¶m¾§Íݺõ¥s¿7uqÔ&þžÔdÌšö¬gn¨Ý=mä/[¦~˜Ñ¤‘y®uãëg¯ÎÛô¸ùŸ -·/†_å:uHH·°õ/Õ®ÄÑYÑi*zy§©H-õ_Ïî?ËnÅ®™-­Dr¯xgfè9›Æ馵òwz7Wó¥-WÌaáÀ¶ÌùaéŒeŸÿ¢nÚ²I³>óç<ŸºçîYÓ%é7êû©;è'AÒŽ²k|ä{éô¾´Õ“n¿$j².ÇÙ÷_·jXSkÒxŠ~ä—4këôË «/ŽÎ÷fÉ5Vôi¸6=&4pægyM™näLÉ™±àÕ¤©Æÿ”C–Â=ÚÝËdUu¦Ò•DqF¯©Sz¼”»ªK.ƒ®6±K&~r¾n«–vÍÆ-pûnùÝë$½ø`z7x¸N -Þ™*sTï9Ú<‰¹ªÈž1#zòÀÕ]Ã6½ì¢º³[wÐfiM­ WÓâŒròvýŽú^7rØø3£·,êä$×?Ÿâ½\óîþ Çm5 -·¯ßõµ÷‡Mˆ™µ}‘g%Ng§IñÇûú¹+šô9ôž¡øª«&þ_‘!?z¾ð7[uü¾±ãŽ Ü´Dø£ŽÿØßÿ¨ßÖe·SÅؼ¿v Ÿš²0üfVyE”œµ&¥ä°×\·‘ ;:j¯ìözvä¢) -ã©/YÏYNsv.{±¶þ¹±ò+ò?Î úÆÅI[çwpÐ%šî½$û}wßHábx:=Ráíîe²ª:Sé -ÒÆZi-)]S?t -u9«Ú.Ai˜DûûÝòt-Q^'&'‹ æÃæ¾ÌTYûŠÌèR÷NYņNññ¬•¦zsØ¥KãמžžÆ/bcc_lîËL•µ¯È‰.uï”^tê/ÌZiª7‡;w.í_>\ÎS¤¢²ÿX7Ð?fÆžÐöµ²~]>ti£Åb§y®ó®oVìE(êkQÃ'^˜³czK+Éúmù·¯ ï_ÿvi6½ _5÷5‡’þóÄk_Û²©«>G9|*yõ੹×LèØÀ&çôŒ+^ ëîœuyggzãÈÈ!ïëw¦ž «nßp\ÿÁ°q?MXêU¹£Ã²ºåœ,ÍùsÇè ?zo^ÝÃÕTÿ8ìÔqδ¶vÆq3µ¬Û²¥Ó•5 -[ž­ttXt`ËËákf‡FŽú6pÇ[úƒ8ÝÍ£~¾{'ÞÎaÁK“2OúõÚ\,Nãi(Yñ1)¬±;ôs3Î'Ü7"¤ƒþQ¯Mþz¸ï¾I%oD1‡…÷hw/“UÕ™J/9 !å®Õ¢CWÊŽµŒUÝÏöG…ePOsgǪ´Nê©®èkßj¤û8SÊûŠ²sxgèÊÈ!³¦ zsXÆ êÿµìèš´ØsÍZÕ3üt_{óØÜAKäíÝ‹õûŽÜ¸ÍÃ'ü¥3³e]·ü"T$‡¯Í°›³{E—Ú’rdÆð°vëÃúéö wbXøòÿs6Iýaþ•eœ,ýºgðš> -N–êŸ\ ŸtaÎöYúû+Èáã¼W½¾¹»‹IÚ‹|fœŸ^±–ÜH­þ¹Û/ã¶.|ÎQ’¿ ìÿvÞòýA-Ÿ¤pûúÈ<3kЪgCB^q­Ä¹Šrº•øÙ¡.#fñš¿9­E|”ßèozoXÙ+ÿ'š¬›KǼ¥-WÌaÑ-~²TqÖ}ôÿñ°ÞuåÆwó¼•ùö‡Š9 yúVDÉñ,™C…5V„:þƒÑ£÷Ú°¢—»öâî ¾¡V«>*-‡¡Ê÷hw/“UÕ™RÊa¹kõÎÐ¥G*Œ¼ºœUíz]aXdŸ™æ³²óÆ/»¨ôߥp…Ì -¿¼Fº3Uf•öNY'‹òã…Y+E5æP­V=z´S§N’ÿžãŸú¿9rÄÃãaÆe|{NÜöÀI­¸×Ò%]¼f÷â”åo¾äjxɈ&áãÑý×:¿µ¬½ñÉaßE;ø§[öuš>õô•Ã±3w­*vwRô̹Ò=ÚÝËdUu¦”rXîZ½3tY -#_îCÏ,§ä2ð°H^ûæ¼CÉŽ­¦­SÿèÊ»¯ ~¸w¬÷q¦ÊΡÂީŹbC§øxaÖJQ½oÃÏÉÉ9vìXÉËË_·i2S“2t¶Înu¬ w¹qáÃâgï˜Y™WŒäßZzb|º•›[­;¯Öd%^‚\×Ŷ̽’./-!>MåTÏåî7ZˆöÆ·³Þø~`ðŒGm‹¾ø0;9>IëP¯œÛ­ÐFêòRsì뺹­’·¯M;>oÂg½ÖÍ{ʾ²ï†¯ò4•Îð Ì7ò¬j»~s…GFy`·ª0kÚœ”„qRøTç»)çÝ*ºÆ2cW}ËaÅÖ‘Ëz]‰{¼×ɪ–™ªÌZ­àã¥Ä·•X•½ÂæS%”±w2bÖ*¨ÚI›~YdçÓh4Æ£C•JUÖ‰‚2iÒ¢wmŽ:ðuÊë×ô«WC~ב:ùØW¿<òRGó¹9׺ڮëŽ÷´0ïï4Ý'f`+°Æ2Nͽúq]ÓÄèo/4 ž[Ù—ÒUa²jäLA3õÐyÈ~…·.ûÚ©SW-šxµrµ|X_½„š­"kL“•xñ·¸¤\ ·GZ7q2g)ÿ²PÈ!är€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡È]9|ÐÀs;‡z3xÀþºBÍù -endstream -endobj -225 0 obj -<>>> -stream -xœ+T0Ð3T0A(œË¥d®^ÌU¨`bjh¢gb7161Ô³4«4CC3cˆb —|®@ \'ƒ -endstream -endobj -226 0 obj -<> -stream -xÚÅXM“Û6 ½÷W¨Mš•gb®ø!Q<Ò–l3‘EÇ¢íºMOíôÔL'§üý‚õ+éÞ:;»"%$‡÷ M>'4Éà‡&’%²P¤TÉŸ’Kžw4QD"q%T¦’µ$9MÜŸ¿¥¯íör¬[§±íjÍr•rûjõ»{—ðB®À¥·[ëóŠªt{žwbtÉ3Âx4ûÈ2¿üRø̓uí’Ï É ™|éק”ð2ù”Ή*ûùßI—|xØ2g„‰d-r¢Š°ˆZ •Ú ìVðt«ý¶…€­YÛÕxóvÐï¾7m…#»ÃëΞ8r­÷æZOïÀõoœ/›M}îp¢Ñ»û©ž{¿´Æ¡Ñ¥««¹×Êt§FßCLÖT•‡ƒÇSm­ !®L«]Ý}Ìh1^H.\DCú÷ -R–>ÃÏ»OYRý3ξ$yA¨_A`qZ”DÉiˆó1Ä%9dA*ÂyØ ±®Ž™¦“Td¸old²ÈxŠØ¨qÂ0d3Îz£ƒ2' PI‡Ç€F-<pÐø8_­ –²ø·Ý` Çgå:Æ}1$4x¼üyJÂøçÇ­±p0|r×-ŸqŸ,4‰Ç|ôÃK’õ~|æ}LŽÑ³Ñù5I¤§Ã½3[Ýàl¯OŽL‹/´µ‹0Q¥/Õ Nœ=ÙÆîï+‘¥$k®T*ñežcES³Ã{=zœ–Ez3˜+éRŒ™ó“£é:Óîñ•Z¸nmÛÖÛèÛÝâ]€j¸íÔÁIŸ] v¸$lÇ&Ãcäáz!¾’È>ýXx Ñ¥þhs3Mƒ”µ©ñZ…Ýè[`²n»[]GZƒ¢=Æ‘Åkgö­n†§8€\ ¥·†\FvŠÁãÎe '†…~ÑÇSSc¸E&S½ƒ4ãóàϪÚiÓx*ð³°?{q!Ì\Ê´µ q JšÏ"±4(ëÝÁ^šéõQ›Id]À:âv|ÇUúŠå½fÀÞœN³‰+µÕ äl,½k}¾/”R6–ÀÕtfÓ¼KÝÅ„™=®Æ6µÃqcZä½þwÂ…( -¤À0¦‚¼.IÆ" J$Á¯©- -Ž(Q,ìHô©~«ï¨²â)"B¬$Àgóx"ÝÒ«a Û:Ldƒ§Àbc®¦ºô¨ê?LBIÀUjrž[³´&ìl!°=ô½-áÆç-žìÂû4'²‡Ì4À!h|-N@­×yF½´Gk1³ž®+3ë·ßÚ9rìÖž#, -+YG=_¢ |ég!<‘ûh‘¾ÁdÑG|wI^¨’°“ÿM`8}‚OÖ´±OÀÎC%„ -½ÅH õÎ4°¬Ÿ4Í؆<‚`Í@é‹ký¤!xßÊIž©FLd[d’)­‚|mu5gϧ×ü±¤ÐÈ|¶YèÆ5 ›À¾Šp¥ôÅP­—ëDµ/¥ÎA1yZREºë‘´ÀzÅØå>¡Ìœ’*OŸ7ï@%–’@ål<+(ÏòizaÙ1½0é5 $"îÊ¡¶«ÈÛaÔZ|6) ¸‹ªd:W·Ûènsé; QzœÀ–e™_–ƒ`ëª -"ÃM¯eì„9ùUŸ½thá¬m†!>¨ÎßÄ}¸à_£#ÓúÆ;|f`åÊ,KŸÛè}om5}5lÌ‹k|¹C³ñ³N¢ªÛθ{¯Y§9ÛÜ< -±ŸõBxDDÈ®¡\šHÚÝBï†ch…ö5Ä6ºˆYÓc«¾V>´Ð³ÅÇvÁ»®5|9¡ÃÈ]²×Øà~¯Ó ö[~éC½}‹ÒŽ»ìïTŽ‚/ùÊy(œÑ8Êd Pƒ¼EA³mŒ…;›ý¿ŒfAŽ(àê%úRø˜îl´6†‘ªàÝ2黇*Æ°iBn±ë°±8¿†v“”ÌÉ­g¾®nàM½iâÜF»Öº¯?ЦŸ·„6“ïÛxcö;J Œ8Ø0èËA›hš=Y‡¿¯õ„ó‘Yä£Bñ±Ÿ~û¨p‚ˆÿÒ·ž#³G¦dTǬX¢xA'›ëÿ©0ÿÏ4eÿë`ˆé‡þ^ÜÌ -endstream -endobj -232 0 obj -<>/Length 51544>> -stream -xœì\çÆ/aï-¸Ñª WµjµTp['C‘ Ê"C\ˆ •-"KEÀÕºATÔj+­¨€âdÈø_À, ’ðûöÓ˜w—÷î}îyî}ïò†D"!ÐÓðº`hߣq¨¥­Ûke„þona0-˜ÿ:âèë@Ä! ¼H÷>ågþª -¢X¤®ºâY^~®ïÂz~?}Í~þ¢ ËZZ˜£¯§ÏÄ3¼€ß€8„ e]ÃÅEHõ¯^ä•×7+¨ìWÿòöËo]XUÇ1†Á í^éNv¼fzˆC@8™°Òdœœø›´ [[„,†D$aDä'Ϙ6| Š(Ò\þñý_ÿýN‰jVÝþ~’Î RCÞãÛÏŠëÚ¦·Al™/‹¦è ®Ë½qõyeÇ«eŽC Vrôä_µ†ö—‘À¢-×üì'9ÅÕ,×Ì«ÂÆ<ƒ¹Ïž=/¯¨ ~TUQ™0a|ZzF{óCÂÉZs3q &9!¡H×Àµ`õ4ué/yYEÈɺýêKÿN¹ýiÍ¡ª·Ï_UËO›8ŒÐTš”†N6LsÖÌ™è›ÌÐ×÷ï Ûf®ÿœÿ¬ iø\PÚÐñj™ãpøì•3‡È~y›WXQ¯0@wÔ@É'Ï¿©Ã3¯™g{ x§E ufÚÅÙŸŸe!ᄇçpôqhb¶N‹Ec‡HZ˜‰¸ø„¤5«.%&ÔE,Ì×’HÄ3ñ‰ÔE˜;9©S®žM¬ÀÙY-s›­“Âbi Vžõçµ¼*æ5€0ÁiD1/صDdg)ˆC@8™°rÍ891æÎRNs‹ù#Ë)]‹ÃïÝ©hnIk|mùךf¸Ýzºl]Q„“6%Ä! œÐÜJ“[^‡—W鯆ËMùMkÁê©ä^ͧ…ÈÐ)ºýêËþN¹ÕQ¯&Šá:3̳Ǫ¿—3Ï€Âéj5õVè •«/ý_öÛ2’ˆ¤ªÆ …Ò¿o½ùqô8´.w±BëÈH«ÿDþ¡…Š‚šŠß+ßü“ùâs=ùž—™Ó~¨*ŠàË?¾{ô «ã{^PÔÇÏœ=zˆ¤({Ÿ˜üyNW‹ÁHèLš¢5t€¬”±WUY^ðï“ü -Ä!ôpíàÎRàˆC€8ˆC@ ¡Æ!‘DÂ77÷vIz™OKû÷vzW?÷vzQ11ˆC2‡}ˆÃ ú2‡-¤¥¥Íž=»·KÑ Ü»woÞ¼y½] -€^¦%=|ØÛ%ée¾ÿÞgãP^^¾·K\ç×_íí"|Í8ìE­üý÷ß½«T´}<ùÖ)z]=…Ðl"˜Û"ˆex ÄaK {» ¬éumôB³!ˆ`n‹ –à1‡-è ‰""‚eù7îAÄU|*ÃI«÷W–dþjBý×O_ëEäÔ5Xý•# yƒÐl"˜Û"ˆexLçqØõ0ÀWü•ùfÔ¬iª¢ÌرRÑüxœ9¾ê¿¿Þ >­¶òéƒ|òñ.”ŒEÚÃú¼Ýk½Å;jJôÀ7±±æß çÝ÷EÒhþÜ0Ùïä¦á’­"Ôd':ræ¿æC”IßJ¾ˆŽ5Ý·×BKÓÕïê4ÉûóCèGôSç_‡o­ îÕT§.F¨ûúùkƒˆ|?õÎ ðÝ(Cw–¥¡S‘÷Â)WWé™JiÚá @ÒYÖçzîvnã0Îà&ËÚ0Â)5j²\'3v¤T´Ë¬3ð -Ò"äO²º´«¯ -9:U$ÛÙ8Ø(1FOêmð? v¸èÊp\@Úp‡„úŠ²Š&)5u%êáN"ˆØ)Aën$|Íײzq55Eñ– ”y‘†Š/Õâjr¢Ró÷/eÕ$U5%)òf’ªÿr45‰?9GKl¬#ŠËˆ¶¬_zÁÙ&q˜G¸‹žÙ,5¯ï¥~]1Z–ºj"®²¬’¨ ®JÝ]”ocX9#Ä!ºÿ·HStH>»ž,†W{ö K´ÊÊ«p?ê¢öYKIäítˆþ­2¦ ¥¿:ÒáÛãP÷=WÊÕ‡«"•JåVGG®ÊR§m…Qbï´¶`õ¹í–Ÿ:y—2NacŸwJÏT -mI¸°Ã9(3Pèbq¨íÊ««Éˆ´?‘.É€içü—#§ ’׃ŴÜ,l–½É ‹³§¦) Ô<"á¿-kSSSbˆŸrJüÈ‹2dœÅacá©­»aÕ‰_þW®i¼wY¤$Þvs‘G®ÑÒ¨!|¹æ`ßæô‘iòͯûíˆÌ—ªP[ø]Û)ÀcA?±Úí  §ôê›ä Ï= ?…m9ôTbøñš2Ü”C¡ëÑïÁ®s«wóøM.ÁßG¬ÝøÆíÜÑiÌNAªÿßÙ½ç¿h ûôAj‰ÏaÛñ²¤êŽ3­œÎãpåÆ<‚Ä Ï³A*"ôqÈ°«IÕOÔEËM­ ÔReä9š«¿”}'I«ª)£ÙL7;-δÑø6ÄØ©ÈåÜ‘ÙÊè^"6|ýŠ¨¨KQÏN4@‡L -¡.RSŽM^£ŸœCÁHmåg¡|ªº0èäj¬Šº’x{ΞÈÅY¯~¿µ|)©+/«“è×FÒœn¦Ý-êäxé~¥Ð–SûŸ‹ÞÞ¾%5W}ùÚ,«®&!°TSaÜEœì Ày’êß$ìÜ~öKM±’"éßÙð³–åĶ8ÿxýðö3¢6ÇÝçõgÕ¨à Û|MŒÒ:LVÛäôG†Ž–‚ÜO·]52}ÝN¼–¦Xó®Zgóq¯…êbh1Vø ¯œ÷MjÐü×b.gqH"4±Rd'!”^qØøŸKü>]‰ò›NîZÇùN•Ç8c³¹Ø3q×hñÒËŽ×FÒWÁ—þéäôÐî´ïÌv˼”vóK6Œš¬f§­B&QÏHt½MŸ¯Ü‘õ]õ÷€`òŽ$6|È~EÔþy(þ{Ããz1 ¦ƒÄRã—Ââª&"FTvð°’„’DK‡§–qG¨bª{›U;ž°©_óÊé<|†l}-RöȹmºH["¯¦ÛÕ ¤sÐÔÅ®E±¶45•3ów€óþ$"gsïGN¬«ö§­»¿È³ˆ’´Ñðjÿª­ {’LS =Ëjb,ªqØÌâ¯Hcñ•ƒna¹Ò£ŠV”+»]{c‹ Ql`-ò•´§hä}!4ʯ9b;\ŠUiÙ¹êK浉W=¡ÛoÚPI{Û¯¸Q²éý{9ãÀcÖZÒVÞñ¦Ú"÷Ç.[ÄÆñÒÝJ¡U‹l¿2Ÿ¢ï½eÜá¢ÿ²Ø·ÄšçÛ¶_múIS¬IrhÙËO>OüL`ÚEL§}‡@§p‡Í%ñëlÿ±I\¨†©z´{­¿¤-CËYLÑLŽC‡Ó.yv?»Ûßn‚<«³6¤S§X¾á©ê¨AäNIi-gÓ’Ý‘´&«'úÌÞ8Ì2)ú7_zÑÎî‘YœŸ*?Wì7d®O˜Šù×z‰‡âÞä4”ÚÙ œÅ!±þí­Ø˜ëÏ?ÖI EÅ’©1*˜ïï°‰¦÷-Èl·¤ÿi§aâÕVï“ÓŸ?ˆ¼$éûË´Ü_#Î8¨æØ™œ°:{j¥…×üùÂÛ3ÍçΚ6mÖœ_†J‹Êþt°¿k¹[9iËž—z~ÖÃßy›‡êEžÐ£‰Ã¦ÍüTüüýÐàËGÇâÚ¯5?5S]k]öÖ5ÇæDÅ.&^fX9óö±‡ûuÃ)û®O™sjQå~JÚJ\eµ«Ôã‰KbÌ„ÿ9®‰³I -ŸBþ‘#5›kþû1ûUÓnÙ‹·oÊ–Ôž0~üÄ‹Vèë*Š°Ö¶¥ Ó/1ÿuR]Š•å•±¡«Š¡µÛLÀˆÕ³ØßêX‹|éõýÉg)?ž[·áÅž”Ãc¤9ÜÚ8dZÛ¦ý–e½ØMfWJÐU¤âÎ6ó˜)§N›ˆüÁ馱<–É[ÄÆñÒ•B«Z%´)C¦½1ª<ÊÔñ½Kâþ銤ò;®†ûþybä+¦]ÄQ™€§qHªÊ´5Š¶LŽ£t;¡Â5ô×?}fNþ¦‰ñ+¥ŸYÿîNR”–7 ñ[=L²ý 8Åj)OÿµäãYDJñÛa‹vâTõhýŠ=²‹†o.lùÌÿ9Õný•'Ž-§t8ªŠâõÿÒÆ!¡¡† !G¾˜‚{sd·Úñ8s‘‹Övw‡…¬.‰i.9g·îxÙ¬)>¿ […žf;Ûœ±#|ËÌ~èéÒ\oᘽ#ùè8ñ’D+Ç­býç©bªÿò6?Fî,Õ$1®Üfc×›qhÖ¿ö‡yØðMš×¢†¡qXäÈjWgw‡¨8µÅÙ?¹#5{˜ßÙÝ“1ÙÝÃ6poCŒì³½R6ocQ0üó¶Hcú«–ÔÓ Ý‹ÃVuÕ=ßj´2!šå ;lÇ!‹µ1í·ÿ(q7-q[6»p¸iíÇ!ÇKT -­ZÚC†½õsž½qŒÕù¨éhXËÓ,Ö]tI=ñ‹¸‹äOû NéJg©™ÝSÛøãóÕ0Uw¯ hé,ežHí,u: “¸eOŽ^@€…® ë›®»‡â9ÛŒýõãb—¨‰à?'[Yß]´²%~¾$”Äë:¿Áµ“8\½>£Q†z;"£ílõb·×]qíÁ˜ì äm¡Ñé(J"„²?7‡¨ú¥úþÚÒzk,¹~Ô+ü?ìP´!ù¥”4Í?lÓOxÚ8$~Ët·9^®¡©‚©xW©¹>p÷b Q\Ñ•#žaYˆæ@‰ï_­ßç‹Þ<[¹*Ä×mbS~há—ï?HI¤®ü iøÒ^ëg(‰o¥ÙãžôE}ÈçO2K||íÆKW3¯\ŒqûØÃbÍ%‰Öç¾à%VÇŸ³¿ÌbW7¼l« æšš!‰f³<%›ó™ìV IX¯’ÿcþö«¦½²ªs_×ÿ¤ÓŸÜNüöÈËd?rôÂÕk, -VßR˜é¸æ¿bË’­,Ó–G‡ oéQÄå0oÈou 튜›qÈb¿)½ w–îM 2PA*îm7üåÔé5ØKœnËc™n‹¸Z)´j©c¥q=½ñ‚UÆʨÀ•‰ïÎ9˜EH…\;ñ³èwÆ]ÄtÚqt -q¸Ì:½IVšÒ:{ã ¼¾Ë5ñ‹Æ‘%²¿ò³o¹•Æ‹qbÛ­42µ/£]=žL<¸~¿xñI\sŒv?‰žüñ0÷AÚxCOnÛ\p‰^­”Úç^;NK í-{vïíOž§¼Û¿–¡À= [ -Cx÷vAXÓëÚè)zrCÕ/Ÿ}2aŒB4²8§w+…ÐPö.¿èk£„ÆHÝaÊb=Ô͇­€8ìí‚°¦×µÑS͆ ‚¹-‚Xf€Ç@¶â°· š^×FO!4‚æ¶b™qØR€¾‡rrrS§Níí‚°¦×µÑS͆ ‚¹-‚Xf€Ç@¶â°· š^×FO!4‚æ¶b™qØRˆÃÞ.kz]=…Ðl"˜Û"ˆexLKÞ¸~½·KÒûôÙ8ìí"ô>‹/n‰Ã¾€6 €¾Ä!@Ä! ‡€@qÄ! ‡€p‡bbb¼*ô0ÍÍÍüâè@Ä!@qÄ! ‡€@qÄ! ‡€@qÄ!À3$%% TRR‚Ãáz»,€ðºz -ˆC€ žU[UŽÃÕ"¢ˆ™™ÕåË7Û›ú¬ `ÐЃ@\‡êYx|‹á¼ªª&³1¡³½Î¾Š¾)))4Xê Ît è -èY î2f̘ì¬'?< G_U5m õ¬’‚¬ÚÚRÉúè -è>‡@/€šÃ0, û€®€îq‡qÄ! ¼‰ÃW¯^u¹|ÐSèèè´÷'^Ä!4~ ƒÌƒÎR€8ˆC@ 8âˆC@úX››ðˆˆ˜˜¦·KpT·­@ã0gç<‹Ç?Çþé?^WpÜÈä€À«31HM–õBDzUç.ºŽ`| ÀpGW­ý$??æʱ‰²íÌD¨øë|JžÌ2óå$Z§u¿â ê©ÏÛó»éŸMÓO\;ª½zMt…V@ÒæóëÖ?ýÞ:‡üä°c|ìéç¹zzì‡+þ>7_–6Éi¯<ë¥%Õ›ÛÁ7+Û¶½'¡¹!%uãp æùXÔ]ÿF.ÈB‡•÷×/Ý^as!Én`õ ‹{š6_9g2@­”Ú·¯ ›UFŒÒÄöv!û Í% &†Á_ðÃøËž£Ú143 /jœ¼5Y®uZ÷+â Æẫ5ê+¢Ât˜ÉG´Ž\Õü˜›wf¯Ïcåí~nZròCDM-éçù3rÄYÓ5±Õ“7¸¯ÕÆOXk© qH†|XÙý¶g¿ñqÁH=z ‹C”ÕAÝ5¸ìáB‡dÛ]uR)à¨_J<~·{>/þòŽÁï÷,7½T†GćXµx"¡âщ½çÿþ€“6}ÅRÂqõû/Gý¦@n„×çz-w.÷¹>*'¢mžµnÞ¶SëQ8NX9úã­¿Š0º.‰±æƒøeËùBùMÛe‡ëq£>š¦$[Cð彦w洞^ÁÞS‹ìhN6ÑSõØ›!2þ´7¬ê‚ùr?âö+‰FêßïÛ/ßV²êüÅ­Ãêhª’ZM"ô_Î"‰ßÿ tó¹ö¬ø[“„ʨYV{¬vYÄHz\L0T¯²mÙÆ—¿F^:¨ù¢lòÞsêîÿªE”Gêï÷ž«ÂðÝ¿@ŽCÛ':ªÊƒä2Ó¾W½Û}åôBÕæ7¾«LþI1kó¤ìÍß°.AbË¥$Ób8“þå°*]~úü–Ÿ$ VT´)/ÄÔæ,ÆælüŠÿœVû}žs,Å]jÛb†ƒ:jbýk‚uYìPø³Á ×÷ÿ'={wôþ%jÍçöyÒVMy¬=Üÿüß%M -ÚóÖïñZô}ã¢N×ÓÑá)„qˆ4äï_nù`ö™TóG«Ï ¹ú«lCaN^ÑK_÷ÀzcÊ®$T¤m2ÜY<{ëÖÙÊÅWŽ„f”7‹jnL‰›ó*ýµºþ¯e›L"õb"~:ºöÇ<'^L9qÉW+ßf¡íÈ8S»ju¥¢¿.Ÿ®"ÚÛ[,¾?Ù´|K©m¤]ºã>¼×§—*»å´Úãå uîöS%?æ‹è[ΕzûüÅ«sÞû2•¨§êZãGŠ~ «8ÑOçÖ¬ —÷½5¹È}™ÃKô\Ç]å!mUR«i’ݵ–qøülê+åa䈥÷ýýoªï;¹$qC@“ӥĥÅn+œ_韹àøɃiÍ h”¼sÈ«hén¯é²å…ý–˜MS†8äSÈQ·þÕ*ƒ¦³™õ#MuŠã*ÝYÆ!Ã<‰[/›¯*>I“ð¬ ^}æÆ ‹Rpaè,¥¤Ô¶ïÃ,­’Äi—^+ž˜¼gº\Ýk†ƒzŒêß[é«€Ý_¼¶¼TZãiYÒ÷¶Âö‹I¿qYêðŽî°ÂÔ3zxyš³¡GžŽ½×µ¬ÀךVŸðÌߺ©³õôµ8$U?r\¶íÛÖÓN7l=j·_‰_©NÙ´žX›½i©õÝ -"ír -³‚ýd8?Ôô rlgéþ³ëã×ÐÎ#ùÓæ””5_ìn(žÿçÁÑÒ¼Þ0A¦!oÏ2뇿œH´ük½EÊ À+'ÆnZb›ûkÌU¿ñ2?æcÕ¯B[qÍbŒÏh†¥8¤™›gL»ä=ä }URªiýqÚog‡MŸ¯õ -½žý±¦™HB‰¡v‰Q£z}µŠÚü|³û»‰íjݘ×Ì €æÏç×4X4s†ÞBƒ‰ê`”ü -%êÞ9x«…íùh±ÿ§Ä½ÜXÇ!ý<‰[.™¯ÿGÌÀÃ{þ¾£ÿi…ü6Cª™zX9Ïôñ5$Ž`%úQú0qoN¬³¯¸úDòž_å)iúƒšÑ{%²ñK=\‰žë+91Iºè(u™åaEïáÎK×çωÿc¯¶DEºùÒµ†îr}ÙZO;c"„Ï©ëV†*o™ö>ðÅÂÄ [Z,aW.±}¡»;À±åÒoíËC;Ï™+ý/Jª™Ž|µÑÉÂFê'‘~¿ŸþÓ‹àAŽÃØ«~ã8ˆCtM'LÖ^ž°Ùó]u#ÿ80žÄP•”jb=sÖç¸/µÈ\éî±h$6wÿöPœñ¹ ë+v.ßòß0 \.Ö6%i½r‹53 _™ÿøá£'wR/æéMõûMúÓøjÔm¿9]’ˆû­´×^ÒÍs~çvæ׆D܈œ„ü³~á¦ï[.'šô‡.!Ö—ä éîF·*¥'yœ‹\;ˆrVʇŒ‡•Lµ¯… 9½¬+:‘ßl.Áò°ê0k Ýå/ùÆÎzÚA(ãÁý/`åºK‘æú_Oþ8AŽPóúùëšš7GÜUÎÚ³­öØ1*O¶z¼Ô4sµþMT–ûäñ—Òÿ®f7õ7e²*’dsÜwþ¹ƒå‹^ÒWÜx-ñ÷ÇW™]’k¬üõÄåå·™«ÉxSëÐþýÏN[i 2ÅÊšõKÓ¡åæ·¥Lv{LÅ? óKz¯bÖ速Uæ)¥bº^WûcX­™A%)Ñ·Dµt4D -“}‹¬’Î[Àµd>…u”iy‘Õ­4Žôó\Uñ7t|:fó®ßñ—†½ú5æÊáñíÝݧ`¾•F[üÞv“=¯f¸¼ ¸¢à|ö¤ÅP4òèê!6ÑVX·1ébÌ^ü†ÃjÂ[fß¼ÚóõG/cÕ¬àÃq+Ã=߸¸~éx=žÂ‡È÷§ÎË6Ü«”äò™Ej"ô7·\Îm~rê`Pò£7âJƒÆè[.zsü@Éo±)öw-LÎIn¹€î8l%Ý<[ï˜RhqÈ963ÝË×¥¤8 “ ”]6_v¨yó¥s&…í9–üχFÙ ¼B}櫉 ‡NI²§søý÷U²“b/8„¯f¬¸Ébù‡V¬;[*7'âJðTy´H`®&}UºKôb-qÛ×õØõWµòãæéW¦¥LÈuJzu`Ùº›ý}.Å.%†ÅšÐôñüN×ÈGå âýÆþî~Ômž´øq˜Èê‡Ûèç¹rÚyèy$õß/ˆúþ.zp»ÆZØ„XþÏópî8ßÔÀ_ ¬v¸Ùoã¹h«a’ô5“÷ؾñÛ]Ac—+ÉlfŸÐ˜I5&-»=»–Ô:/rúÒñz:<<…4€Sˆ ß¼LôÜñ“ÿÅÀÙÊÐå } ˆC @>Õµû?ÄÀãÄáUÅ;_¡â Îï–RsSS÷W - @8BºSÌ‚kë €fâPk84‡Bµ.^^;Êé‚c—¸‚µõM¨šÁ`‰ñOʈ,§S'‚fá€wq˜––ÆNæÍ›ÇÎl@P‚*øj‚f.ÁÓ8\¼x1ÓdôôCBHùôúë âîÃ2Ѩc´ÓÙ‰Ãë×®±S†ÅK–Ð~ìÀÚ@üWã4½‡$Õ.Ò"a*`Š‘›7nv"bBÕã£.ÖH*Þ¶~¨¤Æâ˜ínWß¿ÿªv:â%óÊÏË #œR9|òV×–ê%¸Ú:D­3ꂵu]mÔçzþ5útË íHÍSÇ5ë£èF\fO'} †ã·ƒRæ邧™ÆO—“ŸN1îöÓhQêr÷¸¥˜ø{–aýw®èŠÿ¾˜§Õ¢"âšÁþ Ô`D¾…§q¸`ÁÊÑDÖ,‰¢bô å_„òÿ­[·:1¾šÿìCLÏÆè)µ329sn1L8lNã°3bßÚz@mà?µØòq_¼ÛHÊz„Ò‹Mï½ãÝG2 ¨×©Nú<‹C¾Ð ïêWj¾©xÃéCóúa¿Õ`ÄàY| oãpþ„,VU¶ÔW--­üü|²žI˜´´Û틸±0r›ÇÍ¢÷…ªšƒ¤ät÷„íê—æíqîM‘DÀÐßìí4CY„8\±oø/¹ï¾ÖHŒ·óõZ9ûùãzÊ'‘>A7Šðb¢²c6øí™ZdGYÉøÚû·\Pw?æ8IžoÏò¸‡ì˜ÖÖU µ¹òàØ™CþùëµÔŠp‡þy›Ì£­bv8%Ì<“°à¼íá‰'£ ‡aÞ'2KñìॻöÙŒ“ÃBÒÃíÎR¾ÑLkOÕF$û˜ Å^:°óLN=–(;Îú ç -¥›ûGLVùökø8²K(¾´^¶CBS¼Htº6.óMÿgÿÖxÁÍ5©àm[§*!†yö NXçFôOtù F8x‡ó)m=³DÅŒhëè„„„Ì30 *:-=½³Ö!­gq_*ˆ*jÒ"HSq¢Ùæ"Ÿ$/íf6âp‰›Ì®ä ùÊ•i®–çôãN-‘¯ _O¢ý‹„)æ#¥ˆ5ÅŸE*ä¡qh´òÚî˃¼Ž9Lãç-Ûâë… ÓÙ²66̈}kë–*ÐÚü}¯vhŠ‹Ò%3û|ïä]Òg¬v«z;þµ3î’á1« n7·œÞüÑÓ1Ó褷žróÛ(‹x¿ÍFˆC:¸‡ü£„©® e—lm3LcQO¸å‚zBlà@Ïe?\ÂêœAì1 £ ã³Äñ¦aIÛÓ¶Ÿ÷'?™ŒvUèûUôóD›†›·dDÖ“ÿ}“Ô5r÷X£#ÃÏÖÑÇái b%CÒÑÑ}•—§£«‹*Xß@Ÿªk IϸÃIª³ü#näU0Ćåý°‡«C-“bg+cH•÷­Ì.¸$öš~=ÉÏØ.1PÁþXÉÒ­ß0¤ÚéÇ/îŸ"Ïߊævë3bßÚº¥ -råžØ= yjmé”9ò¹Ó†ŒåSKžêŒ+y4rráYEÿ W:(”A›ó¤æïø‰ãI‡tpõ‡ü¥„©®k³ƒ b~xBŒE­K\t‰1²ŒpŠµ·>I~µAÅvª%iãÐ~ž8§èµn2ž ¾óÕª3÷X„‹H´ãáò+fm.?8ÅwGƒÿáÚmq»¦ñõ#^¹‡ì˜ûÖÖ-U´Unk½-=j±§YBí·Ã6w¼R¿Ô5ØŸÞ‡x_û£6¸vÈ·ã4ƒ°ŒÃ@ÄO°4»°1)‰ÆaœC¸Uë+mÒ¾§'Á=Ý)`VÔÉé -¤ú/ë5 ÎÉá¿ôI <Ã9sæ´]Fθ{wÎì94×Èܽwƒ8¬{éjthR䙵‰E©Î¦Á¤ÀëQ“ErÜMŽŽ7Òh½´WO?…¦³ôÛ7˳sc=²†~=WTyY$L Š0!E¬ûü«.›kKþÞSc>FXmÿàpzÿ>~ä·ã3bßÚº¥ -¦8ü¥ñ–Å -_œÝ™„¥¯ì}¾›ž=o-}w£åÙ™!¦Ã¥ˆµÅ¹ßTÇ –Æu¦“>·;KùH3(µÏ7,<·˜z›'¡ì’mÆ:Ö¥d—HЋ9>ÐÓ„ó8L9Žñsº±$tç4ùúl?S¹ÀsNû;+Àx‡zzdµ¶Cí3AZo¸&_æ}N:KqÅ)û\còò -&Nû”þQ“eqoãÝ]’>ˆªè¸˜®„EHôSDÿ³^á3ü—~9ïÊk%ÆÙùî\9˜Ä¼ž‰ÍOî ºYL•ÑÝàïÝz+Íd9\Á©õ›s×Æ]Ü_m“Û¿;dÇŒ8°¶î¨‚)'‹æíZ± pÑwTY¨Ñú좦)àË„{ß.AÐý¢6ÝÕoÛTElg:QâçöÏÃí8ä#Í k²C·íʨSTºê€Ïªþ¢ …[n¥‘k}Ðk¥rŽM«KÔˆµ=¼s:…!êwfíöJ/«ù@¹+GV]ÿÈþI>ë#sBã½c;ÂWš±ƒ—zí_?‘oÁx‡z³ôZîªFèz^ZOI÷3Àg»·[‡ì˜ûÖªà¸ýC ÓLßî9ï³ð4gÍœÙú‰"eÊÝÖ”Û­I”~äÁÇ`|݇ÛqÈŽ±om  -~€Ûq(`š8ì“À˜¥B·ã3bßÚØ)¨‚Ûp»³4ð?ðD !„Û¿;d§ lZÀ'И¥À% …z¢À'ÀžâP88E€ð\âPk84‡@'€µœšˆC ÀÚNÍ‚Ä¡_§€fâPk84‡BHk]q¾èP°¶¾ íñK;r ;ïA3€p£Ò!‡  ->¡åw‡!Ð ð4/^Ì4™:„/ C̹~ã:ˆ¸û´‡CÛ HÚéÇaÏŽ0ªà¸Ú:ÍAïÄ!‰D¤ŽÜK‘0‰<„!e Û7nöðÀ»}r(^®¶QkcÇŒº`m= Šú\OãÿFŸ^©N}ŠNÍSÇ5ë£f(b~ÌÔX³Ýíêû÷_5®S…Á<¥ÏÁÕÖ!i†MOhüt9ùéãå:~Ó ƒ'ˆã -/µ<þWvœõÁmÓwº_}ÿžò\_)ÉÆþ&òÏ­—íÐ/®Ë|ÓǙÿ5^psM*xÛÖ©€®™až}ƒÖ¹ý]~b:!øžÆá|Š@[%òc]´utBBBæP–žÞI.Þ†8Æ…¯.E¬ÿ^»eíIÆ8\â&³+9h¾reš«å9ý¸cý=–ÑO‰˜ö|›c¦ÑIo=åæ·Q;ð~ šôk&JÉ ò9M²s½n:[ÖƆ±omÝRE ][›µgRjh?oÇ¿vƽS2á²BnÇ!;fľµuKLÖæxpè1¿f µßÛÜñJýR×`zâiÌF —8…Û­C>Ö Õ Z¦Xš]ØÖ^Æ9„[µ¾ÒF í{ÚyÜÓfEœ®€Aªÿ²^“àœþKŸ˜@ÀÓ8œ3gN[dÆÝ»sfÏ¡¹v@æî½{Äa}®—ÉáÉQ§×GÚü»çºÎÒowÜ,ÏÎ=ªÑÖYÚ2åÄÔg›-ÏÎ ‰0.E¬-Îý¦:f°tPY!·ã3bßÚº¥ŠúOЋò•t[틳;“°ô•½±Ïwӳ筥ïndªq\Ž»Ñ¡ÉÑñF­7úÕ3MéKp»uÈ¿šA=!|ò£ ¶ëè;Kžo6Xx:n1õVЮÅaÊqŒŸÓ%¡;§É×gû™úÈžsÞñ­ª@ïÁÛ8ÔÓ#«µEÈjŸ ÒzÃ5ùû2ïs‡¤úW›·?”4ºÖÿy_¦ÞJã3ü—~9ïÊk%ÆÙùî¤ÜJC?…|+̓pïàÛ%Zbµé®~Û¦*Ö÷…8ì±ß²cFX[wTQó£ÆkÄÇÚÞ¹ªß»Ý+¶á.úŽ* 5ZŸ½ãBÔ45ŽÅ½wwIú ª¢ã|`º!1MéKp»uÈŸšiõñ†Â‹-·ÒÈŒµ>èµr¨$†X“ºmWF¢ÊÐU|VÉ>gŒºÄY»½ÒËj>PU×?²’Ï:ÆÈœÐxïØŽ°Ç„fìà¥^û×O”ï‹g[OãPo–^Ë]Õôç—­§ˆ¤û™àdzۭ݇Cv̈}kë–*úvgÂíÖ!iÚ§q8kæÌÖO)SÜnM¢ô£ >wnÇ!;fľµuK‡=·[‡|¤h³Táv²cFì[;ÅUpn·A3ÿO´B¸ý»CvÊÀ¦µ|‚Y -\âP 'Z|‚=Ѹġqp -<þ …°6€S@3qtXÀ) @8:¬ àÐ ˆ@ -!Ðñp -h …°6€S@3q(„Pëb7ãG6î!µõMߙȢYl¾ÍÂŒJ#„´Å!om¡Èæ{[¨‚Oøqür„T@3€pÀÓ8\¼x1Ódê¾$ y0Cäúë âîCÛ:ä(ىÞaTÁ'pµuš‚Þ‰C‰H¹—"ayCÊ@†7oÜä@Ä]¾¹ñÓåä§SŒ—Ò1t–²ŸˆlÆ!;fÔkëU ù~›w=ù\D~ìÎõI>á^ZR,ÒX³Ýíêû÷_5®s('aÑW[‡|¯™aâû <à PÜ—¬YêHöÔA|Ûž{vëÖ-^Ä¡°ë›ùÚ!;‰ˆ°Ý:dnjط¶V•.Tq×T!,ZâvëP4ÓÂRÅ@§ð6ç/@Z´oy° úª¥¥•ŸŸOß“–v»Ã‡vî1YýåÛ¯5âãì|½Èö]ypìÌ!ÿüõZjEH¸Ã()LóçKÞçÞÔIìýÍÞNãßÙÑÍ3ôk,¥@yb§”äcÿ“¢¸ÂK-ÿ”g}Ðs…RŽÍ²šâE¢Óµq™oúï8sXOEpžÚÉÕk‡¨µ±cFX[7UÁ¨Öé´Ï(g¨Í2ÛWÑki°“ëuMK‚zC·[‡ü¥'Œe¬ëÊøWxF¿h’U>º4ë½÷åSc+˜\‚q=øòÌ0xvðÒ]ûl†åÛ²Ô'À—ð4çSÚ:þ/ù±.Ú::!!!ó ¨ŠNKOïHÄKÜdv%ÍW®Lsµ:g{LÃcÅ^íÐ¥KföùÞÉ>ºÒDÜ— -¢Šš´ÒTœh¶¹ÈçÔü#F ó0îÊ.ÙÚf˜Æ¢k¾åbyN?6p §QqˆYâÆxÓ0‹¤íiÛÏû“éxûøn_;dnjط¶îªâw¦úE˜âp}mF›7¢×Ò©¥ýêâ°KZX¸Ý:ä/Í08É©Åòôu`›¿ÉîŽiìñyJ¨'¬øã`ÉV&—XF¿žˆ©Ï·9fôÖSn~e±ïwbÒ¾Õ¬ô ð%”÷K¶gœ‡ÉÂj³ƒ bZ×|Á%Æ"È2Â)Ö>Üú$ùÕ¦uAÛ×Ù1#ö­­»ª0dª_„) ék3Î>Ü‚^KÉA?“‚­KZX¸Ý:ä/Í08Iò±a¯êzãi›ž`±&~ógÚ)-.Á ¢Xë¨5NŠeDТ5Ç8¹&Y3¿ÂÓ8ÔŸ«O¹P€ÜÉÈØ´iªà¹sçþx 6‚ddd°-âÖÐBiµ$Ñ×>Fž2{c·NV¶ˆØ!œaÖqh˜Ð²fK³ Û¨kŽs·j}(¿ãöµCv̈}kë®* ™êa‡´µyÚ>/¸$3ÆaC—´$°p»uÈ_šap’ÓNX3Ôµó› Õmqh¿9C&—`PQ¬M”õñåñ±óT°?¾‹¥>¾„§q8gÎœ6ë͸{wÎì94×Èܽw.ŽowÜ,ôbŽô4¡—ö¥«Ñ¡I‘gÖ$¥:›“SXYXíóÍÆ OÇ-V£\$”]²±ÍXGß b" qÈ¥k‡ì˜ûÖÖ]Ut-éµµ\½1ÇÝèÐäèx# Š*꺤%…Û­CþÒ ƒ“ ÷[C_×*uµ»csTŸÒYz >àσ%[˜\býzNNÏÞlyvfH„ép)bmqî7UͲF‡oãPO¬Ö!c¨}&Hë ×äï˼ßápŸá¿ôËyW^#>ÖöðÎUÊ96ŒVˆ+NÙç“GW0qÚ§ôwij²0bMvè¶]uŠ*CWðYÕ_´¡ðbËEr™±Ö½VR×,øqˆpçÚ!;fĵuSŒ`ú¡Å¦'æ8\G¯¥¡’îm¼»KÒQ×àÓ•šº¤%Á¿•†JO·ùK3 N2ùÀP×£ÆU]Þïó¢QVe˜NÙEû.ŸSÁäŒë‘$”?÷¾]‚ {Smº«ßQcˆC§q¨7K¯å®júçi·ž"’îg>èÜø@OÁík‡ì˜ûÖÖ-Ut ÐÜnò‘fzªöAEBOãpÖÌ™­Ÿ(R¦ÜmM¹ÝšDéGA<|qØ}¸}í3bßÚº¥Š®Zb‚Û­C>Ò Ä!Ð0f©Âík‡ì˜ûÖÆÎ*¸ ·[‡ €ÿ'Z!4f)À'И¥À% …®^;ì`m|Ž=ѸġÏ;8ÿ ‡BXÀ) €8:¬ àÐ ˆ@Öp -hD …èø84‡BXÀ) €8BZë¢ O…;Kû(TÍPMOÂÎ{* @8€Qi„š8$Ñ„"[ïylm  ->öøå4A3€pÀÓ8\¼x1Ódê¾$ y0Cäúë âîCß:ä(y=* ¨‚Oàjë4½‡$‘ê¿ “H˜–Ñ}oÞ¸ÉÓ!¼9]g]î·ïÑ2=W.ÀÔYÊ~"²‡ì˜Q¬­+ª`Óž¼´¤:Y¤±8f»ÛÕ÷ï¿j„]çP`Ÿ.'?b¼|€'Kñ\mò·fºQû€pÁÓ8\°`Å}Éšmq_Ê ¾mÏ=»uë_Ç¡€ÀêÚ!;‰ˆp‡˜ûÖÖ-U´Gj¶kb q»uÈïš–zºoãpþ¤e@ûÖÆ‚hiiåççSƷǤ¥Ýîð¡û†ÿ¢‘ûîkÄx;_¯•ƒÅq…—ZÈ);Îú ç -%¦£oV;sÈ?½–Zî0J -ƒ4~¸rÀ3úE“¬êðÑ¥Yï½/Ÿ”îíqîM‘DÀÐßìí4CYýºUGç,xûAQ ^mmHÀ¬G^®IoiN!ñå™aÞ'2KñìॻöÙŒÅæÇîÜy©#!";Ñ;Ü«×Ú\½vˆZ;fĵuWûGLVùökø8Š*$Z¦·¹ú~Ù Mñ"ÑéÚ¸Ì7ýwœÙ)³}ÓRŒ†Øüù½*Æ¿³£ÓÒЯ±”V¹:HJr€±€É@A½¡ŒÛ­C>Ò sÍRwÚÚgñXi„Pù$Ò'èF^LTvÌ¿=ó¿0+„¥§q8Ÿ"ÐÖKòѤ­£2ÏÀ€ªè´ôôŽŒo‰›Ì®ä ùÊ•i®–çôãNLydo›aˆN¹å‚N‰ èi‡¿ïÕMqQºdfŸïì£+QvÅÎîŽiìñyJèR†ë®EŽm¨ ª¨I‹ Mʼnf›‹|’¼´›³¬oCãÂ×—"Ö'JÉ‹aè“Pž¶Å1Ó褷žróÛ(‹x¿ˆ©ëŽ-9»H ©ÿÚ$¡&%ÒñáܾvÈŽ±om=¨ -«s±§–öaŠÃUAÆ!f‰ãMÃ,’¶§m69nÄ´T=Cq_èUqjþ#z-I O«‚Û­C>Ò sÍR÷ŽãPº"m‹E”Àó‘RÄšâÏ"I63+d5+5OãÐ+’ŽŽî«¼<]]TÁúúT]£YzÆŽŒou¨eRìle ©ò¾•Ù—X›(ë ĘSb,‚,™âÐðĆ”èiÈSkãH§”S“1ÙÎÆ?–²X¿ùÂÉQù þ7òªbÇòþa×N‘\lš7OKW†¶c¦6Ûùw§Å2"äùŽç’ëf“*¿à÷YSfêO!×kÇ·¯²cFì[[ªâ¢KrÐϲLqˆ¾µ·>I~µ‰tŠ³·`ZŠÄl„ê,zU$Û‡[ÒkINØâ -7Z‡|¤暥ïÇ!&{“qàòøƒ†ÀJ!̺’m§ÿÁÓ8ÔŸ«O=ˆîddlÚ´ UðܹsiM9##ƒ㋵Ž²4Lh™biva[ŒE°U„cJÔdÒ?ÖF‘L¹Ø&ë Õmqh¿ùìöÖž2{c·NV¶dãáÑVÚ84>¾<>–./ñUYÜŠ?“7'.~ýиۼ+pûÚ!;fľµõ¨*.¸$³ŽÃ8‡p«Ö×Óô¶EYŠ!^ûÑ«âŒC¸%cšÅ!÷Z‡|¤æše>Þk²lŒè„‡Ëâc~ï,¬+ˆCÁ§q8gÎœ6ë͸{wÎì94×Èܽwn±owÜ,ÏÎ ŸühƒmÆ:šÎÒàAëOŽ:½¸>ÒÐæß=°ŠCé/n°»csTŸÒYz > uK’õ¡I‘gÖ$¥:›“¯³‡„ò[-ÏÎ ‰0.E¬-Îý¦ª£X^-6XU’XzyM掔cã{éâ!·¯²cFì[[Oª"A/&j¹:sg)s3-Õ˜ãnthrt¼‘¥Y_÷ÒÕˆ^)¬â°öùf々§ã« v§·[‡|¤æšEwúÚ¯Ïõ2¡w銴Í Sƒ"ÌFHë>ÁªË¸1+„YW‚­‹¾oãPO¬Ö!c¨}&Hë ×äï˼ßáM>Ãé—ó®¼VbœïΕƒÅ -/¶ÜJ#3Öú ×Ê!Ä×›·?”4ºÖÿy_f‡rHã‡Ëû=c^4ʪ Ó)û¯hßåPõ›û\còò -&Nû”þLqˆ{ÂÅ+½¬æå¾ Yuý#Ç×>÷¾]‚ [®6ÝÕÏA1jÛîG•$b£¸¶ÙAo“aR]¦'àöµCv̈kë!UÔˆµ=¼sÕPÒ†ZlªqbŽÃu KIbH¸·ñî.IDUt\ƒLWj*N¡WE<«8$Öd‡nÛ•Q§¨2tÕŸUýûVîµùH3Ž±fÑã]–¾öq¯œ„|+Íã“û‚nÄDet7ø{Ï“ûȬf]µS€áiêÍÒk¹«šþpj5cÒýÌðãÙîÃík‡ì˜ûÖÖ-Uôí_Gô Ünò‘f¸èJÀáiΚ9³õEÊ”»­)·[“¨ÇÖƒ‡!»·¯²cFì[[·TqØCp»uÈGšá +Æ,B¸}í3bßÚØÙ"P·ávë4ð?ðD !D€Æ,ø³¸Ä¡ÂÕk‡]¬Ï 'Z—€8Bày‡§ÀãâPk84‡@'€µœšˆC ÀÚè @ -!ÐñÀ)‡BÄ!§@ -!‡œ£Ò!‡  -øžÆáâÅ‹™&S‡ð%aȃ"×o\ãë>\ÞaTŸÐ;qH"©?§Ø‰„iÝ÷æ›=l|}rP]nÇ!;Ö…8ä¢*?]N~:Åxù š‰u¹{ÜRLü½G÷Òc)îS“µ~Í?ßIŒˆ„€1 ‰ô ºQ„•³á€åßWß¿§<·YJr€±€É@äS²›kRÁÛ¯a×ÑŒ$U?v5_ª§ŒEê^ì1=>åTÔRåoL:éÒ.¸9¿š·L,¾ºÍ6B-ä²ïxc¶*Øëþï’&íyë÷x¯|î}4åï8ÙQ ½‚½§Ù‘9{vU–‡eà› n±GV*ç¹ù\{Vü­IBeÔ,«Þkvs‰zJ5gXñíÜa‘7£&6¡k8O^Ï°ékݼmÇ–ŸßçyêîÿªE”Gêï÷ž«"ÒËû`žÆá|Š©µ†OX[G'$$džÕÓÒÓ;ŠÃUAÆ!f‰ãMÃ,’¶§m?dT]QEMZi*N4Û\ä“ä¥Ýœe½xâ¾v¸±þ{uî–µ'í‚V^Û}y×1‡ rXByÚÇL£“ÞzÊÍo£,vàý4é—"JÉ‹ ðS¬¹‡lûqØ-U DÜz $Úð°H˜a>RŠXSüYdà i–­Cš‰¤ïÿ¸ZÄ-‹ ­\Ÿ½ÓýŽ ⃭R\u¤¤éóõ£^¡×³?Ö4Q-J ]ë9èöáwú ìò~÷rÓŒ!§.8ŸYc}·‚ØZÉŸœ‚ ÿõ.i°hæ ½…Õ%ø¼ºÏÁÓ8ÔŸ«O},ÌŒŒM›6¡®7wî\ÚÇ eddt‡qáV­¯ ÛoX{ÊìÝ:Y [yßbMüæ Qä8¤5>t©å§øîhð?\»-n×4,zl_;¯S»X¸‡ìûqØ-U4¼ö1¢×Àg4—ÅÇt^¿ôkŸí44²MÛe>W¥ž•N>ƒÒYZn™zÞ~¨x}îÎ¥féÄü6âµÍBÇÏ+Ï^Ú>’eÖyõ'ÇaìU¿q4q¸!˜é²ÆËWÄ7œµ‚Ïq_j‘!¹ÒÝcÑHlîþí¡¸Åýï)žG‰Ã=ËMïãð´‰í ÝÝŽÃ)7ia%ÕGŽR©{óøá£'wR/æéMõûM$(ð4çÌ™Óvª”q÷îœÙsh®7‘¹{ïqxfK’õ¡I‘gÖ$¥:›“¯³ŠCòÇSc>FXmÿàpzÿÅo·6Zža:\ŠX[œûMuÌ`é:ˆÃ؉CvŒý8ì–*ê^ºÑkàê‘*/‹„©Af#¤ˆuŸ¿`ÕûKakŸo6Xx:n±MÏCFÖ½Ømî/§ZShJî3ÅÊYèŒÏh»•f©JÛ?Ž»%bœtÑsð»ÝË,nÉ™{»ý¦¡4jüÈæ;W{¾ãèe¬š|ø"neÜɉÁëùû2ïs‡©¡ê7÷¹ÆääLœö)ýßÛ‹Cô#®àÔú͹kãŽ.Vþö Ü;øv ‚–Xmº«ß¶©Šõ‡-°‡ìqØU ¸âF Ll~|r_ÐÍb‚˜¨ŒîòÅ$bMvè¶]uŠ*CWðY¥TrÂÅ+½¬æåþYuý#džIÖçx¯´Èx%x–9÷ðåL:Ë@|FÛµC VLFí§_WoõÞ0MIWxÖË9ì~Q ^vbøÍØé2™a{Ž%ÿó¡IAËÀnÏ.m‰Ê–)²#x…úL£ÞJsÊ?F[ÿÑÙŸê7ño×c×_ÕÊ›§_™–J0I<3ÿîN׸ÿðæ ùü @ëÔˆ ÍON J~ô¦¢Q\iÐ'ça‡c”7ˆ÷û»ûQ·yj¢½½“váiêÍÒk¹¿íÂ…Öfé~æøÁu÷áz²`ìÇ!¨Hõïoß/VV—üš~Ø'™`‘œê4\¢óÅA§q8kæÌÖOû£Ü¡O¹EŸDé{C<|Æ×}¸‡ìûqªRõß»¬ÜÒßUdO1ÙyÐmˆöv™€Æ,B¸‡ìûqÈN©@px¢…"@c–ð ‡Bˆ=Ñ€O€8B 8âP8àˆC  è @qp -hD …è,84‡BXÀ)TÍ`8|ü‰2 h …–ºàÔÛ²½µõMPÍtA/%A3€p£Ò!tqH.ÃÖ+Ò qªàhãÔ:ôUí½oÓhx‡‹/fšLö™„!€‰\¿qDÜ}~Ä!ûYØúÊãQi@|B[¶ÉJï©°‡ @ ài.Z´¨õSËhÏ “ÈÃ^R¿¼yãfˆ¸.w[Š‰¿÷húéÂõŒßàjëµ6v̨ ÖF"¹ ŠÆâ˜ínWß¿ÿªv]ø«¾ËÐÆ!ÒY»°í=Âvò‘f} « -é)?!V=9ºÓÿö³‚zݨ› ÑÞ„§q¸`ÁÊDÖ,5©?·=+ïÖ­[\<§ëƒqÈÖ!;fľµñB}¦ê» C"l$b×â°÷5ÃR ]PHO‰Š„+ù÷UƒRí§ÓÎ Ñ^…·q8Òò„–æ!ÍóÈGFZÚ팯±äÊ÷SÏå5´Æ—ýó¿=—(û]utβ·ÕàÕÖ†ÌzäåšTð–æD¯ñÕžÑ/šdU‡.Ízï}YøÇíÖ!;fĵ±R…––V~~~çª@-iÅþ“Õ_¾ýZ#>ÎÎ×kå`q\á¥;ÏäÔc‰²ã¬z®"‰¡w®ÚçÞëŽ?³RCiøß±µ;å‚Öí«] W¯òŸfö ÿE#÷Ý׉ñÍH0e‰YEÄÊ'‘>A7Šðb¢²c6øí™ZdGYd|íý[.¨»sœ$õ咷ǹ7uD;@³·Ó e<“kMhÌ ó>‘YŠ'`/ݵÏfœ36¾€§q8Ÿ"ÐÖcŠÔÚcJ=¶ÈÒÒÓÛ1áë5{›†ÑA U¾¥m[½¿.à%oCãÂ×—"Ö'JÉ‹aè„E(»bgwÇ4öø<¥Ê[.†ëÉK »à¸Ý:dnjط6fUhëè„„„Ì30è\h]/q“Ù•4_¹2ÍÕêœAì‰Éìm3LcÑ)·\,ÏéÇF/W¯§÷ÜÿŽ™íU9~ÚrpÓË}æ~£Ãc 5úø3˹}ío5ƒ*$îÔïýB(»dK¯¢È/¶Y$L Œ0)E¬)þ,2P!C» •×v_äuÌašjDÜ— -¢Šš´ÒTœh¶¹È'aýÛ­ô®õ§oÕNÇL£“ÞzÊÍo£,vàý4Å!ùžÆ¡*V2­†æø \FHϸӮˆk³7­Nˆ™­Œ!UÞ·X¿ùµulš7OûcNZaÕf;2,%ì‚ãvë3bßÚÚT¡££û*/OGW]ÕÿÙ;︦®‡'aï%Šà®ŠPGø«¯Ud¸ÊD0dËž‚,… -*Dv€€"(hm£¢Uë¨Öb «¢ •=’ûf$  !1ÄóýƒOÈçÞsCÎsŸçžÁ9:º:°TAªkƒË<,µ~w™ºc­Ò¬¾Ôø.óÓîùq?A ^ÓS—iéѶ·³qŸE†nzüj…ï}WNò°fS½oÁ¢Ó­bõpºýVC*g“[3j]~¤0|©4ùm§;9ÑIÅ• HbG]ÃÄ£ùNÙhz×ÊvÎ2u|.«"ARÔó¹wfLnÌI‡<WãPG[‡2PÐwWÐr¶‰:Ç㇌ÃXƒ,c= À¢&8×Bþ§[‡p̾µõ«â"ïââB*J[[®*˜­ ‹N³Š5¤éÄÒü´Ç qHé5pª´µ{w°Ô4+æg™ýË?Áé±CÖL¡{>f°8¤W%·à2VŒC½ýK£ü;¢#[=2÷.“Au< 3ò“؇uÓCÑÂ/MïZ¤8DÑÃaéžà y®Æ¡––V¿í@_6RGô?5^º|yˆÎÒßw£K Ò1ëšË= Âh¥CÇ!áý9;›‹f‡t(¥í1ßÁôBN·á˜|k¨ -ü¥KZ«´XPÅ€Ž¯æ‹Þ–9šI?_·³Æï ï,ízäct@#g¤Dk›.¹îˆ~"¨q$/t¾Äà…Opzìw5s\›²i<ƒBõEhz¥üòÀÝ"çgL’ùL1bÛÛ÷¨ ’­É>“:÷¿¤]^uöYáZ¢•žF–¤d›ªkN9›ÅA±ç"ë½è]ë\T“¯åññIf3Ĉ­µ›ÇÍ,ŽqÈp755Éjí2Ak'R'\“¯Wqe˜©4Þ)÷ºd”Ô½¿õ|_aÒb†8ì|uÌ= ¼¾¥®ºqÜ´I’t~=b¯üáL¸_ƃ.I…éjõׄ~WSi8Ó:„cF,X;ª O‹›±xü£— -Âó¬#õ§ŠtVöM‚˜gµ?`ÛTQ$ÔùçãžW'¨ æ±\Žd?Ðç{¶FLK:í1[ΗÊçpzì75Ó*2ß&*<•†Q!È&›n$‡bJj B‚êvÑ!´©4RÏSm]›fÒî, ǫ̃$HË(/Zö¦ü®aÚüOŒ®µ ëjbHÜ…×Ò]ª¸Üó Ç¼×A–n7›šZ%ååWÄâBÕÅÿèÎÂÕ8Ô\©Ù7«zà”Ò/ˆÐ•Š«CÄ!±ûs·€´¨Ôö0vg„L,=åûž ø58Ý:„cFð­-UŒü™º½2Æ"DæpŽ-Nòf¸ p­1Wãp労ßú{J©Ó­!J? -âêµkCˆ¸õA¸}ð½vAQx¦~P¹šêk‡~ßpºuÇŒà[[ªQBŸn»DÞXŠqÑ""Ãé±CÒ w®5†k–ò!œnÂ1#øÖç/ªà4œ;šð>`G >d ­Y -àÆК¥‡qȇŒ¡-<Øà qȇ€ý¬âqȇ°SÀÚ¾O€f‡€aÖ` ÀXÄ!e@Æ" è,@ÚýËêdê¿]€8ð eféˆN„@ø°* ø‡Ð0~¡ÿx.Ç!p‡àjnØ°émê¾’¼˜!â|ñy bÀ×!öt÷"„„¾ûý G›q8p]Ñ!^#hÇsyUà$ñm₈Ԋ"aˆ¼„!e!Ã’â’Ñq×›3ù·—ë)‹ŒrÁ€ái¹cµÎúög$JPLᇟMüBl—ÈÀÛxžÐxýdA¥Ä–*Ž\šC½þ‰BÏ™#Ü”‰ýøŽ¶Iq'ÀF‡#qÆeß»j3¼¼õêƒÒQ–6C -‰ŸnÇúD^~‡FMÝâbõ“Xãû[ÁÕ8\»v-å"k¶ï!”²ˆoÿ¾g¥¥¥£‡`_Ío9~vWkì ÝÖùGø¡r1tÁ)Ç°žK:Ÿ24.TJ.Pq„ÖO«{fÎV¡e€8ü -Ìq8lqdq8D€ÁC¶œdPCKŒR¶½¼S'³hŽ‚@ÛƒØÁˆ˜÷0ô­TÛ°]ñNldQ·Á1¿*7º8t›Pýσ''BB+ä¼z«JI«.˜%X÷¨²æa”Ol»qÚ<”ÛîgÙžuAÆ«0ÏXଅ~ÄÛežÞ?ÝŽ>r±k!fþsüÔùéÊRÄwW¢£K&„&o̵‹év,ÊÝTë½Õù‰Nöi‡7¾†µ«ÜÜVÉמýõ؃¥ÇŠ¢T«Ðë¬ÿFÌ7s·ùE±í]—èÅ5›‚–K6<¯¿Ñ|™üXCNŒ 0øqÈ–“ÐûÉ%2S7gp B}‘5½“¤üòÀÃ"gilÒÎYbÄ–Ú·*2•¤8´Álû#è̤€Ãö I©Fì|ßHTP@t×暻քåؾpC¦cÖ)4—y„·Åœ‹úèPa”¢)ßó"Í¿÷`Žý4ò·ÕóßIG‡»»²£–Ë‚ÞÒoWãP—$V2ššú“ÊJ5uu’‚utu¨ºFBˆrüůŠ¸ç¿ãèSÒk7¯\ºBgÙL)²¬ ,ó°«ä‘¤«]æ…îX«4+ŒaNíÓî¤G-Äá·£oìô -)¤¨é“i¢üÌu“m•î·}sDËwn -l5ô‘*Œj‡ä¬¬³t`˜õ¿¶mrXïüÞ$¯ýÙ“T²NÎoAS^é™á§¤ÂŠÃî·ç$œ¿ÿ_K‘$D‘©6¹i?2 ø°+ÍõWŸ—[s mZ½7Y]j$ÒJýÁµ `ûûÝëìjWáÎíÿQœô^ÏÛ“Ûcjfé®_ñ‹æ:ÝEDÆÔtN·áü8dËI}c0— =|Ó; n«‡ËÐU@})g“[3j]~¤0|)ei§;9ÑIÅ• HbG]ÃÄ£ùNÙhŒ­‹í8×lç,SÇç²*¤‡%¨çsï̘ܘ’P[e²}À»ÒCtÆT§ŸÁÕ8ÔÑÖ¡  .âñ...$kkkÙÀãñCö~|~çÆÕR\v¥V&Îvj“¬±è4«XÃœ¾wúz@~C¨c‡?¨—„{¶8¦ fIíú8l1ô‘.ŒjÜFŠÃ&ÇõN¬Ä¡#9­šì©/П<6Ø=[M‰Ã`=³‹ðâ°ý‘Ï& ¼è6ßõ³Pý:Oœ¶m ÔÛó÷t¥ÎÇ(ë‚<[ùJçÖÔƒb¨ãž(Ñ ³f‹?D3ÕÛTuãÚŸ7/ž*¬T?têàÿÉŒ¡§|N 0øqÈ–“0?Fçc‹Cz'¡Äá\Æêq¨·i”Gtd«GæÞe2¨Ž§aF~û°nr(Zøe£c håôÅ!úˆû¥Ò_úî÷ûßÔb¬f‹©‡(~ƒ«q¨¥¥Õ_ÙøK—´Vi ; séò寊˜ÐRÛ,4yœ(ñÝ™è -ÿ‚à ˆ_:=š/z[æhf$ý|Ýοƒ¾³´ãWã˜uY™Ác×é;ô’F4ÒqFJ— Ô¡é$å—î9?c’ÌgŠÛÞ¾GM|lMNÐÔ¹ÿ%íòª³Ï -×­ô4:°$%ÛT…XsÊÙ,Š=Yï….1HǬWh.÷0#w–6ùZ_Ÿd6CŒØZû¸YnòÛd§X‚K¢×2YàPßîÆ¡¦&Y­}BFRûL´ ×äëU\ùªˆÛŸÆì ú³ "v Ï1ßb2]¬õŽÕÖ°‹Ç?zÙÐ"<Ï:2PªHgua߸Ä<«ýÛ¦Š"‰-÷<öâÛd¦êG„éOC5öù2•fáŸúèâñÞù©ºÏS‚çߪë–QÕµ Þk<¥6ÅÅ!ã‰èÜåÄG—·÷L÷ë|?çÄ+¯>vI.Áž¶O4 Ÿ\C~‡>]§õWM-NZ2H~)Gt†ã©+‘ Qž‡Ï?i•ž¿Z§©ìÁ„ü '[v”L +Ân"?Fšn¦îÇäÿù¬±KXnÒ\]·Hÿ¥Õ6ã°û¿“ž)>oè?o³Ï!ïÕŠ‚ÜûžÙ†Óc‡pŒ…8dÇIZ¾øF«È|›¨@òT¨óÎÇ=¯NPAÍ3.b¹²ƒÉIˆM7’C1%µ!A u»èÚT ©Î究®M3iw†zfT¤e”-{S~׿0mþ§³Þ)÷ºd”Ô½¿õ|_aÒ‚®«‰!q^#HN¤¸ÜÅIúˆmz§òIrŠ«úćÿO4¿ \CÍ•š}³ªéŸAiˆÐ•Š«,ü£ø -Pû« Wjå'ˆ~( Ë'XäÃý§zˆÿ½zþ0×/ÿCtaì*ù1Ôå9r8Ý:„`ðãp”„“»?w H‹ -@mcwFÈÄâÐSFaÅGàj®\±‚öEÊ”ÙÖ”éÖ¥qõÚ5‡€‘}úkï.ïò—Ÿ“—šîw^&7’Þ'ʜտ{§èú‹ÔWùN¼‹Óc‡p ~Ž²“p’ÖáöÁ÷ÚQDá™úAAæjßÅãÕجY -8Þ:„`ðãÎÇN`°£Kk–Ä!< ˆCÄ!@°wÿ‚8ð À(â0q`mVšŒE@ò! ã À*@3ˆC>X€Uú4S\ÁÚiëW"€füˆC>„ZHÖg -B°¶ï²fXÍB*ëWÍø°* Ò‡äe?(?© ýšú“ËÖTÁ#|‰CJƒ´ãfüWãpÆ LoS—ð…äÅ ç‹Ï³ÏÀÖ!Ì,ìÁåF€*xº8$½èÅ!^S‡@3€1Á·‰C"R—y¢H"/aHYÈ°¤¸„Kxw½9“{©±žò¶; lRÿŽµÁ1£XÛè¨bP†©ñ®Ú /ïß_½ú tôü±]l˜ŽY§Ð\æaÞ“oŸ¸}ßœ„w¹"óÝU!ùaê"õEÖÖx3lìù¦RwË:XÌÔðí‡7fc×+"Ú?t‹(Š‘{!øÝã8=vÇŒà[[ª U¥>Æ8Þ<× gvÔ"Ï«Ìë¸o}€C…Qrˆ¦|Ï‹4 ÿÞƒ9öÓºjœØù¾‘¨ (.€è®Í5w­ Ë ˜Óâƒc‡¼¥™Þ{ó1$—(ó$¹DfêæñíôM`r’”_xXä,MÚ9KŒØRûV@E¦’‡6˜m™pØ~!)Õ˜t•cûÂÞµÎE} dÒ§p÷ë^9jºæzdD›LáÓQž‡«q¨K+HMMýIe¥šº:IÁ:º:T]#!D9þâWEÜzßÅc“±J 5]±ØŽsͶO´¢‡Ã®î·-Sw< 3ò“؇uÓCQµt: Ä!GÇyK3tqXèž,鄇[p«Æ¡Þþ¥QþÑ‘­™{—É ˜u•íœfp­ÁôIúø§•i®K~âb~×oÂÕ8ÔÒÒêÿ×pü¥KZ«´Œ¹tùò¥¿ïF—¤cÖ+4—{„Q:KâP¼¾mß1 ‹#Y»«Ehò8Qâ»3;Ðþ‡H´þ«q̺¬Ì Šüù Æé±C8fßÚØRsæG5ùZ_Ÿd6CŒØZû¸yÜÜÉâíô5ÞöÐÓèÀ’”lSbÍ)g³8(ö|š†À#£é8#%Æò¿Ï8Vâ·4Cë,m¾èmy\›²i|}혜$å—î9?c’ÌgŠÛÞ¾GM|lMÖFêÜÿ’vyÕÙg…k‰V2êê\d½½kcÒ§ºüûêö‰?(Š W‚-â&=î0t—~ ¸‡ššdµö Ií3AÐ&\“¯Wqe˜©4Þ)÷ºd”Ô½¿õ|Î&!¥ Žê¾p‰yVû¶)VÚôgDìžc¾?Ädºé²Ä–û {ñm² -Sõ#Âô'òíTgÆᘠÖÆŽ*˜ãðTÚ®«‰!q^#Hß‚ârσ?Ë"jœP[ê™QI–Q^´ìMù]ÿÂ4 ÉÎ8÷¼:A5ϸˆår,Ýn665µJÊË)®ˆÅ…ªóñt?Nò–f¶†ÍX<þшV‘ù6Qä©4Cí#dª(±éFr(¦¤– $(¡nB›J£!Õù<ÕÖõ±iæ!íÎBF]ÍÿDïZ…I ôé2íR°GFU·ª·GrþŽ@_ã9ƒ´œ‡«q¨¹R³oVuÿ Ú#"t¥âêqHìþÜ- -*µ=ŒÝ!‹CO…µ/øNÂ1#øÖƦ*£§[‡ß­f€k!¸‡+W¬ ýF‘2e¶5eº5DéGA\½vm·>·¾×.ˆ" -ÏÔ -2WÏPƒÃé±C8fßÚØT`TàôØáw«àZc°f)Âé±C8fßÚàüE@œ†Ó­C ïv´àCÆК¥a ­Y -p‡|GÇG°6lð€8äCÀ~‡Vq€8äCØ© `mß'@3ˆCÀ0k° -Ð `,â0 ÀÚ¬4‹€8äC@Ç€U€f‡|°6«ôM¿B°6ÿŠº´ Ð €?qȇЬe `mß+$Í°š…TH‰4àÀª4|HBÃ:ä·ˆC  -¡?!تé?hÀp57lØÀô6u _I^Ìq¾ø<1û ŒÃ¡8ôk˜q8º+ŒUðãIÝŠ‰Â¯©/àÄ!Ð `Lðm₈ˆ¾{$a¨ïþC"JŠK†q×›3ù·—ë)³´ØÈ΢/¢6ÃËû÷W¯>(=?¶¾ãhëdmpÌhÖ6BUÀa 0×/ñÓíXŸÈËï¡©[üC¬~’âï•—9Ú:ä-Í0îa9Ò»{t÷„Ú+ãÍ-OÊ'–Œ‡áW¸‡k×®¥S”­Àã0Çá°mÄ‘Åá·×Ì bÁÝ=š†µ?>æšÒþ¡òéÞÂ1à0ü -wãpÍZD_oÌ—Þ9UUÕªª*ÊúöȲ² _1í ®ºqÜ´Ib¢ÊÆÑ1&*B½ GCŽU¼ë% &oÚj1ïéxmcrÔ:…–ëá¶)“ÉALg R`°z¡Ó±ó}#QAQ\Ñ]›kîZ–0§gPôüwÒÑáî®ì¨å²|Ý[Êé±CÞÒÌFo‰½ù˜5òMež–'t2S7og¸»ë‹¬­ñfØXÒ1¥î¤c°)¿<ð°ÈY›´s–±¥ö­€ŠL%)m0Ûþ:3)à°ýB)³®rl_¸¡‹ Ó1ëšË< ÂÛbÎE} ¤×'ngk’SÒ´_cµëlÇHÿ¿ÂÕ8Ô%‰• ¤¦¦þ¤²RM]¤`]ª®I·Z9þ" qØzßy³ãsY R‘=Ÿ{gÆäÆ,ÿ|s¿©ç¥Ù{OƬW䬯•¬g–—¹ZEwÊq8èÕ!úr¾œnÂ1#øÖÆ–*¨•‚Ýh•Lþ‰NqÌtÊ2¬^è4@øt'':©¸ò#Iì¨k˜xôTºº¦ýim•ÉöÿíJÑQ€óŽ]8Ý:ä-Í$XæaWÉ#IMÿ]æ§ÝIMˆéî6Ææd|9‹N·ŠÕÃeèößÚ¤r6¹5#¡ÖåG -×J“ßfÒU¾S6c@+Çb;Î5Û™^Ÿ?„úO=ŠU:˜`¬Ò9f†cø®Æ¡Ž¶õùò"ïââBR°¶¶6ía‘ g-èá°tÙÓU“ãlªFVûPšË< $óYpJn¹ƒ6Jr(HÓ€nY¥|5™¯Îã‹œ;„cFð­-UP¿ðLûÄ]´ŸYÎYèáê¥ãi˜‘ŸÄ>¬›†ŠjR§Ó˜ã°çÝïö¿©ÄXÍûm|îÂé±CÞÒ ]ºçc‹ÃXÃœ¾cȽå”8Ü‚ËX=0õö/òlõÈÜ»LŬ«lçlt¬­œ¾8¤Ógwm†õÉfarÛ²þÍGÙY«BS¢þO–ïÇ‹p5µ´´ú+é’Ö*­cd.]¾Él†±µöqó¸ªSvïkuOÜr×=à½S†?I¢ŒgQèxçTg•ðëJyúæ õfh`©‘–µ¡=Å}7ø7Êûí|Œh¤ãŒ”¾rõ¹“ÅÛx4á?á˜|kcKÌq˜ÕäËT/íôh{èit`IJ¶© -±æ”³Y{>MC€®~ Ÿnqˆ%¸$z-“åó†!N·yK3´ÎÒæ‹Þ–ǵ±)›Æw1ÜÝõEhküúÎRw‹œŸ1Iæ3ňmoߣ&H>¶&ßì©sÿKÚåUgŸ®%Zɨ«s‘õ^èƒtÌz…ærƒ0rgé úDÑ>¸Ç÷ wãPS“úTIÙëQ'\“¯Wqe¨8$¶ÜOðØ‹o“U˜ª¦?Q¨·ájbHÜ…×Òµ—»­¼êvD"<ÃI]¼»6ÇÙùIF¤î8$ãY¤’Ú+ƒ7Û¾ô>›µnÜ`ªPû“$W¯k’K~œxçâ¿!g(ïC/p>îyu‚ -jžqËåPôW÷<èñ³l;OšÓc‡p̈kcGÌqx*maS½0j€P[ê™QI–Q^´ìMù]ÿÂ4 Éõ<ù”©aj§òI²>ÄU}âÃÿ'ÃÏìœ;ä-Íl ›±xü£— ­"óm¢ÉSiïndGuaßT‰yVû¶M%6ÝHŔԄ%Ôí¢ChSi4¤:Ÿ§Úº>6Í<¤ÝYȨ«ùŸÎFx§Üë’QR[ôþÖó}…I ˜õ)@û`<àß3\CÍ•š}³ªéŸ@iˆÐ•Š«àŸgÙ‡Ó­C8fßÚ€*xN·¿[Í»?w H‹ -@mcwFÈÄâÐSFaÅGàj®\±‚öõ”2§ŒòÐI}ì¼zíˆxLÃé±C8fßÚ€*xN~·ši}n|¯]Ež©d®&Á×3”Ç6`ÍR>„Ó­C8fßÚà|6  -NÃéÖ!Ð €÷;Zð!chÍR0†Ö,8ˆC>d íhàÀOˆC>ìw`‡ˆC>„ºÖö}4€8 °6«ÍÆ" ì À*@3€±ˆC>t|Xhqȇk° -M3¬Î¦!O^šð ù¾º(®`ùÌõ+µ}ŸP43²EYÁÌRŸV¥áC¾Äáú•,œF9žËÖTÁ# ˆCøÿ­Úw<Ð €?àjnØ°émê¾’¼˜!â|ñy bö¡‹Ã¡8ôkxq8º+ŒUðôqs-#*Ü^•hÀ!¾MBÑ·"IÂPߪPHDIqÉP"îzs&ÿöRc=e‘¡/5gÑQ›áåýû«W”Žž§n¿ÂüÁÑÖ!ÉÚà˜Ñ¬m„ª€Ã0´6;_$xø^ü "ˆ¨‰:NûV*ðñƇmò–f÷Qé½>~µ®.UÑeåå,´ e{*Œ’C4å{^¤Yø÷̱•¼lW´0lÓßA¿-JÀ’³oØÐ"4–í±ÈY›´s–±¥ö­€ÊÄv² ¾öájê’ÄJRSSRY©¦®NR°Ž®U×HQŽ¿ÈB¶ÞwÞìø\VEB€|K~@üóÍý¦ž—fï=³^Q`³˜i½ïb«‡ËÐU@õ¿3HÉÐØŒCøÀŽC8fßÚØRµ -°»­’É?Ñ)Ž™NY¦ÃÖáÓœè¤âÊ$±£®aâÑ?R5_©M¨óU‘K©Nz¢Þþ<ätë·4c`™‡]%„š®ì2?íž÷Ää-ÆÃœŒ/Ç`ÑéVô.A*g“[3j]~¤0|©4ùm&]å;e£1´r,¶ã\³õ‰‹PF -*Jêþð³ÍžŸ’k5üÏÚ7‚«q¨£­CÝ1í"ïââBR°¶¶ö— ±<ÏZÑÃaW+ Ø_º«&ÇÙþT¬ö¡4—yH泘¡Äá\ÆêqÈ\ò˜î,Õ±C8fßÚØRµ -2íwÑ~f9g¡‡«»Ž§aF~û°nr(ªINûj’>ÊÇ?­Ls]òóXE"œ;ä-ÍÐÅa¡{>f°8Œ5Ìé;ÆÒü´%é\‚TŽÞþ¥QþÑ‘­™{—É ˜u•íœŽ5 •Ó‡Ìú¤~5d™å¸äãc™ñ8\C--­þ~ü¥KZ«´Œ¹tùòPqØú«q̺¬Ì Ôf¡¡ÔÉòøŠø$³bÄÖÚÇÍã~T¨NÙ½¯Õ=qË]÷€÷Nþ$‰2žE¡ãEœcPU¯+åQäÎRW‹œŸ1Iæ3ňmoߣ&Œo+c(yîdñÎG>F4ÒqFJ´rÚ™Þá 8Ý:„cFð­-U0Ça~T“/SݵÓk í¡§Ñ%)Ù¦*ÄšSÎfqPìù4 úÚ$´U¿jŸøƒ¢’Ðp%Ø"nÒÑãÓù·»”Ó­CÞÒ ­³´ù¢·åqmlʦñ] µ__„¶Æï ï,u§w ÉÇ”1¿Ô¹ÿ%íòª³Ï -×­dÔÕ¹Èz/t‰A:f½Bs¹‡A¹³”^ŸRÊ¢rãÄM¡æq*‰ÇwO…ÚŒîÆ¡¦&Y­}BFRûL´ ×äëU\*‰-÷<öâÛd¦êG„éOêm¸šwá5‚tmÅåîA+¯º‘ÏpRï®Íqv~`’©;Éx©¤öÊàͶ/½Ïf­GV?¡éFr(¦¤– $(¡nBžJ3°dσ?Ë¢:_à|ÜóêÔ<ã"–Ë¡Ó;¼§ÇᘠÖÆŽ*˜ãðTÚÂ.¦ºcÔ¡¶ Ô3£’ -£¼hÙ›ò»þ…i’ôµ)ù¾(Ð#£ª[ÕÛ#9G ¯ñ ^©`Àé±CÞÒÌÖ°‹Ç?zÙÐ*2ß&*<•†ñ^FvTöM¥‘˜gµ?`ÛTQ"ƒKЦÒhHu>Oµu}lšyH»³QWó?ðN¹×%£¤¶èý­çû -“ÐésÇŒÓþ™5H!b·˜ºYPàv¾–ÃÕ8Ô\©Ù7«šþ ”öˆ]©¸ -þy–}8Ý:„cFð­ ¨‚àtëð»Õ ±ûs·€´¨Ôö0vg„L,=4þx®ÆáÊ+h¿Q¤L™mM™n QúQW¯]ãi8=vÇŒà[P/Àé±ÃïV3­Âíƒïµ ¢ˆÂ3õƒ‚ÌÕ@ãwk–ò!œnÂ1#øÖç£UpN·f¼ØÑ‚Ck–x„1´f)À!@ò!chG 6x@ò!`¿C«€8@ò!ìÔ°¶ï Ä!`€µXh0q`mVšŒE@ò! ã À*@3ˆC>X€U¨šiofé,¹ 9Ð €_qȇPëÉúDAÌü^!i†Õ,¤BJD V¥áCúãba…‘¾ã¹lm@Ý[Èsµ<º0Çá°mÄ‘Åá·×Ì bÁ½€M¸‡kÖ"ú´g\'˜²¾=²¬ìÂWDL{‚«n7m’˜¨²qtŒ‰ŠPoCÅÑcïz ¨É›ö†ZŒÇ{:^Û˜µN¡åz¸mÊä°DbÓYÌ_›|oϼç/úIB߶ÞŠ)·®?ÛŸh?[ ÑöXT‹\’0³qσx[â{âY" ”u\C¼´a(‰ 4ÝL Ã×ô - Jε;LÞj˜î¯@Ï—bs N·á˜ Ö6rUPjj‹¿È4áÁås:+žMôÏŽÔ”iø}êÞ ñ¶¦~‘`r7R&8eÎ -28éƃ=£ §[‡\ÐŒªªjUU,Íl ±XéñË-" l¢ÈÛÿ2Ö>ÔY]Ô·ý¯ä|«ý~[§ˆî\Úö¿ Z‹Ã÷œžàsØa‰Ø{&]õ¾>á“z¯KZIuAý­ƒ‹ÒvÑßïªâM½‰Ñ¹î?ˆÂüæ‚«q¸†"PšÙA´¾1$õÎ ýZV^ÎBëÐP¶Ç¡Â(9DS¾çEš…ïÁ[É«ÁvE Ã6ýôÛ¢Œ!9û`>Ä <Œôzó¾9 îrE滫BòÃÔ‰÷oÌÆ®WD´èQ`þ<bçûF¢‚¢¸¢»6×ܵ&,uͯFôåˆ4–í±ÈY›´s–±¥ö­€ÊÄv<ã_a?½‰œ;„cFð­-Uª@cožë„3;j‘çUæuÜ·>€éû쮦òæôе=ŠsJšök¬v-OöŒ.œ;ä´f権ÅÇǯÖÕ…¥™Þ{ó1kä›Ê<-Oèd¦nßÎà-õEÖÖx3l,é˜RwÒ1Ø”_xÐß¹2•¤8´Álû#è̤€Ãö IO±LºÊ±}á†.6LǬSh.ó0o‹9õ1^ŸÇþez`þÆ™wnþÛ,ªnäã»ì‰øàjê’ÄJ†vS Ü”a„rüEâ°õ¾ófÇç²*äe„?÷ÎŒÉY þùæ~SÏK³÷žŒYOíY³+H_†¸meœâXª!úßqô)éµ›W.]¡³l¦Ô %>ÝɉN*®üH@;ê&ÍßhI_ò¾‹q¬.CW&øAÿ -É¡¿ËaàtëŽÁ·6¶TA­ìîD«dòOtŠc¦S–)Ó÷ WS¤j C -Ãx»x¥ƒ Æ*<Ú%>ºpºuÈ!ͨ©©?©¬TSW'¥£«W3 –yØUòH¨éÊ.óÓîùq?ALÞbŒ1ÌÉør nEç’ÊÙäÖŒ„Z—) _*M~›Ùœ²ÑZ9Ûq®ÙÎŒúLÞqÌÔ[Â/'j⧊`‹„éI¹6SFaf.€e¸‡:Ú:T‹îßK›ò‚¶!6ÇãY‹Cã#z8ìj…ÏR]59Îö§jdµ¥¹Ì“@2Ÿ§ðþ×-²÷ãó;7®–â²+µ2q¶S…™Jîxfä'±ë¦!‡ê“¾}¢%}9”8Ü‚ËX=0™ÿ -öàôØ!3‚oml©‚Z™ö‰»h?³œ³ÐLßç°5uš¾®I÷6Ö'›E„ÉOüõo>ÊÎZšõ²|;¦Ãé±Ciæ"ïââB*J[[›ÍÐÅa¡{>f°8Œ5Ìé;ÆÒü´%éî\R9zû—FùwDG¶zdî]&ƒÄœ³Ñ±´rúâAŸÏ"wƬLK^.ƒD|ºnµ=Ç9?q1_?{ñ,\C--­/{†~ÙÑÿÔxéòå¡â°õWã˜uY™¨Í>BC©“åññIf3Ĉ­µ›Çý¨P²{_«{â–»îï2üIe<‹BÇ‹8Ç :«„_WÊ÷q(ÞRÛ,4yœ(ñÝ™è -ÿ‚à $˜>OÛCO£KR²MUˆ5§œÍâ Ø¦8o,sµÈù“d>SŒØöö=jÂø¶2†¿bîdqö’‘Ó­C8fßÚØRsæG5ù2}ŸíÃÕÔù4 G>F4ÒqFJƒ\´™`)9§ü¥KZ«´XÓ ­³´ù¢·åqmlʦñ]ôµO¨/B[ãwÐw–ºÓß¹’­ÉÂHû_Ò.¯:û¬p-ÑJF]‹¬÷B—¤cÖ+4—{„‘;Kõù£lå>Çâ ˤÛï4 “Š=á8ƒÇ&«'p755Éjí2AkP'\“¯Wqe¨8$¶ÜOðØ‹o“U˜ª¦?Q¨·ájbHÜ…×Òµ—»­¼êvD"<ÃI]¼»6ÇÙùIF¤î8$ãY¤’Ú+ƒ7Û¾ô>›µnœ¢óÕ1÷€òú–:Êl É :¿†/ ÛAcOcöýÙ»„ç˜ï1™.†dþ<„Ú‚PÏŒJ‚´Œò¢eoÊïúã˜âP -Ahº‘Š)©% J¨ÛE‡§Ò ü+<zü,ËÞOµu}lšyH»³QWó?ðN¹×%£¤¶èý­çû -“0éS²ùòaÿ£7 =¨É›ÂmIƒ´ø&p55Wjö/}«…öˆ]©¸ -þy–}8Ý:„cFð­ ¨‚àtëð»Õ ±ûs·€´¨Ôö0vg„L, Æy®ÆáÊ+h¿õ÷‰Q§[CTç¾zíˆxLÃé±C8fßÚ€*xN~·ši}n|¯]Ež©dfò0`ÍR>„Ó­C8fßÚà|6  -NÃéÖ!Ð €÷;Zð!chÍR0†Ö,8ˆC>d íhàÀOˆC>ìw`‡ˆC>„ºÖö}4€8 °6«ÍÆ" ì |€8äC@Ç° -ˆC>Ä!° -ˆC>„V#Ø~Ì,ß)`U>d@²ð‡Ô㹇@€GàjnØ°émê¾’¼˜!â|ñy`|ìC‡Cqè×°âptWªpbOw/B@HH€ [TróZÂÕ8\¿~=í·¾•{)¶A´UÂJŠK†2¾®7gòo/5ÖSfi3°‘õmaï3s´uHŠC86‚8„ âHT‡a¾Ï®Ú /ïß_½ú tôðZäã:Ÿ24.TJ.âcp7׬Eô-hÏØ‹GYßYVvá+ÆG{~§ìÐ+&ªlc¢"ÔÛPq4äXÅ»^jò¦½¡ãñžŽ×6&G­Sh¹n›29,‘Äts鄦›)a˜âš^!AɹvƒWë©.êÛüSr¾Õ~¿­rÐ[üE¦ ×.ŸÓYñl¢v „—~øL _|hžo°m²p'óYÛöÏ[1åÖõ§b[ãíg‹! Ÿ=½Êšî˜©°ƒü¥C·_© Nµá q8˜*TUU«ªª†SÅ¡ê%RS¦yà7¨{'Ä—ñûD¼- -ñ=ñ¬PÊ:®!Ž¿PžñAò8”@úOÓnîí´[Ó=O$Oî"½c_ý“Wþ_”¾q|Oe°žYQ}/BxÊ®­ÃãÇõïøZÆ>[èýÕ`š(cŠv×el×Ox7/¸0eëà]ÌWîìZÖ·?ÓN‘ÖÀ–¤-êþóؾ˜“ÕuJN_nêb½”Íý½‚«q¸†bj4‡†h=¦Hª›’~-+/g¡uHh(ÛãPa”¢)ßó"Í¿÷`Ž­äÕ`»¢…a›þúmQÆœ#Ãú¡±lEÎÒؤ³Äˆ-µoT&¶üfm7ÃÆ®‘o*u·<¡ƒUñ3ÂÇ›ç:áÌŽZäy•y¥›1ò–Ø›!Sæ¹ë„.ö˜ÆŸ»™ÎÚºoNB»\‘ùîªü0u¦Ï|lI¨ý1â£Û:ý±C8?™U1GM->>~µ®îðª }QúôõrÜ·>€AöÓº¾ObçûF¢‚¢¸¢»6×ܵ&,/`Nc¢7{~'Gœoègë”]~³yüW:`鯎 ¶3\‹ÐòôŸON„„VÈyôV•’V;î/7ÃÀÚUnn«äkÏþzìÁÒcEQK¤€œx®Æ¡.ÉàÈÐŒ9ÀS)COåø‹,Äaë}çÍŽÏeU$È6þ¹wfLnÌñÏ7÷›z^š½÷dÌzEAÎb¦õ¾‹q¬.CWÕÿŽ³1Æ0'c•<jº²Ëü´{†Æ2É»;Ñ*™ü☹;Ñ"Á2K;¦Ðk•fÅ|Ö1»‚ôeˆÛVÆ)Ž©H¦Ïœ¼=–á)Nt–Ân 0øqد -55õ'••jêꤢttu`©‚úEÑÕ‹S–)“* †ï“ðéNNtRqåG’ØQ×0ñè©úcˆÚ% uøÙfÏOɵšþ“è›Ci{Ý%L[¦ðáv·nòéP äݾŽPÛ&‡õÎïMò -]gˆ ˜Ç)-6áÉV9žjbÌ>œßmÙaê·øbDöûE!ifg÷ä8ç[,5äÕ¥‘†k‘§ï,%ÙË&«KDZ)¢?¸ØN…éڀц«q¨£­CÝtˆê¤4·¦mˆ@àñxÖâÐøˆ»ZaÀþÒ]59Îö§jdµ¥¹Ì£ +À‹Ã-¸ŒÕtqk˜Óu–æ§=¨q˜iŸ¸‹ö3Ëž>O»cÑiVƒEºt¿Õ"™>sÿÇhǼ=v'ÀàÇa¿*.âñ...¤¢´µµáª‚úEÑÕ‹sšI ßgÇÓ0#?‰}X7 9TÓ‹í8×ÓiŒqHúø§•iŽ ƒ3¾ äà±ÿo=îø¶sæERÎ's ßï^çHNA«&{ê‹ÁãЮjºÙ–®3g…íNb-˜³¨í×Fë*½¼{b–…yrÝø9â‚ËÓòœfˆ yu+JIÃÅ¡óFëêA1ÔÂP¢fÍž Z‡<WãPKK«_ЗM±ýŽ|éòå¡â°õWã˜uY™¨Í>BC©“åññIf3Ĉ­µ›Çý¨P²{_«{â–»îï2ü—ɠϢÐñ"Î1¨Î*áוò(rg©«EÎϘ$ó™bĶ·ïQÆ>‹¶Æï ïö4aŠCã¾ÎÒæ‹Þ–9šI?_·ì¬Q'Îô™§Õ;1Åá`Ÿ>œn 0øq8PøK—´Vi±  -æ8Ìjò¥ÿ†çNo§ÿ>ÛzX’’mªB¬9ålÅžOÓxäct@#g¤D:†ØÕØD”'&@hª5SI<¾{xžÿæô›ÌEýÏÁmÏÚîL‡NŠ¯þyÚÒòìWŸÃM+ƒÃMç̛Ѳg#yì0gÝ9ó]E|óS '2 ö¾Í·ÐÿµvÎN/Ë9uGÃRŸöL²:QèA?õ†ùêû”êžÑ]kª´@wmª‰~ -„>µFYJeŠÈUC߇ÓÌ=­þoTÿøæ=ó@ãI@M<wãPS“ìp}æ‡DÐÚ‰ÔIúäëU\*‰-÷<öâÛd¦êG„éOêm¸šwá5‚tmÅåîA+¯º‘ÏpRï®Íqv~`’©;Éx©¤öÊàͶ/½Ïf­GöGBÓäPLI-AHPBÝ.:dõ¸îê¾I1ó¬öl“„fl…Ø'î›±xü£— -Âó¬#õ§Štz}ÔÑfσv‚îÆLqÈô—ýÝ~¥.85v'ÀXˆCvTÁ‡§ÒvÑÃ?Ë2j€P[ê™QI–Q^´ìMù]ÿÂ4 ÉÎ8÷¼:A5ϸ®ø:¤× …ˆÝbêfAÛçH ÿ.2 Ua wGé»IþqäóÀ8$¿ ŸÌrÚ>Ñ€r–»Â-_#·[já§b72>hv¿½öN]§Ä´‹$ª®ÒÏ9µg¶è°WzH?q†tÿv¿Î÷sN¼òêc—äòTšž›©û1ù>kì–›4W×-Ò_g˜LÃp55WjöÍħoµÐšЕŠ«cæ®yxæ!§[‡p ~ò•*À˜…«q¸rÅ -Úoý=¥Ô)ú¥ï qõÚµ1c|c,GsìN€ÁC¾R³€5KùN·áü8„óÉ€*§;Zð!chÍRà@ò!chG à@ò!`¿C`‡|;uâ|Ÿ€8 ˆCð=â0 ¬4‹€8äC@g)€U€f‡|°6«Í ùj]4‡7³z¢\°¶ï“¾ûÉâldòöÏ |X•†éCR¼Á?‹z<—­ ¨‚GCq4à\à 60½M]öB’ÀDœ/>DÌ>ãp`(ýfŽîª4@<Gãh0&ø6qADê?‰S$ ‘—½¤,~YR\2”ˆ»ÞœÉ¿½ÔXOY䫇ŒÚYƒBøxã{ĵQ¹ƒ†.d»@ÎÀÑÖ!ÉÚà˜Ñ¬m„ª€Ã0èªÍðòþýÕ«JGÏY“ê¬9šqû“ €ð4û¸èµ#Ú|rŒÀé8ä%Í[åFDUu - ‰¢³ÍF¬ùÏnƒK½âdqdw—èC¿ÀÓª¬è'~¼y(0ú½çíêi%¼¸p?€}¸‡k×®¥ÜmdÍö-‘IYø¹¯¼ÒÒÒ¡Œod›HŒâÖ-ï6Ž7;ž¡)ÇÓ{Y3Ç!ü×,YÛfßÚØUàh€ñ˜Îç ;]jí²¬êjnAÉÊñt­³×âðÛk¦óÅa3_ÁÐ,—yˆî/êD§¯²é«zBã•Ð¥„Ô¥áfô‚:_ß}Ò!×á˜åÌ“ûØ؇»q¸f-¢o„/kK«ªªVUUQöD@–•]øŠˆiÏïÕã¦MU6ŽŽ1Qêm¨8r¬â]/5yÓÞP‹ñxOÇk“£Ö)´\·M™€H b:kâIV¨Hk‹Ê…«5-½Š¦ñC‘KFÏ®Mñð-©é+JJÔ:ü±³‚þ)Ô°åL¯²Þ¶ÞŠ)·®?ÛŸh?[ ‰ 4ÝL Ã×ô - Jε;¼Zj`*yè/w°ºà\뎱`m#W¥â¶ø‹L®\>§³âÙDÿìHM™æß^ î_F Þ…øžxÖF„(e×Ç_äâ°ë%ÆÔ›ëþƒèà—æ/8‡<¤™Ö{ο®Àæ˜( ö½3 ê¡ZmǹdÚ$XöüÄÃÛº؇«q¸†"PÚªÒ䭀権ÅÇǯÖÕ¥*º¬¼œ…Ö!¡¡lC…Qrˆ¦|Ï‹4 ÿÞƒ9¶’WƒíŠ†mú;è·E CröÁllð@8d&šÎ#¶îiûËË‘¾dûiÂôE ruûi]ÕslI¨Á¾9 îrE滫BòÃÔEËöXä,MÚ9KŒØRûV@eb;ž¹dV¦&pzìŽÁ·6¶TA~þÀÇ›ç:áÌŽZäy•y÷­¬^è4@ì|ßHTP@t×暻քåÌé¡?¦åž½ÁùgÞ¹ùo³¨º‘ïv5 –JÆCÞÑ ±åÎa[׳]êË–-[µ~ëšy -´ª—ìª=çk›3?õØü}f ¿;¸‡º$±’ÔÔÔŸTVª©«“¬£«CÕ5B”ã/²‡­÷7;>—U‘ /=ý¹wfLnÌñÏ7÷›z^š½÷dÌzêXÌ8Ô3ËË\­€újÉ’ôE z 4\9ÉÛc-Ù¤/Cܶ2Nq,HÕ@Þw1ŽÕÃeè*ÐÌökW‡ §[‡p̾µ±¥ -j`w'Z%“¢S3²L«: >ÝɉN*®üH@;ê&ý#UÁ‡[¼%ür¢Ö(~ª¶H˜ž”k3eæKò(œŽCÒ ™ÞÏo]»~ëòïgÿ™r2PÂs“K½â$1$Bh¢†™§ëæqЃšˆC¾†«q¨£­C(@\Äã]\\H -ÖÖÖþ²‰:ÇãY‹Cã#z8ìj…Oí]59Îö§jdµ¥¹Ì“@2Ÿ5â’LqÈ|Ì°åôÐo¾”8Ü‚ËX=0½:l8=vÇŒà[[ª ~Ÿ™ö‰»h?³œ³ÐÃÕKÇÓ0#?‰}X7 9TÓ‹í8×ÓiŒqØù,rgÌÊ´äå2HħëVÛsœóó¯ r:yH3 |(¶Øù‡gæ®x†®Ñ¯™ˆC¾†«q¨¥¥Õ·á/]ÒZ¥5`ì€Ì¥Ë—‡që?®Æ1ë²27P›}„†R'Ëã+â“Ìfˆ[k7ûQ¡:e÷¾V÷Ä-wÝÞ;eø/“A1žE¡ãEœcPU¯+å)¦ÉÔ ËXòÜÉâ(ÆÎÒAŽi®œiõNFôq(ÞXæj‘ó3&É|¦±íí{Ô„ñmeƒ^6œnÂ1#øÖÆ–*˜ã0?ªÉ—éÛk§×@ÛCO£KR²MUˆ5§œÍâ Øói|Œh¤ãŒ”(Ç@-w‚‹7&.“n¿Ð,L*ö„ã ö''ó*œŽCÒLoÓÝûŸTN— ¶ükFˆIÓ:°Ä!€Ëq¨©IVkŸ‘Ô>mÂ5ùzW†ŠCbËý½ø6Y…©úaú…z®&†Ä]x ][q¹{ÐÊ«nG$Â3œÔÅ»ksœ˜dDêŽC2žE*©½2x³íKï³YëÆ Þ¡J_²çAŸeä˜öáʱt7¦C)¡éFr(¦¤– $(¡nBžJ3ØÕaÃé±C8fÄ‚µ±£ -æ8<•¶°‹éÛcÔ¡¶ Ô3£’ -£¼hÙ›ò»þ…i’/p>îyu‚ -jžqËåP½ —û½ÑHèAMÞn»Hü£#°ã‡4Óó¶0Ä?óÁgAa¨GpÆF¯`Û9ÿÚ2Åáz‡²‚”KˆÍvÏLЬ²t»ÙØÔÔ*)/§¸"ª.>äwsp55Wjöͪ¦ß¥öˆ]©¸ -þy–}8Ý:„cFð­ ¨‚àxÍx®ÆáÊ+h¿Q¤L™mM™n QúQW¯]"fNÂ1#øÖTÁ p:f¼X³”átëŽÁ·68Ÿ ¨‚Óp:f¼ØÑ‚Ck–x„1´f)À!@ò!chG 0†v´8ˆC>ìw`°ý/âÖ` Ä!`€µXh0qF‡€±ˆC:K‡Ä!â ¾ü£‹§QV˜qàÀª4`,Å!p‡àjnØ°émê¾’¼˜!â|ñy b€ûp4GwUà$ñm₈Ô;"aˆ¼„!e!Ã’â’QñÐ;“>Þ8äq­ETîÇ࣡,í5†Þ†«©ûc n¾hFÈ©ë%¥ù©Š1Dh¼~² RbËN=eV6$4]ñ69(uðdÈBÔã@=‹?aÏE/è|~ÄÈä´rlžM†‰ÍíÏ´£¥5°%iBÏé›bßH¯É8{xÑ`5M’Ê:Ç÷&y…®_ÛаóY”¾Iî=á)»NzÎ…ûy{ßž´2;­™³™ÎÛ{%r:áØâp¤NÒQºÍ?+þ·8òö΃ÒõæLþí¥Æ_×'Øûïàj®]»–"=²f©+ÙSñíß÷¬´´”KqØò÷nãx³ãšr¬`hz^g[©™µÃÓúb¯nüó?'u æÃ:Ÿ24.TJ.aÉM:ŸÇ›X”o^uØêÛîs»A‘‡·æt 0â'!5ü^%íÜ+hvyß ·Üˆ¹ŒÞrtB—÷ï¯ú,BTÙ8:ÆDE°³º("0ûQ;Š(9ßj¿ßV¹GhÆ8ìy[â{âY" ”u\C,¤â,/HÎئ$€èø÷°i &ÇVå3ƒ#I¡H@ÿÖ• WkZzMã1ÛUÀÌÄoWãp E ´íÎÈÛºÌQS‹_­«KUtYy9kq¸yßœ„w¹"óÝU!ùaê"õgml.ša¬–k*u7Üßs.êc C…Qrˆ¦|Ï‹4 ÿÞƒ9+Ov¢õžÃë'‹°Ä.èk2Ç¡Û„ê<9Z!×׆û¡#PÏþ妠€å’ Ï«Ço4_&?HttW'šœRM==ŸRvGU¸žåÕUÙ§vþia­6áÒH†8„>ßtÑÛóÎ:ŦÜ!´7à·¬MÌ¡Dþ„6äMý,Û’"/Èxæ _r6ô­TÛ°]ñNldQ·î”ߤÇtqHh,s1 ¬]åæ¶J¾öì¯Ç, iÛçõŠñ¯è}sÂlë1ÅøßþOš£_=[p<aü8dËI=uY–n#²ŒnÙ8V‡æù©ö0y‹“Eꋬ­ñfØØ5ò$o±<¡ƒUñ3aðbçûF¢‚¢¸¢»6×ܵ&,Óè¼Í>…#Y–“»†î<øc"v›à¥=LŽÔuÇjƒÂ!3Ñt†±ý3QLZôZ}¸‡º$±’ÔÔÔŸTVª©«“¬£«CÕ5B”ã/²‡†Çì -Ò—!n[§8¤j ï;c s2VÉ#¡¦+Ûq®ÙÎY¦ŽÏeU$H¾õ|î“Cn ‚8ä­÷ì×[?]¢‡Ã2ê Ä!‡èªN42Æ -8œîï–¤„Í»m¤8lr\ï4x’èmªºqíÏ›OVª:uðÿd˜1„·§vlKß³ìUìƒu¹§÷PbŠ.»^%%WwQ ¿9ëÜyŒC™ýc‡VMöÔLqز+ÿ”Ùûuo·/òšECçÖÔƒb¨#Ž(Ñ ³f+´=cú+@’âN€ÁCvœ„ðá¼å¶ïdDQPwS£ø®ãùÛ?Ø3xËàqk˜ƒ¥z‹¥ùiæ8ìxfä'±ë¦!‡¢>ŽŸN[Ô~ÖÆ©ÒÖîÝÁRÓ¬˜ŸeÚHå09°#Þ€«q¨¥¥Õ»á/]ÒZ¥5`ì€Ì¥Ë—¿‡íL"5Ò²6´§¢ïÿ6XŠ¿?ggsÑ,㥳4¢=æ÷¨&_Ëã+â“Ìfˆ[k7›;YôÇ9ºk3wa^ÏÙéi¥!úêúýÿ¡7f™ìº6coœé}?ï?„vPã°»6ÕD?B‰Z£,¥¢ ýžQ*¨ª¦$P–X³+ï¤Å$f=‘;KO©¦Ñ:K)S"¶í(B -ô´ÿ/ù\ìB)BËÓN¥—© -7?ÜeùëÞe²ùÅ~4:Ù—šÿßÞ½4q&zŸ^VPt°Õí«ÅP·Ýõˆµu(–³+§*XèÂZ•t‹xGDtk+ì)áfDDªÜêé±á"=º^V틶"ØêªEm!”dÞd&A.ž¨c“‡ßç¼ÔL²øìó5“™çi§k—,_:{õ×ãÂ× 9´åãæ׳¬U³~fpᯂbW¼:|Ðó/¹_²lΪ/F.yu{ã«gûO}¾á«ÿWp'KÓ†$šÖ›O–’Œ<‡1“¨ëa ö/Ø+÷l¡iÜê€-/íØñbê‚Žs‹fZhòLÂÞýlÙ¼Ô黳ý´'Ö5¿Z2wÛô¬mc¾ÓanÑL ê†s)‘Ñ -¥½ÃÈY›ãf9Zý|åcÝ¥46¿ ùÛÚ×úZø·}í­¸—aýü;»S¼~þxãòÌ*Õ@;§ñ¯\+>³æcÍ¡ØŸŽ¿ý_›GÉÿù<÷ï°ÖºÌHM˜ŽLÂSÍ¡ÇÝUÕm"pôÿDdË+ŽáæYè^ó7Isƒÿ¹/wÑÈ'°ìÉÓÀßhÁÄHòzØÕA&CðŒ<‡f5“4U%ÇÚýwÎ[ÏšÉ˜í½žj§¸»ëÅ eîjkîrk–;«¬4™A ¦HU_õF¼ÝÖ6üÞÖ®½k½ž:ÿ€ûÎ=o=G~¯â/Aè’Œ<‡æ2“°?žŒ‰ØrÆrêFY„Û@\&cê°f)žC’€‘çä¥a&caG 0§5K‚€9íh ä°ý/rÈ!rOræ9„`jcaÌ€9B)„_`,ŒäB˜ÚÀX3È!…ø¿ ѶmF=Š g0µõVü˜ÙÈüÓØn`^Ƙ: ‡2£b…Ñ–CMÞøßiÿóîðcè€RHÐ>ÙF4S›¯¯o××Âð \j—¸dŽäÁÔ&´®9äŽ"a1fÀ, ‡:‡$“Ñ#Lm,«æ—EáŽÅj¶ä–·,È/xÜ©­åÚ¡ÜSüœúé~CuçxêšÅ 53ÌkÕ{K^±7åÝ&ž†îrÈ3üûtŽ™®ºŒ¢Nÿ¹.3jÅášš[ÃSè·jÂFrf9¤ÐSˡɈ|jóññá–Ó>˜ß߀_Ú¹m7¼ÂÂÂÇÚ:ÏJÊó¼ÿ\â®`Çk{Bß®Y½/ö·6õfÏpyݽw¤sÌtEÒ¶N94+È!…„Î!ÉddÄÔ6݇Ñms ÛîGóÕÅÅ¥ººšÛõ@TTtÔÀÔ¦º}"=N–_ÛÚÇÊvÜ¢­1“jvØ:uX÷oö+õCF°îïŸ0×áÊÖùœ“÷,p¶jý~o`ÄõM{—1í ˜„F’C^×ÏÍnÌ´|÷?›Wî8Û2p¸ËK7N^ŠÉ K›·¦ß¨¾µV“Ç6W\t\³g‹‡ÝŠÔØmÿnUY<óÇèu’Ó±«:"gæúÁØUû.*Õ¬ÊÂÉ[»äƒ-»æðõ¿ýÖýÙ“ÿ÷µõ%§…=omÛ’õZÈ!…Ï!ÁdD>µMç¦-ý&xÚÍ~ÆŠÅÉÉÉÓ$þÐEÅÅÝNmªú¢·ƒs&&ʃÆX«ê®[:ÛUuÌ!71uš¤φ¤ÌO^P–|Zùꎰ½¹iãmúnц<‡<þO‘C3·>]š?g§l†Ã¢ÈÙ›” ¹aiA²€äÀ—fÏO ÞUµwÕµáþÛc=ßÿ6#xMëÖœ°Q-Þê©›oÖ«†°dîÕ}(­Û¿vìý.9üÓ†±)yï :¸¸:67ÎuÉw~È!…„Î!ÉdD>µI4âŽ#»^¨ª»ºjå-ñæŸ@Ä2ÅŠ’n§¶Æs‰~Ù™ýÞªmåë)‡Áûv¾jÇ0?þ_ȼäÐØòÈshbcF6;'sê`{»<øléž°´7åKv-N Ù®ýš¾d÷Ò¬yK¾±w¶±Ô<ÉýŸZG'|˜ðÛ)‡ªOçÄËó«îªD꟯þà˜ú鎣ŽáÞ¶Ey;_aN…¤/ÉÛ³¦¦ 9¤Ð9$™ŒÈ§6o/oîã#¦D¡ˆˆˆÐÊËËëÁ6é £P( çpfvæ´v9 õ—‡çe¸±'CüÓžÃæK[ço‘²g¾“Uë÷û#¾ß´7 -'K™ŽïùHEžCS3³svuÎáî°´?ë¿f-Ë -ýÀ/{׃qÅtE?ç¿Úf ²àóŒ‡å°Ë?ÎÀT!‡:‡$“ùÔæééÙöyŠ¢´Ôsªg»O”´JËÊ ,•çL’ÉG[«•×oZ ³»=w‹[F–oSúœÐ31ŸpPãyi@ÂŒ¬Ý¾Cù+HϯŒw‘e.~-g¡ôÒŠ}q/âRF°ûMlÌÜ:¼8´`öNÙkwŠ#gÇq'K;å0÷½Û«ÞÜëž,Ÿÿœµº±î«;CÆ=3 ©ã(R~±ÜÿÝ é{æ9«k,›ŸÄ&Ép³ür¥ÿ»n;³ý‡s94+È!…„Î!ÉddÄÔæá¡}˜îˆ"þL£¿ _£¬¢Üà¥4Ç·o”Ô©úXÙ¸.Š•Ø\”K£*m'¼àxºäRì!nR7œK‰ŒV(íFÎÚ7˱êögI«ÿ^v“ýzêŠ÷—M„-„½ïФƌöRšég[솋Çß<ù͆ì…)rx ã÷-ÇÒb“Ž~Çh¾/C'/ß9É^Ôi©êò6.ϬR ´sÿʵâ3k>Îp³mþ6{å;û¯Z9ˆ—'mžlõ/äÐŒ ‡<‡“ùÔæ1ÅCw­}ÛGKŒþhÜåÇpKµÐ„¾ïФƌúÞO÷,ö·d•_$m¶KÌ}ö ¬¢f9¤Ð9$™ŒÈ§¶)îîÀò×Þóá³ÜÙ5æXe%r(4¡ï;4©1Óøù¦°˜³MVê¾£g­_(¶±èîBo‚RHè’LFäSÉkC…&ô}‡3`úC -™Ñš¥`"„¾ïä˜3ðËB)dF;Z€‰ô¾ÃGƒ1OrH!lå -ÆÂ~‡È!…C0Æ r=ÀÔƘs„B0µ±0fÀ!‡‰/0Æ rH!Lm`,ŒäBº-Œ|¿X¦¶Þ‰3ÿ4úÂRæå—1f€È!…Ì(‡XaÄD´ÏáËú;5¿4üsþ'3@äB‚æðÉ®0¢™Ú|}}öZ¸.µK\2Gò`jZ[ÛwŽgàç Ù»CŒ0 È!…„Î!ÉdôS˪ùWÍ‹Õ.lÉ-oY_ð¸S[˵C¹§&ø9õã~©¾{âïëâžý¦É5£{îh úîÐ,ÇLWFQ—ÿ\—µâpMÍ­á©G0¨ÌrH¡§–C“ùÔæããýTíƒùý ø¥ÛvÃ+,,|Ü©­Ó>ælówg.ü<¨qó’¬eØ‚Ž#ô»Có3]5ìYHògÀT!‡:‡$“‘SÛtF·Ín»ÍW—êêjn×QQÑQƒÛÿžH“å׶ö±²·hk̤څ6\M–Çý›ýJýQ#¬û;Ä'ÌuæÆ*f®v„~whRcF»ýïÊg[wyéÆÉK19aióÖôÕ·ÖjòØ抋Žkölñ°»S‘»­âß­*‹gþ½Nr:vUçQÄ\?»jßE¥šUY8yKc—üa°e‡AÅþx|yP¶ßîÁŒòó˜ùLÜ‘ñÇ_÷ö­¦MrH!ÁsH0‘OmÓ¹iK¿ žv³Ÿ±bqrrò4‰„?tQqq·S›ª¾èíàœ‰‰ò 1Öꆺë–ÎvU »î?þÐò!‡íýîДÆÌ­O‡æÏÙ)›áp§(rö&eBnXZ, 9ðÃ¥ÙóSƒ÷GEí]ucmx…ÿöXÁ÷¿Í^Óº5'lTK§£n¾Y¯v:À’¹W÷a ´6nÿÚ±÷;üö§“˃wÏÌL™:¸éܺ ¤?¤ïxm(jh²C - C’Ɉ|j“hÅG,v½PU%vuÕÊ[âÍ?ˆeŠ%ÝNmç"ý²3%ú \Û"‡Cèw‡&6fd³s2§±·ËƒßÈ–î K{S¾d×â´íÚ¯¡éKv/Íš·ä{gM»Øû?µŽNø0á%¶Ó€Qýx:'^ž_uW%Rÿ|õÇÔOwtuÚØpzõ›32RÝj×ʽ2Ò¦A MrH!¡sH2‘OmÞ^ÞÜÇGL‰B¡9”——׃mÒF¡PÎáÌìÌiírê/ÏËpcO†ø§#‡„„~whjcfvήÎ9Ü–ögý׬eY¡øeïz0®˜.æç¯ãüWÛlØõW·Aüqþ‘Ñ9‡šg;».(]"ûK‘4C²3Í«ýñÀÔ ‡:‡$“ùÔæééÙöR¥¥žS=Û}¢¤UZVfèd©48g’L8ÚZ­¼~Ób˜Ýåè¹[Ü2²|›Òç„ž‰ù„›˜ÏKfdíöm¦ -9lGèw‡¦4fn^Z0{§ì5‡;Å‘³ã¸“¥r˜ûÞíUoîuO–ÏÎZÝX÷Õ!ãžÐÔq)¿Xîÿî„ô=óœÕµ–ÍObd¸Y~¹Òÿ]·ÙþÃõ#Mùùú ø_ i¸2_{Î54eÈ!…„Î!ÉddÄÔæáÁ>x¹"þL£¿ _£¬¢Üà¥4Ç·o”Ô©úXÙ¸.Š•Ø\”K£*m'¼àxºäRì!®vê†s)‘Ñ -¥½ÃÈY›ãf9Þûrí›=Qûv£íàACݳ7ºèñD5¡ßšÔ˜Ñ^J³"ýl‹Ýpñø›'¿Ù½0¥Sdü¾åXZlÒÑïÍ÷eèäå[#'Ù‹:"U]ÞÆå™UªvNã_¹V|fÍÇn¶Íßf¯|gÿU+ñò¤Í“iò×ôeìëÁŠ1‰ÿ“4ejhÒC - žC‚Ɉ|jó˜â¡»Ö¾í£%ýëáž-¯8†[ª…&ô»C“3ê{?ݳØß’U~‘´Ù.1;ôÙ'°Š˜=äBBçd2"ŸÚ¦¸»?8Ë_{Ï_„Ïrgטc••È¡Ð„~whRc¦ñóMa1g›¬,Ô}GÏZ¿>PlƒwmÀ ‡T:‡$“ùÔFòÚC¡ ýîcLrH!3Z³L„­Y - äBf´£˜3ÚÑ@ È!…°•+ û ‡BÁX3È!ôS cÌr=ÀÔƘs„R'¾ÀX3È!…0µ±0fC -éþ.ò+Œ{ØkSLm½•þÿ¿¥Æ?Ôcè€RÈŒrˆFL„åc‚RHÐ>ÙF4S›¯¯o—ßævfEÚ%.™#ùG0µ MÐbÌ€Y@)$tI&£G˜ÚXVͯ¥Ã‹Õ.lÉ-oY_ð¸S[˵C¹§&ø9õÓüBýã©Ä•[ÊþÍôeúŒœ¹&6äw¿Â -ÎBçÐüÆLWFP9¤ÐSˡɈ|jóññáÖ“Ó>˜ß߀_Ú¹m7¼ÂÂÂÇÚ:ìô«V^>}ÕnüXKåç‰ b˜„ýïŒîÿX‡§ÀSË¡ÙŒ™®°_4íC - C’ÉȈ©mº£Ûæ@·Ýæ«‹‹Kuu5·ë¨¨è¨ÁíO¤ÇÉòk[ûXÙŽ[´5fRíB~ÎbøÉ+uX^ÔŠÃ55WꇌaÝß) >a®³n¬²·Ëß üGdnÒïlûVÑGèšÔ˜Ñnÿ»rÇÙ–Ã]^ºqòRÌÁŒñ÷}5C - žC‚Ɉ|j›ÎM[úMð´›ýŒ‹“““§I$ü¡‹Š‹»ÚTõEoçLL”±V7Ô]·t¶«ê8‘qÿ–ø¿ëïÿÑ’ð3ÞóÞdû^¶TðšÐ˜¹õéâÐü9;e3îEÎÞ¤Løß÷ï®{äQô@)$tI&#ò©M¢yw±ØõBU•ØÕUs(o‰7ÿ"–)V”t;µ5ž‹HôËΔ8èƒÖ6gõ0‘±Êªíak¿ÿóÎXoËž¿9´:‡&6fd³s2§±·ËƒßÈ–îY¶'ôÑFP9¤Ð9$™ŒÈ§6o/oîã#¦D¡ˆˆˆÐÊËËëÁ6é £P( çpfvæ´vY¨¿<µyzz¶IQZê9Õ³Ý'JZ¥ee†N–Jƒs&É䣭ÕÊë7-†Ù]Žž»Å-#Ë·)}N虘O¸É«ñ¼4 aFÖnß¡Ú7‚ªO~ž¨ŠH‹zÅo yBçДÆ̭ËC fæp§8rvw²t­Ñ£èƒRHè’LFFLmÚ‡éŽ(âϤ1úËð5Ê*Ê ^Js|ûFYAª•ë¢øX‰ÍE¹4ªÒv Ž§K.Åâ&2uù”Èh…ÒÞaä¬ÍÑÎÙÑìô¬­vVà²2yÓËv½ý-¢Ð94©1£½”fEúÙ»áâñ7O~³ácùïî;Šâf9bÆ£ rH!ÁsH0‘OmSUtÀì!‡:‡$“ùÔ6ÅÝýÁXþÚ{þ"|–;»Æ«¬D…&tMjÌ4~¾),æl“•…ºïèYë׊mzý•Å …RHè’LFäSÉKC…&t1fÀô!‡2£5KÁD˜Ñš¥A)dF;Z€‰0£-‚R[¹‚±CäBÈ! c9„`jcaÌ€9B¡˜Ú 7@)„_ÆB)„ 9¤ÿw!bŒ[‡“_5 9€Þ 9¤å+Œ€‰@)$hŸì -#šúúú>äµð \j—¸dŽäA@hÈ!…„Î!IÀ!‡,«æ×sæŽÅj¶ä–·,È/xܶ\;”{jb€ŸS?þ×ÍߦD®*¹ÅZ1j G不8` ;€^9¤ÐSË¡€‘çÐÇLJ{¡ÚóûðK;·í†WXXø¸9ì¼¹úÞ¥…ý¯¬Dš0f.ÖÄåmzaÀc=˜;äBBç$`Fäpº£Ûæ@·Ýæ«‹‹Kuu5·ë¨¨è¨ÁíO¤ÇÉòk[ûXÙŽ[´5fRíB¾| ŸÀÔayQ+×Ô\©2j„u§€ø„¹ÎmcUõã¿RC¶0[³¥£ûõÝÚ ‡<‡#Ïát.uúMð´¯b¬Xœœœ'ôLÌ'\ÏKfdíöʽT)¯Ô49þ¿¡ýDªÊc‚“F¤î ÿ N—ônÈ!…„Î!IÀŒÈ¡‡Ë´•T¤!º[74Ê*Ê ^Js|ûFYAª•ë¢øX‰ÍE¹4ªÒv Ž§K.Åâr¨n8—­PÚ;Œœµ9nÖúƒë"3«ïõ±h½oûâ‚u«ÆÚXt÷Ð; ‡<‡#Ï¡ÇÝýmG2ú£q?–WÃmø 4äBBç$`ä9œâîÞî%ð÷kð7n°ÜYæXe%rBC)$tIFžC’׆€ÐC -™Ñš¥&9¤íh`"C -aû_c!‡BŒ…BCè Cèr½rH!œ,0rH!äÀXÈ!…ôÆÝhÁàF èÅC -™Q±* ˜äB‚æðÉ®J£É¡¯¯ïÃ^ ·(ªvYTæHþ䄆RHè’ìrȲjþ5sÇbµ‹¡rK¢äŽÔ¿îØòŠc¸ „†RHè’Œ<‡SÜÝ€åï×àoÜ`¹3²Ì±ÊJ䄆RHè’Œ<‡$¯ 9¡!‡2£5KLrH!3ÚÑÀD ‡Âö¿ÆB)„ 9„ ‡Ð ‡ÐäzäB8Y -`,äBÈ!€±C -ñw6Ý1êQƒÖbCè­C -™Q±* ˜äB‚æðÉ®J£É¡¯¯o—ßægEÚeQ™#ùGCrH!¡sH°GÈ!˪ù•t¸c±ÚÅP¹%Q ò 7‡-×åžšàçÔûeÃé߈CGX[ô{f~B¬áVut rH¡§–C#Ï¡·šœöÁüžüràm;(>n;íkˆm  äBBç$`Fäpº£ÛC·E”æ«‹‹Kuu5·S†¨¨è¨ÁíO¤ÇÉòk[ûXÙŽ[´5fRíB>u ß¼ÔayQ+×Ô\©2j„u§€ø„¹Ï#‡Ð rH!ÁsH0òNçR§ß8Q»AÔX±899yšDº¨¸¸Ûªê‹ÞΙ˜(c­n¨»nélWÕ1‡\óº¼; ýÓò»C©l_œ¿nuÀ˜Æ.vôA)$tIFžC‰æQÜqÄb× UUbWWÍ¡¼%ÞüˆX¦XQÒmÏE$úegJ,t¿ÓV>9T7ßRZ µU]ýtõ[{^Lÿ0äY ^€^9¤Ð9$ y½½¼¹™…"""Bs(///ýÛN-…Ba8‡3³3§µËa¨¿<…Ô*-+3t²Tœ3I&m­V^¿i1ÌîrôÜ-nY¾MésBÏÄ|Â%°ñ¼4 aFÖnß¡–š÷†-õ·ÕöC¬-U·+6&9§í]<ê ÜZ æ 9¤Ð9$ ˜9ôðÐ>LwDö•Ñߺ¡QVQnðRšãÛ7Ê -êT}¬l\ÅÇJl.Ê¥Q•¶^p<]r)ö—Cuù”Èh…ÒÞaä¬Í1¯þsmøÎZQõ=k×ùë×½1ÖÆ¢»£@¯RHðŒ<‡S>>> -stream -xœ+T0Ð3T0A(œË¥d®^ÌU¨`bjh¢gb7161Ô³4«4CC3cˆb —|®@ \'ƒ -endstream -endobj -235 0 obj -<> -stream -xÚ}VÛŽ›0}ïW¸Ý>€T¼ø„uZÙ`šº}¨¶êSWUUUíçwðÈ’­"‚/ãñ93ÇcÐODP -?‚EJæ8ËÑãÚt½%(Ç\rd¾!¢0ÍQ¢° È|ý½íÊa§[S˜ºkã„ŠºIO@%Ö¦æðØ€PW. Òní)ƒ 7£×1¯"‹†¾noÝðÌ•Íà•šÁ“ Ü°ºlŒ>8GûÂ@ÛŸk`™öÃ~ßÂö–”¾šâà0èqà~y꾇’0 -‘ÌÙ…’“er_ÛåÑG}°Å`Ët£K[²Vˆs9J wHŽU]Vní±n×*Óí ò•EÓœœ]oûé`¬ø2—e·Ûw-P{¬©¼<óíYaH½MÃÕ„I²P"^u`;AöN|½o¼ÏP Öµ˜fK:cÊ.',CxÚëJnT`Nþ'·”ÛÁÉÅ¡ŸxF¿*‡U9ì9®’³J¿üþû둉µë„©ç%¤ö‚]zEëaºªo«¦žæëöùq:+ã\àY[åáܬãu®'ùÒ•¦A¾¸Óü€»Ôü= ÷.\Ïî¢ lÀ»r•ˆB -ÿ,JìÿÕ0 ³5YLŽV!mï&}L³óKâ˜æáÚ 5&]« Ò2ßóò’(&ÉŒà‡Äùׂ¤8%çŸ *ÄôîÕ?=Šý{ -endstream -endobj -241 0 obj -<>/Length 36813>> -stream -xœìÝ ROÏ=-úŽYµc$"Úê·#?‡mÏ~.Ä!°§ÑÊj#…¸_ž?v«þŠH"Òit"‡ð¸ÉŠúˆsÈùïÓÿ»ñ ¤6rê²êêãô±Cexè•Ïo{”Uþåõ/Ûµ§™ã‡ö+O>sòqaÛ³m‡DïðqËöà!1®\S“n?ËúÔâœ;k…°›Ù³fçN[c £ÕPÝÄ ßÞþéÛó^Ä!°§º8<QÕ8ÕViò’HŒ˜¬"ðj­ZN£U…GÄê³êø‘ˆR‡Öju:~¤î-Í9ë^9y¤€BkÏl›Ç¡ê*M>©aÁòïÿ{êyqó9°“ŽFTó7~_"¶ç]ˆC`O£•WŽâjÞXÚÑÜjþk‹¯|_>¸r±€ü9­)eùy¥dt·¶÷ÁöÝ!JèÈ5%âØSƒ®4Éùåañ^’UÉž ž«2‘Ùªy/ƒ ;~˜TEîØĶZ5–k®à >ºuóSuIfV~ó ::ÛþÓ–N“ªÈy•ô:—ÎÁ+ѳ¯HÎÄ—%ˆCè:ißÝÄŠ«C&~éÌ-ÄE¸©XRøòîµ'ÙÌ>/Sö‘à$Pòß¿¹yý~Û}^¤GMQ.ÃËI¢T¥‰¹Ñ|†ŽÎ–Hä:vü`ÙÞ‚|\4rUqa~ÚƒÛ©UˆC€Ÿß g)@Ç!‡ˆCâ€P‡4:B&wuI +}XÔ««‹Ð²Þ'³»ºÐ-prq!qÝ☇ÐÍ!éüùóJJJ]]Š¦®\¹2{öì®.t Ÿãðæ]]èJ%%%¬‡ÂÂÂ]] -`&Lèê"Kû‡]XWîܹӵ5µË е‹ÏÊqÈ›†êØï¸,¿c™¡“!Y¢] qØ Ø©ŽýŽËò;–:â% -еڎC•J'rp¾þÊøøÍ™RŠÜxÙï¯ R¤ú¸;\0Ä!kú—åw,3t²oÇ!ãðGøz0ìJÁ×^šª(Áù Û®©ÌÃñ×y?üï¥ì$E)Rá½ë©Ì:~ýŽ|çø´ªü¹Õ|Ò½Äy›4µ<ïC^‡tÏ–þÚQmÅaÅs‡eºE "Ãtûó•/¶klëí}XO¶¥õ^õÚoçÉ™6fCù „ò$3 ÿ凧p§8šZä½{¼p³ m8}KÚ‡ŒU‘WÉ!,%-Öúª ü@mù‘÷6ÀŠuì{}3ZÚµQZó“VxˆCø¦oÅaE²ír‡>þQëåx:<ïÒûk–ï7Ž;8Nè¶USø{Í%Š?ó7ÁaC>ÝZæë9‘#ÉDuïŠ#!Óø^ïuùwÖ‹a.`{ ðÝkà{ÑJîï1Úr‰S¡7ùCÅÏ`³¼õ¢–< -sv=ü€Ü[VŒ^ô6—sä*ç5Cø¿}¹ÖºoÄ¡ê†*oßMaž3Å8Ç!Rš—[Á-))ÊÍ<èÑKkX¶o‚0TõÔ¼.E‰4*ÈAb–N.ù˜û‰. !Ùƒ£ñô-]q~#©E·ü¬OäK ¾ÍR Ô—mq+•=ú\[z´o=U¥}­TÉv†Á‹UNäGÖ1ËÔ±†‹ö½ÚZ–öo”†%ù+¼e¨õqH«*È-¤ KK -p´þb£8¤S™ÇÄ–Ï;t¤ø|l­?ÀM%Ý_§¶O+2HQäó!•N)ÉË­ä’”ìÁ]÷iÌ&q*ó?~â–ì)ÌÙ|'ëø¡ŠZ‘Ÿ[@敬?û­ûŒ/Gô†'ûß.üécn _BRŒ¹êèÅ7 TƒÕ£‚gˆ“hÕe4nÁú2SrbV‡ËÙnRêÉÌ#jIÊåsÔ ËF‘ZÛ.MgÞòúo+5vÈ;}PÀ5Ü|(áKÞŸvÛ˜Ê/+R–Q2ÄØÃfÿóæ¦'Óz,"8ÀhËÜƵqÈõ¸î2ñ/â½=f®÷xôæ.Í­ïê«þÉ«Áô;¬Ç5Ý2mÇaõk_UãL‹¨ÝJbŒ£UæåÄ¥ùH-­óÆqØl‹Ô½¥4Ÿ±ž„{J qÐ?ÝkX©è_â¼…5\·5‰Œ—?‘Ä¥{p·vo_ãnynÍjs2¡§ê•—šE¹U„ídÑF{võ›€ë^ØÄúLmvŒjiЋo{4›y‹ë¿Í8têãÖÃÝøجûç¹ÖÆ¡ÏiC£[ê]gŠsPrþ56¾¡wx×xb’±Æ~­ˆ…4–ÖÇái&«¯‰ð[wvD'r0Îi¾Nß’¶ã°2Åy™y¥cŒ‹¢Hó¬šÖù×8li‹ª³Nì°òOæÔ‡³ _ÌÒSýÌ–¯•Ê~~èÚÚ÷ŠV¶\É•]†Œïùü#µ23CxåßµøZ*m»ê˜ÄÓæsãn¾kUÈIæRYÕ¼5ééBªÞ^kó[Zð¶ÍÕLèû–èö—ön”¹üÉ.õ{® ÔdÁW^7]áœZX·´ÒÇû7n:Y3°?W ¯lîÓÛã÷ýAýv=GÂ7u8ÉïÂ5×ÞÕðž'I,¾é î.åm&›ß‹òdf¶xîâpûîz£…[¿:iëH±ÄàžÄ ¾Ì«0þÁ&ï¿Æ!sŸy´NÕ_;:ø/ƵS¼žÞÍU‡ÜfI0ŽÑ'Ö\Óð˜H|°f¡èÖÆ‘»•µÐ±8¤S+i$>æ‰55ç¸Þº›¢\†óäY·ö‚n¸Ç_"”·¡ZÆYvÑ[Gð´£<%w WÒ/L¨ BMö¿Û×ùß-‘\ºÇßp´0‰VùöÑsÚÐѲäÛk—zN^Õ—‹@¯þ˜žYTC#r -É èÃKmi»H=i>ó–ÿq躬*D{ÓGë*§Ö9÷ö>´âÕmB3çôe®zÉÓóÉö‡J×–IÕÇ›ÿuly¬ŽöEåP?•>\Œ 2•ÈUñµR}9û«<¢åJ¾h‹´sÌŽ©=hï£4 ž8ÆîÑÒW¡íÃfs“yÖl#2k•€}¬Ï\ BÁÅ«CÆVãø§£‹Öâ¾Ì\¢Ù_Ú¿Qˆ VréÃæ+œ‡ÍÖÆ üƒFéGœ'‰Òó/Z.w®öüwŸBÊ·ë9⾩£qH/¾¶vE°vÌ¡Úf'FÅ]î>ópØôTƒf/†+ó?Z³Øš.Ê/¼Ê×MEŽ·õ/¾q¤P±áÛì®ÎÜŸ9øD‹vjù¶‡ôâ›úKgÍ—a~ÓFûô8ñ™âÁHcÆ!FÅoMLèÔæWTí,@“8¤U¤ >xêÑ»R¡23“×öxØl â§[VÚ!³‚ö+íYiËëuÄ„qZߎò³cM´BkÆΞö—¢ÒŒqý8¨¹'ôu/ª…:õˆ4±{¬äå«7àƒÆÞéÁ³¸ÄaÍûXçÝW?d%½‘õÿ×g$¥…í¾ˆßdæ­-þ7ãP£WùM»5ûúÉž •cÄá[SU¿ÉöÖ#ëV*‰§çàÁ½(ÛˆÃ)¢DjyÖã[wî\O<þ¤ÿÎ0Û?‰( Ì&²üW>~rçBüéŒÑ;£œÿHY×Â:—|^[[‚G=7hö×#ïÖ¯Ò:zxšØ— -ÒÂÑ9xÔS½–+ùòý˜æ”å7¨ú0¦œÒRMko6›ÛÄʸ¦‘‡Ë|µŽ†N#èŸnꪇDyÒ,;¸h-î˵Kô#ûKû7ŠDò·ã°éÚ88âñÚ•GŒb™ÉG/¼ª­m»odYÓ¨Ãeøåq¸lטÉ|g øì^)Ï÷3Ò¨Ici“8¼¶vÙÞ)[·ü!TŒî5dH/òÃoöèéPV¥y­ÜXm`6¥/Õ“M+Üf><_’ƒP™²KÃEv׆d˽ë÷æloy¨eYI·nݾz&.IÎ-Òaè‹å»•E(÷$Ýô2tJ¤!xý©òibäôUƒÖq>“>÷2 ¼Ô\sÇ6¾•8T–æh2óqÂ-|{Û®8ìÃE~¥·6&ŸÌ­®ÃýžÁå}^KjÛÒ¨•ÅTQîªgÖ^Óƒ‚˜«£YþÅSFåb~mTõr·¦“äžCº/¿Nß’ÜhQõÚwź$Û8OòÆÖ9åñ—Hkö×Á|÷ ~,ë·fùcsUåˆà;ì´;[˜[ÓH|X‡‡¦3Jü%É\´ÖãðGö—öorR;â°ÉÚ8øÇóuª!:G2¿. åŸ×ÒŒ·ˆÛ÷§PÓ¨y=GÂ7}Océ*½{kÃ÷Ì‘$ßpP÷øÜXÚüźÆRã£^Ä#fŽÏ¦yxh h¹ÓõÅ!÷³ªî3….”ä dÇ謹¬rÐGùó1ºˆÊÓƒ»üÛ\;‡eMT<D„-$~úo›ªõ+óãáµÇ󚬠ÕënVÒ¹Œ#öÏ“`¼ÐžòP+K¨<µ!‘êªæ é¡Ã·Zûü¢û4òÉïŽè¨yäL <¾cœ0‘@ɉ3Z!o¸qšskdÒÐ{dï3Š§¥í"Go:s}™¾¼mgèåwªëŸä1ˆ:¢'KwÚÓ6à!I¶/õǺ¢»¿é@î²$_KÇKÜ¢C¬w.?bÔ0÷xb£»'¿gqbÁ›ÂþúÞ zr4˜Þ×¹ùmÇ!õSò‹ŠC{1›ÑiE7mÕœ žÇ\$Nµ°Î+>W›IU±ÍÿJÊÑÑ>¿$ØE?îÏ-ŠU_+UÃÆÒV+ù¯ŒÃɼ¥M7b'ÌÆÒ­q>³Ä W6­ü3èðJÒñŽ.Z‹ûr£%jEËÒRùôëJ.Ú|…·‡Á“ªéê\R>è­Ü‡ö&ÊpÕ~>ßSûþàüv=GÂ7µ#ÿ^s¡F¿.Èø‡n ßÝç´½å‘=e8Þ¿\ìê¶îsWÛ¦/~éJ#Pö4ØÒæö˜Þú£„Z¾:ùþ8){äcn{¾€§ÇÐÍ[û^w·ö}@’ë'P•›MŸäuàGwïækÀaŸîã-6¸‡ÊKHý¯ÒW9TwyCÍ=¡»ÌGÂ㸇âç«·êw'ÝÚ,­ðêFmü^Ìx] gèç´¨'gUæq×M¾w ýûñ”|$ ù{ç™ð‚åû<Ôðko´ØöˆÒ[FŒ£,/—0`‰‰Ãº©b-lâæ3çjyñ¿ó©4Ôò¼œ"2¯˜´8kß35D«þôñc)]Xª§H«=0úFÏÒ¬CƯùúö¡ç½ù 8Ózõl)®–Ö9åKWššþÊ[•uÜe£ÿ3~…¾\ÅE›öïMøZ©ÜU#ô¾t¥i½’ÿª8 úß˦±ª¶+ÍpÉ, -9=]`™——ÞPbK Þö¢ùÛ‹ýk×Öµ¢­ž¥íß(Ü¥_Kâ·…çEÓÞR2¶àÛvÙøß)–¯øþâsû8Ùß®çˆCø¦ï|* µ2?·.ÜSRã/¶ÇO®©Ô²¼œb2Oi‰V¾+ûñЪòsòé½/jMÖÁÕ&9ŽÑöÃõ¥øVyhÕÅ?–Ñ…¤zŠ~ :¥äcnI´ñ½,_fɼϣŠ$(!Õ£ÑmÎÍ7A‹3oâw~Hµ¢àc~_BZ¢aÿú¶×yK¥“?åæ”rˆö’j«ÖtI%oºë+öÀªœrii‘÷Bt|Ѿc‰¾µ,ßµQ:®"Ù]ÃIÄçˆ,÷·ë9â¾ iû9 ~zs2±pÙ!µ^ßz ‹ùãð·ñ3+y»pñ‹té[öØvËa>Ù^¤ÜGW^ÜäÔz؆ºü ¬qøs -@¯Ê~œôŽ{ÀÈ¡RÃŽF®¡8¸¸8~»§½vGݦZ¶ª.û@²´†Ç:Æ8Ü>uèŒcNí±‡pöÌÙÖ7µäAˆãΘ;Y<½†*éï°[$ÝÒp‡VñÌ~éš  ãœF?¯Ï2‹ ](ÕüyÒÔÂÛ±ÇRj,îÍSõÊ]M3ê=™À-³:ü¨Å@Þ/S•=Ð[hš·´ñ‹­Îçg,ü–­–í˜së•°3o¡~»êÂoqÈÒ›gîܹµ§Ìà ½öÀÃø±öÿ„Úÿ[ÝpUižj: Â+·Žæ̺¯j‰åšþ?e§­Ã³…"S½ã<Ƽsl=«^ïQ×Hò?u`¬ ­òíóçOÝ·øVª4>|PËߤfÅ*ôämalè¦óù ?€e«e;æÜz%lÇÜ[¨„ß®ºðÛ@²4æqgÎ\óøB¯;ÒÔý;xðàÔÔTæ!ˆN<þ\«®<ÉìoÃäQÛïšÓ§vHÔš¬C+Cx7ÅZ&]y×Zyóñî[òìm2GÍìóòÚ+¾©vœæKqR -nîß¾çؽwÕ -slö8Ì’htÌ84¸%ÎOâ3?âÓ¯JmÎã¼{`›W,ó]ýÿZié°‚h¹x݃Òú÷ýÄ8ŽšœMW¦l[®u"—òål^ùúè»à+i%$1ù[|¦s'é-l6„b×aÙjÙ|Îæ5Ý­FÕRg¬HeÓKºæÓ7þ¬‰™ëšVBoÏÆU÷ó|ÝvÕµHxKë1dê CÝ9yòŽëªzÔÆ^øn‹ŠÙ‹!¡s¼V&‹©Z­ª8è~AØâhÄržK¦ªvÏúªoÒŸÀóþ%ÇôU³¤š´e1ãp}ºúÞ¨³Ó}m^˜šg™õäÙ¡±õÝ4S“©=Þô<ðt¬OˆgFjŒ³ËuQ‹–ƒ…$ÔôHD«ÈLNÉzöõl½ü±Å“ô¶6“òÓ²¤¨O®L}òôE“ùtÑ8@`ájÙÒœ‹/˜«5ª–¾±;§ê7¬„Ô¦ÓìÝ?-D×¾ágMçÓ´Ês¼k\u©ÌÔìR†èÛ¨J<ôu;AVö³JÝhÞh)Ôz#Yâ¥16Ï,Æñ…‰>tè°”çχÆ8èÌœ5³îPD¤.\ºØÖ†£UfÞú'&6.áfÏ_Î1^3‰W6,sÌ×ÞoòÄbKú߇ê›ÔôŠL™å¯ˆ8º¦ÄæïuÉO¸Žäoe®µq˜e¤wÉÜGB¿ÿUï<³Cô×])¤ÕOÂ;À$2JWêm“ö¥¿kiø"9;ÖdÕž·ò3æL™4uÎŒÑuƒ)£±”…°lµlaÎÎÒ;–é7­–ªyÆ +!ó ¬ñ4:›¥O¸¼júY-U†U·ü±ù£—J¡Çìó^\³dkÙ2KÁ÷â†Ka"‡ï¾Yâ¥16ÏÌ3k;'.^ºdjjÊ8è̘1£¾ŠéÒ¥K­o8:•Ndvy£—ÜÚ¨búxhп{ÿ Ý³Y¶ña骒nd„®ØS½…˜;ªNáúº>w‚N¸þ¯í84‹ñïw`õ†GÔš‚v‡-Îë=jë¶NŽ›9 ‰WJ^Ašþ¦Y2NÌs—†ÅXÈ·Ú•†RôòÎÍ[w.ÇOêí:Q˜„8d%,[-[˜sÔÚÃëšVKg +!#Æþn<@e€¾I³Ïêp–.³JðøÔp)‡, qÈÒ›gúôé_zp_º|yºÒôý˜._¹Òê†+K²Ú|bè¼éCEò/zxýKP9r”q¨HÞ¡¶æX×P›¸ÃË{U=hzÜ1¾j¢j÷\FÓJo{ˆußÓêoòbNsíj«®:+|›ãÑ›¯r*H¢&¨Y9èŽá *_ìTÑNì¹56h$GY³ãŽ‰GÁ}NÞq÷ßÕ œmã³uvK]iêz“ŠåDi©»gõwŽÇõ d—oÜÍW5Ü¢}†Í4Ýa=Cœú.ÎÞ|ÿµŒOÕcj»ÀTeF;ší»–UFí{j÷ÆE{(wLw· ¾ù:¿ŠKjÄ¢ngI0¿m©i:ŸŸ¾²¡½X¶Z¶8gBÑÝfÕRà]ÃJ¤(PÜt‹Q)AÍ>«Q%Ü¿¤ÔÀæP--!Y ,ÕØâq€8 t4ÓÒÒ:¥T?“¼¼|Ût,ùùÛz:kª¨¨h{4– ‡Ä!q@@‡Ä!q@@~n2‡ÿ„C$[ûS«·wü¸N>¼7<¦qqqµÿd2ù»?ôgÆaMMͼ€››ûËÏ¿kŠŠŠþÈ ›+..F@w‡8è²8¼|ù2âXEçÇa]G!ÆÕá¼ùó‡À:9¿tšE ùf~XÔ«î‡Þ'³›ü©£qø% ?\½zuî¼yˆC`1¥÷VÏÔ¾[Rû³ðøð‹‡Æ uq‰ st~~i,Eþu;s¹ä‚½&kMx1|²H7Í×½‹€ºúØ#9xE{V\²~‹ÁTINBÕk瀴’Â;WîðaèF:-f!ã_4–þ2Ÿwr’è_^§‚æHT ZRWç+Å&*!¼¹}ïM…À„]§‚Iq4ø+öˆî¤3ãðK¢±ôWªÝï•q’ø‡ný÷ˆšà£¯qH/qÌsgðÙGo+xzUZee¯5F¤¢AÓP4AwÐ ðþ¬üWm¾M2ÏôÈsþ£›þõó¾ÐðBã¿Rò¯ìµÝyô~.×€Ù«•ÓîxJdü)dØÛ£»v>ÿôCA°çÀÑ ­]Í&ˆptå2C[:§+Mà $Ô_"Ú6YBC¡èxÙêcÇWç­ý‡Šä³æK6]ú$>tYUà—¦!ãLy‚˜ðÀõÆò¼]½ ¬gàÀ }ýúuW•~‚–âðÈ9ÿ1ŽCÊûH%.+xdþ/{/ém%™&4>ü´ýUÍåÁïùÆíÏS–•œJ2ˆ‰]Õ—³+—ÚÒùqøåêpÎܹˆÃ_ îËB¯Ý}w[>˜uäÈì]‹u˜q"{|Å’]™½7Ä3–ç¡|ˆ^¾pû›^Æ ÇMð i¨½¾$âåó'ÿÊ Ñ¥ÅР±”˜~ûîë -?]N^*ÝZcikqÈ“¸LÙ3]`¶ï Ÿ"ÅÌ›]*~bCˆŠÖmq‹ØX]^"Z‘ó‰SZŒ½gY‡M ™ú¾3ÿÚßÒ^yr¸»c¾)3÷ñ[ÏѺRDk8-QtRÄù ±BˆÃ`$"²|éAJ$q HÊ[lìh2§w£¿¶'‰×ÍÖºBùc_bø 1"½ð’ú“G¤ñá¼ÉîjFqïébGûs´Ej‹ÆHtà ­KâF£!™/]ICdãV(r+‹¿9òq(3­æh]-¯4áë>ÉWß.Š8숬7Ï…¿½¶ë|é=­™:wãÂ//ÜlzúÝÕ³tê£ñÁÚÙZ7¨£›Æ!ãOåonž9{õÖÍ+W½'K.ð9î6] _²ªNèJÓ°¥”„_®gÏ™ƒ8ü¾ÞY¡XõÎ"ÛÇe4ŠÀŸŒt”‰UYêž)¹&<Þf”³Å†ZšžBí7B”ùeFéý5³´ÿ£ÿr>l’HW/@'h;Ë“Læ¬>_9dÇ©èå½j¬ì¡þl­käQ~‰áÓ«cV,Üþœ«ö½Üo|–ªd ÍõOðV)ºhþ÷†‹ùãÃÏùŠUrèÅGbìjy§ÕçmzÊ=íÈù}Ÿ¿›ÖÓ9qØäÒqø+5¸ÑP¨øÚúEë/P…ÆÖ¥ãú¥¶×Š¹úŒš8\ŠTòîyÒ;™}Â&0Ï}«^º.^qøÏ Ù‹&Ê \e¬)‹®4ÀÞÚŽCJvôÊÅNÉÕBƒˆõž»qÓŒêÃ*KÜÓH©)žŠ¾ù‘,T÷ÞšÌ ¥^Ï«ùdÇŽ—ιû «’JgüéÄz_e£w}F é+Xóöþ”"b¿5ñÿX)`ÏbU‡uYX×XŠ8ü5Ýw_–dû·f|ßØú-Ž{{J¼ÿ¦Ì%ÜS~Ôt5{ë}j·?ùCÂ63ïÄ繡qh2ö÷/heÏBl6‡\{ó©†Æ=À$>ÁD¦ê®¯©MøƒObTT -Žï}AªoMNâ[¸‡9ÄÞ“W(çÝ“BšvÆùu€ëñO_}(ª& õ®´ÊÆvõ(!Rç/)´OgÆá—,Dû “K+IBüµMªÕé–)ûdôP=í4Œ¯«KÑiqØ0 ®]»6kölÄ!üöª^º/[wSb˜¼4oEúíÿžÒ{©þ×éAÜTñ[éœ8ü’…_‘‡3gÍBÀoœ}ÜÖüÀiÙE•t^ ¹1stl6.UàGþf:9^"€UtB6¹4¤R©u=K‡À*:3¿¨‹Ã3g"€%t~Ö]^»vmúŒ?-………dÐÍ•””tB6Qwuˆ8VÑ%qXwßáÏŒC™tsååå‡u-¥Œ¯]»¦4}:âX¯ŽÃ/÷à×ea]Ki]NSRBKèü8¬ûW‡ÀB:-ë²ðKcéÕ«W;5©…W­ÔÜ„ÜŽ:f>8‰ZxÃÇzGLR‰ð+ÜL§ˆÑ³®Ñ86-$\OŽçGÊÐ"jþUŸ­ûoå)•”Þ 6ï0š(ŠaïXJ'Äa“ï»äê°*ÍWMë¨XYæ–%Ù)¯½¡°~Óø;i“Oìøƒ¿èš©²qkÜÞébxä<ülä‚{Oˆ’ •Ü±Us—?¹V†ûÛo€NÓ™qØ°±ô×]ÒJx[m?õ(«¨†G|ÐT'Aħ¿õªDÆög.kÕ«ÝÊš'øŸò’º~±aúÂèãV -<Å×–ÚTXŸ] ‰óvøU¨ygŒÕÍ?¢Ö‹³«Ë tIR(”_wuH+y—"&×[ˆ–sÕÝý¬´KÂþÁqjjqƒƒN¸¬¬ì‘áüµxDù¤µœä£-/ >0Fò!Jcé>Iß“þp#ü5NlÔÚ/äé2µNºXJÆá/êYZ“}ÚÓÖïtÒûR2N ðÈêE‡+ù.ÓO_SwqX‡¯•¼}×£ÔX•(w‡„’;úóL?™&Dª÷Æy;ü|ä\ < –û¸kâÃh,¦óãZë—ÅaÅ3ëEZ—x•­mæ+’7ùU©F…ÏòWi‡µ¥§œòüÂt±áëÚÆR^Ä!ü:ôª¬œ6„s®õvXÔ—YÀz:-~qøKã0Ùvñês|j6)7üÝ¢Óŵ¢¢U.¬R|°¾±´®+ÍÍA&Ì®4þ¯&1»ÒjK$|O ±~*Zé“P+»Û#ìÝ& C)‹b»8$ÔdŸÜeéu:¥Lxäì™…çã¨jQñFÕ;—è?úÒ•¦îF +—£µ7Z8ºo˜"ÆA ×v¥)ß”ph‘ŽXðU½r_¦]Ù[Vœ‹qYÈÙs¡»§Ž îç`1ì‡-ªJÛ«¦uiaTLÝ- ÕÞhApŒÛ;C iÐÝt“8$P ®lZé.âvtkímøÍP²ct5⦇éàý‘²Ào©»Ä!@‡ˆC¶‰C"wrÀ÷cÄâº;Ä!â ûÄ!µè†½¶· óaÛQÄêŒ Çí§î¿Ê&˘DZÝ—±Ì”œcFº'&i÷ÇãBà ß pÙùÉ«â~ö1s$ð¬ÓMâ°úÍ~mý+sCÃÖ0Ç\­|ééz”Êõøß <Ÿã@+¾¹IÝ•¸%Â}j ÿ ?µìõ“ :áêÖÝÕÛm”ÇÃX ûÅ!­4ÉßnWâã·Ådn1ùÉ«mWÈS]U×?^¾öë3ÚÊ™,1+Ò©CýÓæ+*Í3wø%èÅ×u#5C&‹¢q€Õ°c>MH•í%D˽áã}^Ò1z¯B‚¶v‚‚ßQ—ü_ÞÕ4 ”ìXÝ•%<ã¼Æ -ýHqZQ橽Mxw°~kO΀®Ã~qX““èë˜øôCYÝð¿2Ú¡ASh˜d.;Üàâ°yJï›,µ,1ŒYÑ ãÂÏGÍO40¸°þ°ûœo°¶‹ÃÊçË ®ð.¶°˜3”²Ûö@õ²Ð éšˆCèj•Ï·¯Ú5Ä7DÃK° ö‹Ã§úùT6[Œ£Ü -Ü—)®zhÉe=­ÿúÆRJá+w?¤…í‰(›j¼n’”äx¥ñ✵¥AâžÇö ±~FÓ7yf±m_Wšc»8$Ôäœñ²õKL->C©øRU%4R¿ÚCÍäÉ—®4e —?,­‡Ð˜ý þcj»ÒTlˆÞ?_]i৪Jõ0°ºú±¤¸„$ÜCêOç mc„Й€µ°_¶¨úÍ>mýksC×ÞhÑ’º-›#ܧõ@t7Ý$ ÔÂëv:>··ŒhqøßœxcÝ„¿üƒtäp>@÷Ó]â  ˆCÄ!ÛÄ¡€€À̺¹òòrÄ!twˆCÄ!@÷‰CjáU+57!·£N£‰UéÖ6Çd|¬â–¢¤½ÅFc_îÑ5Ǧ…„ëá¾Cø¨E·}}Ï'¥Ë8ÿ†'°œn‡Ui¾jZFÅ0ŸÒVž²s÷™~Šcå¸Ó¹ú^áш‰ß8 òš©²qkÜÞébþ~:jé«GétÂ¥-ÎÕ;£má±¥¬†ýâVòÀÛjû©GYE5<⃦ê¸8i "¦8ý­÷P%2ΰãg´•?Þø·öÇNúü!P|Ýh©M…õ‰Ð8s‡_‚^te­F˜vdð´¸1€Õ°c>ŽŒK“ë-D˹êî~VÚ%aÿà85µ¸ÁA'ÜG6ºˆ¤äük¾Òù¹¢÷ñ‰(¢4–î“ô=é?AøGŠЊª—;ÕìD|Ž÷Çð¿,‡ýâ°&û´§­ßé¤÷¥uÃÿÊêE‡+ù.ÓO_ÓðâVrß[×,–´Òïàú?…™í£%wôç™~2MˆTÇxtð PóNki5?ºwηXÛÅaÅ3ëEZ—x•­mæ+’7ùU©F…ÏòWi‡ôŠÔP“uAŸzÜ8©~ Ä!üRÏì–o©Ñõ €õ°_&Û.^}ŽOÍÁf"冿[tº¸VT´Ê…UªqƒÖ7–’sb7jì|ØgµãúÉbáÁ£ sÔ6–Høž -@c)üŒ -¶Zï±]Ü®ºA¨€µ°]j²Oî²ô:R&~[Læ“Ÿ¼ÊÑv…<1ÕUuýã%!ákëŸÑF%W“K^15=*éíÅ|.ýÓæ+*Í3wø%èÅ×u#5C&‹¢q€Õ°c>MH•í%D˽áã}^Ò1z¯B‚¶v‚‚ßQ—Ïc P?žÔ[áü¢šWîïí¾6ÓÄkã’«»ò „gœ×X¡)@+ªÓ<µ· ïÖoíɹÐuØ/kr}Ÿ~(«þWF;4hÊ “Ìåa‡¿\’‹Þ¼Ìȸ¹wDþ¼À‹!|ÌKï›,µ,1ŒYÑ ãÑÁÏGÍO40¸°þ°ûœo°¶‹ÃÊçË ®ð.¶°˜3”²Ûö@õ²Ð éšã°®lŸn)Û”éF†®êË\lÄ!üR•Ï·¯Ú5Ä7DÃK° ö‹Ã§úùT6[Œ£Ü -Ü—)®zhÉe=­ÿÚÆRJÞ¥ÐÓÅõå/yxØ+,}¸ÛQÉ¢¤Ï¥AâžÇö ±~FÓ7yf±m_Wšc»8$Ôäœñ²õKL->C©øRU%4R¿ÚCÍäI]WJ^¢‹ß7ùá~£n1š.Å\躮4¢÷Ï—DWø©ªR= ¬®~,).! ÷úÓ9hÛ!t¦`-ì‡-ª~³O[ÿÚÜÐÃkdZþ·öF Âæ÷i=†ÝM7‰CµðºŽ°óá-£Zþ7'ÞX7á/ÿ 9܆Ðýt—8hâqÀ6q( ð#s€n®¼¼qÝâq€8ü!Ué›íNÜMý@îo­Û¯éº¨GÍ¿ê³uÿ­2¥’Ò{ÁæFEñ´–‚8ü/v9¡p?LHä5FB[È÷ž– %+@*¹c«æ. rmkH€.Á~qH+yàmµýÔ£¬¢ñASu\6 Ú©lœ»,*Þ ØhžQî²Èð9§uu#‰º‘áK«¸eO÷ŠÝ>¥GÅý5ó 3F+Ÿø_&q˜Å‘ ™Á[=ŽÞy[%(7IÝÊií8î—‡¬,Þ£š.—u.Y.ðìÁqB„Òûús -õ‡Ð.Ô¼3Æê‡f„Qø),…ãðqd\Š˜\o!ZÎUw÷³Ò6„=öy_ã0*~cïtmh®ùCrNeMõŽqœ$JbÄÚšykFjXèM–,Ï!ÊóG¯Ûš¥dn®$–ub÷¾'ãýöÛ«½#[ÑÒê{î{.VEBÕ|8±Qk¿c¤ËT<€µ°_ÖdŸö´õ;ô¾´nø_Ù•›DO»5ŒCKyÞª—û4µÒEUöÅ8N&µqh¥þïŽáüŒ_Ë’L­¹\@«Ÿ-ïÀµv=œßÌŒøÇA&Ýa‰Æ%™ Ä!tùãÏ‚å>øðÜÃvqXñÌz‘Ö%^ek›ù -¤dçM~U ,EÏy)3â°Ðxþúº8ä*¸`½Â&±¬MT z_æ -`Æa}X˜qh²pí“aFjŸéMâ(÷Ycòjvm:.Ѹˆ8„ö£Weýã´!œs­·Ã¢¾<ÈBÖÃ~q˜l»xõ9>5›‰”þnÑéâËí.»Ü`¿W=i³Õ).ͨxs‘ËÕS&[ÍzêqBÄ$ò€–,OÓ8¤æŸ3Ynó´ÿ*Ë5IÓs“o?˜1 ÁÌ»`Š•Õ¨;n^ÌÆÒ“»Éwo¿yÐ-´LÉÌdZO©‰3%ð…4E+}jew{„½»Ñt(`Ql‡„šì“»,½N§” œ=³ð|U5ØUÀÇ<$…wÄ$Ú³+œ+Ã÷+ø­Ú–17_Ts÷è;b–¹«©T¼µå¡‡9E™ìëiƒƒâôüUÖÞ+©ÿdáquß&4RõÊ}™fteoYq.Æe!gÏ…îž:2G €Å°_þ:ôŠôsW³Ä¤yó.ìÜCÕŠ‰3€ƒ[@¶ýÓ{« o>QúW³Ûa¢ˆÎlq€8@Ø&‰DÜÉßWˆCèCÄá©Î²wü÷QV^5—ä )–U‡ ’º Àú¨7vßÍ%S«¨=çlܪ7N7­°Äá¨Hõô:×gü˜þÜ™'<ö_çYiŠçÔ@KÈ…Ÿ— !ÃO*½¿MÛ{€OˆV? ÿ ÀJØ/i¥Iþv»¿-&s‹ÉO^å¸AÞCÝ"ïïÐHÝOfKÍóþ š™hlCÐ -=¸(ÉBÓ;gêÎpû¿D+.5˵xè‡ wÞ‡˜ûÍy{xÇÞc÷ÞU Ê*®0·ÕÃvÄnó¡Tùi²ï.¦Èú&ø¬ûЊ'[T “†ís‰;> -ÔüskŽL -V鉧½°vŒÃ§± ©¢²½„h¹7|¼ÏKn´!ø9|ÃÐHÓ^ëâ¸æ Ê=ûn’[Øæ‰"$B#F¬0ÑþK¢<—8/nÃŽwSÖOéñîÔž gc½|Æì3pÏ™`j6ò¡ß•ê‘ûëã’{ÆFg÷‹ »£>вšìS[ ‚…6‡8LÂЬ…ýâ°&'Ñ×)0ñ釲ºáe–oIô)n‡ðT§ÔÕÊ]â¶y¬3˜qhúnJPìÖ¡|Œ_ËŸlZnt­ðËð¿<´¬¥NîÎP:cÓ/ÃYM÷j_¿Ú8¤•>ò7²:NZîåoð‡ÂZEλì¶Á·p©ÛUy^ôý`1l‡•Ï–\á]la1g )e·í깦"}‹3â°È\yc]r^vXíx¡ˆo´E¨ïŠ>ÌÀŒÃú°$0ãÐReý³!6®zýkW‰—¿"ÀÈòõŒÚ8tQӽŒÃѯ"6n-™ëêo:§ûÐ*zõÛÓ®ÖQ«wÛÌïƒáXûÅaŠÓ -ý‹|*›-ÆQnî‰Ë_j5ðšÛÃþÖ+ž8Ú'r©†F®¾ºEÛ%UÑ\é¹Ï)aÃuž¦qH-¸h¹Ê1YFmÃê‰Rô/î=æ›&wÒÊ¿p’™Ùÿî{û2Kc3wèz&õ^¹Ùà/1‡Â!d"4E+{a·ýî0ëzcÑ¡€E±]jrÎxÙú%¦– Ÿ¡T|)ºÌ«@€MX*ï0EÚóëœËƒ¼åèíL±-b÷¸,7M³ó’¡šýÉãˆE÷¹ÄßJ+¬áí3lº±“¡ä?ö¶I”þúæü÷FÁ/B瀦ñÃÒúO³ÿkç€zÕ¯½5Ö«ìÕOŒ“9ü¯ô<WÍ~è ÀbØ/zeÆÅëï˜Ãÿ^òØOÓ ×—ÃA €- Û^rßyÝ¥Œß?U¬¶®o Øâq€8 °M -àÙhðýÊˡÐÝ!‡ˆÃPhaùè}1•¯ç°™k춨*ð£C´Œœgkû®†RQLéó·­«ÑÜ´ -ÀZ‡ßÿ±ÙÿF]"öï/NI‹ÝéýŸ´ã‰0eiâ E´š¢ -’¨ '‘šwFGíˆvLØ, ÀJØ/i%¼­¶Ÿz”UTÃ#>hªŽË¦A;•s—EÅÍ3Ê]>ç´®n$Q72|éCc·ìé^±Û§ô¨¸¿fžaÆhåáïÿË$³8´ 3x«ÇÑ;o«å&©[9­Çýò•ÅÁ{ÔAÓå²Î%Ëž=8ŽŸ\]óéùa}ƒ#Ò® þ³Å‡ÐzMÎåFA’^‡Œñ€?ÖÂŽqø82.EL®·-窻ûYiÂû¼¯q¿±wº¿¶N4×ü!9§²¦zÇ8N%Jq¸ö!a¤†…ÞdÉò¢<ôº­YJææJbY'vï{2Þoÿ¸½Ú;²-­þ¸ç¾çbõèгd.®Zìð¼ŠoÀ²]A3$†Ðªòä&ö—Sóçí8h7 u€Õ°_ÖdŸö´õ;ô¾´nø_Ù•›DO»5ŒCKyÞª—û4µÒEUöÅ|Áž‡YJáÿîÎÏøµ,ÉtÑšË_†ÿå¸Ö®g‚ó›™ÿ8Ȥ;,Ѹ$töàä´oÒ¯ù9ú¸ðpœÍ0þY`5ïþ1];ãP¨Z/ή. 4ÂvqXñÌz‘Ö%^ek›ù -¤dçM~U ,EÏy)3â°Ðxþúº8ä*¸`½Â&±¬MT z_æ -`Æa}X˜qh²pí“aFuã=‘xÊ}Ö˜¼š]‡ŽK4.2ãpœs‹oèη(5ˆZÓ¯éêh¤úÏJË·(+Þ®. -4Â~q˜l»xõ9>5›‰”þnÑéâËí.»Ü`¿W=i³Õ).ͨxs‘ËÕS&[ÍzêqBÄ$ò€–,OÓ8¤æŸ3Ynó´ÿ*Ë5IÓs“o?˜1 ÁÌ»`Š•Õ¨;n^Ëzk¬X"?jH?þ’ûÁ»‚_ÿÏç„ï´èÍPK_e’åˆqȹ]×xs%€^Ȭ…íâP“}r—¥×é”2ᑳgž£ª» -ø˜‡¤ðŽ˜D{v…seø~¿UÛ’GîŠóžá¢bxVj}T°Ž¹q2b…·ƒvøÄÜ|YPÍÝ£ïˆY殦RñÖ–‡Räe²¯¿]6–ïꣴ¼r¢ˆÌŸK6lÝ0K׆нì‰ëzÛk<ÜtŽžŠÚV¦ åx†¬†ýâðסW¤Ÿ»šÅþ÷ÂÎí1T­˜8ãèÀ‡íGÿtÇ^Çê›OT~ãÕìv˜(ö@÷@ö€8@ l‡D"zêÀ÷cÄâº;Ä!âqø³™h¹§HDÒ•áþöôÐQòuv§ÎŽ4ÁO¬qøƒ¨ùç6¯v¹UHY‡8„6Ñ+RB6¼Èʬ¶=â3^ ,…ýâVšäo·+ññÛb2·˜üäUŽä=Ô-òþÔýd¶Ô<ïï ™‰ÆF1­Ðƒ‹’,4½s¦î ·ÿK´ò‘áR³¬Q‹‡~¸pç-qˆI°ßœ·‡wì=vï]• ¬â -s[­1ÜiGì6z@•Ÿ&ûîbŠ¬o‚ÿÔÛÛ×ø—ð] ®Z…8„6PòιnK™±¦ÒßWÆ#H£p ÀZØ1ŸÆ&¤ŠÊö¢åÞðñ>/¹Ñ†àç\ð5C#M{e¬‹ãš3(÷ì»Ina›'ŠeŒ84~L±ÂDû/‰ò\â@¾¸ ;ÞMYo<¥Ç»S{‚žõò³ÏÀ=g‚©Ùȇ>~WªGî?îƤ·µÄÌwq„¶E¡&âZü0´=$²që”'ë×ß³ Û6Cc°ö‹ÃšœD_§ÀħÊê†ÿ•Y¾A$ѧ¸anÀSvPW?(St‰wØæ±BÌa™˜qhúnJPìÖ¡|Œ_ËŸlZnt­ðËð¿<´¬¥NîÎP:cÓ/ÃYM÷j_/Ÿ?ý6?\¶×å¯÷[4m‹Tƒè á@4EÉ?¿ÓîÉìÝ湞mÑòU:p`®w ÀbØ.+Ÿ;,7¸Â»ØÂbÎ@RÊnÛÕsME.ú/fÄa‘¹òƺ8ä,¼ì°ÚñBßh‹Pß}˜+€‡õaI`Æ¡¥ÊúgCl\õú×®/E€‘åëµq袦{¥ïî­D'«¥ôúrýá¿o‚ð, -°#Jîq£Ð|nR’›G‘ºd·¯é@Œÿ ÀRØ/SœVè_äSÙl1Žr+pO\¦øR«×Üö·öXñÄÑ>‘K54r½ðÕ-Ú.©ŠæJÏ}N †ø¨Ëð4CjÁEËUŽÉ2jVO”¢|qï1ß4¹“Vþ…“ÌÌþwßÛ÷JõÈ€#\J¨tBÅ+{¿’Y;ÌfÂY?´ªôî†5Á+‚öMÁ8Ñ,‡íâP“sÆËÖ/1µLxø ¥âK Ôeþ[lÂRy‡)Òž_ç\ä-@ogʈm»Çe¹iš—4 ÐìOn‡Œ@,ºwÈ= þVZa —hŸaÓ %ÿ±·H¢ôŸÐ7ç¿7 -~Ç}F 2§,{d²Ä ß·TgéÚU9‡˜bœLÖÃ~qøëÐ+3.^Çþ÷’Ç®xšFX¸>î`ˆÃö£—Üw^gw)£„Æß÷O«­ëÆ‹¢e€= ‡ˆCÛÄ¡€€À̺¹òòrÄ!twˆCÄ!â°ªÒ6Û¸›úÜß">Z·è¨É¹äïx=‡\U!¤hº{ó|iT –‚8l·Š»œŽP¸&$ò#¡C¨¹Ç×®9£|ÐI¯êG[U·÷ò6Â#X -ûÅ!­ä·ÕöS²ŠjxÄMÕqÙ4h§²qxƒb£yF¹Ë"ÃçœÖÕ$êF†/}h¬â–=Ý+vûØ‚£Û6]~õ‰CLa¦C€Ó qJþõ'ÏØ;o«ͳÝë4[’ƒ@(½¯?רPqByDË0i}ønE®”ÐõÛ 6[ÄÍA¬„ãðqd\Š˜\o!ZÎUw÷³Ò6„=öy_ã0*~cïtmh®ùCrNeMõŽqœÄùÄt‘á›E¶“óÓ2¤®R)J4V±yÚWÓzÝDÞ÷©3µgKq!á;Õ¼?µU×=2'E@i[Ý4Iή.4Æ~qX“}ÚÓÖïtÒûÒºáeWn=í^Ô0-åy«^îÓÔ -HUÙã8A˜DÎ>j´Ò#SaÖü)“§Í›5Fš§<ÉdáÚä !'ÝF5l‡EBÇQóÏmYû¿Ý>š -•7µ|ûø‡÷GS)ka»8¬xf½H믲µÍ|R²ó&¿ª–¢ç<‹”qXh<}]r\°^a“XÈ?Ö&*P½/sP -Soݸyûb\üóažqn#Ó70ã0ô¤ÛHÄ!üjÞi-­¦GL&P?þ³jõI˸À±B]],h„ýâ0Ùvñês|j6)7üÝ¢ÓÅ—Û)\v¹?À~¯zÒf«S\šQñæ"—7ª9¦L¶šõÔㄈIä­žy±Á‰œƒ‡öäȈÙ©}T“÷’‘ŠM²Œ–Áx¾ì—D¥ÕJ÷.Þ~ÿò [h™’™É´žRg*J É ¾‰VtÅP-`ÚÁÍ~Ô×Q†F—–„í_ÖU€µ°]j²Oî²ô:R&|½*#ÞÙ6ôq%/WïYë¦á< -€å°_tâq€8 l‡D"xßWˆCèCÄaTg9n?uÿU6YÆ$òÐê¾\-¼Ð2jÁ€ÁwsÉÔ*jÏ9·êáèê2@CˆÃv«|ééz”Êõøß <uá×ü€–‘ >/2B†ŸTz›¶÷Ÿ­~Üß~tö‹CZi’¿Ý®ÄÇo‹ÉÜbò“W9n÷P·Èû;4R÷“ÙRó¼¿C‚f&Å´B.J²ÐôΙº3Ü~Lᱎ‡®¾.áè1PÉfí41JÁA®¾Çォ”Ÿ½ÉÝv†ãt¾ì‘ɳ"á×ü€ÖQóÏY¬92-(Xñ`)ì‡OcREe{ ÑroøxŸ—ÜhCðs.ø‡¡‘¦½2 ÖÅqÍ”{öÝ$·°Í9ŸmZn–1Ïf“¢`Á›,ɹjã…‹/Xh:&÷QµÐÏóá‡’Æ I.Ä!ü˜šìS[ ‚…6‡8LEc)Ka¿8¬ÉIôu -L|ú¡¬nø_™åD}ŠÆá†<Õiuõƒ2E—x‡m+D"ç3×ñy;pÆìI§Ìž>J’§â‰¥Êú”qqÎÿãoðYˆCønä¼Ën| —ºíP•çEß/ÃvqXùÜa¹ÁÞÅs’RvÛ¨žk*rÑ·x1#‹Ì•7ÖÅ!gáe‡ÕŽŠøF[„ú®èS;üoÑ«»·nß½’ðÏ‹!;#œGdX1ãp_œóÄ!ü0zõÛÓ®ÖQ«wÛÌïÃ,`=ì‡)N+ô/ò©l¶G¹¸'.S|©ÕÀknû[{¬xâhŸÈ¥¹^øêm—TEs¥ç>§„ C|Ô¥ó‡]äT,Í‘¿+(kաê¼WÍ5Sú©o\3–7'8e厇Wî~H ÛQ6ÕxÝ$)ÉñSäÓ®7~Ei¼8¾‚¦heÏ"ì¶ßf½Co,:”°(¶‹CBMÎ/[¿ÄÔ2áá3”Š/%P—ùo° Kå¦H{~sy·ü½)#¶Eì—å¦iv^Ò Ô{úƒÝ¶¡·ÞTqI_`îj6C‚“Rp3ÐÅ/þÁ»j³6yÚOx»~©ñÃÒúϳÿˆ^ fãWüÇþÈ¢;ª~í­±öXe¯~bœŒjÊ)=ÏÅU³OW— -c¿8è0Ä!âq@@Ø&~dÐÍ•——# »C ‡P•°ÙîÄÝÔäþñѺý˜kŠ^•qÂ}ûþ³Osj„†(ï µÌ÷ËË¿#rvœ­Uì»JE1¥Ï߶®F0¢kA¶[Å‹]NG(Üy?ÇaUÚÞ•+C?3°VR•–5Z]»?âZB«)ª ‰ -r©ygtÔŽhÇ„Í’ uu¡ ö‹CZÉo«í§eÕðˆšªã²iÐNeãÜeQñÅFóŒr—E†Ï9­«IÔ _úÐXÅ-{ºWìö±G·mºüꇘÂL‡§â”üëNž±wÞV šg»×i¶$ãt¾ô¾þ\£B½º8¬~㣲2‚Çìx´Fo."nðMôšœË;‚$½Ëá©¥,…ãðqd\Š˜\o!ZÎUw÷³Ò6„=öy_ã0*~cïtmh®ùCrNeMõŽqœÄùÄt‘á›E¶“óÓ2¤®R)J4V±yÚWÓzÝDÞ÷©3µgKq5‰ÃÒG† tïqíO}”V!=e½»–<n€„•'ï0±¿œš'8oÇA»ih*`1ì‡5Ù§=mýN'½/­þWvå&ÑÓîE ãÐRž·êå>M­€tQ•}1Ž„Iäì£F+=2fÍŸ2yÚ¼Yc¤yÊ“L®MžrÒmTÃvØÆqøpÝÝ»\³lœþ¦Ûæùp°ï¿þ“E‘‡Ðªšwÿ˜®q(T­F`-l‡Ϭi]âU¶¶™¯@JvÞäWµÀRôœg‘2# 篯‹C®‚ Ö+l ùÇÚDª÷­þ·0õÖ›·/ÆÅ?æç62}3COºl5«^º.Õ8%³ÿLàXÂ]ýy¦%f Gp˜ƒ¶T¿ñYiYãe¥ÀÛÕE€FØ/“m¯>ǧæ`3‘rÃß-:]|¹Âe—ûì÷ª'm¶:Å¥o.ry£šcÊd«YO=Nˆ˜DÐꙜÈ9xhOŽŒ˜í™:ÑG5y/©Ø$ËhÙŒçË~ITZ­Äqïâí÷/º…–)™™Lë)5qƈt;e£{#6Ø/¦ßáŸ2!äÄÎQïš –¾Ê$Ë ã$s/º®ñæÜm;J­¬…íâP“}r—¥×é”2ᑳgž£ª» -ø˜‡¤ðŽ˜D{v…seø~¿UÛ’GîŠóžá¢bxVj}Ô¾Ùw-o¦åWrKýo±µ§ÕlINJþ5G¯˜»o«åçÚúmWÌÔ›·ö^Iýç ={ptõUïÍ»ã|$H^¾e—Å4q|%MÐËž¸®·½VÀ#ÀMç詨meºPŽaÀjØ/: q€8@:1¿$"âðÿíÝ{‡}X,Öÿs‰Dœ©ÿ\_®+‡jóç#‡À%‡}?äää ‡À->e_ÿø{‡ÀE>AŠø{û~ýoîv•Æ1vž¾ù°²GÎ6õÀÚQ}«öJÌÎÈïo?뤌üfù–mVs†âŠ¥ð.=U'vxÖÍêhb_âìe¡" p•O–÷–þ÷;~ ñ=Âæ¿óýyAËv0½ é-Ú6º“Ä›ïeF|/”Ƙˆù¿ðœîÆ> 2‘]{v³YºQRì|iLÈà&Ÿ>‡{‡ÿÞ™¥œ–‚¨mþÙw*{¤f›0ì‚ i5ËSÍ›ìW:Ô,OˆÓȶ¶J'˜&î_V@3«šë—ì1µþ˜ã@ÎãfÒy5ún÷yR$VÝq¾Ç~Ú)ª éä®Þ?¢®õ¶í -û†u9ì,öY»cˆK¨ÙdÑ–;I´àF¯dw% *€?×Û]}%„v`¨ï¾c1þ€«üÛ9ìóÖg‡¿çð_Ú;ä´Ü;z¢XrÌp1NunxØ9ª#é]÷*‡‰©[†—ÆZnÊà_8¾úÌSÕÀ$·™äûÎzö¥ZtçY¢uOÊ©‹VOoñÝ%¿oåR—þîÍðVþÓ¶Þ±[­Ÿ¸oŽ$±·!×Òü˜Mòî¯1ïÞ£«$zݶnŸDy+à.™Ã÷øû9|ëÛ‡}¿^¹rå_Ê!ÓKã!]7Ú4V^ìîŒ2é•.òWóǺëßexdó$¦Úˆçl5ó)žå V~Z|sB¸¡líñ¤ dÅ ²¤²Lÿ¸r“ (9Æ æhCÇõ*”ªGÄ9kæò/ßxþ(iwJë\ëMª2ÔéßÊd˜[_S±Ü8gè‹Ë11·çÆÄ'BðìÖÇå=c¾B&ô¼¸lMö:à‡¿ïªkhü;KuÌ.nÿJ]­ñâ öª¨í"Ñô¤bÊÄYœ¢«d½¸0… ?¦òŽ”€iåÆö稖‰aóo¸'æ=©ëä§~µÄÁ×^}(™Uw-Ö'2óÖÓ.‘q œCM o~‚ˆwù9$¼k±/‡ -B€+ Jöÿk9ì,‰v¥¿Uú¢S@FIÍl+ÝHY¬·>7ÜuWzA³ø×úž[æHaN¼ëE}7S;%“&Q`\å“åðfÿƒ9lcúü0z–Ê%Ç|#. ¥gZ¶zëlÈU´qžþSpô£Ù±'wá -Þð§zÛ -cËJKº¼Ží›%Ž“¡¸Ê§ÏáÀ—/_^¤¥õoäÓ|+ÌeçéÛå Ý‚Òãç®óqï§c]½*-Ó²ÑJ˪zUjòÂ,sóT¢yjòÊ|kÝÀÊù¡GwªÔÙáwéaIJQÃ3ÚK]šÄª½írô§ŠNÑñZî{¼4©¿íúµÝq\n–¯| Ã6{­ñ©qQ§#•Šm´7—,=|ÜEïùáX/~ðÚV¨¹±}wè˜Èd3Là2Ÿ&‡„7[8°wø¯åðNjSê‹bœªœ  3²tOÂnšW9LËtQe¶î0ÿb¥ªÓåsÃÒªä»[–m~²ÌÓ]U´öQ©ÌR“Y ÙÖºô{£Œ]7ͤ<+&i˜iÊ <6¬ªïÖxÍ -;¾Uˆ¾tÃ-AI!YS/…ÃNÇÅÿ=»‡ðGý;†Îq’n»Ôn[l¸¾5Ý2>ìà2Ÿ2‡¯ÿoßÞ¡ÖâÅÿF»+³BÜ#³ -žµ Œÿ³ÆY2+¨áõ:)P:Ùkl]"©»71Cœ¯§òˆÕšà2Å‹çÌž§µ`ª¬`[íÒ …3NNyý…‹Ó|3ÌÜþ(ßšÈý6ÿ㻳y±åcµ°›‰œýF&Ù_ìGáX5gv¸ÜÖÚíªÊ×Ñ dÁÁƒK¨ø”€Ë|²Þ,â¿v°´ý¾ë2Ó‹WúbE¾BoçÈÎ%N’gCtúrXo½Øf ‡üuç]õéÙõÂ*ô´XÃQ/ÇÿÖçå^»~!#³hbHFàä»þ&ž -|õ>¾·½8ÑvS\ÓÒàýŽªCH„·:Ƨå£OGLx°E{óc,…waUݸ>ö…€ _/«¹ê‹ª¬ã¨(4Øë¯ûô9øá_;XÚ^讽ö¬ÐjOúLVnTàái½mŠ—|nŽóØcXàæršß8-ÓAâ’ãjs¶Ë‚{Á'%lScL‡ÕÏ&Oør©4}gtÙºÃGŒ)­té…r¦tËéB•¿ÕÖÎãœp4ò˹–a3[ŠD ‰O˜2ò Cgõñ¶ý§ÒD=TÅ©4ð~Íy› c “Ô¤0€Û|Ê^+â¿y°ô”¿Sh³U|²¦Fý¹ ¶A¼¯H¸C“¢¬Ê¹™¼&yŸb¤ÉŽÂÉþa3J}t7Ÿ‘±IÛ«yÃÛ)öÚ£Ú™IÚ®!.šT2«öJ#4ýFE—¨Â"÷ȳÊ,´6üÜüÛrħ%žÙ?µ'7ÜÅçÈË/Z0‚ìðE xŸ®’h#ç΀CŽ -8†Àu>q ¯,ý—rðÁ>}\ºtiñ’%È!p…ÁÊaßÞ!rÜ9@x&‡D". ÿ\oo/rŸ;ä9@?@WiœãûÛå5]üÔñsŒœ äkã;Oß|XÙ#g›z`-FöÀ_aÕd3Ö/ŽOµýBp°W^‡þmíÅ!¡gGNŸ:V ìd𾫂úIû=Âæ¿óýyAKäþJo;3Á-úAyY—û¡ðéb8 ÀUx/‡œ–‚¨mþÙw*{¤f›0ì‚ i5ËSÍ›ìW:Ô,OˆÓȶ¶J'˜&î_V@3«šë—ì1µþ˜ã@ÎãfÒy5ún÷yR$VÝq¾Ç~Ú)ª éä®>ô· ’¶ßÝj°¹`⾌þi­·mWØ7¬CáýX5g}w0Õ×wDEÈÇij€»ðbï=Q,9f¸§:7<ìÕ‘Nˆô®{•ÃÄÔ-ÃKc-7eð/_}æ©j`’ÛLò}g=ûR-ºó,Ѻ'åÔE«§‹7ž§3 -GÐ̧ >HR3R§þ:þ·úúº€3Òú'%"‡ð7ôïºpÜ>ç®ÍÏNI;”…{•àM¼—Ãîªì¯Øì{Ï[ÆÿÊéÙId‡7¾žC»q‚]ö›oŒ+“\–ä¦"Æ×SuÌa]x…¼º¦êÌ9šó§PÛï:éÚ0§EgxOzý…‹Ór;ÊÊå8Ÿ^h”å×býSzCø+¬Ús~Ûîj8Ìä¿¿Õ4B-&fÑPÌ>à2<—ÃŽ"O=ËËmm¡<3À=¦kщ Ú}9lpÐqÈ!¹þ’çZÆù¡oh‰ú#_Žÿmxx#ïúË'¾{ ä—â­\êҟýÞ¯ÞÇ÷vöÅÀøߪ,ª²nXŒ£¢Ð`¯¼Ž÷rX讽ö¬ÐjOúLVnTàái½mŠ—|nŽóØcXàæršß8-ÓAâ’ãjs¶Ë‚{Á'%lScL‡ÕÏ&Oør©4}gtÙºÃGŒ)­té…r¦tËéB•¿ÕÖÎãœp4ò˹–a3»ü¯ø„‰Ù.oÞ2e‚8šª9o“aŒar‚š#pžË!¡»ò”¿Sh³U|²¦Fý¹ ¶A¼¯H¸C“¢¬Ê¹™¼&yŸb¤ÉŽÂÉþa3J}t7Ÿ‘±IÛ«yÃÛ)öÚ£Ú™IÚ®!.šT2«öJ#4ýFE—¨Â"÷ȳÊ,´6üÜüÛrħ%Û­ûæ-göOû˜MžÖUmäÜpçp!ÞË!ÀCC䀀x&‡D". ÿ\oo/rŸ;ä9@?@WiœãûÛå5]üÔñsŒœ &Šö_j«§ò˜­i“j™rÀ\Nà/ï>K=U'vxÖÍêhb_âìe¡"Ëùpäðok/ =;rúÔ±e'ƒ÷]ÔOJÝ2N]{Öm­O^=AnrŠÓÝØÁ'!B&ö=a6›¥%ÅΗÆuK¸ ïåÓRµÍ?ûNEc€”Âl†B°!­fybªy“ýJ‡šå qÙÖVéÓÄýË -hÆaUsý’=¦ÖócÈyÜL"¯Fßí>OŠÄªû1Î7âøÏO;E4ƒÜÕ‡þöv¾ýîVƒÍ÷e*³®ï\N\!”ßi‚Â_éí®¾B;0ÔwßƱ‚ƒ½2ð:^Ìá½£'Š%Ç ãT熇£:Ò ‘Þu¯r˜˜ºexi¬å¦ þ…ã«ÏñÝ%¿oåR—þîÍðVþ=‡½Sí›ùFm™)Ij½m»ÂêVKïoÿ,öuDæÞâ³)ÀëºJ¢×mëöItDZRîÂ{9dzéo¼ ¤ëF›ÆÊ‹ÝQ&½ÒEþJ`þX×`ý» l~ƒÄTñœ­f>ųÔŠÂO‹oN7”­=žt¬8A–T–éWnrà %ÇÁ˜Ámè¸^…Rõˆ8gÍlΩ­æ!#Ö¸Y~Û?ìWL~,±ôI3»—Ðþ0Ü#²yç.{‰b8oa·>.ïóÅ2¡çÅå`«h²×çIÂ8ŒÀ]x.‡„îªBÝ#³‹[Å¿RWk¼x‚½*j»H4=©˜2q§è*Y/.L!Æ©¼#%`Zy ±ý9ªebØü[î‰yOê:ù©_-qðµWJfÕ]‹õ‰Ì¼õ´KdÜç6+­ó[~[ŽØÔ}'¢¦ŠöÿØ¿›hÏáÝzÛîÓv\kæï%ÉN7²·Ò+ˆpÞË!ÀCC䀀x&‡,C…¹øÌ‘ÓñB{Cøü¼‘Ãnä>‚oä°k rÿœàažÈaÇ¿žCA²aò3HbäÞš‚Î —æÓE„/ü©{,H—bn»^¿^»«¹÷/î>S¤%Ñ’‹¿ ’EøHeÑV-õƒ½Jð!ÞÈaûê;‡$ -á «Ì¿Ä_Låy“Å’q™ oÛ‚Ý{Úz œæž÷8¬y-à¿Š(!Bhnéí%‘柺"ª†ö=︉ðžÈaÛ«òñ)o—²×!MèyÁºÙ°ÿ¾DÌQÒ©C¤“2HgÔ\Ñ£mì=ªY›=SzŸ/éGÓ»$- b¸˜_ŒÍ.9ÕèißÙÀ&Y æ¸SdÊÄö¢Ž(£†«Õ>¢€$¿îñ¡++,WwÙ%ë¯Üh¹²³„¿‡ÅæˆXíºÚ”‡¨!WᶾžÃ/-EjXÕMª–Ä&ö^g‚ET_«S‡ íÏ¡Fõþr²i–ŒvwûãQÂ#²ël;Y*Ò‰üœo¶ðǾÛÕ"%ä“+¥TÚº/¨«k ?çtëÕ¾…ÙÃœ¦;‹Ût~|Aç/»g=‰Hì*ëïþõ6‰E#&ð™ó4í Ž€ÁûLŠJ$úª×•töªÀ¤y#‡µ¯røµlB¶hg‹½—‰Ó¶]1ž}Ú¥{V0¥Â¹êätÙmú½Ç5ÊãëEÚñ›N¿Ù•ùŠÔØ ±:¿Š­ß 9š¦Dìf©Ù±­µ¾‡(µPÊy§Ä×cùÚ™-Ñ´öé!Cg~Iîe?û±9Á¡îj5i^äk-!”ÞºûmÇ=^d\çpÞ·žð™V¡úî‘ìäô 5—öú´Tt ö:ÀÛ¨<‘ïrðÁdx#‡ÕºÈ!üs²Çx"‡UÈ!|„a¼‘ÃJä>Âpä€Grøò÷ÿPoo/rŸ;ä9@ÿ¶®²D7çô;Ï›8Y%5çUòBDBoWÙé0ÿøsEÕݢ㗇ísV¤üËëÿMìºÜè]ñ7ª{Øìa ·[L“ ö:Àëÿ»ª¬Œ¢ÜiÖ“ã!Q×eÜŽÄjË°žì]g–Òô¿õú㻞<¬o49„wé©Ï/jUR–æk¹¹Ã,l\x‚éh¿þ3ødx/‡œ–‚¨mþÙw*{¤f›0ì‚ i5ËSÍ›ìW:Ô,OˆÓȶ¶J'˜&î_V@3«šë—ì1µþ˜ã@ÎãfÒy5ún÷yR$VÝq¾Ç~Ú)ª éä®>”Äîéêi~phË–#T¯Ã¡ê"åÑ&ë X§ÐÎOäû˜m€Ï»ö,mý¡yqñºÃȃ½.ð^Ìá½£'Š%Ç ãT熇£:Ò ‘Þu¯r˜˜ºexi¬å¦ þ…ã«ÏOšÔz×~•U¾À7rì»OÚe¾Ý¸ËpbŸë®<½Õ2^Ì-ÁSUK¸ -ïå°»*;Â+6ûÞóÖN/ (§g'‘ÞøzíÆ v=Úo¾1®LrEX’›Š_OÕ1‡uáòꚪ3çhΟBl¿ë¤kÃœá=Iø÷ nxòKiéµ})µZ±)4%ö»UV·øçÓÜ—°NúE( %»õÔ\ -´‹¨_¸Ë@o›¸ Ïå°£ÈSÏò2E›F[(ÏÇ péZ´EâBD£v_trH®¿ä¹–q¾AèZb„þÈþ€ÕððFÞõ—O|÷@É/Å[¹Ô¥?‡{3¼•…ßXZoSž•½Õ<5Ñ„Z¼Æų̈ðãßnÙ®tj±>ŒC`ðN½]Y¾®i¤µôÅ#ÑBîÃ{9dzéo¼ ¤ëF›ÆÊ‹ÝQ&½ÒEþJ`þX×`ý» l~ƒÄTñœ­f>ųÔŠÂO‹oN7”­=žt¬8A–T–éWnrà %ÇÁ˜Ámè¸^…Rõˆ¥D-û¹}ÜøQÂÍùC“J¾ -<<[¢=Ÿahk¢µëbÖ÷A±ÅÓ¢ŽxMù˜MžÄi½Ÿ²m牮»,TpB)—⹺«~uÌ.nÿJ]­ñâ öª¨í"Ñô¤bÊÄYœ¢«d½¸0… ?¦òŽ”€iåÆö稖‰aóo¸'æ=©ëä§~µÄÁ×^}(™Uw-Ö'2óÖÓ.‘q ܦåíÍ}RÛNýÍÒÍ[­æËô=T¬ºÜ(Æî5™É+vÚΖ‹¼­ëq˜Ñ†cÃGK‘ûž¦dY-_ãÑ‚ƒ½Vð&ÞË!ÀCC䀀x&‡""ø~üsmmmÈ!|îCä9üÛºJci¶©·Ÿ5²…†MÔX¿m«¢pëÍõZ~nþí?Ÿ–xfÿ4±yEà?‰]›¾}_^U«ƒ5b‰Û.«™˜hÀ]ÿ»ÊïÓ.ÇŽ•f=:êö£,ãd’ÎÐöw´°û‰ÊcÛw^µ9–¾^î@ø|ôÔý|¯uâ”1"|Í?¹¯RˆIÝ ‡ñ¿Ü„÷rÈi¾æ²óôíò†nAéñs×ù8÷Ó±®^•–iÙh¥eU½*5ya–¹y*Ñ<5ye¾µn`åüУ;UêŽìp‹»ô°‰$¥¨áí¥.MbÕ^ö -9úSE§èx-÷=^šÔþñ¿ÝME7Z’õ=¥)ýëûû®Ç‘«V§Š»e&ëaž¼»ækÃêɇVÇs€›ðbï¤f0¥¾!Æ©Ê -:#K÷$ìö¨y•Ã´LÇ%Qfëó/Vª:]>7,¡J¾»eÙæ'Ë<ÝUEk•Ê,5™%Ñm­K¿7ÊØuÓLʳb’†™¦tý mÏ¢N¡q«üã<Õ‡þv°«£h×*“¬Qþ'÷-Š`ð>ÝÏO:šîc¤úÌ‚ç -Wá½vWf…¸Gf)a›c:¬æh|6y—ÃH¥é;£ËÖ>bL¹h¥K/”3¥[Nªü…5Q¶äz›‚Òháæ›ñþñ'…ŸŒ˜7„À®Í¶Ôq¶4å¸Û—B³ÀÃ8-w]¶]Wö²šJ¸ÏåÐ]yÊß)4‹Ù*>YS£þ\Û ÞW$Ü!IQVåÜ¿L^“¼O1ÒdGádÿŒ°¥>º›ÏÈؤíÕ¼áí{íQm‡€Ì$m×M*™U{%Šš~£¢KTa‘+cæÕ]áWÕ´%äþ·Ân»ÝÙ¾‡Š]uÌde`«éá ë/0ÏÞ­óaÐ*ãÃ#ÆHó÷ÿ¶4(dž.\†÷rðÁCä9 ‡žÉ!‘ˆorÀ?×ÛÛ‹Àç9@ÿ­«,ÑÍ9ýÎó&EVIÍÄÅy•¼‘U{%fgä÷·ŸuRF~³|Ë6«9C1´Þ…]—½+þFu»“=l¡ãv‹i¸ZWAÿîBª²2rˆrc¤YOŽ‡D]—q;«-ö‹—!½EÛFw’xó½ÌˆïÅ‚ÒqåRx‡žúü¢V%e9a¾–›;ÌÂÆ…'˜ŽÆø_nÂ{9ä´DmóϾSÑØ# ¥0Û„a§lH«Yž˜jÞd¿Ò¡fyBœF¶µU:Á4qÿ²šqXÕ\¿d©õÇür7“†È«Ñw»Ï“"±ê~Œó8þóÓNQMç wõ¡ýã{šÚ²åÕëp¨ºð#Ÿµ;†¸„šMm¹“D nôJvW¢|̦Ïcמ¥­?4/.^£¢¸ -/æðÞÑÅ’c†‹qªsÃÃÎQé„HïºW9LLÝ2¼4ÖrSÿÂñÕgžª&¹Í$ßwÖ³/Õ¢;Ï­{RN]´zºxãyš1£p¤Í|ºàó‡$5#u©†SúÞº(_,ßAŸ'M"°k²\M|~l`$‰™îI¡ËdðïÑ]yz«e¼˜[‚§*F[pÞËawUv„Wlö½ç­ãåôì$²Ã_Ï¡Ý8Á®GûÍ7Æ•I®KrSãë©:æ°.¼B^]SuæÍùS¨‚íwtm˜Ó¢3¼' ÿ¾Á O~)-½¶/ ¥V+6…¦D~š¼Áêâÿ¬7Ï•ª½uK#6ÞhÔ<€ðy驹hQ¿2p—ç~pžËaG‘§žåeŠ6¶PžàÓµh‹Ä…ˆFí¾68è8ä\És-ã|ƒÐ7´Äý‘/Çÿ6<¼‘wýÆåß=PòKñV.uéÏáÞ oeá7–ÖÛ”g¥Co5OM4‘,²[­Ÿ¸oŽ$±·!×Òü˜Mòî¯E?fS€WõvUdùº¦‘ÖÐÄø_.Ä{9dzéo¼ ¤ëF›ÆÊ‹ÝQ&½ÒEþJ`þX×`ý» l~ƒÄTñœ­f>ųÔŠÂO‹oN7”­=žt¬8A–T–éWnrà %ÇÁ˜Ámè¸^…Rõˆ¥D-û¹}ÜøQÂÍùC“J¾ -<<[¨<ÆÌúšŠåÆ9C_\Ž‰¹=7öàƱ˜coã´ÞOÙ¶óÆD×]*8¡€Kñ\ ÝU?„ºGf·Š¥®Öxñ{UÔv‘hzR1eâ,NÑU²^\˜BŒ…SyGJÀ´ò@cûsTËÄ°ù·ÜóžÔuòS¿Zâàk¯>”̪»ë™yëi—ȸnÓò‚öæ>©m'ˆþféæ­Vóeø œ–û‡vù¦]+mû­±»»‰²(ßÇl ð¤®ÇaFŽu -Eîÿ+«åãk<o›¸ ïåàƒ!‡È!r@@<“C‘¹ø̵µµ!‡ð¹CCäðoë*¥Ù¦Þ~ÖÈ6Qcý¶­ŠÂ„βÛ¢³ ëød¦,³ßå¸dFØÁ»µß߶Òú®ˆ …@™HÜñ?qœþÀMÿ»ÊïÓ.ÇŽ•f=:êö£,ãd’6瘉NHƒ†ƒÛ"ñ»qé$§Ìø²¸$%¼»2c½Ý3¯ûq¸:wâ½ršo…¹ì<}»¼¡[PzüÜu>Îãýt¬«W¥eZ6ZiYU¯JM^˜enžJ4OM^™o­X9?ôèN•º#;Üâ.=l"I)jxF{©K“XµW£½BŽþTÑ):^Ë}—&µüowSÑÁ–‡d}ODͪ -ÝX¾úhºõX¦kë»’ýOÅ΂÷üðGmw\ŒÃ–%$Ì“Âó€;ñbï¤f0¥¾!Æ©Ê -:#K÷$ìö¨y•Ã´LÇ%Qfëó/Vª:]>7,¡J¾»eÙæ'Ë<ÝUEk•Ê,5™%Ñm­K¿7ÊØuÓLʳb’†™¦tý mÏ¢N¡q«üã<Õ‡v? Ò17â¸÷tq <„·ôv×ÕôHʈ=5W­vw¹ܪ‚' -—Ṻ+Où;…f1[Å'kjÔŸË`ÄûŠ„;$0)ʪœû—Ék’÷)Fšì(œìŸ6£ÔGwó›´½š7¼b¯=ªí™¤íâ¢I%³j¯D1BÓoTt‰*,re̼º+üÊ£š6¢„ÜÿVØm·[ ËϪ>áh˜û¬Shø$Íu[]t•DðÐUºÏÊæx˜ ‘ä\ º¥úAœPÀmx/‡ 9@Cr@à™‰8Sþ¹ÞÞ^ä>wÈ!r€~°žÊc¶¦ALªeÊs9vC^´GPæ½fñI:tŸÍßÁ´Cx'v]nô®øÕ=ìNö°…ŽÛ-¦Ià¹ÀUî=ë¶Ö'¯ž ·©?‡=wwÚäÉ[Ú©ü¼'îɬ=G¶cN¼SO}~Q«’²œ0_ËÍfaãÂLG üõŸÀ'Ã{9ä´DmóϾSÑØ# ¥0Û„a§lH«Yž˜jÞd¿Ò¡fyBœF¶µU:Á4qÿ²šqXÕ\¿d©õÇür7“†È«Ñw»Ï“"±ê~Œó8þóÓNQMç wõ¡Ä¦ë;ׇWåÄwšôåP¶"ÔpÙ±¡ÇBÆ?tÔ·/[t ÍAÃÎá}úÞQÑÖš¯; £À¸ /æðÞÑÅ’c†‹qªsÃÃÎQé„HïºW9LLÝ2¼4ÖrSÿÂñÕgžª&¹Í$ßwÖ³/Õ¢;Ï­{RN]´zºxãyš1£p¤Í|ºàó‡$5£ùÂÌÝÛ›í#´SÌhõÆ}9”~`¯c}[PBHÆÈ}\†{ÎØè㻧`÷þ\wåé­–ñbn žª’8X -ÀUx/‡ÝUÙ^±Ù÷ž·Œÿ•Ó³“Èo|=‡vã»í7ßW&¹",ÉMEŒ¯§ê˜Ãºð -yuMÕ™s4çO¡ -¶ßuÒµaN‹Îðž$ųÔŠÂO‹oN7”­=žt¬8A–T–éWnrà %ÇÁ˜Ámè¸^…Rõˆ8Ç`ZÓƒ‡Íì^BûÃpÈæž»ì5Æ”øÚ\WØÔ*Mìã™8•Þ‰Óz?eÛÎ]wY¨à„R.Ås9$tWýê™]Ü*þ•ºZãÅìUQÛE¢éIÅ”‰³8EWÉzqa -1~Lå)ÓÊíÏQ-Ãæß -pOÌ{R×ÉOýj‰ƒ¯½úP2«îZ¬Odæ­§]"ã8‡xh x!ëßM´ùÙáÀ-¶{ùE ·]Vø¢¼C×ã0£ Ç:†–"÷=MɲZ>¾Æ£q€Ëð^>r€ ‡ä€À39ÁàŸkkkCàs‡ ‡Èáëy~d£Á®BªMÆ‘M²Ï¢Ý¶¼Qü¼g,-ó°ùèxìàóÄz‘E_ãÍÔNɤÉS{eàuÈáa×ü@ÓgäÖÆØöåúÄßëK ÿD6Å9„¿ÒÛVã^TZÒåulß,qœ ÀUx/‡œæ[a.;Oß.oè”?wóx?ëêUi™–VZVÕ«R“f™›§ÍS“Wæ[ëVÎ=ºS¥îÈ·¸K›HRŠžÑ^êÒ$VíÕh¯£?UtŠŽ×rßã¥I%6^Ûfħ+|1¦c]_Çô?p-77.²ª·@áýX/~ðÚV¨¹±}wè˜Èd³Qx¶p^ÌáÔ ¦Ô#Ä8U9AAgdéž„Ý5¯r˜–é8¢$ÊlÝaþÅJU§Ë熥3TÉw·,Ûüd™§»ªhí£R™¥&³$²­ué÷F»nšIyVLÒ0[ \`Bor‰Ó9°Ú¦Ö 9„¿¯ÇÐ9NÒm—Úm‹ ×·¦ûcô ·á½vWf…¸GfþWü±Y ßJ ‡ðWXUG7®}! È×Ëj®zÁ¢*ë†Å8* - özÀëx/‡…îÚkÏ -­ö¤ÏdåF.‘ÖÛ¦xÉçæ8=†n.§ùÓ2$.9®f0g»,¸|RÂ65ÆtXÍÑølò„/‡‘JÓwF—­;|ĘrÑJ—^(gJ·œ.Tù QÍhF#³¸‰ÕKh/vÝÝ´È'Øyþðû9ןý²?0±UÍÞvÞ0™™³†’?fS€·5çm2Œ1LNP“âìU€·ð\ Ý•§üB³˜­â“55êÏe° â}E˜eUÎýËä5Éû#MvNöÏ›QꣻùŒŒMÚ^ÍÞN±×ÕvÈLÒv qѤ’YµW¢¡é7*ºD¹Gî\øëñ­—»ƒ/?;”º»^kÃÏÍ¿-Y|Zâ™ýÓÄ>fS€§u•D9wrTÀ—,¸ïåàƒ!‡È!r@@<“C"€€®··9€Ïr€ ‡¬§ò˜­i“j™«qÁÓ9ýÎó&EVIÍÄÅy•¼¢ ïÆ®ËÞ£º‡ÝɶÐq»Å4 \Ä€« ‡„]{Öm­O^=AnSJÜ’û'sˆrc¤YOŽ‡D]—q;«-ƒ—8x§žúü¢V%e9a¾–›;ÌÂÆ…'˜Žøë?€O†÷rÈi)ˆÚæŸ}§¢±G@Ja¶ ÃN!ØV³<1Õ¼É~¥CÍò„8lk«t‚iâþe4ã°ª¹~ÉSëù1äù¥´ôÚ¾€”Z­ØšFØÁŸë©¹hQ¿2p—3pžËaG‘§žåeŠ6¶PžàÓµh‹Ä…ˆFí¾68è8ä\És-ã|ƒÐ7´Äý‘/Çÿ6<¼‘wýÆåß=PòKñV.uéÏáÞ oå¶Þ¶]au«å÷ñ¿b_Gdî!Þ÷SoSž•½Õ<5Ñd&Ã;õvUdùº¦‘ÖÐD ¸ïå饿ñ‚®m+/vwF™ôJù+ùc]ƒõï2<²ù SmÄs¶šùÏrP+ -?-¾9!ÜP¶öxÒ²âYRY¦\¹Éƒ”cs´¡ãzJÕ#âƒiM6³{ íÃ="›luP®(å(Œ%Üœ04©ä«À#Á³%1ÕþˆÓz?eÛÎ]wY¨à„R.Ås9$tWýê™]Ü*þ•ºZãÅìUQÛE¢éIÅ”‰³8EWÉzqa -1~Lå)ÓÊíÏQ-Ãæß -pOÌ{R×ÉOýj‰ƒ¯½úP2«îZ¬Odæ­§]"ã8‡xh x!ëßM´¯7>4ò gdî“Úv‚øèo–nÞj5_û†ð]ÃŒ6ë>ZŠÜ÷4%Ëjùøìµ€7ñ^>r€ ‡ä€À39ù˜{€Ï\[[rŸ;ä9@?XÏó# vRm2Žl#ðî[ÞÆ®Í ß¾/¯ª‡ÕÁ±Äm—ÕLL´à.Èáa×ü@ÓgäÖÆØþ¿?ÞðG=u?ßk8eŒ_óObR7ÈáÉÀMx/‡œæ[a.;Oß.oè”?wóx?ëêUi™–VZVÕ«R“f™›§ÍS“Wæ[ëVÎ=ºS¥îÈ·¸K›HRŠžÑ^êÒ$VíÕh¯£?UtŠŽ×rßã¥I%6^Ûfħ+|1¦cÝËøqþpËÇl|úÞ?YPO>´z8Æÿp^ÌáÔ ¦Ô#Ä8U9AAgdéž„Ý5¯r˜–é8¢$ÊlÝaþÅJU§Ë熥3TÉw·,Ûüd™§»ªhí£R™¥&³$²­ué÷F»nšIyVLÒ0[ \`Bor‰Ó9°Ú¦Ö¬/~rÝwÞº9„÷ê~~ÒÑtŸ#Õgî,à*¼—Ãîʬ÷Ȭ‚g-ãǬq–Ì -jx=‡N -”Î_ö›F—HêîMgÌçë©)a›c:¬æh|6y—ÃH¥é;£ËÖ>bL¹h¥K/”3¥[Nªü…¨f4£‘YÜÄê%´»înZäL›%Púè[œ*‹ã¼Ór7ÑeÛue «8¡€Kñ\ Ý•§üB³˜­â“55êÏe° â}E˜eUÎýËä5Éû#MvNöÏ›QꣻùŒŒMÚ^ÍÞN±×ÕvÈLÒv qѤ’YµW¢¡é7*ºD¹Gî\Hx!ëßM´zã“Â?ÞðJçàUƇ;FŒ‘æïÿ;liPÈ:9Œÿà2¼—C€† ‡È!9 ðL‰D|“ þ¹ÞÞÞ÷çPyÒ”îß»óÖ?!‡À#Cä9ü`=•ÇlMƒ˜TË”F]‘kÖ}>ð ˆN=¶o¶$ª ïÄ®ËÞ£º‡ÝɶÐq»Å4 \­ €«üeßã3Ì!»ö¬ÛZŸ¼z‚ܦZåë0h“D‰’¨üWã%0ÁÞ­§>¿¨UIYN˜¯åæ³°qá ¦£qE?nÂ{9ä´DmóϾSÑØ# ¥0Û„a§lH«Yž˜jÞd¿Ò¡fyBœF¶µU:Á4qÿ²šqXÕ\¿d©õÇür7“†È«Ñw»Ï“"±ê~Œó8þóÓNQMç wõ¡Ä¦ë;ׇWåÄwš äжØ)-z¶Æ:ÁßÔ÷ŽŠ¶þм¸xÝaxóÀMx1‡÷Žž(–3\ŒSvŽêH'Dz×½Êabê–ᥱ–›2øŽ¯>óT50Ém&ù¾³ž}©Ýy–hÝ“rê¢ÕÓÅÏÓŒ…# hæÓŸ?$©Ífî¶ØÞl¡bF«7È¡yf»—E1ÝÀÉkãLLt…÷ë®<½Õ2^Ì-ÁS£-¸ ïå°»*;Â+6ûÞóÖñ¿rzvÙá¯çÐnœ`×£ýæãÊ$W„%¹©ˆñõTsX^!¯®©:sŽæü)TÁö»Nº6ÌiÑÞ“„î·,ÁÜ6ÕŸoŸm5vo0ˆ‹Y'Í<Ÿß;\†øìRìîc/¦‡¦úMÇn"ü™žšKvõ+w(PðDà2<’Ãùs€>ÿù|}oÿÁ_½ç<¯÷Ü!¾;0¸C€O9@Cr@@È!9üxL&s°W_~ùåÇü9rø±úrøÍ7ß°ÙìÁ^€Ï‰Dº}û6r8ÈC€Á…rä`pq]9lö«+?²š -òŽþv† _íÜ_úàÑ!«È!ÀàⲶyên¼Ô#!òr˜ªÈ—&4ý¤0tÇÞ(Jï`ìÊ“H¿Stû/…?f…ÿJçãWKyýç r0¸¸/‡†^#“­Æ -ÜÀasˆ$>b[Á@góå[ǬMÚ;CœÀGê[ßËj©©n R%ø^þE/›Íá#:ê^4 P‡‰‘_%ðòŸøíµÕ­™WÿÄn¯«®ë¢Ê¡¼¼Þæ[¿/¥oÑ6¶D§ÿWbg}uŸ´¬¤Àß™e€ .îÎáoœÃÿrïðÀnñ½[N=¦4ABtœÕ.Ù«A[c‹…ÇH´–6+YÓÉð·Þ²Ðó7y³2jÛŽÕ£^^íÿ'9ejE§`wY™¨^péxáîÒ8Ïk|TI΋‡µc7íÙ¾|X׿ߖ"BU­LÈyüK\Zm­ï§¤"Ë|Áî¨(3ˆ -[÷…Po[adpö ‡é|ïÚnä`pq_õ¬nIÙ¿›&4ÞÊðéŽý¯rØ÷¹ÀÚhŸiJÌLq«êÄf«<Ãý¾Ò$VÕ÷ÖÖ¹ý§ó-–»ñHóW—"½uç}ÝÒvÙz8t¡4¡þ¢ëúƒ*Ññ†#ˆ>¡þ½>vÕÉÍ6ù´ä…[oÿ¾Âk?ÿ­%ö-e…§ìŽÔ³%9ÏŽ˜ÙÜÛ–êó•P[QtØÙ¶v*È!7â¾®Ù&äì·z$ߺQ$7DÿI{›ò6ëîÓX8ªG²·ùÞ¹Âû’6½o±zïºÔ¸Ù8HÙ*ƒh“CqjCøúþû<˵‰)±ÓH³²îùí·£)ï #r0¸þk9o+ˆpb\¬Trð‘êÏ7¦oÏîEUﬠ¨-ò¬÷æPÏGnâЊJwY™ˆN`ð:%JkÁ·KJ£‰-|£Kõî×Jl}µ”pºÀAçXâ;s(ј³Á(fåÁäå2o¢ùr0¸¸,‡ÿ»­¦ª¡‡"%+-üÎÒ¼2ª´h¥ŽªVŠ¬¬øo_´àtÖUÕr$†SEþâ>x‰r0¸¸+‡ßLUyý×Ûù7?fµÞÖúç;Žƒ 9\ܕûù~A…Ü×_‰ÿíÓýÿA×ç”C.† .ä+ ‡ƒ 9ä -È!ÀàB¹B_{€€ÀCooï_ÿGÿ‘øw¦ý)ä9@È!9 ‡ä€€Cr@x+‡ƒ½2ƒæ×öj ²ÿ-‡Ê¼ -endstream -endobj -243 0 obj -<>>> -stream -xœ+T0Ð3T0A(œË¥d®^ÌU¨`bjh¢gb7161Ô³4«4CC3cˆb —|®@ \'ƒ -endstream -endobj -247 0 obj -<>/Length 23997>> -stream -xœíÝy€\U™÷ñÛB6 ,Åà ‚+‹8¢BÞÑaFd_D!®lˆã>ŽŒ.¨‘ÕBX÷ ŽŠ(ƒÈ" Ù“°%„l~«SI¥ºªûž[}ï9çùú~þ—ÊMåéJSÏ}ê×Õ=‹/β¬¿¿?ç×惖c€NÙï$zškÝÒ+wzՠ߯÷IAK]Äþ䥧gU¿tëÿý±gÉ’%;¾rçÖSh˜òº¥Œ† ûÓ­· ß-e«¦Œž P¶Ó+w¬ýzûwú¸ó#?¬öëe—Ï,x;ÈquKuôL€²Ž—žQã'­»|î³KKÞy˜niÓ ×yüé…^ÿ -¸íOÿ׳téÒvÜÉ}îà4Koïø^ÿú—m¹ÉØQ٢矹þÇ7Ôn\kì”7íµûäuz½ç[ìðÆlu§RïZšoÔÊôôl4yË—nóÒ—n1yá?ûÉ]ÏÖn›°ÙkߺËVÆŽîÉV¼ðÌSwÜô¿<·tÕßµ÷î“'Ôþ®?n±Ã»îöáîgÈ/dÈ› n>>ì°C—.˜;çþæ<ððs‹—û}ܤâ­oÙóϾcþÓO×ÿw£ 7ÜyçWþòW¿îüNº¥ó!v mSß¼ïî›OXøØ_ïxpþø 7¿óÿn¬Ý¸ýÛ÷͆cçÝ󧇲-^»Ý¤Ú-—]vyí×­¶Þê{ 4.7þîwµ_zð¡Ú¯Gqxㄵ×Ûx›Z“´õÖ믽챇zàÁ‡~b~}•ÝäåS7è[²¢w̸ ;ì¸]ï⮼æ¦Æß5÷î[îÙ²ùïîöáîgÈ/dÈ› n>5~ý­·Újë­_:yƒ1O?þðýsæ<ø÷§–­`ô¼õ­oè`æϯÿïFm4ÐÁüòŠüÙúÉͼøùEþìm·ÝÚ³lÙ²WìðÊ"÷À‚=dloï_yÅó}kÚ‚=dLoï5W\±8{ø¡ïÌšFG퓤ú·ÅÖ¿}·ö»ý}/ÞõÇ›ï~ð‰¥ƒûŒu·ÜiÏ×m;qìèúÿö÷¯¸|æ•¿kÖW,ÉÆ~è~;îöáîgÈ/dȇ›-5Œ™¸ñN¯ÙmÛM×yúŽŸüäŽgGü؈¥>à©|š‹ÿÁâ¤Ó?õgº%@·:®·÷ú+g.XÞßr㬙3kÝÒ‡ t*ß[9}©9rå0¦ñ¿Ùàni›ívžºÍÔM&®5÷‘‡xࡇyjéêùñ¾‡ºîZ½wÜtã“/,ÝuÏ7׎ëwràa‡Ž]õw9â°ýw>ÜíÃÝOÎÒrãá‡ÖÛÓ3óòËû{ÇÕû°Æ—3fÝI/Ýzë­¶Þr£u²'~è¯wÞþÈsË*~ÄQë`^õªn»íöú¯[¥ÆÉÍÇýuÎóoÿóŸè–1Û¼å»o6~á£÷Þ>ð^ÕKî¼uཪíÞ¾ÿë޻塞­^·ÝÆYS?±ß¡‡MÕsÛÍÿûü’çþûÀ¨¹½¿á¦ÛL}éÔ—n1¡wÉ}7ÍþÃC/Ônü—C]Tï]¼éÅq›½v‡-j=Vý¼bÕ;n·<”mùºí7iÜÕp·w?C~!CÞ¸÷A‡LY{Ô=7ýöù‰Ûï²ý¤Æ=ïõöwLÙ`üss3§Öé=öâò¡þxÑidz×[ßÜ|rýÿ¢ÀûwufÝÒòåË·ÅŽEj`Aï¨ ;í²Ë6[ ä _\ðô5?œ­LXï9í “'ô>ö×[_²ýnýýK/»üêúù›ì´ÇžÛo1f­ÞåK¼âêßgCuKu=½km¼ùÖgßõ÷ni½­w~Ëë·[§·ïÑûn½Íë'Uÿ#kÛôÍ{ï¾É„Qýí–—l·{㮆»}¸ûò òÆ [쑺ãöÛº¥úlÉþgÎZc¶Øf³þg-[o³vÛaÓçÝzõOïŽ]X´×ÊDù¼Õ±îI+ƒÞ9©;ïøóšn)£ad­5vêÛÞöê‰Æô/_2ïñ‡þðû[Ÿåm)¨Â@·´bÅŠí¶ß!v%ýå®;zúûû_¾Ý+bW`Ñ=wßE·0¬{ïù ÝÀ°º¥ýýÛÑ- åº%€tKyè–òÐ-ä¡[ÈC·‡n O^·Ô;jTOãÖZÿµo|ùC¿ýý“+6ÜeÏí–Žüo­ÝsÖ××ü?{Fê]Ñ×7ª‚;ÞÀ_Òvcío-ðƒ„תæ«x<ûå¿1vÒæSÆ.zâ±ù‹W94|·4~dz~üݽG?ûÂòÿ[x×7ï^ÿ W¿ÿ¤ÿí{õ7¯9ùŠCŽúŸg -4C5éŸ/¾â¨ë8âš'ûê·ŒÝîãמ»öi|úþ©g^xÜõµ¿å¹‘Þùðz&îöÕ™_ØiB­õYg£õ{Ÿ›ÿüòþìÅ{Î<â?›×çúÃ뼦ìW=ðx~ç­=Ï,\1jíþ'n¼ðÓŸyï¢þ¬w½×ÿÛgïµüoÞlüM'}Î}‹ÛÎÓ3ÿßùÌ'/½cmÁåvK×ñèûúÊœ%õzGõö÷­èÜ7ô¬µÞ&SÆ/}ê©g–%ïÝ`ϯÍ:ñ¦£ùÎß— üÿ:¯úüµŸŸÿÎùÛâÕËÊóZï¼wÔ¨þú$hÕ(jÕaOgÓ—±/;yÖùœöÎOÝõâÊ{»Ñ”zŸ{bî M=SëÍ_uÏ艓§LìyaîSO¿èl³Ö<žË&¼ò}W~ó-3>ì²GûÖÿÇ‹¯9þ²ƒŽ¾aþŠÞ1ëô.]¸¼¿õü¥ã^~Ìe¿ã¿=ø’úã*Ü-5Ú…eÙÒè—¼ãç|pûxvÝ©ÿrÞ‡?÷ã' ¾˜÷¬÷ú/ÎúÄÇüµ–Ôþg÷ó®>ýÎ÷tÁÃK×4%íw>oý¹ôÒ=Î:ècwö¿üß8sÏ_¶ïçïí}å™Wž~ã±Gýpnñ¾eM·´xüË:óÜ#'?þಗlµèú~ä›Z°¢g¨WöÛþÝ>úÍÏìºø¾G—®7eÜÿþÛ{¿¾º™ti~<Çïxæ¾´ôÃïüÔÝ/ŽÝöÔY_™pæ¡Ÿûí³}9çÿ×iá‡öýìÝ‹ • ¹ÝÒ.ÞeÞ½ diÝóåïnqÆû›»¥Çpé%oüΑùù¼¾µ6Ýöüæ¡'ÿïóߨ¿ãgfý×’“öÿ½K6|ËŒ«¦ßpä‘W>¾¼Ñ“ y緬̕_™xÚ!ç/{×wÏßiÜ¢Û?|ÄwGŸpåž=ላî`èÒè–þ:éè+/ÝíÂC?ôã¹ýë¿ñŒ«NêžóàÆCÜø·µVvë¶\ýž <þæç³±VO‘ÐÓêÇóú³žûøû.þûZ[¼åÄ/¾ì¾óƒ³çÚlßÏ^øá]'νöÃÓÏ¿õù½ã¶|ͽ¹õÁEcw<ëçŽúÖ×?9jÓÝŽþÐw~øð³ÿ¼°ú7(@¾Ünéú/¾xÆ)—=RkDú^|fƒO\~RS·tôm;\ü£Ï/øùwôN|ÕÛ^ùûwüÕ¢“–ZËrʬ¯oøñý>ýØ[/¾âÀ+9ö'Ó¡UÝÒ0wþØÖ¿ê?üà) ?wÖFßøÅÞï›wê§Öûòù[~ü /ÜÛÉÌeu·ôéGwùöµÇ_¼ÿ‘+ßT\ç5߸îôŽ<ü/¿¸íÆÃf-ܹÞ-ýnÜÁß¼ì=kÿñç¿úÝï~uÃx¡ðHk û¼d·çæ<±xéÂÇîœýo\uÛóÙ”ý.ùöÞ3úäÓG~óÌWýòÄ÷ëþmÎøþÉ¿<úØŸÏ«uK?úÖ¶·ÿêîÅ·Ýýåœuä¿ýèÉå|• #~'îèÛvºô'ÿúSÿù§õyÇŠ%ß}÷c‹ ˆÖÞò¸ï_°ãO¼ù„¯üãù‡|ð×ϬȚº¥¡ï|ükν┛.zaÿ—~ñøìû­Ì¹vÂq»œwÐ)·.ìäk.Ó-ÕnµÎV¯Þã oxó>½zÎGþÌž/ö%·åÀ¾ÜWíºÿÕ»õx¶ÁO½ðsÛÝø½oÚiÖ{NþŸ§W4?f껿sÁ.;ü}?x²øû #Ï-Ý8îï}g¯«ÞýÁYø®úQã6µ¤“¨w¶Öf‡|ïÊ£_X>zþiûôõ¶¨ñNÜÐwÞ»á[/¼î“S^¸éô?vÿ˾ðý³wÿØçxÏ/Ÿîè{Ś߉»â’].8ì„ŸÎí_ÿϸ꣫މk¿±ñNÜo¯;jÉó_æØí>9댧>p茇Š}¨ÀPÝÒè—9ó{ÿôƒ÷÷Ýû÷Þâ]ß›õÑ)¿:ö_OÿÃóýƒÎïYçÕŸ½êÌe§íÿŸw¼À{q„U&å½öïøØ—N|ÝŠþþÂØÉ›öÜxâ{¾©­¸Qïsé>¿ùŽø—ÏÞµ¨~Óš”÷Ðw>jÓƒ¯úáIOŸøÏÇÝøÜÄ7ÎøÙ—7<ç_¹òñÎ&.ƒSÞg÷®ÉO<Ü·ùK^ÿÑS¾±*åÝvãªÂŽ¹ýUç]vÚÆ?0¯ÒË6šóõ÷òLL Õ-e=c·>à“çž´köÀß—¬·Iv÷u?^¾ÏÑ}ÿø“gÞß»Cóù­åeû\}ø±W?ÎÛqUú³¼G­³É¦Œ^üôóŠGxlÜyã/7iàÃjaŸãƺÞ1ëOž¼nÏóO>þìÒJ==k­7yʺ}Ï þ `?ù Ý@º%€ˆuKä–šï™ÜR’*ì–².È-hÁ¦êƒX·Ô|‹Ä'³%'v fKi<±XØT}ì–„®8É-9±°[TÞ-UþÜóJtŠ ØÁ¦êƒd·T'qÅÉlɉ…Ý‚ÙROl 6Uĺ%¹+NrKN,ì䖧Ȁlª>ˆuKÍ·H\q2[rba·`¶”ƈ…MÕÉnI芓ܒ »¹%Å)2`›ª’ÝRÄ'³%'v fKi<±XØT}ë–ä®8É-9±°[[Rœ"v°©ú Ö-5ß"qÅÉlɉ…Ý‚ÙROl 6U$»%¡+NrKN,ì䖧Ȁlª>HvKuWœÌ–œXØ-˜-¥ñÄbaSõA¬[’»â$·äÄÂnAnIqŠ ØÁ¦êƒX·Ô|‹Ä'³%'v fKi<±XØT}ì–„®8É-9±°[[Rœ"v°©ú Ù-ÕI\q2[rba·`¶”ƈ…MÕ‡5ÝÒs“6Ž]Lž©‹Ï?¶þký–‰óæ6jnÿ]#j%Õ~mTÕ\aãxde·ÿñÚ²Ñøu›ï¿ù¯6«ùßYuˆ¿çžWõ²›Í_´ öÄn¹‘n Ý’Ì–üb¶äÄÂnÁl)'6 ›ªƒº¥iӧϞ1£þÖŽ;Í-Y¨¹v\»P.žéèþ æ–æŒkáqÈ9>Ðüs/ðñÄysëÿŽfŸ{^É-%Ñ-ùÀlÉ/fKN,ìÌ–M^ý–Æ;q–¿Ÿ°ƒMÕ‡!º%;W™ÍÇů8íÔœþÌ›L€Ú'9Ÿ·ýqÈ9>Ðüs/ðñ+C„–Ÿ{^é–€’è–|`¶ä³%'v fKtK@lª>[ò{LnÉyLn©å˜ÜR}Nœ­ÖÜ-‘[œè–|`¶ä³%'v fKÌ–€2ØT} ·ä÷˜Ü’ó˜ÜRË1¹%º%  º%˜-ùÅlɉ…Ý‚ÙROl 6Uj¹%Çä–œÇä–ZŽÉ-ñyK@tK•ë¯a¶ä³%'v fKi<±XØT«µ²SâçÄyÆωsâçĵàçĵÜÂω:B·T­z·4è¸Ø%å½âd¶äÄÂnÁl)'6 ›j…V –D߉+’[2¢9BäÌŽtzÏYÜ’µ¤ »EåÝRåÏ=¯È-%±©V¨¿¿ŸÙRÌ–œXØ-˜-¥ñÄbaS­ÊšÁ’ÜlIàgޔ閊|Þ’e,ìvK™ŸçžW¢SdÀ6Õª4wKÌ–üb¶äÄÂnÁl)'6 ›jUú›HvKBWœä–œXØ-È-)N‘;ØT«"ß-ÕI\q2[rba·`¶”ƈ…MµƒÞ†«Ñê–ä®8É-9±°[[Rœ"v°©V¢°¾+”º¥æ[$®8™-9±°[0[J㉠ĦZ‰AoÃÉÍ–š%®8É-9±°[[Rœ"v°©V¢¹Ub¶ä³%'v fKi<±XØT+ÑÜ*Õ~ë–ä®8É-9±°[[Rœ"v°©V¢¹Ub¶ä³%'v fKi<±XØT+ÑÜ-éÍ–š%®8É-9±°[[Rœ"v°©V¢y°Tûuy_Ÿ^·T'qÅÉlɉ…Ý‚ÙROl 6ÕJ4–ôfKrWœä–œXØ-È-)N‘;ØT+ÑÒ-1[ò‹Ù’ »³¥4žØ@,lª•X1˜Øl©ùX⊓ܒ »¹%Å)2`›j%Rè–ê$®8™-9±°[0[J㉠ĦZ‰A­RV·$wÅInɉ…Ý‚Ü’â°ƒMµ¼5?ðde«ÄlÉ;fKN,ìÌ–Òxb±°©–×Þ-I¦¼…®8É-9±°[[Rœ"v°©–×è–V –äÞ‰k¾E⊓ْ »³¥4žØ@,lªå5v@½[›-É]q’[rba· ·¤8Eì`S-oÐçR¶¼»6Pº¥’†í–zbW攓½°|Å2·äur x±¢Xs…’É-µ\éH’è"Z¶)‰tKeÎ ,dn©ª{’âòS¬¹B, $Ñ=D´lSZº¥5¹%•nIîŠ3dn©ý8«nr ¸ük®P2¹¥ücÀÑ=D´lSZ?lI®[*N`Ì–"R¬¹B, $Ñ=D´lSé–„®8É-E¤Xs…È-%‰î!¢e›’H·TæœÀ˜-E¤Xs…X2@I¢{ˆhÙ¦ÈwKrWœä–"R¬¹Bä–€’D÷ѲM‘ï–ÊŸ³¥ˆk®K(It-Û”Dº%¡+NrK)Ö\!rK@I¢{ˆhÙ¦$Ò-•9'0fK)Ö\!– P’è"Z¶)òÝ’Ü'¹¥ˆk®¹% $Ñ=D´lS以òçÆl)"Åš+Ä’JÝCDË6%‘nI芓ÜRDŠ5WˆÜP’è"Z¶)‰tKeÎ ŒÙRDŠ5Wˆ%”$º‡ˆ–mŠ|·$wÅIn)"Åš+Dn (It-Ûùn©ü91[ŠH±æ -±d€’D÷ѲMI¤[ºâ$·‘bÍ"·”$º‡ˆ–mJ"ÝR™sc¶‘bÍbÉ%‰î!¢e›"ß-É]q’[ŠH±æ -‘[JÝCDË6E¾[*N`Ì–"R¬¹B, $Ñ=D´lSé–„®8É-E¤Xs…È-%‰î!¢e›’H·TæœÀ˜-E¤Xs…X2@I¢{ˆhÙ¦ÈwKrWœä–"R¬¹Bä–€’D÷ѲM‘ï–ÊŸ³¥ˆk®K(It-Û”Dº%¡+NrK)Ö\!rK@I¢{ˆhÙ¦$Ò-•9'0fK)Ö\!– P’è"Z¶)òÝ’Ü'¹¥ˆk®¹% $Ñ=D´lS以òçÆl)"Åš+Ä’JÝCDË6%‘nI芓ÜRDŠ5WˆÜP’è"Z¶)‰tKeÎ ŒÙRDŠ5Wˆ%”$º‡ˆ–mŠ|·$wÅIn)"Åš+Dn (It-Ûùn©ü91[ŠH±æ -±d€’D÷ѲMI¤[ºâ$·‘bÍ"·”$º‡ˆ–mJ"ÝR™sc¶‘bÍbÉ%‰î!¢e›"ß-É]q’[ŠH±æ -‘[JÝCDË6E¾[*N`Ì–"R¬¹B, $Ñ=D´lSé–„®8É-E¤Xs…È-%‰î!¢e›’H·TæœÀ˜-E¤Xs…X2@I¢{ˆhÙ¦ÈwKrWœä–"R¬¹Bä–€’D÷ѲM‘ï–ÊŸ³¥ˆk®K(It-Û”Dº%¡+NrK)Ö\!rK@I¢{ˆhÙ¦$Ò-•9'0fK)Ö\!– P’è"Z¶)òÝ’Ü'¹¥ˆk®¹% $Ñ=D´lS以òçÆl)"Åš+Ä’JÝCDË6%‘nI芓ÜRDŠ5WˆÜP’è"Z¶)‰tKeÎ ŒÙRDŠ5Wˆ%”$º‡ˆ–mŠ|·$wÅIn)"Åš+Dn (It-Ûùn©ü91[ŠH±æ -±d€’D÷ѲMI¤[ºâ$·‘bÍ"·”$º‡ˆ–mJ"ÝR™sc¶‘bÍbÉ%‰î!¢e›"ß-É]q’[ŠH±æ -‘[JÝCDË6E¾[*N`Ì–"R¬¹B, $Ñ=D´lSé–„®8É-E¤Xs…È-%‰î!¢e›’H·TæœÀ˜-E¤Xs…X2@I¢{ˆhÙ¦ÈwKrWœä–"R¬¹Bä–€’D÷ѲM‘ï–ÊŸ³¥ˆk®K(It-Û”Dº%¡+ÎZIsž[;˜:eqý ý8#·ä‡bÍ"·„$õ{¹êï¯àïÝCDË6%‘n©Ì9Õ»¥Ù³gÔÿwÚ´éíÇÌ–sŽ›—_™û y,Qó@ç±z0Ðü²7è¸éœâ÷?uÑbOϽB5ô%¼þbNÍ)rô»0Çõ‡:ÿqκl¶Dn)ŸhÙ¦[ -­‘i¡‘)!·ä‰DÍõ9Í€©m¿7gõA‰¶ÃGn©PÍåÊøÓ+›¹A÷ýÄêwí}+Ÿ?þž!õ«b'S/¹¥DË6…ÜRh ÐiŒ2 úä +öyKå¯tëËÏÈÕvJ5gM“ƒÍ·7†:#›>æ|ÞÒž{Ej8(÷bû’i¯¿ÓÇDñxÍ>}ˆæ¦ý‰Q\û…qû±µ‚ŒÜR¢e›Bn)´N·þÜsÉs -R\~5O[âµpu6¨dÛá/·”Ssɲo6kä™ ®tZÚ¦f%ßôlI\ ™3öB‘[*@´lSÈ-…æÜúÉ-ù;–¨¹àä 3™[Ê«¹tn©ý·y¦®Í-µhŸ>v$ªÔ~l¹%'ѲM!·¹¥ˆ$jö79ðš[rÖ\Ÿ<ùx'nÄe‹ò7}r€dü²9#·T€hÙ¦[ -ÜRÄc‰š3rKƒ‘[j9.8}q·Dn)‡hÛ!Z¶)ä–Bãó–"’¨yŸ·4TÙ|ÞRÚ¶©êÏ["·ä$±‡´-ÛrK¡ñyK%jžÆç- Æç-åLò†{œ3rKä–šˆ–m -¹¥Ðø9qIÔìor"·”ÿ&N¹‘XÎý\éþø›>’[r’ØCÚ‰–m -¹¥Ðø9q)Ö\!~N\W!·”‘[ZM´lSÈ-…æïêÙ’“DÍþ²#sKjqÙ¢/áþøÛCÈ-9Iì!íDË6…ÜRhþ¶þ‚¹%º¥ØU8øËŽt”™óQsÖM/áþøÛCÈ-9Iì!íDË6…ÜRh&%Ï)HqùIÔìuúè+·T æn{ ÷ÇßBnÉIbi'Z¶)ä–Bó=9Èr'mÙˆ&CR\~5‡™>7a*Ó-9ŸÏ]õî¿=DôMOrKN¢e›Bn)4rKIÔLn©ýÎ_Âý!·Ô‚Ü’“hÙ¦[ -ÜRD5“[j¿óLð%ÜrK-È-9‰–m -¹¥ÐÈ-E$Q3¹¥áî¼àqòÈ-µ ·ä$Z¶)ä–B#·‘DÍä–†¼óáî3³ú䖜DË6Åzné˜c†ø±‘U¹ôÒkžÜRD5›Í-y]ŒÙðëQô%ÜrK- -æ–nº©³»Ýu×!n”ØCÚ‰–mŠõÜRmƒ3æÅ%KÆÕ~­ßRáqÄn‰ÜR5›Í-ÕcVé,²E_Âý!·Ô¢`n©Ö-5 ›o^u|ðôc>rì¥í·7ZHì!íDË6Åzn©±AgUïÑ»¥ŒÜR$5›Í-ÕgKá×£èK¸?ä–ZÌ-Õ»¥æ6(§gʘ-a0ë¹¥TgKÅ‹#·ä$Q³ÙÜRÄÙ’âK¸?ä–ZÌ- 9[ʆ陘-¡…@n)½Ù¹¥X$j6ž[Š5[’{ ÷‡ÜR‹â¹¥áfKY[Ï”1[Â`ä–B#·‘DÍä–ÚLð%ÜrK-Êä–†;f¶„ä–B#·‘DÍä–Zˆ¾„ûCn©EñÜÒ—.:ÓÝ~œ1[Â`ä–B#·‘DÍä–†|@†|Ç™½—pÈ-µè4·4Ü÷ÁeÌ–0ï¹7Õh·Äç-å-Û”¼ÙRcÙÔ—GÄn)½ÙRñãâÈ-9IÔ=·4güØÆJo^õ¾sKŽÉ†ü{§µíE9ÇÃýÙ”Ž‹<#{L²•s£üûÌLΖ2>o)—hÙ¦¸ß‰r]“äl‰ÜR,5˜>¶¿%×Þ6µ#·d„ÇÜRmÛŸ“ÕßIhý½9«î0Ê A>>oÉI´lSŠvK±°©Î–È-E!Q³ïéã´ÕŸ«Ô¬ùöUSÛ"Ì÷ĵÿ½õ×þü J{Z áãU Mþh¨æÆ=µjŒ—†Ï­Zî–ø¼¥áˆ–mJ¡n‰ÜR…È-E$Qs€ÜRûl©‘g"·d_ˆÜR[·÷²9Ÿ·ä$Z¶)¾'nNFn©Bä–"’¨9ÀôqÈoŽ#·¤r&·Ô¢ùvƒÝRÆç-å-ÛrK¡‘[ŠH¢frK-È-µ ·Ô‚Ï[r-ÛrK¡‘[ŠH¢frKä–òÉ-µàó–œDË6…Ï[ -ÜRD5È- yŸä–T„È-ñyKÌ–0Ÿ·¹¥ˆ$j3}œÆç-ɇÉ- ;µÒÏ-e|Þ:×Éωc¶TrKIÔ`ú˜óÜ#·d_€ÜÒ÷™Xn)ãó–Ð ~N\hä–"’¨Ùëô±Èiüœ8ä3Û-ñyKÃ-Û”NrK1®Þ’œ-eä–"‘¨Ùãä ÜsÜ’sKÞž{^ñyKN¢e›âx'.+½üJJu¶Tü¸8rKN5û›>–|î…ùž¸œ²µ^Âýñ·‡ˆ¾éÉç-9‰–mJ'¹%fKU ·‘DÍf'ä–Œ0;}Œ…Ï[r-Û”¼nÉÂÕ[ª³%rKQHÔlvrq¶” ¾„ûcvú Ÿ·ä$Z¶)ä–B#·‘DÍf'ä–Œ0;}Œ…Ï[r-ÛrK¡‘[ŠH¢f³“rKF˜>ÆÂç-9‰–m -¹¥ÐÈ-E$Q³Ùɹ%#ÌNcáó–œDË6…ÜRhä–"’¨Ùìä€Ü’f§±ðyKN¢e›"[òwçä–ÊP\~5›x]ŒÙðëQô%ܳÓÇXŠç–:B·„fÖsK9ê/ü9–ß5‚ÜRD5+NŠÔ\òÎókÎ콄ûcvúKÁÜRãÆ2$öv¢e›b=·”#ð(¥*ä–"’¨YqrP¤æ’e˽„ûcvúKÁÜÝRì*´YÏ-åÈŸ*µAn)"‰š'kκé%ÜŸèÿŽÖꂹ%º¥ØUh³ž[Ê¡;[ÊÈ-E"Q³âä HÍÝöîâôÑ«‚¹%º¥ØUh#·¹¥ˆ$jVœ[ -Iqúè¹%'ѲM!·¹¥ˆ$jVœ[ -Iqúè¹%'ѲM!·¹¥ˆ$jVœ[ -)ú¿£µ‡šÜ’“hÙ¦[ -ÜRD5+NÈ-…¤8}ôŠÜ’“hÙ¦[ -ÜRD5+NÈ-…¤8}ôŠÜ’“hÙ¦[ -ÜRD5+NÈ-…¤8}ôŠÜ’“hÙ¦[ -ÜRD5+NÈ-…ýßÑÚCMnÉI´lSÈ-…Fn)"‰š'ä–BRœ>zEnÉI´lSÈ-…Fn)"‰š'ä–BRœ>zEnÉI´lSÝR½U"·ä¹¥ˆ$jVœ[ -Iqúè¹%'ѲMié–j¿’[ò‹ÜRD5+NÈ-…ýßÑÚCMnÉI´lS†í–È-yBn)"‰š'ä–BRœ>zEnÉI´lSòfKuf¯ÞÈ-µ ·ä$Q³âä€ÜRHŠÓG¯È-9‰–mJs·Äç-…@n)"‰š'ä–BRœ>zEnÉI´lSúWjþž¸ÚÈ-yDn)"‰š'ä–BŠþïhí¡&·ä$Z¶)n‰ÜR ä–"’¨Yqr@n)$Åé£Wä–œDË6¥½[Z3[ª3{õFn©¹%'‰š'ä–BRœ>zEnÉI´lkZrKƒº%ËWoº³%O[?³%'‰š'ä–BRœ>zEnÉI´lkV FnÉ/rKIÔ¬89 ·RôGk5¹%'Ѳ­º["·ä ¹¥ˆ$jVœ[ -Iqúè¹%'Ѳ­©uHÍŸ#Àç-ùEn)"‰š'ä–BRœ>zEnÉI´lkZº%rK~‘[ŠH¢fÅɹ¥§^‘[r-ÛšF·Tÿ•Ÿç¹¥ˆ$jVœ[ -)ú¿£µ‡šÜ’“hÙÖ4·Jä–¼#·‘DÍŠ“rK!)N½"·ä$Z¶5ÍÝRíW>oÉ/rKIÔ¬89 ·’âôÑ+rKN¢e[Óø€ÊU?…Ü’Wä–"’¨Yqr@n)$Åé£Wä–œD˶¦µÖÙ’ñ«7rK-È-9IÔ¬89 ·RôGk5¹%'Ѳ­éo²beÇDnÉ#rKIÔ¬89 ·’âôÑ+rKN¢e[Ó?¹%¿È-E$Q³âä€ÜRHŠÓG¯È-9‰–mMÿÊçPël‰Ü’'ä–"’¨Yqr@n)$Åé£Wä–œDË6hЛqnÉøÕ¹¥ä–œ$jVœ[ -)ú¿£µ‡šÜ’“hÙ Ñ-‘[ò„ÜRD5+NÈ-…¤8}ôŠÜ’“hÙ z3®ù¸ÌðÕ¹¥ä–œ$jVœ[ -Iqúè¹%'Ѳ jî–jGä–<"·‘DÍŠ“rK!)N½"·ä$Z¶M«;¥ŒÜ’_ä–"’¨Yqr@n)¤èÿŽÖjrKN¢eÛ´f¼TŸ-‘[ò„ÜRD5+NÈ-…¤8}ôŠÜ’“hÙfµÎ–êÌ^½‘[jAnÉI¢fÅɹ¥§^‘[r-Û¬Uã%rK^‘[ŠH¢fÅɹ¥§^‘[r-Û²A)oãWoä–Z[r’¨Yqr@n)¤èÿŽÖjrKN¢eÇç-ùEn)"‰š'ä–BRœ>zEnÉI´lã½—¾z#·Ô‚Ü’“DÍŠ“rK!)N½"·ä$Z¶qä–ü"·‘DÍŠ“rK!)N½"·ä$Z¶qä–ü"·‘DÍŠ“rK!Eÿw´öP“[r-Û8>oÉ/rKIÔ¬89 ·’âôÑ+rKN¢eGnÉ/rKIÔ\Arq·ñž½Þ¹©ÝÉ«èÿŽÖjrKN¢eGnÉ/rK)Ö ¹%'Ѳ#·ä¹¥ˆkÜ’“hÙÆ‘[ò‹ÜRDŠ5ÈGnÉI´lãÈ-ùEn)"Åšä#·ä$Z¶qä–ü"·‘bÍò‘[r-Û8rK~‘[ŠH±fùÈ-9‰–m¹%¿È-E¤X3€|ä–œDË6ŽÜ’_ä–"R¬@>rKN¢eGnÉ/rK)Ö ¹%'Ѳ#·ä¹¥ˆkÜ’“hÙÆ‘[ò‹ÜRDŠ5ÈGnÉI´lãÈ-ùEn)"Åšä#·ä$Z¶qä–ü"·‘bÍò‘[r-Û8rK~‘[ŠH±fùÈ-9‰–m¹%¿È-E¤X3€|ä–œDË6ŽÜ’_ä–"R¬@>rKN¢eGnÉ/rK)Ö ¹%'Ѳ#·ä¹¥ˆkÜ’“hÙÆ‘[ò‹ÜRDŠ5ÈGnÉI´lãÈ-ùEn)"Åšä#·ä$Z¶qä–ü"·‘bÍ~ò›B§½ýMåÿ*Ñ=D´lãÈ-ùEn)"Åš8Ôº¥•ÐÀéÇŽã’D÷Ѳ#·ä¹¥ˆkà°²[r|7ÜOè–ôÊ6ŽÜ’_ä–"R¬€ÃO~ÓóÏo˜µYu{­O¢[,Û8rK~‘[ŠH±fN¨=ÀÔèè–Ë6ŽÜ’_ä–"R¬€ƒ«["·$Z¶qä–ü"·‘b͹¥ö7ãy&fK‚eGnÉ/rK)Ö ÀÜ’‹hÙÆ‘[ò‹ÜRDŠ5p ·ä"Z¶qkÞ‰kÿ=³Ý’Vn©Èiä–|P¬€ÃÊÙRý°ÿÇÃÓ-Å®"5­ïÄ™%:[ò‡Ù’“bÍø¼%Ѳë–ärKþ[rR¬€C#·”ó)ÞtK‚e'Ö-•?'Ì–œkàÀωs-Û8ÉnI(·ä¹%'Åš84ÏŠ— º‡ˆ–mœd·Tæœd0[rR¬€C‘NˆnI°lãĺ%rK ä–œkàð“¶dRû1Ý’`ÙƉuKåÏI³%'Åš80[r-Û8Én‰ÜRFn©Åš8[r-Û8Én©Ì9É`¶ä¤X3fK.¢e'Ö-‘[j ·ä¤X3rK.¢e'Ö-•?'Ì–œkàÀlÉE´lã$»%rK¹¥kà@nÉE´lã$»¥2ç$ƒÙ’“b͘-¹ˆ–mœX·Dn©Ü’“bÍÈ-¹ˆ–mœX·Tþœd0[rR¬€³%Ѳ“ì–È-eä– -P¬€¹%Ѳ“ì–Êœ“ fKNŠ5p`¶ä"Z¶qbݹ¥rKNŠ5p ·ä"Z¶qbÝRùs’ÁlÉI±fÌ–\DË6N²["·”‘[*@±fä–\DË6N²[*sN2˜-9)Ö ÀÙ’‹hÙƉuKä–È-9)Ö ÀÜ’‹hÙƉuKåÏI³%'Åš80[r-Û8Én‰ÜRFn©Åš8[r-Û8Én©Ì9É`¶ä¤X3fK.¢e'Ö-‘[j ·ä¤X3rK.¢e'Ö-•?'Ì–œkàÀlÉE´lã$»%rK¹¥kà@nÉE´lã$»¥2ç$ƒÙ’“b͘-¹ˆ–mœX·Dn©Ü’“bÍÈ-¹ˆ–mœX·Tþœd0[rR¬€³%Ѳ“ì–È-eä– -P¬€¹%Ѳ“ì–Êœ“ fKNŠ5p`¶ä"Z¶qbݹ¥rKNŠ5p ·ä"Z¶qbÝRùs’ÁlÉI±fÌ–\DË6N²["·”‘[*@±fä–\DË6N²[*sN2˜-9)Ö ÀÙ’‹hÙƉuKä–È-9)Ö ÀÜ’‹hÙƉuKåÏI³%'Åš80[r-Û8Én‰ÜRFn©Åš8[r-Û8Én©Ì9É`¶ä¤X3fK.¢e'Ö-‘[j ·ä¤X3rK.¢e'Ö-•?'Ì–œkàÀlÉE´lã$»%rK¹¥kà@nÉE´lã$»¥2ç$ƒÙ’“b͘-¹ˆ–mœX·Dn©Ü’“bÍÈ-¹ˆ–mœX·Tþœd0[rR¬€³%Ѳ“ì–È-eä– -P¬€¹%Ѳ“ì–Êœ“ fKNŠ5p`¶ä"Z¶qbݹ¥rKNŠ5p ·ä"Z¶qbÝRùs’ÁlÉI±fÌ–\DË6N²["·”‘[*@±fä–\DË6N²[*sN2˜-9)Ö ÀÙ’‹hÙƉuKä–È-9)Ö ÀÜ’‹hÙƉuKåÏI³%'Åš80[r-Û8Én‰ÜRFn©Åš8[r-Û8Én©Ì9É`¶ä¤X3fK.¢e·ª[:è€ýcW€ÃÕï=éÀ Ï«ÿÚ|Ëp¿Ûè–*·¦[2þà¶IÚÛgfK#8ÝCôŠS´løp¶$Š%ãƒd·T?®?!È-5þ×kn ÝCEˆ/sK¢X2>HvKuÌ–˜-¡#¢{¨hÙð…Ù’ KƱn©ùå¿ù Áç-µÜ˜UýyKH€è*Z6| øyK¢X2>ˆuKÍ·0[b¶„Žˆî¡¢eÃfK.,$»%rK¹%tNt-¾[raÉø Ù-Õ1[b¶„Žˆî¡¢eÃfK.,ĺ%rK ä–Ð)Ñ=T´løBnÉ…%ãƒX·Ô| ³%fKèˆè*Z6|a¶äÂ’ñA²["·”‘[BçD÷PÑ²á ¹%–Œ’ÝR³%fKèˆè*Z6|a¶äÂ’ñA¬["·Ô@n ÝCEˆ/ä–\X2>ˆuKÍ·0[b¶„Žˆî¡¢eÃfK.,$»%rK¹%tNt-¾[raÉø Ù-Õ1[b¶„Žˆî¡¢eÃfK.,ĺ%rK ä–Ð)Ñ=T´løBnÉ…%ãƒX·Ô| ³%fKèˆè*Z6|a¶äÂ’ñA²["·”‘[BçD÷PÑ²á ¹%–Œ’ÝR³%fKèˆè*Z6|a¶äÂ’ñA¬["·Ô@n ÝCEˆ/ä–\X2>ˆuKÍ·0[b¶„Žˆî¡¢eÃfK.,$»%rK¹%tNt-¾[raÉø Ù-Õ1[b¶„Žˆî¡¢eÃfK.,ĺ%rK ä–Ð)Ñ=T´løBnÉ…%ãƒX·Ô| ³%fKèˆè*Z6|a¶äÂ’ñA²["·”‘[BçD÷PÑ²á ¹%–Œ’ÝR³%fKèˆè*Z6|a¶äÂ’ñA¬["·Ô@n ÝCEˆ/ä–\X2>ˆuKÍ·0[b¶„Žˆî¡¢eÃfK.,$»%rK¹%tNt-¾[raÉø Ù-Õ1[b¶„Žˆî¡¢eÃfK.,ĺ%rK ä–Ð)Ñ=T´løBnÉ…%ãƒX·Ô| ³%fKèˆè*Z6|a¶äÂ’ñA²["·”‘[BçD÷PÑ²á ¹%–Œ’ÝR³%fKèˆè*Z6|a¶äÂ’ñA¬["·Ô@n ÝCEˆ/ä–\X2>ˆuKÍ·0[b¶„Žˆî¡¢eÃfK.,$»%rK¹%tNt-¾[raÉø Ù-Õ1[b¶„Žˆî¡¢eÃfK.,ĺ%rK ä–Ð)Ñ=T´løBnÉ…%ãƒX·Ô| ³%fKèˆè*Z6|a¶äÂ’ñA²["·”‘[BçD÷PÑ²á ¹%–Œ’ÝR³%fKèˆè*Z6|a¶äÂ’ñA¬["·Ô@n ÝCEˆ/ä–\X2>ˆuKÍ·0[b¶„Žˆî¡¢eÃfK.,$»%rK¹%tNt-¾[raÉø Ù-Õ1[b¶„Žˆî¡¢eÃfK.,ĺ%rK ä–Ð)Ñ=T´løBnÉ…%ãƒX·Ô| ³%fKèˆè*Z6|a¶äÂ’ñA²["·”‘[BçD÷PÑ²á ¹%–Œ’ÝR³%fKèˆè*Z6|a¶äÂ’ñA¬["·Ô@n ÝCEˆ/ä–\X2>ˆuKÍ·0[b¶„Žˆî¡¢eÃfK.,ÖtKÏMÚ8v1y¦.ZÜrËüE 6¿nËÝÓ[B§D÷PѲí›6mz‘ÓfÏžá»’Î[raÉøÀlI³%tJt-Û¾Z·Tï„íÇ™ñn©Ì9ébÉø0D·4múôÙ3fX;&·Ô‚Ü:%º‡Š–m_½1Êi•Z~× -rK.,ôfKõ& kz'Îò'ø›u×¾Ø9OŒÍ?gê”ÅÖE==EÏìï÷YGi¢{¨ý²½¾¥åïÎ[FGC¶Mv»¥òç´)¸Ò/óLaÉ(Ô-Ù™$µëvKž®ÞšGGµ{h4FÍÇEµ=´¾?6† Š -^qfæ·QÑ=Ô~Ù^Û{¹¥E¦Èö/Š2…%£ˆÜ’_ä–@n).ûe“[ -ŠÜ’‹ý%£ˆÙ’_ä–@n).ûe“[ -ŠÜ’‹ý%£H/·¤õyKä–@n).ûe“[ -ŠÜ’‹ý%£Ho¶Ô ñYÞä–@n).ûe“[ -ŠÜ’‹ý%£H/·Ô8®?!†û$k#È-%€ÜR\öË&·¹%ûKF?U×/rK ·—ý²usKEN3Ý-•9§ ¹%äy'®Ä‚ÜRÈ-Åe¿lÑÜ’*rK.ö—Œ"º%¿È-%€ÜR\öËÍ-©"·äbÉ(¢[ò‹ÜRÈ-Åe¿lÑÜ’*rK.ö—Œ"º%¿È-%€ÜR\öËÍ-©"·äbÉ(¢[ò‹ÜRÈ-Åe¿lrKA‘[r±¿dÑ-ùEn)ä–â²_6¹¥ È-¹Ø_2Šè–ü"·”rKqÙ/›ÜRPä–\ì/EtK~‘[J¹¥¸ì—Mn)(rK.ö—Œ"º%¿È-%€ÜR\öË&·¹%ûKFÝ’_ä–@n).ûe“[ -ŠÜ’‹ý%£ˆnÉ/rK ·—ý²É-EnÉÅþ’QD·ä¹¥[ŠË~Ùä–‚"·äbÉ(¢[ò‹ÜRÈ-Åe¿lrKA‘[r±¿dÑ-ùEn)ä–â²_6¹¥ È-¹Ø_2Šè–ü"·”rKqÙ/›ÜRPä–\ì/EtK~‘[J¹¥¸ì—Mn)(rK.ö—Œ"º%¿È-%€ÜR\öË&·¹%ûKFÝ’_ä–@n).ûe“[ -ŠÜ’‹ý%£ˆnÉ/rK ·—ý²É-EnÉÅþ’QD·ä¹¥[ŠË~Ùä–‚"·äbÉ(¢[ò‹ÜRÈ-Åe¿lrKA‘[r±¿dÑ-ùEn)ä–â²_6¹¥ È-¹Ø_2Šè–ü"·”rKqÙ/›ÜRPä–\ì/EtK~‘[J¹¥¸ì—Mn)(rK.ö—Œ"º%¿È-%€ÜR\öË&·¹%ûKFÝ’_ä–@n).ûe“[ -ŠÜ’‹ý%£ˆnÉ/rK ·—ý²É-EnÉÅþ’QD·ä¹¥[ŠË~Ùä–‚"·äbÉ(¢[ò‹ÜRÈ-Åe¿lrKA‘[r±¿dÑ-ùEn)ä–â²_6¹¥ È-¹Ø_2Šè–ü"·”rKqÙ/›ÜRPä–\ì/EtK~‘[J¹¥¸ì—Mn)(rK.ö—Œ"º%¿È-%€ÜR\öË&·¹%ûKFÝ’_ä–@n).ûe“[ -ŠÜ’‹ý%£ˆnÉ/rK ·—ý²É-EnÉÅþ’QD·ä¹¥[ŠË~Ùä–‚"·äbÉ(¢[ò‹ÜRÈ-Åe¿lrKA‘[r±¿dÑ-ùEn)ä–â²_6¹¥ È-¹Ø_2Šè–ü"·”rKqÙ/›ÜRPä–\ì/EtK~‘[J¹¥¸ì—Mn)(rK.ö—Œ"º%¿È-%€ÜR\öË&·¹%ûKFÝ’_ä–@n).ûe“[ -ŠÜ’‹ý%£ˆnÉ/rK ·—ý²É-EnÉÅþ’QD·ä¹¥[ŠË~Ùä–‚"·äbÉ(¢[ò‹ÜRÈ-Åe¿lrKA‘[r±¿dÑ-ùEn)ä–â²_6¹¥ È-¹Ø_2Šè–ü"·”rKqÙ/›ÜRPä–\ì/EtK~‘[J¹¥¸ì—Mn)(rK.ö—Œ"º%¿È-%€ÜR\öË&·¹%ûKFÝ’_ä–@n).ûe“[ -ŠÜ’‹ý%£ˆnÉ/rK ·—ý²É-EnÉÅþ’QD·ä¹¥[ŠË~Ùä–‚"·äbÉ(¢[ò‹ÜRÈ-Åe¿lrKA‘[r±¿dÑ-ùEn)ä–â²_6¹¥ È-¹Ø_2Šè–ü"·”rKqÙ/›ÜRPä–\ì/EtK~‘[J¹¥¸ì—Mn)(rK.ö—Œ"º%¿È-%€ÜR\öË&·¹%ûKFÝ’_ä–@n).ûe“[ -ŠÜ’‹ý%£ˆnÉ/rK ·—ý²É-EnÉÅþ’QD·ä¹¥[ŠË~Ùä–‚"·äbÉ(¢[ò‹ÜRÈ-Åe¿lrKA‘[r±¿dÑ-ùEn)ä–â²_6¹¥ È-¹Ø_2Šè–ü"·”rKqÙ/›ÜRPä–\ì/EtK~‘[J¹¥¸ì—Mn)(rK.ö—Œ"º%¿È-%€ÜR\öË&·¹%ûKFÝ’_ä–@n).ûe“[ -ŠÜ’‹ý%£ˆnÉ/rK ·—ý²É-EnÉÅþ’QD·ä¹¥[ŠË~Ùä–‚"·äbÉ(²Õ-sÌôâ'/\0wu7.~þ¥—FØMÈ-% ;sKŸÍnöZ̧³] žië'·T±ÜÒÍvÖ-íº+¹%ä1×-óbýxÉ’qùÇóç-¬uKϯý·["·¤«;sKµn©xCÓéùlë'·T±ÙR­[Úu×_Ý|ó[j¿ÖoË9Κº%õ7Ü3…%£Èb·äì“êÇ ÌÝhÒ:ùç4Gì–È-IëÎÜR½¡ñÔ3¥×-eä–‚)–[ªwKõÿsöL+È-!Ån©~œÌl)#·$®;sKÍ Må=Szݹ¥p<Ï–êtßpÏ–Œ"‹ÝRz³¥âÇÅ‘[ -¦ksK- M…=SªÝ¹¥ -ç–F0["·„áXì–êÇÉÌ–È-©#·TäöŽî'Én‰ÜR ä–\ì/E»¥ôfKä–¤usnid¿ërKA‘[r±¿d‘[J!·ÄωóŠÜÒp·tz#»+û[?¹¥ È-¹Ø_2Š˜-ù ·4ä}’[ª¹¥"·wt?IvKä–!·äbÉ(ZÓ-Ùù©ºþfK)™ºh`tÔòÝp-ÇüTÝJtsnid¿ëo)jªÄç-U¨›sK|ÞRä–‚"·äbÉ(²Ø-Õ“™-eä–Ä‘[âó–ò‘[ -ŠÜ’‹ý%£Èb·”Þl©øqqä–‚!·4Ü-ÞÃÈîÊþÖOn)(rK.ö—Œ"‹ÝRý8™Ù¹%uä–ŠÜÞÑý$Ù-‘[ -„Ü’‹ý%£Èb·”Þl‰Ü’´nÎ-ìwç§×-eä–‚!·äbÉ(2×-?¹Ö-­³nŸ¨In #Óµ¹%¯Å$Ö-‘[ -§ðl©£{%·„|¶º¥ŽH§ ¹%ä [ò‹ÜRÈ-Åe¿lѶƒÜR rKÈA·ä¹¥[ŠË~Ù¢m¹¥ä–ƒnÉ/rK ·—ý²EÛrK-È-!Ý’_ä–@n).ûe‹¶¢o ’[r²¿dÑ-ùEn)ä–â²_¶hÛ!ú"¹%'ûKFÝ’_ä–@n).ûe‹¶¢o ’[r²¿dÑ-ùEn)ä–â²_¶hÛ!ú"¹%'ûKFÝ’_ä–@n).ûe‹¶¢o ’[r²¿dÑ-ùEn)ä–â²_¶hÛ!ú"¹%'ûKFÝ’_ä–@n).ûe‹¶¢o ’[r²¿dÑ-ùEn)ä–â²_¶hÛ!ú"¹%'ûKFÝ’_ä–@n).ûe‹¶¢o ’[r²¿dÑ-ùEn)ä–â²_¶hÛ!ú"¹%'ûKFÝ’_ä–@n).ûe‹¶¢o ’[r²¿dÑ-ùEn)ä–â²_¶hÛ!ú"¹%'ûKFÝ’_ä–@n).ûe‹¶¢o ’[r²¿dÑ-ùEn)ä–â²_¶hÛ!ú"¹%'ûKFÝ’_ä–@n).ûe‹¶¢o ’[r²¿dÑ-ùEn)ä–â²_¶hÛ!ú"¹%'ûKFÝ’_ä–@n).ûe‹¶¢o ’[r²¿dÑ-ùEn)=± ÐÐ_ë„ -èé¼[*Z€§û­ŽÄ‹£º%¿È-% §¾Nœ¹%óۨĒig¿lrKAù›-5-áa×»ùež),EtK~‘[J@O¶j¬ï’=ïüµ¿éOY;>`õ’1ROÁãúJ·SOÎqmÝÝ0{Fþ±…:ëÇ{¯žmçÔ¼÷êÝÉHÍÇ…sK#þ»†]ãMÇ–I¼8Ê¡[ò‹ÜRÖì¡Cý®Ð6*±dÚÙ/›ÜRPÞ¨ý-¹’Ÿ °zŠÜ¾’ÓefK]‹nÉ/rK pvKíµðùÖŽkKfÖ¬kìÔ“Ìq½íÈŸ*Õ—¹š‡«3çØBÍ:ì–ŠßOëßÔdõåÝR×¢[ò‹ÜRr®8ë¿MnÉ+ûe“[ -Êól)êºhè¾Í*ûKFÝ’_ä–wŹRóýÊ;ç˜Ü’ïc¡ MO¹¥vo‰cÇä–<Oãó–`‰Ä‹£º%¿¦­Î-­úß!N܈¶QfKè”Ä’ig¿ìAýÓpŸèM·„Pì/EtK~µçªÂωC§DàšhÙí薆ċ£º% [ˆ.ѲXX2>Ð-ÝBtɈ– ÄÂ’ñn è¢KF´l –ŒtK@·]2¢e±°d| [º…è’-ˆ…%ãÝÐ-D—ŒhÙ@,,è–€n!ºdDËbaÉø@·t Ñ%#Z6 Kƺ% [ˆ.ѲXX2>Ð-ÝBtɈ– ÄÂ’ñn è¢KF´l –ŒtK@·]2¢e±°d| [º…è’-ˆ…%ãÝÐ-D—ŒhÙ@,,è–€n!ºdDËbaÉø@·t Ñ%#Z6 Kƺ% [ˆ.ѲXX2>Ð-ÝBtɈ– ÄÂ’ñn è¢KF´l –ŒtK@·]2¢e±°d| [º…è’-ˆ…%ãÝÐ-D—ŒhÙ@,,è–€n!ºdDËbaÉø@·t Ñ%#Z6 Kƺ% [ˆ.ѲXX2>Ð-ÝBtɈ– ÄÂ’ñn è¢KF´l –ŒtK@·]2¢e±°d| [º…è’-ˆ…%ãÝÐ-D—ŒhÙ@,,è–€n!ºdDËbaÉø@·t Ñ%#Z6 Kƺ% [ˆ.ѲXX2>Ð-ÝBtɈ– ÄÂ’ñn è¢KF´l –ŒtK@·]2¢e±°d| [º…è’-ˆ…%ãÝÐ-D—ŒhÙ@,,è–€n!ºdDËbaÉø@·t Ñ%#Z6 Kƺ% [ˆ.ѲXX2>Ð-ÝBtɈ– ÄÂ’ñn è¢KF´l –ŒtK@·]2¢e±°d| [º…è’-ˆ…%ãÝÐ-D—ŒhÙ@,,è–€n!ºdDËbaÉø@·t Ñ%#Z6 Kƺ% [ˆ.ѲXX2>Ð-ÝBtɈ– ÄÂ’ñn è¢KF´l –ŒtK@·]2¢e±°d| [º…è’-ˆ…%ãÝÐ-D—ŒhÙ@,,ÖtK±+ [ªÜªn©'v6Ñ-ä¡[ÈC·‡n Ý@º%€ùš+ŽÝbtûݼxï™ï2vë­7Z~ßU_8ï÷“?uýwö[÷og~æ²åkßzÝÏÆ~ §[:ö–ƒþó´×éÉF­û;m;æñ»îšsû™§·èà‘4}óo8í]msÞÅïßvÔß/{ßôßï{É—÷¡Wª•²àž?ß³ /Ë–=>ëÓÿñ‹u>xå—'üûÁ_zf¯“Nÿ§õn¿à¬ïúÈ5í;yð?WåH¾Ñ£G/[Ù Ñ-ÒÕ÷Ìo>uÔ¹Þ½ûm=9ý;gïµ²Wê_xçWÎþ鮧œ²Ûú½Î{(ë…?ŸòŽ£oÝñÒ~ùUã–-YúÜ_¾}Üñ—M>ãºóë}Û‚[Žû§÷?ýÞœné¸{>víE{nÔônÙÀTæýOî?²æ oÞ/>ö®[ùëŸwÊÍû]rÎ;6YðÑÂ’û¿¶ÿ!—¯wú5ßxÙû÷ð!W}ÿ[¯ýÜïÞýöÓÖ:ó‡ßzÓƒÞ%ôð€ «Ö*]wÝuûì³OF·H[ßü_°ÿ©wî|æ¬sW¿׿ð®¯ó³]O8iïýÁò'þû¤C?÷—ÝÏ»öó».þÁ‘ÿúÉ¿,7uÿ3/øä[WÕâî–ÿþ¼¾þåã6ßýðñ=6Uº9è{úW;ìã7­xÍ©—}ù_7ðÑÊ‹ùüþGþø%g^ÿÍ|æœý»~ãgœ·ïÄÛþë=ÿöÓõ>rÝÌ#74øòò€ ¥Þ*Õè–Éë›wÃG?ãÞ%ë½å«—¼Ó„ qæÏßrÞ±'^Õ{è×.üàk×ë]öô}÷Ìyà7_ûÜ¥Oíóí«?úŠñçäwKËçýîGìßl“žG~qþÙW<¹Ûùל³ûÄžÒÍÁâûÎ9ð„gϾú?ê5DÔ¿àÖÓß9ý¦λþ¼=Öï{|Ö©Gþ—O.ÍFO|ÉÚ/ÌÛü´ëf¾Ù nÉÓÒ¢¥UÊè– «õJ§uÑ˾tÎß=î¼ÏúÞI;ë—úÝ{ɇ¦_ðÜ>_¼ð”=6h¤oúŸ½ñØ·Ÿ¼àøkf¾{e{”ß-­¹·g~}Ô>§=ÿî«®:n˵ÜrìÛÞÿø~—_ûoÿ0Ânéþ¯rÂ3_¸úÓ¯7¢?_™Ïþö¤}Oºû ^{Æ«×ø—é_:ï¡9sW¬7ú7'~Éf_ûï¯ì²ÞвڤY{«”Ñ-’Õ7oö©G_ð²s¿ým×^ùýq“¿øí_1¾'[úäïû×-öxãc}õNËž¸ê”ÿpëæïúÔ߸ᨬÿŇÿð×¾m·Ûbüó·\tæE÷¿òË×uÏuŸùý/nzô¯ž}ÉÂ7Ÿø¡=§l²Û^»OZü§tÒ½[~jæ7öšÔÛ÷̯¹aþ”—Lì{øWß<÷êyÿ8ãÚ³_¿nÏ‹ùä;ŽúÙºïúÌ©o˜²Á¶;o7±ÓàúànÉÿ£1œ¾y?;~¿tŸï]{úöãG¿žùËE[o1nþÍßþÒ̇ßôÕk?·Ëz‹B< -­)o@Úúæýü´w]ô²/ûýÛ úžþõ§ŽüÚ”/~ûC¯÷Ìÿ}ð×÷¿læ;'ûú¹–o·åÁ»¬û›?Ý7÷…ž‰[¾vß>}ÂÞ“G· ýO/|}6pã_¶:ó‡ß}ûÆ£úæþü8ó7÷=½xí_¾çá§~â¨W¯7Pñâ/ÿ÷ÿë‡,_ç5_ÿé%{Lì°ÍÔ-õ?íýÑFß³Ž|çÙ ºâê¼tLíÿ—?yÝ)ï=ûÆGÛô•ÓŽùØ©l7¡·þHú~@êÚ[%RÞ« Ù*e¤¼2W«”Ñ-€næl•2º%еò[%RÞ «9[%RÞ {i•2RÞ ;uÔ*etKùjÝÒÿy“33 -endstream -endobj -249 0 obj -<>>> -stream -xœ+T0Ð3T0A(œË¥d®^ÌU¨`jan¨gn757²Ô3²²t ô €ÀÔÂÌ¢ÚBÁ%Ÿ+oWÔ -endstream -endobj -250 0 obj -<> -stream -xÚTMÓ0½ó+,-‡D"S;>¦iªvÉ&»+T±œ@œ¨ÐžøûLü‘¤¤ T9šÚÏã7ïÙCÞ#ŒNŒ¶PZòõJ¶ŽlöŒXZ÷0ܒ€bÄ}ûœ½ïëóSÓ¹Êû./¸²™èò/î‘m@XL9âŠê”3›Õ¿´ÙË9¥ ÀE„½rÊqP ‡òèÆ‘7Jò+ψ’\‰l™þÿ y±Zjí« ‘ÁjH!˜í‹Ú쯖ì~¬´º X¬f„‰XFØk¡VZhQמ¾<4Qƒ¦mêY™›UÛXûBNŠÔËQ¥´;"–Š[ 2Ê3§]e´Š0‡G¼”Y{Ü©¬jÛ0å>/Length 67970>> -stream -xœì ¦—ÕE$I×ú÷SE7ªêXc(4’Bn÷Ó‘?ÑaÇ5г€É$5íñBÜ_ï]zÙ|FˆD!©*-¯®e{ Œb{ú)wÚ¨Áui·o|(ï¸ZV"Q¼c¦NWQ’àAÑÎ\3S_}Ϋb[sou 4–.Yôþý‡2,¶éŸ’“&M¸wÿa{ï­[¸‘È 118J›,ååê3eøKÒßå"§Ž–®/z}ñ߯ˆfU~ÿQ%¯"Tç敱¾FW«2Ã|%¡ú¢o©ß‹©h^IY‘¢×w¿Vƒ¿®*­Û—XáìèðË §?h!!‚¡Y±ºü뛧 ëé÷¼Ì9|$‚Tö3ûù³wßóBCfÂÜcy¹P$|Nì…$Ö7ÐèjµH$Ϩ)ÓT”äù0"¾²¼,+ùU&:€ž>;¸³ºè@‡:èM:¤P©$"±¯#öüZ#××!ôò7 -û::‚ ƒýÐ!½èèï€è@‡@çÞ½{ ,èë(þˆÇ/]º´¯£ #~ëðyRR_Gì©®®:îë(þv¦OŸÞ×!ýšVöa®¼~ýºo3µÏè[úsói± öÛNî*ý9aÚã¿3ÐË€ûE}Kn>è°ÒŸ¦=þ‹1½ è°_зôçæsÔ!¹¾¬°´-,-#Æ‹jïM¤Šä¤¯ƒgM—æîzR¶ÐaŸó_Œèe8ëB&#Ðèvš a_<ýªÍEÃuPÀ9‹¡l—™©y·]#Ø<áÌT!oì(Si¬Ûþ$¦ÿKp´±jÕË'Í@§îÔ:¡>Ÿïû ëKvÛŒèr€  Û=Ð](Õí~È5Ržø«~ú±0«á¼Í/‘«ßG¹ŽL&Ê+‰S+ò‹¹Æoñpß®Êßý¥šcó×êÝ5½·ƒÞ¸Œ}šnò±&JìÖ*|VëXÔ¾ÿ=@<é{LÃÖÒ†L„%FÆ÷·[{:$dèîÊ·Š>4OŒ–\YB\š¯qõ¥’jJ‹ë¹¥¤D¹ÿÝV‡Ì¯"šŠÔ–WQEd¥ÑÔêdóͧ·FMF Ðh*™‚D£š¢§àË‹Ë)"2’M I+G&SPh$msJBF”›í@pÐaoæX'úœ#% ¹âå)G·«e2Ã$åùEBêa!;Ø£0FÂøw}Z» ó€ŽtS‡<–¶(ËH  ÛßØF‡ôUÙÎño—lDiZ›šWÛy¨w&ÚAzq¡3Eè+’¾®U—ã0RRb¿»¦ ++©â–’æbd]×!¹¾¬Kä•j>úmÚGËIãÁ>çx¨Äª’âj*¿¤”8½ë¨•IÆZa:çÂI („Z -·`s̤¢‹f[£‡î ±_ K÷¹:ãÑ¿äéÇ -¡ÚæÊ»Þÿjédç8ÿ%è¶:djµêmëXà>Z6éP IiÑIÛ`Ú¼¿3ÎtˆûrXÛ·'îÀtaÆ´jøyëèîL~%‘ÚÕªæ>NË¥1­:$²yAÈ»îµ;8„<º+n}Dû®«å,YUÁaf»—Gš6–Á}‹Ûç_"«ˆù•Ï·ú §áATm²‘¦§ê™Œ2.?OH+ÀoÛP>–P;­CîßrÅ6ÊU¬Y®,B -QWV\Ç#-ÍÒ,ÉÖ´±¦ŒVZXVZÍÚç,9óGó…ðý¤–y®Í¹# ÄQJK2ÍÇ(íf ²6Å”!ªæã*ûÞ uGeI)QPFŠI¦¢šæ§<麩õ_cöØÇ•È Áäò¯=|Äx¢ŠíÆrÿ¼åiÅepÜq©»“Š.بåœÓxvsB$ÀÒüZ–ì(¡á;=ídŸz9}*Z“]5j×q—2Z› ž^Á§°lÏ!Öº¦CBN°¥KJJ”Ròµt¨yàÁ rˆ‚H}ó.çö¥Ý’K®<2Š=6[„øó†gÇñ\Ypb§ûÞáòÜ5ŸéG‚MiûÁóÕ¶©sˆq™#Úff²5M¾8]ôŸÍzÑÝP+_ù°TÞåþ×<¨h1æfˆà‘s¶£-:D07m9šÃXì]aÈ0R±ás¯Û´¹Ê›qìvÿÃîjdGK ¹çœ-N¥ò¨L?nÒ¬ëA“Š®˜š½Ô9sx±íïëææIF‘^ÓPšt8•õÕɵ— nñW„¡­àD2ƒK5× Ö‹9=C¸õÌrFmœ¾é[ý³Ç–K"«^îßzLêxŒåpR²ÑzW™qçˆR~Æë[|Úç1†Ÿ9ÒÎêPòÓv5Õi²é4¹æþÞtú¤á0nÖAl ¥Ð~ÅqÒyÞ†œ!-?ßí*üÈ6ÉF3ýÕCiüʃ¸°eâvÇtnïníóÃVB×ö²™¶0_pî­qnZÔêO÷Ò¦G™Je4*íôø 3–W#u~Zé„mŽ ›'ÖÒ;µïYtxzügSˆ­qg/¸Ö¥Zoò]x&b½@ªÑ¦ÓFq!ôwÖ´Õ=¥yz6ËU¾.èpÍn÷ ‡æ‰Q~žÛlüÑí¢§âg–A¤k•ƒÀÞ‹þË%ض[ç…Fj£¯±ŽÈ”º‹Ûô¨EœRo1}}ë±Ëôiû'ó…koìŸÊ«:i„ÉsVnX;@Çüƒs¼7ÑAëÔœ½Žã›FÅ#«¢"GþØ¢4–W•ù“ÍÿL‡!¦çOO¤ëÐ^÷Ôú³§YoØé‚5w\§wH݇]Zþš±a3p¬ýönûÆ“zñ ÅQjÕspãsÇ(v,#«[`¡ª9_¼%¢Ö>g;—§íŸÌý¥ì[Jʇ¯ï_¾õc’ç9÷‰&²¥=2÷Æ™± 7Åš] ¡›ZþD_÷¼ÕÅ ñµÌ“¨Ë1Àÿ]‡½&Ïể]ådÓ¾ž°Ë"ÛF‡O 7ž˜»o÷D¡æÅNNUUŽ˜ÂñŽž.éŸå»É–`h5WÿÑ^óèâÈÈ•Rh.ÃK×CÉkWšÝ‰1!‘:ò\‡\›—úòå«'·R‡s•m£qdÁÙ5YDÅs_Óý™³uŸ}R;í3_œ˜¨eüÅ1Á¿ùüƒô3nóö×.—ÛÑ¡š š©ò©Âl>½íŒ·ÈÕ>sÚ0ÌrÈÍ3Ci:Ì5c×´ÔtH‹Œ9dêŸè\žY7LUŽ~Ý€RùÒuóaÄ‘ø·ŒŒ«ù®o¼ÈGÆU’yD¹q¿/xÎÄ]b}Uœ`ht]ð õÁÜ¿O¡iŽº¾ CCéãÊp±t›Yò¶oú±Ï‹ý[}›/–ö°›s£îƒµ–¿ZL»~KiÔáÙ…4˵èhÃ2"*|o»£Ã?™/Œà¿ŸÔ4IuI8F´å-íê©7ÎLL7Ñ -߆þq¥ìžÞæË6 Aÿ1O"Ö<éÎÅÒ-Fo £/“BV&¹êøü¾Xʺ±éb©y¼/2ÖÊíó|½Ñìoºþ#r¶Õò^|6bµšTxaÛöGêgüÕ~/vd1î:Î7¸vI‡µ);Õ­Š‰Z%E[h9~³NŒ¦/›ˆ†¼Ð­&ÏqTŒyLð -IÚ†ÎÄCÆU“y„é÷à3k»JŒÙ†NتoÍé ÍÃy‘Ä‚ØmÚ>EóCMF"HE f[cFì ±/¡FÞY]£÷{/ûOàa7.C©Ì•ïPdóám§t8C‹e»Þ¹zô9Cî+lš†ûÔ2¬#5‡·†9‰ÌÖ÷·?4íÞYšmo›Ã«0H˜Z–S(¸ÈÖÛn‰4†Ppë˜K` -JIŸPRDé`9œÜr+M›WyñyW=ƒÓø‡⪪”´ 8<‘zÒÎí!–[TÕÑS#Ö¬åV7Çó%2 -èÂ_«z5ÝJóÖ!›~ûH¿Xº/Á‰ûØ~kÈ?¡‘›P‰¬#‚*¾°MÿÞú°ÍÓã[ç Û¹ü{Úvw¾«Ò¾ÔÕtŒRñÜEÛqì’‡äMÙRÇ.sØè0l6á’Á¶‡jgüÔQ²Ï™n æ;y3h"ç<é„×m¿ß Èß$2þQû¢ ºµ×.¶DVý³@píá£&¿o¥qaÞØr+@í§0;§W“=ývLêúÙIÇ:©}ïoírË#6Ê9pŸÂ3oǓɨ¡ƒðÅ…ÔÙ¾§ÿtz³ö€kÁ‡ÝN÷¹G)!«Qƒßr6ÅžmÔ!‚\|Õ`£¿¤O¢ÏÌßgo„‚G;Œ‡RþÄVߧLnˆû;ÔôÔþ5²\øÜÄÃö'ß † æ©.A¨®[Áu;«ä£=ŒÙø …gÔ{’¼¢8º¶´1lýNW“yâh6C PÉZ9¦ëÍoÖ!‚Z›ê¡¹ý¯iB¼‰•MÓ¸kZÇÂ[+ƈq¤ÎŒûhÇ šáý‡ÙÞXÏéb)¹¾¼¤¬Ž* )#ÁxC!¹®´¨‚È+.#ÁÏÆ´ì^¥«‹‹ªÑbrR‚íº™^G¿SDVª Ïìù†²é7|ã­4c¤òH|Äœ¾¾F£ì’fúDÛ€Ïü#0•’öÁG&!Zû<`¯øõ=íNÛnÍBÞYó˜ï| -ƒE¨¥Ù¿;w\J?Fé8[Níæ9kÃœ9ìt8_¬!ÿš—SÀëaÉ¡Ófþ|¾7Á_)™sžƒŽtó[iȸ²ârª°l›¥ƒíÆÎÐÙJ®--ª$òˆÉHvvÉêr|YQU˜iélÈ;³ug‘Ûù½mo-ä…PYRRK’–exjJª.)®E‰Ê°]wŸóÀ£%¥Û~ ë°­œ‰î÷»º3Á°Æ_ÒÆÜoMƺxZ_TÇ###Âð,»¡«Š‹jТrRBìr©ëÓ–SÂë±%eõT~IÉ6Ç(]ž˜SŸæ­»_Ä?ÖX‰›sjŽÀ—´õLäª÷qanÜ-ßx6@[ŽÓ×ðô3ú¼ÿ;tȆNÁÅÿ‰>M˜Ú.»#ù”äPÅïý;`éÏIô@‡=_ø!µ€{ØøQÒ<=ù]½BŸ÷€Ù@®úô>_qÒX‘9Éê:}›0d\qvfn)Gväè¡â˜Î_fè·Iô@‡ý"€¾¥?7tØéÏ ÓÿŘ^tØ/è[úsóA‡ýþœ0íñ_Œèe@‡ý"€¾¥?7ÀèPHHhÆŒ}HÏП¦=þ‹1½ è°_зôçæƒû!ý9aÚã¿3ÐË€ûE}Kn>è°ÒŸ¦=þ‹1½ÌoÞ¾u«¯#€v:ìëàÀÊU«~ëð¿¾â@÷ ³‚€¿Ð!€tÐ! @‡€tÐ! @‡€tÐ! @‡€tÐ! @‡€tÐ!À#%%¥¯Cè&Ožü'ÅA‡ -šÿù矾Ž¢·INN­€»è`@:ì C€è°{€ ÃîÑÃ:¤U×™·wd>Ðvž×áªU«X6S$AER‘´ܺÍyGäÚ’ŸX¯„¼´ úCb†T‘œôuð¬éÒÜ=÷Îö!×—–Ö£…¥eÄxQÿõDÀŸÓ#™Ïœ-¤òWϾœ;]‚«'C…œðüŸtH_–˼’ÍË2©â]R¦â¬ýd û£W®\Ùü/úZðû?T*mAh\wnßé`GäšÔX¯¨yaRiaÃp wm£ø‘X+u©Vº‘!sEÙÕ‰ÿ~ÊóÆb'«QüD}ºÛγküŽLîÖÞÉ•¯ÜÀJ‘@Tü,R 4PâézHÿ× ‚Q‡T*¥Ë™Ï6[ˆÉF›BLÏŸž"ØCQBNþô¸iËrŒ»'ã²ìá±}õÃ.ÝSšQ¡M’ÿ3ýQ‡Ë—/oìúÐäCÚÿE4þïîÝ»íîˆT|År{¤¢c Ý|9n$‚ŠÏ}q¿vüª1BH -™ŠB7ËR›ÿ¦’É//­ÁHJ q!©äÚ²¼€´$?ºí;þn3ÏÉõØblŸTóq2µ:Ù|óé­QAÓ…(4šJ¦ iEwƒnq -™Œ@7WJª)-®ç–’åf>Î&dèîÊ·Š>4OŒ WV†—æC±+Õvéa['•T[V\E‘¥—± ²): -¾¼¸œ""ÓÜ¿»IÛ\…’åîi;ùÃÌgŸ-õ:<4†È<|ÌMKJdSŠR[³•ö'µ9S;Ø ä䀣‡uH*N´Ü5Ø)оeY¾W;~õäGF²Kæ¶eÑÆaKª¸¥di‹vEÙ?u¸l9‚>ù©ÈæÓCjëëôCå{÷þmwQøqZ×ü‹Ý9ßY"mz‰Œý×hÇs‡˜£iÇžÕ¯wl=ow|"5ÙHó°ò$©ôRrmn…ê.'•¤‡XBie‘w°õ$A*ÛRˆæyΗjíú%%J)ùV6Ääľu²„žÖ–7²dUUD‡™í^iJ{ç)¥D뢽±»GñÑ")»cjôï¶HŸÙ"¤Ÿ·ŽîÉäW©ýQ­jîã´\Ã3îËam{Üž¸Ó…MÙÀ¦TëÒCdW'!ïº×îàtþòèr¬¸õí»®,A†ÌÁ}‹Ûç_"«ˆù•Ï·ú §áAT-­‹ûla;|Ôz–æ+¿cjòÒ&úÀhä7ÍíIó#Î;Œ¤¤¹éûÎ - -Y!‰îx/“ŽžÕ!!‡¶,gØ?δ,#jS›uHüyóˆsH¦€’hÍ*U çå2BNmEJ‰RK¾•59¹o½†žÒꇆŽ˨àSXê|P[¡¯³öG.[ºѪ@jóSdÓ¡2íŸ÷îßooGÕ¯L4ŽÏÑUÀ´Ùޮ׻ʌ;0[—â¦aýM-$ÜX•{ÇlÛUý˜ÀÙBåêP„‚£ øè‡Ñ䢫¦)ôÕ„¿ö½¹n°^Ìé­È3ë ,>ÙÆœ(@*¼llöng̡ɼÅWLÍ^êœ9¼XM*ºnnždé5Mˆ!]¹çœ-N¥ò¨L?nҬ롽“])Ô‡ß;Â_e}urí%C£‡BüÕÑ:…B$#1¸TÖ gÔÆ雾Õ?{l¹$²êåþ­Ç¤ŽÇX'Ñ»Hæ@ÜÁ9¢”ŸñúŸöÄyŒáÿÃAØÀ6óUG:yòäÒ%K8f>Ûl¡¯,ç\Ë:Њ¥1úU‘Æ\çwØ~Æñõ ÛD -Òß'ê¦7Óñ^ '=«Ãê—ÆêÇDÄ2/Ë-:¤%‰‰é Ý0ÏÆ$¹FKÃÈ#ÓØ+&ïmØd£µ»E]ÏY$ÞÓw…ôK.¡M~:ÍGÉH†æÆû -î?|Ðc:ÜtzǹéBÒ¯xýY{c÷ÐÎàp™^[8®!]Õ¡…qßïF„ßúð³–BÅåæñ:%„/‘¨g£Ã¹B¥7MÍE\­o¿'jϾª—¦ê„/S òB­þt/mzp”鶟ÃP‰Ø¬Ô”ŸÞ>¸r;o‚Gôþ‰_ÌÙ”’ÊhÜÑéñf,¯Fêü´Ò Û6O¬Eµlœ}zügSˆ­qg¯[Ô¥Zoò]x&b½@*­‹ŒâBèï¬ÿh«{J=òôl¸:Õó0fþ¨Q£3ÒÓGMsáâ%‹;“ù嘳e>†uø‚Ç~b7Ð"ÙÞ[=}=ÝÝÊw,xtFÂcoµ£mÁ¾h»‘¼ö99ðè]†Ð’dã~ÁÅËÓsRýñÞçÁѦJäïwh ljÁïÖùRmM6Ò -ÜvîÌœÿÈ÷G.^´¸ñÎ߇ÉÍü}’HãáÇí_, Ñ5O·;Ç|VNÁÞ3ÜñÔ>ÆvI­L2Ò¿dù[‡¿o4 &l·ü¾7ÆI…ûê½Õ]éD„–l»RÍ:œŠõßâÐ`ybç~Â'gc ÂÂVHâØéP”ZþÐÊ Q3Ø&}—Á3Új8/µ*ÉDëÔœ½Žã›"EñȪ¨Èµw§>;@Çüƒs¼7ÑM)òÇ–åƒåUeþdó?[zšïŨÿh¯{jýÙÓýäsïcæ?xøÐÒÒ’æÂE‹u2óÛð;[.„ŒùÆ2|ÁìZŸê¬jª>ÿµV'Wß°<1tm}D²yŒçD{œ€ôôÅRÚ²œfwÞ¯‹¥!ã?›hžœãê41…Ä~žØì@ØuÂ’¶Àâ?9éø, §-°ÉFÚ!¦ñ=wwýQ‡ .lé3jÓ‰aëÍt=~ÌáV%§ Ûù²Üˆ¦[iêƯ¢M¿Ù§ÃÔdÏÜ6¹×Iä¬CyB*›RÍ:œœc­í·2"|…²ú•‡®sÖ΄ˆ’„ÏŽº¾ CCWJ¡ï& V¿²×<²ö•Šo”¡-4ÚŒ«ù®o¼úMÆU’yÚÜOC®NϬ¦ÚhHJåK×͇GâHÜbS -×|Uw‰õUTq‚¡ÑýuÁ'Ôsÿ¾0EHc rFmÜ6³ämÞK%‘U/öoõm¾0KO¯À”ù=Z¸`aç3Ÿm¶’Á:|ìš—RñÄbÓ‘þ©b û¾o«ë[œ¬Slà|1§½@N<þ/·Ò(:Ùµ,Ë÷êƯÝ|+ -I wü×3Ö–WñCxÐÒÊE)?Ýâ;¡C4ŽM©fÎF8aáüˆ[u0²¥€øþC3òÌ -IdmêI;·‡XnQUGOX³æ›ë¨µï]µŒ‹Û_8«-ßô¡àÖ1—À”í첤ˆ:Ó;€¶*µ6„mo›Ã«0H˜Z–S(¸ÈÖÛn‰4†])r‹wØՉϻêéœÆ?|WU¥¤MÀaZXƒ¤ß¶àæx¾DF]øK`õA/£¦Û`ééþ0óÙg Ýð±húç3—·jˆy_>5S¸úå®õ– ‘ê²hÎ{œpü_´ ?ÿÖº,v×S¦´ƒâfU—¿~ü‹h<n<&6ÖS‹Sœ4Fàë«ô*ÌH»k— 1}ÝÀ^„æ¦?Àˆë°†Kdð¤qBßZ'ù{€;»IÄÛPÄ/)ûm;CmøvÞOùì¶F÷bíd¿ÛáËÅë^ïZµý!baèS³DÀ†ÐaïÂp±™óêÍ÷zãÐzÍØê©'ož™þÃq•þmò¢ðÛ~3„Á†ÐaïÒ2“‘(Œ€Ôˆ©kÍÝv.“£áç½à£á7Þdþª"(ôïqG -OzAŸŠí~v85ê~ätä_ú!G^ögÆ*ÛW‘½ -óg‡™å¶öË¥¹:ž=q+ þÛ±uêUÓN]²¼·eó5â’°Ûǧ   ÃÞ¥½¹GÌÓÞàNÀHŒœHÌçnyñוV~wÓ‹ëIBS™g;èø«hïÁ “¢ITݶráö']S=¤‚(õ‡²D6Æ^÷œ Ð+ z Ð!@g¡Ö¤¸¬Ýv ¹þÜM÷ñü} У€:!ÿ\pì§wo¼¬”3Š¿b§Ì××= è 4^¤}[Ç'?Ëø¸ïŽ Bðû Ð!€tˆ~¨Caaá?©ºAuu5èøÛéw:€'[€Þ¦®®tüí€t= …Ø@B 14üòü—=5ﶯ0|[DqñI Ÿ¡í¼Çt§J’±/â/¦ ¬Ûº^ž‡±6³âç.ÛàíüÞkhŒ ´Ê]ç=úã;ø¾Â÷šZñÒÁwÎLí¥¯k'ü±Ù÷þg%™Ovôâí{vkD~õÚ sî'±ñu¡I7#拱qÝG»Õz÷ËÈB“oDÎEâs“”๥UèïvÒQì¼çê›Ì_Ä!6—Ï Æà2™j’;­®KÛÀ­¸­£.%—'ù;ºZ-ŸÁÅóa<œKÒ–Œ¬cZ—eO3Nfrí÷/?ˆ#”ey;õ-^tšäÎrÝ·²öê!¿§‚† ͆´;%{ùh(¼~î!rÈ RÖEO¿2nW£VTzo0x§éá8A‰@ ¯*ÊŦ$]‡FßÖ¹»­š1I•v€Q—áyäöà™S†rç\:|ò1î…˜U ^±$î”+wyÍ[tئfežÂ´´ì^Ž~õZ,Áµ©{Ô “FZØO{í˜5çôyS®\æR\~Zòs?'ÿz»ÄNêJn¨ÿꫵ%‘Okù7>GïòïHˆ3Uú£³@kWCáyCã¹#7ÛNçËyùaº…ãè6K/½»Úö<ë–®òÿ×!•Œ§ x»{atü¥PJ>>¸zéÒíLU]®D¯²µqWœ}³[·õrø­ ‰ σöyÇ¿.hQ]ºÃÍeeµÅÊÆs>ãJ³-ÐÎ)›«žq礀÷zÝÄbRËá3]u¦?&.Qøòäÿ×0÷ÕÒèúŒ³6gÞ’•Íû7mhÈ%Ó@õ¦³IÙ/»Öꧨ„ÝTþêçpðæû¼Š åyÛ<öo’ûbçý9n…Jöõd¥Ól–JurÛRöÊžjæ 1ÇE/»e`‡4ˆ‹Þb®~´p¡ïŃS°ñœC}«B‹\츑švÚ¸ÿØÅ×ùxAå.'ö/•B“‰„†ªôÈƱ2‡¯Ì)óÞ°ãËîÄ°ù-fœÛ੘ýQ!a• #¹ò?§ç~j=|¦¯FŸÄ69ëןöúWÄþòy-ôU½…3í&¾õ>þ€0)¢Q‡Eë#ã ç LCqkÏ]u‘ÿ—!>T^ˆRôÄÛûŽÌþ€Å‘&DZsìþIñ>v?1‚­?´-åäŠ8¾·”1f[ùœýmç1+U‹næÍó»à6›ë£åÓì5®.³˲~H¯Þ2S¤â®¹ºÓ'…ÍŽ&3xf¢ë/•(¿²e­k:žoØF¯P×E’ 4ié^(#SI|ƒfêî>l>[œÝÂÓž{HE×­7¹§ÏôK<4KÅ¢CÖš9.ÁµïMW&óˆòÉèíqÞîá0Ú!Ådj7tÈšò†™Ó#oúŒ¨z±mÕμ9Ç-+Ý0öÏ"ÔC¦›‘gÌ^‡†)ˆñº6Fs¤êŠ¸¦¯Ÿ³ƒq rÿy“}y ¬­ˆç]=ôqšk‰‹UÛüá~À´¯EèÇ–{K%zMBvÜ®•ƒÎš™qÓ¯ù7ÉØ{¬õ¨dtC‡8eï™&êÇÚäsˆJvÛRô¯»tµŸ­e²^J¼zóî«|ÞqËÔÔÕÔ–N”åéìÉ"èøË ÏçŸÅ–YîµÔœ¦À‡jùìö#5ß1ØS[þë®5;2F_ۧʃ½¿uÍžZ G¡Ë^åL Û‹¥ŒëEËß;ÊÍVî,Ñ>Ù ÚŽVóâ˜k®Š9®ëu*†Òuøû,Å;h±Sè )ì­c.§n¥þ¬!R¨’Ž“Ü]ÏÜÑ× Íuß°éŽB(62•Úd/zË»‚)fü× Íz9¢êAܦ £ˆ…ñf›|rG.Y9wÎüK&ËðÔ¥î\m˜6=üÆÑÖ·%–g}ÉÎyzÊýlÉêÈ'åúç7ßR契Žž/žpÙw¦ë’ÃÖ=”êw~VQ›N±øGÕØa­:$•±«¹S:4þ¾Àï¤ÅhÊÝ-w‡žéžÙäFŠÉ*£f¾Ü¶Ê"ïû¡Že3öO-Kµ̬Cã¼Ñ×áo}ÖÚTË5Ûa)ÍÑð7pJð,gʦ}±–ÚuñâÅ6‹:k» ¾üàC¶õl*1é²Yò5{/YœÕÞñµM>*úXÂÑñ9»è‹NÄ£ãÛNEje’ÁJ›ãËç¶ÆüÞTñDoµcõv–õ·V÷Pë3#vš„V­ö9c;[ ÝÜa­:lÝcÍ5ïhç(…jq‰ö#;¸XzsxàÍ“*_,ך~ÿ}±”µ²æ†Jí)uqÏQKD~Åh«¤ls•½°/“±~/Ó [s ˆ)[XE´¥±ž£]}Ìš>¹Fñ -TyéÙ´ÍŸ&2ï½M)™‘Ê2mOˆXÛ¥Š×ÒŠ@›]º°]Ó~=üŸ ™úãXt&{/YDj7ί–-‰Ö71—Rxèù­ëýÌU™õòÞí7o?Nk:½®±ÁeNþèø+¡à -ÞÝML¸”øð›ÈVG ‡K×Æ]±¼ª¯éS¡¿µÀAÃùËX3-Éw'ÏÍ]GuÜ°«ÕmuhÎ{YWý(v®ƒÃ„×G}[.–¶Y%ëÓ\Öný—OÛÕi)‰v’”#¡ë£žìt -;ÏÁqò{oŸÛ8vKYKiìùÈãcÌÖ"lµÝ2æ8,ùäsUdgÜi=ÙÒ‹aw¹TFÉ¢\8˜»í|üfÞ‡fêNiŠzNÆÓø -¿’FË伪¡:˜¿ú]˜WØ÷qþWýÆg]¹•U!ç= ->žP6÷tâÑ©BœÏ‰Emu=Smu³˜#ŽF …UFK~~òêç×3G#jXíœ/+¡*\ø¾Š¥f\ºë:½»B[÷;Ì’Sž Êzßoã­4Ï•wÒo¥ ø6;äꡉ‚ìJuê³CÆÜ0ÜWjcxE`Ós¥w>Goóž?5ìˆNkÿ l]ˆjÓc´-³Jö®ÙÆœ-uH.ûw§†Ó§![ì¶Ï’¡§½zõ=üPcþX?fÚ×BÔ#¦R"[öh)°YÔÛ´+Æ›Ëm³êV»íSys^¤N73,pb©gmµ;Sr‹Îdïï‹¥ [muÚ–ÚrÒä›Ó¾®ö³Iõ*£b3VmTW_;o”8í†ü=€ø¿@©Ïû’UID ‡¨g{9µwÃÁ~Ë*%PPüƒUFˆc8þ6@‡:€~¨C$²¯?bþ>¨T*èøÛè@‡@‡„}qÖ; ñMN%BTu€m;_Èȹüõ¥Ä/«6­–ë£ôÝ+õçr#œí/|øUEá•Q]°ÅÁ~ãpd–ï¦í5ýÜ®àxßKÁszòùÀŽ[JÈòÕÕ§íœ{ð戸]ßFPûÞtƒM™zD¬û¯Ñj¢þ³‹ºñ#,YpÂñ„Y"HÂP·ƒ7ß}+$*îŒ;»UÓXyJMs¡É~ÞÃZ2¶Ô_6|3óÞÙÄø#t¯Ûõ÷y¥Œ”ò\];Ûõ˜íëinŸêÞø3ëdØq%`²`ç÷ؽRNCÑ­„'HE% Rvâ±€WÒÎñ!K«ü7™¥¨¹ÙŒ£ÿÜ®àð1Ê"ì~È·»tÜR -¾ #ãGÚ±½¸]סÅ÷U®Î˧WF#p_Ž'c>\¿ÏcܤCrí×Ï_kÉô/J½zÈë‘€q¸k‰ý.Æ–Žà)bÙ;›=eóýwдÉC¸s¯ú?ãÑ<}€¸Çšc=ô¦½àˆÛu®}šu9žN•¢’ Ow÷otü¥PJ??¾yõê¿ßÆ™O{´÷<Ò .JopËO¡–¿:sÈÿÒÛŸ "Ê‹¶9;,«±Q³Ê¿pÐ×gYüóœö®àûÄtþ|åäȬ€=^w?äW¹ÅGÌÙâæ¢9¤þeèᓉo ð‚#–Ú{»LË·`.Ū -JMjÛzvðѱ)]gPeµÁºt]xèâ»æfzgÖ¤Úlö+šç½wrù%O·³O¾W£Å†/p:î2_M;ém³÷E’ôò%V‰µ´Œ—ÚÞwÖÓÎL»ssÄ;X>©¸ÌØ=Îg“É#æ+<ÈPòö~Ì%U‚¿´lȲaù7ß&Ù‡^I>sèÄ%ú¾”fjZ»¨£œ6rîŸäTSz‹uضŸ¥Øø™®Ã]…fmMSû~çz«ŠmM:l†}zó¶ B¶q'ÇÄnam)}w {ïˆú»µLSGûyÊvêT=lƒl.6ñPëÓ‚ ÚŽrè¦W¦»8í½6u×v?¾¹k7¬[>mˆ`ŸýÁÐ!ð·A®ÉyuëÊÕkwÞð«.X¶rÍ2ùs›¯ƒ.÷ûœŒ}h·Åí‹Š½†äû@Ÿë ëýl¿9Ú§‰iØéÖ‡û>Þwv£PöçÏ™{&‰ZyX9v8"ýâ•LQ%9!Jq’¿ß=©½ê7,¤ Ò²1˜Æóëzî|¾æR#Y~´›Ró©m=¶NˆSîØVFÄYÊý16IÀ,S.¾S0ûh”ó ®ÏöV?V8ÙÏÄfçI-מ&\yßf³ãÞ‰WÜ0ÒtÿBàºîàI§ùDÚ¢lpK¦’xå§iÙíß1ƒÍWÆ‘K®ë-šni5>ÅÿÔcÂxú…G»3wÌ~öbö.­_ÁgÊwÒ½kå^0×Â|®XÁÍã¡Ÿ§ø†nÆüøÚqÿ¸š‘gÁ¬C‹tqM;ݺ°cý¬)ÇêÃNëÿÅ[×è®üxÿÙåþlZÚi’Šo;m;òeú‘çÆFª‡³9ÆC;i;ÊKü8—"×~yrõúÍ;÷ßðŽ^¼výÚµ‹ÆËtú'pÿf@‡À_}íØ™.¶ØÌÑDíŸA¼(úwkZ©™Ġúv–ßæ…^Ø­Ì]þh‡Æº 6‚×|+h+Îö -+5»æ«yLŠîžÜr÷Ó¯Ú¦Ÿ0UÔ´•¿ï550Á}ÃÅWŽKYêÑØ%r׿’Q‡´…uÆ`Gh®èz¿(ç)B(bÑ%ëmþùÃ-=cîÒ…¤xê?Ú©[d´Ý;±"ûëσĔ­‰±Qÿên2UNùóQÈñK%Ó|ã<§ 3ÏÀ¦ÞXpæ‚ÓàîÚO|h:tδ 3ŽÝn±7ËÒðÊ‚]Ò—Ü_”·üx,Ï0³è¨mÒ÷~D¬^¥³ÿÙ¦Ÿ™é¤©µömÚõfÔ‘ø#3*ص´s:¤Ô¼0sHDiømxÓÉz:Ö! Û¹xÚŽ2¥“¥[Oªøú0ÊïØ… ‘m‘1;”þh™ÿ;¤òçBÏ'ÞO­•¶xùòeKç«à£ôô£QF±Q[~ÿ-‹k7Ø];^I[·Ò–oö:Ä¥»j?æ]kc³l8*ãˆËiÂrù'ǾO JpÛ²©ÇRäÁÉʵ4VX«Ù6-|\å\·ºÝ¯à›dqRsPãùV|{óòÕ›ÇW®}QõŒqûîC¦½#è_#þÒLÍ©Ö .bK‹9*“ŒÕ÷ÖèEGéf^ê>ØnÜ•µ¨Q‡ÚëÐ>Ì8¦Q‡ßw\žGÓáá/ªN‡š~yÅ+=|„4"§ãþÙH¼õëâµá笆·ùì°M?3Ó9Rª^8i;eÎ8unß–e¥MKkß›1îTÜ·Û]ÕËXÎmÝÇz:Öa'ë!³Žr'J‘ª²ß<ü÷Î{O3†Ì]­µ]oÅþ~ð›"ýÐ!ðWBÁÿ|ÿú•«×Ÿd †âò0ü©¼i×Öxr_}š²CïçÞÍû¾Ž6²ß(ñ>ÈçaÝqÛoN.,ËtCþÙmºáT½#Ë -ÊKWyiïxÀ§îl3•ô2äxB®„¶Áw×Cƒul·Oá-ÊBÎÝ´P -ÃTJIž—i¡Âeì×l[χáO¦ qôÑüè¶÷.F+"ÎBøÉn}Ì™Ö Òýo -›†ûëÈ”%F=à©"ƒÎ½ìš·ål¤ïëÍn-{'©Jå¾­¦¬À_é•3æhü‘±Ù7ae‰óŸ†º‚}âœûdAæH*¼h°Ù¯|¶•Õ¸w~'_,eÒá2/ýdg÷4Eí][gHSK¾¼ý ¤í°Qª¸ãþщˆ3n8ªe|_p“‹õ YÑcå¿[tC‡¤ò×ßüÊŠ:S;ÏÜd¶´Ô´Ó$Øû–: -Wœ9g«ÂK®L¹Æ¦¥ø/îŒ{Wfù¢qbqânƒc©ò›œgѲ˜OŠðå]U§êéP‡‹gxÃ6£||eÙÎ¥ý°ÝhñYlêòuëׯœ­"Ö“7G l@‡À_ ¹:' +=F÷"üHà•·?ª¢ªëNÚ­{âqêrrAƒðÈEúÎŽ+êlÕØ,Ó ?/ï³ MÊ­"L -¾r\þ™¯Ë©»™µÂc-¨|x…¬µ¹0²±‚À°%öÇö6þ.kÛR¬çˆ E·ÛÖ³1`Ÿ@ ST&ïè™”ôg\¡~#NyfŒ=sdjÞÑÍV÷¤Œ#ü&q‰x™Åc¤Æ¬²>lµH’‹„ýÝ -úÞ­§¾ôJÊ.«Gž´Út·ÙB‰ªî6¾IÙŒäȹZÖŽ:ãY>ȤA©K;»Û%&•4dºBÑ‹ì‘>G•Ž0ép噈•¿b½/¿Ì*oÀˆ½Ðü€Ý 2§þ‰Û5¨èÂ~û¤¼Z’À„ãW|xÙõ3̦ay¬‚Ö«ê®m:^§{6zǹŒ}K ¹Œ{žÁ|¥˜¹æñ–rÑ!ª§cv"ïõ‰mFÙÀG=Ç/€ÓÞO©ä|%¨Ž–… » -耎¡â~^—)ºQÑ;:z âÿO£i~E^'ÏÛ~X˜*™XõÑUÇ®˜ãÅR ÿ: c¨ÕïÜMö<üQMáWøGÝaŸÉ4Ѿ]à™ÃïÓ`ØÁù1| :à?—ÿõ{PRÆîòn_CÁ}ÿ^Fÿ©a…‘ÃÄ৆ÿ#€týP‡$Rt®sYýK‡DÐ!Ðë`ú›@‡@¯ÃÝßtHØ:þÓ .…H%Sû:ºÏù~¦CèèU0v/%þySnhÔ€ãå2|*¹"¿ÂPƒPÝ™q¡þ1àQƒKT/¯/%±­»÷ZAoÈ>ããBóÿAcªˆw5±Ÿ©œëéD+˜c>Ø°øVßåóŸÂ×ßtX¯ :z4zn¢”ƒx­Ù¢ÚB1>ßW¢Üî%»ÂÉìW0&x¹v<“Zñ «·¾¡®yJˆkÄHde:±߉PHùI…)".û7—†öòòÁ^lÄ‹È&UpaVy MùUe´ -'ì!í=«ÎÇ…XGEPª‰_>QXº‚¦Ci?-TYÖ5UÄ߃øTAÓ¡ÿ®d»Ê¹´7P Äï•\ªcQüc…]ö£R*/§3>S¥M%ƒ\Ñh*õÖò’ 4*M‡Q è;- gO}›‘@Ž -—ñSÌ÷þ ±†„à/b¦NJI"Gò›ïåm-µN07A4ÌäŸ__cº¸–.!nûçÓ¾Ôœ~Êc²›ëzYͱçùƉX·©‡¦Ã¶ý“F•fAú°rÿ³OÌ@ ºöZ+h‰ºí¡”¦xCœK]6?—ü«ºKÅÎõt¢Ì1ŸÁ¼Šj[¤ùò0#|?Óaèè0rÜstVlÄ”¼BÎÛ@>4­ìÓPñ°«ÜIË‹Ó¨¢‹„mÝ&EÖÃ_ÝSŸDá›%•Àõ9–(»GJ<·¡v‚ñì§LO‡bòRjù ¦Cã’Ƶ)¶DÈö ÀZ=é¸ÝŠg¥¨±ûÄ­4¹å%ÄÒ«Sþ!DÔLÉF+”´»œ¡˜Kù,rú"½HœX£Q–”>ÕòÞA½¸´ìî ‰àÃèz%Ç_ ×ø‰é¬Ä‘É97*]­ðd–xŠ(n$·(F=QrCa…±6^ìŒ×ØJã øÊvh:”9:XŽ%ݬæ+‚Rl¨´òðGß[Yþ…Š "ÈÍ׊;íþÒbšühGó¯I[ j3…dCJ,N’xf±ixÛxpd6ÐDrX‰Ý-Ƚ÷ä¸ä²í[ê¨ñ‰2’¿EÂ3Zäô=þ|­b·Ï÷7 -KMö¹ØÀÚû õÐtȦØÔÓ~½Þ -ná ‡‚ă%;CH¤¦óðÎÖñlbF¶­G`¦ä‰C”W1õwðùÕVÒÇô7Ö‚ÿ/\(¥…ü+õ-â½Ç=Š¯{˜Áè2Ï«•%‰‹¤‚v’÷M/ûˆá;˜$.w«*â.E~“È–)„=³Ê³ÇJE]ãA¼« ó× ¢)©ÄzEÌ:ÑiتÃ{ˆõUÄŒtªÜdnùD‹ikJšÏ#I\õGm°7 „¡Ü¬}VŒe,0¢”T\…Z!b¢Fö™Yš£îñ¿õ¯.×}þEåcÅ­¤Ì¿í˜¨ÄÅ_¦»ø N@Ë(˜9{$ÖÉãöÌ*N©`Š5ò”ÂQåÊãEbvŠU>™Â¶CËw¹ ¸€ymYrõA¡bÓš®Ó{#soI>í„›w‚Tø-¾¿Éùm#îŸ^”1JŽ¥áLñplº5*b°—R¹Ñ²Æ5Zp¶ø±XarX‘ã!|-½}¨ñWKV/ªl‰lôeî—[‹"S‘:÷åç+ܪ…GÎf €ÍîêAŠ³ë6õ°²OZ!0S.ê:/ñÖ÷T1…CÓ¡âQå2Õµåäßïr9qóζäF.=xB>3—~æ-0{P£ó3Ñkî)šòTzÚ×Wñóš„JEäÛ> -»Äî…}ø«±9|<2‡1º* -‚ڭ䥄mY£¹„ÝîKË­ô;\_IB« ߊxg,äf-©%Tv¸®´°þy2ÆæÅ iéØàgü¦.Üo6äy¿¡ðNî¸çiO³ë)%Ôæbévõ0Ù‡­@Šðí~!?!{"¹ÒG|ø㟆‹NÕá¬1g|¢`ÚÖS¨"u…·êIÍí¨ê{ÿªˆl{£?ð?öÎ2 Š­ ÀKwK¨(yQ±;Q@éîînD@”.Ii‘nTT lEºSPéÜ]vÙƒ ½ß½Wå<¿¼s÷}Ï™3³çaÎÎÌ»ìWÓáG CÀ¿ ?Ó;hŸ{r!Ý8Ôg{ç÷èítû¬NÑm$&…#{^%~|ÅË‘–C|íPûü•½åzl^.T« Æwù1Å^¦˜wsM—º”ì£Ãº\„µ£á*ʉû-7T £„>(&Ú£Mpy&a+‰Ì…å:GI©H¦«Ûìîà<²HJŒuEªwÒƒ]yÃt})„_R$ÖÝêºÂnÔgwÏK^æØ\š~ŸÎ—)l’· “ÁõYOŸ˜"`œ×Ÿ(Û á e"S¢ÝGmú¼'ÚÁn&FÊ@Žê¯/pû[1ã#B¾ˆU~hŽÎèpîß3: /ü²ï¨Î ãsp8Z‡œih¶G½§ -|ÂÆÛa쇋ÝXeAÒoíA”ÿ5ª;y°i#í–ùýéÆ{¹33Gsù­êÓÿkȹ ÓU°±_pš&$d]KÊDF€‡7×~ó•Æ^üA°ýj:ì:À¿Îr C~9Î>e À¿ - -…:ÀRè C€4ˆþÇÉ‘O[‡ ôÇÃ"íxɆx’WPG%¡rl9Ùâû¹¨¿¬=ÉÅ!ûÍ»áirVýŽrÜMÁ*º9ïæ^›E-œ³›ë 8YsZÙè©PTŽ·%¬%BS»ˆÍ/Y'EÛüåèçÐlŽ)ŒÜLÒr^M7µ‡æPt–Ï*¬-ÎÍãÊ«Ž0f¾=jöÛŸx9a¶Nï»>Qå*ot·I½!$7v'v;%î¾3ÅÏ{¦VZ¤'kr’ÌD!Ë£ÜòߎЮ—uöÖaIÒÒΚÙ-ÒêIéVkðóLfÌ<ÐF¬ÑcKTÇÉk -VCo¤pËŠ—b%ZDæéO!?ÖŸÅEþ–8($Þ›g®ÑÁ£d¥µ¼ýÉۭƶ”‹‰…µœ×кÌr~FÔ úïEý}à½×rËV®bB´EV°¸dÅŠ‡©˜¾”õ°]OM!¢æ^ËGGŒ5=øÐJÁu@+-Y›}䦑Š7Ü4+þèh]U]úYß' ÖÞ6¼44¼ëxÉ{³´5¢?"!T2ñ™v<äõAÁ79„7s‘¶Æ< “ñÕdë&Ãh]’KÐ:4o–pw9*,ÄGKÁΣ˜´ 8 IòæJ)™Ñ'ŽWžV5/ç6²Úúì|\ËŽóÉúDmÕAn‘“rßÉdCÐ9ŒŠVì(^ìYmzô-f;gH„WÿW&¥[.o‹52Î%9Â÷þF×.ÿâ*ë61g‡Ôý-ÌG•…i‡JmÕ=æ·~qðª¢WŒ|µÔ™pç}LS3ÐËïG¢äìÂJöž†" ¸S,´ÑOÙèñž¸T• -Cõtö ¬ ­4X:D>sPv|¯®}ÇÆé}A|Ù§Dˆ÷×uüê¶ûexl…^Ãhïlþ-ÓÌ˳–Sã•Ö²f¯Èè(XÔ\×亖qE„l@ý”qGãÑá̈MÖcA:Â…£cueEWŠo”>ë"<$)-)yPˆ• Ì™ÿ€K ôübQÃpÈÔÉXv 9!dn2mØ4O‡ã•ö -–{ã²Oð‘Ü5T8=.cK}9xpfVÒ´–µï“OJ3]M†½ì ï- ÷Œ-yûnlj­T´c/ hÚ•ëµ~Þâë‚‹¥8y¬èJ†æëpfr„5ÅëƵÓK‡¦¸l¥!œêÍ³Ñ ëä>(ºKdè Ìd•öò浘­O ¶4´µ=ŠñKí‹Mµå™¨(yZÎBÐ}76$ïƒppº0-ö75Ra£ä2dkxÓÌ}Ü:+nv‘S‡Ð:o%“òMa j–†ìþY¡"th±¿Š4u, TŽ4Ú8ÓGÌÖ(ðì<^Ó`å@puhÙºÇ/ÐH`ú¢žAéªÈŸÒ!¢ßhüC:DŸ˜Gp‘Q³‡1Øp'%4(»–Nçbªáª¿5…>tXb eÇe”¾c>tôèÑ}üÐ-íK„i_–øpt8&cKs9dhÆ‚šCÖ2¶øu8Yã®`t\ÒÖö7a­ŸëØQ[ö² æmѹ^ë~@‡xòXÒÝ’œÑá ¬ÝÜäHj¸ÜTÖyL/=IƒóÓš&jè¡‘¼Û¨Ö¥í8ó²·P_õƒÙööȪÉif³3†amqZ‰í°¹Ï1K\È9µ–b²1ÕÎ*iäè¹HKz¢ï´>\Ó ðåÁ],-Y’ÈÛà hÝúi±ÔTÆæ½db†5÷"uøu€æÆžlÂ;“uÔQZ~§±Q³³ û*Þ¦w±Ý†( ÉmgRÔkv?[»BÕNw+yoÁ•Ì$XQ«Øɱ&³ÉZOEÌ<2ŽÜ÷ý_r9*Vz¸•(%¥›Ó–Ðö®ßa³¿&¬˜Ö$1L•µ¯ å61/?+Q{¾o\‡FòE%ò2u/­#˜ÛŸM¬áã¤yy18¥u­–ߺ–«wûY9è÷" -ûwÏðÚLû „5‡©ê]! BLl;Ÿã'Dk¨š+ mƒŸ~8\ÝËi;ýdíyÈaÙ‹Éòo<õ‚^³«¸íd$šqZçó&$ÏüÖwÓã™Æ±M3õ¾àļk†Ð H²[=þ(Ö;"ÿEœ–÷ ¶‹“ظ¬-Ž!ðîüSöqÛ‡aT›b -CØ»F”ÔÑ®=¸èN!R>)E½çâlÕšÃAn‡Ð?©aFá^#Â{¯cæ‘‹>t€¥Ð!@‡Àßbz -Ž€‘€š;ÀoÐ!`É3ú\WÌô½\F¾=g‡¯œòöØñÛh~4–gQƒñƒìœ•SC%¥)ÍŽçõšÐ†™^¥uOAHWêü͆~X[¬­Eú«î!$›à!Ý“'”x |eT3ºçÊäÒlŠ,NÚÇ€ý×ÀD‡¤Úø®èâ æy•„~þÀL«,uÃg#Ÿ>@Æe”“¼ÝKJÿËí¶¤™‘'i -’SMzG{$±(x35ž†¶F99¼hû%eد}ÂYm îóúã•öÇ´Jû4›£®^ÜCO€ÅÓãr²èiý»).ÛüL½Ù÷Õ"†9Í~=B»QÑÝ߀5Vi1#‚¶œ‰¹ñ¶N# äÊOºpžÏ‡•RðLQªþGJþ„½Àî³õÖ«ÚªÿÙùü=€K²ÿ™”ùOê9Ö\×6ÅÄÃdžýæÑÚ¤ ”Ïv»Ó“ÕÕ-•¾N¡Jÿþôï¹’q‡€‹‹ Ñ”ãú˜Õ£(El(@Fï¹¢·Ót™\^!zœwg¢u¨~u”U&>RÐ[ïÂï—1£CÓö^Jì3S9ûZÚö·u££ ~NÁý;ܼµ×oà§èIUV8ÿA@¥p©Ð…W‡ãµ>~×Wìغš´5ï\ø=2µì|;ÜAA‹Ä QÊËCBd“ž¨T‰\ß4éËÂr³O"{}RVÿ!¯¹ƒð“À¨¦Ý2MˆÛyhÓy•¤ámFNªЦŽMªÚËê΃>¬/…:‡MØ|W‡¿û^`÷Y59ìüf:MHþ_/±–((ø‡ÊÛEyy×ëÔˆ ü¤/fYsv©h£u¸þ(úT@Ö“.8€¨¡‡«"åø̼lÒ¶IvmwÉãvAÛxÇFsí‚÷ˆ/ä¢'nìkì<â#æâ&msÖ•5RîwOð:Fñ'*–¿!ÔñLñ«ŽA8ß^oO5>ä‹….C§G^`F9ðùÈš¡CŒ†Lѱ闎\ÓÓK'ÐK¿$óÒLÞ¿ç@pΙ­ýY§]âî61òrò<ÈD„è{å”ó¤JÍ'æzÞS”]4>\sÑÐ(õ\aäî¾ú û˜¾9¡u¨_ñ×2ÆŠ4÷o µ¸§Íèм=ÎÜdBâÏ+Ìèq3y'™Ž–ÙwC_êDW¨;¾[-'[w%ô;×ßão줴_®K¾¶§6Z$Æï¬ðÌÑQ£Ï š̉Úè'«~uMdq„@½¹¤Ië±ÌGÞ©…`-aò*©dÖ™jì$è¿ŠçÛü£öOŸQ˜yF_«PU“رú?{ùÐ!`©i~t%//ÿjy'åÚƒÇeÄØ.èšaéšï‹‚sÍ_Æ®*ÌÏC} -àò—r]8«g¼õ"¤fk°›y¼—x›(GOCûÛ¯ä"GëÞÔ"!ðw×|¼‹ÖYgF«·ÅÌíRocù–AÅE{â‚ïM:‡üL%š¦7•µž§ï38ø;òÓÐòoà…T¥çÖ2®f§™î- ¸Áê]˜¸³Í`A¾ÁŒrv‡„¸}üªÃŒ|;öÖHmLqÞ⎽¡Ù»ˆ+-›´wwÝEÝ×ÔÆrLcÝ`‰™¼ó[Nu'còîz¢CÚ¢L…’î5PŠ5r¾qî—Áë}eÔ²û(ǵçÌvá–µGëаVî0<ýþ¯Ú_ÉNióKç-”Í×!j¤ÂRÚºW?Ö Ôô4ÂõòÅã䯾5#z¯Ø¨xÕì-8»“çÚü[s4V†HÆ^™ˆë¿ £§`ÕòäÉ´¿³&ázÔfÔB"}e"¡÷Œt+òUÓëó°¹Q[‰Eåùiþ^{§Ïã˜y£5wò -ŠŠK*:Éב•—•Ýø￧è°Ä@O¾†U G,Ý,…9)?MÇ{Îøª1¿O9áVΗgqQÅ°þÀ¥Ë§ÈúK5ŸÓÉÎQûh,fÔ±ÿÒ•³k)1²aÌȾ;g´NÜ T>Ÿ`½è­ÅqÌ< -N4ù¾3Ÿ70·ø œ™.늵X -ï¹äqíu÷è\ùßU™ùz& è'JÅþZÀà|ÎÄB¢Õµ¢Zé壳ÑUå§z²LUÛy‹ïÙ½OìðfV²ñ×Çô«·'^õßðå«85ÐT×Òz?Â+ùñ‹¹Î|ŠŸ¡ØYºnGúg¾‰ÌÞýrÑY¶˜x2Gztkyq§êtDëÐlvœ9I!„d,ŸW˜çëp²ÆCJ÷á–è4ídžZ9œ¡EÑBMzøv|zäy¨žu¡JD¼ùZ< ÕxçhÜ(‘5ï 7œŽWÓ(Y¿(‘¼4–Ð{JrØÙS -‘w:è%x¦AªŠñbòüœ»½ÀÓgü?º£u·|Òªé ³ò̸þå²Æ@‡€%¢ÿ~ZTjNÉ˱å"G$ŽIˆXÓe*Žy+ ŽGu²sÑ:Äùc~«‘ÃOCõm2'Žú¦Ì–r{¥ÃQ'Ú|¿Á êÎèÍ ¿'ªœŽkÝ!—urç%¬örˆ€*¡•f&fÚ#›^àÀ‹:Ã’°§¿4(;;`&>÷ã(I©“¢sÉåVçŒXUÎÙ¢ÁõåUÜÎͯ ÊõjµBë0骿æW5ôPOÜvÔ(?CwÅç¢ÁƒeZÇœFtsr WbÍ"s:t(ˆÝE> éð—5n™Õ¡9žyž [£ä/´}.#Ì"yñÊ ˜ΰ£&ê“,Œã†ÆÛíbX¬HðFá.3sG‡ó×YJš4ZÔûþÈCÎɨ¯Œ¹»òÔPÌrÄ:óÍ\{1y~B‡¿ã^àéó(vÄPSù­ëW‹¯ß«†¯Þ'­f¤wœê_®htX’LOv=/)ÈÍ+¸ÓH§éD•í30_‡×|å]êÖ™º*-{~Þ'*{)÷z±cy½4:{ÈÀ^/UõQæš©†U1ɸ9g'…Ñò¯cª°ÂÌåÒ`kÿ[‡ðŽ8e¹X”^ˆïv–!/iÍ›ÊîÎ"ˆ‡3—_­LZùfð³RZ%4šžŽ;Ùø6 o«Àd¢ÚU3Já$ï]ïçkÜΫ¾vq,&QÏÈ·¡»k§ìQ»ÛñðÛÀ":‹ô ZlsJˆùÿb#jË>Õ®“™¥N~ÇTÞ¹z¥–³‘0EOBµµbœG`åÈóß„æõaE¡BM…¥ýlœtÈŽ»1!¹}{.øo£Á{uèXtQlѧ§áÜJ³–ãËÕù¬¹‡rÔ¥ýaÚ~n;è'«ƒ\B‡³.î:+mܺÑÌZœmF„4|{Eh®;¨ù¼äÐô0ß.LË¿§¶/Î=Õ›c‡%¸¬ª¬¢»!Þ?il¿µÅ>6‘Cë»NÉê?â³@ß<Ù¸+¶èìFêÉ÷ïøZí­è¡[¹HetßzÓ]-"ËÚGÔ›£n$íÂ)}﹊¥”pŽ*Ì&±–|Ý®éª{Ä*—bx#4NW ùæ†noó–7¹Ábž-úÔË>öQSß$)ËzI§ GQfbDߧ>èyŽ:yˆ<8v¿éã8ÝÊ-ÒV§¬/ºéfæ{¿iJÊÌ¿OÍÑMk®¾¡CÌ-rÍÑ;ÿE‡NËÊ ¤úÔsrLV“!ßjJ›²J±/Õ7þE¾Æ,7qËiÜÇ3pîÈÅž£w¼6O= sôΚ}´À#ÀjúGQhÛ#Aô•…ºøå¾øaݤpÂ×vd`Qy~X‡¿ã^à»Ål fž¸¿šë`‚ë–“ÿ§÷–€?Ù9ºË4;YŽƒâ—-#<ôÊIÖ²w!þö{ñ»tþ@°`ÿ¯ûƒÃO=†ÿ/÷qaµ¿ @‡àdz¢£®ih -BDÍ%À»˜ûß3=ÙÓØô]Fx?ã7Êÿ{ñ»tÐ!¿  ~½åqüé P( C,u€:ÿ  <2à·è°ä{e"cörŒ€ˆ„Š™w§’¥ðMcݬwSÒêIé³oùÅ€µ'¹8d¿y7;&»«ƒÜ"'å~MÂ{¯å–¬\Å„h)Š¬`qÉŠS1})ëa»]’—š{-Ý?õÞG<­K²|ã‘8äxKC;‚‘›‡•Œp²!è\’äÍ•R2£9¢°iB2páø5:,QPðU÷Š‹Šn6ò)_ B_Á°Ö;*¿æ*Û™wY™w•£7lýiûêéú´“.É/<ûVuÝ®]^¹»íôèëÈ“¾%o:‡¦HyvkxXñªÚÎË“w¨ÄÌ4¢•üµ­zhï^ŸKn›ò|<’ËšGˆ¸÷;‡¸îc$Bô?Ž;^ð¬ JÍ#êàzpº$ïÔH]š¥e³gfðÎþ0‹zûŒ¨ÝŒßÖ -Ú’ƒ™™´k¿Å õ¬^3Q~ìã:²¦³ø)l“Cì9)Vœ+9ÌÖâ<„@뼕õ®|@`^d½²¶Ô™ÓáØk+ÝPŠ=’2RG…¹¨Á‡ÌK - CÀR9ÚZq­°èò§]”ûˆeM0qþpìB¢6<ÇÌ*yR")ˉ±Í©o©ù÷n·´zq&ƒW‡os -ëéW-§™~ÿ0,ô³3$«~Ëåm±Fƹ$GøÞßèÚåŸâ"B\å `Ý&æì°ƒº¿¥ƒù¨²0íP©­ºG5‡’­ž0Ù»F¢ýj¯(zÕÁÈWK wÞÇ4Õ¬¢—ßD!ÈÙ…•ì= Eð>¯ÄÎL‚G‡ÚÆwîzšðx—•Ò»˜ø›´¸#Ë0“!?`¶ŽÏdÓ“í5u5XÙ:DŽÕ•])¾Qú¬‹\𤴤äA!Ö½è+0Ð!`‰›E Ã!S'cÙ-èú³s¿Ž¢ÿ'!û~»ð32ì¤c éPÌUÁ²q|¶óŠ6/e½2Î<:„÷–„{Æ–¼}76W’w¥‚]IØÆUæ2XS¼ža\;½thŠËV©Þ<°N»DöˆØÀL6Qi/o^»-*×ký—ÊÃSƒ- mmbüRûÄbSmy&*J^ –³tß Éû œî#L‹ý]ÂÍ<Ž½_hÎ\e&¥Y$%¹5Y껨ÂuyˆÕºÅwF{Þ0béð(Ä`ÔРìZ:‹©†«þ墯À@‡€%bàQv\fAéë16áCGÝ·úµ¬u×®“Þj|ËW¬d¥œ½Ô{e*có^21Úû‹?HÎhcÐFÖnV‡£'䬚ÎêÐ[Yï>NÖ¸+Ý#—´µ=ÂMXëçzvÔ’îvøÐü©^ëÚÑ:ŒÎõZG‰Ñj¸ÜTÖyL/=Iã³]PCäÝFµ.¥h¯ÀóÍÆʼ¶Ù s¿ætè`”:«Ãf+½|ñø5l~«ulÒ!b¸åé›7nܺ_ çÚsLIWKŒ‡ò—¬Üøó:,I¦¡Ý¯J¯])k¢U±¥Ê”¼kZç¥dTJ­âj#ÂFϳnE×i“Ç\NŠ•n%$JIéf—õÔCvY[¯Ž±t²ÖSÑð6…¼‹í6DylHn;“Œ#÷}ÿ—óó˜Ó–Ðö®ßa³¿&¬˜Ö$1L•µ¯ å61/?+Q{¾o\‡FòE%ò2uÚªvº[É{›ÌíÏ&ÖðqRŽ¼¼œÒºÖ?Ëo]ËÕ»ý¬tÈÎû …ý»Îgxm¦Æþ.Áº±3Ë {aî×Â:D|¼“tm£õÀÝô„ñ7öšÎœ.I¡û™f„†k¨jm -v Üíâ®È·V€©æÁÓwM)!©c{ÍŒw±0 o#?£d^Å°í¨”´´ø.~†ÿ¦è+0Ð!`Iƒi­n뎰;Ù¥C¬=ÛÓ!öaÇ‚jCHaô†žD{›”zrÁÓ5ˆf>Ì…¨N>ášúÁµ³÷q oDAØ&ÜÅÒëÁ®%õc´kîºSˆ”‹$Í樫÷Ð@[£\N=­7Åe›Ÿ©·ý¨ -ÚVp&æÆÛ^8€lt’+?éÀÃ0§³Ù¯Gh7*ºû°Æ*)§Í4EºRç{CŠ\8 -Úà+‡ÞH)x¦(UŽm±MNU§œòL¼ß2I+ fêí*¿ú›µŽ/}âΆæT4B¥câ]ø1ÞÃþy¸¾Ž!î–÷ìý÷ÏçïtXâ ýÏ ¤LÛ¶¹–…{•Rèåäš-®æ/´)HA)ŸíÂü/3r¬¹®mŠ‰‡|Q¯¢Fëи}§û)ñ±¢³¡÷©õssL¹¾ù•ü÷§xÏ•Œ;\\Lˆ¦ŸÐǬE)bC2zϽ6 K Óð - Ðã{Û(Z‡R^"›fþÀ˜¨óõLC¾,,!7û¤ChÓy•¤ámFNªЦŽMªÚËêOÊê?ä5w~Õ´ûB¦ q{K¥¯Sè„Òw¦à±× GMOvV¿xê6a_°H¢ð‰†`% -¥“f\OýK( sÓM~û’3ûïÉÔWiçU·×ßNÑZþf»¹“ ÆÔ‹®jŒ1ÄÝò£üó:D!¡Ó„ä?»0tX¢ à*oåå]¯P#.ðí“L/táh´—Ò|Ê—x-z#üQô©€¬']p:QCWñsñÙk>£!S±/ÿ˜¹¦üœŽv[Òpªiµ‚÷ˆ/>£UgÒ¶ñ0g]Y#å~÷¯c,DµÉŽ¶ñÏ|Vwܬ^›g%?w5ÉVg%©ý’?áz_C¨ã™âWƒp2&¾½:Þž*Ëcí/½!X/ÆßråŪ x¦é‘˜Q|>²fóúœ~éÈ5=½t½ôK2/Íäý{çœÙÚŸuÚ%înã0#ï!÷(σLD3— QžA9O:¡Ô|b®ç=E™Ñ¥†áÃ5 ÒXÏFîî 1¬;Q°é{Z‡Æï¬0Ý3úÜð¨é€Áœa-aò*©dÖ™jì$è¿ ~²êW×DGÔ›Kš´Ë,päZè‚{ÑQx»ô½sc½Ù†’—Ï]M¥{—¢$ 1ÏK?Þ‡9>(¬i7Ã<[¾œ ›d×v—çÕÖL<ŒúÑq6¶V  8 « '±c5ž·ö~ CÀR9ÒüèJ^^þÕòNʵ%ŽËˆ±]е~wìb¦ 2[ß(nZ''S¡ÉNÁ¹æ/cWæç¡>pùh—z;Œ/ž kÛ›ÊÚ ÏÓ÷üùihù7ðwVÕ´¿ýúç3zî0xË â¢=qÁ÷&C~¦Q‘–œwÏ{ÇÏBnÃ6%Íê°Wúbº>,CÏ$nR2£È•½!=·–q5;ÍtoY@À VÏÈCCúw;8nyTݘ„W‡o0£œÝ!!nç÷ÙŽ½5R['“D\ ·¸coh¶Ç.âJËã&-ÇÝ]wQ÷5µ±ÓØA7Xb&ïü–SÝÉX„¼»žè¶(Ó@¡†¤{ ”bœoœûÁeðz_µì>$ -AÁ±CíÄ9³]Œø&ž…u8úÊDBïéV.䫦 Ö=æar£¶ú/Èè)XµXçV[¸QV99†+1&uÜýšý¢nË<âÍ£òÁø‡uˆsâž½yæÉʆ çsç¬(Î’³ ?1ÎèÿB ÔÝJ ðI«¦3ÌÊ3ûö˜–ˆþûiQ©9%/Ç–‹‘8&!~`M—©¸q›ˆ‡«à ¯è†-9[;¬1u8ªàD›ïÛ/;óÅ07ÿš¡g1Ý“¹è ÛI5ˆÎêÐCZíöœM:öœñ×àX¹ŠŠ2Qåt\빬“³8/aµ—CT™ýŽoûLû5bŒØÌ–ÜŽë`Ÿ- êÙwÓBÁù-—†½îNVÔûêŠW„5'žœþ˜ÓÞÃjëá]¬(:“Jœx&uŒýJ öPëд×ÝFÞúøõvSý.gœ<’#^Xc¸à±XÌÙûi±tÞ–ÛUÌ(pãFçS?:ÎÆ£6• "ròò’{ÿb$ž¹¶PtüxÀŒþnÔànú‡1Ã’q)føK±–4Èá–·­!æö½è[ix‘oÎÉé]gqÌŽ;Üëœý´NÇØÀÃMieG¬¥ib-ùº]ÓU÷ˆU>Mað®l‹¨²Ö!õÖ¤yËžhh·ÍnÁÔ¡×ÔÛ8{ûä—ˆÕ;VöøZí­è¡[¹Hå´‹K]SÞ¬;*Ð^üï­48QJ ç¨Âl¾öùR o„Æéj!ßÜÐímÞò&7XÌ3¢EŸzÙÇ>jê›$eY/éä(ÊLŒè»9»ï0jž£N"ΆÝoú8N@·r‹´Õ)«Ãˆnº™ùÞo€’2óïSstÓÚD»˜ß¿.JŸñ›`e¡.~¹/>@X7)œðµÝÇxæè5ûÈ„G€ÕôϒжtW‹È²öQõæ¨I»pWf‘‹‹Zä­4_Ï>–u,­)§“î·@鎘z¹)p“ôÏ׈3G˜Q}˜[D©bpΖuˆÞ‹Š¸³aÙúa¤ œë(4ø»÷cœ?kˆú°[‡`EÙøœ8´ì;»7·_ëWN>¸à–û¤e ({!Á…g7u'ö.x,söÆò7ÅØbl‰â,ÊÊÈÖ~—ð£ãlÍXS \·œüK¯æYÔŽþVPÿ~;Æ{!Ãß^é:þMP­7Ë:ÐEƒK}Îd#µ²ûPÇïǬ{ºL³“å8(H¹\õO‚BN ½r’µì]¤K  Càß5üÄMDZ´eIµBXùäY‹ êÄŒýþÜŸ| °t:ÿÓuMCS"j.n¼Ë©ÿnw&{›>¦ )Wðó0‚êÅ€:àÔ!Áý–( -èK C€:Ð ú'Dp²æ´²ÑS¡¨o!JXK„¦v›_²NŠ¶ùËÑÏ¡ÙS¹™¤å¼šnjÍ¡è,Ÿ TX[œ›Ç•Wa$Ì|{Ôì-¶?ñrÂlo݉*Wy£»ýHê !¹±;é°óØ)q÷%xœ)~ÞØ3µÒ"=Y“ýÌr°<Ê- ÿíízYgo–$-í¬™Ý"]¡ž”nõÍ÷ `íÅ¡¾ ·jÞéù¤BcxIÎk -VCo¤pËŠ—bÅ÷ÉLŸ1z8ý)äûýù¹(Àÿ CÀ] -µ7Ï\#¢ƒGÉJkyû“·[m( k9¯¡u™åüŒ ¨ßâÏEý}à½×rËV®bB´EV°¸dÅŠ‡©˜¾”õ°].äKͽ–»ïôàC+×­´dmö‘›F*ÞpÓ¬ø££uUuég}Ÿ0X{ÛðÒÐð®ã%ïÍÒÖˆþˆ„PÉÄgÚñOÔßäÞÌEÚ^ó€LÆW“­› £uI<.AëмYÂÝ娰-;bJüÑ‚à,$É›+¥dFŸt8^yZÕ¼œÛÈjë³óq-;Î'ëu¶U¹ENÊ}G$°–híÔá-º6Š|°–.!Eµe 癆vÕ¾ªˆtš´Êø†'‚ÎÍï!ÑLHí‚ýYL - ›&$ûÙò¶€ïtX¢ à«îÝl\o&|×-“@/=EkÅ—R¨ñgÃòžuÃéøê¸8µ•µî:ÀÑð ‰r¯s¤›Å[3Ì+¤pަȓ¾%o:‡¦Hyvkx¸*rM”Ç /xÖ¥æupî4ǎ•âôèkÌJ%Æ*13͆h%Åm«Ú»×ç’Ûæ<ä²æ"îýÎ!®û‰f.z1Z?¸ ]Èwj¤.ÍÒ2‹Ù33xg˜ŠE½}FÔnÆoN±SÝYÚj ôç²#7u{(š¿=Ÿ‰~åãìEÒ5¶ðOýGöß2W -„h®{—üNéRŠÆŠ¯Ï¹OTžP2y-“ë/DŽÑúA|eÑ:´ê1Åcšyy¨Ðof–¶Ô™Ó!¬9XUÿWp^_£¢uûÑä î©W&è±úÎÕXk”†n&©YF²âò¹âËÎóíN~£‡³ÿ=/j¢:Zûî¤'ú~ú]åVº¡{$e¤Ž -sQÿç¯6øÃ:,5£­× -‹.ßxÚE)°ÿˆøñ#ì©f¶ £óüÖº&Döß±×ð¨ã×sPXö**ð -\:Ô®ÑÉ¡šAÁ^m"1ø6­Uz²MKUU}Î9Ÿ‡ôŸ¯¸!59…õô«–ÓL¿z‹Ù-Jþªåéj%[=a²wDûÕöQ´bGñâíž}‹™ÇÎáÕÿU‡Ié–ËÛbŒsIŽð½¿ÑµË?ÅE„¸ÊAÁºMÌÙauKóQeaÚ¡R[uù­d¼j èU#_-u&ÜyÓTc°Š^~?… gV²÷4ÁóÊ8h£Ÿ²Ñã=q©*†êéìAYAè겘:D>sPv|¯®}ÇÆé}AüóK¤ï¯;ëøÕm÷ËðØ -½†Ñ:ÞÙü[¦™—g;-!¦6Æ+­eÍ^‘ÑQ°¨¹®Éu-ãŠ*Ù€ZH‡c•Ör¦/I7­DV¶L°ì4ö?+5æ,·¨<[‡3#6YuéŽBŽÕ•])¾Qú¬‹\𤴤äA!ÖE—·| CÀ=¿XÔ02u2–ÝÂAN™›L6ÍÓáx¥½‚eãÞ¸ì|¤w NËØR_œ™•t­eíûä“ÒLW“a/{Â{KÂ=cKÞ¾›+aºRÑŽ½4 i[T®×úy‹¯ .–âäQ°¢+ š¯Ã™ÉÖ¯g×N/šâ²•†pª7ÏF'¬“û è.‘=¢60“MTÚË›×b¶>5ØÒÐÖö(Æ/µO,6Õ–g¢¢äj9 A÷ÝؼÂÁé>´Øß@ÔH…’Ëy¬áM3÷q문ÙENLB뼕LÊ7…%¨UX°ûg…Š KL¾Š4u, TŽ4Ú8ÓGÌÖ(ðì<^Ó`å@puhÙºÇ/ÐH`ú¢žAéªÈEéð•œé ’¶®ˆ"Ÿð×¼É:™:V‹ÉóÐ!úDÀ<‚‹Œš=$ˆÁ†;)¡AÙµt:S Wý­)ð CÀ1ð(;.³ ôõ›ð¡£Gˆî㇦hi_"4Hû²Ä‡£Ã1[šË!C3Ô²–±Å¯ÃÉw£{ä’¶¶G¸ ký\/ÀŽÚ²—5o‹ÎõZ÷:Ä“Ç’îvøäŒmdíæ&Gâ»îš¥ƒ›l“Â9f ù6>-¯xz¯ðr€Oª×º6G´±Z‡ _#^n*ë<¦—ž¤Áù¹ïÐC#y·Q­K)Ú+pædo¡¾ê³íí‘U‡ÓæJp`èÖ§¡•Ø›û<³Ä…œSk)&Sí¬’FŽž‹´¡'úNëóÁ5 -_ÜÅÒ’Õ!y¼ ŠÖ­Ÿ9MelÞK&fXsc±´)PEïgXAø&È ûQ³$×v{ãÅäù9båAâÁED!†[žÞ¹yãÆ­ûµp®=Ç”tµÄx(z!@‡€%É4´ûUé•Â¢+eM´ú g‰½õ¢ºùT¬4·µW¼Ýj¨Õí¦~ªAÐÀAŽéUtàe˜Tˆ]£³k¶áÉ:j‰(-¿Ó‡Ø¨ÙY†}• oSÈ»ØnC”džä¶3)ê5»Ÿ­]¡j§»•¼·‰`Êf¬¨UìäX“Ùd­§"fGîûþ/¹œ+=ÜJH”’ÒÍiËNh{×ï°Ù_VLk’¦ÊÚWr›˜—Ÿ•¨=ß7®C#ù¢y™ºÇ—ÖÌíÏ&ÖðqRŽ¼¼œÒºÖ?Ëo]ËÕ»ý¬tÈÎû …ý»Îgxm¦ÆýšÃTõ®!&¶Ïñ¢FŽ5TÍ¿•†‚¶ÁO?®îå´~²ö¼Gä°ìÅdù7žzA¯ÙU\Œv2Í8­óy’g~ë»éñLãئ™z_pb^"^¦šOß5¥„¤Ží53ÞÅÂ,¼m÷YUó -cô-0±Í"ç³N QAë¼”ŒJ©U\mDØèyÖñá¼D5öÒCÕú… ™“8âJ@lý¶È,GHà¢ò, CÄÀ“{X=fB`æá†ßÆ:‚ìã Gq´ÙÉ™W1l;*%--¾‹ŸûÆ'Àßè°¤AŽ´V÷³¬åœ|œèUø¬mB/ u>Ênõø£Xïˆü]pZÞƒÚ.Nbãv²¶8:„À»óOÙÇ=l†QmŠ) aìQR?F»öàþ¡;…Hù¤õž‹³y`Tk;¹ÍÖeŌ½F„÷^ÇÌ#yŠ*Ê9¥ž\pÇtÍb…¸Pž >µëN§úmëðW·¾Ål”zà…ŸkRyK?”„y­„Í9ëƒËˆýŸöݺ˶ò€è‡-}Ú›Ž™œ0=À4|ÛË6øaË Œdï%'U!œ2g}i¯dù`bý™ÌØ#ˈÐ+xón¢Z­ÂÙWS¾”¢ÏE†üpÕP)`Ê4Îê®™Õ×ϯÛJýèÍüÖYðV•À6 V[4›cÒ bÕ±oGÚ0UuÒ?oö —³¦;Ñ?ÂÚ³=bvŒ!¨6„ƈà¬Cý#=B -_„°ÉØŸ±ØÍ\TžtˆÛgôQžŸ' VºÀëú ú*?*¤0‚¿µ& È~.ü':¿³¦é6H¹ ÅNþ+ Æ…œ®tWµÿýÅRÀoÐ!ø…À~ ÿ¿î‹x ð{t~!¦';š‡§ DT«øÖà_ºýo™†ö67÷¡Ësò®ae„ÿ €:àÔ!ÕßÉÀO0>>t€¥Ð!@‡h}âΆæT4B¥câ]øñ½]dÿ㬜*)Miö)ÿûSQX[¬­Eú«î!$›à!Ý“'”x |eT3ºçÊÿÒlŠ,NÚÇ€u/ÛDÕIi­òIW6PA›B•óØC3 • ž|þí¶¤ñÛHš‚äT“ÞÑI, -ÞL ¶F¹œ,zZÿnŠË6?So z‹“sÁ‹¶PRýÚ'œÕÖÑà>g?^iL«´I³9êêÅ=ô¸Q<}1˜™'ë±ö"zùyå´™ ¤+u2òÑå¨ðÓÃÅå6øÊ¡7R -ž)J•cÃ÷(vfä§ëÏâ¢ÿ?€KtùßžL}…v^u{ýí­åo¶›; .ê4„6)(å³]˜‘Íâ[ü¹¨¿¼çJÆ..&DSŽOècV¢±¡½çŠÞNÐåix…èqÊÿ”wè×ËË4ྮ%ã·*º$1RSY“rêL9£ƒ¿#? -ÿ~ŠžTe…óT -— -]ø(&ê|=Ó¤/ KÈÍæt8^ëãw}ÅŽ­«I[óÎ…ß#SËηÃãÑ:4h”òòÙ$@G„'*U"×#3Zc{ÁGÖS]ÝRéë:¡ôm‘àôpqy¦';«_< -u›°/ø†±3Í„üxðE¡ÐiBrPþ÷Ÿè°DAÁ?TÞ.ÊË»^¿ÁzÇ-ÇTBãülý•_Êÿö?Š>õ¤ N' jèá*>b.nÒ¶ñ0g]Y#å~÷¯c¯uÅô1¯bùBÏ¿ê„“1ñíÕñöT[3ñ0Ê3(çI'”šOÌõ¼§H»v®§G^`æqàó‘5{/—‘o4d*fú^.ýÒ‘kzzézé—d^šÉû÷Î9³µ?ë´KÜÝÆa"FÞCîQž™ˆf.z1ZeF—ÿ…×\44Jc=W¹»/@Æ°îDAÂ>¦o—ÿíJU–»Àx9~K—³¤ÁÑK…'ø(æ.’®°Ç~ê?²ï†¾Ô9ˆ®Pw|·ZN¶îÊÙçÓGŸ50˜ÓáWÆßØIi¿\—|5l#NM´ßYá1 FÔüÌháîÅès]ôX-p]õsy¾ÝIü™qò ÆßžWÃ>‚{ˆ¾5óŸ/ŒU(È*ÈIìXý+¾¤à·è°Ô@Ž4?º’——µ¼“ríA‰ã2âÉúfu›“ŠC7|:ù}·,œkþ2vUa~êS—v©·±|Ë â¢=qÁ÷&C~¦MÓ›ÊÚ ÏÓ÷>_!ñBªÒskW³ÓL÷–Ü`=“ \häú–SÝÉX„¼»žèöAŠfì(~œR Ó#o0ó8»CBÜ>~ÕaF¾{k¤¶N&‰¸@oqÇÞÐl]Ä•–ÇMZŽ»»î¢îkjc9¦±ƒn°ÄLÞy~ë¢L…’î5PŠ5r¾qî—Ág –݇D!(8v¨8g¶ OúÉz/iíûSr5iɧp„El§%ÀÒ!j¤ÂRÚºW?Ö Ôô4ÂõòÅãÌèDxuˆè½b£âU³#´àìN:œÕÒo™+ -[c¸{ñs:\\ž¿­Ã™›¨Å:‚³õ=ˆBŽÖÜÉ+(*.©è$_DV^VVt#xŸ÷ÿ  CÀ=¿V1±t³Tæ¤ œ­? ®_·ežÇ^[7¬?péò)²þRÍã'Çœhò}ff%ÃSq‹Ê™ùèr¬XËžðžkA®×^wΕí]¥êÂYr¶a{âUÿ óNëKqò¨8Ð_ œ¯Ã™ÉÚ­®ÕJ/®?Õ“eªØÎ{X|Ïî}b‡7³’¿¶8¦_ÙúÔ@S]Këý¯äÇ.æ:óM<*~†bg!èºéŸù^$2?xÎkBQÃL¥ìm.š]×ws(º$‹~Q'¦'k<¤tn‰NÓ~l¨•ÃZ½‹žŸ§Gž‡êYçªDÄ›o¡ÅóŠn¼¦ÁšŸчo/~\‡‹ÏóÐ!úDÀ<‚‹Œš=$ˆº[‰>iÕt†Yyf\ üïÿ CÀÑ?-*5§äåØr‘#Ç$Ä@•”’ˆLó>/ñáêpTÁ‰6ßopÆ‚º&bføu8Qåt\빬“³8/aµ—CT™óŽOãö¤«þB? C<ªènˆ÷OÛom±Edïê»Nj>/94=Ìw£ ùâ](Æ1ÍToŽf”ಪ²ù™™h{^ ãìÅd»”V ¦§ãN6¾ èÛr0Aô?¾ý“yÐ!vf‘C;–Maæá…ßÄ:‚c Gq¶˜KT2ˆHÈÉËKîý‹”ÿýtXÒ ‡[Þö±¬_9ùà‚WXî“–!ƒ ì…îñû‘ÁÙO;átü‡ <ÜŽYˆ›áèïÊv±ˆ*k‚QoMºÅYæk|­vŒVHôÐÀ­\¤rF¶ö»„Ù<0jž£®gŽ R̽F„÷\ÅÌ£”pŽ*Ì&±–|Ý®éª{Ä*—bx#4NW ùæ†noó–7¹Ábž-úÔË>öQSß$)ËzI§ GQfbDߧ½@·îä!òàlØý¦ãt+·H[²:¼l覛™ïý¦()3ÿ>5G7­M¸~B3òÌBÊèÞå¿Âqf"ô -Þ¼‚¨×h®è˪ç䘬&C¾/Ô”:7e•b_ªoŒqÓPžI”ü‚·á˜«-´RpÐJKÖf¹i¤â 7ÍŠ?:ZWU—~Ö÷ ƒµ· / ï:^òÞ,mèH•L|¦ùdCй,$É›+¥dFsÒš¨ -¾É!¼™‹´½(0æ™bJº%îÖ¡y³„»ËQa!>Z"®eÇùd}¢Î¶ê ·ÈI¹ïˆÖ­£:¼E×F‘ÖÒ%¤¨¶¬aá<ÓЮÚW‘îQ“VßÐ!ö¾Í„Ô.ØŸÅD¡°iB2Pþ÷Ÿè°DAÁ?VÝ+.*ºÙ¸ÞLø®[&^zŠÖŠ/å*âφå=ë†ÓñÔqq<2j+kÝ!t€£áAå^çH71Š·&2f˜WHá¼M‘'}KÞtM‘2òìÖðpUäš(;^ð¬ JÍ#êà*ÜiŽ…+ÅéÑטy¬xUm?J%¥ë [ËØ|”JŒ;Tbfš ÑJŠ?þÚV=´w¯Ï%·Íy>ÉeÍ#D ÜûC\÷1Í\ôb´~pºüïÔH]š¥e³gfðÎþÿ±w–Q-m^JºDBDEÉ‹ˆqQ PPº»;—ZD@”.)¥AºQQP •kŠ4R‚ ÒͲË~,¨— ýî5.óüÒeç=3sΙggN¼!* vi{W~9ýoW†¶Z,ÝùÌðm]nŠæÕ‡bÒÑɆæ&I×YB?ÖÙwË\É¢Éÿ6á­Òå$ù| £•ÒÖ:ŸæpŸyRɤŠïb6v® ȼ­ºMñ˜£Fä©×ªúEì9ÜM¶ŠÖíGÒl8¦+MÐ}õ•ÙXk„†nú -³´ÅÕ$èyê’ã|¹’ƒÝöÑ…qPã5‘zØ{pÑ×K¡s­Xé“ï“”‘:*ÈNõ ¾¤à·è°Ü@Ž´–_Ï/¸Rô¤“‚WDLü„k²´qkdŽÏæsBdß; ·z={…U•þWáÒÁ¶MŽö5ô -vjãq·i¬Rä¨[^½jÈ:ïUF÷i†Ä©ÍÊo [¿šzæ]YHð-F—ùk–gjÖ(AõIß6‰¨ oÅ.Å…“Ô|f¤3Ž- æÑ÷·ãS-W·Eg“ˆq¿+êöMr"~e¯`Ýv f¿›ª¯¥ƒñ¨² Í` TÝmáÖ­¸f èQ?E¶Aêl(ìÃtS Š^n… cT²s7“vi²ÉGÙèѾèd•rCõTÖ€Œ€ÔX:D<µWvx§ª}ÇÆ iŸyI|:^"ÞÝ€éøÔïòIûœåo_2 V)ŒÈc/­eÍ*IiəԜ7f;—²GämA-¦ÃÑ—Ör¦+¶­C¾lgÚcì{Nj&·¤8ÿ·g{l¢kÎ¥B^¤r´¾´àjaQÉÓN2¾Ã’Ò’’‡˜Aúß CÀ2=¾XÔÒ6u4–ýs !d~0mܶ@‡c/í,›öGgžä^Ñ×Pá̘ ”êJàÀ쨤;`-k×+Ÿbº{ÙÞSêU\ývt>mï:E[Ö¿æÙ›,¾.ºXŠGÁŠ¶8dp¡gÇ©æ=Ãèv:éà$§Ô„Ó=96:!o8‰ - í=¸…‘tü¥¼yæÖ§ZÛÚ^ôIî=• å//~ŽZÍDÐu7*(ç½``ª— Núßár%§Aó(Ûf®cÖÑ’LD,NÖ{*™<Þ«Vni˜Çê›,„N «Ã™‘ÊpS‡zTLôÏd’–öeBƒ”OK|¸:•R_ œµ æ µ ¿'j]Œî‘IB¡b„u>Η¦ŽBYK^ïŒÌöàÿâ‰cI{;tPrV‡6²¶óƒ#qÿ]WM·’òmÐøPÅ5séšž<.r/ÿJ=¯W²›Z‡X[‡ ÓÛ?6•…ê¥Æk|²j°ÌHÞeDër’öZÜô¿=ùúª—èÍvµ‡¿:—b670cèpª-ZC+®ýSú_F‰KY§7Qà ¦d[«øá£çÃ-…èð‹×4xKá.–oÊñçj´W´ný¸Èi*cóN2.Íšã ‹¥Íþ*zEl!y¡Û Ï-dìFÌâÛ팗çûtˆ‰»—P -1ÔòäÎÍ¢¢[÷ëàìûŽ+éjã¤ø%3ü~–%3“]•%Wó ®–6ÓèÇž#öÔ‹èâV±Òü“´½¼z‡¡V—‹úéF>{9†ÊHÿ+SRA¶M0ç^lÂß$è¨Å¡´|Îf¡beòV6¼M.ï݉x”ÝΠì¯÷Úõ\ÝZU[Ýd=ÍûT2’`•ZÏJ†5˜MÔ¹+bÆ‘qà¸ï[Áîè¯øÒÍ¥˜D)>Õœ¦ô¤¶gÃn‘ÚB“¸UæÞ¼¤ÛÄ\<ÌDí¹ÞÑ ‰Jd¥6ênŸ·Žàel:¾‘›b¸"10©u“o†˵»}Ìkh‘oîdžå÷ _HóØN…{N½QÕ»J@„ßy!ËG€ -9Úøjá­4ä4>ú¡puÇ]tu܇dU><~ò¶9)(yt¿™±0£àÞõ÷]ôªXUœŒö ùâ](Æ1Íô»¼“˜¥xj`FÙÔuNÕ¼œÓ} LÔk¡ §('ë=”ŒJ¨Tœm„Xè8ù¹q^Ž­pSµ~Îgæ(Ž¸êÕ°3<Ã⿤8‹èÑÿ×=¬ -2 0ãpÀocíAÖ±ÅK­i³•3E¿ó¨”´´¸0=HÿûOtXÖ ‡[kú˜6±M<Šó‰ÈÚ6¡ã•ºa»aìa”gXîóN8 ×!m'Çcc¶²PBà]¹§í¢ËÚ‡¦(·]Ìb}èVÜ0J³éÈà|¤||’zwâ\œ)ÊGì\£/©a–Â#Â{n`Æ‘ ?MKj ãÛ=Sû€X!:˜ó’Wÿ™dŸ¾êÖ·âƒ>÷qŽÜÒ7I¸IÂæ¼õ¡UĈ¾­@oÝÆiçc¿È²–ÞqÍÚmÇMNšdºí ,k˜"YŵOÉÆQU×OhF*ì”, o>›%¶Š½‚·à† Ê *l½ySÊ—“ôÙI‘ï¯*ùM›F[Ý5³Â¸i(Å J}ÑÛˆpLƒµ­/ÄÙ2ý8â”oÎÜNçL÷ /NµgºÛG•uŒ"(·å_ÂY† úÊÂÝ‚ò«>@˜dìÎZì] XRœEtˆ[gtKÆñ‹’Î3ÇÚƒ¾|ÞÊ_/”ÆÓÚ8ÅËÇ.þ€_ˆ9Ót$]’b%ûeÓÿ½tUµ{÷õÅRÀoÐ!ø…À~ ÿgׇ%<†ø=:¿3o_MCˆ(×soÄ¿tûs™™ìyýºþ—k#=Hÿûè C~ARRâ¼µ €™±±1 C,w€:þ/f¦á ȹüæ–=#Ït™¾“K˵cëð–S¾ÊU³“ú[Ër.)a0~}2²j)¥4¥Yñ¼^s²q¶V)]ÓëtþÏ }SmQP‹ÔÊ®A$9 ßaÝS'•¸½eTÓºæ“So /Œ?@ýk`¼ÖMRí*\8²0€1V^%¶Ç?Ý*CÝðéðÇ/²e%ìòÒÿü „fgülÏ“4È©Æ¿¥‹+ÜN…§‡'[#ayÏÛÞO®`âÑ> SãÇó.ð±—vǵJz‘ÔÛ#®%î£#À-ÅÙ{ÑéTÁ“†·ÓìÐÜt½¹÷Õ"ûËBÏeV ÓlUtõ5`ŽRZ¼çg#cÆ™hÀêŸÈÕ—äqâ|Ú­|g ’åXð?Rò­XÚÖ`+°ël½ãš¶êO;ž¿Ð!`™ƒBö=52ÿN"G_×·M3pr³`¿yô[˜lPPÊe¹„»3ojjZ^z;+ýøáÞ}5í;;¢9Ë+ø³[AÒ±A?½gŠžŽ[ÐIƒ©¹xépÞ‰Ö¡úµf™˜p>O ŸOÚ¬MÛ÷¸y(±Î9d¬›xiÚ«ëGF}ûv»xjñmÞÂCÞ¬¬pá=‚€Rár¾79®Çê¼|n¬Ý½cÊ֜ó¡÷HÕ2smq;-ƒ&)7 ¡m¼´DxJ%Kd{§ VTä“™}ÔáhÕ)Yý2.s{Á¿ü#š÷^J7!n_´çÇë½Ý1â E‚Ñ?ܤݸ{½[Ÿ? †…ŒÛå}U‡ßØŠ¥mý¶»Îª !bð·˜qPÈÉB²Ÿ½ÄtX¦ àï_Þ.ÈɹÑÀ«FœçÓ/˜aÍÖ ¢YˆÖávøÃÈÓ~uÂiyE Ýœ¹)ÆfÇe“¶m²›ºŠµðAcšÌµóÞ!>ÿÈEÜØsì8âÃæâ&m[°Õ—6Qˆ¸Æz'¯Â)ÅÓìp¶°²cNÊÀ½_ÇÓ]ù|±ièÌðsÌRöÜ^²fè"Fƒ¦è²©—Å®ëé¥è¥^–©0“÷í>˜uvG_Ƨè»MCD+¹»F¸b Bô>ˆpÈúëÍ$÷1ç è¤Áð¡ÚDC£æóùá{{ýd ëOæÅ`øâ†Ö¡~ù«V®U¤¾kx°…Ä5eV‡æ=è~æ …ZaF÷›É[ÉT´ü ÈÞ"}©ó]®˜.µ¬LÝu“_™½°•Ò®àO¸²çݧh‘¿µÂ3Fc”yfxÔ´ß`^‡“M>²ê×6††ñ6˜Kš´OÏsàš^ÒÀÂ8h‘àö¾…„/Wòû[±ô­ÿ°Và©3 -3ÎÈscU?òƒ² -r»7ü´—/–Èáׯæää^{ü†bÓ!‰2ÇX.éšaéº÷ “¬öcgÆgÁ^ypùËÙNl5³Þª€¨A ö2Žõï]ÓÝØ^ý÷\äHý‹ú$þöº—gA?¿uzäñ(fœH§Ëjz'íñKÞ7iísÓ•¨›_¼¬Ks?sŸÞÞׇš†g äUjvÝÊ ¬Ô3=¥~~EÌžùq{Ú Õá ÌR0WHˇ¿u˜–kËÚ®­“N"ÎÛSر?8ÓM˜ø¥å “–®ÎÂT½ÍmLÇ5vÓ›ÉêÙÔ…Ⱥˆk‹2ôçkHºÖN’o”óŽv=´ ->;Pªeö"Qò5»ÕNž7^‰›˜bV‡†urGà©÷ǹÔþèHèwLY¸Xº`¡l¡QÃå–ÒÖ=úQ%¦gÎWOU~iGô\µQñ¨Ýœwn-ÎÜüKc4V) ŽVšˆë?'¥#gÖrçL·»³1öFÄvÔw‰·þQ~¥Kßúkž:aÆAŽÔÞÉÉ+(,.C¶YLV^VVtëO9Ð!`™>Ÿ _Ñ‹YºX* -²‘~Ž;öõVc|—tÒå1{tŽE¢ŠaÃÁËWNó’ö•hž85ª“™¥öÁø˜Q‡Èå«ç6Q`DýwÎj,¢P¾k½‹¨ÚâfGê\ïþÙïö›Š[¼WNÏE§uÅZ,…w_p»^Õ52Ÿþw½Az®^¿É"ÃN){ºë~ u8[v²1R]+¢•N>2U~º;ÃTÅ¿ëˆø¾½ŽÙÎL:Veq\¿fWÜ5ß-ŸOÅéþæú–Öûa ï'føÇ>E±2tÞ÷M'ž¸ûå¢s:l1qg wëÒòàH9ýÆ­C³¹~f[!$eú´Â¼P‡µnRºeF¦h?2ÔÊb .ˆhÖÃ×ð™ágÁzÖY„*a1æÒàY¨Æ;Fã–ÂÑ¡Ñk‘àPs¾™5â 1ߥCD/¾þùçtøõV,}ë?¬xꌿ>(Dý­8?¯”ZÃŒ3öœÖè°Ì@ôÝO‰HÎ*®]-$&q\BüàÆNSqÌ[ipt8¢“™Ö!Î ŒyV#‡žëÛ¤õNšKå4Z…¥ÃGš\ŸY êÎêÍ ¿Ç_9žÐºC&ëç"¬ñ°›TB+Íì˜i·ljž=×®ýà”’°£»0 ;[¶ßL|þâ('I_‰£"¬¸Ÿb,-J•m.ipÃ㲇巳skù²}Z­Ð:Œ¿æ+€y*¢ËôÄ¡#F¹iºk?% (Õ:î8¬›•e¸k™×¡}^”0Ù ¤ÃWÖ¸eN‡æxFä:$lW¼Ôö)0“dâÕ“S8ÝŽoˆ·0Ž:îc+L¿T‘à-…»XZÈQÊSo)iòúãb©Þ×{7Îçz.ìŸ]âà™1÷ …›ŸÕ>ôå²É¶¯÷\lfš ÑŠ9QUîÙïuÙe{Ž—[Béëa"zXó•Dˆ¾GÑçCóžvNRqŠÚû9Z…NÉ;=\Ÿbi™Á螸§/DÅ¢Á.-bïʯ¨ãߪíÚ$u¬­O½TÕ/bÌ àn²U´n?šfÃýËb²ÞSYïê{æD|´ÒBÚz@g^‡£UVºÁäû$e¤Ž -²Sý‚¢þ3–È‘ÖòëùWŠžtRðŠˆ‰ŸeŽ5½?~)Nžef•0!ŸáÈXL‡æTEFj¾=»,­*BÂîM \Ä«Ãê¬üºõ«©gÞ•…ßb´…AÂ<úƱ\ÝedœM"Æý®¨SØ7ÉIˆø•½‚uÛ1˜ýnª¾–ƣʂ4ƒ%Pu·š5JP=AÒ·MD"j‡V\3Pô¨Ÿ"Û u6v€azv~¦—Û‡D!ÈX•ìÜ …ð­Mþ[õ‘[{Ykë“/­eÍ*IiəԜ7f;—²GämÁžÎL´×Ö¿©Åšˆcè9Z_Zpµ°¨äi'ßaIiIÉCÌ?<1,`9tXf ÅfQKØÔÑXöÏ5èü³ó×GÐ$$e± =+úbt1ê:+X6‰ÄdÂÖ¶y(땲…áÑ!¼§8Ô=ª¸úíè|JÞu -V´Å!ƒ³Ì¤SÍ1z†ÑítÒÁIN;¨ §{rltBÞpÚ'zp #éøK;yóºÙ›?gžhilk{xÑ'¹÷XT2”s¼¼ø9j5A×ݨ œ÷‚©^‚48çÒ¿UDÎÖ7µÙÈZ¶îóñ7âIÔ3(YŽG‡Ÿ÷È‚®ÆÒáGPˆÆ;IÁ™u´:‰É†ëpbXÀrè°Ì@ô?ÌŒNÏ+©e<|ô¨˜è o­e­;…Oyªq¯^»Ž™bnV5Zi*cóN2.Íšã³ßKÎjcÀFÖvN‡#'嬚ÍéÐSYï>NÔº*Ý#“„BÅ8ë|œ/Mµ¤½:¸0ŽÕFâþ»®šn%äÛ ñ¡ŠkæRò4=y\þä^þ•z^¯dþ6´~"³=ø)06€zl* ÕK×ødÔ`™‘¼ËˆÖå$íµØgö¿^Ÿ[W‡©êoÊñçj´W´nÅ»X -@×!b¨åÉ›EE·î×ÁÙ÷WÒÕ:ÆIñKfwüÞ–%3“]•%Wó ®–6Ó¨@)s¤0ïš™¬÷P2*¡Rq¶b¡ãä_ÛyFÁ代¿âK7—b¥øT3ò+zêÁýÂÖÖ›Ÿ‡â_,¨sW4¼M.ï݉x”ÝÎ ãÀqß·basšÒ“Úž »mDjC -iLâBT™{ó’nsñ0µçzGwh$$*‘•Ú¨»Õ­UµÕÝAÖÓŒàel:¾‘›b¸"10©u“o†˵»}Ìkh‘oîdžå÷ _HóØN…}.ýKõ!Ø#NûøöÖ ªÏ¨š—s£o¥‰z-4w+ÍØ ;MX›S|°ìУ¯GGš]Bö:¹*roâe¨}ðämsRPòè~3ca&FÁdg•Ì_Ñï<*%--.ÌCÿsÖ@‡€e r¸µ¦­+ÌöT–!Sí™îöQe£Ê-Aù‘[ºãìl’ÈøvÏÔ> V˜ý2;¢&á¤sr‚}[Ï£®°¼m¸‹¥7ÊFi6¼“” ?Mû;Nt0ç%¯:þ3É>;;|Õ­o1Å|îãÿ¸¥o’„q“„ÍyëC«ˆ}£<ÃrŸwNQnp¹ðot|¨‰¶Û:W2“}¸ãï;£–tÙpï÷LX"@‡À÷~æa|êNÛð ÛŸò§éÀcÀï Ð!@‡ùuHI‰ÿ½†ü{Œ`¹tÐ!ð’Ù¿%@‡€eÏÈ3ÝcúO‡ ‰É8„”Ü wÐ.í BdߣŒ¬ZJ)MiÖÏࣣ™¾“K˵ã$[úÖGˆH¨˜xöª9Ò þò 9§^_PTÊ`ºX³“zIUü¿™j‹‚Z¤Vv "ÉYøëž:©ÄEÐè-£šÖ5Ÿì—z[xaüz<î{iw\«¤I½=âZâ>:‚ÉÖGXÞó¶÷“+˜xE´OÂÔ8{/:*xÒðvšš›®·ý†RdYˆã¹Ìªaš­Š®¾ÌQJÊ)³›Z±Nçk]º„R“Þrè)øÎ$˱,õљњ¤Óîq÷[&hx™z:Ëo ÿoüÎAô>ˆ>œUþzBÏ'}1Ɖ‡|áŸ?u×ß}ˆûÉ·‚{ôþøãùk–9(dßS)Ó¶.gd' =JÈõ²²Í––ów²9@A)—åÒ“9úº¾mš“›…lI¯™Fëи}ëiñÑ‚sÁ÷©ô³³LÙ¿xJþøáÞ}5í;;¢9Ë+ø³[AÒ±A?½gŠžŽ[ÐÉ~©¹xéð½I­Cƒ&)7 ¡m¼³?0Æê¼|n¬Ý½cÊ֜ó¡÷HÕ2“%²½S+*ò‹ÉÌ>êp´ê”¬~—¹½à_þÍ{/¥›··¼ôv Wúʼ”R3ojž? †…ŒÛå-Q‡($|¼1PI#\é”ûßb -ÃìT“ß>Æl»àÝéú -Aí\êvú»È[¿Øeîȇ1ô¢»«£q?ùVþ}¢“3„dß»0tX¦ àï_Þ.ÈɹÑÀ«FœçÝ+™šï´¦ÉNJó wÜõÈ­ð‡‘§ý2þê„ÓòŠº9‹›‹ÏÍùŒM}þÇìœòS8šñE¡”~ÒjyïŸ>£UgÒ¶õ[}i…ˆk¬Çq&¢ñºhÌS$÷Á 7k6Då˜DÈÏÏ&Yê­$µ+xboDp7;œ-¬ì€“2pï×ñtWYÝeçpùÁæc<-WŸ¯¿„gø˜~ŽYÊžÛKÖlAS/‹]×ÓK%ÐK½,Sa&ïÛ}00ë쎾Œ3NÑw›†ˆVrvp?Ä@4;mˆpÈúëÍ$÷1ç èTÃð¡ÚDC£æóùá{{ýd ëOæÅ`øÚÀƒÖ¡ñ[+<î{a+¥]ÁŸp-d+Õìïã¦ýó:œlò‘U¿¶1¼0Œ·Á\Ò¤õxzž×ôbî%—úr•¾pll6ÛR|òÊÊó×’Diß&)ɆCÌsRO´Fcö -«Ç„Ú Ža-Ÿ†m²›ºŠµðASâezŒ0?‰–h=ퟎ³AXÕÁ]™*uüãîHß챺 ”þ_ôw»¶Xï¾åLhœ›©¿îÓøÄ3ŽÓ‡‹/~à‡xŽÞ(Þ–KXŸð`ójÇË"¾µŸ†¬UýÈÊ*ÈIìހﭽ_è°Ü@¿~x5''÷Úã7›Iœ9ÆrI×úíñÄtd¦¾QôŒNVºB³­¬öcgÆgÁ^ypùH§[Œφ¹íÅ˺4÷3÷éí}x¨ix¶p¿yUÛ^ý÷ÏgôØaPM¯â¤=~Éû&­}nºQ–œg÷n;‡­Oý‚nOm‹ŸÓatbªþTšžIô„dZ3kcjvÝÊ ¬Ô3=¥~~EÌîᇃúöÚ;üYáP<¹5¯_`–‚¹B‚\>,¬³-kk¸¶N:‰8oOaÇþàL7aâ—–'LZN¸: Sõ6·1×ØM;Pl&«fSw4"ëj :¬-ÊП¯!éZ;I¾QÎ;ÚõÐ*xƒ·ŒZf/… _³[íäy3á•øž/¹ÑsÕFÅ£vwpÞ¹=´„˜:­4×NJGάåΙnwgãìƒí¨Å†à%—ZL‡¸Çk¼¾yîÄBÿÍ”Ct$,:öYºYØ?‡ï`õ˜P‡~êW@Ô {ÇzˆwI ´.ü„€“"Ýøt‡ˆÈÊŽŸÈ—‚þ®ï­1Ÿ·±¶uˆèž¥Â©…¥"ó¼wP|½]âkôÍê·ÇÊA‰ì»…‡§Aï;tøb±£÷Ú™cùŒã9Š§³ÔÙXå|#çoígæ–;9y…ÅåoÈ6‹ÉÊËÊŠn]úÛßË ôùløŠ^ÌÒÅRQœðóµÃÙ¿0p¼è¥ÌÚhu°áàå+§yIûJ4OœUp¤ÎõîÇàð.–./>ÿÛ°ßTÜâ½rz®Þ°ÝläÃÉW\×µºJ«ÝYÖáÇY&!ٚðhƾëÎa׫ºFæ“ô®W…­.öj¹|å̆v•"¶h<:„wc•R±§»î7€UçÉÆHu­ˆV:ùÈL·]4„Óݦ*þí\GÄ÷í=pìÈvfÒ±*‹ãú5»â®ùþ¬wº¿¹¾¥õ~˜GÂûã‰Ù0îñ‡…OQ¬L·Ã}Óß …çî¦ÅrðºgføY°žu¡JXŒùŸ4„s†¥C£×"Á¡æ|31jÅb–ªÃ%•ZD‡xŽ -c ƒO:|¬#aÞñ§ý†- ûg§Ç>ïwluˆ\¾znÅß_[ðÉh•å Ý»}3ŸjCÆ¡£ÎöêÇ:~°¶…[Ê*+ËpÆ ŽÛ®¹õ.Ð!Þ8*ï¿Y‡8Ç!îÑ›cž l؈q`tXf úî§D$gWŒ®“8.!~pc§©¸q››3_‘GdãŸþYþ;:¬1u8¢àH“ëÝ';{âõ›‰›‹ÍУ˜n¿Éü?ô†l%ŒEçtè&­v{^‡&ûÎújó®Y·ž…’2þÊñ„Ö2YG˜8a‡}ؤŒõŽwûl}Ü7´{ʪÞX…«C<¥ìèn `Ö™¤¯ÄQVÜO±–¥Ê6—Ú·¿áqÙÃòÛÙ¹µ|Ù¾­VèA'þš¯æ©ˆ,Ó‡Žå¦é®ý”jx Të¸ã°.Îø;®{Pã ñÆÑCÇýcl…é‰>uöbi!GDa(O½¥¤ÉëËž³s”nÙÔ<{®¯,–.¥Ô":Ä=6xFÃäU³Wz]K:Bû6YY6tFÇ•%ótÃÂþù8L/ødîèÁ:ZpE‚õÉ\œ—|®þ¦óW® É(‡¼µ ˜Çϼ±·ŽQŠ™‹›sB„Û.ÞÉ8%¥x"ÓœLÝu$_ŽCQ­Õ‡#‹í‹¥½9æ‰Êsç×çOòl²T°K±Ýñjúö~&l~|ëƵÂ÷jàH«éà¦\b²h CÀ²df¢óYq^vNÞ&ZMGÊÌó$Sóí© -´ýä“24;œêùM•V=»à•;){ñô £YÙF— ªUN…$êóC¼#ZY. -¥ä-ÆJ½f-M{uýÈH£c`ÿ~7UÞÍG¬cêÐŒ,WMÞ·oŸƒÃ–¿|?/–bŒ’ã5Î’š7É•]aBˆ²ÙéW+ƒš¿üsXXß~Çí•~þ7&ð-–â–R8Åu×óÙÂ:ÛÐÞµUv«Ûëp¤Ú¿€Ö"õ’ˇ¬Øbbž?XˆÚ2ÏF´ë¤g¨“Ý1•‡Õ¬Ó‚ ’w7"ø˜[ËÇ8y×R ?‹õŽ}½9¤ X 9¿¤…Ùq÷bPvï¾Ky¾;©ŸN÷dÙªyU¬Ñt3ß»’BDÃ÷êUiyWcŒoü¨ˆµÅ&¡Ã›;OËê?ä¶@ßÞ$Upn+ÕD­«”V1µ¦»Ãzî-¼¸÷ýÎÝJ³„RKºv¸ðØ0I<ýªŸO©rÊlý3ߤúéa}Tÿî̓„=6ûÉž÷.'t°–Euˆì½i¡«f×°ÓÝÃŒzWS^IøÇë¸s sš{XÛ:Hx«­Æ)%6<ƒ:F»’ýˆÝÔC:y5ítw’µ>ªÚeªß É#9ìÕ‡‹î‹¥½K|’ÍSÅ,¥jÜ;ý­ýl‚ ÚQ/Œ»2‹~Ðb ¥–x+ÍßÇF/?Sk’Û™øû-“´¼b¦. -$} úÇ9ì¬#ªóQÊÆ‹8GË¢:D·¢<ú\HæÃƾ©ôlüG }]û0ŽŸD½Ø[‡`•²ñ:yxÕWš7ß®Íë&\òÉþ«eBÏ'{)Ö‰s7Õì>\t_,åèâi¾Åø$‚­«TZ¦öÛØoíg땵uS|ü«É>×j¾“Eménô‰Ø®¼4ôå•^ CàG‚o½YÚN\âu6©•¹Ô‡:~?æÜÓiš™ ·†œd‰ËUÿ&(äô`¥£¬eÏuXn?ÔÐ_.:%-CHʵ‚ʧÎYì¦ÿ¯ÌØáÿäê|çcø€åÐ!øW˜ï¨oœ†Q±órà]Ný±Õ™ènjþ05CH±–‡s%ÉÏ®à×è C~AüìK X~ P( C,w€:è@ƒè{”àž÷¤uBÇ{"$Üö /dÄÙÿWN^=¥„ÊñÕßð(ý÷•úÿ™jw²Ï|ñvh†Œ™WDÃÁ^Žƒ 9PE7ëí|"_*Àœ‹{ÿÉç¿ÞÒ©æ@5íŒÙ¯X«Ÿjõ o#å,ot·Iµ%(;j-ÁT[´‹ÛÕÊŽS$ŒÜûÔìl•8zcÝÎ>kêž^g‘š ÉFÁýÖ»&›°z#„%N}ñŽVšÈ˜UŒ|ú/õö`?_ËEã|j>9¯KFŒ3¾Qþµ:gKÿë–9èT¨=9æaœJVZ;ÉÚÿªÞa å¥XJÙ©– ZW˜.ä‡o§Zú¿¯Ôÿ¼çzv)Áºõ ˆ–¼€ðr&§Œ(Ñ¡Ó -Y7èft"_*ŽMÜ´øù~/_oéÌdg]][M€Kø„Ü·ëÐüµ„«ÓQAn"ÈxC@àÍ5‚ÛÙW´ø_|@ª˜s4/0Iòâj ©Ñ¼q¿“j‰µI´$0zƒ“´g 5DŽ6¾jE¢_ÊZpÎû.¥Qœë{{«Eã ›_Yî1a•öþku^R)rj†ô{SéþŽ–)(ø‡W÷ - -n6m6¼ë’N —š¤µös*Ôþò˜s!9O»à´Ü‡tœÄF ²Ö×4>h¦Ø w9F^5'¸˜ÊÕ~Ê»øÅ›Áé+9÷j¸9+²?Ž>š÷´s’ŠSÔÞÏYð9v)\UÌŒTaƱâôW…~ŠOÕ²–±ù }¸ØÌ4¢s¢ -ªܳßë²Ëöþ/·„Ò×ÃDô"° ç+‰f'½[?´ -Èwz¸>ÅÒ2ƒÑ==pO_ˆŠEƒ]ZÄÞ•_öP )§œž#9¬ï¼]·ÞÏ#À¹ŠâC/»ØÆ7…O¦¶ÙG?Nò<æÜ…ô¶ÖïV´q–'„É-Þ?œÈ*t‹æ‡`ä»Cå ëŒXY¦‘2+å“o¥SÍqGt´­ºMñXdüåI%“*¾‹Ù謣•ÒÖ:ó:üÂw‚–no 'Ÿkø5¦Z.©ëdRÛ¦†nJÑXZœ/7»ÅÿGQã5‘z˜GK´J¹‰Õb5­²Ò &ß')#uT꧿FátXn GZ˯ç\)zÒIÁ+"&~BŒ5Ù Ú¸52ÇgóÇ9!²ïŽ†[=ž½ÂªÊÿ«pé`Û&Gûz;µñ¸ÀÛ4V© rÔ-¯^5d÷*£³ö´á¢¦æâç€Ôfå7Э_M=ó®,$ø£K„ü5Ë35k” z‚¤o›ˆDÔ·b—âÂIÚ=3RÇ óèû[‡ñ©–«Û¢ŒŒ³Iĸßu -û&9 ¿²W°n;³ßMÕ×ÒÁxTYf°ªî¶pë‡V\3Pô¨Ÿ"Û u6v€azv0ÕËíC¢d¬‚Jvî†Bx^‡|_`¤æÛ³ËÒZ "$ìÞ”z1ÐîÑnCá'±„­”Þ^Œé· -S+¶öèÜgn¶¾³0(úÕŽÀhu’¶Æ¯÷[z¤P‡ù‚!Ñ¥£M}6#üÏW%ëšC1éøÞ¶ü%‹ ÞÝ€éøÔïòICçrįC¬ï,doo,U‡“õ~jŬg2B„ûC–g‰:üë<û{óhÙú>xñRÈÑúÒ‚«…E%O;ÉøKJKJ`^r*Ýß CÀ2}Î[ÔÒ6u4–ýs !úÝšÖ²fÛèp쥂eÓþèÌ“Ü+úï*œ“R] ˜)t¬eízåãSL7b/Â{ŠCÝ£Š«ßŽÎ§0]§hËZâ×¼3"Ûcó‚Å×EKqâ(Xч .Ôáì€5Õ£gÝN'œä´ƒšpº'ÇF'ä Ç!Qa¡}¢·0’Ž¿´“7¯ÃÜúô@Kc[ÛË>ɽǢ’¡œãåÅÏQ«™ºîFå¼ Lõ¤Á>ç{C$&¶¶ÍCY¯”ÍV‡N v±F)qFñ.Í–úù"VL9ú?'%Ýhz9I‡©óëý£Ÿ¢5h½pžî¼¬¥•º>è²þCƒÒ—ÒœyÉq;¯EfF*ÃMòöRÎíjlâ~g!ˆ>|½±4¢F_œV±zò‡O†åÀRã,E‡ÿL1–™oh) -1Ðx')8 ³ŽV'1Ùpýÿ¥‹_ CÀ2Ñÿ03:=¯¤j”EððÑ£b¢x&“´´/¤$i|Ìk‹£ÃQ(õ• ÁY jÎßPü:œ¨uU0ºG& …ŠqÖù8_š: -e- x½32Ûƒÿtˆ'Ž%ííÐAÉYØÈÚÎXÄýw]5ÝJÈ·AãC×Ì%òhzò¸üɽü+õ¼^Éümhbm‚~øcSYب^j¼Æ'O ËŒä]F´.'i¯ÅÆ^ØÊY5šÓ¡§²Þ½:´5JžÓák+½Üý³:<_Ï ;o0ŸyœŒ‰ƒ“ Òúõþ‘C ÞFÆæd\š5Çü &m1:º×\%ªÏ^á ÍtÛŒï".®EPMɶVñÃGχ[ -Ñ}üK‡x¿ƒŒÞ­4Ũ!^f†Á”a Bai§·P,9΢:ü§êŒÄ=Z–P -1ÔòäÎÍ¢¢[÷ëàìûŽ+éjã¤ør“ü[–%3“]•%Wó ®–6ÓèÇž#öÔ‹èâV±Òü“´½¼z‡¡V—‹úéF>{9†ÊHÿ+SRA¶M0ç^lÂß$è¨Å¡´|Îf¡beòV6¼M.ï݉x”ÝΠì¯÷Úõ\ÝZU[Ýd=ÍûT2’`•ZÏJ†5ÀLÔ¹+bÆ‘qà¸ï[Áîè¯øÒÍ¥˜D)>Õœ¦ô¤¶gÃn‘ÚB“¸UæÞ¼¤ÛÄ\<ÌDí¹ÞÑ ‰Jd¥6ênŸ·Žàel:¾‘›b¸"10©u“o†˵»}Ìkh‘oîdžå÷ _HóØN…}"º³ôÔƒû…­­7? ý¸XŠ¥C1oíçN5ë”­4…˜Pï럾 Vvc|÷õþQO5‚û*•P©8Û±ÐqòsÓ ZÂÔô¯’‘L ì É<·ïl‹L¿Ë;©PŪâd´X˜š‹—¡öÁ“·ÍIAÉ£ûÍŒ…™÷®¿ï‚ù~.êÉvš°&6§ø`Bä`Å<½1YïYC“fËCö qÑ!n»¾¯ÎðÛGKxoÑâ¥Ö´ÙÊ™¿¢ßyTJZZ\˜‡þŸ¼Éê×è°¬A·Öô1mb›xç‘ÿ´mBÇ+u!ÂvÃØÃ(Ï°Üçp®CÚNŽÇÆle¡8:„À»rOÛE—µMQn»˜Äú Ð9¬¸a”fÓ!‘Á;ùHùø$õîĹ8S”ظÌåeÅ,…;G„÷ÜÀŒ#~š2–Ô@Æ·{¦ö±Bt0ç%¯:þ3É>;;|Õ­o1Å|îãÿ¸¥o’„q“„ÍyëC«ˆ}[ÞºÓÎÇ~‘e-½ãšµÛŽ›œ4=È0tÛXÖ20E²ŠkŸ’£ªÎ…ÌYfÆjN:'W!Øw±õàÇt~3f&Þ4¾š†Q®çÞˆoy÷w`f²çõë^t:b6®ô ñ/Ð!@‡ü‚:¤¤¤\ü{ü£Œ`¹tÐ!ð13 G@ˆHH–Sà? Ð!`Ù3òL÷˜é;¹´\;¶o9嫬QE1;©¿µ,žÄ KÙ÷(#«–RJSšÏã퓳µJ隆¬X§ónè;˜j‹‚Z¤Vv "ÉYøëž:©ÄEÐè-£šÖ5Ÿ<–z[xaüzì_ãµn’jWá‘…Œ±ò*±}<þéVê†O‡?~”Ý(+a—‡”þçO 4;ãg{ž¤9@N5þ-X\Aàv*<=<ÙáË{Þö~r¯ˆöI˜?Λ­çÞ;{\«¤I½=âZâ>:‚ÙRN§ -ž4¼f‡æ¦ëͽ5ÙVàwöbQuœšW62Þ™gEYˆã¹Ìªaš­Š®¾ÌQJ‹÷i³:4mßãæ¡Ä:;ä±nâ¥i¯®iôq ìÛíâ©Å·y yw²²Â…÷J…ËùNÜä¸:«óò¹±v÷Ž +Zs·Þ#UË̵Åí´H š¤<Ü$„¶ñÒAÆë½ÝS+*ò‹ÉÌ>jc²ù‚ŠJüÐN#GUÞÉæŽmªÚ«NÉê—q™Û þåѼ÷Rº qû¢=-Œþá&íÆ݃èÝúüa0,dÜ.ï«:\Ø -ܶ'Kd{cµk´ê—jvUBÄào1ã “3„d?{‰è°LAÁß¿¼]“s£W8ϧ_:1Ú­#@E³­Ãíð‡‘§ý2þê„ÓòŠº9+rSŒÍŽË&mÛd7u?j'àƒÆ84™kç½C|þ‘‹¸±ç:ØqćÍÅMÚ¶a«/m¢qõ8N^…S*Š§1ØálaeÇœ”{¿Ž§»7òùbÓЙá瘥칽dÍÐEŒMÑeS/‹]×ÓK%ÐK½,Sa&ïÛ}00ë쎾Œ3NÑw›†ˆVrvp?Ä@„è}áõ×›I*îcÎÜEÑIƒáCµ‰†F)ÌçóÃ÷öúÉÖŸÌ‹=ÀðÅ ­Cýò?V­\«H}ÿÖð` ‰kʬÍ{ÐýÌA -! $þ´ÂŒî7“·’©hùA½EúRç!º]1]jY™ºë&¿2ÿ{a+¥]ÁŸp-d+Ϋ¾Ñ"1~k…9F<37]‰ºùÅ˺4÷3÷éí}x¨ix¶pA^¥f×­ÜÀJ=ÓSêçWÄì™·§Í`Q¾À,s…¹|ø[‡i¹¶¬­áÚ:é$â¼=…ûƒ3Ý„‰_Zž0i9áê,LÕÛÜÆt\c7í@±™<¬šMÝÑXˆ¬«è°¶(C¾†¤kí$ùF9ïh×C«à³¥Zf/… _³[íäy3á•8Z‡†urGà©÷ǹÔþèHèwLY¸Xº`¡l¡QÃå–ÒÖ=úQ%¦gÎWOU~iGô\µQñ¨Ýœwn-ÎÜ|qŽTšHè=]±ƒYÙ<μÏ<ÄOn*¡ÿœ”ŽœYË3ÝîÎÆØÛQß%ÜþùGuˆÕvŒvVšˆÿZ­ÀSç1Ì8È‘Ú;9y…ÅåoÈ6‹ÉÊËÊŠnýñï:,3Ðç³á+z1KKEA6rÂÃqǾ³ÞjŒï’Nº3ê¹|õÜ& -Œh£²÷ÎY­“EÊb­wU[œÀŒ£àHëÝ?û}Ã~Sq‹÷Êé¹èT«X‹¥ðîëÎa׫ºFæÓä®7HÏÕë7Yd8Ã)¥bOwÝo`¡gËN6FªkE´ÒÉGf¢3«Owg˜ªø·sß·÷À±#Û™IǪ,Žë×슻æ»åó©8Ýß\ßÒz?Ì#áýñÄl÷øç(V&‚ÎÛá¾éï„Âswc¿8tN‡-&îŒán]Z)§ß8 uh6×Ïl+ „¤LŸV˜êp¢ÖMJ·ìÏÈíG†ZYlÁ‘Ízø>3ü,XÏ:‹P%,ÆüO< ÕKÐa…±„Þ’#0w)DΙ€ -žÐtƒdã×"Á¡æ|31jÅb¾K$ˆ^|ýóÏé·í8:4ú¥Z§Îø/º£ýõ·âü¼Rjh 3rÌØpªa CÀ2Ñw?%"9«¸btµ˜Äq ñƒ;MÅ1o¥ÁÑáˆNf6Z‡8'0æYz¬o“>~Ô;i.•Óh–Gir}f-¨;«73ü:åxB뙬#Lœ‹°ÆÃ>lR ­4³c¦Ý²©yö\_¸öƒSJÂŽîfÀ€ìlÙ~3ñù‹£œ$}%ŽŠ°â~Š°´(U¶¹¤Áý Ë–ßÎέå ÈöhµBë0þš¯æ©ˆ,Ó‡Žå¦é®ý”4x Të¸ã°nV–á:¬Qd^‡öyQÂd3_Yã–9šã‘è°5B^ñRÛÔüˆ˜$¯žœ²ÀévÔxC¼…qôÐqÿ[aúo æ¢bãyµÂuoDí€<16ZdÇÝ‹AÙ½û.åùâ$&œ×¡CAâ±UDÿ‚s+ͦ5Ÿgçs:äÌR—öÒöqÙM7Qà<¨˜‘(|NÚ¸u«™µ8ËìMHͽ_ˆú†½šWÅM7ó½è¤¸4<[xpsòbш¾G·Ë»c|ãGE¬-°0 âo=%kú”ßÊE‘w.¼nW\Á)”—¬þCn ôM(áMÂQç¶RMÔº~½ç±#3ðÒtWáô¾8߬Ãéž,[̶ó­zUŠÙ®Ã›;OÿJ­À­óìþ‚cÆak1—0xI/$!'//¹ÿ•?'Õ0Ð!`Yƒj©n}dnÿóÎÒmS÷ÃÝ3Ÿ¼Óò1psQæ¥ÄºÚ{ãLŽI„<ö­4ØqŽZˆ›áèïÌt²ˆ(mœ¢Ú_ÁVêmx½n”F@ôpÿ­l¤2ºn=©Îá¥í#ªíEñÂ8iàÝ×0K)Åž§ ±‰«#ãžyuXåòE®035ÞÙÁ»Ú<åMŠ˜ÌÓ"EŸxØE=lîXÁ´YÒ1ÀA”‘Ñû±ÎSTœGÝ„œ ¹ßüaŒ€vÝŸÒV§­Ž¬¼ébæ}¿¹r#Ï5­m¸6ú‚1´È6G7þ³W=6vìUÏÊ2Ù@Š|—¯)u~Ú*É®Dßøs)²fÙqžÁ}<çŽ\ì1ßNÛ¦Jƒ|²Ÿ¿‡0oS8é =Àé/ qð̘{DÁÍÏjúrÙdÛ×{;ò6?ÛÕqá¸ýƒ'Î7ëpiGÝöé_©øz~'5fœè?^×Oññ¯&û©÷–€ÿ sct§if‚Üò_3E0 -9=Xé(kÙ³˜ûVü.€ÿ Ø°ÿìúàð]áÿà:.Î’Zñ»tþƒÌŒwÔ7NCˆ¨Øy9ps>3ÝMÍÐé×òp®üBúßÿF+~€:àÔ!Á¯·<€ÿ:( -èË C€:Ð ú%ø…ç=i„Ðñž ·ýÚ‹ÿÙÿWN^=¥„ÊñÕxÒöþ³¥þ¦Úãì3_¼š!cæÑp°—ã hTÑÍz;Ÿâ•J 0çâ^ìgÛ&jÏ(=ˆÈò ˜j ÓÔ.`ñIÐIÒ6¯ùôêíó÷“´\PÓMî¦>™áµ…2Õív¶ðYS÷ô:‹ÔM6ô'.nW+;>L‘0rïS³³Uâ£Â}²|ü•³¼ÑÝ>$Õ– ì¨=´¸qf‡­©öÂ`ïØ[µïàTÜRÁí¹HG¸øåVÓl–…yê0ÅkigÌ6kÅZõøÔ¹÷þàëìÈ“MX½Â§Žgª9P ý!9¯KFŒ3¾‡°#Ï|,òmõYZ)À?Ð!`™ƒBÂá=9æaœJVZ;ÉÚÿªÞa å¥X¼äìÖrACë -Ó…YàäÛû§KýÿÀ{®g—¬[Ï€hÉ /grʈ -Q1­uƒnF§x¥âØÄM‹ý¶È™2+ç~­”mÖá›F*žpÓŒ˜£#õ¯êSÏyÿEoíiÃEMÍÅÏEÖ“¡­ù ¡”‰I·å$›h 8Ÿ$yqµ„Ôh^cã 7×ng_Ñ^àñ©bRª%îÖ¡ùk W§£‚Ü4DÜ8³©£<ô§®"÷TK§€¢ÚªÆ3ªæ9Œ¬v<½ݲûB‚>Ñ›¶š—ð ¹/‹'2Z‡½ÁIÚSW‡gf²³®²<Ü5bÂ*í :ÄŽL4['Îw•B!§fIvšÜÿ*@‡€e - -þáս‚‚›M›Íﺤè¥&i­ýt. ûËcÎ…ä<í‚ÓrÒqrÊZw\Óø ™b?,Üåyµ‰Œæ )”«9ü”wñ‹7ƒÓ+VrîÕpsVd}>4ïiç$§¨½Ÿ³àsìR¸Rœ©ÂŒcÅé¯ -ý Ÿª7d-cóA*.úp±™i&D+>æDT=¸g¿×e—íý9^n ¥¯‡‰è9D`AÎVÍNz1¶~h:‘ïôp}Š¥e£{zàž¾‹»´ˆ½+¿8ÄNweh«ÅÒÏ ßÖå¦h^}(&ýÖÖ¹IÒu–ÐõGöÝ2Wò‡hò¿Mx«t9Ic>#Âh¥…´õ€Î§YÝ'Æ_žT2©â»˜52¯C«nSLÓ`Ä™jÐÐM_a–– ¸z>mïÔë@Uý"öÀœî&[Eëö£ i6Ó•&è¾Zd^µ02Z‡¸½1Š'ÞJ~%2NÔxM¤öÜCGôõRèD÷VºÁäû$e¤Ž -²Sý‚åÿÖ–È‘ÖòëùWŠžtRðŠˆ‰ŸcM6ƒ6nÌñÙüqNˆì»c§áVÏ£g¯°ª2Âÿ*\:ضÉѾ†^ÁNm<.ð6Uj‚uË«W Yç½Êè>Í8 µYù tëWSϼ+ ¾Åè!ÍòLÍ%¨ž éÛ&"µä­Ø¥¸p’ÏŒTcƱ…AÂ<úþÖa|ªåê¶(#ãl1îwE¾INBįì¬ÛŽÁìwSõµt0U¤,ª»-Üú¡•× =ê§È6H …`˜ž€^n… cT²s7“.i²ÉGÙèѾèd•rCõTÖ€Œ€ÔX:D<µWvx§ª}ÇÆ iŸyI|:^"ÞÝ€éøÔïòICg\ÄÞÚâ:}i-gZ±bÛ:äË–q¦=ƾç¤Farf•¤´äLjγKÙ#ò‚¶ ¾K‡¸½ñ¯èp¶Ç&°öà\ -ãEJ!GëK ®•<í$ã;,)-)yH€ù‡§Éý¯tXf Ç‹ZúæŽÆ²®AçŸ{i-kÖ¸mÇ^Ú)X6íÎ<ɽ¢ÿ®¡Â™1(Õ•ÀÙQIwÀZÖ®W>>Åt)ö²'¼§8Ô=ª¸úíè|ÞuŠ¶¬%~Í;#²=6/X|]t±'Ž‚mqÈàBÎŽSÍ1z†ÑítÒÁIN;¨ §{rltBÞpÚ'zp #éøK;yó:Ì­O´4¶µ=¼è“Ü{,*Ê9^^üµš‰ ënTPÎ{ÁÀT/Aì35\n£ä4hexÓÌuÌ:#Z’‰‚¥ÃÉzO%“ÇÛBbÕÊ- óX}3‚…Ð)pu83RnêG¨n´•ÏK©— ÃVr¦ÏIB%^¡U\þ :é:V­û|üxgõ JÖ‡—}øzã_Ò!ú@À܃K,5·Kw’‚2ëhu“ ×ÿà4¹ÿU€Ë DÿÃÌèô¼’ªQÁÃGŠ‰à™LÒÒ¾Lhòi‰W‡£2Pê+Aƒ³Ô´–â×áD­«‚Ñ=2I(TŒƒ°ÎÇùÒÔQ(kiÀë‘Ùüß CY -5Xf$ï2¢u9I{-Îx€ìÉ×W½Do¶«=üÕ‘¸³¹C‡SmÑZqíŸÒö2J\Ê:½‰âíÝw@MýÇñÓ⶗†d„Æòð#Ù##‘iRQiO©¬vTT*ŠRZ¶ì‘‡Ç(+)íôí=îíþºY-êá¡èóú«rÏ÷œ{êž·sîøv:¸Së^µ0 ­\´ÛÏX†«ëôàbi¦»ºÎaŸøýˆ‡›”,« Cíó,7$Šxź‹fX­0Íùp±Ô@ÉìBH¤é¨æðój»7ª»çÛrØaJçß`–"Wdß»zñÂ…K7ÓGÌ\¢¶N[n4KŸœëâ׃B¿Ô\_˜rùtÂÉÓ729ÖïbtÖñ/S7Yý¿ywŸNÒÓ.tÐÚš!©k¥Â›rÀýTÃ2/‹—¶öÅsØXpx­fU{ïvYA6!þ -—•zW˜UíÌ'“ïzÅäñ®t×ÉrÜ•6TÃbÝ$RQ&ÝLõ¹|L–.Dêp0«KÛ¶¢ý8JÖ£nº&°q_ñÄÉ!‘I-4ˆãÆæ5ÎéSÍæ<÷9˱1ÄGC 8>ì -£¨¸C^œKPþªÃGÔH7Ì´œ>­,Á—w¿v¤˜0KeòÏ°œ1®Q{ÇfŸ¹V"0„“Rp3Ø7¡dú¾ÈÙ:?²|4tNÓ1k'ï;±WŠRñ¬íKi˜92ö®ßߨµÓf -W]Ú>'¿ -å#GÔßݹ÷Of˜×ÑêY†¦óóIÏ~ÓAÇ㑺þ4Ú4°]^(îTréß×Û3[2o‡†éCIC›ÅäÓné“ý¢¬ w £»£7Ð^J˜%³/j«ký‹jú—ÙÔíÍd¹FëôØGæç(z\Ñiot5N79ì¼Ís¤yÉíÇÕx¥ÃoP¨¦û¥†äZ¨=ãž¼h™¢ââéâܽ3Mîï -9„~R™“ZÂ?F¸î¯½þ ÷s+.‰eûü-Djn:ûÆ=|ÕÈ!:o\…²y§…q[-ƒ’ò*X'Lðºåi^Í1fÞœò« ÕÐ0­×GZÇi`9ßÊÃA–ö”Zû¥:Ÿ#6o?ŽŠßVVÛ°t’äÔæç·—yÐÝ“6vûѽ“ó]µL/ñé‡zÏ}¸×>ôNvI=ßy³Ý¦ó1’K>Ü ÚÚÍì&ßq;”]\Kp °dãfƒ¹¼Wvš{&e—50 ©ff£!Õ¹O4UÉ–jƷʘÇí8¸pí -^›±Š¨ Ç7¬ [?b åí=5·&ƒ “k†&í^4tL7P«Û—u*M‡uµ.%Õäçä•ðèÁ/¥d¹cÓ ¢ìŽÿ×ØÖ7ZØí2˜F{Ò¯!/z›U`R~5™u¼WÂA™ŽW;Ž,ål<8<°óÞèbœnrØÕ6Odk;Ž[ b¼Q‡ß «¤Ëʯ/å•à+ž“Ñ !)ˆ§ äúÖÒê†,"õÙ o+ž8jX¾ùúÅRøå ‡Ð‡t|~ooO'=x>üšCèCšë -2²*šÖáb#»¾tÛ»šë‹²²ŠiÞ -‹ŽäþÅ'¼…¶Cä 敵ӧ6ü`555È!ôwÈ!r€UÖÉ­¿_EÇÀÄÆ/>CÓÎrê¹5Ç -›ˆÃÖFÆÑ&3êkrÍ7E¤–S˜%e×mÙ¬&J—ᢤYø~êZö ~gCgsÿ´W¥õµíøÈ!ôsTJÉ}ÝeyÓ·.®>¹Ëû&Ûú0ϵ¯ž¸ØxתõÍ6¾>y•nÄ^ræ‰=Þ 8 “+wSÒy°ÂÙfæ°êã·úå~>ª9í°µù¡û±¹"ùSE/šÌÞa%Í•½­wœMÉ/kÈ+6k­³•ØeÃ6ãD„/<§£A§®”l¨êúz®ç‰“J¢¶Û]{YÁÀ#*ëè¿m/¹ø–ÿ6Ô³‰ÉÙïÛ¶€6‘ocÅó#zúÇv'øÍ(vSÒ{±9>x6ïWbÒ÷¶çQ€…uØ3Æ?åųî ˆ58¤ëÆ1^º1{©£ýt¶âÌ\þ%«¦r–%ªÚ>Ö²Ù C*Lg]³€·4a•‚ãózæ‘*.AŽó5¦»(iFS¨dæ!S57ï6œÎÓELúØö jªz”Ì°²þ_²›GbýŸ¡ç¼XïÅÆŸ<›x·€4n¡²ª²ò‚?ñyÕðs ‡ÐÏЦ÷Œ{¡±ƒñ -iafúÏVÒþ‘ž4DÖ6hïò!ªºËá†j«¥zé²GO9ËqTÔ¼:,¨‹6¾>çaï{îQaÕû‰|‡«[qs+kw–9šTŸq@KÛ?‡Kõ@4m~ø¦×Qêîy¢óÏœ1[nþD56-YŸ:%äŒëøO¦ÒÌÙ97}w~»äHŒ­Xíí³÷©Büt¯®ø¹#ãç9µó~ö±í©NÙ´D/}Nø©í"yÎÊç‡|<æ’K_\ -qÛs,•S/*Öp¦·…Ÿ9„~†\ró˜ÿщÉÕƒeÊ/‘_&6þêKÎÕ6¬Ñ{JUÚ¿j¦î¹ã2íDöÕÛ¬§ r‹V`¿tmÒH‡}ì¬Ï2iEÆ™²Äkªº–Ì´¶ÿ·«g×KkSíV_d^éh+CNj9IÊá]¾Eôšóƒ¶ã˜q^³Xé”6ÃzþS÷“œ›"´ßNdÿC!7z‡ÞÚãQZ¤«ª¶©Ã´mõ¥™_g%rîÖŒ–ÊRù Ø%8kœÏIo©Ì„Ë%‚Âœ”ük½bŠgÄ»Nfïx6ÖëÛÓr:¸Â,}˜SäÙA-‰kj½XZ:ËÚfbŠ›ûùº?Cc‚ÕtŸpËÈ«¨ª*ÌúƒÓÛÂσB¿F©È~šSàedõ®C‰úÜûM~7òªÈlý/„Lø'ÀØ $4vzó³ëŒê-7I~diy8™,2uØë[™âAçNê|±ôŒ‹¥ç¹´j©²¥—b(jÁ»Y}Ì>~PÔwÕöT)—ï)¹Îª/ðEXpo§eàíÌâºüãl<¬ð1’‹oú9yFß+h`½ÈÆIæÖ.Ÿ›™ïjè8‡ýOÑd«ÉüAå ]nf–ÖàŸ­ií =¡Óìï}`{Z¯K?îr&|1móš+SZØ„?&ÆÊIäžMpÆ•áUƒäØÁ$<]?rðm¨µ9oäóÞ]Þ³#š¢c8r`ooÔ¯ª!kß -µ(þƒ]<ÿ -𓠇߆Zñ·ÃZëËÙÖ¡Ò+·ìÚ4•o øVÈ!ô>ä9@ˆ>˜C::¼¤ ~6*•Š@‡ ‡È! ¹ä¯Ãn~ñ÷rÊ .‰¥>~¢=šäRúwlü Vyõ%ƒÿÅð¿m©ï×jgýøŸŠf’€ÄœUÖV*£è2=Õ×øçý$½lRž±gpýÐàÚcµÏìUõ¯•PØÆ{ÅNã¤kÈ rp:’ÿ®‰Ol¦¦¥…Ú¨â`§g¼|Ý4lSÄáÕÂLDçÛH²uøpÔú—ö`ˆÖš¨– ªaò…Ï]è4²"S F÷ã4dzjÒ~È,áuh™@WïbýaÛü÷ô÷‚B?G¥46Å­òÍ­f¢=™”÷÷ÓIÌ%Xz²lCö¾UÚ§ø÷%øMdëù¿m©ï×Xt.æÝ°á¼äìx¿»üvQ *|Ô ’•ÌÇÑ&ée5FŒóÇ~JèÚc´eÉ;Ú-’–ã` jÓ=(¥wíò‰½_ØÈ)6o­õÂ*seÓ|©¹C2ne²Ì²õsc~ºQÉ0¹êãpì&ìÍôÛâ’ø¸ ¼iÏè«œìWŒ¨½´{üýWõl£X¹ÙKu\ªó!¾¹êQûqLF»k˜¿[¡SaªdönYHl¢¡A4¡zhé#s-ï¢Y{Â&–Æîq:|#«’{Ô[/ûÙ< -'½íÖ>om’Þ¦ÊÇŒ£ø¶÷œV⣾)Ý2ÒÏWrÔºôc[ì?¤Œž=üÕ•´áûü¤:ŽLôækÍ¡Ékƒ.*Rûd³ÚÆG’ch³oT§lR4-[û>‡_¸M[´HtÞ?Õ)i¿…žœ3}Ù{ànÛóå;ÒõÈß´ÍÔÚÔ:íÿ~‚Ôïn4én «™¬ófž© ´l‘ô¶ßï3˜Cèo(U9wÏ%œ˜½ùM’÷%>Õ3ÆÛS‡¨™ëHüç%ÃÍÙÌ9—í4é{sÕÓöãXؾ;K>ç04Âxpn þ†¦…bo.¼šîf'ÃøÌj¹i®œ­ÕT¶’ì|¾E+¥9Ê/›k9µ]û<ž²3º+v¾h ‰,Û±ßv6oSË¡S'®„B%“„¤Õ,·éÉtñAs”·'õ5]‹¦›J%ûø^o:·£Ô¡ýȳéoõæûbEÈoÎÛ®ÝûbÊÞHÚÌ]ç°ÃmÚªïrÿô8‡ŸFÕ¸­¯Û£qz˜ÃïÝæ–ÿá´ÿûùó­w÷KQª_Ü8yúì…Ë÷_‘$eæI üF“3#‡ÐÏÐᛞsËØlPþßRË¡¤æ‰©²aÆ„69¬yb¹Üø嬠èÍbJ¯é-ß^£dÎvʳ¬å¸°®ÌTÙ²X5ô˜ÈÀŽñ‹÷o L|úOõûÉu‡­°ºì–9Ù?fç¸6_»½ô×iœå&œ‰>åmsØrxjÈ<¤£”Ç¥èf7‰¾©(Öl­OÁ¨y ¦ËÌ\0w<ßÀÚ'–ªFií×ÞT–‘›{ûàÞ£ÅrGÍG×ÞM|HÌOWx-Ð+ö­´gÄiŽŽÀ÷{cΡhÛ¡¹;WêÜö=¶áØšö#÷òëº"ÍU)~ÖñôË=ýôÿd§oýåwÌaçÛ´E.éjÿô,‡mGÛx¯‡ãô$‡ÿÍ6·ÿûiþ÷”J.˸æíƹöÈQ½á¿ÍäÌÈ!ô3äÒÛÑAÇã/?ª”–]´há‚ÙâõaÚkÂéu…­ú0gm§ƒ{µ’9û)¯ò–cúêrS%ó®îuÏ—ë_')˜›/EŸ¶×> a‘¹Ð ¬ÉbvŽý÷.Æ1æ¼²¿\¡%‡efÊïOŒ¥×W;].cž`ºÅÖIzË^Þ»s÷Þõ„S/$öÝ96ך–Ãk'h>~Ç@Ù¶Z'"tÕÇ*PË“ôUª´ÃÃÖ íx<¨yl¡b’9¯5‡Î+u®Êa›‘{wuUjÝË£&¡•‹vûËp}øa‡vy›.µÛ?Õ)JfoB"MG})‡_¹ÛqºÍáµÍ”Î?=XŠ\‘}ïêÅ .ÝLk1s‰Ú:m¹Ñ,¿ÍäÌÈ!ôKÍõ…)—O'œ<}#“c}ð.FgÿB1u“Õÿ˜w÷é$=íB­­’ºV*¼)ÜO5,ó²xik_ÜñàÞXpx­fU{ïvYA6!þ -—•zW˜UíÌ'“ïzÅäñ®t×ÉrÜ•6TÃbÝ$RQ&ÝLõ¹|L–.Dêp8©KÛ¶¢ý8JÖ£nº&°q_ñÄÉ!‘I-4ˆãÆæ5ÎéSÍæ<÷9˱1ÄGC 8>ì -£¨¸C^œKPþªÃGÔH7Ì´œ>­,Á—w¿v¤˜0KeòÏ°œ1®Q{ÇfŸ¹V"0„“Rp3Ø7¡dú¾ÈÙ:>ɯOèhy—N75÷À{ÿ‡‹¥[ÚŒÜr¿fÑß´è½=Ö¹"Moâ7ëx<R·ÓŸÆÃ@0°‹Jð>¿uïŸÌ0¯£Õ³ 7Lçç“ž1ü¦CûÛŒe¯l¹Úö¥°]¨÷^zJyò©.öOý‹jú—ÙÔíÍd¹Fë4³dǵ3ó5¼xPÑ£qºÉaçûõmÛ<ªñJ»¿¯Åź_jH®…ŠÑ3îÉ‹–)*.ž.Îý»MÎŒB¿F©ÌI-á#\÷WÈ^ÿ„û¹—IJ}þ"5·}ã¾jä·ÆÎF®ÆBÙ¼ÓÁh,ŒÛj””WÑÀ:á`‚—Ð-O{ßÄôjŽ1óæ”_M ¨††i½>Ò:NëÈùV²ƒ:.ÕùŒ§±è|ûqTü¶²úÛ†¥“$§6?¿Å¸<È{t€îž´±Ûîœïªez‰O?Ô{îýö¡w²Kê™øÆÈ›í67ˆ‘\òá^ÐÖnf7ùŽÛ¤ìâZ‚cè„%7Ìå­¸²ÓÜ3)»¬ièL53 ©ÎO˵üß¡&õðfû£È#¦ý•-êï3®¡ÍÈ­÷‹ZÒ‹{¬SEhWùÚ¿ç˜n Vw?i™ -øbØö˜ …ƒ(Å]¼èmVIùÕdÖñ^ e:^_î¸v)gãÁá=§›v¾_ß²ÍnŠñFíþ~tÜUs¼ýºÛB_ñœŒ IÁßèéÂvCø:j]î•[¯h_uw‰kÖ ×écoCk­H¡nXÀ2!Ó/{ñŽJiªxâ¨aù¦¯,…ÿr_G­|°sÖ«¹•Í,ÂÿSµÞºAú«ÏYõ†ŽoÃïííù&=x>üHÈ!üòšë -2²*šÖáb#»ºàû+h®/ÊÊ*nh¦gÉÍÔýðßBC€>˜CVVÖîo🪩©A ¿CCä öéæ%«/2(„$ìOßòõÆ<‹øpþ.fv(ù+êÄsÖe«…~î´½¹æ›"R -Ë)Ì‚’²ë¶lV¥ËpQÒˆ,|?Y+û¿³¡³¹ñ4€ï‚B?G­|h§¸þB)×ìýñÞ“^mùrë3=–«Å \84™ýgnaãëÓ‘WéFŒà%gžØãý—€ÓÉ0¹r7%+œmÆÓ&ke•’àb Ô7Ó“~ß©Y~4äú)jãÛ'WNÆÆžO! ,ýû!Vzf‹(_/ÅÖÊ3Ü=°Õ=êï‚z6‘éÖÛVқ˯¿_ùqaŽÉ¡]D±¹ò¡·õŽ³)ùeyÅf­u¶Û£løF%2N¿Ü@ÎàJDøÂs::t:áJɆª®¯çzžØ1©$j»]е— <¢²ŽþÛæñ2‹oùoó8A[»˜œý¾m øhÓö6Vç02ÎB(ÇoÍÚãL‹%ŠÎæÏòŽvšÎøÄxéÆ쥎öÓÙŠ3sù—¬šÊY–h¨jûTXËfƒ ©0AvÍÞÒ„U -ŽÏë™Gª¸9ÎԘ]L¡’™‡LÕܼÛp:Qõüjlüɳ‰w Hã*«*+/øó·ý¬e€9„~¦êÁ:9½gÜ ŒWH 3Ó·>w¸1Ï,dÃåM|E®y¾³·º¨³þZIóÇeH£LNœÐãÏïæbiãësö¾çV½ŸÌv¸º×9·²¶9´MªÏ8 ¥íŸÃ¥z š6“yÓë(u÷<Ñù‹gΘ-7¢ÀÀšG›–¬OrÆuü§CSiæ‹ìœ›¾;¿]r$ÆV¬ööÙûT!~ºWWü\¿‘ñ‹óœúþƒ:©äÒ—BÜöKåÔ‹Š5ñÛLÍ -ð£!‡ÐÏKnó?z"1¹z°ÌBù%ò‹§Ðû¨äYÄæ¯a”Li(áq:j•¸N£»ÁûIÀéI¢bÔ¬¯ç°ö™ÍRí«$eÛÅ¢ô©;­|ëå-¹.z”)·ä°Ôp±Ñû2•\¶Ya›XÊ2É62PC¸uÚÞÒô;I·ï^‰‰{.éã*•cBËaèW©öjy’Îbó*ý¸ÈuC?NÛ[vC{‰M庖Z£/ϼséü™³ç¯§6ŠÌVÔÔ×Y*ÆúËÎîð³!‡Ð/5×½zõ%ÓŒ‘5÷ ÛøðUþª+å1ŽÙ“à=p»šíÓ«,×M ¾I½›Â¹j‹QÐJ•@ªŽ—ËB!ö!#†0wHMmª½Âê‹Ì+meÈI-'m9¼Ë·ˆ^s~0ÒaŸÆ#;ë³LZ‘qfœ×,V:¥Í°žÿÔý$禈mÁw'‚ÅÿdÈÞ៷öx”骪mê0m[}iæ×dIœ»5£%†²T>v ÎçsÒ[*3ár‰ 0'%ÿÚA¯˜â™ñ®dÈë>á–‘WQUU˜õÏï65+À†B¿F©È¾{Í{‹[±e|¸OÑ1Íå.ù"»O…Ë3ÞÚå};£¤a·ðØùf{6Ë¢¼Š¶Ûä#§¼mRW/¥i|}ÆÅÒó\Z5‡ÔÙÒK1µàݬ>f!i¤±Ó›Ÿ]gT?(ê»j{ª”KŒ÷”\gÕø",¸·Ó2ðvfqÝþq -6Ö øÉÅ7ýœ<£ï4°^dã$sk—ÏÍÌw5tœÃþ§h²Õdþ ò‹†.73Këð‰ÏÖ´vОÀA-MNk;˜„§ ¾ r€ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ ‡r@ôÁ~Ïâ߬å Q©Ôo[ŽŽîÆüÊRð+BCä€@ä€@ä€@¿_ZZZooüñÇ÷,Ž~¯–N˜0B¡ôö†ôS )))Èa/CzrØ' ‡½«Ïå°™Bùü äŠGw^6…Ÿ¾ìaRí‹ïúlÕ¾ 9è]},‡µÏUõ®5q²2Ò¾cýc½xÅßÊÞ{¥›jú-?8“”í»çŒ¬­é,ß³ÁÝ©Ïú¼–¶_ÿ0È!@ïê{9ÔØ&än0bàû4Sšéèéj½Ïá údC­€Õa¦pô tA%W½{S;€k}ëT -¥™ž¨+y[1€O±Í”­ÿDOÔ¿©&ñóþ'JmÉ›’Ff>nRëÔʇŸÖÒ²j£·F†fÚ·tõ¥o*èy¸ôdÎä wõí~¬àL¦Ö³ÃÃ^ÌŒÏd -Jˆs²4Øe&pËms`:ËpÎêÜJ CwÛEüLÕu—ï)ÅVFžo·}¥ðçË«´r6–¯ ~`c^Ûrw7m1–ÆÜ 3ÇÛô|\Ío_Ø°oë2Á†Ç{>®…•o:ÛëYÿbKÞ®Ø#1I í-¥® Ÿ]ÍÏ{­3µ&Õ×=qŠ™™4'}W÷9è]}/‡Ë òŠ ¡¦1‹h¼Ú~ès[¾`|d¨yPûh€ A.JØhpGãÐnY^rÑiCÃ$Ý#.ÒtɺËì¹"]æñ0t¼¥[ -v¬›{.ä%J¯Ú¬;2É?XCˆ®®™ž™vÖG):¹Ñ(Ù<|»$Kuʧµm¾îÑ[Ö¢è(°=bÇ ®æ¨5FO·D8a®yîï}qÊ&“IÈ!@_Ô÷r¨¾…ÙjÏÊ!L-ÛFâ,s]ïÿ…R+îlTÝÎ.»P˜v"I­|z)uÊÁ°ƒžé®<°6"hg§‹”-¡Ró_u,h7}Ëíïè¯Õ=8™!+14äÜãÂêfj]^>É6&d>om—9ìÙ[Ö¢ H[¶ö‰…¦¯ê‘€é7¦=ä wõ½~åbi‡&mPóá`#Åö¾5ôÅÅ“StÕ7˜ÄÖið9<4‡›îS÷ -^eÝh¼oÓ a–†§vs‚ƒåÕ}!‡=Y#-‡¿­}b¥é«x8`&rЧýj9j£é97(h1ùuŒ®þu垊­ÏRêÊ)¹Ô>üZìØ¢­…¨}öïÖØu›ÞÜMÊ2mÚPR—aDzׯ–CŽšGû-®– à’°Ùï ”äiïŸL?¼åÌîmuª›Ÿñ(òWs¸Üy˜ä ‚&Rc^«²«ûZ Rõ£}Fv×H ¥«¢&²rW9$7ˆ®úóZ|l±úkì2‡œå7Ök( _ÆßñÍVÈ!@ïêc9ü”šwEeM$^–.KóÙûPEúKÔU“8>¾Ñ¢¹¾¤¨¸™s0k7üë5örлúV'LœÔöÛ”äß³YUùı·!‡½«oåðÇ¢T>{T0ìÏ1ÿÕ9Ý9è]ý)‡}rлÃ>9è]ÈaŸ€ô.ä°OhÉaooÈ!ü¨Tj÷7úVtt=™…è‹Cä9 C9 C9 C9 C¢C{{cz͇ööfô²ÿIÛŒy -endstream -endobj -258 0 obj -<>>> -stream -xœ+T0Ð3T0A(œË¥d®^ÌU¨`bjh¢gb7161Ô³4«4CC3cˆb —|®@ \'ƒ -endstream -endobj -259 0 obj -<> -stream -xÚ¥Xm›FþÞ_A{©„¥²Ç¾ÃGlð™ƒcð¹V¯Ÿ’4ª”4JtRþ~fwvñúàr–ª“afçå™—%úÑ(…?ii•“,Þ}Ž–Ct»¦QN„ÑðOD5ay”h"i4¼ÿ+~Õ­ÛªŠ¡îÚEÂdóîfñ÷ð:âJžƒH×ûÍãÕÆ>º]‹³HžÆÛKüRøQøIË] Ñ׈H¥£ï~J Ϣϑàœä™¿ÿõÑ[T9”ÏQ"$É•Û„q§F`#Êk†ðLÇæî‘jê~xH©X$‚¥ñ©;˜å,^ž³»»k*\¬Û²¾¯ËCÑ4'\6²õUS­ÐQf½[;1Ýv×µàDäZGÞY¯U}_·wfEYa¨{ºç ³1Qƒö™Óþqj[NàŠOßX cÆB¤1X¥,Âsg=éܤ7•‰(OãC‹šW%Þ×nÄ8Å — -¼&Ù[Û¹4kÛ=î­X–Çk»ÚmñÎzͼäˆ4tŸ¹5AAjyµnû¡*JkPŠ¶HkKY÷»¦8Ùt†ÀÕð‹CÑÔ+ë„ë< 12ÏLä*d:n*| o ¼„æI=^-PˆÚZ÷Àʶx3¾­aG|¼lêö 2øà›Ç¸Ñ®*Àñ0"´ã5‹ ªHNŸFF{þd¡JÙ:”†:ÐÑ’heÊÅíú3¥Qùŧ¡œT‘R¢Pa1*œl9Ñb¬c¢‚8¡c¢ö;@D·7…'ƒ€/‹åÔJÀÉ4ø*3U·¶13xÁ¸÷'\9ôÕúÐ`Þ3IÌàÁ¶ë‡Æ1­íî@ÜŒûBq„jŸ.®·‹D±˜õïÌEM1M§¥iä`@\HùcFJJ´¾VÊLùSg·—¦eÓívÕ¾pQU%D^Îí7WPt-”ÄΠìè\=tèº%&¾ÙõØWîÙw¿P!wSß#n¦ ¦_Ô¬WÅPüVô•ËbFÑ@{¥ç3Ú_¨?ºk„ÙÄFžà#×îlÔÿ -1ę́Ü-”‹.h“»®np.g>½lÆð@8'Ðó qyU5X ¹ƒ´Ðæ.˜½/¦Z A|_¶ûƒ£Ò˜Å~èQ· KïyX>nºÆ‘ñ ܃ –T -pôŠ°ìZ¸ÞX)¿ÂKÿ>7N¤—xƒ¼«©ò•Þ=3ßTM3U‚#ÏÚ˼!òê´AÜ¡ÃÇ ¬{„T‹5ÔtEi»<6z]cvN‰Î®5ûÌÌÇ÷³oÑ–SPŽµ™tüðØ?~û÷¿ñÃbfš†‘<륞ûŽ¡)”K|Èp AÄÃK›H'Úà( ¦¬ÔNF‰ý3ë¤ó° Õu:kq¢½“fŽ‚ˆk'µtšé‚œç¼TÍõ DPû¯G—Ÿp#)½øFD©÷éÛ_~sJAQ -endstream -endobj -265 0 obj -<>/Length 27018>> -stream -xœìÝu\TYð º;l];ÖnWEAAD”îAJîîEQì~×U×ÄBDºc‚©waJQXx¾ø‘;wÎ<7æþæœ{g.’B¡ €¡6òÓÙõÿÔ8œ6]nØj0Jüîù5ß¼80ÖA‡`ô♸hŽ¬¸/ -ÑÚXûþɼrÌ´3gö,ê¿Ï_¼üçjijPÿMNI¥û?`¤8£«€ÜÎ-óÐLþË75¯¤&ïZ^ý4ÕwŒ¡ÐH2©×³#?‡}· Z‡`tš»Cu7Ë»ë§ïë"QH -™‚Dó,\¾d¢¤ ‚Póåã¿ws›Ú#§#«n¿ø¸@Vš•‚}sÿÚ³’ÖÎéºÛ?yÅ‹d¥Z__¾ð¢®ïf{Æ!Å6cáâi2✬(jÏõíó¯J¶ü»V£Í†õkŸ={QS[Ûñ§ àܹ³¯ß¸ÕÛü‡`tRÓPgA"O¦¥aÉÝ:XSÿR^"ÊQõæI1Bz¡œ¦âaÖµwˆo9ÔPø"¿‘gɼ ¤¶Š´ÌëÔ)&Œ_¹bõ?ÿܹCý÷ãÇO3cÊß>ûPƒÀ–¨ÀöÝlÏ8œ¸zÇ -i®ªÂ7Ÿj1¼rS%ÙdŸx×JìÙòo[cüƒ¨®:fîúôÏ?çB‚Ñ©#O¤¥áºÇ¡ªú^6Š“8›¦úN2—š–…ø–UgÒÓšÉhM 5 -…œ’šÞñ”žƒœS.d¤×Éi¶gîRßËŽBu-¬æÉù‹oz¶ Àh2؈êùÄKÄ< âŒNswìžÅÍÜs°t°¹ÕóO†S~,sÿ¾YKøšÖÄ–šêf\nF½¶QÄ`ú”‡`têr)ÍëšV" ¸0îõ¼úi)ÿIÕ|ü !³HNSù0ëj_£šT;÷ªs¢‘ÏîßkÄ7—Ôôœj°ÍŽ_µ}• 7¦âýóÂJ -šMHloÅÃ«ïš ÁX0ØHûá!Vè@Ã!:‰öE A^fj*6Õ½{ôÏËr íš—K&I -1!ˆ5_ŠîÝyÒ÷5/T¢³W¬ž!ÍÆ„"â>¦Ÿ¼ÛsªÁ6‹D²Ê.X4MF‚‹™LÀ5ÔÕ|È}ð¶qÀPs‡\Y - Ä!q@ˆCчd -…H w%Œre[Ň»„¡!q¡|¸K`è113Cð;@0’Að›@0’Að›\¿~}õêÕÃ]ÅÏúûï¿7lØ0ÜU0ô¾Æá½»w‡»F¹¦¦¦Ñ‡<<<Ã]ÅX¼xñp—F´ïq8ŒûÊLJwOö†×H^ü‘\Û Pd4Åán£Œš ü:‡#¢€á5’$×6(‡ÃkÔìHà×8 ¯‘¼ø#¹¶Aé;É$F1|l„8£UÿqøãoTbí¿ÿ¼›ºr‰S?3ö½§R ø~;sbÃÓßÉ,["‚ª{|ç-í?,?PÙ  †CWSV‰gdëùÒ¤Öê²j š[TŒÑ£ƒÕÿúG~_~êŸÔ¿ý6Jü¶~nKõ{£®Šòj,šGDT ÷UAü‰~æ¹]ô‡˜7.j®Á©&ãYê5Wæuaý>YŽl` q8 Ò›!Zát A¿ú‹CÌkÇ.’áÇÍ& þÚüDgg”驸…ÜýÌØמJ-@Aç‘—Mû‹KÎpzã}¥Pÿ?ÑÏÍw…¨¤'¬b/ ñ8¿ÞÁZŽsд€^?ŠÜô$ÐÄáÓ Bf±ü¾Ilß"5=Kq÷LÎ%HÈPê?W2ÍR÷p×™ÎÑ>õ®ŸÅߦyÏød†m`ó«’O7’at¬Â}ø¾-Zž}Ý@¬oœŒã·Q7o»Îÿµ‘êï‡ÙÊ©(„¨û\Á­c Ãp+uÃ?°õÔµ0Ìë^ëŒÅ! ‰DF¡‘¸ºÊF” (Ë×—¤šª*)œBÂüì´7…6 -©©laáfꬌBl®®Ä° ó±|! -±¥†úl^1.4¥)×to´FJäbªýc ™úbud^Q¡Ž·Ø×ÆÑlmU#‹°X—Æ;ô‡ß(]Wò/Xát A¿~0ɸZê[ˆGT˜ÝûÄnqH{!{éc *È´vPÈo¸•¨'Fª‘š±Kx¿¾½)ĦêJ,³°0ÿ×#··wMûÛ›‡þí=ØÚ‘¨G¢Z›ð·O¿¯ÑÙiêÚ¡ì¿ -¡±ª²‰Â!$,Ðq°k¸k¸+^íxüZAßBfáúV3±"ËD#u‚SŒíj1Z‘šòÿw´Xi&7ª·íBßøà×ÿ³7$Öq3‚× ¢»Ç!Ý¢QßØ—ßèë&ëQL·ù{éqöQ¾0t—i±õqŸÕÔ#c««‚¢ì(Fë¼{öØ"Oi®¡–Æ#&¦+ŒÒY?ƒ5Lù`µíÆÏÒÛ!|@q(ôJ_ÅkúÑü*ös ÷®ð í ,÷y>f(ÁÒ\‰[äf0ž«¿ÓCz¦ðgk[q1×N?_Í©ȶ/—Ž9ļåámùÔ4ÝÔÏþ/f¾ä¼·CÔŽÉèºZ+Õ«.>ˆMŸÆË5ÑÄÂûüaûUbÒÌeŸÙåݼôfs¡Z¨{NœÅŸ_Ï6nýÁ#ªãè>øô‡ß(]W2²å©1ƒÞÛº¥ªª \¢ÂHÕñ>ëo?‡8ý|R0ïÒœl3ªÄÇ3—slóô1œÃb8±3Y¾\ò²MaÒ ´Û ΨS1ˆ4ê<®1·÷ÓBxÃ-LÏ}“ÆË=ÉÜk¿Ø?Þ" 8'ð55ÊZ:ne¦–±Ýmâl7õìã6:U£{®*üÇ( Ç»(a>rÕ»ê ¦nÛÅ¥ÉZ¦ŸžIýtKª:¯¯û?ýtÿe¼„/¼ú®Çmsiˆ¹û#¶I´ƒv±O”1õupïT­[¤9.çëöÎÆE¨Øg/ãëqÔe´ ( üz4>èõ¯â&m6ãb —Ïq9Dg"èí/Ž×]¶…óæD½.[*=a9òa·b"÷6úvÝvóyDIµaóÝ•¬°‡Nz,áíú)«Á:ÿ‡Œ¶53rŽÍ1U’©¶F`¿¿Úe ‡e¼“ïð˜¾Hì 5ÀŠ?ñìŽÕ›ÈΨÚÆ¡¢‹è‘ ·å|ä/'´Ìòœ2<¤ß˜©'뤅.èøTIA¢‘ÔÄÚvÓ!3`£ ¢î–Nò‚ˆxôc“ûjqžëÑÄŠó¦¦wõ“½çµœÖÓ¿µ=&x‡$35œ$$3ö¹éž(Í´è?y„Òt-ãÇZIþ !ï»jø ¦YL"æê+8ò;÷^+ÀðãSßq8ÐÒuoáYÎYÿw!ý -gÊe°nÉÍ/¢ll/´MÏÜÆ&S™Wæ–9‡Ôÿ~qú5è8$”¦îÕ{¤›´IÙpÏEÍW$4sŸL ƒ‰“ ´84N¶~ãáòà_ý¹½¼µ+—,Y¹f¾ AÃ]ê鱫ùQJÓ}CDýT_òå#Üë6Ž£í¦”¦¼ë¯G%«}Ù§¿7=~å÷Aâ–gßâÒx×H-Q##níÃUës«Ýkâ9Ÿë«FjgÄ.ïe¬²ŸÁÒo”®{K×=¡sÏ¡Æau;µ&nÉGët÷e|”š›ûwºãýÏGNÉï?‡8ýlRþÑS‰×:™Ô>ìDÝqwú®KNYóÖ°ÇÄÔÏt¶ÙQø8xÔC)O`ëýD@?‡ce{öƒ¾j´Cš¯ÞK3´—8¤4Ü3Ø~ˆkýfiÚ™6rã‹«¯–Äe˜ -åé(‡éœL\Ù³G5ÀèâŒùp9>îâ³Òf2[\Ìæx&eíãõ­„õ±Q«ëw;²¤›OdH=„ò,sÍĶV-]²zíÂñœhReŽîMÕDWþ s§«Bõ'¹ì Y³ž¹K¶}Ér÷¹]Vò¼H&ü|ð,"ƒí’º•œM×ø,>5cRwbãöZU:$¨œ×u•OS-5c´h¯ûˆÃ¥¸SôÅüd"hCd5ïŸ>}ñòáìKŸæzwŸ“oÄ 0á7í5ÄÏ~cØãÑô=¥f*±š'’W tî ŽÎñ³óôïä;# N&Ðæl}a¹+˜:ç -F{Ú€ã0Æ83z-m÷„)&ES[#µ–¼¸ÿðá«g^Ž÷Jqœ|Ö‡q«©¥tÆ!ÁvWØrg»Y\/Žb›6•#×ôGâ°³Fú¿”f€¥ëÞÒ[Ò¯Û¸™/ôv§›dÅÐ’Rw[kO澬ÈY-ôo"†ëâôíÇ¡’÷¼åìWj·ûìžÌ>iÔã Û-ÿÑS -YqØa÷·#‚øôé℧ý^Ñ3¨8Ä}Ømƒ·ŠØ·bʱuÉÉ›…Ñl¾÷oË×ûCfÄ$«I0 ´RKÉóû÷ܾ|êù„c.²EÖ;}V'¥íCÔß 0v}»l×¼Ñ~«#vØ -^öõ“;ñKÆ^‡ŽÙ½ÄáQ4]ã yœ½Hª‹·Ü±×Ÿh1þbÜj›0Z´ç}Ä!µ2úbÏ6;á -CUŒž;žò'Ø0(Œø¢3Òz<:ý±áÏÅá·­ÙúÂjWðŽ´x†ìüp.em!±rÓN·áÞùìuLÒÈÓßvËù„ÿ:DÝíƒ:ñs#âw¡rô ÿÞ Ø~6€„m ±ò¡*OééßPˆ -Q–bùÚñÅ¿¶Û°&6–ºËJÓµMrµ}iŸæþuÕø6Xú“q8ÀÒuoé5éÖmÜœ7F»´OÄÑNk®kîͶ>9Ÿ›þMÔs?‡8ýú‘ÁRuýÇz©…‘ w]Ôü¾–öœØ1Xjz"™¾ïЫU~~šrœŒ/ºþ©8dye³Ëw]R¢¼0šX~R[çÊqÁ;¾êI¬ü,­ý_à:¨8lyj®ì¿%-e‹0õrd—Ý{«3©´8D´•ÄjÝÃR˜MÓ¢6 Q' ¤¶‰ÄÊÓ~°{ë©ê"š¦>¥¡u}ktäÞIlHÚKÕ¯bUÌ™£ ybÅ)´ÉÎ16«D˜i[£$iþ3çìàÙ¬Œ¶Ë -}ãÒ NÞ(%™©µèh¯"²*§×c9Ë`Ñ°yÛ¢ç–ZÎÖL_ŒàÛïó~Ó_`&ÉŠÓ†ÑÉõ÷UÝþ§=„.2( óµ˜e¸¬ž¢*Ojk]WŒWéÌ Ü«ž ²´5­×üÆaäÌ—öº5b㑵Euã ‚\¶ˆáÛ/¥‘úL`k+.æÜqÌO{:_zÉß1â)Jf¾ª‚²Ä7Üb®$ÇË.ê5Ç$I¦Æ!ëpÏ9ˆç¡ûݪeá›nâÈá]f•è8ty§¼›·~Ç¥4?‡ƒØ(]÷–VF{ƒ8Œ_†?­«}kG\ÐIrÑqcõ(öЋ‘s˜úßÏ!A¿‡ -:7Ú¸8:‚ŒCöpªä%çýéUbÒè/¥\Û<}½”Æ‘~bç¥4œ-yñûíÌó -2˜Í=øÞIßqÈÛò,ØÊñz-+¿ìÁˆÃãîøÚ…æ¢&Hqâ*Ë)Ë¢»°zÑï7=º®—HÝö7XdeM()Äû»Ó“ÚãAªÌÑU -ò;ã·äkï _záXŸõënÛhùÕˆÓv…µŒÃ\·Š1áŠÏxÚ†>BŒ—bmªBLWØÄt9µvg¤ŸêD6dû-¼Rž%¤Ð-Õ•ˆ‰Šæ.F+Ð 6gCÏÆ™¿øßâAiyî¡¢sŽÍøÔ # -ƒEciþ¾-|w¥éwÝRq¼ÜO_ ºËüž /¬ïëÊÒ’$kÓ´BöqR¼”ê¢2®uvvD˜­sbç¥4m ¥fÆ›ðWSÆ17Ô ÙFùÌE0XÚ¥4½ïä?‡ý!㫪š)<"b¼íWWv$ÖñˆéØŠ6QÑ®K“Z«+ê l¢‚]..nª¬hBó‹ s1øØAÂÒ®•åîe(^?W–|£tÝ[ÂX“¬éW8£8¤nÁÏç¼íÃ6óMX´äËÍ7Χ‚erûßÏ!A¿~ðWiHØšÊ: -X·÷É1Ä{*©¥º¢ÀÊ/*4À7øà ãj*j(ç¾æ¢F9«—-bÌßãÀàQ¾øŒ›Mè+Ž©’Lµ5‚vA{/Úž}/.7—{ò¾ÃòqÚíÏåþM9hV)>ž¹´˜CÑÇßx.7ªù±Æ¶#²‹Å^W’°ÅŸxöÄELb'U_=dîý={ãVE…Í+¦ñ3ýŽ•× Ä!­ Á˜À0I˜Ï¹×Ο=wù~•èÒÍ[·mœ/ÍAëwá?¥Zë½vþܹK÷+…mÚºm놅ã{ž”Ã}Ú¡÷Ì%'˜`©¸ÊÍy.wG$¡XÅee%ˆÏ;#­Ç£Ó9éþ\†[œMZÄM‹C ¥åÌä¯g( uw._¸pùú˶©kå¨ÝC9!æ!ív&âÿ®çPÿ•ž8³ó!ˆC0ZA‚1¡¯s‡”¶ª¼ÿÏ9wáÖ;¦yªîz“ ¯ó['ËIо_A®¿k¯ìŠÊñ:¯®yS%1\YŠöŶžÄÊÏ‚ù:à¹{¢ç£¨ŠLuõ«;’¢U¥Y¾–âòö)y¯OMÝ&‚î:Xº[ç‘ÁñMÂȆ;Ž*>ßK{Æ!OýÝ`çcç -9çÿ¥ °mËò)¼¿ìšj"öÌBÄ!½ Á˜0 +K‰õò¸æ­®L´0J.d—’â¥T–qm8âð—(3þó9¯ýÁOP¤8q•å”åÁñ6Sˆ—Ò´1x” W|úȾÐ<Ž)ã˜ê…íãüæ!ž˜Û_«eå—s -جÓy)½Uj¥˜4úK)—¢O€IÇ¥4 â°åõ½w\óçÈpþŽKKKŠ^Ñe!âŒ^‡`Lü×ðI˜ÚÊêV -§°˜{—ì!µT•×ØÄ„%£G)„ÆŠò&4¿„HŸ_ akh_´á¾/Q Ä!­ Á˜?Ò6T ÁhqƈáqF+ˆC0&@ˆC0ZA‚1âp¨@‚Ñ -⌠‡CâŒV‡`L€8*‡`´‚8cÄáP8£Ä!¨q8Ü%Œ‡`T‚8 ˆCq Ä!€€8ƒÃ>ü–ª€¡4yòä¾g\rpp YiÀï‚Á`úžKˆCâ@@ˆCq Ä!€€8‡â@@ˆCq Ä!€€8C‡ùùùCT08²²²?óô!ŽÃùóçÿL ÀÈÍÍ…80ÖA‡Ä!€ø¯Ä!…ØX^†á”ãeBþPÉÜc" -Pkd F£~è… Ö=º] ³b©( í/RkuYÍ+*&À†êñ(€ßcäÇ!¹éi¸ù+iþúfyÿ³9܃M&Jã 5‡—­Ô°i©m ó -òPS•}úÁôˆ¿„Ðý=óÊ~»£dT–åDÖA¾l/Zž+î>‘²š§áß`§³5¢…uŸ+¸U’ŒÆ¾=ÊÏ(ªqïält¶Á94µè0âã÷Þw§yãÉ£K¹›ÿuQñŽ8e5yàÁD!Ô¾¥HÏjïlá>*›Õ;ë6ƒö'W[QKææüŠ´N$ -…h­®haåiïŠö‡bSU†ED„Ÿõí™ß{›];”tsvÆá’Ú`%£bÛ,¿5Ô—'c««‚bì˜nqHW!¥ñ‘žr˜ÎÉÄ¥¼_RP+0MŠ»ßDП‘‡mÅ1ÊúïÜÏúÍ¡ö‡Z_Xo?òGü ])|^ ×¥%,á륧HÁW¼¼yáܹ‹ÿ+äÝìf;‹‹–.ßã ó6å uZ¥øxæÒbEã¹Ü¨æÇ[]df‰ãØÚ>~äÞ¢7Û3ÛJÏyØ„çsNàk.j”³ -qÙ"P£fRîvú0-gIÕuÔ/éŸ]ÉGì1§ó·8\\~DÁ{$Ûk)o—…èì;òaé+œƒxqÄÄðì{q¹é¼Ü“÷yÕú[x?BÏÞ¸UQaóŠiüL?³ê`léqˆÉ³Sp{Útµ{×ö1l§i™W¶§éU°ïå%ÖûÓÇ! ó9÷Úù³ç.߯]ºy«â¶ó¥9:»Oq8µ&YUû~fØadÃ]Go‘ˆS6S56Xs>¾YQ{}ŸZÜâ„t º8$–ŸÒÖ¹«™æ¿QM,?£§wÛ83pasæý³¼çqËNjê<²9廀½‚ÁœKPϾGqªµ^ÀS6ÙùsæÌ_!¯´aº3—µ¤0ª0WO)D÷Tò2Þ¯KD¬w÷ò…s®=ÇM^»m›¢üš™",?v~ƲÿfvŒuöDëKî®ûC爇ù:)¶±ð-H>ÒÚ£›Ö>$ÙòÔd»÷ú´ãÊœO5‚´O§®@!(w5UbMN%Ï)釔†»:òNÜ·H³Qÿ"7>¿’·4ñ¤…LCŽ¶ÎM“ãÁ ›TMJŽœ<ò;ã9E^¥jÞå>yþâÁµS>Í;–å¹–åEû£És^j3ªð9]~CjÎ?ëíà}¦L.ìJâZ!»îFI“&uý³°°°ëŸ#=©·Sÿ­ÛYÿnƒ¥Ò̽4@Æ–>½vþܹK÷+…mÚºm놅㻜[X¦­@ö‡·µW¹9Ïåîˆ[«¸¬¬µ?i¼'K-Éî•‘5Þ?Ëv -[/sŸ3¸X÷!h‡Þ3—sɳ -‡B]ÁË.\¾þ²mêZyj÷PNˆº‡ÀHg"þïzõ_é‰3;éqØq)Mà ¯eßK¹ÜrÂ6 -"joY«E-HH×xK?XZ–©®yS%1\YŠv} [Ob¥]%Ci¼g¡"3­åžløIãñ,½Íùíb™¨×ù­“å$h߯ ×ßµWvEåøN|Û9XÊ BÒË}JÞëSS·‰ ¤º»ÁÎÇÎrÎÿKAaÛ–åSxášè5{f!â?‡´/ZDXØ]ÄIðÕ—±+ø›ÎáFQêníU -Û™™¥$ÖOë åqÍ[1Ž­ç¥4öV©•bÒè/¥\Š>&—ÒÌ.&°>~äT 1ãľ²ß¢q ÏÅÑ1É)çvúßÕs¹Fë’ÀPÇßÔþØíA7c )¸â G".ä~Æ°›»ÍôÐþmãÙ[~K²æ\ëMšWk(kâ/E.áùþuÐÞÚlC‡¢`DÀ+툪žîwñ¸¼0A®¹ª¹É*O3ë‚ÃT6†ÏÀ†»G|hª{ø÷ÃZvØA7£>)-ÏŽîÐ:^Š·`‘xå£Ü’„ZòéC“ó5Ã}p±+ðPØ™þ…„@‹*e\::“£ßv~>– ÁYËóý›ö^CnJ¿â?‹yuP~×9ª¤Ë‘}ï—°FF{’ëÿ6”7ù—²È÷\‚¼@Ý%yÛGÈ¥áW8,×SßsŽí—;™óª•o–Â>/»­R¨ÏIÊŠ^ïp´çÒ¥[ Nû{Å_yöÃ*&»Zý€³æ<^45p±…çC¼c/>þØ€à•ž½Nó¨ó®qø.c2ú™i+‰UÚÒ´`úñ]63g-'±vÛéÚ¢÷ö;žBùÃÍdòÉ„ËÍÜóìÒö -¾s’ßuº‚HWÉ×ãBõÐÖåxèñ†¯ÛÛúù•&MšTXXøk_Œ`äÚ«{7Ùä‹ÙädëÉ KS”Y×w ásÒNEïb ËS§M'³Ë2wÊ»‰›ž=©xG}»×{–ÅGNÅí¤¾C(øê¢6IÜ1&Ci¸cô—ÑSI×3al¶[í?͹œ¼Aàë埃,í˜Ø*¸>ðLÈF!4‚„m¦°q3!Îÿuæë!m‰ëæ^>,3l§·õsÆ|"ëlÆž:³°$âX…yå ¿ëÓî¬óvèPå̺”+s¹bãë"âÔ)‚ÌÈöNäž¿¬_r*œ¸ìýÇ`âíwïØ`í8¤Ì‹¼šºVI©ûßž¿Ìž¡—§ßˆ™ÏÅèÝÒòÔhƒæßõä®m#ù¨í˜Ä*kþÝ6+ìjÚÁß]D¶>·Ûºç2³ZÖ¹L‘ -J ­«¯„.àî»>â<7âZÚ:î¿ÎÞÛQ çz8c¤8˜8ìmý\]ðËÎÍ”½êú§ôÄ™¿ê•ÀÈE©ÿ[w£Iž”{NÛþ­>N ¼˜¾IˆúVĹu,᣷ex"™vc$Ïâ”›‰ßO( $‘ðcƒá2ÚãÑ`é[>ÕS'¶ÐK{ÆÀõ˜ù ß--O 7hÞná[´z±Pç( û$3ë?mÓ¼M˜~5uýÏÄ!îý1•ø’ï7ô`–Üuñ,[Ÿíô‡Ô‰7’ñôWÏ@âòHc½v¿qÈxýô9> ÀÏ#–¦)oó©^~ŒÕÅð&eÎicás¼êvß7xfÁ)ófË »þh~¬¹Nû!bá÷÷H×]ºë„{ íqØýRšúK†[l"—„] ä¤]JC7H(eÔqÖÑ``IœÒvßbaÔlûÙœ´>©ùc>IjZsêNEŸlËŽfGocBPðµEm|ƒ¥OtÖkýÛÙ7í¡4Uy«w!ûœeóø™Äúg÷Ÿa¤÷=m2ž¥¯vNï#ƒ8XJ]é+¼·jþC˜v5u žúÂí s×gõxÝÞÖÏL>¦ßx ®àˆ¼êiäFyÔÍœ¶M'.y¶‡æê®×¼Gu¿xbõspÅ™][œ^1}Û‡[Ÿ›oÔ¸Ž~ôbæNñö÷jËSƒ Œvx6رÇч´/Zxl×Êü‚·`±Då£'%D µ¤S‡¦оhÑÂÄÍ%%7O¤êÑ“Xæ)¦§N[´Ÿ`(¤Ê³íŽÿ40KÎþs†ª©ôÍóRéÈ) Ú.[+ÚÞ¨EòO[4_ -U‘÷–Ó÷Râ×gáÞynSI.cºaëŸÒ“ÔM÷Ê0þDIª¹¤µiÿkAÃS笩qÜö1Bi{h唣çO(‰¡ûh‡át†qØó’æö¹V È3ZÆÌiÊŠ¾P“¶ª.©»˜y¯ŠÀÝ¥A¯ÛÛúYÌÃp‰*”ƶèÝmaF’X„^M\C;åÞV½sG`±°VTºÍlì£ýŸpû0±™ñ;ö2êã°ýkøç\#Î?ùŒe“œ«`vÈVa·¯áÏñÞ75#ê\~+ïÌ­–ÞŽÛdzµŸlk¢–¨IÁ~Èör¾ü²Ï1nö²yå7Ï|fé܇É-¯ì&üSÔØFf™hž}Ö\×Û;ö˜1âpð¨o/ùÃì3®Íáîjüz‡]«®ø]-«ýpÿþû¶™G:Ï,Ý »Â SV +jC±ðN\aàã¥;ƒ nücÄ!q@ˆ‡<<ð}¿[SSÄ!€±nÄÅ!''|ÑÀïÖÚÚ -q`¬ƒ8Fm’ mDš™ì^cÞŽÃæ':›ôûÕiÖñ†Y§ÌÝšTû7œ -ŠÒžkR©t<{Ç]ÉÍ@ÌkGÕ£sbSv‰1!Ä/Úú 3Vòä‰ð¥ç³óíÜ Êü}ZKžóUO[YŽ¾~¾Ù¡¥Ÿ[æÅœõ™õ›GGå§d•¶1 DIGO“Å|øWNÛM_rŠ°¡HN9û°#óyè>Ubó+hܘ~9f1wÓãCʦÿLÊÔIÝcþO‚¶ÚPl”9îH˜ÑLâÃè#¡7¿HX¢¸jh°Æ8úzÅÚïcKi«øŸ—I¬p@’©HÁ½A[V ôöŽh}q`wÀ¼­l¯:o8í_$[›óÚ.R>Ô U;=j)o×g‘ëþÖUK×;ó5î°ùÇ4|$ï½q$÷`ÚÁil¸·ž»‚2ÇÓ„ºÔ3á*Á滩ù,Žÿ«{—…¢¦jIkSÓUÅ©ËE©ÿ[oOŠVí>i-/U=§D¥éH1·•Ä©™–ºg¹RC¨¿5ßQM—vhKÏ`ý0j“ç°7xSBlÇ]Ú†q)pïüÔœ¹Ó¾¯æA´ÓÿRô¬¹K;¸¢(‡ð–ÅÛ•ä—NäáÙ8Âã°3ÆڳͰÁd“~ÿîƒZ˜hïk¼¶Ù™»¸?¼x™ÜõÈ?ü¶ÇLãæ™6{ -ÓçWoŠó¼í‚0»ÚãÔ\@7Ï ¾ëºJ>m¦gÒ·–Ønž¿.å¬óŒlÿ: -¡6ÿvÎéì‹OZǯڢ¨¸yÙ$ÔKóÝÁ»Ò—´¤i[Ù¥’­O·9F0ôÔœÅM(ŒÑtbñKÕ–j¹£·ý0»q”¯êT -¶‘ÌÊËÜöÖSÃsnDÂæ.G3Ìk‡=Á%D¯¦-±!:ªõb\6ˆ³š¿Ô±HRjê)‚ìhJýmã½YÆ'Ãær!M÷i¦k¥Íëeð‚Œ«îþ,¾Dugþ duItÃ]lããsXŠtlëÍŒIAÑD³(ûU„÷ÇÔ%üSÕeXȸÚ&´ñ-}=¬˜×GÍÿ÷¶škÓÑ8§UB”/é{ö$ Ź0H©¦®&+„èïûNøœ¬eÓâ`Sìÿ73;·²A[ÈÂPÇ|cÝ‹Lâ´ÛJ#˜Å¶zhKS¨Ø·^»ùCw‡IÕW,õ¯©%¹r»ªG«§E,䬾 ©}Å:“êß›oí^O/}¶Ê³º&ï3tëÅ·•åØhFqÊðXÉßqßl/U'ÞàtÓñ,Ø|÷Ž|îV¸¤¿çØ*Ý7vá=aAý Ýßšo×¥‘ñúaб,C˦Þ#ÙŒq ÿ¾¥À½÷Sµ®ß°¸ùáˬÈ:kwÓy•žm§ÿ¥`Ps×vȘÒ'×Ο=wý ræ_;vìØ0GŒu„v=Fx—¬póÞ3Žb™<•ó•^ÇAƒ:“ÍæUª™Ù–Ô1ŒBéÏÒÍCª¹a¦èX­gùÂÒ®h{z¶Õä ÿ<üǽ'yTœìt×Nåýz¨Å½÷U?$ýGŠ¦—TXâ^þ|—æO9D8h“ñX^Õ˜˜½‚©9 †¤µu Uå蘽sIíz4#–×´j8šjB=zPï[ªÅnJŽ•ïŒKb탴ÐÄëum¤¶†2ìò¸œÃ²ìÔý3PÓuBhòvQÆÿÏ:cQi¡sÕú¸×Ôc†ëøДbhJó#G%󇳜ҽÅYh7}Ï2×Ìà’ßµiÕšÔƒ¢g=ß´•ž³ÐËZ›”¨*J¬®G -²‘«oÑðn;vªÇ韦‡f)Zñ¶¹F†­ÍòCæ{_Ý¢ãöÕHÕ´Ô¯Xe…- ý¸îCÈ^{¢gºL‰÷·IÉ*<ùö*GgǦÜïõˆÓ?Ô®õ…ÝÞ°­I1+ù:¬„ª†þµ;ƒ}÷NeGv¼ü%MÍ+V'BòªÎiì½l}:r!m´SCó–ù©pjO¶¿5 k§ã“IÏõè槖Iê)!‹zýe‘ß³¤Êþ|f±~j“1·¬Ô#fE†ˆ:é °þ—¢gÍ ë!cJî§ùºÇ¿_”˜í&7"»#<»FZÇSZ -êÔwüçãAiz¸_qßÓ b¸×(½¬Li¸µõAi«~qíÔéìï˜g­Wضuíqv±ü„¶ùgK½bŸ›ªñ¾Ë9ËRµmZ<Ú­©ú²žÁ‡ã.Ó¾ŸAiÍ;°7r{rø².„ÍOöíMRO £9ñŸ"÷ì'Ë }înG,?ihðpg„çfi–Æ{{c¶§$®D‘ª/ê™æ9¦œÊðSƒgEJÅìñ˜“´MQ}QÇð¡C†›,;þói{£Ä<ÔbŸ ç_¯~!6>¹s#'öT½QFøúÖ˜îõt/ -Þ½¿íØñïÑN­JSë‚Õ‰HºóíøaN¼É{øêЂï¾eà.“¶»{®a^9¨‘‹ÌÐÇL7µRvxÅ*ÈÍ„$¶T#6¥œ¶å<³Ç0ïP–ç̞ǞõtE(MÖ<€õJþ6úGÁ•œsµLeÒ rÙ:®³ïyå´ÓmFlÆI&BI¢ºi±k–«,;5£õ´Îk¥E®èoÍ÷l§ËÔ®ë‡Q;´Alö€dÚÂ3ö›–‚úPÍô³Ûi/êjƾ9¤ê"äƒr°X;ý-£šéÛ¡jòÿ¾x.çÊ“Æq+••äctÈðáqØýR™rÓÍ=ã°­$VU)†¢è½Q‚[RŠ§8¯ ¹ù]@ÝÊCîjÓÿ˜=Ý}žñ’ì(Ì+7%¬ -f9Çœô]Œ?€‚QŒÔ\tïâéìœ[ÕóƒãmEŸì -âeGNôK6ÌF®¹f v\>)FI’™Ô\’_+(7ž÷Úi¯ßÚøøuodjçKÓì£k†]ףǧ(-.¿uÚu ¤ªóZZ×´Ó‚¨‘‡«.jå/?¤ê6;:CM´åq¸ŽõÍÕÉ'igƱù‡w¬$Æ°‹‚yuþYºõ–ª±z™Ñ‹X -“4 ÿ68™°†|ëˆqš¨³Ïª›æ^þIºÒhLi%Y\‚ M®¿ç¬·0&Ny©[=\"uå„ ˜„Ê›ž:AL^ÇmÇaˆ|"œh¡úŸ`“@üÁd‡<Ý]”ºÛz:—¬2::í§7?áCÆ÷žòïÞ‘$–eì1xê|Ò:ÿ)ZòÔ>Ým>7’R÷·¶úq‹¾'•À¿ÒR¾uVIÍדé8›“ÑÀZÓ#34´öAVróËÄNf:ûv¿ •ÚQ×ÐátÊ›äºÛÆ{Rw¥E¯aÎ ÐòFz¤îŸIm¹Ÿ5ߣJ[m5ÁúaХᮩÖ9ÓŒcôzmåoZ -j÷R_ë²NzðJ®ÊKvz™³¢c‹,ÖNßKÑKÍÝÚiûœli”ƒZ¢ ¬¬°JN`DjGxvÿ¢EÒbw…žqˆh+=yÐ<âöÇ<ׂÄÓÆÊt×Ðz„ÝæiŸ‚Í÷PØ{EÜíLâÖ^¯‚£…ÐPM䡸lÓ¸=ñèé¨ö³€Ì»ôÃ.©¯ \œÌìãÖ8yɲ–ײªtKµêÒ±¢´¾1?p©ŽSh²Nà±µ!–N÷êZÊKjy¥ÆñIïñ?¦,Úö&õÐá“…$VIyMÁÂX›Ù•|Rþ˜ñåö‡ý'ÂS{‘¤ºÛGÍ=îãxÄæ -qžMQ¥õ ý³à¯9›„—KÏ™"„¿÷X4(jIŽU Î8Òq•¢æÆ>ý‹Ûãý–V™ø_-+'+“À< Gky)6jK]ëq™›jãøu -Zl‰Ö y‰Šh³3ÕìܬHfÉ•úö†k%èÏó`ßzïñ‹NR¡½mšši¦jG饫>ç’b¦ÎŒdŸ²/ØcõcCóSs¿uI©;ÄÿÜ4=:M·} ¦õ…Õ.¯Q•j \¼L´—@ñ-u³a:Ú­ž l Ï2á‹"Ô]øƒ“ÕhQÜ{_¥½™X AÚ«3‰Éûúk yjYÞªlªoDñ -ˆ.ôIñ^€~mëx¶ ÅÂý‡–›£ÒÄö–ûYóÔ£D÷vâŒsí̬íà>økºNMVìuö·-¥µ ÉÉåô' -Zd¥éa‹u¢L­¯ÖNŸKÁ¨fÚãní8NokDð °ŽÈî ‡¿ûåㇼôƒ.·&ùf­ø/l(ÀWÔª¡Î«ã^#ø8ríu=£û´Ë²zû’ÅèXŠQeLÆ!­ß©ÿ”(½Þ>ÒKINðŸ‚+ -×7¹ˆ[âî2“k¸«é‰Pžm»?ý}‹¤]RŸ¶GÇRŒ*c2€î ˆC`Æ!9B°À(F¡P Œu‡Ä!0²ãÔô4éˆïéG%6±é+õÜ®üb±ÝºF91ݤÏW|Q¤¦Öi¡àtý˜½¦O[hfNá)KwÙØ3“‹ÑmHuOŸ)àܲ[^œZAË3ã!®ü˜…1rÝÿLMïY%Q³¶ý÷õì*]’즲"ðï}4s{'šöuc½‰úÁÖòÎ&¿Ã%Xøª÷•\“¤o\tãåcÿäªÑ꫘X>Û©vÇ̾Ñ5yÿdÖæçÚ^ìÞ)¶S¬1ü§8}7Ÿè]íqˆÉcX5%ÍöØ&ØÀ-k@ÿFp¶¾Ø¯lþæCñG×K°´O¤ÅϾ’Yk$ßÝùÀ±Ò>Üy“0ªùy¸“÷ÕŸ,“—«rT™LzN›mö6Ù²?#§›Ç‡müœ|4äôãR—Ì+G͹è7 ÎÇó36Lùtù™T-­ª3,EßP1z>%âLàäÝ[¶œì§fö´ù[­Üó¢hÏ¢«gDÿ@- iεҎ˜õùõæàcSž›œ7ŠÐ8i´8"v‡(šðå„®åûTGÖíÃüÞIzŠðïýè¦0†{ë­° ,b=µ;Bizh©“ªºœIª¼ kxÓ,íê°ÑqXÿ¹\m%‰ú‡˜ŽÆjHQŠãôkWΪ|ü®¬ºmŽWìÁ •tS¬9N;8_(øLXþ5ˆµ÷ýcn–Ðnä;i·×¡MLwý§4áqò¸m.‡5d™>Eè¬^8£)ïeA«œYðá-ÂȦç~Q×?¶´‘DÖØÖ_ÀÛþ+Ë鶇_lññÚôíç{»Mi}¹_=huTì¶ï¿[Iøœb`ónö 웼¯- 4þM÷Ꜩ6úå: ^@÷ꔚ;nQÿÖ2óMžO~U°7Öå¤ûµÿ®}°Ù5Þ <¢[Ë«ãì\o—ÅÆ 2±K«{»¯Å¥ÓÕÓñVľvÕ‹X¶œÎÁ€~à8$7>ô1´=WJ៶|ÛnCíõI/Œ·›½PÙ¿§5Þÿ&eF’Š(6/ëì[>qnråÝà ë‡2#ÿ,1Ûnú1SÅ\k©Pk%rû)Ë£¥+ÌLWð—^ Œ}µÀ?`F¨aHÝRË}s^‡ÞÀýÑlVUòÑ ZmY¦–IØ-‰'lÅßwoÙ)ÖF¬â}–§×]¾}VS¸¹§Œo9 LWÜc¤ÃŒÖqA4~ðØ(P>ÛØs¼Ï!œ“}©Kª#µ?×üÄF=rc|Ô‚ÇÆÆ7Ì“üç~ûñ,RÍeÃîS#U]0µú`—Ø>¤Šÿ¶G玗“#„†&>ƒ´Ø¥ŒÝù|¢wK ï[œÓKôšÅÑð¯éî£ìzÁG•'³SpMdîÖtSx˜i·MpÕ‰X²‚v[rÜ»HcçÍûµb,¤–²zfqDm…_€ Mi¸»OïŒ~Š¯Ô͈Yq&³(OökÅ+'†È\q "긪Íä"%¸±Ý+ÅLi¼g¾ÓƒÛï”÷·»vŸBªûÛÃÔýç 7+l]>‘Mi|`©4Ý=¶³å¨%ìt¯îßc¹ðU—\Bº½zÔºÇ6Ö¹Ê!GÖñ~IÕÑ=¿:>nÍif¯$Ë ˆÒë>ñn‰ÖS1t-sÒ>èûÎ -ŒÜØ>Ê že´$–Ÿ4rhp‰6ÿ_둃á0‚ãA»ÓfɃóY§Ïœ¿_ºÄ5ý ³r{N§~ߎýí£”’õWC]c®æ•µÈ‚UZ+1]³aßv‹Ò±Y‡Ûw¶õ¥íN“êÈße¨y@è¼OÉŠØ“NãK|vk_—ë8wØÞóC±J¬¶ uÛ.T׳eS‰/ôƒ¥tõÀ¨éG®ÿÇ\?G?Öæƒ;Û¾-çŽ<±Ûm”°#!j -_©ë€=’lÒæ©á;34öû­¿°oÑMa “碽)*”v Drí-ÃËfɾ³¸¨Ý©T]‹|»´ Lnš'ºÎ`Çë{ÊøÅl%|ÔvôÓ”úöNÄõ˜‚h¿Ÿ”¡}ã¡X}ê±Òôè€Nâúè°MçĈuOD¥ÞzWßF"4–c—„Ÿ°Fiûÿ!/Œ¬½ijö¯UøŽ,Ýý/Ø…ÙÛok܆ãQ Ý%ÙÛÝøº¢´Õäÿ{óêÅ“—¿¬‰·šP¨ç;50¼³å$‘<ºWw˜†è¾˜WîjÝ_ÝÏ{Ès$Ád"+¹î¶‰þ9ãD‡*ëÝÇê„%¸˜™8¥–¨šj­m}Ò£e6RõE›÷öq_Oäâ éëq¡U#Z^0HÛã;¿¯[ÝðÕHŽC -‰‚D#i÷ê}p`·uÞô¨Ƚíçê4¾žDÔÆzì4ü›m›µõÆI¨|Çh¼Rb†n㾎”j¿ým¨GÙìÕt{OýŽ›l¢Ø80‘¦6VÆžt_rLMçšxhû°gé2'=SÅ¥¤E9ÐÔßKÏ–-%{Äa÷z G:ü;_i¿xŦcFÑ2ü_þ·1бØÞ‰à–LÝ[H5׌ /è%úK_Ó³|s0õ°Ü·KVˆeYºÝ§0Fø’aèŒunRÅxêxNòOP•`B4?¶Ò [!›ªwL.4j³0‚vªìÉþçiÌ5×LÍŸÙ&Ù¿ñn)4-ÏìôÒvÇùÏ£ÛñÅqºŽD÷ão'"‰ÙO¶Þ(ÅÒôÀV/akLøŒû&6â÷MbŸë. r®vpjqiÏÓƒyé é7/4vÍK ëû¸Î–ƒ7Ú×ýÕ£ÖðÖu[ -—Lc‡î¯ÞôÈL3Y75|>í~k^º>SBåb´ŽJÔúö9€ÁrE­@a^;ëÆm è8UHª¹jÒ­ž°ÈöÛRÒ†£]Ù½¢w(òÁ˜7‚ã°åÅAçóÓ7®žÎSó¿À ‹ˆÉ1+}Uéâç¥bp“]ù õBâý˜ÀSÅ‚j=âT{s¿ú¡×Òª–ŠPª -¿`_)}á@TÝò}V³_‡\Ã~,ýþíFg®=[¶W•¤½'¢ésd—„P¥ÕˆÃÿRõ%Có6In²¸Ûfš>ïØÖDÅ)_2q@¸&,Ê2?ðD3Î{Î'{°uq1ß»^ÍÏÐMa¬9×Æ S#Η6¤JªÊÑ7{°?™vrü§mû×dKŒV¢VRÈ|–¢tË;Ú)kðùGô‚W…G|¿âÛc -‚v[òx#W®£1ª´kGHÕ—Œnîó¡F¾æS+XÅQ-ï™Á *"­OcŒío¯ˆNÖÆÕÙü'/©â´‘]…SÌî6:YÔ®«‚3©åóÛZÁé2´1Xo ÿ6Ë C³¸:_ÿû -¾üqóÜéBÌHbÍ]_ÓHNÏ}¼—nô¦.-¯I6¢{uÓ‰äîKA®½iN÷ê‚oíö†¬Œ‰ÛÆ÷%g¿Q²h`ª~ž¹i®Mšwçm„±oÓ/—éDVbÅC›OŽ‰Ö“Ûßo˜×®Ýë‰5£½)÷­.$¸à;(‘dÇ!þsúÑ#Yÿ~¨Ä ù&,Úiã¨=­ÈŒ¾7&Y9À1ìêÛžkW7Ü:KRî‡ÔcGýã$߈ìûêÚ˜ù$åÖ˜ºòŸqtÎx”[?õóÕç]/¥é¼ì¯­¢gË–‘_²ï½[܈çœÛ¢‡ÿ)˜7.ZK"¢¶“ŠãµÔóyf…/Æ_ö>÷¤‰‰•kò& {í…¥±Z©\<·¥åýÓ+Tó_“îS¢]cñcõ=øŽE·ŸCn}yP3hQD¬’(šÒð¯©VŠJbÄ*òÿÜ­bË¥þ˜,Øö WØ7É|"º<ËȾê뼑n -¾0ÌöȃúÖŠÒZ^II^©]žîŠ"„‚L£ÙIì̬›ÜÜÔ?&t>WÅ+9~†lÙÝ"Ëdo±óÆNm®±ÚR,-/ìôSwÅúÍgúpò¨ûñ|'3»äʇt§q ‰e'µ4O-‰M5ÿ¶óv›Bª½íër¿Ž™‡ƒ™Id¡Ú>£ ¢5™ÆŽø®-ûÊ}¡{uÿìôËEÁÒ¿úTÄ»„ƒN9U|ã'M¬Ï+ÖIòã?ª¼*2¾ãÖÂíOÂôh™›:5?ÒÆùZ‡àDÚu4m'éêñk¿¿<¾(Ä€Ú;–‡û{ƒÁqÀ ¥þ®…É ³D×±q³ÔŽ\wËÔò‘uÜÁið% 0 ‡ üÇ3ë«8‘EŽörpg–aD¨8çäx¢°UÂ*ÊgÅÿì[ ˆCâ@ŒÀ8ää„s.~·ÖÖVˆCcÄ!qŒð8$·¼N9ìšðO–gú&Gå ì?pMóM&•Jdz÷Ã=Ï@/ð¥ý]cÕÛ8Y8nøÁ;u‘k¯ëh_·É<6{Pê†èÕGRýã4Ÿ³­H"YB)Ä_WšþW›0ù>f‡”~n™sÖ§ý§ÙzN$܇ WéÐäbè^§üv˜×ŽªGçĦì£n[â— mýG†+ô•H|éùìüE;7t½ rKžóUO[ÙþþÜO¯ÕŸA(?åxàÿíÝy@õÿøñ —€ ˆx§V¦V¦eú©ì0µ,Í;‘‘KEAŹTîÃÛü”Ú¡?ž©¤©y+!(Ê »û]°”]°<>ý _ÏÇ_08;3ïY÷93 ;›.”W_¯l3tf¨W‹²#³†{6ia¤+:&Ý£ç?§}ãÌ’ì¹C?í¸ú£„>f7¾Ÿ3ÊûË.që]Óì|OZ´6®6Ý&=|F®I:Yª¸qîÜÍæÚ4ÖÑoùNÄ2§v凎tÿ¤ƒzÞÞMîgErK²ÃG;l33Ë»Ãw‘;{lÊœð'7›« 9ÄS[æX8)9¸¯ñO6³ô—¯ÀÛÅ–›cÖg]òý|,Øÿné ŒªððŠq'‡.·ëfª¼þË%ýöíMê—Òa‹{ÆÕø@ØÚSî"w‡ë„fd̽ýÑ@µ§ü¿W~6Î~ZIxú”G¤øX¸ílãÈŒÉßÓn.û%ÖaV“¨û‡ý ò‡Õ‡¢,¿V¬kaÚHG‘û‘‹M†óÆÔ~[]']œ—>ù®÷ÂV\Ùæä¼U§Õ¡klT™ì<[4$.¤pºAèzÍÿe§WŽõ/_’ùûdEÎvï »šëôˆIº¿[î5à–ž\:ÒvS³ÐRš_J3bµ¸Ì0É\”¯›Çu¯ß -ש|_TÀ‚Î]+7´ìüŠKÈ<»ÎŠ}®ƒ<ÏôñäÅOþsV§›ûTÉÉ™™9ò‡@ç¨=’ê`ÄŸsüÓ)K/ìûè½ÍŸ]s z%Æ}mÿääQ-õ9ïÙ9|°5Bä”æšÝˬül‚C`£È4çÆ_†ÍHÍ%#îEóšs)ów³ÍpÛðò­{<—dG8.n3×þÓùû‚ÒïïúpoîŸð¶ûñ>);"Ÿ6)øË۾瞛lµ/ú¦VenÎnÖ±µ™òÊž%K>¶y/ñÅ3îƒÜöKw»)î}­Š®”6zoÁ¬+}Ç=}0õÀS#Fßí -ÿªŠ¼ì=Û·lÝñCQ‡Wß6ì­§óƒm–¼˜œ9¶u#õæjß+‹2Æ}îÜ4*Å¡Þõ¯½·zf-ëÞ(÷šª™¥±žêÚOûMž£{š\ûÊmø\cϸ%6«J -”å'¦8¯2ùÙ÷£uŸîþœyíhÔ^z^°MdÍ¥_^´y–ÞZ×€\·„Ù[(n^Ì7hmúË*Í)–… ŽZkØ£Öú6)üFcJé¯ïFVx„:u7«8•à4Ë 2eèÉ c¢zD¤Oê©úÖ×&Þ&+éù­e5/Ý4-Bc®4—öú²]ÏlµwÛ°yÅ ·¯‚•ŸOŸZÇãÜø~²S†sZÔ³·oJX{Š&e©Ö¾ˆjùá¯ïlÂß°¸hk·­ÆúßOÒœ²Ù³Õ ­=ØåÂÊûçŒæ?í|ÿ½ï:¦óÔ›#FŒØ£¥aÕ]è®9~ȳU,¯º™I­ÑxéQÝþcWŒIOz¡0Ýeâééisº^˨5í -µ÷ ¹~ùñPÇО1‰oÕ¸âP|t†ÝŠ7ã_«ªIÉOÚ[a©ºªý\5}€Q]j‘ä ý38›èêÍÇS_éøj³ŠŸ#‚[/MsxÄ@YšwC¯™Eåqíõ±2,>ºÈ7ø‹ã¹¦ƒ­õjsÕÅ ;»DV¦Å:íÞðžçõrsís¸Šó)ÎS gL=»t·¾±Ù¨ñW¬|~ÕÌlÏq;µjVõÜÓo9$|™KÕÅ÷’ãacf6]•åY}?EîÇ“ÜwÚ&Ï3›çïóüý\-ý»äp¯ËÛ>uå°ýµ—ÎŒþðàÅ›·nÒûˆûú­ãò=yœ{-íýEÕ7¨ºXêöý ƒv®é›¦ñéÊÿhe¿Ä8Úolòî¬éã^ï\«²_bm½Ï/ܪ~¶(¯~ên›j“¹Ì0Ðí“)YaO7.ý9Òq^‡U©Ãõ¿O_•´ë§ürEùõK%}×nŸÛUNDØ[®LwkoðÛcGqȺªPuœ±-e˜u'Pu-=ÆÖûÂ¥My7k…Ň5ƒRÖܾäª*Ø;ÉVcŠúˆØÝUs G·,×Zõ+…攢óGøîoÜ¢qõ xËJÌmV<—èöLBâ°:Wwº¹}å_¨¹¬:æJ°o«ÿÇÛ%{ÇŒ”ž9ªÕïãp—Ç)=¹Üi^ÇU)íï¼Õ§=ESeÞ5÷Å&—oܧ‡gLzÔH™÷ù8‡­¾i½4§lˆêxLs®÷ü®kmé=ŽsõÏ”Åçö¦/Y¸îçÞI[tÓx¯ŽÑPoÔÏKæ´[ÿtªSX»è$û¦ÙuŒ†å/Ú{°ê6a®>'f§Ô¸²Zy)ËÉïú¢´ªèÔ^çÚã³½ê2ñ}궉9ko»êæw3Gú~Û}VFØ°VÕ·_ñuÊ4r.ÜnÁ£1)ïÞÏûÅ 8‡¿], û u€ù¥t›«”ŽA¦BóF¨s˜ïý–OU½Jç qúÜhÄôÀ·×=ºÐ?ºtLÍXV_K®Ê¡ÇñŽvCËÞÛnà±!É©ýCm/þÖT幇vnÞ²õÓúÝ }gÈë=,΄ØÌh¶bƒoGCeþ>ökû'Å?äòTBò;-$w‡«Ç·3R½~œ<þÛÑ1¡oµ7(øf¢}ÂðÔ¤y¹ÿaFÖì'na)ó¾p³Kïîui~¨~XF]^÷´ô„^Ûœ¦UFdN|ô÷‹Zegbí4§¨ˆm5Ö0sAWƒ\Íõ©¾+bÍ)Ò\¦†¤Õ¸ ™"g»³ÏÏsÓý7*96Û>âå5±7:h,«Ž¹îa»¬‹>u“â´1m`sÝ?|Eî7ïg¦u6ºë •—7zhí‹(“À±ë<6­íÝD}Þ4ßná1Ṉ̃ט²2Bwž·æ\qimé=Ž³QÅÕìÝ;þ½ýã -Ú¾2lÔÈÁ½ÛküFLíÑhe¬[yyƒ‹ïùIngf³nI_“KuŒ†¢ÖT¿Bÿ`;ØÿPøቖÿKïðjç™W¦f,ì~ÒËfÛúøÞ§’¦÷¥GS’=W=jñ)#oÅמ¢¡øHÖ¾wÍÔÒ~©é#š^Øâ뼶e̶éÅÓ5§dؤºhÍåk¶óþÇ9®Ë~¶ë¾0tÔ¨¡¯vköû IñÑaåþ±!=j¼¬×ëü­÷en¬Ó)2Åû1£:öE“Ú{°êäËÉç—y™Ók¼ª—Ÿ‰sža™êPõ»5Š_µÖ¹Õå9Úã3Y¦ÕIZϱ~ÊÏç{¦[/~õ3ß°fK“ǵ×+¾£lÕÚTOyí›`—µÏ'¬ªó¡Æú˜¶È¿\ѱ“z¤*r> uj–å߶¸Ò¢…‰žTä~¹ÂkyYPÊŒ^M4(ò÷¸¹~è—y뤱úÂiñ‚H«9ž{ƒ6/Õ<‘¬¼”i7~ðÆHõä²3ñŽ“.f,xÎLG•¿ÛÅ!}ì8“´]O{^]Z>)¸kò½–Fly·×ÿ†œÃê?´˜7/q÷©kåºÖÃc¶Î}êbÂD¯Äl£§^RÙÝhlõÅÒ§-û0»°I÷ýówmVØÜ-‡Y[§X~ø®ßw]nŽâ† ¨¦ª¸ž[®87=ô³\eqÉã®+B»™ªrw{­¾Ü¾ÇãÍ˾ùÞze–_«Ók¦lͱh×ñé'/î99mCtŸÆ—²œýr¤ùýv¬¸¼ÙÙ3{özõ¡}é‰ecýoÎ͘ÓÓìߦ¾µô3 ÓîÊÓ70{ÊnîŒw3ÖQK›3wã)EcÃ6ƒ/vn¯¯=¥Í ­5œòX#­õ©¾¦¦9EU|"cîì´£¦&úÆmûÍ -gºÙÕ¿<,m|{ƒ›û';$Ù¥­êcª½¬v -­¹&t5ùãwß«¶«ÒÄ(;yNÈæÓ*3#Ã6o„-vï ¬ëqù{ù†ì-mҲ眕ÁϘÕ5EóÁ‹Žiï‹ÞzÙñSý·ä4íôØcù‡Îx¬O`t\sʺsÖiïÁZ[zã<¹]ÑuiÚÌPóx òb¦Í˜¬¾©›ª~q´ÎÑ0k¡úiö;Ž{:-ÚWý.`­}1¡«áeí=XµµGWú|˜oÒü1×寬œ4ë›üÂËçòÌÛµµho·4b”u¹æ:;Yžªõ\UŸEÞÿ¨ö*ÓØö¨¸¶û-/õŒùj3¹úéd÷Ã×E¾øk”OÀy†&†š=ë8sÊàvF*Í1œÝ3mêÌ/ÕÿÂ@¥×ò瀉ƒ[_‰÷òÙ–klf¨£ßæ÷@×[jÿ‘Åñp»nñÉ·n}ã[§4—8· ƒ¦íšë«ÿ±Žñã“W„¼¬>l¸¹ß÷ÝÈþÉi#Zêü'hlT—øôqÕ×ÿŠù™Ý´Õ]å«&zo|iUÀq¿¹º‘ÿŽí}—7Ox£,:ï鹩łM¯[’1ü%WwÍtßØ=:Fëm1ÿ‡ª)Š/å붲âWBñ×Q–åÕqààâo’CþJär9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Òsø0³ðÀPz¤R©lFxÌ?˜ Àß9€@r€C„ ä!‡/;;»¾W ]»v}˜ÙÉáÃRç°gÏž -…¢¾Wþ¡ôôô8@ë9€úErõ«ÁåP©PÜù„ÇÊ‚ƒ{n÷bŸº×ö}}¢ê‹‡úlÕ†‹@ýj`9,>6{Ôø/*ÌMU}gÒÕ퉂oGD-î­wh²ÝêÑ) /Žû àä®f…ÿLé©;K©ùõ_†@ýjx9´×zEšWÃ[” -¥Žž®NÑÁ[9ì«»ßÛ>Þ15¶OÑÕÓÓQUÞÌÍ)6°²²0ЭžC¥P(uõ¤$ï׫–fjÜ2 úGºR|5§Ð¨E‹;?Rçåä•75ª~ Õ}·—¢^´Ïý-QOYõ­Ni~N®¥µ…Á½Ü³€@ýjØ9ü½‚/ëWŸ&/oë7ñƒ“-»6Ás}|/ÓZþ[×¾ÖTçvW6_çP>q¥o߶Ë~ ²]úÚºuƒš—Ü%‡÷²Äªþþmña»èaÉñ/[ChÐþn948:ÝnY¿5kÞ²Ò«¼¼ÙÝc÷ˆØeêßT”\WZïû£¾d¼aiÿf’¿'Èu]ϘuÃ~õ·‰z+)q•Îÿ†ØôÝœ4¨yÙ‘ÛK‘â#÷·ÄºsX‘ó߯O¶yñÅvFu†‘@ýú»å°IÑÁUÓæ|žg`ÑeúªàÖ_/›³_÷õ™Ý¯WT/,Y=ñÑÊ?ÌáèöÝšŸ¯0*?{ÖdDD¤K£Âƒ+}‚¾0èÒNç¦n[9uæÝ”µƒšëÞYÊŠ@ƒÿûXb94¿¾ÇÍ.~xJÚÐÚïhV#‡P¿X€¢(÷ʵ -£fÖ–ë,Í·B•Ó¥äJ¡‘µu“ßÿÐBYšwåªÒ¼••ÉŸ<À}/ñž‘C¨_ +‡=ŸíUóÛûx˜ÕÒVx÷ÇúF ~5¬þµ7Ž<߾ǓMþWçtÿ;äê×?)‡ 9€úErõ‹6äê9lÔ9¬ïU9ü=¨Tª?ÿGJGç^îBtWär9@È!Br€C„ ä!‡ˆVë{e¨7¿å°¾W€zö\Û -endstream -endobj -267 0 obj -<>>> -stream -xœ+T0Ð3T0A(œË¥d®^ÌU¨`bjh¢gb7161Ô³4«4CC3cˆb —|®@ \'ƒ -endstream -endobj -271 0 obj -<>/Length 50990>> -stream -xœìÝu\ÿð1º[@ÄD¿bw×OE11è.iAQJJi¤A±»;PQ@•îÜ`ñÛ@¥(ïç<ØíîsŸ»ûܽvŸ»í$  µ‘Ÿ.ÈÎÿ“ãpÊT‰a« €QjäŸn!‘?ñcVÄ!€±â€8£#¦ p³Ñ  5Ÿ^>H/jü…rfIÎ$ÿ}óöÝ/L«¤¨@þy:ªÛÿ€‘âŒNôœ»6ÏA“3ße”7¶°q ñ6¦_O¯ú…¢úŽ1I$ôzuäwâ°ï’C âŒN³wÈÍd¡Ë¾qöIû!…$IH4ëüe‹'qÑ ZÊ¿}üðUmkä´eÕ½·_çM¡'5e<¹ž–×Ð1¼Cç`»Ÿž»`špÇ+ßVö]lÏ8D¢0Óç/œ"*ÀD"Ÿ¹~|óô}^ Õ’ÿÖ -`´Y¿nMZÚÛòŠŠ¶—Ü\\³gKÞ¸y»·ñ!Áè´WAž‰<ÝDìr‚5ù2‹ùK3^æ"DæKð6?K¼žhϡꜷ™5¬‹çˆš‹£ão‡ˆ‰_±|9ùŸûÿ~ýú­cäÆ¢iŸËMEŸ‹›ú.¶gNXµc¹siNÆ·ŠF6A‰ÉB˜§É Ù øž%ÿµ5À_0؈ê¬mäΓ|üL qF§¶8LˆŽÆvC9ùýŠ“XFQ~‘ˆŠND´gUJLt­¨°—D"žŽŠi›¤g'gÛ‹±1xâ@Ší‡»å÷3 P+VþòÂ¥Œêž%0š 6¢zNøk‰8© Áè4{Çž™,´=;K›[=_Ròkqøêî­Š–i¯//«kÛmÀ¨÷ ÁöË!ŠÌ9%Ä!:ÝJó¡¼ÏÊ%Àƒýp3½jÊÿdQz5_|Cˆ.àm,y–x­¯^M²]ûå™ÐÈ´'jpµ¹yå=G l±ãWn_)ÊÒXüéMN áæÇVüìZv-Ä! i¿ÜÅ -g‡P0ò‰S¾hÁÅFKNÅÚÊìç÷ß5RîyY¾X\ˆ›/ÿþåу—}ßóBÆ'¹|Õt -ýsæaÏÈ[,I?mÞ‚)¢‚Ì ´ÄlueùçWO?V`!*pí€;K€Áƒ8 ˆCq ÚâH"á[Z†»&Œr…[†» -CCðbÑpW€¡GCK qÀßqÀHqÀ_qÀHqÀ_rãÆU«V w-~×Ý»wׯ_?ܵ`èýˆÃGwMåjkkGG²²²w-~ÅÂ… ‡» -`Dû‡ÃØVž={6¼-uØ+0¼Fòâäº -yAFSþseÔ4$ðç@Žˆ - ¯‘¼ø#¹nƒq8¼FMCÄረÀðÉ‹?’ë6(}Ç!‘@@ Ñ(ªï0‡`´ê?}GÅW<¾Ÿ=yÅbnš~F컥’+ðóqæøê׳E—.æEU¾xð‘òÝ/ÔlІC[^X‚cààÂôœ5¡¡¬°¬ÍÂÇOíÝÁêý#.?ù%ù²ßBñíè÷¶T¿G1òª(*kB³òòqö¾*ð¿Q‡ß™¶“¾â°1Ãf¯ W”ÎxúßšÇ@`s|.®µ0œÆø‹ $´Qz3D+¼ˆCЯþâ°ñƒÕ.!¿8=±Áï¨u/Uvê&…ÌgégľZ*¹Ò*·ñlŒhÊ+f Í©5Ovú¸/B¿Ñßí-¶’!Çûø…u–ÆLƒ®à@+ðËkàWk_zêXÞ¦™$ØRظÐ=ÔPÓþ¡6íô1ÇÈW-‚¢œ¤ªüš™òÇ©Leì?Ÿz×ÏâoU¼Á®}&Vƒ²š2meúÅh‰R;Va?ÿÜõi?6}ÆaíЭäMÆÖ£ŽÇÿ…ºªžøš9_Î7Q™_Ì"¤!Ju+uT†c`ë©sÅ?ôZÿÁXÒD‰­,©Aqñ±Óý˜%©¥¶´¤†ÄÄÍÃÁ@ÙH”ÑPˆÆò’z // MGÍHøº²’F:vºŸ1DÂ×—“§fãçeF“j_éî?¥p:`!+Õú±†HžY%‘»mûQ8ÑTQZCÇÃß©ð6ýÄáÀ7Jç•üVx7‡ _¿‡DlybåãaB÷>°KRö1d/çXƒJ#"¥²ý·õRK.@16x1ÛÝ›„¯-+i¢åááøqDhß½Ë[woÖî»÷`+Њ@>U´`xÚ?ý¶Í£ã¤©ó eÿõ!µÔ”–Ô’¹y8ÛvÕ5w‡î ]Ã…"âê‰tÌíuÆ'ê(D‰2[ÅOÉ#Bmæë„…;g° zÛ.Ý üúß¡—A w(Ökºkv[4RÍ‹ŸÛ¢éÝöú±ÉzT¦Ëø½œqöQ7\ŽÏnÝ\ã8—Uœä#6••!¸øPÔÖy×8ì±EÚ&©+'W•Ÿ—Ý­b¤ŽúSYäVÑ`t½Â‡ÜïÕe¦ÎãË,%4åç±ìö;©,FWóÜÓÐñýAººìG_ñ-¯Ôw™Á“¥oÎÍeÞåæª8™Ùüýò Ë Œ¢lõßj§êºYü—Ë»àl˜Á8Q]YÁiä"wÍæÀÅÏüS§°1OÐ9~€å‚­EB)¿ma>ƒ”½“š$3ªž\¸ã„™™U˜që•×íƒOßq8ðÒy%#ë_kSYá½­[RKuiY 3#’@BµígýµsˆCЯÁÇ!©1;ú°Yl©ÀxÚ‚\Æ­Ž.š³XPTvÄ!Ý÷ËNf§iT=Í× P;©Du×h[Ï£½Ùüè¦~æŸ6…E\ßÉ”ÿ¾óÁ€,&1öº/5Ó <­6òÑ’«±Ý~‚$gFø ‡övß½W2Ü×ÀVQ<ìÄÒì21]û툂H%ÝoVq¶3ÈŸn ¥ÔUï¨Ç¸/ekù~Ñ©ïúØo*ðÖ?ö#N9Ø5-t Ô&ÏûÉCθá`´Õ2ö.{6î‹¿¬V–E¢×RöG]j›€TýÔ­Gáƒ^ÿ²ö"zÓ/1»Ä™H :âÑ}ÑþÇøáx§ma½)\­Ó–Š [†|Ö¥2ûk\;o;˹¬T¢¤º5eÛiÔtäÌñÅl?e5SYç?ãÚ!gÆy‡ƒ~' ÑT”sšºï½bIeAØ›¨7òǧ.àÏ Xî7Ö=§|Ô&0P«í@ãp› ßÑXûeìÄï Jzé‡c‹dèÉGªDûÌkûTIB¢‘äÄÚzˆÉ2Þc¢ò¶¹Jä<ÿPYôEm'{C×r¡ñÅtuªG:Ï©?«¦~{{×!Zr8µ´Mot÷*FŸZÄŠh)ˆQÒ~¡áþ?ndÍ;wÏèâøWêÒVÖqÎk8©~|ê;ºQ:·fÞeL…¡wsº¯pšWTÖ-±îm ‰ÙÅfññ´ÍÑ’ôBûä€Y„þÛ9Ä!è× ã°¥ j¿ÚsÕè“yÕlöºòúÄŠ–S8±…‡Ú‘ÆÇmžþgãª>›õ×ÎN¶i¾àž<ŽrÆ8E_MPçƒìJš4­Ý~Jñ¡KØÈçNÉêêä#N¬ã&ÎkiÞ׈v[„|¥"eÁn{Æ|œèe- .I„&"Šr2C(NQ×zew|:}Ù-µ›ªQnKØðùኺy‡ãmgР>µÏµ÷D¨Æû/`E´ìÍEìµüž×òl÷ôӞ͊"6å§e§Ímyª¶Ý}uT¼ü8Z Wú5·ª™ˆ¤a™ „!PÛ.¼ïz>øÅ—=&áïÁ鬑¸>,xSå±Ö8T£¿HmÑ~n‹î\bÂfÒé^™º×?Çÿ…MƒË1Óôzƒ™:[RrβMÛ×J°£©·Ô:,Å¥ô|w^C¢²Ò­á¾2™ÑHeA–4DSoä[,ùŽqXÁAü·_óÝ‘D§Ô.Ë 4÷œR "g¢ñÉ>_™ÈS “ ÕN·ÌY³bñâ«çŠ2¢ä8Üí/¼Š… Õ>ÑTWr%”9ʲvÃ8J3%Õ¦ßø°00rïwý¡ûcBWüì$®OkCRÍC­½á -±!Ë)®ÞíñX¾éº\€rlð²^ú*ûé,øFéÜZ:·„Ž–CŽÃëvryÈ>¯Æ1Ç–²“Êo™î:†s¿0)³ÿvqú5Ø8$UßW“ U:ÑÚíDn¸»\×Fž^ýQ³ÇÀ¨Œi*[ÍI쌬ò>'dÄ0½_èçp,cÁpÈu/åP…f`¯rRôé%IÕ4¶a^·I„r¥XóöÚûÅ!±ºÜé*2¾*gÂWô<£`ºÅ!±ñó•ÐKiuDDSn.Æ*åôzÊÇëƒJaë‚WUyî±ÂxÄèO H}ZŠõÛç­_¹dñª5óÇ3¡ %ç5ToÉ…ÛqÄê~»ÊÃG}›}Þ«CƒÖÑvŠÃæï‰Ç\îæ½ù"êwÁk&žÊv‰ÚBLîVø¯,>9ƒ¢v5…ì7*± “½ j'è-W GmÑ>ô‡K°IÝ+ó›qˆ t‘•zýúí»g7“/›íwlV¦•Šñd´Ö!T2C³Ç»1û -ôdƒ"Wrv4*GçPÉtuê|—¿Æ™0ʘ o v{‘Ç\N­¥ 8ƒ´ãOÍc¦Ä¡Ù>ßm§È¥òÞ>yöìÁµ”wãN[ÍE¦µÆaÈ*rU:â°Ål·ï2kó™Ìm3GÑóO™ÌøJ÷Wâ°£Ôô+Í7JçÖÒ[v_·!3Þªí‰ÑI ¢$©òžÒ¾xÃÄ€™õÝw"ªëâôíÇáNç9Ë®VlörÙ3‘a(Ò¨ÇA¶KÞWÛé½ÜÖrKûA`êT–×ýÞÑ3¨8Ä~öØc‚3ò7\>ŽûÎLöÄÚÈÈMŸ•ÊÕÛÄ¡¼@ý ¿ Æ_ -#Ça®µE{ÓG’kÖ½2È7¿‡°9>²Zo¬’Ü[L¨T ÿ¶#Òz¼;…á…æïÅaûÖlxk´ÛkGt(Õv~9—Ð×èY(—Û°Ù.ûíx<#T9ÓÕ·b¶Np_ˉ¨¼wH%t¶ènÔyuÍ»;<¶µ^ 4UèÙQ%Ijê7¥½e„é~œøâ>˜ïóXLn²-1Ê:¯”Ã])ŸæÛ)x´w–þfp£tn-½Æa·u2+Ckw˜rBår±ü†âþd㤀¹,Ýw¢žíâôëW:KåÕ_¨EynàAV?´Ùëö£³´çÀ¶ÎRÝdŒá‘÷+ÝÜ%˜¨ßtý[qH÷Þd·ëÚˆp)4¾èŒ²Ê™¯?ŽUzº†þopTÖ¿Ö—qß}z3ùrt·ù'£”(J"šó‚´5‘hu£7r“ ¤>„¦Z=këÁœ O´2:IAéÆ–SûÅ1HÊKέxePŠÃ|V$_œ¤£=Ñ:Èd%/-ekäEìSO³Nö’¤§¶]ÄHÝ ×¡rñv@q(DK®‹Šb\)ž^&*Nî•EkJïØ=·Ô2L]÷Êp}ü9þà7 ¡æCV£ø4J7:±ê‘•Ü1„ûÙãÜ—¨T¬ñGe–b{¾‹*9£¬tc[¨ŸlGf`ß÷\% ѽ6ò?‡3ÞY¨z–óçBV|©¯qÒf3?®õV îüLsn.ÓŽnÊS‘¸‚ËîVþ¯Q¢ãq¥Å¤Å®~Ä1ؼóNæÅ…hjª¹ýg!Þø˜¹]AÇ>ÕÜÛŠãâóøR¾qè¢B&){gõ¶[i~#±Q:·–j-‡J†.ÅUU¾½#ää!â—8mù@ŸK³húo燠_ˆCi•›ÍÌŒmAÆ8Í6ÊEè²µiL)¿ú{óVÇZ?n¥±ê>°ãV¦úôPS‹§sœNjH² þì¤ï8d«Oó2²ºQAÏ1í¿í¸®æ>¯PbÂLØ’"ÒRS]X½è÷›×€M€ê[K‹›tÓD‘µ(aħ¯{b"ZãA(9¯ºÓ‹Û-Åmñ³7\ÁÅ}Ö‡XyÏDÉ­\€r°Ë©ÓöµÛÂOƒÍMq4óyŽ/L_[Š˜*½‘æJTÅ®7¹ dë-œN§áE8Ñõe%ˆ Ûôm´Vp¢©l¦êž…Ó~ñÛãAªs\V%£” %J¢²htu?·…ëîhõÎ[*ä¿w¦Ý+ƒî4¾¿#Õëûº³4/ÂX7:‡aœ0©ìK!óZsOóõ¼´ÔÖ9¾ãVšf*ï’3#帉ß{ÆIãh««¸Í]f#¨,åVšÞùïÄaˆ¸šÒÒ:+/?[ëÝ•m‰ç?µ©¸ÃÇ×ùfiBCYqU †“‹±ÓÍŵ%ŵhf*;M”{eÙøyzéJﮟ;K¾Q:·_Kúãî+œZ’·`~ª³…ß³:Vn±‹¿ßÊ°Nò}Õ;‡8ýúÅ_¥!4•—T’Xù»ì_TÄ·TB}Yqu =÷wðÁW€ˆ-/.'±v;¾4ç…(艷žÞå^ŠþêCÄU—–Ö“XxùÙÞ¦OÂ×––Ô£Øù¨¥Z¿çE1sórtùšsÏM@µðn~}ýrU¤2ƒ¬¡±¢´¼‘ÄÈÍÇÝùþú¾+Fí]RKMIqš]€‡¥¯EùF>d?ÒÖß Ü5€ÎÒ_Ú(ƒ×øÁuŸ›WŒ¦(]ÿM âô ~¤mh*@¨I‹ =sñZåÎ?9þ~†g„öõ߇‘\·AÊ8$Ô¾“/2kzo·jÿQÃý#mõo­,#DP%iwsÄÛõ~Çxg£¦!?âph*@½}S@7aæ4^ú¡ü-¿bØ×FrÝ~Â{¨šJ¾|Ì-ÃÑóO’㤢n GF†×H^ü‘\·A8^£¦!?âpDT`xäÅÉuˆÃá5jøs GD†×H^ü‘\·AMqȲhÑ¢á®ÈàŒš†þˆÃQá5’$×mP ‡×¨iHàÏ8^#yñGrÝâpxš†þœqxåòåá® £ßèˆÃá®Ħ͛Äá(ØQ€_@þœq`¬ƒ8 ˆCq Ä!€€8‡â@@ˆC0FdffwFiÓ¦ wz‡`L Çáܹs‡»£Á«W¯ Á¨qƈáqF+ˆC0&@ˆC0ZA‚1âp¨@‚Ñ -⌠‡CâŒV‡`Løµ8$Ô•”ã0ÜB|,è^GÂW>¿—%º| ªýºÁÌ_ñøÞç)+rÑô7pd€8£Ä!‡„Ú×GìÃÒˆB¬øÒÂæI{\NhLgBRµþµöNÏ= §WѦýø‡ƒÚh½©{¡¸3È 9xKGˆC0ZA‚1a@qHj©ÈùH™Á*NÒÜ*jj¹F‰ a¿=¸Z7Kú?Ve,|miq#//ååâÐX^\ÞÌÀËωAýœ¾¦¤¤™…Ÿ>CE¦#ù¨¤:9yÔº²â›@Ç™k×!$"„B·MÐþ?±17«‚sŠpçºý‚8£Ä!úŒC®øÝ­‹©©—îä°mr÷5›Rê·S-ãPŠßrönÁÖ\zÜÄ/“IŒ½îK„‘·Íf~Ú¾ã÷Å_Çâ>Š—ƒXò±l‚þ)‡‚´RÇ`ã‰õÆÓâÄJÓ¿;¤Ïc¦6ŽÚä\nŠ½‰Ï{ÆÉB4å\æ¡nóéº q{(¯xÿp’Ó F¢æ±‚l´q²ÿ†²kGôŸ£ï܈ýå5 qF+ˆC0&PCBcþ«ëÎ¥^yRÊ·dÓ–m[7Ìa$Ÿ8ÕÈÐ +>ž¦‰^¬ì}ë]3LTÎ!Q›Í={ÔÐ'qÒ8Úê*‹·y´Ý‡Ì¥É -ÐÖ<‹ Bæ›Zô¢àøyrÖ}x”ÍåϳÍÎ'”ÝÆìˆÃÅ^;µrÍÝVs’gOl*+Epñ34v‰Ãn5$Õø¬®ùô®ù«ï.ÝB§dG Â{/×+‹MvCBcþ«ëÎ¥^yRÊ·dÓ–m[7Ìaì8}êˆÃÉå‘rÊOÕã}7ó «ZÉ:óú'™Ljy¡°Þ˜Éöœß&nDŠý! Ãb8³ºÅ!¾(IYå¡b´ûn4¾(EMížv¼çüºø}êo%:ÏaÆžQTyn’ä:¡˜Ê˜‹Qi?17ÊXÍã5fÚÜY³æ.—Ú¹~:;º#—ÖŸ¦VÃWj;½U“"—²ýX"|UöÃ+S/^ƒ¸fëÖmR«gðÒýÚõUËþÍ8lëëì‰r.¹Ã«ò?•£Çõ× -czÄB{z®´#H59ºµK²þµÎvçuÑq2L¯¤O*ŸZˉBj*Êë$EÎÊ뇤ê‡*R‡Y6lÁ_kÞ\M_~æ€hõye•[:q^ókÃätòŽž9úõ1y?üì%µ”g¿zùæíÓëI¿Í9‘踆îm뻑³Þ)S«á›nqØŽP—yÎÙÒ9¥PÂ÷jøÎ!»ïF qqñÎ/srr:¿éqH¸]êíϹwé,¡í¥bSÁëëRS/?)áY°qËÖ-ëçïtmm`q½–ÙWÞS’ö\io=›¥-nQôÓ¦ bÈç“Úû÷F˜¿×2ƹ'šMÂô2&þ •›e°ŸOîPK³Iœ™3¨8$µTf=¸rñâ•ïš'¯‘’&ŸJpÓÂé!PÓ‘ˆwnœ'ÿ™0£ã­‘‡m·Ò”[&8-e­}tXÖ™/€r+Msñ£{ÙÂË—‹ô<lEj.M¿sá|êÅÛÙ4säŽS›ÂØåÚáäòÈ=*Ï5â¼7ò «Xɺüì,e¶?ï» QqÛxo༰EÎÝ;K ãåoɆûÉSîÏ!4Uè)wÉjóRÿhšßíñt½Ù~³Ìrԇ̆‰‚”ïW«ZÈØ!Nžwð±£³”J ï w:¯‹ŠÚÊ‹F*zYŸHÍašû?ié­›—Mbƒ{j ?äDì™…ˆ )_´ð?`~ +È^UÈ íæ¥;‹Eª¼½§ï®øÄüýD¾*ëy:óœåã0=o¥±0Š*áA/`Þæâ¡Óq+Í žÜ†–¯_™d½¼5$˜šÞ[lV¸Žcflë€d’°óšüÈÙÔë%JL˜ [RDZæj2 CÎàºWÒŠ7¹¬.Äïj»¯—ŸêÔ}L|û¥µá´"s„…ÙHe9…Ìëy[þ×ùVš5$Ö½öз¸^AÏ!q8Àšõý'æ¹³D™ `ò¾¼ï–…ˆ!)(ßU(ibàãeýůáSGh*§|A€—¹-PÈq¸Ýï@Jè´¦¢z ?ßù'Ô—Uµ`8ù¹û‹£¾Æ$4V””5˜xø¹¨Ó½†þŒ#ÿ’¶8<±€eت`X@vB¨y÷:OtÎpƈCâ€8‡â@ŒÀ8üÉ€_6‚âøGA‡Ä!€€8‡â@ m’H¤!ª @"{}bc«º©à¯ùû‰ð›G¿¡ŒÃæææß™øettt¿3ùÇ!;;ûï”ü‚êêjˆCcÄ!q@ˆCêˆØÂüB,‚A@X€5Ü•B£u¹à·Õ8¬{¡°Vé9bAÔ­ˆ,ƒ|÷ßÕs¹Fë’@U[ƒ¯mýŸš=èb Ä! ›{Ñó¨ÿÅWù˜q³·ê1Ý:ž¡þ¯Äá Ë©{e¼QñZ9‰suèå€Å¬?¿Ú[9ƒ­çPÅ!„(p9^;w–Mu»'ŃF˯)n4JgWL¼h9Cu -lŽß1ÿϵ•Ïî>«`€ ºõqHªOsØ¡W€7o@ÉóWyÁ½‘gLÌTü ôÁÅ6ë¸ô®˜ïšogìe‡Œý–óû±qþeõoL7î¿ŽÜsÕ}&¢ñý!©Ý©-+#®ôÝ.¡jF{«îjJé<&-pM “⬼¬!eö¹Ä画Á:òþ0ë„©DBÀù÷ ì3¥ Ì·£ò#d¶9ec)ÓvëK!6duw -½š–ßHÏ?m•üAkÅ9lhrà6å\ðv¾ôâk5‚MDr­¢ƒõîq¸N}2múí™iΠ޹ݻvÞrô‹‡•”sâô]ûv:—ƒè½ü¶IHÿÙëL<v%«ŽeŽyLØ~®ìÃR»Ïã»ÕäÇq¡Çzhît¼@ôøŸê|{[?’¸¸xNNΟÁˆ×öo4Éä79Ÿ¬&Š,8-#íX0Éùrìv>tKÑE‡è[iŸ «qhÁ©KvZ«/álm‘}w“ º¾;  ‹Ñ‡MYvR»ãª'Û_J@ŠÎÈJÙesìIŒßä(¥ô¼ÍÄ,2coÉó—ßšh'HJÒbêáz.¯¸G_ -¡üŠÑ6³Û5¬SÎã­Oú®”n®urø>þš¦ÛŒ®W Y'Ο'‚,z—Íêq%|m§>ç¢U 9YÅõlt'RïÁiAÉù½›çÍ;éHwTÿŸÍÅø½‚4]úv:—ƒè½ü¶»Í@Ç.:GR°å{Ù¡²—“¿<î¶\í#w_ -êT½.WoëGˆv(7gä,lûqìjÎ=µs‡g©ä©ëa+PO56h|A´ÌV—²¥~'èm4o±œ?«-J‡hÉ•Ûåš4GR”]ÓåòGÝ ÅµÊÏóî#›t焆=†Œö8ìz+MÕeÍÍfÏ‹}¯z2Qn¥éÖI(¬ÕvÕZg`^ÈÎí®¹<*QÉ’L”s.BÝ×L‚𔺨]Û\>c–:$ŸÚÎOƒ á*¾4³wt–¾TY§ô¸ãÜ´w-Q2[œsf-ÃAƒÀW¥=Ik1ƒ¶óT=æÛÛú™ÁNóë€Àf•’;‹Ü …ºu¾ycÂeÇÖîÐWªëµL;v)a7ùspqÊî͇ßÓ´·á†7ún4Mu¸¿K u_­­±žZƒÇ@ÃCF{R¾hq|»Rüwô¸y Kž¿Ìà îH:2)‹òE‹zfa‰9¼¥Ï_~m¢¤›tö@ë*‰B(9¯·Ýê~5­ä¢é¼¨Ú‚Œ7"7OÏk¾b¼Íìf’cÊ‚¹Â¨âôL®—ÃL…ÍvÜ*YH?yý–E"âòºûE©¢$”_VÚhúK3)Õ˜ÇÍ_ýwn÷)™äp!a'?ºr¨§‡=oÉ¡mýk4ÿ¨µõ M-³Íõ3J|‹ÜâÊKñJ[X:He¾½­Ÿ…¬T—€¡Bªy¬µYía=-’@?ÏçZøjÊ%÷æÜS»vxæò(ƘH6=p×2ý†íhÃø¢ø=[í>àX¦,^Ê¡6¼ÔÚ®óe]u^ÏgÕõ@¬yîsÀ"êU çB™Šï,Ô‚~æÛÛúªíu„¢Ä=›m>4"0S¬RÏ*ŽkíÔ$5}Nv²;uå]ŽqœäÒ9E·Ròé:Ú0±þ}˜Å¡°û_jš‰tô“Ïé‹`{kðаnj1‡ƒGÞ½d¥l³6Ä^?9‹i¸kàσ8ì _zÍÃíZaÅç'O>Õcfí¸²`tƒ8ì ÷ÕWf›ï—fÛ„å.NªÓ™áÁ0@‡Ä!€qÈÊ -ßçð·ÕÖÖBëF\21Áýüm ‡Æ:ˆCâ€8ì¡âqBb“´Â6AêO¾&Ô¼>ìð4·# ±ZÛåˆ4-µÑú+Œ¸‚ É™ v­ï± ±Ÿ=ìD|"wñÙöõ:¯ê^Iëfd ü(ŠuÎoc´¯Þ‘§ùõs‚ιÌê}¤¿úôÐR”du0± ßX’¶rÔYÈ¿fþu‡}À~vßµ;™ÿÔÕùTŸDýtb§| -Ûþú³ió^>kÚn®.Fí Ný•FÜ×ùì'#÷ u‹BÙ%­—–1¶Óþø¼~hÎ –7¬qŒ7ëúˆYl¶“¼ËìÀ ÜC=ýÕ§'bsU#Š™I(»¢,£tæô:nø=Cðû§â°î¥ÊF¼¹RbÙ×ßf(¹ºëÌbAQj›½cú÷ks‘Æ1Á›sCm]ž4³M]¯qÄjS­Þ¦îS‘*غ%<ËÇ2‹-Ý{ÐNm{c×rÔM1GÞt<‰uþ© Å®Ê¡‹äè]|OM¤õÒzØÖ1ú éãö?!:dÛˆ„n%Ë¡Œ7«½èTN8„âp#T=9uÔçÖ÷B^@ÎÇK¶%ØÈòúço…x~anZQÏ›9+ïzYû<(§å˜´€ø.C)*h ª9/âÀ¡4é“R¼?©Ûî%+ŒC×¼Štô½ú¥Gà[oá #YØc^m…±¯®œKºU¥ä| ÒD>J9&p ²sµ‹“• -í£ô[ŸÉ‰ t-Y{Ò[Í=~Œã2± –q|ðMÜ1êè|DZ—¹/døæ%oTºhfÍ›´ŒúÆŽëOu©Ï>}ñûI ·ï”Z2¥sêö\v2Rsñ'`]1èøÿº.ÕÞ`6˜œýò„ÇCnÓs±{…š(_#fî3V_ÆÓPŒœÈ§i1MËjÏË“N)Í2‡>éw™*jC†ñ®Ãy«ŒŒVqæw x· ÅyÊGÕÎå $¦°|ÿgwô>‡Ù‰ƒSXX§Lg¿¡ºÓ¥Y7%fKÞÁíú™kO'ë׸+$ç9§­Ü¡ §þ¿‰ôU7t-Ù7J™öKVçr$§°B¿Òp"ŸÔË[ ºGÉ‹Ò±µhNvZ$ûÑQÁq¶Ø&ÊÆÁÑÒy.ä¼½ lï¾”µ1Iäã=©ú¾Æ–#,>=g3·ÕmH’‹cLN´h:*ÎdiÉ R9ëD´ÁlÒ3}¹Srqá+8]êCl,xyý¹ÔÈÿÛ±cÇúYüôÈKJ>r|pз¾ó±Œy£CÈá•C}¾ -À0øçâPûû¦˜óÖ"_m·í¿;5ì’÷ly fÞª¨ ÓÉãÔ¿ÑߢñquTªíTúŠ› -[×ï2gIv*í<ÕÕ09•;Äör1≉{Jµ:—CÑ­““P~So›U™rˆÁ[ó/Ûc’&bˆM¹ÎÅ%œIy˜K¿Ì鬟ý¶%kðæAgé‚/JÔWŒe–Ú½qåêåm{¡ô¼Š^¶MÔÁI”îÉæÜý&Î1âbÅmUùdýßyøyˆî%7¾³Ù¡ÿš‘—‘D\›\PÐþq¨ÎóÂ}õW؆Uö°¹êšÉlm§‰å7”•¯™&´= -ºö³§¢˜Oäv>òX ÝKÞulË·Ê£Aë¯hŸàí)xR-b£1ÆÞ¢ëܽæ†):I…mãE–_WS{p0þ˜C×eoGlÌ{íz,ôÓ‚ðd{ FUÍ©Ô×D„Ë Ðüʦ`$ùwãpûþ»SÚãP§dg\²ië…–qX·Ëœõg¶NuF5t·Ú; 7¶n'†oÒdÆtÕÎåPt¿æGª}fºÍðµ?öJ-1^C„–@B¢)kl×}+ž¨Ö³d>RÄáÈ‚¯Îyùàæùà¤*­X?)òIQCúÁýÛ#ý–¶vOÖf·@Sš±yŠÄ¦µle7]\Ï#d’”¿šö(y7oq÷r~g%ßBh,(! -2£‰U¬•Cæ…ìàC“Oëõ¾ÚÅšOnÝöu/ȸ¯>½ƒ£à¬¾R¿ -ù$ŠœŒöšNÍfÇgµ¨é:¤GÉAËßjï“ŠÚ)DK¨Ëˬà’Ï„ê6¯öjÕ}ytélòùÛe’ß¹¼9”äÞõþѦLÛ=’§"wRîo%–_×èR2+ÛƒG˜Ý|$Â5}V8¢mÕ¯i¹/pSí:wžË}~Ò‘KÙ E J†Eö§Ä1]ëÓœi uµXZFFz¥' •%%Ô}Êm›@~¯¥ä–£ÊI§x+I¦ÎW9ø'ýsq¨“;gÓø¬ëï3•N¸ëÌn»•¦KŒáËïûñ8ó<¿™mÊ:õ#ÖRõú›ºOEª|ìàuæQvŽŽcÜŒuFN– ¾©wCDsÁ™Cúþ÷¾Vã˜çµÝÓ”y\zÿUû”ð-´03Ñ2Œ[}ø¸Ö4&d·yñv¹êFj©þö∆á;fanZr &z_ΉB*ï9è‚eåŸ}ÄÛz&úS—’-æøÞÔ UÏ>p°ú˜ß²sZÎ3|”Çu™»*s’ŠY³S”†]ÝkCùð}Q> Y»-ûF¶êj'}×Ol—”TÿÎQÏê>y9éHhþÅJH‰a Á(0bãØÒÜB$u~‰Â¾Óܬ[*Ÿl0a·±QòrðSõDlúþõszÌ!›Ûâ®É'WqÂ)Œ#5[ûE~?‚QÂÜhW1\qH)Gý5^dE€ÓN¡ßZgF˜‘‡„úœ¬/õ„Îo¢™ÆMžÈ9Ðï 7Rãø‹ €‘‡H$ܤào#‘H‡Æ:ˆCàŸŒCbK3¦¥ECp#8ëÓ´·•I‡Çvû¾`çá”ÿËeÂctàù2à×á¾+[60ïÚŒ>xÚßÜlg8…ÀæœTs™r2 í9#±ò¶¶öýˆc3»þâvç¥ôæŒCB×ì\<§øD>zÄ!¤ª‡zÊqò§}»>`° BùU]ÃŒƒ¡&GìUc³Ž+¹Ïó òÇ0&ü[qHÞßåT/”âtÂû;Îògoûtó=i†¼ƒƒê æÖŒ4Ì“Ü:­ðæ³|äTý—©)G¯½Í¯n¡ãœ¸Lþˆ•ìD›ÎãLضªñ f“Øí¼M/,w›|˜ïwt3ôÆŽbDÜ÷7×/ž»[½ï˜Ú_Ù–Ã9BM´cWÀåÇXZ_ÌÊoYs*Æl¹6¾?¢d‡œ*øýknË:½9¬¨æÜu«Š3K^d–5Ïr -Ð(ò·ÊªÅa‰ã¶ÚØ*Lcê>ŽµA­k¬ô)E¬HbÍS;ÍÈéÞr]Bßœªã$ìâ·¡-ÔˆÕ-´/Éø¤=wÂÿV~Ž(°ùðQr;ï1w¥w†¦…‡Ãt˜ŸúÚ„Õmµ?$%PÛu)p_üÕ•ÍŸ^›þ.«ABÏËv3¡ðºÏñÈ—u> ‰Òt¢Ú²ŠÛ-ó¶Ho\(Æ © -Æ”+‰M¹YùîÖ~M;;âP7³ÖÀpfÚIß'\âÃd°”o3dõ•–p7”ÐÌ]ÎtëÒGvQbÉC¯“7xŽÄ,ÊÓë<B~À»Y3.tcõÓ«‚âͧA×Ò¨Dj©üøðÒùÔ«i¢K7HmÙ°Hw]Sû¦~„{ûS}hÊ´Sñ_ཛྷ‰hù«¢usƒ‡Ÿ‚xãC•øák8këîq`Pór™È@ÂÖiékjHœ4©ú¡¡ZŠúi÷™ŒÕ]ÇÁ×Ü×7ût(ÄXœ”å§á€¶ Öîvº‰/<£oÏ|Ìosk§,¡üš‘é-»ñVÏ7»Ûoæox`®µ!8`W]·¹7>¤¾QgÖ•Sé3Ú+Íúñ”éÎKA¬º§£è?óxˆÎLÒKS¥P™po¡³Ú‡+´üLÒ¼wT8Tlç"œsûÊ…K·³ë¶nݺf&=|,c¿‡=†Sþ7(\vÆBøÛq9µ‡“ýϺJ’È,N´mK´æâk>vA×Ò ë[œ^D)Á»»>Ã_”¨iQs$X}<=‚T÷ÂD3E>Èa. ²ñ½•‚çòÀ M,_=•í¹\C…Ûö |å‹„À¨ÛÙUÍ„–š¢¦Å~ –SŸ»ŽƒÀ}rS;1ã¤ïÌ;¦9ZAæsXºý<¡ì²MËá£L®Z±küìñööMëlìiC)g¯ØìJŽbž!²œßº–ŒûvJI=±œ@owJªãA—‚<±³²û>þR<ÈŠ[ºzüv%ëyHz’ÇoÎÔ¶AÛËk=W%6å?÷r‰Ì™k=>‚1`Ä¡aцÐsáo{ÔLjÃN6eØìÒ¼‹Ùjl¼A•ébu -G>³T­1ìZ8©î¥•ÜÁ7¢üØL¤RT„²0üF÷¨Dj.O¿uî|êÏ´3VoÞ¼qÕü4ʼnª‡¢l%ºôëÓÌÕ¢÷„¸Ïa¡<´ÞWÕAØýÔ6~ts^˜šy]„ñøúëºúifm¾Å'8ðr»‡íaºÚ§fja[‚W³Uv‡Rê‡ÚWä‰w×y9­åêÑ!Iªzh|(WvÞëGµŽùS_žïp˜ÁZ=Q'ÊK’A(½¤«ÿÒ Âvjc×’‰•÷uUãWÕ(rv¥± 3˜‚é¹䉵L>[†ŠÓc³Ž©z.ñ²­9düÑ<Òr -†XõÀDïºzȱ -\»|éÆëZ¡¥RÛ¤7ÎÂÀã[À0ÂãÐ w¦†îz^ò‡vˤe ù¾gd××}ö°ö©ZvÈFvòôñõetÓÖþ—vÒç!§~|ØnAl·8Ì´“ոŠsÈx>þIgR.×^*qH‰Mç})%4SÍBwòìÙçà_E¨ÿúôêùÔK÷ËgÙ¨ ]Ôí”æÜP-;f‡ 9AZ±â¦ö¾S³ý¢uÆ×Ý=¦7ÍÃw>ó¨š×J?ÿU­aÑ”a«ä<Ã+L–·áu¶Å½å§"u'»ŽÓVn˜’æ…±}!>²‚Ô~‘¾>ÍT=¼eÚnãµ).±eãÔýOþl®à³, hOíc7ÝPn'5±î%c?º(»þçsêÈ›fš©ë½ÛN;/åú§jÐæS^‹ØÅgµÌ‹Ÿ’ûd¤vqOØÉU Ùaš¦÷Eúϼanxµ@jÛ¶Í˦rÀnƇº¯ë~¼¢ÓˆöŸí´ûçËœÀõ ýFs7ÿx=0mßqg ɶ[i:G]sñ+ßkëY§¯YU}ûA†j’('v«Ýà;¸ nÍ#H-5…_Ì4¢k˜Yi(-ŶÈÉkßÛ£O«Š *Ø„„Ø„w;ZM>¥eO'Âð¡‹â]¢a©½œ›_”¨eQz8¸½[Ô˜qÈ:µ”Mhüôi…¿DºÏcè6N«ºW{ݧz†éN¢~jcºåñ“‘û±Žòv¼®QzèpßÎØYÇå0´\ T¬ô×ñÓuŸ;¡øœ–ÑG ÊÉ"î³ÒázK?ÙGí»,…íÜÛú‡›í‚•…éêßš«Gív›Mzåkf³žÂžï9¼.úãjìôp:Æž‡[˜›ó!ÁöØ=1‡X—åp0HKñE«ƒé{ü-æv¿h8 H„Æf#=š„ûzÆضÌ$Hä~€? â°å„Rï-^xµ‰§´ \6¡ìº­åéæÕ‡Ž©HŽ€0¤|ïÂ×àЃ::4ÃÄ-fe¦0Ž„Z0< ˆCâ@ŒÀ8dbbú€_ÐÐÐq`¬ƒ8 €‘‡é–R -×Ñ[ÃΓD‘ÿ×Î5I‰ÚÊ ?þ(ìg;ŸÈ]üè^‡F¡‡—+ÙWú¤œœWpâü „²K*Z/-cl;žïÕs`4Ùq¨ú˜› Å`’à+湇§Wæ{´¿”–WÕLÏ5y…òá½y–Æi<Œ¥¥6OÌ=ÿ7×ò´û6Úç¶n Ïò±ÌbK÷´S[À -~"”ßr² ˨Á55EvsPÎL,»ëeí󠜖cÒâ» ¥¨ Äû]‡Ì|ãÒm*¾üa“ßõ\‰™(ïá°ÑmÈê\CÅ(•(ßy,͹Aò4nQª"Ô~¶0ìFvjÙ¯Š‰¹²&À*Kç@kÅ'erŠ ²‹ï¹º^eUXX—µBgå“S÷W˜îÿîPa¬tIÛ&o•‘Ñ*μó.ï¤8Ïc/3‚vDlY‰“‹Mªº§½?QûÌIþËZ:Ïå‚œ7°„íÝ—²6&~Ç ƒ®C’´j»Nå;µÀ[å`™ZÍz:BÝ÷J:Aæ¯>]‡pÕ)XsœŒ”BW?ÔQHÖŽó˜ÅÜ Ã`„Ça®Q˜ÖM}wm±;e&)aó^zZù^~ó½®íA¾|+$‰é-¶1º‘êAºqöŸ4÷'­5ãK°~PAl/#n˜¨!?C -~ÀW<ö ¿‘UÙLh®.lZ’¨üHݤÑ9Æ@C¬¸­*Ÿ¬uðN×! 'Å2ºNuΨÚboðÆÈ`)ž¤š']‡+磌\3ŽsúûÉMÁn¼Ïi¸ ÀH5ÒãÐ$9PįÞk®‚óH¬ÅU•Û˜æ›&¡>3ó­’”$eáÆèF´Æág­}gV“ãÐ6CÂÆM§íÉ7( ߤÉ|ôpvZá‹Îhj<Ûåï¸I„®æÑýAÛOŸd²Øª™²€Ñøáè¾cSü}Eìï2ÄûÊN·ëTÏÈ›âOÄovî[À¾®Cš>:í=>#(b+/¢ì’Šæ3ËX{¸ ÀH5âã0%j}¿Œ\H.Ít§xË'jJ×äl,áúˆÿʸ°GnòTal>^ÞTe ©äÃÓ46ùûÇÁÙ!hÕøþœ½ä©Ø½|õ/üTŒo­Š<£Ze&ã¾útôŽ‚³úJ!üþ)ææ]‡ÄÈVî6•>Ëu%¥ëÊÑ'×q¡°e_ØÄÙ«/tB÷NK.X-þÔºœEÍ»gÂÖsÁ##¡þ8ÜÊY³o—sž˜cjؼç'L=.gÖ³Î\¿¶òFRý¬q¸%:vkA¤ƒ×™GÙ8:Žq3Ö9Y®…Çù‚6¤†Œ`“ƒÉ%ìÂbÿMÿ~ï³i‚ïtæ)³³%&N¬|ûM3>læc×!¡KJB»Mµ¹!#êˆí™#½”‹‹’m÷!Bµ×­uüŠDfMâÆ=zÁçg `Ĺqü5‡Ä!q ÄŒC$¾"ào#‘H‡Æ:ˆCâÑqXŸ¦½]÷u]û{,sÏùÍÐã•ÏΦd1mÞ#%@ßÿØ`?y›{Zðí{=¯° çTc·ÃsY©},Ã}¿œúqÞö5¼¿ý¦†žö77ÛNÐo˜b?:ìÖ¸#ê‘â3¹îõñýÆ&{%¹ýÂÃ13Ý:¾©¥üÂ=¡6ÿ;fOÄi-ÎwþÇï¼ûT-l}&hü€³Fpê³ß¿ÏŠup~ÆaxÜh ˤ“X´¯â¾xË+¦òz4> ·š¯>JÖ(Ç0½ ½~†Â} Q·gu9µ[ðï>³PrAS+É·ÖÖw')ÑÌùV~ãFÿYš_/²¥0QÿÀ˽AŽ«Ø›rÞ}#!îÙºàŽF˜À¯È±kÇ!î³Ç>¥Ëü>mÁF9_4Ì›¹Z(ûÁgÆ~Ö¹ñ_ŽDÜË©Esˆ¯²ð´ZI÷®Ç9¥Ï¤Ï~‡¯½Í¯n¡ãœ¸LþˆÁD·½F]Êá¡ÁW<vôIyQ€ež¸ÞÌÕj 7¢òiˆƒ÷YÊÑŲFVŠÓ+Îv'|þ‡qßß\¿xînõ¾cS)cÒRMV;íµˆr^ˆûâ¯~¨lþôÚôwY z^¶kÂÌínÉ-Äóã¢a‘w>ö?BnˆºUÅŠ™%/² Ëšg9y¬;e§ì>›¹9/\ýC°‚`Ãó0§À»…-,_ÆõÄ!R~Œ¥õŬü–5§bÌ&Ñ#êßÔHPu˜I®Cí {ÍèyÞ›0é±n7¾Ö7xW›Øî£wUó‘܈ɜk¾æœÏ·©•—2ƒ”úÛFeÕâ°Äq[ml¦Ñ|õR9X4M¬æË·¬–¸{ËKBåƒÃQ³¼üöŒk vRõ]ÕØýaþ˾…Ú×ÏÛ"½q¡3´o0¦üsq¨÷c—é¾Æ0[¬±›Ëí2ü¶ÑÂl1sÅ—<žÿÉ-`m"ŸS~LttzÈÞ~N)ŽÈH<÷‘]T€…XòÐëä  „ï‘ÌÎå줻k¼ÿÈ¡Ýƪ è ?¡Wí[‰~`&´`¹žîrŽ‚KžÁïç9Z58Xåvž.þA¤–Ê/O½šÖ(ºtƒÔ– ‹Ä(ØìŠöÆäè'ÃOÌÒ³ª³VÇœ³<‰W±Û;ƒÿ%\é»ú¾Îô@¾÷æí*Ns|}W#jIœ4©ú¡¡ZŠúé‚4ƒÿ;~`ú½ƒ’›¨g¨‚0Õ]›ÔøÁSýÒ:ÌH‚±moÃ}vW:Êêª!JGlúžvëÊ…K·³ë¶nݺf&< Œÿ\•I‡ÇªTî0-— Qg¸h¤ì•/¾fýÒEËׯ–äiÝs»u–6_ó± º–^XßöÐ`‘]l×¼ª;—£Xg%£—9ß?éØŒmsnxg¶Kç~eÇc„é'h¸nO³ñï>/ðoÁ} ÖPKfÙqÐXqåDÖŸŸge—55néG“Ïì”ltVvÿÏÇ_ŠYqKWï±Q„ÍT ¡ì’ŽÉ'‹£öçb?{*Ûs¹†(¶¥±êžÎ-ýp»é ¸/uGQ· í\e)¦šg˜ÿ·sݲK:‚_”¨iQs$X}<¥¤úW¦Ú©jÁ¶‚i6ú—6úØÏýî¸×ô-¥vÄf,ëEÚ÷”ý Ò ²µÃLj™|<¤\u>0êvvU3¡¥¦¨i±_‚ÁQÙ{‘¯ßf4î[ˆª5ñx¨¦µ~ßæ‚XÃ÷ÊÁÇ–·woʯijÞÔ‹tÃÒ1±)ÿy¼—KdÎÜÀXë©ð”F0üsqhLI/…ÿ³wçP­ÿÀ‡1ö%d•´wÛSJ•²ïcß÷}»±ËŒ} J‹®önZ• -eÉNÙÌ 3ó3¨¯èþ¾÷v¿÷ûÕíyýÅqÎsÎpμç9çñ|†mæ¾0¦›j|ò¨úÉÒò±àÄ.VêEq8YçuÎøý);»c"Ôõ¡îÉøãVlUñ£ Û™ÃÄ‹É/qè lñFÌ%ÈpÍ쯇šž[D”c¢iñ¾€ ™Ðÿºª´¬üvLò°¼¼Ü¡M¼ô”¿âdNðÆè45ØL<|ª0±orKµ¡Ã5 ¢öÄ'á žxëir¹{~” ±¿ÒܲÆ1ÃeÝÜó6\c„^˜x\Ò .Hÿu3ëgižf~2=ò¡æáíŠÌÒ!ý´H¹ÙŽ%¶Æž£–1—>ø6ŒY¿¿k¯oƒ/Jƒ§ï‚©Ök>+)?oM6òg N>Ï>2å`lôÑK<ê/sÁëùéHŸc‚´£ÕŽð´“è¸õ7{¼3fš4xÇÆè²v:rç7Æ~u6)Ø›pþ_@'ëüµBÄâÒTø)wWÉSïî߸ZqóŨÀ^%E¹môàD~Ë8—¥YƒuRþ: h¯fUѬÛÀm+ Á´kedªÏ¼:2ô4ÒÈ:¡~Gx™ù¹GBTª”]ívL?BG]lãT\‡Æ¬÷m5½ëÕíõ·Ó÷6QíW;@}ÏAËû­ªµönnò§†§¯èö‹ŽÕ3.Þðc"b?T_/+¯¸×/–`# -í)‚[½pÌ -ž½;0ñÆÛ-Ÿ³›Ø[lâÜë±XK7Ý{ÉؾÕ=ÝNt>¦&ëýà1Q ‡ØçÂ[c­›®›»¶%×Èú¾^VÂA†žO$^>&(i¸Úß4c[,ê÷LÚRM|™ѪsD­¶7.ÚÈÝ?d€r–f&TYêÉ%Å)òÈ؎wýÔ¡7-Òüg?©Mu晸M89tøDJƤç6u¹»?9S{ÀUÅ—Þ;/p7¬c8âˆvÜÄ´$ ÉØWHý`zD†•Ø¿ÆÌÌtV,ß8åø‰3PºŽN6W¨w*()Éïcÿ ƒuàG³Œãpé?Zä¢5¿ŽC8Ý÷ôG-8—„¼mÌìèBW‰æAÛžiKRiÿýH÷øï°¬2‡†o•å–Ä¡™0tà!: ¾äy'žiíQÇÏ#+!CO3ÂJ5 `+Äš¬¾‘½d_ÀŒ<5ÒÑþ¤¯·³Ê'¸JÂ6ÂKj4ßÔƒà‹Ñ¤Å¾r6ÌVÁ ·³@Èõ‰öž•ÃŒœkgÇÑ{ŠL\>Í&å\[Äþ*„-¦Gp“('¡ú9Wx†%_k¬çý!ZFZvi5GK9®N”£_õÐxo盀› JB‰†oIÔÐ+ãqÍŽ“çšIKòdSa "¿~Š‰Æ pÀJ}8$~clÒìÏ cÏìóµÐÆ‹®žåŸØÖHlì~ÐbÄ‘eè6(ÎÝTקÛpÎÍEY„ai×ß–aâØd„ñß»b.ÂqïÆNw?R³²soC`|$¦F!+Øé@wøù,ã8à" T™[=°IõÙžòÀwq?>\ƒ¿~Ì^êèÖÀwq Ä!@–a211ý•à;Œƒ8~v Ä!,ó8$aßfùø¦Ýk™d“3 pWþÆD¿ ß{^¥€;©Ø4AþtôóbÖé×Sv°ü[?|gE„/æÉà4i§]¤»,ןœpשíÅ|–ÿ^I+Ž8ÚÞ>¶r#Œ÷TX¤ŽÐ_º¾æŒ¿ ²ñ}1B™Q~z¤½‹^ëB‘%GMŒwÜ͗åY'¸@yøk–sNÖ‡œÓºÄ âa¾æ 2¬’Ѹ(Ïdõ?ÖÏqXÅÒÒ06ö>Ô9ràÏñM›7°‚÷à òD]¤® Ö:ÃsCC˜ª,êŸ,ƒKì«Ð7yæ–K™ß«æHÏsü[*éNuå=ÖΊ8Â>ÑXó ¹å†À_pYf£€¿hÇ!®)â¬zGЕ,Y¶î,•3(ˆžS^ààÙüãa39³3_8¬%È‚Ç8fá½êN¾ð,ÿ^²„è? ×ùüZéŪ!m× †)G22”y¡Ä¥Z×Jˆ®:ÙúÙñÛYmh-d¶.ã½`·´ºüä8Iè "Ð@‚™Ôw'Æ3î~?Œ}ÝNRmn6Z†“š4xÇ@=^€Þ¿böV¡5QË¡ÿ°tïㆮ„­‘Yüu™Añ×[ÆðDY—@³]+ #Ï-ù½8pÇQ;mkrª¶àÜìßCwàYºy©>$¹¡°»NŸUس–œ§ð–qŽ½0‘7|·+³¹‰iä7=yËöm6\ÏãÇÅ᫼‹õÂü,¤Þ»áá×y|QG2M¢ö9:m{q'þ»q‘Ò°3ÜÇ5ÞK%ÊxÁħý­í!Žö²ÐÄÚ¨Ô£z —$^ -ÙÎþ)ò‡Gž¨¿[V\Rñl|ÍAy%¥›=UÃ÷dä©ñÓÌtíPª–½¹·Œ=Ù£3µ ÃÌ´KLó#¥hú†Èœ PòÐ]SÍ"ÓÂhÞ«&fOTÑ!ÇVt¦©k\:’{Ñ\˜2ù.XÅ=.ßt®0yè>ü´ƒiR¸êzFòäîÓeä”qŽËT3Zǃ™zäžKØWK²õ„¾Y*…<þ:LË“ -‘ç$9_«÷>XÕƒ-&×| -i¢óYååÒò›uT’ÇÏœ9#+Í -rÀŸñ£Äá#=y‹oÅ¡ÐÐÕ÷ø«/»ÆæJû®Vwá»Üv(»ÜO¸ qZíú*ÌïÆ¡qû¡ìË”²9Ø—V'õo|)öK/÷à+õy°p‰uQ‘Ñâ1ð¿„ÿ ­YÈzÞÃÙ@f=tvI¢ºy¢8hæL õÿj¨ž¥šIç¿a—¼‰׈Ôö]—uö4'.ýfà HîžÜ—R¤÷ÐÐ~"$×Z„ž4pË@«Ä² ~;+„ØwEWëºmåkŠÉ÷aêžœ±9ð¹Sg¼ÖëŒå FnÆÙÒ¾øI6Õ(Ë+»¯– Ñš«¾‡„ŽL}“Z£ì°CœŸËöö]Õѹn[»ƒõËZ¤‰öG9áˆÔÆé%þâŒïoþI–qÎß, ¾’u”­;GõLIÛ•¹ hàÌLšŸ° Ä¡Îû¤Î-ú3Î.'ÖQ¿E8Æãä]øo…´Î.÷n 8£~Mý»q8¨³Ox°/-àµâ^H³¹j=ÔôLqf_-áY·ž|ÞþÑ‘ }¯*/—üú&uTñÔIé­ªn1–Ât¤ÁÛš)GÒ“7¥kH¢3NqCú*ô»e™½¶1z|.!è„íÈC+Môé¬h&µT㢔¬‰·~ˆ 9”îåÄ7U?ñÄ<í¹D#ö]ƒ=sË÷Ú0ûloª3[Ïmö¥LýÒ%¿ƒØÃF7w/:uA•Í‰7çü%0yse{ûëïT”—]6²ê€’òY…«À„Þð‡-ã8„LÖ…œÓ¾Ä¨æa¾ú2ôL/Í«ÓÆäÁZÏXõ—®N0Í™8ÄûŸÒ®dPõrÙ=ývá§Rù¹KüÀ'ç­5áÈk“ÿÏÍÒqH쯴<çòz–ƒþòÇ·Õ5Ìr;îÙz-\¦塲 -ôÿ!ˆc-+ŠKÊnõmv9ò*¤Öª j7´¥ëÞkŸ‹j2SÅÀ/$ï¤mÎÐ1¾cTÏ®î¿99Oû¥oWu(³Ð`ÈQ9âpVÎöÎbKÝÞ„KqÈtwž†Ñ ÏB¤ÔÜi<ñÖC)“š:_i‚Ô_i¤ž¯>+#Žµ×pnd~hüõñ5LKCŒå‰Í·åkÁØ;•|\!(¼I¢ën“CAüNh}²½cñGöµ¢¢ƒ¯Z/¤ÉrRCÆ^XžGÉÈ>Ã;{¦Ì–®íGÿl[‘ù¾yâ}®WöÛ)f&êÃ&bT‹–l\ZÄߊѵ|ožz€}.*'ëƒt­o}¡fãàÙš$55açe{à»-ë8œG“ljZÄí_&à òø[ûoºJÅ'|ûÁÿt?BÎ NtRóqуGwÀ߆„,øiý q'‡â–aRQçƒÀ™Lqüì@ˆCXÞqH}‘á^ü¤}‚žWìÜí\ƒ½aA÷„VP3=Ïzí¿™ãñÿ­1=mþbìó·,[“JQ[™ÿÈ–ÄÁÇÅ—˜äÕø¾÷À²ƒkŒµGTw¶va¹ù9ÄìÛXÿØÇ2|×ÕòwÛOËpÿåÿÝåÿ«¼¯Í†?X¹8Z[•|£‹ÇS Ôüæ9ùŸ;Âÿ^Ëð¿°Œãߥ¿Ìªêd´ÖñâNÁôÈćַž¨É³-‰Ø÷oÞ4ä†eܺ¦…{×ò¶EªÛ~ÕÍôÀo˜ ¸K”½‹Ê:†»Ë¬„ .:‰â¯÷Åæ¢ûÛ‘ð]/+¯”ÞÖ@¸ˆ1BHƒwL JàY1»)ýB|K‚¡k߉Ñ×µ ãâ1>ò\TÃOÒ‚“îtOqD^åð°3Sξ·ZÚº§yWqÒ0i… ŽsÛR ÝH}|ú¾» y4Ù:_±…™ÐžnèMˆÑæÿº5rG®›ç•†Ž)™ä\Çutl­“Qvj ÔÌQ>õ7ÎÙy‚þu2éæ,È}ØÞÇpc›³Vô¡$Ì)ž*ÄÑ—_­³i(ué.9³mym¥‡fäŸx‡ßö gãoí¾'Žt§žÂ#-­Di«H·ƒØ´E-»òG™¤)&GÎüöH#Õ¾Æh& Ž¶Ý'åv 3ƒ³ø!,ã8$<5v,ï$³oØwJÍXïèZêoÄáë¢Òw+Vó±>>ˆ‰¾Éa¤<‘Z²Â¿µ­ÝKÅæ­LÊ[Žßµü:÷[˜ïg﬈¼Ù“ï·Ö¼8-Þ²ŸsИH‹¬bµÎËïs=gÓ*çâø ó@K;×qÕ¬“3}ÊwEAÁV|îSŠ@ê¾Ú;—½ $Þ»~a;giïØiz¿P±3ØI×Ý=¤qzÑñ¹º·-Ü;xùÛ§ß=¨(+¿^3±zï1…“Çv Sn àÞ‡éøs!Óô)… ICwÍt¤R̤ÈÏtS•Ó“¶DÃýùƒ0ªB´$üà5;Œ -‚oD†KE%›ŸÛ<ü›¹Z <&PY”ŒÅõ䙬MV㇎<²5*‡§oèZÚeNn_ý„#‰±ûÙ© „Î,SSJ™—Ô‘má>æ‚1¤/u‹žÖ÷U—džnI7ò§ L>ÑbŽx´CöØ Å“ûÖ2A ­ƒÑ„->ÂÅ–låíÔë³!*h…I™n²M›K­¿“·>f"Ýj+ôM .ruTª¶ í×-û®˜Ú7º¦Ø‰PFP´.C]յ˷¨Äž:uJF -”G–¹e‡3H¸öêËEÅ—.?j§ûÅ77ìèÊÉEqHè½狾ñº;WþWH#@®Ú»xuT6ü–‘áÝÉùî‚ŽçÌî ~)äK·Ö,;K»}qÎ6«?dsÆ¡_9=×ክ^L‡ˆŒìÞÝûeoæš½–Ý,]²÷sÖl7b†¶£3æ®lQ¿#á"bÓ|)ÖñÚÅÇc~ºÆ+añ¾€¿¾c/a9ãd§sP”uAϪ缾Q•eÎL?BÉƽˆMq -\TUæ¿Ùfx‰_r0.d>~öè¾{æßÚ‰}fö.)_ -Vàš¢ôü9ÃStg¯)ÒÐ} ³*Ët_ |sŒaÐj$ú4gßÒv éž"c—oŒáJKØç¦åpŒ—e…\œÿ¶® u‡W \ ³%‚ 8VåØ8BýoU7* -¯uíM5žF~cêÅG¸ÈÄÄ×[ö:q7fÈ#îðMë°5á¡|(ó\¥Hb‹ØÝñ(y.(¾5ÅÀ“j,L³¨å™t„‡IFÇKݶvh6A;oe™›û•4ÙñäBLhfó¶¤Ô=6)ˆÑßôŠ”—ükÿr±¸BïMäZe‹7b.A†kf_(5=·ˆ(7dIïÐŽ’^ÚÃ6s_˜ ÓM5>yTýäNiyƒXpb+õ¢8\º÷ãVlUñ£ Û™ÃÄ‹É/qøãá˜hZ¼/àï@&ô¿®*-+¿Ý“<,//wh/=åw=Y磼1:MR\—ø©ÂľÉ-uæ$Ã5 ¢öÄ'R -N|¨yx»"³tH?-Rn¦S4ñÖÓ å$:r÷ü¸b¥¹ec†Ëº¹ªa¸Æ½0ñ¸¤\þëfÖÏÒ<7ÌüdI;”О£–±•…²¾ cÀïïÚëÂà‹Òàé»`ê†õšÏÊÅ&jÝt[#D?¯¥ë,>ÂE¦º·<ñÖ×,÷,ÊyÔË®Ö:þô3[?z —à# Þ±1º¬ŽÜÉ:¹¨eòðkÓkª:¤¤;Gc‚pBgºáïî߸ZqóŨÀ^%E¹môà´–±e‡ØW®ž—ÅŽcí¿]9“™g#Bn@¨ÿʬæn»›w…¨¤`â¼Qƒ²«ÝŽéG訋mœêéé'¯êÃ/ÓÃðC;b -73ª´¼ß -©Zkïæ&jxúŠQAiýPË¡4k°NÊ_Ç¡íÕ¬*šux m%!˜v­ŒLJrBG†žFY'Ôï/3?÷Hˆê×{W\‡Æ¬÷m5½ëÕíõ·Ó÷6QíW;@}oÑñÐí«g\¼/àïDÄ~¨¾^V^q¯_:,ÁFÚS·zá˜<Û‡Ÿxãm€–OŽÙÍFì-6qîõÀ˜òõ"ñò1AIÃÕþ¦ÛbQ§¸¡Ó½—Œí[ÝÓíDçÃd²Þs•ph¾*!¶ÆZ7]7#vmK®‘õ}½¬„ƒ =KÛ™9ñÛRM|™Ѫs£Rf>Úmäî2@9K3“ª,õ‹ä’âùaDlÇ»Žµ´o?À¶ˆ­„QM÷?7Od -JÑlsøjN±ÕŒÔKŽpÒâ–YY90FˆåX%íö…Züjˆ<œ ëKï¸Ö€1 qD;nb".i™Ð–¦k|yDX#%î1vPŽø,ã8ÄwäúýÖôq‚j…ðÎsöîzÛØ 3œ }ÑÚ±ÓL›£J“¶N\t¿ñË*!shøV)Q9=Ï„§/üÈ| ¦ |ËLsÄ¡§á %š °â‡uO7Fy½Z8(&×­ùuÂé®ø»§?jÀÁ¸$ämƒldVR.iBW‰æAÛžiKRiÿý¯÷.·$Í„¡Ññ%Ï;ñLk:FxY Yt<†&«ïEd/Ùð÷#Ot4¤‡‡?éëíì…ò ®’°ð’Í7õ øbôi±¯œ ³U0H‰îX;ÏûC´Œ´4ìÒjŽ–r«è¨ ä‰úD{ÏÊaFε³£TÈ=E&.Ÿ<0_Ʀû«¶˜ÁM¢œ„êç\á–|­‹ÚáêD9úU÷v° ° ª!”xaø–D ½2×ì8yÊØòdSa "¿~Š‰Æ pÀÉC©åûhÆÊ£áÞ¡nc"»Š÷õ:Þ©á’燋[¶“Æ8ß6NÐmrðñŠÜ}Å:R<ȶÖÑ}Pœ»©®O·áœ›‹²ÃÒ×>ÓòØskõ±¨4sJߘ„¬`Õ²€È2ŽCþçf:æVlR}6þÿÏý¦z¯¸;½VKpÙÆ"ø18à÷áüõcö¢P”‡§¿ƒØWéã–ÕÌ|Ø¡¿„!ðÃq Ä!@–a211ý•à;Œƒ8~v Ä!,ç8œxí¦ ] =•VŠØL=óµi›ý¥ìÙ­!üVPTǤ¨­ÄJòßeò]„¥×ƒöXîÕœâÎq~;Ù¾5¤ ßy¹¤~ç9Yž¿<‡öu¨ç Å ÇŒèøê}µF]Cïb}ê­l~O,éJÜ6–?¿ß‰7§Ík™¸é©!TLâ.ñ~Ò„{1>Iz§¦'§ùå]Ív¯åT€ŸÓ2ëƒ+Æ]ŠÞÞéñûqˆkŠ8§R›|=eÇw¼=À\s¤š3uDÞï€P*'jy°Fgjþ—§”%ö^ÒÑ-¡â;„Q%çYùW¶ŸLËQçÿóSù{.ê[wùæØ|©q<5ðô5V|ój&êÑÇîªá¢Éyp¡¿ô†?ªå‡¿­d¢f°/ˆŽRšCyhu¢²àqŽYx¯º“¯*µ<üéèçíYw¤_‹c¿â犹Ý8åXwÄ+ÁW†|ؾ„ë|~­ôbÕn¨—8e22=B“¤½”~!¾9FËöÓn©‘—5uXI»¤ Ù‰d[·Ê¦Öîi^Á•0†ÕúQaòÜÄÖD-‡þÃÒ½º>¶FÆ7ÉÖÏŽßÎBhCk¹Ð ³ °’ý⪺¦ˆ“Ó|ªq1Ú«ÈíöN¥uíS²Åîè!c5Ö:¹ðäæ™c©öÐÍØ•Œ:Eÿ23(þzËžÈ#ë¨C¨¹õ$ýÛž²Å-ÊÞºd;|ŒqK«ÁOŽ“„Î  $hš‘êÖ]’"#M-íÄm(Ÿ\Kòrü•“fôÉ´´ƒK:¿Ä¾kæê{|¼¼4¹ëôY…=kYÀ•üT–wš¶hÐç^“Ito0³j³/Ž¡÷Wñh?dk{ˆ£½,4±vg|¶¬¥!ß×ï»c˜ÓÖ "“J¦-'½Ü÷2÷7µr+hý*Ë ‘§êï–—T<_sP^IéÄ^JÝÃɆOîø<ãÕ”ò¿ƒ· T¢¥Ãr¬·[ª&«æ§`§Â½ ÒÚ’vb~*lòÐ}øiÓ¤pÕõŒäÉ‘Éî,}oöèL-èð3íÓüH±ž0-Oþˆl­Õ´$ÜÀ(”cÅl±ß‰·n1ÇÓ’ͤ¡#UÏ“9"U•ÔžwóÊ2c(¶›2Ò‘b™jFëxPÙ¹Mp³o‹¸c`Q6ê÷ÝI9!sp2@ÉCwM5‹L cVÝÕQAI‡æÛï€Öú¨­IÌ5XÜÏ›îÊÕÐH£âcž Û±Ò~{àKá\zë¢"#îö…7K§z -ÌÔm뎞ؿï ÜÑ­ 7°þC‚¶f!ëyg™õl Êÿ~*×Ñ®´»8Ó³ƒP²Ñ_=x3:M‰›ª¿¿ït!Î@üT¦oñÞ+Ûi¾š!dò}˜º'glÎüÝEÒàCývùÁ›qHmß5qYçV~*²ÔÉcVP‘;xxÿ—`™îÎ×±Ì6¦Ü²{b©_bš$ðÜÙ¨ì$:tG§ïˌ܌³%yñ“lòpص[†©ŽÏMŒ¬ò\Gì,ê½3‹ãÒo6 ˆ„áîÉ})eND_5ä¾”ÔSÜPü‡D 'Rxî—ÒŸ‘p}CNNzRß]?íBØÅP)Êå6õé×ãˆs1ášëæ¯ÒDû£œpDjãÎôñ?ô„~lË=íK’„Ô-^ñÞ9Ž7ôjŽfs—95=Ϻõ<äæEϧß=zð°ºêbIxÄÅ°=l`Raà32¡ïUåÅâ’_ßäŽ*ž:)#ÍÇ@9?&Þ¸ªøI$åi¯¢”ÿýX¦kÑè“㸎~²ÎK3l?&í'õøk'ÍÄÓ™¨½ó£lˆ}×àFÏÜò½6ÌÕz˜|¬ ‰Î8Å é«Ð7~ì–çO©1=Üüìþ¯e˜‹C&y(…ÙŽåØ3Í ­œø¬”íð­ úÞ¡^=n†à]ÞOÙzöØ€ù¬¤üüC¼¶[d¦ûð ”“ñ½«Z¬\¨lŽó“s A'„hGZi¢Og¡Å®éXõäÏ„5i ÊTû’~~Ü/ß4wì:ºWl w0ãÚË}­³iàÑ^'WÍÆ5yª¿þNEyÙõg#«()ŸUعŠ\BÀO`ÙÇá¥lÙ±eÕ”6‰àÒh:?—×k´ô÷ð?¾­®aÓòPáîŨžE“ ¢BŽñ³𓯤ݠٰ‘ÚZèŸÐ¦w¡@g(¥ ,FkyXQ\Rv«o[Lªãzšî|M£§î…‘›)§ßx­‹J13iï -bO®M–­ýtO‘ŽÅß<çõóÉ·šH™ÔÔϵÆž™¨bà’wÒ6gèß1*L“aèþHâãg†’†zê¥ì@§œá¡ûmMÒucFfiÍÈ!<´ÐÍ—àé4NñÜÆBî¯4RÏWÈ@Ÿ€ÇÚëû©û×lóæ;r™ºö®m®¡›“óÔy°OQúvU‡2 õûìÝéJ{au >Ãî™î›™¿JC2a oj72Õw/Æ, -ïšéº¡5ÃÉ£ZÒ3Ül×Ü€RBG¦µIõ/ŠÊÊŠÅ9@ÝMà'òÄá)ŽÞ\s!íÂAåÙò4O11…ßàiÙWIµ v;²’ØYèj™p÷Ã0žy{z¹_KˆúaSÿ$-÷¦SÎN²KÇÀ<òÔp{&0ðÑÇžö^(¿ ”S‚tpäÑdë|mLÄfB{º¡7M F›üIZpÒî)"ŽÈ«¦&@îÈuó¼ÒÐ1%“œë¸Ž‚­u2*ÐN ”š9†Ñ§þÆ9Ûc#OпÎC&Ýü€%¹ÛûhÐ…Ãã6ËÑ×os–)k¬¨·ÃX}JðÉnÅã&H«Nyùho¤ù£ïÔ³Qx¤¥µ“(mévlå·ó’<|ßÜ O3-aCkª»ý¤¢Ü.afp?¹å‡Ÿ’Ót EæÖ“ò鎂ë:ê":Á£ÓÔ(5‰Ÿ*Lì›ÜRmDèp ƒ¨=ñ‰G8¨'Þz¤œDGîžeCì¯4·¬qÌpY7÷ס&—t‚ ÒÝÌú™Cšç†™ŸL|¨yx»"³tH?-Rn¶c‰­q†ç¨¥DÌå¾ cÀïïÚëÂà‹Òàé»`ê†õšÏJÊÏ[“üÙ‚“ϳ A9}ôúË\ðz~:Òç˜ íhµ#<í$:nýMcÇ°& Þ±1º¬ŽÜùÍñ@“uþZ!bqi*ü”{©ä©w÷o\­¸ùbT`¯‚’¢Ü6zpÁ?¥e‡_ %bß¿ykŠôŒÚçêu~½Ä¬“ò×qh@{5«ŠfÝh[I¦]+#S]”ÿ#b?T_/+¯¸×/–`# -í)‚[½pÌ -ÞD)4ñÆÛ-Ÿ³›Ø[lâÜë±XK7Ý{ÉؾÕ=ÝNtþtœ¬÷ƒÇD%bŸ‹lµnºnFì6Ú–\#ëûzY z>‘xù˜ ¤ájÓŒm±¨S”¢…„¶T_æ@´ê܈òhµ½qÑFîþ!”³43y ÊR¿H.)N‘FÄv¼ë§u¸i‘æ/I9´©Î<· '‡ŸHɘ´óÜã/Ц.w÷'gj¸ªøÒ{çî†5`ÌGÑŽ›˜¾•†3]S#Ë7N9~â Bgž“Íê -JJòûÄØAePà§öCÅá‚Û§,[“r Ñš_Ç!œîŠ¿{ú£–ŒKBÞ6ÈFæwÆ¥o4ÒÑþ¤¯·³Ê'¸JÂ6ÂKj4ßÔƒà‹Ñ¤Å¾r6ÌVÁ ·³@Èõ‰öž•ÃŒœkgÇÑ{ŠL\>Í&å\[Äþ*„-¦Gp“('¡ú9Wx†%_k¬çý!ZFZvi5GK9®N”£_õÐxo盀› JB‰†oIÔÐ+ãqÍŽ“碔ÿl* Dä×O11ÂX©‡ÄoŒMšýd왽q¾ÁxÑÕ³ü›À‰ÝZ¬3ƒ8² ÝŹ›êúñtι¹(‹0, CÜ;¤±ÓÝO£Ã£Ô¬ìÜÛ‰©QÈ -v0D Ë:øƒHUæVlR}6‚ç~ð@À×௳…:Â:zð@ˆCqe‡LLL¥øããã €ŸˆCø‡Ä!( ü%Ë9‰#O1Õmãô|â‡M}Õê̵r»¦ ´Bzù% Jµ=Ó—3ûxöë…ð‡M¾‹°ôzÐþ¡˽Z€SÜ9Îo'Û7Ëÿv^.©ßyN–ç/Ïû‡}êyC1Èq#ã:¾zEí_…Q×лXFŸz+›ßKº·åßo¹q¨:Æ;îæËwÃBˆò¬”™n½•Q^ ¦¦Øe<‘¶¿€0ÀOjÇ!®1ì¬Ö%6Mó-°ög'•¬Ž7·Ô†8GO¨||DlsCë§èz^0ù0ð½pÍ‘jÎÔy_ -V,…ÿ¨åÁ©ù_ž—Ø{IG·„ŠïXF•œgå_Ù6~2-Gÿ{ÊÿŽ5Ö| Cn¹!ðÁ\Ö3@ðm)†ÍzéºwµpILîûÕÀ2±Œã[c©`øfs`.ò¸íçê‹;‚“uÞJ—>N/è2N÷ßOð(zÜc^/çë+Ëx˜èƒ, ,Þ«îä ßÔ_à犹Ý8åXwÄ+ÁW†| þépϯ•^¬Ò õg¢Ls¦§QhR˜´—Ò/Ä7ÇhÙ~Ú-5ò²¦+i—$;‘lëVÙÔÚ=Í+¸Æ°Z?*Lž›Øš¨åÐXº÷qC×GÂÖÈøãñ&ÙúÙñÛYmh-d¶öQ²_\U×qršO5.F{¹=ÃÞ©´®}J6£Ø}=d¬ÆZ'žƒÜ¯M/bsî¹KlÛº£'öï;(wt+(þóÀHÐÖ,d=ïál ³žmAùßOå:Ú•vgzvJ6ú«oF§)qSõWÂá÷. ĈŸÊô-Þ{e;Í×7„L¾S÷äŒÍÏ¥iðŽ¡þ »üàMŒ¸F¤¶ïš¸¬s+?Yêä1+¨È<¼ÿK°LwçëØf›Í–ç{b©_bš$ðÜÙ¨ì$:tG§ïˌܳ>IøI6y8ìÚ-ÃTÇç&Æ Vy®#võÞ™FƒÅqé7 DÂp÷ä¾”2'¢¯r_Jê)n(þC¢†)<÷K±¯û®êè\·-ˆÝÁ:óªµ5¯Ù'î`…{.jëܲ¼ˆÚ3ûØ”4Ñþ('‘Ú¸3½Ä_ü=á€ÛrŽC2‘LE+Jyh}Úü•xúUÔVò39³ž3y—×ý¿q˜~%LêKÎ,©÷BšÍ½9PÓó¬[Ï9þþу‡ÕUKêÄ#.†íadBß«Ê‹Å%¿¾‡IU…»¦cÕ?Ö¤*SíKúùq¿|s<ÐÄsþ˜< š©öt-ó6ß"ß Ä¾+pÝ˺9‰‡Ù‰ýõw*ÊË®?Yu@Iù¬ÂÎU àò~Ë8Çjìœ/‰Ÿ8"ÎÖ÷khxä|A‰ã:r—¢Î m_§=¼ìë7¯£n|Õ06ö>Ô9rð€7B]l“$ç#Ke—·B:.Æ;zÞSÒ>L}ÛòœËë5Zú{xÈßV×ÐZ?ö–qÃF^hk¡B›Þ…U`ôÀÏ…8Öò°¢¸¤ìV߶˜TÇõ4ÝùšFOÝ #gï)Œ×ºh 3“ö® öèÚôøgÙŠÐO÷éX|ðÍs^?ÿAlâ­‡&R&5õs‰±g&ªø…ä´Í:ÆwŒ -Ódº?’øø™¡¤¡‡žz);Ð)gx(C9[“tݘ‘YZscVf>îYèæKðô §xnc!÷W©ç+d Ï -ÀˆcíõýÔý‹k¶y¡³Ÿï¦:2uí'<\Û\C7'ç©ó`Ÿ¢ôíªeê÷Ù)ºÓ” ÷Âê |†Ý3Ý73³üow¾¶á+‹!’Œ3Ú»¦Ù*9ɇaÏ#uC¨²­Ø.Ú˜”Qÿ¢¨¬¬xPœÔ -~"Ë8ñíÞîùÞ÷ŽS³‹ìVsñ5Ú¹ -Áµæ¹[¢î¶M3oM¸Kg{þtôóö¬;Ò¯§lÁßCyG>éÀ3‹w÷?ƬÆÆ>|?€§e_%yÔÜRøVpÚæþIZîM§œ#œdgÌðOGžn¯Ã>úØÓÞ å”rŠGlÍÒs$g ÑŽ½°ÑJ×ÈŽÛÅ -!¿µtº:È´Rtv ¹;_×ö£ö—‘¨Ä¾JO3Tôº•ø‡Oybóíø?DX8Ý c¢£áتín§ÀÕmíñpÛÓ>À&¸j…FD˜2 ×{V­˜Ï«­HIKòÄû\¯ì·SÌL0†U‡´‡ü£$’3¹)ËÑÇ:ÙzY¡LìJ>®Þ$Ñu·É¡É™¦m? ÉûþMžNLÍÇKuã’0œ¬Òµ¾õqth„šƒgGhVÈvh]²£{i75-Ë&]÷³ki ÃvPø -ã8à"õWÂî:æJ€§|ð@Ào²ÎSy 5å'èÖÀwq Ä!@–aRQ‰þÛÈd2ˆCàgâ@ÀrŽÃɆ€ó×»£‹ƒWfjêe ¬ ¼˜,ûo+1akLOÛö)¦çYsúbø\c¬=¢º³µ Ë-ÈÏ!f‡ôØÆúÇ>–á»®–¿Û~Z†û/Ïò7þ6ÊÿWy_›ùPÿ-âhmATòf,7N-t64PCð›güîÿ{-ÀÿÂòŽCøõ1±0èFÈ:ÿ"‡Àßÿ!Nד:(íÛe ~o£ÖCÖÐdþÿr$û¯;Zß—Cú㧅à?5~dbüÖÅñ÷áÿìµÀßcyÇ¡ùÓ +ÙÎ0ÿvkløÌ¥ iwG¢GÈWÃS´¢û´¼ÝÏ‹_šž¶iß|jc÷¯;¨Ät­ aCŠiiŠ/¼LPM›mJ«Æ§Æ?íÄ1¯þå¼­»Î6¶Éš¯¶²@9B³2î6BÙE¹D¹ÿéHø®—•WJï k \Ä(³Yß11(gÅì¦ô ñ- †®};$F_×6Œ‹[ÄøÈsQ ?I NºÓ=EÄy•ÃÃÎLe8ûÞjiëžæ]ÅIà ¤‚8ÎElK1t8 õñéûî>‚tpäÑdë|mLÄfB{º¡7M F›üëvÔȹnžW:¦d’s×ÑA°µNFÚ©R3G5úÔß8g{lä ú×yȤ›°"÷a{ÃmÎZч’0§x©}ùÕ:›†R—á’ózÑVp‘×VzhFþ‰wøm¿p6þÖ.ì‹qâH7pêÙ(<ÒÒÚI”¶Št;ˆM[Ô²+”IšbräÌo4RíkŒf’àaÛ}RQn—03¸–€ÂòŽCËwŠ‡§ -Nˆ¨nè̲‰ÃîâÒw+Vó±>>ˆ‰¾Éå}!qw»ÅióWÉó–º{VŽÄÑ\ ñÿ¸G[¢6ïÕ:«„€Ókh†n9jùuî·0ßÏÞY…y³=&ßo]£Ù­ðôw¾r.Ž¿0´´sWÝÉ.á(òÔà»eå×k&Vï=¦pòØnaJÙwÜû0.dš>¥x!iè®™N‚T@Š™ù™ƒnªrzÒöh¸?FUˆ–„£fgƒQAðHÃp©¨Äc+ç ÿf®È Te ãFq=y¦+B“Õø¡#lÊáéÁz£–¶C™]ÛW?áHbì~v*¡3ËÁ„Ræ%ud[¸¹` éKÝ¢§õ}Õ%™§[Òüi“O4‡˜#ž0í=vBñä¾µLPBç…Eë`4a‹p±%[y;õzÅlˆ -ZácR¦›lÓæ@ëïÇä­Ù„H·Ú -}¨‹\•ª-HûuËľ+¦ö®)v"ä”Q Ô­ËPWuírÅ­*ñ£§N’‘eEen™Ça+Ü}%: [ÃkmA`§MjÓ³x_ô×ÝØ)¡ÒMÏÕ¶9mÕ¹SäC).7{³ÔüÅB»J+%Ûz=d¼ÖñœÙ½Á/åéÖšegë·^¸ÕTo±­^L‡ˆŒìÞÝûeoæWî?¾c/a9ãd§sP”uAϪ缾Q•eÎL?BÉƽˆMq -\TUæ¿Ùfx‰_r0.d>~öè¾{æßÚ‰}fö.)_ŠZàš¢ôü9ÃStç -Ý·0«²L÷•`À7Ç­F¢Osö-m™î)2vñÆ®¡´„}î`ZÇøð×xYVÈÅùoë -RwxÅÀÅ0[˜€cUŽS !ô×ÿVu£¢ðZ×þØTãiä7Ö¡^|„‹L¼A|½Õi¯wc†<âß´[ʇ2ÏUŠÔ(¶ˆÝ’ç‚â[S yTýäNiyƒXpb+˜ ùŸˆLè]UZV~» &yX^^îÐ&^zÊ_z²ÎG'xctš¥!ñS…‰}“[ª®aµ'>‘RÔpzäCÍÃÛ™¥Cúi‘r3¢‰·ž)'Ñ‘»çÇÝû+Í-k3\ækSã#ôÂÄã’NpAú¯›Y?sHóœù|¶´Êië ÏQK‰ØÊBÙ߆1 à÷wíõ aðEiðô]0uÃzÍgåbµn:È­‘¢Ÿ×Òuá"S]‹[žxëk–{å<êeWkú™­½Ç„‡KwÆLð‘ïØ]ÖNGîd\Ô2yøµé5URÒ£1ÁG8¡3Ýðw÷o\­¸ùbT`¯‚’¢Ü6zpQËØrC›Êð™ù¯3ìššT1(»Úí˜~„ŽºØÆ©þÍ8œù6-Eöª¡Ée.û¬øS°»ZÞo…T­µws“?5<}Å¢êtì“õ­ð]—²ªhÖmඕ„`Úµ22ÕÀø€2"öCõõ²òŠ{ýÒa 6¢Ðž"¸Õ ǬàM”Io¼ ÐòÉ1»Ùˆ½Å&νS¾þO$^>&(i¸Úß4c[,ê7tº÷’±}«{ºè|˜LÖûÁc¢±Ï½íck¬uÓu3b·Ñ¶äYß×ËJ8Èг´™¿-ÕÄ—9­:7*…(ÎÝTקÛpÎÍEY„aékŸiyì¹µz„XTš9¥oLÂŽ@V°ƒ2ÂÀdùÆ!ÿ{3Hs«6©sÙßTïw§×j .ÛX@?&‡ü>\ƒ¿~Ì^Šòðôwû*}ܲš™»"ô7ƒ0~X Ä!€8È2ŒC&&¦¿Ò|‡ññq‡ÀÏÄ!€8üÓHS„iƒ‚gœÿË9‰#O1Õmãô|â‡M}Õê̵r»¦ ´Bzù%¢ôß½›±gúrð§£óßÑ­1.ºøÍ"wÄß -Šê˜µ•øénköñì—øÖ: LÔyŸÒ¸LØ›XÁ•ª¬–:°y%Sîwª ?|çå’úçdyþÔœ~¿»®)RÛW(.óï䙨µð®îìÀnE—†J}¾²¾µwìëPÏŠAŽÿû3öÂVѲi?å_©Y·zÇÚAã¿q<ÿ)ßñ· ôVFy%<˜šb—ñDÚþ -ÙüÔ–qâÃÎj]bÓô0ßköxRÉêøxsKmˆsô„Ê_C“¶=Þþ™—NEÏ/!!ÀðÿÆ5EœS)áM¾ž²ƒåó2"¶¹¡uŠStýÜÌÏß\gJj^ã9‚Ð -}ÙzÄá?þC¢–kt¦æŸšâöw·"öUè›8ÚK––8Ö5HË=]fnöHzŠ{ÇF#]>;u×kC•hé°ë-äÇ–ªÉªùé;ûõ<ù#²µVÓ’p£PŽ0*î]vЖ„´K'Çžƒk ûw[M÷š˜=QE‡[Ñ™¦®qéHîEsa:òð=£“Þ,qW¢f 0B(”,™lÖÚ˜Áî¦[ Ïtú`ëEèþÉÉ=:SK:üÀL»Ä4?RzfÓѧ6:¹ºÙÑ[?ß¼øÖ1O¼uÓˆ9ž–|ˆƒê-#ÑJ4cdN(y让f‘ia̪»:*(éÐ|ûÐZÕ 5‰9ÚLÍwËŠK*ž¯9(¯¤tb¯À§(e½ ->J Æ{2$ROˆnÑñ:rì挃t¤X¦šÑ:´=.á_ï=Èg*÷!×5‘vªÖL1¿nnÿX&7gMÖV½Ç†‚±nÏÕ½Ç溗ÙíI‘¤ÍËñÑ1+Úòîª^›»ÇEü‰»´ÊÉIiû¢Þý„¿¥áœ¹R²Tfòúw9h£ì0$4×p3m±ñI3SÕý%“Ò¤…jë蜶Ë÷žðj‡©zçzy©e+–¼ùãJ«öh™ÜwͶÿ©+÷]/[«ãYŠŠuK@®ùXÖîÚãڪŦ1³¹9 rÕ^]‹JϤÕ |ÆD…ÐÉغ>ÖôÕvÿiìmBÔ%}ì,Ê%m)£—›óvÙöüԷܲߠ~œu³½ÃÚñ¤ÛÞ¶1mò¡ìÎZ»gzoºîR<%i¯$åšézS\CŒÞ\ž!±r4¨[~”´7‘3¦UP«ÎðͯÌ!Ayý§´Å•Ñ"m·I:;òUš|6ê=¶Ý•´ˆµ›( ÚlðØ.ßV¯c^gÃ{8¤æmeTNNDÿ9íOã•mº‚òÞ¨#m¥íf;¨ãråmÝ ¶¹æM¸çPÈZ︪-IN[#@"º^=ºtúèžä¢zƒ¼XZM›oÚ©ÄËdÆ.úÜÑAÖj8§+Ÿª¿#e.7uŒæ©ì=1.Gqø`—šonÓÎPHqip0¾f›,÷§‘3«·ý]K‰¤ŒBDõ>-ý?·åyMf£=©c|Ó)ÛqëûUûsã% • ÕœjúoyˆÕ/Ü.ÉÅù­gn8k¦’$“•4逺ÙKŸíÔôt×3TÛ¥™éÆþçÎÅGï3M_µi㆕3†wÝ·zMNês2½Ž§³<[ӺɇVáOž£ùò=Á­߇öMÒèÿÝé{^”Κ’“ûöî9x©Al©´ì–õsÅz?? ³4]Õø™ÇÉläêßt4~Õȉ_ñé÷)‡ÿ:ÎaãU+û]SÖþ<…§úh`ðbkA±íxÊ×MꇸÔ<ìŠðM/wݨv˜MÁÕa~יؠü'êÛ·Kÿª¤º‹©½n^üÞY\äšÃ¦r7G©Úh-¦TÞ>•4ùQš×‹ŸJ3ò¥ñÚþ9ì(MVØ’DÑX3œKt÷³›wïÚ‡Õ-uóVš4Mr"7cïûŒe#µÜòÚ¢¶£‚iŠÓž\yžûnÔÚí¡=}†ö´êí|‡ß55zójýKؤìíf\ - -ý]Àzwž2.–þCÈU¿jhÖ̉X%@j«~ÜÌ3–ù†ùÖ°eéY²B §ýtÃR՚ܕc7e&,â%¿,аxé•e6¬¦²{ØpNÆîú³.š)s’R6 3R‡~ê&O<òì'|bpHn)t­ÆKf²¡+²r6ó•ï4ÕH‰ÛEêPËè¥ïßaï3ãÝ?b/¡vDÛ•3$zJº~ôòx?FwÝCF±RaÉ:ù‰s™e¨ëŸÔ+L[M-xk‰»¢¯dbæ–wÏTè˜;ž&hlã ÉRe`ËvMnÁ’‰yJÂMcµ¬Ž-Ï,Ôª¶ÚäÄêS²ˆéNœ¶û+§L'IΞoãã³ûvï9^-é u#ðšcQhïçö:žîšÃzJÛ×g$me"7––Ôróœ6së½wƒÐ¹!ÚßG`Šà£m}¾;–cY{ŸWGY¦¹ÁÒ‚M²²›–Má2À×è®;e¨œ-Ÿ“¸‚ér˜FƒO¶ƆÿitœÃöÒ 7§ígîW4“øÆÎWtðЛËËH´=Ís2=õ¬±‹sVÜÁô9-ûlÂö—4qO_ýsÝ‘"²Âöbr˜ŒJ^׊„=Qó¹©?àäºóɾ‘…gï׶3ó‰I¬Ò•»dåãZdÌóÞÔ?‡DGy¡£iÜ©'¯Ú9g§ï4Œ“íóäÚˆ°×}z–´–ølR98ÌkWúÁö;ýr¸'Eò|P¯c^OÍahŬµ£î¾EL× -5š‰§Òücº›ïd»¹>"³3³ˆ® ÔAy’çd—õ€ÂÆ?õЦ D MͺVBäþ­êv–IŠî® -ãÙ{u„ÒùêéE7=‹œ#†2Q?ÃÀ6Þ"Òg uèÕûx¦3>Èuw;ÝÉÉÁÄ&¶ÂÙaVœEßóŠŸ[³ýãûøhsiõùîÌãîóU•âyõŠàãï3ùpŸ¯*u•D[§Ý/HÌ\Ó4¼œ¶ŒaE ÿãè8‡?¢îÖçOÞÌut=>6¸8bù^zy©Ö| W?Ðê NGï”m®ïÔ¿ñ5Šßrø·¢…M÷J—ø*‡xÿ-¢_úuEáÒzÇE)dij -íáT€ÿ#È!r€t˜C<½ þm -9€ÿ:ä9 ÷¶?ŽRÖÊyÉõs|¿$ÑtÕPƪF6=÷£70¹îÏ»îr¬S\?ì›^Ç×k;MWM¥.7R™¹‡MY¥ãl¹N/ü¿ÐYž§­‘Ó%Ì?„ÜÒηÔÂÏlÿ×MÆ×Qy,Æ;ùB]WïR{?“¹¼÷­|.¾(ošï%ñ‰×­ÍZäÚ3q¾©*;Émd‘5Öîºs8_õ]ÂÓqÇKÑê» ‰``ŸdæÅ7rçÅç<Vj:Odá]¾ÄÄx _ù¾ðä[³ýª<ìoóÉÙ(·¤…ã6ÏËØÂõ¸÷v†wDª˜]n¤PŒ‘}ô:×H§e §lTÝîNÔ¶•z5.ä×éä¤ '- Š˜ÖL¨ÞÈŠÎP:ëîÙ·gïÁ«-#­Y¿aÍ<Þ릊žUü"ÌíÕUÌ‹]bWòÖ[Z]XêµN¤ù´½vöšäø5ÜϳœëõuȱidýH«Å|}ÿÈ·Ý Tõàq5iË9=Ý|ÓKÞà Ã1,Dã{½•”@É/U|ÝZïu¼Ü·M?•Ë1ÍuÑÛÿ»>,™×R¤­Í ÂÙÊ ºRÏIw¡@O/Ù2m`è”Ácí¾ä†‰ÉE›,Ïqe}ÐÛ©ÁÍocîn}~õØ_÷¿Ë0eÕÆWNfÁÓ€®ÑqÛîúÈž›™ª|ÞLo×𠂉ÇF2æ/V§:Œx꣠sfB\¦r¼JïÒÞö³×EζaŠ¦÷lRõsMÓôÓ]šéì^n.´Óûº÷³ŒQ³æÜZO]]«Þb³Í»ë±ý/–¾\íẎ¿éNQP앉‰ªû Ì,M.Ü6¹î„žœg³jV–JG–¶^ò3^éˆ,ÇÙ˜˜‚Þ´?MÖÓ)æÚlg¥¾lwO@¨?!šÞ"!©Êb¤†‹!á<‰¿2tâ—ª3’™h»¤á7:d]'ä+?îÍt ½–PÚk^üü,Ý5güõÂ:½szÒûü–»jŽø;ßXh9ŸéÖ6õè剉«(‡ú¡nøª«#_xÌÝ­eò#3ý”ç2‰í/}³þUô›Cêß-Uõ´gío>b\—¸Ã¦ÃZÆâåšÔûO}uN“êÔÖ[n¶þLmSõszrøÈ\»x)5‡~w'9øéŽê9u+ÇëP=GZÕ^Y|xx²_-êTr2´Å™[K¼ätÏO vcðvø8‡MªY™2¼Ô܎ֳʹJÞúÅïâ ÿJGÍÍc»÷ì=ñIbźuR˧ 66Ô;f–<“6³¬žÁi‹X™xÓFÙ‘ÔQ¹jŸ±é%ó ÷©Œå{Ü,rn“f{§ÙÏäê?Ðé,Ëѵ.uÊvšÈJ®9`lp@%%b)‰\sÐØê¶]ŠÍ¸/M~ÝZ´i/Ûïg¿Q-Ða­hϸ«ÿ’w¨[Ó78h’Aý9þü–»*w™¥×0³(]¯+«»†N–öqàóßÖëlKmm?fJgí½Ó‡öï;råµè¢õÒ›¤~eÅ¿‡@Çè6‡äŠ]: -á*Þöóx[K¢Üb6g&.R0¾É¶ÚÒbÚÕˆè3ü¦ù± Š†Œ²ÙzÃÍå“ü›v”eh*§QÔ=áäëÈ×2ïÃ5—½o‹+˜«Í¢Tݽxa⓬àW}sØk;Üu~ -–´§Ò¬h}°?<æ(ã–Ô(É8÷ûStm·\ÙÛ¾)>bZ¦Ï½–ËïDîã6L‹TÇ“Oé¹éÉùƒ{öîû½f¢æÐ+;f†§)Ši½—mºí’B’` Fôâø$iÁׄ§õÓàúÃߢ@ÈÞ{ñIëP~¿µý~iºëÏXhoß’µ”éZ´~(ƒ[Šùv¢íž¯fð´ÈÄMÂó¾r­¦[9Î^¦ØûêÎæap ¥£®¦‹G‘è¬9gÓa“dC›Fs-¿×xÁ\+ukrüž†¾Gh:ìŠå`ÇÜQžggñiîziéu‹'ña2køÐk»ëO™(¸Ô)dgéŒb!Wý¦'Üi”l~Âضü§u£î¾Iž¬ì 7ñAªeÖ=Ö) ºïœ"÷&‡DÇóbw›ä3ÏÚ9fF rìõ)ék_äÇŸ{X×ÁÄ+:e…†ÌƒpŸú¾9ìµÚSiìh2˜Ø‡Žž#mâ¤5—óÕÙ$Ÿ˜âËåÜãWjØj°§”HxæÎ) R±8"¨Ÿ§2 -A¤_ÔÌ|3›”6a1R7™}ì/ú¶ª?ñt=-ôpÙþˆÂÊ$0WËÉxNY‚eL»N„íb>¢ö„½É¡ q¾+ú½£çA7Ïß*HÌœS”í6î¡‘ëÏÛ]hã’t±ŸÎÙwXù5kµ?ŠPÖÙÙ:lÿê'†KùxÌß©ÙgÉâÃö6¿Ö²r230 _¤a¥µlØÏ»]ä—EZæÏ=r,Æôúïªí¾¿jàÌ„$©¡_ZfrルO(ÄñmÞíþùؾh;µo6M‘ÉAzý§“Bð¸Ä<®“êêä1hçeË\1– z¹"l‡×’†@ºÛÊ/Ø]t¬^ÃKõ¸ž=%8Çl cÕ)?½DáÈtƒ-’½"—¶´‘E7yùëOí8f­¿_&9dwÍwƒ|1ÏÉAçïjºî¤à7>!GkSGiŠ’q¹÷)}'9j¾n§±!-m¯Y(*Š5Ì_xe›~&A ÔŸÔQÎÒÈK]Æ÷î½ð¿p;äêÆJ+³s† é³dCÕ¶Žðï9‹®ªηW뵄‡ŒÉÖà½3ðWìsçÕö8a[lÓ<™-ëŽáÂo|5úÎ!íâ$A›n—cì&ï• ÇMåîL6pR¼á¿«C6Þñž¥u¿êÞäStÔhI 8Ìc[œ¿•’¯,Z»ØÖî§+Á¡‡Úf¤LšZ{ëγ›ö-òïsØ{-yÆ=ê[|^.°±›q18üXûÌjÍ;žì,éc†šùLk'Uì+]Q趈ïaLg(µ%§öì,Þw©yÔ²uÒÒkò]Õ“q®ÆÒVUɼÌ+Åm5_u¡‘ѹM±‡5´PN_—¶–§KßþÿöaÉ–üŽðo8 ÚÀÐ6™×ÑwùU]óÛ -Æ—~â+öÙóên)¿tø×Ý{ÜaøeóæÍ«gˆ`ªaøëè;‡Ï¥ü½¥ù›näûD^šì—©¹WÃàÞŠì½î“Xjªmpn’³ç*¨ë›ÃžzuFkM«ò‹µ¬×ëÝ_ž½×sô3oŃbÉý;|ûÃZ¯m6èÝû9g¯«øWiåãâÔÚ v<š…;4ÚSUÔãžðÊƺÍãF éLû“85•Bî­ÎöÚ+'¼™©õ^€¢ë°˜\¤Wçý4‚x#2ÖïÓrškHýÛÛz×GÁcl|Ž’(cã§-¦NwÎõ—ö%¿3䪽j*¬vÆÏá¦]KTS?nZ»§Ïêî¶êzB@€µ»ú”§Z@GPQσamÃÕ=FGgÊ 2Sß]VïWW?hYõî2þm§³ê¨~h­\d°Ê6†~K(á·ŸEWõAO»«Ráö‹˜nXˇ®ÊÌü…²oà¯Ø—WwK鹜`ïÔsÓ‹½¦°ÿ•/½çШF£¨À`$sËmç ªLŽòapµü8?röÜŵ›©¬3^kò.‡Æ´žiÕ¾¹¡Ý`³^¶–Çèg>›•ˆ& œÃ¾kY¯Ó¿¿º'‡nÒÊÇzrh7ØñhÈ=pÙêp¨Ž}¶Ãö$%1LÿKg(Õ×í,>zŸiúªM7¬œ!Ôt@SíõŽ¨™´¹Ýwªiœ´K•‹ÒÝn¶#6Û{åmÝ ¶ù¾Ó†”ít0H¿Iš˜ç2»ÿ3Iz4Ýð6õ¾ÑHpL²‰ðžÏQž®jüÌc‡Çd6rõo:¿jäįàÿäHäê}ê¿YÄS:©·uŒo:e;NøäÓ¼zïëíUˆ–[Îr^S“ó”E‡¼Ûæ Û¡´•îõ0Ï¢áºAìÍ4Âý– t„ß~];ô´’ªÞL5\QÕ%(!ìÂçi=ÐWl°ó¢tÖ”œÜ·wÏÁK bK¥e·¬Ÿ+ƆEá/¢ïök±+ËÕ.±³“ü3(ìíÅR›ÁŽ'=aFŠ†[Éb»U7Cöð˜æ%ªÄ“Oé¹ññÙ};‹÷¯ž¬'xqûOñyjbCZJÒô¬/¨f z+„-KÏ’j8í§“ –ªËuÆÓ0GØ%pÙ1SþÐ mñ/ø¥é®;e¨œ-Ÿ“¸‚ér˜FƒO¶Ñö(ÒÈ­T+:x)?‰ÒQ[ÝÉ+ÄÁHtVÿiÞm67‰h-qWô•LÌÜ"ò—‡]/¶«é^w. -x;4d;Ý7ÒíœÏK¸ÍãepɧŽðï<‹×ç ”•²Ó–ó¾ð+6Èyu”ešì!-Ø$+»iÙ~L5 _‰¾sØóØ!‰‰Cp첆…L¶§jŽþ’—qÀ÷AU\ËÖ7MhÁI›þwÜZ'í¹¼Oòœì²Pؘ‡.Ð÷0Ÿ÷,Æ(¼Í0Þi?QsÔBwŸLjȪ/x)FÏCcN»_˜¹¦ix9mÃÊÐs=SU&r|Ên¯ÉlDûÓ#“]Õl\, L¢KuôW3•nÝ)_SŸsmÜ"3Ý¢\$¹$¬µÄOÃüxåëú¿ðœÀ¬€9Ô!ìç·Óö x‹J~ëð‘L´IƒEÖû-*Pì³dù~ËŽðï<‹ö'qʶm¹ÖãXûÅÚ?/§I ?¦†oD¿9üÞ(-OŸ*åf­>êïUHV/,2þkÏñ€rø)”†?]4íŽ>n sŒ˜«àìk:Ð ¨àÿr€ ‡æo'ÿ6 -…‚Àrðäðßœ¤üGÑ}›®ÊXVoJÏ3èEð´Ï_i|÷!׬„ݱ³8¿v÷ŸßW_íÔ5 -^tÌ#T¾p  äʽÚj -‚Ì´Ÿ5fQ9__‘>³¶Þ ·ò¹ø¢¼iFt¾—Þ àÿÝçÜüøþ³.þ±ã„z&rÓý[÷›†¹D×ͳwSž4Ubü×Ïxöù}õÕÝV^Ròôv¨KlëäðGÒ|ÃI=rIBm^õÏiª6=2zõ¼üèè9‡mw}´­êz?ü¢´=Þáï–qêÑkF¾±ËÂÞÎ9GÕYT¬KË·ÇJ{£Äó)¾Q;/–·qŽ\°ÕÒIý'žVÚJ%7N~qôÏ2†‘k¦6ž«a¯®µfLÙ¾ í3m“Ü&$«öÚWÏ6K§¯½ú!ûR‡X)ARãµXç€C×Ë^u2ó[¬êæ´uùÚ_P=è,Ëѵ«pÍ°÷îÝdɵ'Cݳï¾nokéÛèê®6™ƒÔ3ˆ4°{éœl0ºç[K~u!Í?áä‹NrYD68HQ”ñõµ¼„#Oš:ÈB+¬Ýugó ›?.zÎawë³;wËî|~5ß°•³x*å`»€³öq©à/ -sùúå\wÜVÕ³|‰‰ñ¾ò}áÉ·fGn÷ÿÀHÆø:!±ÕTcáÐæ§O~ÏI¿·DoÑ…Ô?™Ë¿HH©³Ì‰šXùàã}Ѷir›OÎF¹%-ì·y^ÆVáÖ›;vßã9Œ«»òLdÄA·üøù¥&Èá…ÒxÁRÁ¡”w8õ‡‡Ix­§¿Š(QóŠÂÇÏÊHyuÆBg—nV(m²¾Æ+öz*)’=WßÛ…ëx ÷KVgîn¯k$ñ±Ul‹èÒòP’àìzœ®çÅ웬2‚i°½½¢çöøøñ¼ÎŠ–š‘ecW®^4Éê’‚o'cû8‡´dý^×ýn}–1FÙYr5æ2fåK’w¸Of£½˜¢é=›Tý\Ó4ýt—‡f:»7$g*Š2}¼¯÷·µê-6ÛÔȦç‰ÖŠöH:tóESg7…ºeqô\õWÈá¥ýI¬¶;«ŠÎû9šºê.$d¿_ßAîlxÙº ¶`ÛDV¢ýqŒžß¨ÐÄ o.©vUì²Ñ/äüe˪ÅKNfi½å­dsMöÙîŽ6nÙ¨hyQäà‡õCåúaWýƒ çÎ_8¹{ïÝIþ9Þo¦›ïCY“[“ütGõœ‰Uhì8ö;FmäMmSõszrøÈ\»xmJ–rÿZÑ*¨F ^Ï ÍV9ý“¬­¬ÖŒ%•:%¶SÇ‘Ú –2–•Ó¶[ŒE´Iõ~3Ìžõv -Û®Šb3³K2aîkF0¿>o«“¶!)a?‰\sÐØê¶]ŠÍ¸÷ßØ®†'WϞؗ¹»^+-hÚQãmM®Éº£ð}øÿ@Ç9üèi2õ‹]·N˜:ýhα!ã' -3>+H.UÍÈTêùw¼×ÅÒÚc6ªn·ÅÌÕæ Qªî^¼Î¥`·¦Êüó9\î"ÙÒþñ¾F5ÙÉöÉa›ÿV½cl²ŽVsºÎ%…=PJÏÓï’×?Ê©èd9_„wœÄn‡ä¦GwŸv -Œ› Â:À;BÒ‚dðl¡›·üpêI0°Ã]ÿøéûˆùÏWªía¨œ|±Hâ‡õ_2˜¯ÏaÇÓxy¹4í€msøx&JNÄ[þ›š®ÙȯÈÈÚ ôù/{Û}ÕÀ™ IRCñíøÿGÏ9l½ã&­¼«²ëýPÒúp»§cò‰ ŒüãvóXÉ|•¤ -éÌÚ„ ¤!=×TûVªûõå;¯}WKë;X&,Õô±à¿Y÷ý˜’àž“¾Ó0NV§×’ƒ)³:ÎÆ»‡üYÖÆ9z‘’‡ÉjáÓ«ÄîžzÀ¾Ü5Õ{=Ûµþ9$×ö^Kg6éÚ`{Çèð_ÕYš®jöÒ;ßiÛÛ%äšcþÛÒî4´·6w‹oööÕžÊIêDj˜¿ðÊ6}3w¹þ\¢gô±çäÖ®a -Ñ‘jbŒ —3ýb>nl' ¯vð5šÇ‹lü¸è9‡Ý-OoÝyvóÃP¯éšÙÃÇ\qÖ<|*´^uÓÕ.–2‰ªäívœÀÖ?‡×óŠJøGçê®8|PØ3ÛAäŽíž¿óÙÙMäâž8uø‹Û7J>^"1ôOK9çÒå––ËùK÷ÆߘâZådq“OÑQ£%1à0mqþ†z}rH®=bÖ{­øb'¦½;ûîýåƒB¼6oö…ÑΈòúœ‘´ÕS>QNÚô¿"Â4Å(Õõ~6FJý)C•†…139 âõE õ\ìˆ73Aµ=Ruš­:’¹»­ö5#?{E®uP§¾Ÿút®ÎGIêÎÌ!Ùšâ˜ïà‡EÏ9ìñqÛ:_)†<¿jí’ÅˤVÍfi¢~Ö°t‰W€²3Ab7a+©o;^îuŠÙíyã›i{Gêæ[ /ûüÅRZzµNÔ¾ŸF˜u¬¶W‘u³zuFkM«ò‹µê ûä°ÿZæ¹Q¢;<úî]´':ýÈݺrÇ«­‹SöЦ‰n{®î1::SFøÍô¿/w˜ªçq®——Z¶bÉ ––®›M¯° ±÷LÿÛÞÊ£”¤"†ü°~¨´‰Ëï;söü±¢â;SB‹‚¦=Ðéÿè]ã%m)£—›óvÙŽ§-l¹e¿Aý8ëf{‡µãI·½mcÚhcM±òÁrhº^çÆ×£7—ÊH¬ êVï*hü©ö]‹«=EGïDß½xŽ~'ݵǵÔv›æGÍá~³ ëe¡¾ÞŸrq~kÅ™Κ©$Éd¥¯ ‘«÷éßtÊvœðþ'«ëÕ£K§îI.ª7È‹<¨cÝä“m4Óÿü ã’ï^¿ÛØx?Ð>¬n©›·Ò¤i“8e2q²ãÓB¯¸gšù›+ôûç°õŽë&õC\jv Eø&HŠ—»nT;̦àê0¿ëLlPþuêýÅ«’¶$Q´ÃÖ ç%ÊFê(ýx‰8Ëi39‡›£Tm´ -S*oŸ¿Jšü(Í·¾o žÌ0¶X+B¸&,]Ä÷GŸµ˜f5g;žì»wäð»i-ñ–w—«>âíH®å–£‚—dbž’pÓÅX-«cË3 iD·–¸+úJ&fné™þ·¥¼²{ØpNÆîú³.š)s’’–\7TÚ¾>#i‹(¹±´¤V`Ê(Lÿ ð£ãö~í)'{=Ø$}XÓÊ,4m£}¨ÝjÖžÌBç=Ís2=õ¬±‹sVÜÁô9-ûlÂö—4qO_ýsÝ‘"²íþ¤òBGÓ¸SO^µsÎ~ód–ŽÞKfužOö,<{¿¶™OLb•®Üý ×Ú¾9üp„¬cŒ‹vŒhê½–¥—fk²}ß½#‡ß ¹r·ºæ)ûá’œo—Pšï$[ÛWòŽ=mêóSm -bæQŽäºS¾¦>çÚ¸EfºE¹Œ/3±;QËÂÁ2„–š“Õú,­÷sÝ]³owrr0±‰­pö1˜Ì—ÆüÀè8‡ÿä9@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@ä€@䀠Ã~Ëê_ŽrðQ(”¯[‘á+¶ù™µàG„ ‡È!È!È!~»’’’ï}@Lž<ù[VG¿5‡3gÎ$“Éßû@þ£¯^½Š~gÈ!À÷…Òäàû¢»v“ÉÞᱫáÚ¹#Î"Õ_>sŸvã›Þ[•~!‡ßå°åŽ«¬Þ‰NŽ!´8&ëLløssDà\Æëʱr™IKXÇøÿö³ƒÅdöo9àÁ´=ú°—oÿcC€ï‹þr¨ä1<2ÛhË›ÝänFCóµ79\Lºb¬’¨–?› 122¥«±º²…YP—™Ô³…Lî&1­µU Ì‚"\C>š2 çS$¢¥¦²‰UHèçÈ-µ•µl‚Â|¬=Û ¼¾ü~/Ô]›üµ=2vÓ>dh««l ó2ÉœÈ!À÷Eß9|WÁ%L=£ÃŒpîxK³ßŠLšÈÃ9ÆÈ×Røtð¶¤{ì#yšž¾ždâð‹SÓe]9¿1ÓùJêYÅV9z*ˆ}¸¼Jû”¸„`YKdzgœr!ÁêØ;ž&[ºž% òvW=¨eå¾I¤ýºÿ»½p.â|™vêÑ_ØãúJã­þ“f —T‘[ËJ¹äc#4G³QšoÇ„šgi9—‡4Ðy#‡ßýåPÎè²ÀQÚ0m‚‘R¹gʇRo ¹f¬œ ž“8Ÿ›èªØmhtN)ÅïgÆ®Š_ÏèfÌe¸¢»É‰Ïe{ÀJ~Æ>§vk£#Ƕü°5DÝq{­ÌÙq©JÃZ»Il´Q¹b¡É«lÏ)ìMWßï…øèö푺iWaÏ<¯Å¼ÝÏ 4Ln:çùLek¾qxž©ùlä€Ñ_ÙlýD™¨ÇÆÊS¤÷‰RÎÊzrý¼FŒ6¤¼¾yäö¼„,á·tâ5ó’óô»HI •|œjnòr>õþçôÕÒus’æ0>:”ž¶ÿúó¦nJë³RV‡¢´U-æðËöHÝ‹b¢n^mÝ–ÖÊ1²™‰‹úLoÈ!À÷E9üÌÅÒ>9†÷9Œšªj×aeºXŒ½ý¦£RèòÔT©¡­ŸÈá—ì‘–Ãw¶Ü°UŽ‘ÎH\‹е-‡Ì·í•ÃV$'¯dìzY¤«rs|˜tÏãƒäÖWd^æ–ËŸËáFGN—‚Пù‰ºSŽZ©3ãR¥«l"Ö¦§I 2¼>ï£ìøд(]jhû­÷{!Znýµ=œÃÎÊógŠ.\8‚uÀ0"‡ß×–CîækÑ6nÇk™y'ÙG» ?æw…4’:²«ª ,Ž5ÛõÙÊùˆOZÖÉÚñìÇæ ÍI¬M×¢LO0OÁÐH#=Ýš™"5”¡éÃ^"˜3mÿÂÌ!Ï«S:ʉ2™Ù›„ú>¢Ù9ø¾è,‡_Ü\]QßÉÊ/,À>`i>xªíq“Z+šX……¹ß½Ð¢»­¶¢¦›g˜ Ç øË{übÈ!À÷E_9œ9köÇ^½ré[«¯¦O¿7äàû¢¯þ³È¯o]+Ÿ1•ûïÓý}C€ïë¿”C:†|_È!]@¾/ä. ‡ßrH¨9üÞ‡r? -…2ø¾×ÌBôIÈ!r€È!È!È!È!Ñ'‡ßû`¾›·9üÞ‡ðý£¿« -endstream -endobj -273 0 obj -<>>> -stream -xœ+T0Ð3T0A(œË¥d®^ÌU¨`bjh¢gb7161Ô³4«4CC3cˆb —|®@ \'ƒ -endstream -endobj -274 0 obj -<> -stream -xÚ}‘AOÃ0 …ïü -KãÐJÔ‹ãÄnŽcl$6m„pq¢B;ñ÷I»4ë4 UŽÒæ‹ûü€À¤‡@-¨l|tpa¾&èÄAüR´EO?_«ëíòåiµ‰‹ø°ÝÔõ¡âí¬~À¢È!µì¹f±¯)TËûáh¾v§–lÐrÆÞ¬±©L*JåzáèEáwü?r 8f íøþ Ï°ëYq"Ã4Ǧi a”a¨ùº# w?ÿÀbZda.ð™ -%ÞMdäGÙºdUrôhçÄXEm‡i}ÝU&­\5Ã:ËöL·Ü ÉöÒB”ÆŒJ¸)ö–S‡®˜kùò¶M› ˜Ëp\2£D#—ê<:šˆ³?XžÚpŸð˜ìîêði‹ -endstream -endobj -280 0 obj -<>/Length 32929>> -stream -xœìw\ÓN€Ó–½÷pá¸QqàÞ -"‚àQTE ²‡ ˆ¢¸¨8pû{8PÙ"à@‘½GŽ7¥X;ÂRV¿Ïý¤×ärI.yú½\r¸©«WSyŽ@GCíê´ -Žiúëׯ¸oß¾‘Éd -…¢¢¢2h°j—• øKA£¯®.B+àpMrLOKÍÊÊ¡z$7Ò·o_P#ð/ƒªñóçÏ8Tt5öïßÔüË jüøñ#.33“®Æ‚¿…1‹wo1œ8¢ŸåÛçw—ÜmŽ=/ø…|6[nB?þ²èɆ~ÒÏ/æi¸ ô ÍÈÈÀ¡‘#êE‰4xð`8]¿ iU㇑6äüÐÀ“)yµ}GLUpÌøXú/dÕ²Òøð¤zJ[–m¯[΀Ž=CÓÒÒphäHW£ªª*¨øË°ºÿÊ¢§x„ñŒ=/òé)8ŽJ¦„úع;iO.ŠT'=½î`ç•I$#?¼exÃÎp®$©àô^ãC÷sé ˜%g|×~ͬüeKÞ·œ-§ñ|²&»÷-Ÿ;AYJ ?3åœÿÞã÷>cæü§vüm¤¥¥š™mxòä ýëÔ©Sƒƒn^vèÙ‡‚ûðá©‘aÆ¿Œ×ïR$xaÊH,ײ³œÔâN¹ÝEæî2V˵ªQòÃI¯œýØÛÉF«®âåõuhŠ¦æBo/tb›ÍvôóæÍ[Œ™óŸŸóJF -b¢^µœ-§Ü÷šÝýmÔÉ;©}5Ö.Ÿ*»wæĈ¼Îœÿà>€N§½ºb†>3óâmŸ¿-Ë¢g_JJ -.==®Æ#F€¿ º' V̪Æ)É2|T™%8™÷ÉOÈ %ªÃ'#?¼5wäðì´Ô·T*yðáôE8Bé)ºj#ÞÕÚ’-§c’“åø ÌKr[¬úgÎð7Ñ^]q.økvlËRèÙ—””„KKK£«qäÈ‘ Fà/ƒÞ zÑxÆ^ÖÕö:Œó+fJ{³}–œ,ÏOð²4g(°æ[rBVtÕþz~Ar¿,T¤=±&zö%&&âRSSQ/’ÉäQ£FÁ©üe4uÃ!åŸ <ñ.¨2tâè’“céËC9ŽSx{Êõ.2ÏÞX­ vÿÖZ>Q&&w$øíÙù©4ëîƒDÎPÚ›í¿»‡æõ,xuÉÿJ,EXvøøé}^8Ed‚öêí—›aÛ5&$$àÞ½{GÕÔÔàTþ>Çê4>¼Ñ_ŒŸœ—™zÑÅúèó‚PŸO.‚Ô$=¹¾ÛÖ£åþ2(ã6yù™Ì‘á¯-Ž¥aË9J{³Å¤ mV,˜ÜS^¬¾²äãûÄ+ž{Ï¥”‚ £ø…{qqq¸”””††4j3f œŠÀßÄ/ôP}ûö-.99 Q;Ž7ÔüË j|ýú5.))‰®FuuuP#ð/ƒª166—˜˜HWãøñãAÀ¿ ªÆW¯^áèjœ0a¨ø—AÕøòåK\||<]'N5ÿ2¨_¼xAScC#'MB ÙÕ¥€¿œ\-å®.BÇÐ-ú{W:>~þÏŸƒàjnÔ]¨¸P#4A¥Rÿغîß¿?}úô?¶ºÎ‡Ã=zôhÎœ9]]èx0ÔóìYW— -:LçýIrRQQ1mÚ´.,À/ƒ‘1ýøñcqqqÌŸZNìrÆßÕE¸l5va½yõêU×ÖÚ./@×Â͛߮²±™ùk ?5—Ò±ÄÆÆþ5j”`;(Ì3°y‘K4ÉÍ•à@\W€®…›7¿eô`[&0¿b¦ü&¯_¿FÕ8uêԎͶ“àô#åÉ“'hÔÈ8(Œô&03üÃps%¸„&5Κ5“JA¡þïÑ#Pã¿|Úpóæ·Z¶VýÇüÙÜWÎéUceeå”)S0EÏCÇwÞê6ájD£Fuuu„Â̟-Oüy¸¹’\Bû¢F -™Œ¿rÒ’ŠŸ?É8u¢_+3¶\kÑü¼b‘Êâžg¨hLTÀ—¼~šN›ø…’µ»¿¸~ -±(7¿NXQYVˆsÕäêÂÜ‚¸¢Ö¯í¥õýû¹ýèWô[ëW8Òô{Gªå²¡2CwÅ÷ÂZ¼¸¼¢ŒŽÃ…MŸ %oc2zNP—hÉ—ÌÙ2mHiÜ‹´eù¥ü Þ¼yÓ¬kÒ¬sQv?nª"ø[ëh ÄÏǼïL·Þ8H¤}Ë1¬öìÙ34jdV#ç'¥¦(¯ˆHP@ -¡_6 ©#Om F UڣƚwöK÷t<¿©OûOÚÊ7ÆKn¼tbœx+3¶TkÑhÿ$)B }S5\þB÷°÷B‚¥¿~øÉiŸüoÌÞe­*Ú¿¼~JÅ_‹]ÿãЭ!·f¼wÈÖ~B?~"WÄŸ=àræmC7jé×|¾«ùã­lþ"ÃûR"έ§í€Ú÷ûô÷v 7WÁºn?þ<UñMH0u÷†Eè!“ä(#óüí/•Tò"Ànßõ"…>²HÉ×}ŠFcÇŽe$²LË^µwºQŒ\iý ô²#óÑgž®y×l…ù @@«t€)Äâü -z®‰šOdQ#í|Ã5{µËLZ>xÜ+ïTüóeA†çŽO”l:Õ©¤ŠÂüZ~yy馫CÓ©^[TP. ¯$ÁÇyµ_䚢üâ!Z¨‚ÿ¹F0Åh¶^jCyA~UDN^†~á+{ff²â|ÈLY<¥®Š" ö£Ì¤¼H‹5¡}voŸ®Ds¹âýÃ{äñºÃÄñÍöÌÛ¿ÿ—lJ% öØyÎo¶,Ul›F-ýóXÔ&m¦«Q×tÈ8 -Ã23‘h eC/§Ë6e[…»N“! ÑcMA"«H‹©TJCj>YYI~]6k‚tBŽL–Â5ýZHä“•‘lܯt)RH•%•191<µ"ÞÆôÔ²àCã$ª -Á7]שu4‘ˆ£"iªÊT -…ŠÃãêe&®{?ÒÔXUU¥¡¡µ“Ó]ÍÜ•\‚ŒeÓ¶0Z>£Lü–#¦ãqp…Š@E\½o¼€Š’@U!QÍÁÝ°)qëZïCd¿Õ 6|ý*ªí´Y?\ý÷û‡œý(ÜS¢:»rÀ:Ç-3Ñ@·.çŽßÓéÂ}•¥¥ÒöéüÏeçÝL…ý%D{Û›ŠßuwŒ*RèÁ—÷MxÎÎ=«‡‰â«ÑÌ}{•Ì(ê6mëNÝî¬jD£F†ÙâE”úÌ£«·fo =8M†‡£‹ŠÐƒ"B ý„Ö–¢"Z[d lµW·©&P›* µéBq~9^VQúÇ´•6ˆ)Ê‹àÈT<ý¤þû 'óÀØ -yßÀ £%ð”Ú¯ñ©”!£U^šèxϽ°º?¾df•ÖSp|â½úv"c…$ÎÌÛ¿ùúTøȸ­œsòø‚’j4ŒÆÚ´ŸÇ‚ýOLøÉÑ,Ø S÷sþvš‰_Îí0÷KBÍß8håÒ¬g'¼ÓsEwôo/AXªÔÕðp3j¤–Ŭ×Ù+6{AãßvJyâÝ”‰'Îm”K6Ö 0Ž85•3ÒjcØÔH©ùx;äÄÍøœJ -R›•%duvŽ®üÅ£“³^ê»Ü^È'ܲ¯@[ÊÓð=ÒÒðTýØ9Ó&Mœ>s\oQ9ÿÚúuÿ-;µ_úœåîÄé>‡Mû~Þ³ÒFHðl~&5Ö‹<àþ87;á³Jà ¿$ŒãªE¹Â–ù¯l>ªÆàÐ¥µ'VYåï:©cÝþnaËr6amÚ»Ô8‰x‰½0¿ªÆŸ1"¥¾èc|\BRìQ·¿Œ<ºoÄûMúN¢3æô¤]$Ë“ÿKU÷?±NöýŽµÇ´ù M³^ã&2ufwÚ¯”Šwßñ -Ðɵ7?·4Èw‚$òã¦cUòÎg—öCS㻽›N-ôóPM³³¸¨w„®4ÑâØ$oßùÂï¶[„®@ƒ0tΚÔ}4™y¨c…¿è醪q„ YûÁ{Ë!Å}¾«eÒí,ϯpÞxóàÖ3s½\ÆIà(µ¹©o^?¾û¾‡­ï¦á¸wvC—ø¹ÓŠB­ŠÛe¹ÜמtpÓ™q›ÍÜvÆ È÷í+œì°ù¢Z¢Ÿj¬yç°%\ïËh1jåûͺþîãhå­Mu²<1ÑÝkŽÈ;Z]Gˆ°Ç‹ô‰/^ˆ‹‹³©Ç3Ť’ÏI‰))o^¿›5Ê9lÿÈ´MKÅfÏï…îvµ"éÞ» ÇÃ7ɧ¶®Æ¥GÖGœ¤%V'n1ðÓ?1,Ñdy¸Ed0Í‚Ô’ÇF+/l QÅ~µ¯’@#Pºnj“…ï/ôs_Þ_¸#ÌÄqÁeQã]ÿ)ûvoº:*¬Ü×jo v©‘øÑgù¶:«#[§ô!&m×÷˜uæÌyú/ßm¥³ŠÛ–w6þCƒÏ¬èÆ×Öò«²^¼xùøö¥„>çö ùl½Ô}úé°%JHiŒÏ†ýé+Åž&/9æ5M¦!óˆYší%?¦KéÛ¹UƯì¯4£Æ%Š¶ÌÇI`Üím‹W+W=µ[Øwsï›'ú j̲ÀÚ´„Ôˆ–Œ½0¸„ßU#ƒÚO+6&Úžw­ß±üȤ]6#Ähw)Tœ€â€þòõÉv&Á‹Žøª¦ZŸoc©*Šk\ÇúC0ÑÎâœn€÷x&5¦ìÞªëçF‹Þªßíßrvëô]–‘º‡=ÆÓÕ¸ßòø$Oï¹B©v–çV¸¢ëCjÞØrz®·Ûx¬þ# ¨±÷3ñ£¯•¿â¯•Òö[/¬ôs†ª‘˜îf:ÛÃYM š, J»‡Y÷%x›ŸÌn¥Réöfž"›üí'J"å±v‘C]âìÚýj®“ýl%ZWZJ]%Y@_tg箘ÙöΣ5¨RI_}†»õÉ ]¦ÉàÑÎvoŠžûN i4€÷Û~Rf··a/r -­ þ‡³ª‘ÁË—/Q5ª©©±y‘aÇŸš¬ÿrlõæD» $Ûe“÷ì%ÑxÇGBkK7RbÔøãL©N´2ð[vbêÓ“k/ž ÝR Ý7\uÅúRÐqö“ˆ³žƒVùÝÕÕ¦¯MB}çÊãÊžíYáÕÔ Ê™HoPÝxѾuoÊ4//CUQì ~K)Û ¥)O }XküPï„ß’Æû‰äÚR² ´@uëeۥƪ8K=ï…agÊãÊŸ;Ø~°Š -¥©©Ï>¾Æ<¦–Ê¿1ìè|94¡-å!×V%h½Xˆé.ËöÈ[K¸´Æè¾Ö± Uý„p 9ák—yåM Ž:HûoOÊ»d±&¬¿Cð¶i -´ `Cö镦ñWüF -b—>TöÌ×÷¸ÙÛ&5vçGËblx¾€$¨zÞDà*ƦÕ&3Žç‘š,TÉ^ÙôŸó·çÐÐmH*{—VÝg’ ŽJ%—>ß³Êq=·Gæ¶ù†ÇÚšJTäÚ²~q¾ê¤¦Çµ}ǯoµŠY๞"-‡Ú2¿®0zÇög³]÷/PæGsª'!üu.[C&º¹L—! ± “Uè|OµÚë;’õïñIŸs©ønJBõÅEÈ(Û½kz ÖåþwÌóÂGដ„Ê -éµ{· AÞ‡¹û¿,ãïkê`.ñÐßóV±œ¡°@xÚýÁ¢øê´ +|†‰°Ç‹tÐ#Ò\Ôˆ~R+Ó?Öõ¬,LÀá¨å¯ Ý‹Žr·×¯¢ì£ÓCB,£Éž¹H5VÍÁPcˆFÝåukÿ·äÄ¡%Ý)ŸÏoX}TøðÍ Q|­×sP#Ð*íT£¶ñƒz±¦þx"Cö…ºw¿å`^ Ô‹ð-Gl‘‹‡yS7{öDF7Ѫä»—j®‡ÖoÔÒ²%«âý¬ìï JÙyd_§ž¶‡ßâûô%æ§jøûaèßQ#ëØ´.q—Ý!*¸ -|OäCæòðÓjDÈù×ÖéúÉyEyMlº8ÖåD{´XJÉãmF^EʽeqÅŸŠûlد¥ÄGÌŠrÙ~8éÝS°¢¬=ŸïvhñÒ ¯e}…po¸ž'uë%C¨*ÌGú.¶Üc>U†€qDË83Çz8¯jD¨U ÎúÆ×…6\ºh®BÅØ4ÊŸÇÂÓ Ì”ùHždÃ^ÓüG\0;ë· FbÖém–ៅºw— eæŠÎØæ¶uº_Ý·Û¾Gãq½º‰ ò¨êNž¦½’ìןÐ<ì=^‚˜û èà©d|eáºÂŠÚ®F½ˆßîq ÏRQâ«(—2Þ·m055ÔÍïE™€D_S›y7ö…Ïs?0V¼îK´Ÿ×Í9%|~¾Èô­ÛEòÎ&3Ça?eæ„ù˜GRRRuuõ¸qã°÷s‹Pê+KJj¨¢2râ=`kR÷íˆ4ðpèSWT# ++ÆÔéš\[RTA”•úÙO“öðFQ5^BNFã/™XV\N—céØÉ)EÆtll¬„„ÄèÑ£9ƒE”†Ü‹;"¿wï!I-þ’':ÃÚsÛlúÜÛ¾öAñ„Þ=Dë -èµe€ Ó™°Kð´5{ÍÁRã4éú¯×Ýì_UJÈõQŸøí¿T‡K~*o[¯ç F U:àEqäÚ¢üª„’¼¡•Ä¶ÐÁµ–\U˜WÖ (­(×̽µß/…X”WD•PfÝÔúìk,óö^pÊò8ukå¡Ô•TQÅ”¤ÝÓiÏEäWá¥XŸadI{v„ˆ“SfyäŸó`fÎƯïÿvî궦ղ1·¦R( ÕÅEÕ!i9!<­•ÚøŠ'Reá÷Òz~Ôô§9i|x£²¸°¢žOLFJטò㉎j¼˜¬”¾…×â ›P\N•“iç«’““Q5Ò;vþ.5©Ž;¯è»9¨¶ó±ývÙÉ•ªF4jdV#&A"uåÅ¥Dœ¨¼¢œ0ßOƒRÐcUA’A«'ë{~šwž+÷Kú…›©´^µ@@«À;T;¾äòøs!ÑwKtO.Sníõ?\F—ïÿÀT#3 2ûE„ͧ0/È™sÇnHJJ -ªÆ1cÆt@^”êOùJû6sƒ¢`3"šÂ0Üëׯ1ÕÈ$žÎû‘Ì9·“ªDû]g„U”ñùñ>õÛy|ó=Ï™áæJp  ÆŽ/•ø=1!G ïˆ! -‚\1Ð@{èòýß-«‘Yul$“ÉÌ)èWLq²ÉµóÔ˜ššŠª5JÇfÛIp‹ŒÏ7oÞ j5j³ü³™¿2û’ÓŽ¿P6rmþçô¬Â:A¥ª}dš}ÇÜ\É.ÔÈuèZ¸yó[P#fÈiÁ>}útUáÿ52331}ÉÖîÊlÇ?V6n®ä—jäºt-ܼùÍ©±e/ÒCFút¿~ýºªðÿŸ>}¢‘8¶jÇ?V6n®ä—jäºt-ܼù˜jlîþ"ËŒ¯(D—BëymÁ???­KhFF¡æ¨³q•ñùÇJÈÍ•à@\W€®…›7¿e5²Aw!ó4ÊàÁƒPc'CWcZZá ;²©‘M¬„Ü\É.ÔÈuèZ¸yó9ËÆ22·2ÔHfBUU5v2t5¦¦¦˜`V#s++sàøÇJÈÍ•à0ÔxûÖ­®.´ æ{-DŒ–U333¤ýj¤ ÃÓÓúA{GÙÅͻ홊_<ý4pŠº,×? DWcpp0g *æ-Æ?¯ZeÁÂ…jœ>}zW Z‡Í…Œ‡4˜#E‰Ä˜VSSCÚ«FÚ+Ö=¢J‰ÐÕñÉž¢g²aéh)B{GÙÅÍ›ñF'éÖ2©|³Î dSí¡\]qqqŒ‘-‚d{¨ãGÐ2=5< æã‰Íy¦¿€¦Mj¤6Πö*Gbz=!¹<ãN€­g⬣g6nnXæFظnRcä±!uùÕ‚ - -ôa´YÕÈ1ÒucZyAA½˜¢àûõËÕ(Z“^"=°‡x;ß3õÇ «ñÍ›7ÌFd³#æÛººàШàmšk;eÖ!Î脺º:ÒŠ©uùÉoFGß~ôIr¾Ç!ëáøTÖwÊפÐßZìåL°Ç–ùè†>ç×ü45êìï5\!»N¨>3SÜàñ ‘j†±Fº¦V§†ì°º\Õ·7Pï‚ÚP½cD -ï;Zy¼&Œ˜³p‘ּɥ¹­…•®ÆØØX†ùa A×jx6#²…Œ 5¢¿Ò'è/0ÕH®É‰{}=úîËʼnóPëÌVëÙønα؞®[â;ýlÈ÷UÍ ËŒ5ÀµªÆ…;D"ýæÉ!Åÿm[sRýø™U’Ét5jÔEq=¦"lµY’E˜Ût¤ðöV=7²otSƒ*©ôCÌÝ[Ñ·î'ûÍÐ\´háÔ¡òm}mgCWã«W¯èFDÇ©Fæž8 F€Û5< £ë £— CÌ‘"}šþI=CõÙ'–é”3Úëh1£ËPÛj4^â;ólÈpº1†eÆàºú±îa˧fÈàjy̺'Í.„ ÿԨƑ©fÃA‡¯üºqY˜ydðxTº”â‡F+#¬.±Ýk$W¦]÷tð¼ö}ˆßãÓe¸Â.t5¾|ù’юʬFƽM•ù=Ðà@éFæÖT†™'&Mš„`G”Úoñ¢££ï¼Ì—7w¡¦æ¬±*ô»yìj¬Nv4°.sŠ:€ßÕÌ°Ìà a p]CWãé28 5&›r =H8výO5–<2Zq‘¡FjCI:6Þ¼û ¹~ÀŒ‹-˜6D®­¯ídèj|þü9ÈÌœ;‚nÔð0 5²½3dDë6:¡¡¡´|¯‘Z_˜ò8úÆ[?ðÖwÜo<aº×H*}+`—OêÜã§6*¿onXæEÛ0¸®ilPÝwÉo¶,Rühûšà1ÇϬ–LijP%Frûvf•yê¦p—iÒHÑ]k=—Ÿè 1"%1û½o|U›«¥¥9_£¿$—õÇ¡«1&&Õ:Ý\àÈö9P#À=€¦¹7Ã1{‘9dD«÷”)S6öP%•¦¿N=¹;%Õ^Ûø$IQ>„Š)ªNÕ35_2B‚ÐÔ¹cXf…ÚøCv°p]ÓØ g¨|6I¸!3ST×ÇÇtˆèÏn8õXÃAW½;ac}•Ø¯7_­@ïÂwôn8•©Ï?ˆ©ìÕÖHÿ4t5>}ú”îEf5²EŽ÷ÆuuÙ€¨àa0Ç™j®)•®Æ©S§"ð6Œ±s±¸Fhw òª%ù0<€14µ¡,¿ ^LI¡½ƒ‚wt5>yò„¡FÌfU¶UP#À=€Sl­©Ì Õ{Ú´i¼(®“¡«ññãÇÌjd‹é=WAwjx˜ÔÈlDô+Z±éj¤WlPc§BW#zq¡«ýdnPeŽ F€k5< §9û¦2âEúçŒ3Pc'CWãÇjäô"æíFP#À%€¦¹'7˜#EæeæÌ™¨±“¡«ñÿû#Ì#c¢¹ç7ººì@Ôð0¿¬ÆAƒU»ºì3éi©¨àe@jäN@¯jxP#wjxP#ÀÃü15¢oôšM¥)Ô(6=7Ú›ÈɔȎû5¼¨àaþE†¹ß:;WZEFðxRqÚ“ÈàÀˆ¸22æÌB¬÷-¾çìõ®ºÕÜpü‚”oOŽïvŠøXÛÊå@¯jx˜ÎU#Ž_¶ß \vJß0÷«.ß6èû®C’ƒnõÞ9êéªCïk„ "§$'P[WBlŒq’ê!—-O?/GÐÒP9f ©ñGn8ÕA-1zPÒø#ÇÌÅTT’ÄU”Ôþ°1ŽOBAI¤¾  ´¾q>¼ˆÊ Ù’Œ¯•ØºþÓ€^Ôð0£Fœ ÒˆYZÚÚš3ú•ß¶±ôJ¢ ý©F"Ã÷GÈ:,Ú^¼:È}*¥ ¯8Hþs€ùî+ß…Fï -Öð=5­¼ò£ŸC¸º;ë ¹ ÌjDJúÏi.5~XBì»1ˆ}f‚ÔD»£ûÇ?~«—P~±ÝôÈç:Ú>›†Tg–‰÷•L=´ùÀ­ü‚ü<§€êäÄ{Ñ×®ß~š^Jú3 @¯jx˜ŽU#A¤ç˜¹‹t´LTÈ~;úÚ{o³kha³ÌhदžÞþ¿•KÏ’)µhdˆ”õNŸ뮿+¥F|LÈ•-'—Å”£3„ñ3 ¹Ý “Y+öWÎ=ansá3‘Š93ßø—LŽ/5{UA[-m„d‚òÒÓ§&Ÿ]ms¯ˆÌ§¼$$dÚÑåÖ/*hí±|Ò'/ÐÒÖš;Jèãÿn\¿vóQJA}—4Ô‚^Ôð0©F³ËQ[e’Oísøï+‘Y)j Þþ`¥~„à\3³Ej=ÅñˆpïÞÄZ+ï‰2©/2@“c¡aî×¼j]¶…çd†èØnP:mdu£€Œ5s¹Ò²£á&¯ï=Œ‰yø 6³š"5ùÔ̓•÷neÑ‚à%GÍþÜØàpSÁèćèìtݹ¤[ªå|ãÿ•tAOP#À뀦C£F¼pµ¹‹´µNT,Œ½}#úþë/ô{wìjátÅ_j÷ÒÃ3Nû ú˜û<þZ#4Ò7j׃U«nŠüT£Ð€—8gdΠ uîòš³º+oVöÅš™ŒÄTFkLš4]Sôgnjѧ®[?Þë_I—7¥îûû÷¹w&qü2ƒ§,ÐÒZ0g„@Æÿn¢aãÃÔ¢†®A¯jx˜N¹×ˆP>cÑbm­™Iqö„¤#L÷ù¤Uµ¶zìz×xÍ)ñC×l£W¬Œ. Jj8]ñ裵âf¡Ð¿+;¬YƒÆbcŽbÌÀ¬F>Å9nçw.ÚKQعD@‚PWAëj#4xÏe—‚ËCtÃÎΊ4Þtùk=ZX‚°4¡®´'3y«³­v¿ê·w¯_¿qëÙ‡ò.íjxP#ÀÃtnU>éÁêëâžæà‡ºß -Í_VÕ€àbþ»Ç‘ÁG.'VP%ÔlNøΩOÍ¢JP²‘}Ï-[}³*®¶-À}®l]iªëö‹“¼}Øg@Õؘ[5 Á²äk>{’ð¹Ý&Oõ ·•ÿžYD•ë/ûùˆÅžëß{jïòÞ:–’ùµZHQ÷l«‰Ï‡ñ¡«Þ&dUsEUP#À뀦ë߆ƒ’S–Ç—çT5ã¤Vghmf¼ ”¢¢8®"ÿ{SŸ‚˜‚²4?±$¯ˆ;dÈ -¨àu@Óõj°5¼¨àa@Ü ¨àu@jäN@¯jxP#wjxP#ÀÃü²щ®.ûß ê?Ôð2 F€‡5r' F€×5< ¨‘;5¼¨àaþ°É•ߊë„d»)ˆš‰TòúiºŠÆDü ö¬ƒTüâé§SÔeùZKäb@¯jx˜?¦FrEüYǃg(ÝzJ -rëû¸¸š¨Šb]Ç«â- üõÃONãOhšnÏå¾òÍ:ƒMAcÄ[Käb@¯jx˜ÎU#µ¡øsµçP9|þ•«Oõ²¶®,€C¨Ä¬g÷*Gj “ÀÓæ"Uæ×òËËK о¶A䚢üâ!yE!üÏ•‘Ê -êÅ߯_Æ° f"æâ謕EùT %FDËšB¥©x}Ó”šìôé=Zˆ P#À뀦sÔH­ËO~x3:úö£O’ó=Y,±L? t˜Ñ^G‹=„˜.Ñͨ‘Z³^g¯Ø콄Ðo”òÄ»)OœÛ(ŸÚ’)5o‡œ¸ŸSIAj³²„ì£ÎÎæ{f²,Ì<2x¼ú{ñC£•V—Žô‹çL #ŠµxŒ©þqËg¦Éà~ì)[ -B.ºÛœ@®L»îéàyíû¿ǧËà‘ßÔð: F€‡éШ‘Rû-þAttô—ùòãæ.ÔÔœ5V¥ñ.\]æQ³w;"ýYT©eOLtý§ìÛ5JœžŒTÑj¸ -P#ÀÃ0¿ ‡ù8lmªŒWá H;‡2îÿÕYתvo„óDIæ–ÔÇ1–nÀø•}Ìaï·wm¼þQiÈ Iñ~– N™4.+U›¶{û¹åÞü9Y"‹\ÜÍF‰ã+ß/q¬®”Z@®Íú"±üØa“¾Âä΋ø7¡«1&&5ó q˜[S™ßƒoø P#ÀÃ0ÔÈùüFsͪ-¼ §¹¡Œ‘º¬ðíf~ BƒG©6yÎ,U)BËãkÔEqþ:¶š}„aþšxsƒ@£ !“$Fœ“ªÃV™Ä® ;4_W³g…§Âá [û7¼1ÖÚ¥x âàTiÊ·ó«Ì’öFºk|!UgŒEü›0Þ†Ó\SjsOn€.Ôð0œj¤GÍŽèç„ veܸ¦†¢qq‰I¯\¹õe´ëù£Þ›7?ŽqÈÈT3Ž_ÃWælbF©ŒãPcÈÈdSý£ˆÓ²hâRÏYgB—ˆÄ/=²>â$mÎêÄ-~èœSXÆìȱˆº_¾|ÉööTæ‘5‚îÔð6l÷jd»ãÈxÛøøñã‘veÌñÓa}óûKÞ Ûšǘ¦7Ž_ ¿6û=5ÝxéÄ8qš­ ü–„…4ÝÑ성ˆº_½zÅxŸ8Û]F†Ùî5ve¡€ P#ÀÛP°àT#cZ]]içPÆýRÓjú Q¦=³A)±_vñ¾ì,w³…qŒ5ˆ‘œ¿âóÙÇæ'¦l3ðœuú”¦<¹Auµék“Pß¹ò¸²g{VxýhPåT£Di'Eü›ÐÕË)²©EWš5¼ §ÙG†éÓcÇŽEÚ9”±\ÁëaŸ„{ô”¤~Λeëk;G¿®¥qŒ¥±F9âsx4ïge¿XPzÈNOƒ0SF7{›ð¥^„o9b‹\<ÌéÝp0ÔXÕIcÿ&t5¾yó†Y‡lj¤·¦‚îÔð6t²µ©rŽŒi555äWù'×ÕPEäå„Û<Ž1Ö¯œcc¯¯¶(¿„*¡Ä6b1o@Wc\\\s^¤ßYd{¢Ôp F€·aS##jd³#ƒQ£F!ð¢¸N†®Æ„„ø#³=Ñj¸P#ÀÛ0ÔÈ™û¬ÒÉ5Ž95v2t5&&&2Gt#2÷Ge„ F€Ûè,5¾ÿ¾ƒJ-AýsøÈlGFIÿª££ƒ€;º¯^½Êüð"s *#ddxžÜ:–!C†üÎâ¨Æ1cÆüNИ¥ØÜ{ã˜Wûöí‹€;º?þÌÖˆŠùf8æÏ®.8ð—ðöí[P#ðOÃ2²ElŸ***]]ä…¬¬,6#rFlcWøK5ÿ:˜ ªœvdLôìÙ³«‹ü¯ðõëWf¶êEP#ÐQ€*˜·›»éˆù@$[ó,3]½¡] Ž6¥q>žØÜ-Æ–o4‚ŽÔüë° ¬¹ûŽlÏup—l ræÜÕÚ•°©Ma»MÈⱞÐÀ¼¿j:ÞS#•Tþ=·F´›’$߯´Që8Ñ“°M¹¡Á‚þý¥c@*‰}œ¦2e’bã°ìäêÂÜ‚‚¤¢}xÖ_N‚.-f/¶,H· 9?9éê­ìzpXpz3:lAŠÌwA@GÁ[j¤TÄZî¸ÓÐKº4›_ÓÛÓ(ñöZŠZþróŠ]IÕ¨xªŠË(’²¨a…ï ?2O®Õ—†Ô¤ØéØw?¹¥/æíí§*nƒ®ïò‹g§K”=÷Û¶û*cxýÓ'Í{7üøsÀwâ_Çks¶혲üË`Žll^d›hYŠ`Gf{µ*HÌ NBÈt<¥FâÏ¥–%ö'‰W>ߣï*ä’Uÿ¶KŠÚPü)Úk˜\cFüè«·©ÔãªÓPaÚW -±8¯˜"©Ä:$:©.Ì«RT”h Q›Q#•TQW#  @Š>˜:# -e4Ùæd¨qb±Ÿ®yÖöH¯M£À ²JÂ5,jd+!µ<ÖD/À8âÔ$I«ËN+–Ô“ÛÆjç0•Æf»æDØ‚&)‚‘‰ ²9²9#‚‡—ÔXŸ¬gšqàª×(QÚû‘­u‡‡\\׳.Ù×õÖÄ;&J5ARëò’þ‹¾~ýæÃO’ ¼¶£B?Õ(T“~v§uX>}HôÅîÞF‹ã+_¯ÑÚ£2B!‹(TŸ™)¾ü°¿É`‘ZN5Öç\wÞøž>»ª•ÿž…2¹Á+,¾;]ÞGs.¹ð¦ñê[¦O•"qÌ©ÄÿCã¿;jo®u¼â:‰yxFL)UË^ÂQH¢£…ÙÕʪƒ%Åûou5/öÞìK9Wk±ö‚)ƒ¸e¬v^Yc-Û±UbÚ525x6'¶–5Ù²hM:^RcM²­¶}ïã—7öAþúÌ€¥s]¯¸¨’Sü´örè,waÓPì w’'ŠØ¬Rvm­ñçýÆUœ\f‘íá8\{N…w?›L© Eoß$$¾¼w)ú‹šG¤ËLÄÆ_ÏŒJZ‹UÂ65þ€\ùþªÛ.·¨\Õ€;§fvéXí<¦Ò~ „U‡ÿ¸™a$Ò†²9Åvé–¼G¿~ý˜¿~úô‰ù+/©•ÝRÓt§«Þ, ª½ø›É€R›wïÆõë·^äË«Ï×Z¤5g\o¦{qmScØ,\Kj|l¤í;ÍÉaôϡ؇ é&„Æ™VF®8m›bn]ç¹}€P3s’0:Ú?Zb¿çú™ŸÚ¥FjCIÚÓÛÑÑ·ï'Õœ©©†ª]®«ã_1v -áõ3!㨫[ú ²¶ÿ0çƒ4Ÿ?}êp'‹þ'o§UŠ«Ù†Ÿ\%›±[Óàr‰­$M׎ýPÏtí@8¦1×ÛÜþéLúõë÷éÓ§Î]ÀÅPŠï®š¿í½Ò¶kWLTp9gõ´]r¸Ý:§£Hhøís0ì¿ø¹euñnƒ'énu0$ÓX#[n>AX튊 t ÿ’kÓökœ/ètóâ2eù{„¾æþ é呸hÅVDÅz SSÈ}ó¥–àæK—Ì¥^úx^ÍÎãho!ݶZ¼ýåƒÇU¨J~™T 0ÆáÊ©•Jå÷m[Ý+ÆIô7¶î{R†„ÏíSêüLí6ˆÌ„éãe$úmÚ³±?v+Oã -ò¯­X¸;{ì!GËÅ=ÑVtãciÿaÎi>úI^ERQÙ­á[á$Ÿp‹î…Ý=ûüœm»~Ì̾Ö›b^)šÝ®æöOwþŽ<œ, ^¤O€ÿ]곎é.ñ-yìÞÉ©ø—ë箕Zum+ú·²*~Ó\£·bC†÷W¨üû6‹(5#ðfÀTi|»ÔØè*þ%5V¾5™møŒ:æäý³’Rþ|õÓ7x°(3¿ÅF±Õró¯š.Yþx›ÖÆ{•½6°ÄjÌgNÃ×ÓK»euÛréòÆþ‚¤Ü K5>+o¼±øéj×ã/XŠž-ÔºÂÏõ2ýÄé*ÛÑnC-{j>Ï<®ûþ¨¡íZv_†úß>3G¦©i»Té‰Õ²³}£üçÊrm%UHœ‡9ÓÌû!lâþÍü‰Æ̧¹ýeÙW°#' /Ò;þ«Ô¤ìÒ4ˆæ[yÖpX[ïlͬ³w|G‹!©üÝgÒÀ²ü¸Æàrå<ë$Q틷݆‹´GBºb]¨ñ‡©jAwCgÊà¨%WÎÛO˜þ xŒÖ™Sg>ÇðQ)…9oœšÅq=ÃGõ#î†Í‘åx¢j¬N°ÕZy›Eäõ|AÚº'«§ºsx¬xËù´ FÊè#÷ÂfÉ°¾E¾¹+ç~ˆZhq{ÔØÜþ¹|l§ÝËÉþœÂüµWßaµ&€{¡–>Z7×"¹çkB6Z;2ùÞ Ÿ/‡žŠußîõ8›ž[^G¢ÐpÀIŒ?ûß©Ÿ7Ú¢F\Tl «ø—ÔˆÕ š.µìÒÅ…´UN%܃yæTÅ™Í1|\%¥>}¼£%E¸ß&ë ‹ 7Œ ¼:ûwÔHüà¡­’ýsàþîË#oî"Ôb>-¨M|pZ]¢µò´EÔØ5³×¶ªFìýÓb2ü>¤œ0½Eî…‚{Ìþ“Øríò¤ákÈ2ÏÔ:~Ùj#Udå,·H*_ÎZû -÷óa®ÒÌûâ_R#k7œÒ[f ·¿ÂM ¸ã+Jë†ÃÖØÓœ~—«Á0û„®Žg–¼q軑¢´XŒ\™ùžÜsPeèÒÅî…4^9¦£Ä‡PëŠ?×K1TßÏ6zΈY›§!'TOËí“ð( 5i>„Tÿ"¾¦×Ö«—-z ´”fz >ncƒ*º§¸i>ip7tFúÂ)•Ÿy)Žõ6·†IñýúÁ€6@LsÔ\v7Wÿßµúùo¹46™¾]7Û0¦aÈ› ÐÿÄyQ w§ðý¨ÃÕ –s×ܯ|ðæ…¥ÊçjUÜú9X^*ö?Ä¿¤FÚÃÎ:F¾zŒß-?öM6©ÛŠÓ—öH£=¼QÅ'.ÖSUM¡ öMf-ÿ€—.on¼ƒ€arþµM:öOÊø»œ0T_‘“šÓ+èÁÙ±õ·­oPŒ“¤>¦'>/9]ÔóÖ©¦¥ˆ.‹ôÏä -œ£5¡W¿ÕW©`ÿÓ$Ý2šoóNÖìÒukTÍõ™Gtuç8x㢮¡…|0Ó1ÕÈÙ‡¿ñϯÕ8GM¬ý°?Lo±çG|?­eKn^ˆ)hgÊc½ÍíŸñ˜[ µü¹ùB“gUü8²àØÃwO͠ݢ¯Ï:¶t‰o–¼ÑÑðm#kŸz›ÛœûBdÔaÒ÷ ËíW'>hâľ2ÝæmÛ>³î v…‡ŠýñO©±ñ‘ÿ>ûÜxóµV¨ûhíM{·k÷ùñÈÿ(·­Ï½þ¾Zr˜Ö7{ÞB7ç*h-*¯‘w&èPªÓ¢y¾ûæsI¿„Rÿ‘3–9Øêw Ô|¸vÈ-äÖÛÌrªx·¡3׺ï_ѳi÷6ä^uÜzènj~ I|\³ÍªÔŠ ×=å×<í5RM¨MÝ·ÐàrµzàÝiÒ¸òÁJo¡•µ‚u½ê¡×6^Œ¹(屇7Û…¾-—¯§W埆Woe½Íퟎ:Ž€ ù{äò…{ÞÕ Bƒì¯_6ìÑØðI­ýxÅuÿ±ÛIßëDzŒÔPûþ_ÔWF¦T¥œ´ÛyòÉçòzŠ@_Ë+W-{›«ðP±ÿþ15¶ôTÓ×Ü—&<÷ܽC£D»º4@çjlRÁ]¯»¹Å_¼øP%4Ì‘q'ø»56G]f€Þâ€ÏõxɾSÖ»»®*Tü €€P#°j¸Zð¼𧩨¨5ÀO¸Z¢¢ð !𧩮®5ÀO@À¨X5¶rñó‹‘©¢ÚkwÃÑ›\þúøîƒ_fU )«ÎØà¾W[‘k¶Öò¸€ºœWÞ«/Ãq‰}ÖìïuøÌR¥{i`³ëj¢2ÎJÛò£T7aÚ˘ðj{ý­ ›ö¾ÌùZ¥|Õ}DGŸ#­•‡réK¿½‡ï'¤—õ:pýìyxŸ"Àû€Ûñ£÷Rƒ+JÇ9bñƒ‡îê(ÉU»7ŽæÏ~óªVÇÖ´Ö¨S­åpu™A«wK:³ª;›È…7Íßì -ß7D¸Ó×ÕD}ÖñÕ[Ë].lg.—˜áºÚ}ôÑàùr,¢Öʃ¹òC|&ùß®u®ìvØ®€®ƒgÕXùÆx¾EöÍ>÷’ÈÃŒ<½-F‰ãi‰¾Œ^2ôÛÝçY8Uëðã ³Böy^|•S/9xÎú½ö *6-`_ŠZ´Ïë⫯D±>+vì7Q—ªaÍÇt¾71Š“ĸcÁ=׆Ù] [ªXór›ö¦äñ>ûªöZ½y0Ük^w}F2[ÎËðÖ M^3ås -ÙÕK_s<üß·r-IyÙa?ý†ãV»î}ü’KRê)Ç/¬bìë±P¦ä‘ŸÃá§EüÒÔ)I©F¡Á3eñõÙ§7ïŒ×>䣩Ð$'¶öœ×ô ”¿=ãpçseYqŽÝA‹‘¥G9ÖEÏŒBÌy{ûê¥ÿJÜ6—l[º6üè$Is±ó®mÉu -µlS!³æ¼a@¢Ùò@‘Õï‰ê“åÒŸ~éçê8‰gYûxá/~«­ -&Œ(OˆO­f}ÔeNÍ1–ò¬´ì÷äRÍx]ÍI}Å™ ̹íµô‘ÉʳFçšFN‡§Õh’ 4wûŽÑo<|žÉÙ\=·¢{--1±ÒÚt²|u®¿ðy3‡Ô!æöËåßrª× Ú™neɲTèÜT륻³§[YM—ɾ攤å6(}s>ˆê ñoÎïw|"½ÝcÇ q‰AC¥î¯Óu¯ß®•½CÇòý¬³W,˽ ·\ùJ‘2mÉšM¦óú –ÞßÌšs@èZþÏiÌùŒ$­O] ì¯vèæºZE€B,® ÈHñãbºË—ÑGNÒ›Iß#Ì-b—»Í•Ê9¹beÔ¬ðKûRËž¬×Ú+~8Úw´=+¶ŽœEò·y4˜¹Žoøl¸[À+tm/~ÖuQŠß?¾vùÊÍ7Õ½§-\¼xF÷_½µ7ù”iÃM#üJZn>k{¡6¬x½Õ0Ü(ôíŸUý×0Öœw·órÄ[z—Ñe“3;2­öºìkðôaYûíæ‡Fy„mM}e¹ìزó§¦JãXÊC©ÉysïÆÕë÷SqÃæ-Y²dÎ(%AÇ–Òwd†ë²Ý’~á{ÃØ…ÀßO«q÷á×zeî[¼êÑà“7ýGSÑD³ìé¡7Aç©J°ÔZŸ>#ôú¾Á‚ÅÖhí®Zj+~ŵ€y©ˆu'—?,¦üÈW¨ß–ÈÈåæÌùÐ`k%=شؾpí‰-‰[l?ë„_±ê/D©ÍŠ¹zþbDÔ³,ÁÉ®—*:-æÈy½B64¨r¤ï‘–†çÄ4 æO›1…~áGÈ׌7eì Ý1€Ö„YŸubÕ¶·ð-ý„(Åÿ[·úŠåÅ€±mx{Î5I{–XƉ(ˆÐH©«•\¼ªžy]u™GÖ¬ŠÐßm»næ@IzøXtíÚ»6éÃZ3 ~ô5ÜßçðEt®jöœ—ÐzèUâ<綹s_ßn‡LNÏ·r²c]»ß˜“†®#ƒO.VÀÝ31yºãÂUaÖmÿ¥&ûE˜çꧮ8©Š œ oÞ±ºè?ÞÒüüjÔYõhÐ5Zäëž¿bÓxc†C•Km%~ª±q©ˆu!&Iª{¼,èMSx!ÅE’×1çCƒý!µâ•Íâ­q}”ˆïð&‘Ö÷â'SqÚ_êò˜-:UOE®?É™³"õ¨‘» •}zóôÁµã—JÍÏj¢ÁRuòŽUA:g5›0Ë_˜„˜EžP—@jÞ9®<0èHØòn|íÎùÐÈ;&ÛªœC-ú°ô¾bYµ¾0ñÞ¥ËWd𘭽Hkæ(e$mŸ¾Ó`¶U’ ošlL¶Ý9­ž 9¡kYs®NÞµîô²åv¶_úÊb7aËôkžµ,k'ç_3Úôa_ØöBµ©{VyL9~r®,žuÛialÑûG7¯_»ó¦¼ÇÔÅzºšê=„±Æf«IÙ½Ôièñs+»·m×—ÃÓj4Ižo»cÔï'²Û®¢§e-«ÉE÷6éíLfao ÷Æßõ -qÉ‘Ö–,K…Î}gµÔ.¹÷jãIŠÔüw/ã%Wï^gήÆúìãËtƒ©ë|ÝævïÞ»»0¾&ÅIwMd¿ªýµpåÚxkÛ(Õ³T% ¸{^Cô/^Z›iѳB{>¿³“€ß‚\““OQî&F ”Æ8¬=1.øÄEînÊÜÎv`㱯|³YÏ{ÆÙ°%Ò9—-N(‰Bƒ+Ô’Nf®õÛƒœGýøƒÃšÂ‘sð”Ä +ÎkžÖíÎO®Ì~_,«Ú[϶®Ūüsóò•kÿ+i7?É=aç%oÖ~¨µï÷-?8òØ]Z?YJѽõ,9KH>ݼWÌë°ê)³ÃÓƒ\ûLïš{«{­c]»ü§]+µÏÕ"¿h´õ»ÓY«~B¬å©ÿzf‹ù5üDm==íiª2|˜[Ú)÷üÓÄݗ܆a…”À{ð´-²ÔôN»—‚Œ0òð¶Mï†Ã¢4RÑ“À½>±_ë%Í6Ýë Ye¹€})jÉËãý"b2Šë¤{ ›måºKý‹)»‘úœˆ–Gg–Õ‰¥wŸ©}﬽ꎲSÔ)-yB]öé½öçŸeäUã¥ûMXn·½º™ó,92G>@WQóÞ{ÓŽ‡Å‚¢‚|2jkì­5{ -ájõ;Ë·JDåúÓúÅÈßÛ¶ýr¾tßþýK¿˜]89GOúvn™ÁùÉg#­û5U¶Îœk3Â÷í }× &Ê/ÜcÆngó!¢8¶u)°Üx¦6”}y½wýÖ$±žrüh‡°ÕÏyŠ !—<>héü‚(¡4z¯¿Ã–œíÔŽl}°)Ä4ãÿíÝT×€aéØPcÁŽØ5¶4û³7TPªÒ‹¢"b,ˆ""ö‚%ݨ‰‰&ÆÞAE±KQéeÙÇBT.šÄ$ þßy'gfgf÷ ?wfvf†ócŸÕŸìµXÔnÕšîÉ[…µ›jìšê”ç5MW9ýŒÝÄ£¨U=´Ê¼öÚ+Ô¨YMüë­Ì+ÍŽY8yæáOÓž(j׬ÛmñÆEÝ´8•^¥Hca~^~¡¬ô7%Š9¦¶~h¸-zf³¿ðù@y;ÿú³^V˜}'>îâf·Ù‡›/^Þ«&C?øï¨ i,Þwúâ3rjm\f«¬›R^i”/ÇüLn?×5~£pNü—T†4J3nÄÞÌ–þ¦’zC½5_û3ɼ¶ÊFþE¤A…N£D©n€›L&#¼@F•:ÒÔ_wï‰U<~È{¯ù)ÅŒ³–#’ "6—¹”åÉ 0š¼ýn¾‚r#ãˆ-ÿð‘¨Ø¤©G繄ÜÈ‘¦'ÝN¯­[_URµî`¿ þìgDúè+ ‡8÷°™ÍÿÊ¿ì« NÞ½ÑiÕ¶ùoú"k²Ì‹‹lêìYÕEóUëú½µg^œpð\»VÜyï¬JÆÜ›+'šì¯³rïê÷5þpÆçþN snÇÄ$\ö÷Z=š4¾rã×LñÌó°{íÿ·³.Î6 ².ðƒ¿|•´Ü8³€+Võ¯õfïO&}ø¥ÃÌõ%OÛ®U¯Êï¬ëm­¨Ü*m味>“þìKÍ÷×î]Ý1ïøzß•»OÞÎÑhüáX{“.ê]¸j|J‹þNK=º'ÙŒ´»Õ¡wƒk?Å©}êºÚk êEË2StªHS‹–³b÷É;yÚz}¦¸9j¡šU´:ûGÃ_¤ñ¥yš+\ßìé¶á´´ÅgoŠi쿪Çr‹H•Y[Ö¬“}Ò}ܬËÝVm×Iƒ}ÄPaîs¾ØûÃc#W}5…´Ÿ¬¦nŸ¹ªäþÁÒ§ç¶,[û]|Fž´NïYÞæ]µ• -R~‰ð_wèV®’D¥ùx¿9ò¶L›u­cÛì+c3Ûجð¬u+ØÜíQ·¶O/^ømŠŽäñé ‹‚%eç¾7ØsÞÔvŠò;`ì·p¾çjQòÇšô¥yòïXµ òTºJÝ6m^¬º ¨w˜Møð€¢>9>wzdÛ€•† ^ºüEÎÕ@óÀúîã¾÷;ç6«eÉÂÅu½<%7i³»×±Iù}B6;ÉŸ#MùÁß;*öinNVaÃa³½'µ®’ðÒëªRöÝR;«ô;æÞÿ¼ÿúŒ®C‡ìÑTƒ£R¨´i”f\»téêÎ…~G«Û-°o©©Ù²u­“®çÝîicݳÆí/C/u êiá}¹Á8ÓîÕî^WêeÔýöŒ‘6WjŽu4Ê ó?¤5sˆA÷mGÚ\®1ÆÑ(+< xÊhå'Ήmeê4¦öÙàeŸçÝäØ FH£4åp™yÖ.káo¾ä~vάú!·ÃÚÝÞI³Œò¦o xÛk¼ãÕ^붹´fU…"ËO½zôË}û¿9›ÕøãC†ø ©üvö9×ýMæV_aÖXY~]ùmîË ¦ÎÐN£àfÄ´ùʾ¡Ùë-½’MVºö©§,͸›Vµ^Õ³v“–ëû„ZurœfÜæ¼µIp‡ëŸO j~ØÁáÄ`ÿùƒëeþäb5 tÍ€ÚJ -ég\¦m7^¿¸£|ÇGÁýh{qž•zû¬%dâë9U†És›smÉä…M×­_%÷fд…MüC†ê(É÷㆘Šó,t¼î¹²ãʵCê(å%EZÎVš:Q'a™Ù’v˃:|?Óñ†Å:—÷5_ºº}îÍ5¦³ æ†ÏÐMòŸº¨Y`È(ù=…uý6_Ù)ò[0Ow}2'Ô¼IÑ?Ö‚Ô“Û×F¾––'Ír/ûÃÕÛ$e^W„ÝÓÙS…wãåwlåªqÅÃÚÂì¤ÛV,Ž¼Ñeí/}þLDöŸJ££Í%}×…æMŠ_¢ŠZöZkû˜nkvù´+•F‡gEü/¥1câƨq)E}0,|«]óW¦1c”³ÎKnõ)NãCÓŠÒ¸º³ì”‡¡ó¹Æõrb$“£6LùÓs9ð¯’å%_<´wßþï㪶ë=xðÀ^íë©È+“}eîd?ýÀðñE¿Ïóïl³tϘ]RŠ¹‰ëM= -|Â-Ÿÿ¥#MþÖÊ!Öu}Ñ?ŽœXÓÀ‚‚Úÿb5+Î=ìù”U~Õ<ÍvZE­(ŸI~im{jæï¶jÒäo¬.;¯wlQ´¬¢‘™ÕTa›EíW¸_u‰to¥R˜öÓ,›æë}Ú©>>:ÓòkC“µ?ô[á×÷僄E³º{_©VK³Š¤ ã‘B¿ÐÍòå ëúm»ËN‘ÿˆ¸˜m¿Þ¿hœY4†1ãÔÈw2 ºnuÛ2¯+hE‹h3áÝxÅ;&ž§\ýéÛ¯¾üîÌÓ1|`—*Ü®X¥Nc^Ò†)Fá2“ÅóúÖӨߨÚ1§‰s.ëÎœôAÙÃØ“çÕúuþÑeAL£ ³¦vU¹'é9¾ÛíšÆéZGg{_kcî4ºÖÙ5ËöçÝäØ8ÁgÜôƒã=ì?¨W½E»æù?”™'x©î³å©ÛÙµ?µ|•|‡ª<ØÙWMÛ󠊾Óö°Ñõ¸zÅ$͈?þ;ý_þ˜ÜiI°] ¥{;LgœwÙè+ÿƒª0åíÔ×®^¿ª4#éjJ-ý†™ßZX2^¿¸wMÅÜä„L­¦*×皆 Yñ¶ôþn —ûž¡S³|M× .=eò¯I«>Y³n„ÎÓŸ—Y‡Õö 6kZM!çªï”¥íW„ —ꊲä,Î4âš½Ùã×÷R½>Ýñg£Èuƒu”òÃ'OÿüIS£õ«ÆÖùû¹‰áÓ\îÌ -óê¤!‘¥ýda¾Ó*reg2ë’{yŠB^b˜Å\ ßu†E ξâ=yQ»ácëdžYgéz¤gHä”—^—¥æañÝh,û©Ì;Ö\i¯‹ÝŠÝ‡Œ1øýü ¨ÔiTÈ»ííz4ñI®zgùi8ù'7, Žþ%.5¯jõmz[ϳk¶ (úôí\õfýœü½z$Ùüi­š*¥[Wü¬<­–}&»¹è©)æ&î˜ë´îè­ŒõŽ{×~ –Zfž²˜ î›Î4éÑðþÏ7[íYQüëhÉ8³ïêzn];¨6' Tl²ü'ÉR •ìóŽ“VôZ:¬8²ì¸¾>[còÕÕªª6øÔyŽi+•ìØm |£ã¥ªU«Õ8þXÅhKܹ¡S)gœw1êWïsKϼÒS–uQNØ1×kë ™JÕZݧzØö«'ÿ±“¦]ê¸äDŽfŽ®Ë\ÚWM,3ÒÓÓANófÔkÖLçÎ:‹78$ýôÌ þEÃZë–/dT(|ú«÷”Õz+ÖO*ÞI‘uÁÕ$à£à°u”ÄuuЈk·Sßà<ïxZæýÛ)Ú h7·p~ÿǛݼö?ÔnФmë»GoÎŒ\ôòëꪞ%¾F ˼cSšäGšúnYܳ¿ðWɤYy -jÕ”d¹ñ;¼ÍZgÛBE!ÿþÎÇ»vyù #€7¢2¤±Ìç4äTõgo(uî@ {zÊÇÂópÂÓBµ†] œ½-ÚÄÛŒ´9_Ш÷¬À¹Ãës˜]îÍ ™n?e*++©¶êälÐ"ó ·ûƽÝ|¦v$ŒÀ[SÒ(ͼy->³Ì­Œ´hVƒ[Þ¼ÊFþE¤A…N£ººú?YCff&iàÒ€€4þžÂü¼¥ªU•8Þ ï–w0Ò”Ÿ·ï¼¢>|Òˆúò ‹œš:ÐêÁè­ÑŽâí JO—?¶~h¸-š›5¾rãƒÇ;d.Ùæ\æR3{};|¡Sk5…ìëK'ú´^1´Î[ÿhmNœÿ¸I_)¾W]’“­ÕÃÊÏ}ØkF6÷öçÑ1ÝÇô¯[ü)§ -öº€ -íLcÑïš1ã¢ë…|³¾›æï§Qšq#6!¿V ½z*Š¤ñ"K=b>>jʎОÕwôÑ—f–—<6¹ê½õ»G¦|7ÙhË´máŸVϾ8ÎñÑ¢h¿gËÿ¹ñk&zj-4.¾ëE{]@ÅV™Ó(/–eBçQmï|ûs¢¤ÃæÐÁ‰aÞK·ÿz;O[¿ÿ´9cõª¥[SzÊ §6ƒÌN>}¶­n»-ƒ ʤ1ûÊœF{((ëNy>j´Jì2´ùÕo/È:LY¶Ô¢ƒ¦bÙµoZÞf§çü/ÏÞJË«VKïÓ) æéIO—ž§…Aß̽ßhºFoS7ëø¬á6{¬Û³¨‹&{lË]aÎíÓ_ïÝu(mòbg¥ãÝk.ßfÙäùEî­ ³œ÷^¹•ßÃnV*ò¯¸ºKÚ4¼}3>Yk O }7mż„5“{wºÿkìyï„[ß]á~åInvf¡î(_Ó¶eç™ïøÄwãèÈÕkK -s7 ëbÜP¼EvŒ·»öÊm³Z¨ÜÛilvÂsçÒ¶y'Bç¯8p++GÚ`ø|¿é4eiâ½ä5öîâîÔkT»ªjã©Kú¤-.¯×µZ£C­ÇÕ?9zÈGÍ4Ž¢R¨ìi4;£ÐÁÈÁüÌû’ª[§{]imá1^çÔr¿=y‘!]‚&º–ž²!bdÞõ˜­sçýXÃi‰s+M­VÍÒ톔IcaVÂ¥+‰¹,Ï÷µ$àXmǽ[&ÔÏ×^¥[/o÷ÅÔlZ_³ðþ‘¥K¿©»`oøG æ¥çQh\°nºžõžÍCo9´é»q¯WÛ×à­å§ÄÙ·;úËS™M>zÚ%Ù¬K®c};†FÕîTpw«‰ýcß(«¦ÕdOۘ윲qYw-IæDZ‹{oØ8TóÆ’ ^µVn2Ó-ùi*H9¾iUÄw±©yÒ¼Çw³?Y¿Ï»µÂ5q…¢zMôí¸f]§ƒ–¶×m"½ºi•½,jæy§¡æg4içý¨Þ틱éé×»¤~:Çg‚~{ùNW³sª]œ;Zâÿc­Y{·5È.“ÆËÃ&P5œíúAÁÑÕK¶Å×2yEå ?zÒÎûUÛxìÛ<î=îêZHÓoûrwô¾ÃºøXÞò\û¿M‡ˆwuÉKX;Ù]cÙƉ ª*&;eôª®ëwÍl–~ÈË,ªmp褆ù—=—õ ë[³ø~Ö%7ÃùC¶L¨›qrõT‡C½"wØ5—Šó”,7ÄÐdÏãæ“7­›ÐàWËú«õ8ÿ>¶Ž©§Tpo»‰Õe-Î9nc>‹ØhPçÉO ÍÖꄧº”™bÙL~`ÒÄ&~î½âyOOÍX^¯+/)r¦Å>Ň ÿ¬MMþÑ£ø¥±èoÚäWÏ Øq")O»U?ó9^†úÕRËNQWTÈ»½ÃÍ6øHüã\®Å§á¼81G¥™õ®ð.ó†¿âT[݆7‹ùú¼´­ÉÒëÎ%§á”^{Þ½/9|“¡Õ¡ßÔïvI _™F…ì˜ÿyoþž -vS-Èò߉ÛlkñDC»Š|¨¥Xý〵&Ý=¥fÜ»•¢Ý¨au]#ÿ¹úA“½”›¨^¼“£X·§µ÷Œ^:U -înlÿ`~”}ó’S˜e™WBg9G?¨Þ¨iû¶wŽÄ9nê¡VfžbOOXŒòk¼Å®Õ«Î ÍoŸæ·}¶¾Jñr’uÂœm®ª{=œ7^—©*×þpú\‡ÿ½W5'~‹8EY¾—WÚ:•ª^»ÅÔÀ%ý²BÆ /¯×U˜›òX¡FMneŒJ¤R¤±RÜÊø5f߉»¸ÙmöáæK£—÷ªÉ¯Šw\þ½½Ž3ÏO ›Ýý¥ƒŒ•ÚõuáRÒX|‚è‹aœœZŸ½[GÖ­dq”¿ó3ºý\×ønÀaÆw™ôá×n³Ââ4ûÍ^<ýýÿP@þ«¯ ïšÊFù§ïof”¹•qC½5¹•1àÍ« ià_DTè4J$\2ðo“Éd¤€H#Òøf½Î ¹I2Th•$g-GZŸÍPªVC·SÿI³l6É?g9Ò!Ù b³üÂÈÏç±»?8\~ÿžÒÿÉFüUòõÚ?±åîìø:óà_"M9ìvâA¾4GZoÀ,oónÚ•ìòނJ”Æ™I=œ:œ Zý}•1ë7™¦ÛWÀ4J3o^K,¨Ù¼EÝß¿*Öë̃I~ê™+úítÕÓOÍ›¼¼ÙŠp“F\‹xçU¢4´l4˜.NµqÝ'K í“:lzýà%Y»‰¾¾¦M®[¿œF‹¬9SÜ㺄úV«$D™\JO)^òíÎÿkwè’´ñ?óŠÅO¿ÕqXë»M’èÛ† HŠô]¹ûäíÆŽµ÷0é¢þøçÐ…«öȧ´èï´Ô£Æõ†¦Ÿ?,PPnd\<"”åÜÜé7gÑO•j4ïåèñYÍüØ2ó…2õøzß»OÞÉÓÖë3ÅÍy@ºÃ(»[z7¸öSœÚ§®«½êp9æ4ù€ÃÔÍŸ…†ÔãýÞy•-3ë^ukq¾Õš(“µÆÖUúδëpvyÐ/µfl[ÙbÞ˜—Ò8½hpi«;oWè³[þï›}1¥øËçËù¹h9ácëçÈ'žWh7ÖvòGµ3Hš«îšé{»§uÏ·¿ ½Ô50¨g¤…÷åãL»W»{]©—QŸZ‰Wb“®ø{­Î]œ½Ì Ncìº:}¨‘ró–Îÿ »×d—™GšrØqâœØV¦NcjŸ ^öyވ峮»8]®1ÆÑ(+<àÖÌ-ÆrŽ·.ïÞ—îÓÃ4ÝÂg\ª*aÆZ\hµ6ÊdñÌ»ýÃw¸6JX`hvT/8Òh±ÆƒÃ·þéÕâ9ï ÛîÒ(Á×Ðì'½àÝK;ÊŠ&θÝ3t§wkù 䑳ú1µðÙsª53q©ó¹_\·à]>íÕÊ.íÙqÄüû»í§¬HjÞ§ÿÇôìß»£Îo76/=OæÇ13®ºÃ]O9õûicæeŽtÐØVôÝ©iv£…=Æx;ò}¿dæªÔ‘K|ǵPáÔ(•/6šL gl\÷ÑÃçIoöSËà“6šØ^+ê™g«jM7ð|l¸aÓô&Ò!ÅËù-¥Î”) -˜Í%}×…æMŠß*EµìµÖö1ÝÖìòi÷»i,ú² íú‰_ŽŸøaïþX}¿M>=Š/·ü‡iÌé ¹?ðqQ'=¶+s0ož,7é«….[•&-vÔ ]P¬¥±ø4œŽç‚‚?; Çú¢j{»ög—¯:ZÓv[h¯“ÖF‹›šÔ§Æ=Q‡2?Z¹ÕOÿ¦Ó$×ë Ý"–÷zv¬ñ¼cé)%;TK/'|\ñÕR…“¦rœ8ç²®áÌIÔ‘=Œ=y^­_ç]Ä4š0kjW•ûq’žã?U¿t-#=.ÀkUÚ'n³ÇêµÕS;¸éP•–­ê*%F/ -½5qCä8í²ó´®yÂÙØûZs§ÑµÎ®Y¶?wxà¬ë®ɤñßP˜qi“çüm\|Í»rb*€*Q­Ïd(©ÔhÔ±ß$GÛAÅÞ°¿Ýep“«.J[-X4­£z^ü¾% "Ť¨Õï<Ìv®Í§µsÄ#‹ -¯<ÖhŸÔ©¿îµCWÚûø™w,9 Gø|…4í䆥ÁÑ¿Ä¥æU­Þ MoëyvícÃEŸ¾«Þ¬Ÿ“¿W$›¢-L¶õšï¯ÝáàñËÍ”œª:mÛ/´ë£rѲÌ<{WwÈ=¶®x9yZ-ûLvs˜9k”iü7äÞXnd¶;û½F5å7ø­Rwà‚…Æx¯Tš4¾=ò -R À ¤‘4ï|‘F¤A…N£ººú?YCff&iàÒ€€4VÜÜ*J’ÆôSSšJWR©Ùøý¦nöC›æŸž:Ðú¡á¶èç7–ÏcywØ–½nzª¥ÿ“x]9×6Ü|'_AYwÊÖhÇ?¸¦¹4åçí;¯¨Ÿ4¢þóÏQÊ·ÖêÁè?~"Þ -iÚñsV}wîêc]Ÿýép½8•*‰zºv>x°Ê„M»¦?µ®@i,ÌNº|ùæ…E.˳ÆýqárâüÇŒ‹®òÍúnšÏ¦I3nÄ&ä×j¡WO…›ÿˤé×ÏÆË»ûäúmsýwþµ¨è*Q‹ÇUöš_ôy:vÇÆO}GX%vÚüê·d¦,[jÑôªÙËi´Ír?ëš®WTPŸÚ%ÙÉ8gWfJñÌ Gµ½óíω’6›C'†y/ÛþkRŽFÓ'8Ï5kŸ¼}ž[è÷ן(ÕlÙwvðÜ>µ”¤)ÇÖx/Ýþëí}ö -µºE|³J}é£= -J 7Ë.yÐS›A– ú5Œ=r]­×ì0Ÿ!u¸ã%KûÁÌhãä-aŸÕ`6…Ê—FÇz±3‡M>Û:|§iÙ9•NÎO- 8VÛqoHKÏ¡/¥Ñ¦hpiv¥ñ¢/¢ží++Þ7ûò”3 -ŒÌ?Ñɼ/i¡¶ÍÂûV/{û^5oí[¼æB÷es3½â‡ÎöøX#9.¡Î‰j§}g;ÆõJk ñ:§–ûíÉ3ˆÚåÖðòŸ¤Ñ¾nÂù 1[çÎû±†ÓçVšZ­:¶¬’téJâÅÃMirÙ%¯q»j?ãbñn“³BÐvŠÞ6¡>m|“r®ùzj¯ØlÝäý$øϨ„iœ1lò¹Ö;MWXܸeÿlÝø9#Œè‡o7Yi ¤ñÞ°-{^g‡ª|æé·zE}îÛV~óÅŒs3†Ný>åù‹Uš[¯sÚuebË~ƒz~òÙÀ~ï×­–yÎvè´«½£ö{ëWK98i¨gÆ”;YüqåÓ_µCµô±ÆŒ—–<ÆE3zQjÑw§¥Z ²ö!ãM>úÊÄäûí+»i•÷¦¨*[í5¿6é“n¸cã'¾#,ï Ú¼ÏK7Þ{¤ñ­Âw˜†3-*ܼÖ*i?Nâ”j¼}·Ík\4¼ÌY0Eqbv¡ÍìeV%RT©ÛR¯Væµ_Ž;~hWô•6þ»–tˆŸ),}ÊŽ]F,ZݵeSËçi¼?ª(©ÖƒlþvÓǸhE/N+*âÔTË2‡Wñ&d]ò3¿mè£ Æ«Di,> çýÓß=; Çìœê@çN§–øÿXkÖÞ}›žŸÐ|ìÔþ5¯ïŒ8ùIÈž€67fŒµ¿ª;g뚾ώ5žµ-3¥L¥ÉlǸ^l2ÑqêGue.?«ÒK/ý²Z«Öõ”vÌNœ²m»±Ê÷6n±í¬<ÆÕ>µÒ/:gTÔ.÷&ñ³‡›|«9i®óGõjèuÔMò:åh3¯•ι9YÕ¸dùy·B G¯“™.P_³A#­Ä‹±éé×»¤~:Çg‚~ûvµŽÏ—ìvÍÁñ!i|[ -înd~Þs×¢vjå½)*ˆJ”F³“éJª5u;ÿÏÔÝaXñ‡7¬nuÞ,æëóÒ¶&K¬;käÞÜí;{ÝËÉùê ºŽšµÐ¾·Nö«,¾4Eøì„4õx¨ïŠÇ®¥ä*×hØ®ŸµmÓÃ~áÇâ’³•ë´æâïÜ_§JAò«çì8‘”§ÝªŸù/C}uÅœ„-¶«$¦h¼üMxç»!3¬ÂcTÚ}\xé‡*ã[~Þín¶ÁGâçjtØmlPæÄœõsÅ%É°dM߆옅“g~ð4퉢vͺÝo\ÔM‹qT–4ðo!H#Ò€€4 H#Ò€€4 H#Ò€€4 H#Ò€€4 H#Ò€€4 H#Ò€€4 H#Ò€€4 H#Ò€€4 H#Ò€€4 H#Ò€€4 H#Ò€€4 H#Ò€€4 H#Ò€€4 H#Ò€€4 H#Ò€€4 H#Ò€€4 H#Ò€€4 H#Ò€€4 H#Ò€€4 H#Ò€€4 H#Ò€àM¦±oß>²Â"²Ã?ü@•£F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@¼É4ö00ýï×½{I# ’zÃi\åêʨP©±CÁ›O£¯/;T•£Fk@À¨Ç0j@À±FŒp¬£F\^£F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤i@@F¤A…Nã?y:[M#PŽd2Ùß{¢D"ùËüƒg¨ŒH#Ò€€4 H#Ò€€4 oRLLLyo@¡uëÖÿäé¤ñM*JcçÎ¥Riyo¼£”””ŠrF+Òå‹4V8¤ÊW…Nc¡Tú⊓OÎýr½ÑG=ê(¦>zMþà]÷µâ"P¾*p³®Ì6˜ö}¾¶zùWê­ÍZ=ùuÔòÅÝ•ÎÛ­¹®§ÊÍ ¿/úºÚµVû'ÿgrn¼XKéÇo i€òU±Ó8anýQVMª•L(”J”%™çJÒø‰âkãI×ôÐRPTR’((È -Ò=ÈRÖÑ©®¬Xü ™TZ¨¨¤òð‰²N=Í*¥nmPü-E…¬ä*uê¼ø–4+åAJžªNÝ*ÅË==ý|-E«¶ùkkT*”)ÉI}ðD±VÝêʯsoÒå«ò¤ñY{V-5nÔZc?㋸zú­´5šYùÚ×ýi©ûº«jµ3žê[/sý_ª§ÍÇ,lÖ¡FLšJÃ~nó ¾Ø+ÿÖÝv:I9Õò5Æ,[j¢§–—j?û˜¢Nõ‡ד›X¬ô^/÷¼ß³µ¨ë|¬q/üÈ¿°Æ!¬Çúéw­óPštKsÜêåSšªÊ2/-û¶‡½}wmÅW½nÒå«b§qŒÕéZz äÃ7U=« ·ç­‘Æ¢UÎY­5Ùò–BÁý½–V¿LX¿°o-¥‚ûŸ[[5\Ô]rÆ|¸G ¯­‹úÔT*³ð¢† sSwß0 –Bêa—©‘]ƒÃ&Ô—d*ªÊGƒÒûû,mÎ8DÍk£–qöùZJ=~­5­eÄìºó¶Ìÿ¤záí“m.znYÐV5óJðò=lgv%PUì4Ž÷Tuò3lPµh;U´Ó–˜ÿNeO~±4˜§Ùw@CùSöôâw—{¬ÝhYû’¹áš)[B?Ñ~iGfQ´ÆOÜÚ«†bÑü¿LŸa¾i]7¥ßF„uþNF¡,;ñ–Šë®ð~µ²^™Æ×[cÑZƇ˜oY'nÖ…YFA‘!¿¼1"Òå«b§ñv¨–IãQ‹qAŸx¹tÐ(éŽbµz­Z½WpÖ|ü:Ëm!]5^Zøoi\ß«†äyWÖ›èœ7c¥í' Õr/ºMðï6°vöï¤ñuÖ(Oã³/³.8ØÒ³:i€ -­2§Qù²‹Q@ïÐÐA:J÷v™OÿaÔš€ÅÇ¥Ù¥Õª+gþ£4sÓðÚîß·¦Bê·©aƒÃF("| ŽäéñFnq¶»"Öνô|- -Y—þÚ_ÆüÇÆ5øè£F*¯Œ$i€òU™Ó¨•yn•ãœÃ)ÊÕõ]VyÕ?à|F±qшïá}Ù‡KWÏh^ð‡i³@·Mí¤|•¼ÄDõQK–MÑWÉ8·ÒÆí{eýF’tņ -7ÆF®X[’ñb-+\•#þÂ_™FíÇGÌŒBFFF ¯Söh1Ò嫧ñof>ºŸ–¯R³n-µWVç…’hm ÖϾŸ¡R·®Ö³oæ¤ÜO.Ô~OGýOð—×øÚH#”¯Š›ÆÎïw-ýåÙ3§þÉ&–•ñûÊòF |½ù4¥ñƒ?¬Ð×P•>½t.I·S[­75Ö{sH#”¯7˜Æã¿ü"9wî\I{|ðA…NcF |½Á4þzü¸äüùó%iìÞ£iü{H#”¯7˜Æ¿þ*¹páBI»uïNÿÒåë ¦ñ䉒‹/–¤±k·n¤ñï)Jcyo@á¤ñÔÉ“’K—.u±hÄó~—.¤ðVÉd²?Ÿéï’H^çnI¿«$gNŸ–\¾|¹ Xç÷ß'€wVIÏž9#¹råJQ‹F;u"€wVIÏŸ;'‰-5vèØ‘4ÞY%i¼pþ¼äêÕ«%ilß¡i¼³JÒxñÂÉõë×KÒض];Òxg•¤ñò¥K’¸¸8©TZ”ÆÖmÚFÀ;«$1W®HnÞ¼Y’ÆVúú¤ðÎ*IãÕØXI||¼´XK==Òxg•¤ñúµk’ÄÄÄ’46oÑ‚4ÞY%i¼'IJJ*IcÓfÍH#àU’Æø›7%wîÜ)êbaa¡nãÆEi,ï  Ü¥ñVb¢äÞ½{%ilبQyoåìvR’äþýû2™¬¤ŽEž?(MV¬äÁó/Ÿ+ïWÿ,Oß… Ë{+þ²JºÙ@yy{?2‘¢¢âóÿ–<(CII©ääáÇ%µ+Å’ -–~\ò_…â릓Fü Ü\]-^RÞ[ñ—UÒÍÊËÛû‘)“Æ¢)¥ëø¼ˆe2YHIrròË-,“ÃWé"Þ6''ÇeËüË{+þ²JºÙ@yy«?2’W)È2i,úòÿO M¨ -endstream -endobj -282 0 obj -<>>> -stream -xœ+T0Ð3T0A(œË¥d®^ÌU¨`bjb¢gb 716²M,]= 036€ª¶PpÉç -BkH¯ -endstream -endobj -286 0 obj -<>/Length 26788>> -stream -xœìÝ\Óhð´ZölAEÀ è¹÷À½O=EdŠ ¨ˆ‚€D•! ÈEÔÓóÜçö\§"*î‰ -”½Úmó¦-£ÐŠ‹Âûÿ~>wBHŸ<É“'¿æIÒâPE€MòÓÇÿ3‡}ô Û¬.:(É?ÝÂájñå‹,ˆCÿï ˆCÐqQ†ÌÛ´zÙ¨þ=¤Ø_Þ=KXù/õÊqvZ…ý?$4ì^‹u0ìÿ¼þÅÿ3@Ò@‚ŽIÕÐêÊÑu2¬¼Ä°COséÝûH´Š|ù E5cR2xf5[œ×¶6›/ðcA‚ŽÉõâÝ•]Ó¬&zßÎãMÁp( %ºmØ6wÜoòHeæS^v¿g°º¬Zö׆eÓ”™Ô8«½¿ÖO¯Çlë¢Î{.œc:?ôyóÅ -Æ!^JÝzÓf³i#;©È佚²ßçà…wBKþU €ŽæÅ‹,;;‡ëׯó~522ŠŠŠÐv‡ cºÿì©?¦_¿f£,Ó„«Û†SÆîñ¡Þ:q· ùbãpNèÅÝSº<8qè\µû˜åfFê>“F¥åÒKþ…Û €Ÿ®µÅ73ÿËÅŸ_œ×B‚Ž‰‡£ûõ+l‡·Ÿ>Q“"`1Y„S{þä:«¦Èð·±H]VMðÛ§™YP”¥oðï%‚ƒœ¼) ÷FcŠS¬`ÞzòDCšÀ_±ÌóŽ,€Ž¤µ%øÂoKDq^q:&Þ`髉>K[›[‚¿ -ÒÚbo>yB–&ìv²¯=Ú—'+àvÐá}C°}sˆ"­9§„8Sí­4̼„°èg¹ ݾ£ÅXG¾4K¼ºuåAìŽóÈtO«ÁÔ{[Æ-knTsåñ“ÎDÂ>ïo‹?ž¿ôXpLk‹¹ïüÞé]©wÓ÷¿Ç–UÿmÄ„n··Y¦½‡8ÿZiß<Ä -g‡phýƒû EOiVîû¬#þk"þ¥HÝ6îògô›B˼~j“û®æïyÁ [µ{ŸõTu9izáécÜgÀ´¶XsäU½)˜ßQ‡ïy-IÜǾUsqÈ*¹¾qëéBŠž:Rü%Oq~Dø -]¢°RoCwœž¼ÁÅ@®ñÏ´,§¸ß÷ Wjy/Ä!hQKqH{æiìÝ%,uU7¡{t³Êÿ³2ŽpL¦ØÂŒÍ)° -̵ºÌT–#p~S0´Ó/½½ dÏHB†“ÉþEɇÆ˾Ýï÷×5†ò­® ¸øæ-ð­Øeÿ¯ô¸,Õ«sÍWÚˆ=1.=Hub•=JðõPÓYW -ÎΓêoáçk¥/÷=GŽVβ‹*i)¶œ @¾y‘Oç°d{]aáÀxÓÐjˆ˜µÉ!fÖdÊuäŸÿêÆ*¾êîs²@³»R”«¸0&ÊVø‘·¾2ªâm'þŠÑž‰¬kHÊ>&Æ6oQ3qXõ.Ì|u¶Kâv#U¬Ç²éˆE–›ó(³ýFK¿²jœÔC›E;ô‡j>§²èÙŸMÂö.ï&Ë®xåæq¶¦›ŽTµ¬nþÓ¯>i¡X÷‚]üï»w–)Ïc ÷µÕx_qZÔú8Di¯’6¹¥P;éIþ(7Ç?Àn "^èÄú8”ùrf‡[‚ÔŠ`÷©„T´"êkÒܳäýÊaÎŽ§ÞhôQVìá´cÖõë¼ï¦Rþ®Ô`u°ç Mi¬lë>@-«XV{ڦ틵«Ðº8¬záìyOVaS_åws ßöG'äs¼¥ãÏÔÍý°÷Ü,ê_6+®Ø$ï£\óåôŽæë³mæçýN¾÷H=8=™>" Â[ãuéšÊõIžcU%XÕ»ðEö/6Ý7FEà%¬ Ð’;» -oõö_´MgUß¿£R×"õqˆ4]µérÏüøÚÂkf¬5_K%‹»Û¨2–”ò·ÇaƒcÍÔþÜw+Ý'Ío”rã#¯à6oˆCa-‚T}:¹}}Ø3¹Þ]¤ - ÔÖíY|ÖCÈŠ¨Ð…ïäóýô‡kea‡ì”Ì"C¬»Ë -«­Xû˜ÆÁÒd±Û…¶èüFùTEª~ÿ^ÑdoU9œ°o~Õü]Oy Y#1ú‹ÈÁÒª©W…fû êÿÛ Ñ3æN2P&0sÿtXy{q´ÿduìç¿oÚÄïŽËp4X–9R‰Ó¯~®Ìp1¯‹ÃyÞš[S¶Ua9b¹êɦ¿^±ËV¿w‰ß2J-¼¼ÁÔŸ±ëÏÐ^/VYÄ[%… å½ñFqBÞZA‚µ:k>'.±¾·"iï 2®ä–÷â@JÈaÝ!{ÖpâÐ!~M–Ÿ÷ß¼m)}ÛÙÉ<»û½µ9gar}œÌ?{GñdÇK=²7 ³<3Z;w:ncsË"n× ¬×´·»n›´{$îÕì *›Óvc}QÄVh]¢,:/Ëéq¬Ü6öÜRýúóÏÚ[_Z‘¸{´23;v™ã§M‡7÷#ŠQŸ²{fq+‡WBê{ruÎ_ÛìÃî•‘ÿs¤„gÓ³e± éÖܱþcÏÄÄÃÚÒZE}ÿ±¸š“RÔéÞ…ÄÖ.”LÁÂ[¿ú‹| ÃÔvÚzèàÌ"_nZO [µ†¶húÆ%ùР×+›V¦üaÃüßÐ4U“Ýìöeô 0xìÌ?&ª„ïøÚ:Œ©:!øס•G—[þ3?6taiìd©†…“¦ Y‘Ñ•IÂwòß=4}Ó¶©²¿¤.±Ëô9º£ŸÜ·îcX -”¦óT ±Äšµ^Þëè¾éHá?k—~0Þ”pªµ«&´/sÖHŒþÒÜ­4hMᛌ‡™OîÿóçÙOü· |á¸p«âäiÚœ.„–=¹ølDD‚ƒFVËqhi“Å™HË\kº0>¢o¦½EŠ}êNò¡Å×­—¥9¥†þV~ÌÅ:¡fð$£Q£Œ&Ñ•RqˆCТÖÆ!ZrÝzQŒeZwØ ;RNŽO˜øÒN`bâ|¹GVsÜQ9%‹] »‘D_yiáH±pƒìÆÀÅœþLU)Þ±,DD¢%·lÿðQ˜2S‡s¥]úøüÓQÑ)ŽØ!fa¨UZ¬‘à•˜h‡lÚ›³1Ñ?ú\ÎFè?’Þ¤ðoY},£éÑK\ó<-úkÅ–ÎaI¦ŸW [µgÍÄáhFzÓÊ|g"œ#oÁë‡gÞ½tü̇A;R}>·R1r·1²ìþšlþyÕ¢ƒËŽÄW«ßAø+V»"1žØßÉÃmÓqæ¬|¼Úd6ç8a{š¸q(PÚHºàvûÏjAȲ#±ÕðZzkÅâCv©{ØëZ¹jBû2wÄè/b=hÁx¶ØññÆ#5ëMBÇz¹÷Wà‰'jõéÓ‰ùXŒ8Œr89T‡næ¡óâ"Ã3}OÍZ!c>®4¿ö‘½o÷}qXך•]MöÍOŠzÃŽØq(¤4íö‡q±×ÇaÍšV®šè8£¿ˆŠCVYÖËÊîú8ƒ9ì’ÛÞKü‘€#[ÕÏØØ] hwä•E/aUdOÝ̓&<Èé<4¾Ÿ›‹ÃÈQŒv¶WæØ3¯ ûý'Ë(ÒÞS¡å,¢"çj)ãUÀ’-äà¸:M‡x!A‹¾e°ÔÂæ¾ubð42®ä¦÷âݵƒ¥‚yƒ¥ŽG‚pÉ.>OÇïÞ½ÌP^øä߇2OךNŽ‹M&0sÒ–[]Y½o~m¯+fUe*[¾ÁµUqXñÐiážYI ³È¸Ò·š¸¿v=‘ÈéÅHõ§ƒKíoÑQiǤˆØqêâ—±ˆJÜžüÒßÔ›’´œ¾Ôòâï‘–ô áj>'/7Ý;>êÄöaJ8„™›¾riRO¯¨µã)ÒœÖøgnóÈëø¾DaíÒ mZ¸­Àa¢åÕçÅai¬.VËR©LâÂÄTk™?…¬ýI}[¶ÔXRyÓʨ¿l˜¿õMÃ*}ö‚ÖÀwä-¾åiê‹ì9æ§ñ·ŠÑj+3†qTð¯ø¼´å–çÅ„-ê*S;¢Èx*¸"£+“Dîä?3…l7ÕLÎ`éæô}Sԑ«nK£†Œ7ßhíª íËÖHt£ˆ¼³ôS¢›Kò{’v%´à}ŽÂ¤µë¦P¤«>ŸÙãþ¯«-WEÍEG†9÷©ÈYçs¹PFEß}ß™x·ÚŸw'¯‡ãTª³OnŠ¸_®¨ÞmØÈ/W²<é>p_\ ¥§Ž+|W¤g»×{––tÓŠA‚‰‡s­.U+Èñ‚LÎ`sb@—3^ë’©Z:„/Ÿæøﲯ½•Æ³éÄú[iä+žÄ¬ÛpgðŽ½¶1ïŒCåŠGû\=/U 6†oÖ¾èòß­«<#/)n÷nþIþ-à}`Åc —d tqeø®Èë÷fÉqÜ8DXy'W,ا±ûÄîQµgoUŸOïj¶>ì¢kk-wtâôä·…ÝB·ü®%ÅøxÂß-ä¢×•XFEôçÎ:›Xh|`·iwŽû ÅŽ„GÌÎ:j„Šü<¤û<'o{#5‚&/,\à0Ñòê×Å!‚Vdø-²:ErH?b¯‹ -Y5™ò†¶4I²áo©èß2×5­ oþp¡O24wg駸5ŽIoeµ»*£ùï¾*LvvŸÊ9ò -VŒY+Mµ¿’ŸNø­ {*×K[º¤XÃ-"`"dE8·ÒˆÞÉV²ÝÜ[iú’?1ekÞ¿—_dc ¶âͯZ˜—Ú_›š[#Z,eÑŠ¨•¨¼†¦:ÿÝ̬ÊüÜâ’š¦º°‹{­GË -Z櫼'ÞZWaW•R©å¨EKYøͽ‡ Eßø©4,zA^ª¤EV ´0Q?ø;Xù¹%5DUM ×ʾ¿lFAnªÔ©ñªVŠ^ê”ësØ«o£{)Zª»ª„J­@)Z OVqæUàU?ËR_$ç9^AƒÒøS?›@háM|ûöo妧2­¬‹VH- ¡ršŽ¼ÍVLØ_ÑšÒ¼Ür‚J'²bs«Ò&;yÓíÆK¬£‘úŒÜJ¢¦¦2ß³­_µoX£6ý¶ÊLïMI²ºZxjÆõ·ÝÝ"¼'©‰SqˆCÐ"ø¶SV飔˜´Óç‹Ä…™vjécx$L›oÿfHrÝZåG®ˆØpñ“´íg–²èÔ÷¯>TËhö4ÐS•ó}Ä!hÄá©ÊÈyœñY¦{ -ñG~´Ô/ÑæÛ¿’\·Vù‘+Â*}ò([gP?å2æØzðÞ C‚8”ˆ -´-I^}I®[«t˜A Aq(h[’¼ú’\·Vé0+‚@‚ -âP"*ж$yõ%¹n­ÒaVi·q8iÒ$¡Æ—A{q(h[’¼ú’\·Vé0+‚@‚ -âP"*ж$yõ%¹n­ÒaV8Tmž=s¦­khOÚ]¶u€¤›9kVm¶¯øQ°7L‡þßA‡Ä!€@Ä!€@Ä!€@È÷Äaþ|ŸV«–‘O|jÃ¥è` ˆCà{â{e[]klÃEèÚk*))µÉ¢Á2xðථ4hÇq(™ß¤ú‹¿âµ~£,VmˆC€D8üÁ Åq4?%Ù,Šà \Ó ¬â7_u=‚"󽕆8l“Åý(‡Ióâ–å½Àê¼Ô‚ø£ d±ßYÔ3ö ½_uÝœž8¥`«SÜï{†+ᄼ°5‹n>Eæ±ø‹eþ{ýUo£QR­«[óù„Õ!ð|µÂ£¥ÿÝx©;fÔ·½Eh1Y•ù9ùt‚ES„of¾Ÿ ñÊ6q4?'¯Ï'ÊQ<㶔Ç1¿¦Ù9_/¬(±NŒŸKÁ±Ø8ž“JhM5¯•× «Êj_Š2+ -°iÊZ‚’ùÝ\ÒžyÎYzVÊ8ùOOC^Ÿ¶žçù²ë¶?SÿÐl®\~åÿYG8¦GSóµšË'¬bÆÞ]ÂRWu#²+³âÝÖýÕe}ÄjÍ}N1sBöŒ$¾Ýï÷×5†ò?hq¬âÛ¡î>' 4»k EÙ¹Š c¢luÑ7­[ -£•ós–[t5Àsÿ•'MRŽ{ö! ­6Ä!@¢üœ84ßÞÅJûÊ­F²ã¬7³ÍH¦ÎŒŽŸüu­y˜q|ÔhÜý`ÿûÄîeÊóÃýCmõˆUŸþÚé‘%׳3¡¨PÍ5܈B3‹n!×ä“ä)Þ‰~ƒ°<>¼b嵂Šb»”dN²hy…5$rÃéÊÆÎÒjOcê~n‡(‹“âØTÁ×6%N:¨?‹pñ¼ÕsØêQªì,Šó)½ooz`YÊÁQʵç±(³,?.M&«Êˆ<¯kfqUoCL?®I ˜ †½`ÓóóuMR9ÿRðØ¢ñ„^@-•!k)IáVmT+<*¸¡8?Ö”RóÊP9 ²š,wQÙ™¯«5p'VyUï:qh~Rúëº}ð‰¶C'Ù~g·­\‚§4ÄáÀ7NñVI!CyYƒâ¬œtk›ËDí›ßE; Ö°pÒ¢G6[ŽÃEÛ´m´ÿ¹a|hÏ(ÙìËMlsÙãɳâ’gÒ:{ÞÄ“UØÔWùÝ÷ýÑIšUp~ùŠûõ•CÒÛV‹SW§í„ÖÅ¡Ì—3;ܤV»ô<¹®ékÞbjnsªÞ½ëÅÄÁ¶•°4©xäd²QÒ~å0gÇSo´ ú(+öpÚ±NëúÎõ^ÈwS)Wj°:Øs†¦…5»8úsß®tŸ4¿QÊuiŠ–gøñ-eÓÔÐ¥¾Ý¨eËjOÛ´}AÍ¡&G‹Á?¿ãºÁû]o6ÙPý™wv;ùÞ#õ༳¡ˆpèFä.‹ñ6Èl-#âÐ>ü¬84žî°KÛN÷xúÈÐíj[–ìá‹Ã‘ôã.Ö 5ƒ'e4qˆ®¾ô–Ãâ˜%É1Fªb\Þ#} ‚7¼÷:4öÀ.$kÿn~+ϯÚ35.yžF5/Ë ZVî ûn©~}‰¢ãÐ!~M–Ÿ÷ß¼m)áYt×Ê ,¼…8œgó/]š²,"ÎÖPŽ·¦¼8L>4^ꑽI˜åá˜ÑÊ3÷¸Í-‹¸]S4ÌÜ“öv×m“vvÁµ¹ÅU}Lv³Û—AÒ4`Àà±3ÿ˜l¨B@ÊÖ/…s<{ƒÊæ´Ý“Õ9cȨ°ä›_èû†Yfq+‡WBjßÙÔÖâЮü´8 ‹5f&,Yq¬rwj`ÿw.‹ùãpœ -ŽUùéñí»woœ?‘©·#Á£g¦ãCÃȃ#Òlwj¯ÔMO}`‡šé.,ç*¾?ý÷£Ïål„þñ#ÉóDÂTÕ"q8ÇU‘S²Ùµ° «›öFൣ˜-Äá‚ueC(YOzxDošJáÞ¥#$Ñ’[¶ø(L™©ÃIvéãóOGE§8Öžv‰½8„3ŒYðúáÃÇ™w/?óaÐŽTß ÒÅáÂP«´X#îFº‚•-Äa¿ò£NËb«‡N?zÔ„IÃôäë.ÎBÚ•Ÿ‡æZ÷O]*2g†+cu£8M¬`9Wį–l!Ç-“>emsinÄþ…]ejKq´7·î÷3¦ÚôæN±â0*Ñ„kºìhÅ -Gƒ¼sZ„ÅaL¿ä%k«\Ã]ÆiË12Ýíš?S½ø‚劫û÷“CÐâëË—¤»òâpÁÎÁceÏÎÚ`ÖSÇxƒÞ›¾–,pgNË×C¢Ç_v_}ZÇ3Ús -YJx^·^°ÜfŠ¼7xb'}ýNÂ.WŠû ãmÈ"û Ïc1ýÞ6ŠC¾Û…„¯ ­!ÙÂ6”ªø”qûökgÓ3ºíJñ¦„ç-âÐŽüÌ8ìRµ«òQ£8Œè—¹aEp–ž:®ð]‘ží^ïYZÒŒO'w¸G<“ëÑEª´DcM˜¿Âƒæ+36¥… jzO˜qh¡U~÷Ï‹…ÃæÍÔa>ZʼnÃH_“=³’f‘q¥ÿn5qíz"q&™þÈÕdϸCñ µ¢kžÆ[é{NÕ];<„Kvñy:~÷îe:/W/|í7ÄaXê*Ýš'Ñ..gô¼zL’}R‡2OךNŽ‹M&0sÒ–[]Y½o¾6çñ ½˜E~?M3‹c•>{AëaÀMQvñ-OS_dϱÝßÕ/¥IVÑšŠ¢‚âJQU“¬(Í-€wŽŠ¡¢´j‘LV”â[\£’ë&Ò -óŠªIXÍdëN8y…à œšÖÈ{…ˆð«H\Þ­¦’J>öô>¾¿ÿ?6f{ózËWd”(6=;Ô©¼¾Ëió±—å,ÁáI:s£S|ôåPƇS»½Cþ~VTƒâðŠƒ¼FÎÑÄÓÞÛézáU!Èvk³mÛÒ~ôsÂãùxí»«ùœ1[¬Ø.clü—õ©äÌüJÁhN7ßýZ-Eï½kAgiTHÉœ‰!^•3Qœ´zÿëý]¦w’©ÉN\lºïk×5iIK´éwmæ¬z,ÿGÂ1¯Þta+"þfð#H^Fl3+ñcZlrÎû Ùɹ&Âÿ©IÚ)^Y1oÓ‡nû|Ç*—~þ¼hàÜÙÙ¯÷-^–ô™8ÀÂÍf¥òÃ{•ÉÆCˆoöšY¦äk›ûúÍUÍØë¶çžÌ¬iŽ9Ž …Å!’söÒëÎúzj„’ŒCž¾—éoNùߊ>Ϫ”Z¬6Q»úO©–Eò×.…”œ¸øŠõòÔ\•)®›P²úFg° ÝÆkäpãPÇíh’YZ}z¯ Y²€_LãplTìœKû58DnrhôôH‹µ™Mãp%åÅ–…¶ÊvÕ7èÑ]Ф… Œºâ?Å,1 û¬±$ñ躞¤ÚB«?r&~"ô9º‡<®*ïîÍÇ4MÓ„°¾~æÂâ—w-12ýÖËœRFMeÞ* ›÷¨Õk»>/•æ%ó6`=tœc?îЩ*‡K^à?í‘wìŠUršs7bÅC×y×kúŸ<8º"‰‡ºëÓM;7Ä¡—Î+Á!Áx)üb’‡1'ýÝ&¶§Š;/‹?¼ )yùøã–Ëä©LY³i!9+Ê7úËp}ZŒ‰VÙe»ù±û,u³P¿ ìì–&'õ¨BVd¨¢øÛÀ ¡q8P¾vZrShR^z™;\ÌfpîyÁµFØì -´2”ÇÑßžØåzöE “ÿVš×é;}Â/¼,e¢Ž §9Ðtÿ~ÓvÂn¥éZzÎÇÖï|vN¡÷´iô«Ç¿Š>; ('¤äUZÓü½\|[ÎBqÒjýæºù¯Ù…ˆ°Ëì[é’ò’†(LŸUyåÈeî`éka+‚on;øá$)[‹E/É/,«‘R¢PTˆ|ÂyÈ¡†WÖÔäЂV˜[P‰WÔ ¨Ê5ÿ¬=«’š[*¥®¥F/”„–̪ÌÏå[>§óú4öŽû/ÂýïüùóÐÐí3ïOg«x÷ðuã;Éà”ññßKýgõUÄ×~wZµ,YS•÷íghÙÇ%‘KŒPBx(³¢Û¿”µ8çy¼8L=з&¯¯®©"Ó4åš[–àÞÛx·çîçÍíºX.ÞÒy_âJ="Â*{}!ÜcOæÄ°˜U}HlŠ¯ˆAë~®-œQ”_.­AÆ -GYT†<¥nñÜð­ q/Ö¡„‚¾#ù %Zþ`Ó’]º! öºDì—{,ö†&.×Ì?³Ë#꥜®rŇ2}ÇݦS¤±£Œ±÷þªÏ‹IÚS6nçhì§ÓœÍ Vü¨`¼;pYo9„ö:eó†#T-é¯Ù²³·í° €–Þ vñ¿OìÞY¦<1Ü?ÔVXýE°|Ñ•ätéiÓ9µå¼—­}‹‹ý¿OŸ>/_¾äônwñâhèö«êC¤¹ã‹u©A£•qMþpÐÕûž¬Â¦¾.г߿y®VÕã®Î§ßhé÷QVè¾r»‹ÆÕˆ,¹ž E…j®áþ}^Ú,Ú¡?Tó9•EÏþ¤h¶wy7Yq–… -Ù{ñMv{SŠ®Á_ræo¾®ÈûˆG¡«í­õI[ ±3Ú²»¶K¯J ˆ>°Yäß{9+ŸUñ±Xõ†>7£.Vå¿gO -ŒpÄ[zÓ^F,ìP"7¬¨¾S¿ÎÐwÚÄ¡ä eù[l"¤¬ëE,¾¾z顉ÑÑóÓ+o/ŽöŸ¬N`æþåèxÓ&~çpÜC›¹žª^©;'©qÞbuÎFyÃAÓÔ‘¢ËîVñCÃcŒÑ#–÷-ãöL×À•ÞÞ²t98É™òt•E¼URÈPE„ófÅX¹ -)_QäPÖˆÓ¦NEº1Öµ}ƒ©S¦ðú÷ÅK— ¡Û¯²;öÆÁã%ÕŽR4@Yt6^–sÈÊ=é°êášD,P*9šG,KŠ©„0sÒ­m.ÿµo~ì•ìNšþÐfž·æÖ”mcUØ_ŽX®z²)Åì_Ô²j>' î½=˜øw{f‹»nÓ8DKoÙ⦅²ÅQXÎóÖÚ–²uŒ2ý¡±ëëùQ‡ìô‰…çV.?i™>F¥RH/û=Ç¥I‡jfWhß᎘âx'‰ÐwÚÄ¡a¼ Y²¦xsê¦N×—ŸX`ªô=‡…['OÓæth´ìÉÅg#"4žÚ˜Xžrp,ï=5‡&áÉ'¨â±ynÛ-µI ¬q[»4%zœ -6Ke†«YÐÄèØYì?]¬jO25Êhâ]9|émaå‹~‹‹5â,ö8PÃçYY††XNž2™×Ëq(réò?ÐÐí—È8dÓÞž=tæñ— -6Jÿø‰´!ýÐuZ}baã°8fIrŒ‘j}&pK#mR¢°°Dh™kÍCÆGŽá;±,´ô¦½àÞ;O>ƒo·G[Þu…Ä¡­ñ¾ "ãÐ,Ò65j„"ÂüzÄÒéWò&Y„þr§Åöž¡‡Œ;1{YR˜Î…ƪ¹ÑRþ¾S{~ˆã;U„¾# %IuvÜ2ç,—]C¬ÿ×.>h¬rùM{“б^îýxÇi WÛ^wKòÅÎSÑ’›6–Çœkã°¶pì4×Êù­WÒ†>$„þ*p©¯îþX“Î Á^–„…gãå9DQ¬¾Ã;A¬ËAè;’âP¢0sŽÙX&ËI1Õ|S|‡(à°žicwuþ yÚ2ØŸYôQE†ö iÎÙ¨àudÏd5¤èÚF«˜Aá1‹Ð´å+, œª+ýwËÒ Îp“ZÎ"*rî9`¼ -X²…·Lú”òEßOƒ5âĉë]—¯\™8a"ß­W ¡Û5Þí-º¬¯…íÜÛ[*ûÏÒ}³ÆtïÌØC3ȸ²;~æß8¥ÇÎШzên4ñàÁ™dw°ôÒ܈ý »Ê4 –6‡¢–Õ«4Upïå –òíö»ÿ®Ë‡Ì’ç½ö>ŸqÐ¡Ó 7ó½c"cæk!Å7|Ì|i'Ä‹C^fªÆhÒ¡VèȈڮMúÊ;1„¾#I % «àœÃÂm_gÄõàÝ»^õùÌÏð‡x]ì=95Öô¸€ð.òjdת?~”Ÿ¿k÷r}î­4>šÚ„œ¯ò³·í´ WzÝ}Ep–ž:®ð]‘ží^ïYZÒÂÊ'‰¬§KÏ黵݇Խ×å=?Å™çú5hèvóðÃö€„Ǭ.ÚJ5ù¹5=M¶o[Ú“õxÿªWdô»âÊñÚÈÛ‹â£ghà*2BÖù\.”QÑwñÒº²Ã=â™\.R¥%kÂü{¿l!E,«·,]`ïåÞÌÒè±–v]΃¶Wj”¤±“D1;ßÊvÞoŠ”þ*ÚÕù$CO›H ôÎ}øÅçˆxqØ´—õ®º!Ø¡DnUè;’â°=`Uæç×Ô4Õ›¹:Áª æV45•´`Ñ 9·ªk‘åë^Æ®*¥RËQ%Š–2ß]ïb•Ï5âx£ñµIñß×0âƒ^»~º`UäUÕµÓa3 -s ØÊö'hMY^nAµ¹5Ô Y–°½Wè+ÅÜucWå!ªšj¢/ 4QûÐH¸>½Q/Þ¡„¾#ù A+`h4n\Ýoõ£=¼§§PîeäÆÍ›ÐР£ù¾#ù A+Àç.‚ÿS¬²§Ù:û*}ë§Ú@ß‘|‡Ä!q ‡q ‡q ‡q ‡q?ÛóçÏÛº -ÿ¿ Äœâ~., Äb±Úº"ÿ_£G @R@¶ ˆCðÁ§òð ÛÄáÏÅÆvhÿ+CQ‹'šÿêÏŸZ2³èÎ×½ÆP—úÞ:´kÄY³f Læ}›7Šã|¯)rælëv ê ŒÑ»v·ïÂ,~póU×Ñ#(2ÂÿqØ& ®óvsR‰™K©ýÖ3Æ«ÀÅ«ý’6õ•û®rY…çW.ÿÆ’¿û‹IÅÇiþ™3ë~«ýon¢œo3å~§é¹³ç:@Cƒ6±nÁ¬§4,]*ŠJQ%5E)"Û{mLðõoý–AáhYÞ‹·tÞ—¸Røc -¬Ìp13Ž§"<¹EÅ¡7ÁÌÒܺ\'Me)Ü7Lü ®’›k–„‹Œ7×–æüZ™¹uñVµàdç$lï,ÏÏ£ÉÉ*2¼Ý›wv‡Ð ©¥2dM9Ê÷6W °Kn®û¶’µpm±8L 7`äU(ņÎÁf展55äê&hM5¯•× «ÊÖM(_$¬§OŸÎ-Ÿ“~¼<ä}Ÿ779ÿ?¾44hCŒw¡KÖ–ø¥zÈ6ÞÕ9û6‹V˜WX-KÖT%ñí­(³¢Û¯•µ( -„º)¢÷jqØä%M†gøûlÓÂ[‡¬¢«žû¯‘à ñÔÆôÀò”ƒc•¹=-»ë±"vbDØøâ}Þ¤ÀxÇnMßÎ}cÉXš„[$œ ŠÇæ¹m·4Ö&1°ÆmqìÒ”hn÷¬Ìp5 š;‹ý§‹uBÍàIF£FM¢+‡/½-¬|ÑT°Fœ2e -÷ǺóCß©"÷ŽšK—ÿé ÚJ£8äßÕÙ´·çcyü¥‚Ò?~"mH?4Yê¶Ãâ˜%É1FªµI„¶¼W7C/éZú·ÃÊ«6±»—%ZºfoJØÔWVøœäç߇´§ ¼u#Ž8èÉ`Ùø!ÜÌ9Ç/̓½M̉¾†²?¸Ú?ˆÃŸ¯:;n™s–Ë®¡Öÿk4V¹ü¦½IèX/÷þ -¼¾€'jõéÓ‰ù¨É.ôËvèlwÊr5 1í,x#è·•\‡Ñ°ãA³q8O“ÀªüôøöÝ»7ΟÈÔÛ‘àÑóñJ!å“D^†Àqò¤ÉÜ{fjOër°ö$sùòåÒР4ŠC¾]ñv¯ÅújçýNcµåªžl\¼gBLÌté;q(´×ðïÕ‚q(ü%HÑe—'E¬ÉZ½¡jG¢K’ˆ9Y™‡âð`æ³±L–“bªù¦øQÀ1sÒmì®Î?4O›sŸ5‹^Â"ªÈÐnø¬þtÈÊé_:*e6]è½rßT2w°TÁëÈžÉjHѵV1ƒÂc¡iËW>X8UWúï–¥AœÁR=´œETä\ûg¼ -X²…·Lú”òE_”Çqâĉõ=å6ÜFÃq¥ã44h¢â°ò‘‹éÞ™±‡fqewüÌ7¾qJ¡BM·¶¹47bÿ®2µƒ¥Ôc-ìÕ‚ƒ¥B;g´åŽ›å®½*îô J°Ö•5'ý›î,,5³µ9}W“qQ1'Â`© ˆÃ_s]}ᶯ3bŽzp¯ÿU}>³Ç3ü!^{×JÍEG†9÷` ->ÿÀÊûËÎ$DcWúÎJ»ͷ”̹³ÆOÇP#»†Týñ£üü]»—ëso¥ñq?LÕÔ&ä|•Ÿ½m§Í¹Òëî+‚ ´ôÔq…ïŠôl÷zÏÒ’V>IäŠsâpüxNîÕV‡Ô'òž=äÌsýZ‡ihÐ&DÅ!»‹5Cëîšk"ÜJ#â°í°*ós‹kHjšêr"ž’ªþĹWmS’‡aëžRl¹dÎLÔÜ -’¦¦RÃ,z!çA -²|ÝËØU¥Tj9ªDÑR–iè¸b•Ï5âx£ñµòßRÚ0ZŠ^»~£ƒ74hClFan[¹SÃ>Í…Ö”åå–T;‘ë´¯n þKZY¸@V>Ùh±úNqEI¢¨"¯:tê®þòì²G‘k<Î0:«•ý=`OÝ3bNMAJ(VYÆáCég.ýqpÿ¢N?ÿóc~¬Æ«û­~¤”÷ä!ʽ¤ˆÜ¸yóÿ¹¡$þ§Ò Ì²|*ƒD!+5zâ^܉€Ä¡„B9™™_eôúéSˆíwç…Ï,àÀ‡´µ ˆC,‡mâ$ Äa›€8ÉqØ& @²`qØÖUøÿqàÿçÞvÑp8qo^„8 ˆC8ˆC8ˆC8ˆC8­_ðè¨ Û‹V“O#(Q4UIœï°fݹñº×¸ê?î[Ù,B ˆü‚lféëÞ”Èö?² ©_¿ˆ5â¬Y³&£Âùê_Ê)êÌÙÖí -VÉÝð[ORôÔ‘â/yŠó#ÂWèÖ<°1‹r89Tá-…–å½xKç}‰+õˆÂÿ`éQ0vNÿÎî!÷qˆ¢l,‘Ú0D±(äF"rîì9hh@»qøKU½ 3_í’¸ÝH•€ÂÑ -5Š,‡©úÖä•âÕ5UdêŠÍ(Ê+b+kjÈx¿³X8›A,_ÿ#ÚøL°!e¸³á°bêKF«²SmÜs½c\zÈò -hºÑ°Fœ>}:·zœôC¹yˆýƒãþ‹pÿ;þ<44 Ý8ü¥è/üMÝè›R¶ŽP⋯Š6‹vèÕ|Neѳ?)š„í]ÞM¥½NÙ¼áUKGúk¶ììm;¬Ès°¿½&q«!îõîEV7ÇÇ^ß‹ýÌÇ2hô¨ YV‡O›–¼TåÑŽ;Ï=gvë£×}á/£Ò´&KQ9ÄÊ‹ÃiÓN졼äý¿OŸ>/_¾ä~²<îâÅ ÐЀvâðתú˜ºqUh±Ï þ¿ =cî$e'çyknMÙ6V…ýåˆåª'›Rüz%[:Ü·ŒÛ3]Wz{ËÒ=äà$gü$Ëõ¥~ñvR‡m×>¥ËõÛcÆ<`¹Y%0fYW醥ðÇ¡@É}¥?'Y­/Ú»º;©æ³¥ô ‰¬>ÖˆÓ¦NExg‚÷_Ñ70 ™:e -//^º hw 9´¦ðMÆÃÌ'÷ÿùóì§~‰[ÆKgؘEÚ¤DTÂ’,s­yèÂøˆ~OÇ.M‰§‚eLe†«YÐÄèØyÊï—úéíPðõ)²p%ZÝÏ«Ì}íç͉ëzñg6-9rŒÜ—º8$–Þ´²M‘c¦X#NÁb»†Ï³² ±,œX8UWúï–¥A¼aLvñµUfT¹a[“·v»y©÷}ºÖ†äðñª.ø‰‡œÁRaKY¬'NœX§Ïå+W&N˜Èw Çhh@;qøKU}JtsI~OÒ¼ÏQ˜´6pÝJÕ!¡¥Lâã~˜ª©MÈù*?{ÛNîM.¬ÜãKÃT‡ŽR*»½zÞúbçôø…ZÏçÄŽC„sÃŽ¥ˆÂ‰Ãñã9¹W‰8ÞåC¤îÙCÎ<ׯACÚˆÃ_E+¢T¢òšê²-<ÙÀ¢rÐ"Ë·ôÄwUHì¥`8Þh|í†õ÷ÓpÕ–¢×®ß€†´;‡ °F47®î7n(r<ä>yˆr/)"7nÞ„†´;‡ à3KÄ!q@Ä!€@Ä!€@Ä!€@Ä!€@Ä!€@‚VðtT‡B¡Õ%99¥8åNZ*2¸–gÿQ˜Ån¾ê:zEæ{JAY,¶ÀĦ_OX?O 4¬!ç¥&45â¬Y³—ˆð¾‘ó%ˆÈ™³­Û1@@6Å*ýïÐæGÞËw£ ¹ï+{,öܺ|ˆ²¨ïÅe¼ Ýqzò¹Ö,CÔ«hY>Nq¿ï ®ô팖Ýw[¾ù) ׊¢RTIMQ -‡4Ǫ”ÞÌe4š(ÛÝÒLîðé>m{Êb¯¬þœºÊéÖï‘{çiJ‰(œÓü3gÖ/Š÷¿Ü0D9_}ÈýÄsgϵ‹†~‡1s­²Jêî½nŒºÂ,¼¹Ûfû»¥±á ´¤”ÍÂÎ¥ðÜùjFË8.‰\šp`„‚ýÊÆέð­ ¯‚D¡p§aNѯjt.†•€#à¹!SSFÍ+Eå5Ȫ²B˜E+Ì+¬–%kª’ðÂW…ñ.tÉÚ¿T/Y‘YEÿxZÅuße׋êät{NTÐ-QaÈmÄéÓ§s+ÌI?^ò¾ü—wö‰ýwþüùvÐÐÐÄa#U"¯|¾65x¬ -/dØ%7\L÷F¤¬Ô©¸`c{k}ÒVCì”®ì®íÒë’}qû]O¿ÑÒÐ}åÆ)á+ütú‘³ÄêŒw.ëM,jéUÛÝ+Öbe†‹y˜q|ÔhÜý`ÿûÄîeÊóÃýCmõˆjyÐÕûž¬Â¦¾.г߿yn'iÁu'±@,¼ìmu°«ß•÷{ó¢yfÈÁ‰ÃiÓN졸ºÓC¾AXÎIâÅ‹$¿¡  ˆÃFÊîØ?”d®]—/5Ù‰‹­o®K^s±i°¥D9šG,KŠ©„ læl”÷84M)ºìn?4<Æ„t¹…Wñ«‹Ãoœ,â­’B†*"œëy(®ñÕ<”Egãe9ÓX¹'V=\“È-¾ ñâ+£øª÷RŸ;ìÁëâö̦ˆæÁqÚÔ©HC¢u#¦8ÞI"öëÅK—$¿¡  ˆÃF¾7MÂ-’NPÅ#hÙm»¥±6IzÞþ†8I?îbP3x’ѨQF‡èÊ5)6ííùØCg©`£ôŸHÒMQ279—2÷š­-Ý‘º¹Å+ X#N™2…ûcÝù!ŽïT‘{GÍ¥ËÿH~C@‡T½XìøbÝáà1ʼó1Þ`i߈ÝŠ‹Ö¶×Ý’|ûÊ!hÉMËcÎÂã0z‚*®>#zÞiáUüêâpœ -ŽUùéñí»woœ?‘©·#ÁsˆbCÜaée±¾Úy¿ÓXm¹ª'ï™3CCà´®q(l¢PX#Nž4™{ÏLí b]Öž$b._¾,ù M@6ÆÌIw\‘ÚÛ'jÍ(uÂ,ú7ØÖïÍ’Ca ´¤*3ÜÌ÷Ž‰Œ™¯…ßð1󥜈{ên4ñàÁ™do°TÁëÈžÉjHѵV1ƒÂcÌUžµð*~õ׉,¢¢ –€ŒWK¶ƒãVè4<{QùKè™±‡fqewüÌ7¾qJýuq8qâÄú‘[”wbØp Ç•vÑÐÐÄaSœ-¶ìL{'§KAò?Òº›zlá=hÒ_E»:Ÿdèi ”Þ¹¿ø ([‘²Îçr¡ŒŠ¾»ÿü(k?CìRõÇòówí^®/‡´ôª߆Ç*jã0¢_æ†ÁZzê¸ÂwEz¶{½giñÝ+Ã.ÏØ¿jãý®¸r¼6òöâøè_‡ãÇsr¯¶Ê8¤î<‘÷ì!gžë×ÚEC?ˆC¡8O9ä–"ÊZ%éFÏATå!ªšjžnÀÎÍ¢RÃõé¹$MM%)œ8¯]UJ¥–£J-eaÀfæ°•;‘囿÷åÃq¼ÑøÚ ?×_7ZŠ^»~£ý44Ô‚8üqxqx8r¨B[×ä§ÁÑhܸºßêGJyO¢ÜKŠÈ›7;xC:"ˆÃ‡Uö4#[g`_¥_zÂöKÁg–:*ˆCâ€8ˆC8ˆC8ˆC8ˆC‘´8d³Xµ #D|Ü5ÊørûZf)©§ÑØ^­üüjNñxç[äÑš²¼œâj‚‚º–šÐ°\Áᥕ -¢:w'‰¿&­$V…[¨|ñ6ÑO×L  }’¼8d§,žß ɾvü|V¥ü0¿#fh ,6çðg—S©t9Rù§/tiÍ^½(DÊâý‰€Ò -¨D2Y‘óµJìʬm‹Vœ¬è·÷DÄXçŒ-¿·Ît»ö¾‹W«ny&3ÌÂan9ZîËGYÒ–[{Ê"‹â@k*Š -Š+YDUM²"ï ŸêfÆ£X•(|_´ÄªÈÏ-bàåÕ)jrœφ8LµÓ¬h\2gvZa^Q5 ›[–W„Ê·¼‰È„æ*ÉÝnJš[ô<¬RjªJQ‘Á!¬Ê*M¶Ñ:Uä3å)ØŸñ¢jØx!K—Ešl’‡L¿ã±³)5¯L-ŽäªÎŠ=¶úƒÃŸ×J“çé>9y¯²×Zö}ï¸'[:¥œ¤y¥`4§Ç›¿ï~­–¢ŒwÞ5‹fjŸ]][¬âƒGAn0ݦ”º–kj~ˆÚÙnäò! _%È ­¦E-è,]ùxí»«ùœ!JžÔeŒM€ÿ²>•ç83Ë›¥÷òìT¦Lç ®ûýLôdŠ¯ïrÚ|ìe9÷Ä“¤37:ÅGŸ(ªd”öæØN¯ ¯Ê™(NZ½ÿ‚õþ.ÓU?ï¨|Ã7F‰ØD'WËtæspËLr5§’¡^•1‚l×±6Û6¹b½¬Q O«œo<϶¥ýè–ÞÓݵïÉýÇo9ñ÷øÉ$/«u–y¯&}aèé/ø^kRã§eÚ,ðyF'u™¸xñ0 bWü ÷€·|qø¬Ji ÅjµÛÁ¡ÿ”jY$§Ú0oݽ#âA•öÒ56úÊj#& =óZäE <âÝy´Ô6é=ÁK+vê5`ÄT“1ZD6UXQG\{ârÎ^zÝY_OP’qÈÓ÷ï2ýÍéÑ#ÿ[Í\­f´j£™æóˆ OØžG#'dØÍÛô¡‡Û>ß±Ê域?/8wvg)%wùdj™š«2ÅuÓJÖAßè –¡ûѨ¥×šV¾a,TÄ&JZD¸$ª’uÛM®ßPâ‡/]Ïspøm+cßçU*윦–'¥}ª’î4ÃÉNÿqxè?åÚŽÉñãNXX¦äk›ûúÍUÍØë¶çžÌŒÀícßØÙPÃ]n;Z7žgÖ4ÇÇ…õKW¥QÇÅå7Ù2âŒÀ¯!yqXV÷ëxb§1¶þËô¹g9/ä¦Fß1D¡Ñ¥8^¾Tš—pÌÛ€õÐqŽý]ü¸C§‚à_l[¸üDE¿ý§ŽSÁÎiO·˜¹3ýŽúõ—ç|/aÖ…´“—î>züôCQ*£³$ñ°k÷2EIç]KŒL¿õ2§”QS™÷…ÊÒ4M8jõÚ›YyaÒ1>¤ò{Ž¬¼Ë~*˜´g¡íß…²]õ zt×4iᣮ$^Ð -”¼S%u‰YøŠUršs7bÅC×y×kúŸ<8žô²qå[ÞD}¥óEU²~»!ÕBV$Í2ËÖØ÷µÒÜ„c>zý.û³¤ÛÚ´$såGö³2dgGîÕÛ¾"ì¡çÈÑ=äqUywo>¦iš&'ÌI]R_Ú1KÌæIëëgÞ°ôÊÇ[· Œ—$‡äÅaµžýN¯1jDy²Ž®¦¡áÚÛŠÔÎ݈Bâ°ö.f†Ë\»›È˜˜SÁ›Ä!ý…¿©[éæÃœ8­ªÁ¥¹W·X…×ÝL×_eôÞœ7^XQ»;]¶3ÞòTz¸•«‰!!sßöø/*Æ GmÞØóâ0Ý£lCF —þ|÷Ìß7ž¼yûüÞ÷tM“¤£ë{” ­d€ª°8 :5ôª…8lº‰Xy‰¬dÝv>OÚŠçvƾ¼‘g­‹–)18yh²ÌÜ8œÅÃðlÒ¹sSäÝÇŠWÔ71îiʇÑØŠ4ÇxZÍzÓ†VCP†à–éýóî_€V’¼8¬½0ÖðDB“;3ÅŠC©÷¡f1_•§9ØéŽè|ÚzMŽWZà0E\Mv’Íú»= ›:úõzô¡KT…I‘'Ò„‡–Ú‘%¦¡_Ôø™’®n÷<˜É Ô% w°Ôƒ;XÏ,M‹ž]}üÄ“®ý µ•ªžE¬Ùr®jhÔ©ÐAtá•ì“½Ûdù‘<•)k6-$gEùF?b®O‹1éÌjTùñãû(šßDÕŸ‰¬dÝv>OKq›²ôœ•ejAgc¯­¦ýh_³îþûyüÊ帾ïô·µUÓyìç¿à[:Bÿ˜&¸e†*Š¿ûÀÏÕAãP¾úsú×°«ï˪¥u,üFßÌvKÛ7J‡°Š®¸ï>ó8§’{O‰´ªáîë§SðTáEõ«<çcëw>» -§Ð{Ú4úÕã_ëO¼^ÉÍÒ{qö?jŒ–ÑêfÝØO¼Ì.f38Eã‰Z#lvZ’ -DTR–ö"ÍßûÀÅ·å,'­Öo®›ÿÚ™]°3)þÊ7~üc0;·àî9DMiFº[·nu}õB\\9DÍ1;†ª“#‡¨)Fº 9„A˜C‘CÔkŒtrƒ0;†"‡¨×é2äav EQ¯1ÒeÈ! ÂìŠÞ›TJíï¼£ZýS7¥ÌM½œ’klëälWò‹ ‹¯Äùµe¯N¦·µÙ›Œ´ö6*Œ*ÿ‰Z©TÝÅ›~—ÔçV¿Þji=TÜ­æßY¡]—_­+Nÿîðo÷õîaßèÖ·Qr/•_²•.¨zïßI¸ïñîM ÙûMfG™•ôWj¹C g›ªáiqú‡~nÕ»—³âúÿèþÛÝÆÍIûæÐïtžià®ù­“ÂfüWáØD•ü[ªû¤ û73Ñùàen/曞?o=xMà¨û- -/}²ú­¿X¶jœýgf»)kæ>çd¢½æŠ6íÎ^1w}ÆñPײ7Nò~^1tvÞ›;÷°-·šsâ}=CGo~è׳CÎå‹v>.KhóþuMôl¿Š›¢?‡…ç· š´dÓ£A“Þµ#ô)»k;.8=yaþësòæÎN_Mï½ëÍõŒÎ‚y)ÕO»¶öntÔÛce»îÎg“•y/Ø Y?Úñו3§øݥݭÛL^>Óùp`µËÏ$ó?ŸÏÆl[Ðö‚¾å§¹~…½ŒimQðg GÀ,ó‡ ß?šµinš•”ÿèŠà îEú6¨Îýmç¹{’]ÜLþ¾hÑoÉÊñå¤Îm™ÓÕÆèƽ乼ÅX×/ÿ;0lUó‹Q㪆™¿¿ë…mÑ/['TØÎCÖ -uîÙ¨¹³÷縻™Z´J9ý÷‚½šê›Í*þY*ÏNABðÀñgü÷‡ônRáå`á_.›rÖªu“¬„Œ37¼èbRm,tØòÿ¾²}}/‹ a^þªûb^ŠÙ3Àö÷íþ¯Å&5s7ùë¼å+«Öúà3ùÛáÛVôµ7.NühÊ”#ÞÑo=jtÔ»ÿ<»ù»ÞêÓ´â;!çwùO Ž7{àáÎ>Üëùþ}Ú76¾žÃ­×OÿÇ.¿™‡{ w»úžíÛèOUoó[;x–qÐ;3¾Ÿ64¢ßŽˆ~ŽÚc*<3Å?Ã/ÂÛdëàiiäð®Ñ»ÞLãuLÙzÐäð•çÅ;—<ÞDuiÏè©'ßܹ¬£êØÏÍ£b·ë`\|yÿøñ‡|võT«.‡‹:lœ—ðFXï°u­¢G/m³rÚ§>«Ÿ‹‰yä ×˜ï¼w¿èhtõÈ<·œB÷ÍrO‰6þøÔÝ}šJòÇS_Y®|û`X—l}û½½o¯Ürx/Ò Þ`Ÿm[;››Z5ëðôpïmŒU¹çFF|rüR¶Jwþ‚ùÜ}ÏØçÆy ±#LûúJùíÄ‘‘Þ1*¿A‹mú>ëªýþ‹:óäç§{lÞîãpÊ{è¦1;Ão¬o±ª‹Ò~?zâäÿyÿÓ -‹Yô¤éÉr9T¦}µbÒ ¿-¯ižÂg|ë£gûîú¿Û£/‡¹'x´Ý;©•Iæ÷¾ƒƒzFÅoÞ¨ð¿äY‘3;ÿ±aÐ?2‡mÛ¶-ÿå¹sçÊY¯sXy½iúQ~Á”Ïá°-Þ;·jk‘{b–gð è-ÿ2Ž¿žµþåQqùå_0aGÿ-«º[k¿®¼üLâõìÅ&¯f#âöoßñÛ‹ºöy¢gÏ'žîÖʲ¤¯7¸¹ÓIŸá‘#wn+Yã9ñ3‡­{z[ä+V'n’ÃöÁ›Ýç³Úub«÷ö=¼¼é"¯µÏ„mh0²âv"žúmŠ×Ž »6=b£ý6éWãG훾ûí¶'okvªÈ¡úꑱýÞ´yöE7sÍWªŒøÏNöŠÜ;Ýétµ9ì¸-ò±Ýc—·œê¾w÷¿Âíç Zù\Ìfû9[ǽ[rõ죓_}ë™Ø}7(zÊþí½¢Jû×ݯ¿¿õŽëÛo›ZÿÆï õpÄÈáVþÍ«ëòÏ­áW8}ã´Ç]- Nú_ûTxøóy¥Û´+·,‡E³‡?>NgëÒů0syàfÅÇjt*A~BÈð)Çý÷ní”p=‡’{6bÚ¼Ÿû/µ…©fö2ŽLÒ³ý*ά<ÒêÌf½ìsDÙXûÍavŽý¤}ïMlž9dp”ÊÕÁTÔÉ •®Ÿ^ºü‘º{ªyKÊÆõËÏ?Ðü×­M§²?ª×9¬´Þ*ž{¢“Ãë—瞘íüJÔ–ÞÊåPïò¨°ürÏ,óï»iMÏ -OÎÊ–_Çß*ïå‘´ 5Ø­=l”9Žûý÷‡î?á¾rû¼nFÇ*mpsçS†ç0$rpñv¯qïæ<°+°s‚ïðåðÊ¡ñ#ßÑæ0þ¶f§ !dàøSþûCuß,U_=4ºГKæ?ls}³ÍÚ·o^_}Ãw +ä¹'»ÛÒý»œóP£¦áå±K›Ã£úö{gN .SßFŒÞaúžrŽù]ÿBdÄóŽF™ß-óôÿ}ھȒǂ—ý­çïYÛ·©¤òþphøÅÞ¿°iÝ+%ßTæ]Uš51Í­òÌ:eæ™_rÚ´+JÕÕo¼VȪ=Ë[ÿZúð÷Xþg“÷º- öyЪt™_Þ§gûUŒ@¥‘V]ùjêàM}cwnVò®YÞÙåýÌ6î›ÝF•––Y¤=k§ðBø¤€+óÂæ=êÚÔìŸ÷i ͸VT¹·shzzŽçº§ÃÂ^p4Ö¿þ<}À¶Ú“qj9È! ãnäP™y*þ¢[—Ž¶ÆÕ]x:ÿò‰ã—L[?ØÎÉìNü|rC@?Âh˜È! ƒ 9tC a"‡€r4LäÐA†‰:49¬ëC¨ä 9€@r€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€C„ ä!‡9@È!Br€TÈa] uæZëú0¨cÿDµI -endstream -endobj -288 0 obj -<>>> -stream -xœ+T0Ð3T0A(œË¥d®^ÌU¨`bjh¢gb7161Ô³4«4CC3cˆb —|®@ \'ƒ -endstream -endobj -289 0 obj -<> -stream -xÚeRÁNë0¼ó+Á!‘ÈÖë]Ûñ±-)ôI4êwN NTˆ¿ã8nxQdËNÆ“™ñÀ¨ø8 Îzl=¼ž``µ#ð(V ¼9Ô‡† ¼=UWýöß}wë°ïu£¯¸¿¬_Â`ë}¤pÍú±&_mïÒ§ÕNΔ¬Ps†=k¥ãPqP&¡»_€Æ:øžþO„Ü „};í?àÖJbTyå¢h˜,’L­v'¸ùŒàäÏ,ü±hT:I’».ûêBØnãNjç«õ&Û™%¤¢švP“üT]ò(ÚjÛßwù|˜hoºãöqÿ÷œ_¿;#2ûüLTfr\EÒB Ú)Ô°Þ<+²³,­X;åWc>Ö²Lù˜1ŸÿƒwdÐÈ,ùübŒ>·%¶#–hLÓpÄh‡n ÄÔ¥JÅ™«&Í—Kñš‘K#¹‚(ÄŒŽ2àº4ª|”Ò'ÍËÓ:.2@-û(1ŒÒF»TgPh&nªûïN[²,4<zº€‡‹ -endstream -endobj -294 0 obj -<> -stream -xÚ¥ksÛ¸ñ{sN/t[Áă„˜™û@K´ÅF‘:×s¾ñx'ñ$¶/¶2éM§ÿ½»X€MªöåÆ#»‹}c| xÁ´t’²q\Þ‡upp㔩Dõû€k&Ò`¤ỸúÝ/áËr²YäË:«‹r¹?qÊroÿ×úŸL4“) D¸Q¶Þçi8™™¥ƒ#Õ¢”Ò‚‰HÀ/‚‡_l ó:ø°8ÑÁ7GŸs&ÇÁM ¤déؽªà-±8kg³41T¢ÓzÜ'cRI¦N„´>.Étb!–u¾>Ê&9žz•ëp±Ø! ›õ”Eã—ÇÈ<-Çû£D„Âþw¬5ÅC¬5’Å×`‘á ƒ‹™ñ_x eÄõû,‘ ÎEP¯°«»øæ -p=—oÂò, —ñs±¸UÏjGŒŒ'`'c4I„R3PœŒ"KMÓ0³+=¢>]2î‘bÊü‡#ýkX=ú äØÑ_”ÓÍÜJ,[NiP• ;µÊÖµA0’`")7.lÝ,RÖ¨"‘Š°„Ñš†¨™r §"‚yúº¼5ð«‹¾8†²'´  ÔǵqáI]¨f\µ®åJ:ßÒÊ XÒDF¯U¾¢ˆšÕ ²G†_²?R°¨fÍî6XÁë,³â;ÌsŠƒ#ž$,²jˆIƒÙÁ(¢Ä§ÅÚÐ,Q*2–„ó“yYåóSv“«²ªŠÃ¹Ca8é=àNâæá|ð¢ð%ó ˜]ÀÓÒóéq¾tÝìS“r3ŸÒîÃÜ-òmkS7€4eÏ“uaDÃI9µ£“¢žÑ(/¬ñÁxž-7Ùq^ ÛÔDIs}l÷z9S -&2!×d›Å"[ŸRæ0&Œ Í,qÿÔðÚM± U$¸›–PŒKC b†ÐIXMÖŪ¦±“‘Ö(#ó\o–4˜FÅù¤6 -Õ1Y¬ÔJ,ŽÉ -FGd z£S8xêÂ8>Î΋¥6¶ƒØf´ms<#2ÍÆc²ëÕ¬˜dskœ -Ò³MßžADè3Už?_%៛û%Qˆ4¢ªua«š½ãú)Ùs¬šDmãŽt ©1 -xæø¢*¦¹q˜ÔT@ -}¥0Ä£Tñv:ÊÑ -¬·ÄÎ¥`°B(Ç? jT k“lI¨&%XPa_²%€Ëc‚ù9›SZ >”¤Tm òG²‚ÐL‹6¸îù:Pœ6…˜ô¬H5%a©>RÎ\¸µiDA ;62Ë«¢Îœo;w‡@ VÙä 85½”ÖÕ­­ƒÀÁé zvHú“‹l>'«¡]¿&Ó -KÖ6do*!MER8Û26•Â9S¨¼°"‚)gc -ïïïnöG1äñÙ×ûûëË‹Û+¯‘¨U½6–t†œLCœ‘» Ö;›€‚êÅîfJ7 ²>>….ûlûo±©™),MÞ?’‚K­3ðËÛ"LcŒð+;%ÍIjòxÙ¹;H¸ ”vµ[é›%¼V ë™Ç)“ò)M;G×hG“¬Êºñ©îµjÛLO©®Ï1ãÝK 6Väã+ΠÑ`”‚¨wï‘21m˜®6‡À^l.6+Ú#ºÊDZ¶ý*À×~œ¹Zz¦!…˜ dÜ„f Ž¸èe•Uxÿíå§Ú³Šô|¼h+–èçdξ¡€`]˜¬©—xÿUQÇ^¿L¦ãà[ªÆÜ•DÆ°o õ¯Lš êó~'tá¡ù˜¥ Ý{³Ht[È ÿà1ØANxŒ!ßš»Àß›ØKïTOƒü`ó±!ÙLø4{Ç̵šøSÐî°ä…x–ú‰ÃC0ÒTD™1—l&Ú/ÿžãê)ÞxÀôäÁ5Ä¡Ä㢙ølp=fJvø؃;­mb´>]å»eïhµÊðhõ¤ Ъ#MšøSÐNÖ7ÔØ“='Cû ÞÊ>NXDg~u õÞ«Ý2uØ}!wÑó™¶ø_@¤˜›7ë5„elÛàû$Lj#ì2àó¢öŒ†X©H!ÓrýÆF,…/óU¾œb—¡o ¸üSÄ²Ý ›"(HKÍâ¦ÅEvJƒÃ ÄyÂ\Ìnne½®8÷³#H2üÑ$¡8òï톴m8EÍ5ƒŒúdfšŽZºV™l_ýL’Œ1q?‘:U·)Ù¯¨ ³í…I+v¡U8ÙPïìs"œ—ÙÔFóÑ8¡ª½qSk»®âÏ…9é‰I*ÊBGm/D¦Ã±¸qgY¾K%;} “±ï41l‡B“¸5”æB5šr?´.nl¤Xn\ÿÖ}n\¶mI8Ñ -;9;>jß±ò¾Ú‰OmK_cj¤± -{ßs"S´ŽÌÿ½Ak“²ÿUÍo¤µwÔ/ Š©ç~ˆúE’bíg²(és·yØ4¤Ê½ï±‰À/ ÙÔœ Ó·ùš4íõ -endstream -endobj -306 0 obj -<>>> -stream -xœ­YKoE¾Ï¯˜v¤ôûq!‚CK9YöÆ Ùµ?ŸzôÌô+ñ¢ÈvuMõW5_wUuO>b’£ÀéïÕqxþÒ7ƒ˜ìˆ?r|¸lðnÔRËQyA?ûáݳÁyÐÑè½Ô}½‰}}°]}P²¯·}¿!öýRüÊû¾ÞȾ^Ø®^ºØ×ëÆo ºë—õ­_Ö·~IßñËú/ø[¢¿Õ"ù–¨oµH|‹€ËÝÚÆž–¶LŸÎ#bÛÁy3x„H€‚ ÿâçžÿ5ÐÆ_þð%ÃWƒò`f¸ÕžFÐk—ž9jc©â<…°:jc»ê {jŽ ëÓ YN®Žã·‚Â/Þ¡w˜š>FHQmõä<9g÷Ÿ¯¯÷WßÞÿ}~ñûðýÅðbÒ÷¼}µ“ mãäñ±vb»¼„Ðå…ÈU^Uä²Z»Jý_‘î¸JÁçÌ$b•5“[BýP†Ê^„8Ý‹ ‹—ëëžéLïiÓê¨lVo&„#•cÔf’°f9Íö`›éh|dd4»ƒ|´d|µ&+!¨ÙG¿Ïj¬I¥¤T›³žRÎiȆ ' ;à kOùýt”Ô…‡fSN×(k%U¦Æ2t”TÚj%QØ–AÚÆ ³*"³Œƒ²1ɇ$cc79lHÔC‹’¥œìœÃðþ_¨‹Ð妑¦u³@?˜¢6 -hìm¨î>½”WYøRÚžZ)ÝSSÀ­ÚèØÁžbôB_^ЯԈ…e!²é2Ÿip<Š==c™1))’ ^–r²·²¢[ŒF°H)hŽ™DÑVGKM8“{P€í1Xç317ë)´d…u–2:{ýl¼¥Å3óz™~£W°´úSƒÝxoœáÙýPÛ•ÆÃüÕ!Žg¥5>—W»ÞXJÏq–¸ ›´ò‰JÞ+—M(5dí²rž -±‘»ÕÀ@s’½9r£¬W s/P€‚&&N‹‚rB´#/ÙZÇ‘Ø TØfþ\,ù«Ãi K÷¥dï$€‰,œ˜àDãoeÖ¥N†52ìUÜÇðlÀ½k•ØlžÉ`©«º‹ÒUOêpw×J𯵗ò™"FZcÇÒ%íäÈwþÃ`¥-åÙxH/†Wl²;²œ èšË kËf++\¡ òßp‰Ö&&XêÚÎ5# tg` რ U¤ ›¡’,1·Hº¥²4ÊåëMQƒ\‘»I½ñ©Ó7Öt‡ÈxùŒÔ #ìãÝ”Ž-ŸÍ¼Iç1Óá¹ê­Âà´›,ÕÏ {­èZ-Ìqw̨+ƒiàj÷9<Öó¦oc ŠöQÈ&ÎoãrxÊHŸL^í:cHŠ1U†·ê‚ÌË+gm(dã²t¼ -±±ZÐü­sÙÓÐäé)-Œq ®’éÕ¸ÆÜ_Jì•?ü˜øãθò׆SÖîKØOØØ¡`ÓÊ1¥†¥ò …ÌÍ ŸxÑx¦0½1ÜGivª)%úz–f­uÞìµÕu¥ ì”'B¬c“A6’,SÙÁ^`—Ûœe!Ïö ƒÓ…“ìŽIf,¨’ç“ÆÅ·Ào;Î¥û%$@‘x¦’1:BÐd­ç®ÆFÐU(Åözyų>?¿~ J‹ZUÃ6nK7© -ó”Ã"ÜÖâŒq9 ær²jGôNå‡ÅùY~XœYó¶d­ - +åÐËaqûÔ ÅV¾ƒ!Û[V¬HËÞ³‚î9Ëj4c@'ûy5 ô•±¨Æ8I2Æê€*ÈÚeí™;âýWþ¯€›„å'S?Áq\¤/`ßí‡ñÍÙ/w×ûÛsüöü% dó¬/~Î~¼}üãòöjþMýymç~õvãÅõðëÙýüª¶ -íÏîïpôÛÅO-ó™j‚]áôg7ž÷öRœï,TÌ)*Ý}~HÃ`x{#‹« ƒ«0pÁ⣫»‡=9ØùIèÀã.pˆyöáííåqÏïUF Ý jɈ¯vÇÌh#êQ`- Û\Ýíÿ|èBi¸~[ÐAiBÃË㵊B¢©RŽ0v }q|1ü€Ùæf -endstream -endobj -307 0 obj -<> -stream -xÚ½YmoÛFþ~¿‚‡ôÎ4®ZïrÉ%Yà>Ð4eñN"U‰ŠcÔEàHj*$±ÙMàýï7³³$×"­(¹Ã!P¸/³3³Ï¼’v>:ÂáðO8¡ç„*fQì,?8§•s2NÌ|å;Õ/Ž™;ƒ©V?¹ß•éb’URåeq<ð‚Ø•å‹ãŸ«9R…LÆÀéÉìXÄn:Ò['C¿e)9ó¤!»ò¸??¿@Sg•óÑa -ϵ|!˜ŒœŽ/%‹£zþÞ™;?"­„µÏN³X8©˜¤2e¦ßL©8@p& 5S ô ¥,ho§”VØW,TtE.<üýûáŠÜïò±+’Ù¥u[’†šÕŠ«ç–¼Ý;iX— ùAk®*¦¬iø…++”xeÆ÷¸›L²*›éKrm²8ÐÛÿÈp÷@ ÐtP¡Ç<ÕªPÏ÷é ˆùÒVâEYTà¨srÒêrš= w-È‚?|o l iþ¢5ÆÜC,ã„!ã L ÀÄJZƉBæ.GëÕæáv{ô,ì ÷Æ»ìE÷–¿?ÊŽÒWîË<Ãp.óÀêŒPNhv1Ê!9hª>1Ogù´¢q>§çlQ€£ø0QÊŠ®?“E:ÊÎŒ¡G$fq^§Á[4€ñÈäžåÛ‡šâI¾‹›äÄ…zÖg”'²PÚ5®à’ Ûºfá[¨çc B+E È«xIŒ¿ñâ#a/fF¡i ’ -5F=BãS¨¹ßr»¹{˜\on®Ü«ã®ø }¬ -–ëB†•è¹J¹ ¦*ºguš™å¼¨}ÊõìÜ ¶o»ÑèI&C‰!ÉÊ— ¡è©Â’Á ®Âžì1º€ fÃ$ÍH#4 *ú¢œåå8Ÿ·ú¡j]­<_Rbiµ2èûR§ 0î%² Ü4)ˆ÷©‘•‚‹°f.æ˜Vpµñ*­ÚNô(¬ÄtJ7Z¯’´ÒžgË"ë1ƒe¥ú*†|Ø^@ÐïzÍÌ›\¹ߓy™¬3³Ñ=-늃‚&åY6Þ­·QéTG#/d!G߈ -¼ªœ ?@Ý=»íéJ$4.>Ðú¼¶¹‚Ñï7¶†Ñ”ö2?3Ä =Ò&Z—˜ÕÄ>çn -ßù‚úaýÎÔa$c|¹:„ÏبU­5z|—Ÿ/˜įhøeÄn¶k'öëèòkÛ#BV~òoø­sƒ!žã'Ò ;¨·}aË@ÉÍŸ€šk’˜ðŒ°h<FèùzÐìÕþÇD]ÛeÆBž„¦õ´¤ÝŒ›ÃS#®€£6-³]mzãDHè’Õ׊‘¤±Ð ËÈcad'çº*JhÀ’é4+ÎòâÜ0¶ß||¥$ί—¿nîØÝcÏÕ-ßAƒ”šû˼\Ì!…øÚJØ‹GÐa£­ŸnÔá™Ð£§wŒ|ì^ìíÀÐõaÑš]IÏý;:¯V®IgO>¤UzáPTFiTdt2UÍ ;á¡Î¢¥˜z==öÌV<˜f¦c/l3Àõ‡nñz¹}Ï>Ý÷4±QÌTëC:F¸ŽÂ‚ºT}9ÝR÷%› ÂôФ¥»îç’VÓklÚ)„P¯S£…PŒîuÁ ŸíEDˆØª¤uø‚3ß³Cåo¯l¢žÖ¶´éèì§+TÑÂÁÿ&髯Hú †#&å®÷DLÔšL¯.?°Èré=iz-~>Oü¢PCý.È‚8vÿ á…©úJŸ%ǶüûÚ>º»^ݳûÛß~=2„’µM V?Õ´¯¯%QÙŽý}»ëÑn¨ËgWôî¢ØÝò#SšàmGHÛZŸV«Íò?²VîïwV® #ÃgWÎFõÈ väl¢}Ù„ûv·²»û³É2ÑJõ^ ­°¾¾8Ä¿¯··G—L-­Ì½~Ú »JïE〠- ¿î ¿³òQîEÿÍ!V~#öáûf¯“½9 ý ‹þÍíö°¸¹]a;õýG¹ýGoúâTù¾{“mDÇ6öÊÍC,zm|ûiÛ½ÜÒC×ánÞö˜ú0Oÿ¼>ÌÓ—››®6¿£{]àèËwû ^í5Äjoœ­¼,½’û|Ü+þ—oñÿåívÍî7¿¯Ÿ·‰îÿ€VœßM¡hs°çRº!8L‚ä>/!èJX¾¿]¾«¶k P\ýÕö·u÷KÉŸÏý+PÒ}ë/XfáÉWõ¦c†C2ÄwÞH3@ªp¹n˜úÿ=ß $“öƒn+.mûÖŸ$š]Ÿõ~lö½¶æÝ>‹Ú¿ê©¾ž¦ù.ÊÕ6|úUR ìÙ65¦?þå?ûíŠè -endstream -endobj -310 0 obj -<> -stream -xÚÍ[ûܶþ½Å5Ú£%ñ%Eõ®|·éžtÙÕö’4Eáž/ñ!~Åg'EÿúÎð¥ÑƒRìmq–D}âóÍGr(íâçEºHà_ºÐÙB«‚åÅâæõâi³xò,]L(±h~X¤šeÅâL3™.š_~Q¯—eÕ¬šm]=>Ëd±äõ£Çÿh¾Zp¥/ JÄ­öÓb¹¾0·ž<m• ‹ÝËsV´d!§;›KÆ­z« -à¹)÷6:þXbÉ·@›fP>¤ââ Xu—SfS™²¼cW=Î’åjw,ÑÌ#_PðÁÚo¾½*£îvF‰÷‹˜ó‚Ñp1—§ Ñ·i*YÖºœv™hÄyº(˜²šÿòÝóìþíÇ/¿Œº4Tï]Ü«?º´5ðd>Ý”æ²=ËD¶ÜmÍgàèdW>sWMG¾ÜoÏ/¸•Úâú™=^­6öþ¶:4«j]l9‡n WGW¥}ñ†Ü3(ºïP› Ëïa»)­¾Œ58âvCéŨ÷Î ¡Ð:§O(BaÔ^Ÿ†5ô À´ô#TMóŸfaÐ7pûüþÃÿ¾~j&ˆ…aðÔGœalj÷5RÅË!Ü9^¹€sC -mð¬PîCNýã6ðÙÊÝ re§«"À¹‡F„ŠÑ -XMi5קa ç°¦ÈI´˜  Ó? 7oßOŽÞ‰‰b.Z¿ëQ ª÷'Î=4&Š¯*§¬ªüœ!»ÈhK>¬•²òuëÆ–ü_o'õ „`èY#¿5ñû®Ë“ïŸ6Zÿ X0§óº+8ÌgIÎ ,§#!KËí -óË›·ïoÙýÝnã¡ÐZ ±!gBØ¥÷õwQ_×fñ瀆P¸óÔ!ŽEXb…n…æ+¸Ú­ÖåÞ„NŒ²ÐÊalɆ`EW½®àT´¡Œ»5¡0Ÿã °Yê8ƒDgŽ³`‚˜Ï’Ö±¤éÄ“¦uê|'×õ΢VLvuÆ¥ö§F]{êRD8{ênž[ÊW5TVõñü™¨‡š]­×õe½Y5.HV»]/ˆ`˜8ÄÙç$á}¯åf9Oåëûߎ6t«”%”~.Y:G?Ð()ý7¯ÞÞüÔ¼¿Š`'EßÐX ´–ôE ¾…\ŒsiXÎÕò¼¬J›¨!xgeo¬wõú¯ö´±ÌšûbYïmiU76D¤Ì D¶÷éN “Xå#¬ Àrâ±(–vVqpµ;ž»‡Qâ½ÚH nP è¬C¥-øtdó%ÃÜÓvÒÍ‘ÝÍD>µû"ýÞÌùÑ1aö›ÒBH}ŠÇè0?[w˜×¦…^®ü`‹lÆ6€$$žü7µ¡Âa+ ›>4zAb~{æöÃ͘mîÞ¾º»ÏžüùД닪þË“w¯>þx÷æžÝ¼}óÃÈöIµ¦¶oì&XÙgn&Mk -ú¼}*Zš§£ïu¸N–D7q8SŸI×ac·ìƆíaN|™1‡-¿Œ;©’·\lʪÙ:„&FE[G:¬@alÚ»®Ý °œ¥nú‚É~ÂÏ»Øͱ-¬ºÐZSx¢pÙC-|aÃx¨u ‘S¡€èGOm¸‚SÑ&F ô9 Àr92ÈbÖÙøË—‰ÜÌüÖÙ!;ÄàL·N!¶½p§Sæú4¬é°È슈øCÇæ8טy¶rÙ¿pŠcïŸß½ÂÁáã›ñÈ Æ|AßZ:¸¼`‰ng?>KÈîq+NZN­n(lâ‘ï[ --LÈ®¶ü¶‰2N·¯šò?²gã ƒÎ}CüãÃePï.á|îIÎ\;¼îÁHSÒºKã m’£¢ÃUª|y¹­¶—ÇK¼(–Õñò).Zð—¬°ºÙâ:/­Žêcµ±×­ˆ¤!dÙ!­§nE‚+\Á—gv5«´]ͱÞlìɪ2'jy8^]}ŸÉd¿ÅÞrËÚN„¥Š·sdxÍÓ›mEç ´@,Ÿ˜W(`Æ÷Í^=«íùh¯’ÈÊ©ñy˜[©áb‹'îýÍÎïÁºúºöëêíþÐMÜ®lîn2.}næ7tçÄ äÉî…md¤´¦ó³+8m‚²¾œŽL.fF¦BãÊmtdzy}÷âÃËøЬ‘¨/æb¼€U¤~¨¡É·0 Z864µML³8ë¾nEtl*¤]©‡ÑÇÄÆ&´ÂÍÓ=ºmYdh -à.‹Ó¬‰Dv³gÚE½ß~‡¯D]®z½µ»Ž#[ íó¦oUÏ»ã¢IA\ƒWŸ3þ-¤D6€Œï8ZÙˆLâÂsT6¿L˦µ)¢ÛÈÊäCÍè¡…¡`ÐÂÙ&NÈ&ÔÝ2_Œm.ZÙ šSÙ¸‚ˆl

    -÷4sÍL„tà ¦›€îò8Ãç~Ë!çoå¾Ù®ÿ7²ñê¹7¢nŽÄ=¶àT´qžL™Ä™Ü§EëœGæžÃ»ç7wo~ŒË($‰¹éGãÊéÈ71 ›8&¤¶*μ¯›†‚ˆÎ?W‚ -ÉÄ„äáûQ¸çZkÜ}zÝ‹…˜ºËä q*… ¢ÕËÃÕj½­ÎÍNÐð›©Úœrsîž±ïR„-®FKü^ƒ}A#ÜR÷7_­ÖeÕØb2ûÙ5)dòÓíšÔîŒLª×{¢GjD€–NlÁ©hÃ,y -¬ÅŒz ã­ñ)pV½Á ‰ -=9€J¼¾…¡`ØÂ1ñ†&Nh×WMA‹¨vžT»¶ ¦]ÌÂÓŽ’2oÛÑn‹îò8M›L2\¼ñŠ$¯JXÂ;âÅgP¼xŒˆ—lÈ¢xÍ×î‘V¼xf`']ó¶ä“¤Ñãt\ŒˆÖ”Wp*ÚÈS|ÕòšZÌL¼’ lt.¾3wóST­­ Å,í¸Y×ky³Ò£š vBÁÐΈæˆ!èÅ?ßý;N›7@y,¢³¦äKé¬é -"Ê ð@Ü(Ü%aš§ÄٶŔÐ]Nf(ã­ð8¬'/ëM¹³§ø=C½àѾ¥®Ìg X²®«ª\7¥»4¯Ê(0|IÐÙR*‘ïošr_Ùe®ß˜‰òâ{×#*"i¾ž%~¶§¢ :C÷¶¬8›™ %~žš÷äôË‹·S’ -vÁ}Cc|ªœ©OR”7 -†fÆì¸~LŠÊÛhÙ$6†¢8§Ó™+ˆ‰ÊÃ}£pO¡9k[LTÝee†„<ï‘IN'½ªðÔª*“Ê%tÒ'tÊ}ì'DUPÛâ&|±Nƒ,I™_Ð ÙïÌBˆþð+“¡éÎfê¾4𛤸£»ÃH2W[¿OZÇ>f‰ƒwi/:"Út'Çt§¢‘z•fŒÁs©JE'#µJ¾¿ŸRrk‡DÕl"ªì'Ÿ å`'HyhgDÊÄëÉ”–ƒÊg<­Dx'­t-¸'pî äy'­tm‹h¹Ewy™¡!Ë:iåJ¸ø|)Ÿ‡×<ÿG-—ö¢c\ˆîdœ®àT´¡^füÁsù©’²“ŸúYùnJËÁ‰ªÙ´T‰¢—–ÎIÙ› C3cRv\?&•ìmP6ãI&Âóœ*ÙÄ”ìá¾Q¸§ ?ž¥ôٶŔÐ]VfHP¼“d>ì¬|÷[¥¼­zFîìEFD—:ï&Ÿ®àT´¡½ÈXA¾Að\ªª -9LUaìœTq°C"j6]UøS—O›‘½P0´3&ãÖëɤŽ½Êg´3<Ó(Ã3p—øákuÿçR¶ºj¶ÕÑsìÏY™_¤}ã>¿Z—±_eêTº±Ûý,Ótš¤™Ä/~Ì7Z¦s÷ÁÌ$ËþçË3óÿ£Ñ7rÞ~ "TÌñE¸ü)솻‚‰±]ÀpÖðÚ’á.",ÛïÔÜw Úÿ¶ûƒWevsC5þ„÷é×ø/Œ|$( -endstream -endobj -313 0 obj -<> -stream -xÚ­ZmoÜ6þ~¿bsi ùЕER¤$àp€¼«õê²–œ•6‰ïzZ7mƒ&Mê¤í‡Ãý÷›á Ej%;NR©%îh4œ—g^¨Å¯ ±Hà?±Èä"3Eœ‹ë׋³~qº‹"NMºèXˆ,–Åb™ÅZ,úïÿ}Ñ®UÓ—}Ý6'K©‹HµOþÓÿs¡L«X"ݲܟˆ"ZmíO§›Ô³TI,“}# ÿø'àŸ¶ÔU¿øuk“-þpï"Vùâõ"U*.rwÿjÑ-#­‚µV™X"išÇZñíçP¦@©“Xi å[ L™Ò*LûÝIƒàËÔÄ™±[L@2‰Ê‹ª¯ö¬ÜÓkgù  ©˜"à¨báÔµÍ×L‘ïL=1e`bò¯,i˜wXä±·È÷wí1Ic5ÚdŠ[¼º¬&ÜU’ øwww•˜X‰ûÕ¦<ìú s4œ -˜»û€ù±ÉTëÀætÿ9´ .EÄEÊd™Š‰ãGœ‹ô×ËLl×Ò,B„´Þ¦ÙHÍbjD#bA±n+Œh]´ëjG— ø-^™¨ÝÐJ¿å…ËrM«¶iªU_­™ ¥e$$_,à­…QôVx;ãïïÞ½dŠ@®%‘`ˆšÂ"IÝ@ô4¥•*Î-¸´‡f ¿ Z+›5áQw¸¼ÜÕÍ9ÝÕ=ý%© -'>@Sk™T·z•SfàeÙmn´yè*tÿI´ÚÂ2ü‘2–`ˆ¢$bóéæu²X¿!²¢0ÀR«*•Çy,é66·X[~Y °ÊÛ¾šbtLSôÉ#X -ý'6–À3T‘EM‹óhµkWè²'WDPw´z^5•ý¡§ ¦'ËTI4MÃm«#VYDÔ»KŠ$a[š…jÚ~*4˜ L°²¸\± æd™© ’½¸Â·=!yàm/ò\Jô òQ‚(âõøPu¨ŽÃÅl® -`à6ÑM#CˆÜkôú§—oãï^½¹þ9¾ùöå«wñõ›ß~y?³•¢oÒCuGºTIuåÕÔª²@2¯žòӱˎUµÍߴ‡ýÜ>–\|8ÐÆìŒq¼_NߟƹôÈ©–²Ø&xûæ73~iK™`) [fŸ-…ãðã Xæû)¥ãÜx&‚@çi½ÛÑÕÃÐ(:ëˆ HÇ¡ëJ!£Û‘ïCŠd“ž¤9;á-áœcÅt¯pnºj¨™Ë¨Ä?Ê…!^úˆ–¹ˆ–[Z/é3¤¤pR…ä”ë·pÑ¡«:º"d‚o"Zèz§˜ó«“4‰[áØ‚ɨ©zZ«™_Y §hÄU””œw¸jw8ΞçøA}¶ ÛgÓîé¢*¡˜%Ó‘X Ý眃Ôâv8±¦ -üƒêD)$:ÛÈYuè‘ FħʹÎÆ»åj[_v3V†º ŠÉ®>o8ÎÐÍD¨\€Ú•3¥½YÑuWZ©zŽ$®~À5ÔMð›ðiª´‚Ü…~@Äà €ô¬c4 áÔ2…°Lú`[WTZÛÿÃŽWånç`/PµI|,ç0ÏÅi îÒP“ƒ ÔnÛ¢HO.7¸®@EÓÕŽsÆÃý>¦OÕ’6½'ž5=lÂA–ÕéŒí¡ïf„îv›ÎiÁêtAvÇ«ÁîHØÖ5­¬z›`¥nŽ¡eÝxXø€N >)î­OlAaÐ|lp7€+¬f×¼¾bO\ÛR—ÐâŠ@ϲª/.wÌö¼j¡Û£‡á‚ŠºÕ¶º _š"‰ݪ½¸À¾I.ƒúr¼×\Ä2=ê×F©]{6Í=À -Æ‚]ÿüü§÷7/^Ìd²l”Ê°ÐÊZ ¯…9¼¸l»~&rà­âž‚Z6g¸å+Rö¬Ýj·TÝòûŸBÐnI]å;dú}ÃbíJ'!!ªžLìJCø‰‹AW*šªï”ùRµ¢†Ú!íj‚™½ª t:öãÀ:&… ¹=ÿîÕ|:Œ@P¶¥;kû¾½p`²a€aà%«hòþp7"†ò^‰Ÿo…óÁÝxvÏ¿»ù”íìëóí§îGBK£2×$j¶p±!Ïîùû{Ûg@³Ï0ŽDWÃæ!s›Iç6£>Æ×<»çïo>z3÷3 TTáC“b9e¶ÖäÔP2ðoË'3=¿\_ÃH5PØffZ¹œ‚Ê=à4Ë,‡„’ß›ÙOžÙœ?â -ØÚÅPP–û+î5ÓòÑ0³ëÁÙJÛ_#(@QtPõÛöÀp¼®»þ°?F™#~ƒé1ŽÌ™OBæNÄŸç -ÇòKõ;Sñý}Ó3{àµÛš£ò²­^|ʱø¨¡&ì(D- -<+W¬U(fk<ŸB>&úóÒÍ^†ç¾øê+§} s€î^Fi ~à÷ððÅ0Rž‚ÌvÀ‚Ž…š3Ù®*7ÛbW^î>dÄùBa=ñiuÄÔžÛ×,V>«sJpýï¨GÄ™+×ùH OßËæÊk~†]_´ˆÔOx.k ³v˜VãªßÕNµôD_—MÝÙÃÉI¢œv›Zf÷ë6âÓ3+_Ý:ÛúæÎ¥ -WWÁ§6¼´#¤"q³‚"œ‚àÃî¼Hša_pc¡°ó”zÚœI­Ñ îèή¸iÏÙ…u龬~EJï¶A†g K° 1l413TP¦.¨ìQÍfÈ£³“z=´Àó“zãÅß–Íyà wTûÊúØ éÄ ñ=N8dáξ -㬬½•ÍH¥´€H¿²ÃÍ‚OÏð/°Ø…µúü1†Æ“_nN•Sø#tHKÅ-÷PãÂÍn¡ìÝFf;_o×s;BšÊvÙa ‹”üGpÎCR‡°6š½àfò Õ]ðãô˜S Ð3S3hžMôÐÚœH ‘ܽÕE ¬¹ˆ  Ø…ºÌG)9à/ÍgÚËò¼ì+¢$þ*a€lç¥ÍBÒ£¡,Žöp%²pPsìIsÞ¢pCl‰7Êi“d2à‚‰žÖV…ñ>X®×tÔdÁà’`šN j¶>톇_èž[9sD«´Ÿú<¿ÆC¨3:ñáѦð$Nÿši©| ûŒt‚G€_Tf.£ãÎD¥þøM%ÚÆûdˆïÂ’)oztL -n¾}ÿþnæX-Mc·5wbõU=È\{kçÒG§±yÎyágô! Íü-°¿¿ëà×;òw¿FhñÞyòk\ôŸzô›eItÕðBølžŠ \ôp²?4ô€õb¼`×͆™Å?¸¶¯Û†¹ÓyrŒ¼ÈíŒXñë7‡¿æ–3>8@àÔ*§²D«b˜Ù†é]«l|J7sv Á0 ŽBF¾õNŸï§îX0DP‚?”n(ðÆÂÒìJÐ~?”;cÁ 1j7¹yÍуùÕ¡bJ³ë'Эs87þï·o¿WþßLJ„?uà”÷À5ԮƎ‡$Á+AçÌ3á"_ÂR ‰(Œ¥µû¸c¢ä4ìÚæªb3bÆ-bsçþÊý«muWµ Ý4T.K“›XÒáÃö™¿,Nó{ÙúüÀže¿¨~YC+ö“1× $y´¦ï :¤Ê|¨á#ë™s¡ ÿéØÝ2ØS/dZ73 !Àêï¯O¯ßܼ|óêå;yú÷®¯VÛ¦ýÇéÛW¿ýøòüNá—fÌÀ$oA½ð3¿ èt|çÇ £/˜|—ŸÑ÷3øÕYBÛ±@bú¥ýÿÃa”ÿd„ɦÈ —"¾žÒ`ÜóÑB2÷ñÿÚ/1dgîãÊñœ°|º`~:ùø/ÿ¾3 -endstream -endobj -316 0 obj -<> -stream -xÚ¥Y{SãÈÿ?ŸBö“:óÒ+U©Š°V"K^K^BBêŠ{¡ïr{·¹Ü·O÷¼4²$àBQFšQ«gúñëÇ(ø!`…?Ä<ˆ£”$ip³NÛàäŒ)‘‘ Ú‹ OƒyLB´·ÿ˜½­»u^µY[ÔÕñœ‡éLÔGÇÿlÿˆ(&"–H7϶Ç,-VêÑÉ™ìX -J¸0dWœrøQø1ø…Š:oƒFqð³]Ÿ1"’`H!HšØñCÐïVÀœ£áH* -3| ¥Ê©¥4”Jaa'6>—‰#%"Mp:ËÖy›o6’Ž>ä$Nœ6¸0GA˜U×4_ŠØ[Sv<ØADBižšh  Ó„0_D3~JF*‰è )QÄËM>à.(Åí;îvüwA#"˜Ïým~–íÊvÀ '<ævì1?49†¡gs=~-zD$I”v¤ñ31Â4¦ŽÊzñWy,Ó™ò”±þY]šÖßC§‘·«z©¢œ.e4œáAaBhhãܘÏ`!襩~ôud’#^BÂânjB†-¸p%(¸T•¨§Wy¥ç•/à àKStcù¥“ëW¥hü’~l T$ _§‰Çà„_{ÔÇ(¸ppõi“˜á©“³= –Ÿu‰žB¼ú9#‚ßb -t3‚¾‘MTçΰ>‘P?HïHÝæãÕ·´*ümÞ^äye‚Ó…éc â7P~·î˜¬¡Ý§îìB¸~h^sðŒ#›¸Ì.ë]; ‘Ëæ)¤'‘êWe ]oô4Ò¿ìu”Ðâb ±–öj:Äknî;u*qw«Ag•ðg^ ÿùQ#ÊÄ„§‰¯§¾öÅ,ÄOVÝç>3Ñk­»R-ÖÕ\µöÈ:gf€tì¹ú4r†/°etÎ#Ðm)3(b$‘/­aèð ÂaW`G#P!’y›³ßXûI üÚ²áXNßýæç}³à -endstream -endobj -9 0 obj -<> -stream -xÚÍ\[o[7~ϯàcòPrx/ŠM³ÉÛÝNX ȃ,ŸÆêÚ–!ÉMò²¿}¿².Ö‘9¦“iDr8œ™o.$“•QÖ*k’²¢ÿ[§œ-Êzåƒ -Î+Uôø-©Ð!«²Â[%F%†ÝÙ#e£ïIÎJÆ*ø݃ñJ†!‘ˆqÐI0B–¢ðÇ—”Ã#ã¨c¨€YàU‰V9‡¡bQ˜†ø• *ãw ‹(t•lðHk”ësóhZ°àñ;ʃ-tõM0>IÆd”ÇÐ)¡¦’3ÞϪåñÈbþ`Ü V' ‹“A0&Ë¡ˆ Ñ9 KÂ_CD¼)¬V,˜Œ÷ †ÈEtŒ1´7øŒè -¢ Ï#˜H"EQ`5d¼—ñ½@,˜Z4,'|s(‡ÅÄR€¼SÅc(¡lTL¬d3)x¯à%‹>ÉJÍ©$˜¦õä)7ÑÀQ’ÇL­Á„êbI‰f±œU‘ѽàE¹F\@ˆ -k°Zdˆß¸è)qQ¹~™ïeH ÚÏeåzeÏu=[—Ú’º B~ -×Xhg#c-0Já{T—º¨6‚1 I[›ªIRN€@Ƴª# '.œ­f„Ðr )¸6.²Gàȸ#\kè„= £hq.ü ÕÁe\bU9‚¬-bS¤Ò_Q‡-HK(sovU B™{K€KTJr(‰=hjXD¶—”¹¯@I™IЗ2÷Ž=(sïHÚã |Béûhˆsì‘`„B5÷ÙFI£µhÛ€Od c9#´ ¬š£Fˆ¸´[µÇ@­s”~àj;šf Ñpf6àg´hT4Ȫ!SˆßÀcº«-®_®­*½Úâüê3ÈŒ¦€ Xkª?A$©ŽE võuŠVhéKKÎX_YÁn•‡Ì‘–Ô3¥T{ÀÂ$Ôg\AÂ\…Q©|¬‘“e‹®†ü—ÈV!@W~ø¡ûíãeßýxq1]t¯¯ŽüöËäâ¿Ý³é줟½1ðæm÷Ó»lüˆ.¯»—ÓߦÝóÇæÉÓ§ÝQ?^¼ÉES†Àd¸9èmÂhXüÛ§OÝ“” H£‰-Ñë Ž!ƒRBn@ÈecÕ«ÿ‰èÒ€”_“ºjø}øº }ÅY|'WÎãyi@+ iY§ý5)ø+x°ëŠCRøô4ç$ÚÓ¥[£kÁVÐBø  (â“IÉÚå|å!­T´¡“ NÓ1Á–µ—|•!­˜´)L Ž¤íuÛ€ÖhWãCš~ ~BÃ5€±¥ã!WžÚÇ ë‡`Õ Ði ØcÀE-¸"žÕp4 h iÙ¤«sÉ@)t¨chÁW?¤e‚vt»V@ò²@Õ‚¯ß´|h0l‚ªD„^Áð} ¾ìÀ™ÀãkÏ'$]à¢}1@Öeí±DˆbF¢ü3s-<—¸.†jlegÌâcÔÅ´0e놌ù eš˜¸ùàu‘&| Ý¢: † -îŸY¦]šl辦êXóÀ|iÀ½ká•íÐyStB .ifóÞ÷[ÐJ»ºáJÒ ƒI¶IÚ¶Q< •Á “#x/¬¤+@}ß"„²Cïå’ÓÙ3U6!¸u™³ _£!±b,Ê,ÄñÜ5álèÁœ/º0ô÷Œ3°ª«››p6taštaôŽÉ‚8ÜŒ4Ñú¡sÓbŠˆª0©rð3©­¡Cr 3ksv¶M:1`®f:[«Y n¢øb´ãjV,'«~¥èÐ${¡C2®YÚ@z®YBª iAK†´à´˜z"zÓÁ×’€Mò:1×bn-øÎX`á±I!~‘kW³p$D¬èÂÏ4ÉdèÄÄ @ƒ DABdYÒ©I!C/&‚ø©Ö¹¡’dTàjRΆi˜˜Xƒl‹¸Ã.ëg:Û&œ ó0["r¡ZºdþÅ‚ r¤Q© ]™ÍH¼XKKY/#<6‰dèÊl2šû HÇt¨—&Y„ ËÈ -\µa gi’FÈx×ÆghÖ‰ìyÖœà¿I!'ZÎ#Ea "+¢°o“›ð5ôchÈ‚+åV‹Þ0pÛ$¡³Hø2kˆ¬HE`àÐÊE°¡#ƒßJ¦TöÜô@`Z¤x8»+1@F‘P!¤ø `ÜHÛ¯)½˜^,øa•ÇXGÝ ¯Â²T\6’JË+§Ëð§>¡W³éøu¿xÓ½zþ¢û­ÿ°è~>½ëZ~<[~ü|G¾Œ‚ÈW|ýûègþÿøt±¸ü¾ëN§ç½î/ÞéÉh¾-Ð>¹êþ7¾Ÿ^ukΉXËýµŒP„ûyÐ#Ö `øÿpæY3üNz¸œxݨ˜¯›^šôÁÍ,VLãg«ÒÝù¼ò¶•ðGóɹ>›\Fýû¬»¼:îÆÓÙdz6™w¢76F·oMв¯IºóÜÒdŽë*ãùälúqr©ßM§WÇz2íf£ËÉÉóéÅF-ò&[Š -ÈI|‰°yîÐ& g*­¦3Ç|Þ¿¯çÑÓÙ»-ú¬½pñ‰]æ¬;L+ù¬Öl”e­?{Ue¥I ûŸ_ÿeŽwÎÛRã½v³™Ñ––o©q‹¹}5ÕA2 -ÌV pƽM¦ý(O,M®+Aw€±½ÿPÜïõN›Ì‡%Bn{äÁÅùZw-´V&“kKlU*DÐRR=uŸk™Ë­kñ,ä^E[«×¶J®´ï¯¢r×ððÝ|:^#輟O¾;™Žçk•¯Ý`û®V¬=·í&ªiúkØ-ýì¢{Þÿ9÷G/ŸUà?*õ´HezÍÊß>,^¾¦ÿî~}õOe—¿Õ›7¸ˆeóýÙhÞSHÝßû³?ûÅd<úîÙôìd9býaµ6|²”¬ÝŒrˆ˜÷ItKöƒ˜è)£ÉSîÁp¯Gßhèz¾­‘ðþqÎ}ƒONb3ø0œÝšÍFÚõ€ÊöÕr+“‹¤ÇD/{¾doë)€Ü¤Ø»•I2Óâ†M,ºžÙñH´OdmŽܾ̟Œ†kÿ5×s«NÏõä°P÷8çºåË“qÚšçVtrþ&:¹x'\Ùk [Ú·óo['³î/×Ä[™ñî&3~¤¿¿é/ºÓÅùY7_ÌF‹«y7¹8é?h>ÚE1k©Ñ‡®:åaÁrö±®ÏÞ>oÃJž¨úféïŸgóÉ¢Ÿ^LϦï>2ÐßT ‡»¾@ ±;¥Cb“\“r1ê!²e“K´×m[•Þe>íoKŠU^ÿ-•y<:Ñ}?žë«óÉø´Vsžý£{ñòh+ *ˆ=ƒ¯K&+o£ÎõŒ!ÏÓ؆óÙÅ+€ÑÕ¼ŸÍ»“Ñù¤¿8¹º¼šÌ»W§Ïa1·†ê¹^—µÜ—‚o1¥íÜô¸ŸõÕ¢ÿ0š/Ë^‹Óýl:fSü0Û´ˆ™[%¸<ꆈó¥Vöc=µ+÷ª~RÙnG=wÏêV£}Ç£f×û‰É%å£ãVÏÁrÃôÏ~dÜg‹[ìoâñÍš5Nï¬ç³Wš{²¡¯œÕ~&xDt¼âÀ<ÄÜ4íðoõ-y'°Ëv[+³Oâû<åÞ4èöô1ð,ßÃ×Ï6||¾¢÷ÅSjtî€ç»„7lJÖ! oÊhÄ„ˆwZí¡l“À]]žžbJªUÓ"pB²b²oïYRØhȾºå&þr(ðõÌ= -ê2áˆÄ¸—¥)<Î7ûW¤bÒ‘7UR€®!MFîQBj¼Ù¿"æ¼ö¼¼‚¸‡•³èN¹ñ^ÿŠ°²^ÁC䥞(\Bn¼×¿ÚÉÜ—æå$]@3šwú·6[²åqцàÙ6|‰¹z~¦žÎ0,eó fn|ŠïvœÊñf­‘¦Gä‰Hæ'Ç‹XÛNN¬¿Utk‡tÛIð¸`lžòŠØ ÄÝ—ƒÛ]/É…ö,8s“'&Žî€ƒr“o,îËv…©öLÅǃ£nUyçÅ¿Òžýp3T佘ØSŠÞª:mEŠ{ã„Û --–—¯ôÃT]$Þ¬J‚¦[6š~_wÿ„—²6Ý=^ŒË>Í´lÆ'üB®»ÿltù€ -endstream -endobj -482 0 obj -<> -stream -xÚ­XwXUW¶?È= E¼È•«€Š4%ˆhh!”"R•¦ Ez/b[LÞìLÆØC Ø°  âÅѨ+'‰%ƨã:÷® ïís“yïÍÌûã}ó ß>络³÷Úk­½×ï÷ÛG‘É===ãàÀŸ™ŽÁyÉ9á 9…Ò³À1ƒÙ'v–„ü÷¡ü€FÛ¦4¨T -‰¬hÁˆJ=qô q´¾(—f½E&ôÎÜ0’îgŒ¥»9½²Îèëé±Óý';MvöIOM/J_™¼ÄjIBQ‚URnÞŠ‚ôÔ´"+»${+çÉΓèmòD+ßÜÜÔ¬d«Y¹y¹ Eé¹9N’wV:÷½!#ð£a¬y㙊8&©¦3òŒ3˜ e†1†ŒcÌX0Jf4cÉŒeÆ1ãfcËØ1öŒ#3‘™Ä81ï1ÎÌdÆ…™Â¸2S™iÌûŒãÎx0žÌtf&3‹ñaf3s_Æñg˜¹L 3 b‚™&” c™ùÌ&‚‰d¢˜h&†YÈ,fj˜o˜5ÌœAŒ3NÏRo™ÞõAƒ9 -?h÷ #úƒõ£õ—ëïÒ¿%K•ýĆ³짜÷>WÈUp'¸~Þ›$L|`ðó`ýÁQƒÿ“Õ&W‡Gï5ÝlzyDöˆórS¹¯ü¼ü­Y°YžÙmsÞÜØÜK)» - ”l“\© P?¤?øþ¥JÍ1¹RöT=L‰£xC%{GtQʶÉÉ…½MGkjÏ}ÙA.‘3«ê3dìI Qdþʘô„ŒøàØ©Ñ¡‰-…' O”œ"gxoà|*™Sy&êtþr4m=Vz¤ôHEmMuÍᶣߞýµ^æÖãQ…S‰ ]ŸÉ šsxàsÏdi0Ž¼&OK{jzj´Ü¿ ópŽ9¬à° N=}uÆŸ†pzq«ý—…/Ÿ“’¨u-Ìß^¹ýÕé¯N_®¼Jn’WY÷æµÏ»8­ -‚Ä97 < <ãbK’?OÙ•¶+íËô}ByÆÑ…—q¨¯›ß"¿X¿¢‰«`(ö=UÔ£™ñýVt¤í6*~AVWÎ †û€e L¢­œ ¸x?¸4ƒÓ9pêëŸA.à4Î…éh…N‘è”îgKvÅrÉ0ÌÊ÷(x/ -œ¦ƒ…=H~Fy7ZŸC§ftÚ.ß'èZ€“cpb NòA+'4‘x ²Û`Þ -Žmàxܨ1ÁP3 ¶Qr#äÁ5i-µ Ÿƒâ°,ÜŒ÷Ág¸ÂøàLÿ ?…û¢IM>hÇ¢>kHWXm­®•‹ÓÑR;]ë„cD'­7XŠÞ¢3Œá Å?Alc·!hµûR›b›eSWÌÀ„«¿säaÝu?¸»çš`¨¶ýNÌ–‹%0Q[Š'aâor²pgzåÒŠeU뎣äð®ŠÊŠÊGH9½®néþâŠì]KH2É))^º¬p}‰£V6©s¥]‰œö$Ýš,xüËÆ4¼ŒŽI«\V±´jýßž$žv÷Z7yŒdüÿæ¨Kå$~GzyѾ¢ê’cÿ‡¹$ÉM§¦6ËÁ‘﯄u¥È³`Ï,вö¼ôúWq´yÍуý…¾ Y´çÕûµt1XcÍ[3ðá´ÝJö‹ã8ím¥Æ‡…éø‰É¬øˆ‹€Irm6ÓÅèCwËo”v)*Ý*}*Â:ø=ˆý£¤Å­Ë:È*ÈcJ8²aÈæ¢9AG‚uà<p$ux$x@&{êhÙ›£Í&ŽLAa… A‚#Ú\ÞNþ5ì„: ¶Ï~û ~(²P¾U²Qê5´æŠi ‡áºkv'.£À3_Ê•="Òæ0ÌÀô*Ì#ð‘€~QˆŒB;[;œ‹iTIJÙ „»ð…ÃÏÍ8Ž`8IV¨ùÔ &ö+Äz±´}b¦ZŽýítÞPsRäÍÔ,}ãHßÔþ¯7J¶[ýX½UŽá6‚w(²+™@0˜ u«c¯CïBp MýkÛ׿½þ ,ÏÆLsÁ<ü*8˜£Å%´©Fg‚NGe#„|°«ëa5ÄQŸ?Ô…9¥ÿÿ§„OgoqØbÿYè§+„\ÿQ¥¬ƒÅùº‘ên:rèf0_ãéPõq%N¥eÊy*ÙVu>ÝT%!ˆƒA¡»Ü®a -Á,‚žh€æô2 Áy7ÜÔAlhsðô—6t*·k0FÁÕÖ -J,4£•zì÷}× F­0Ð} †QmM8ö£ .LD774ŒÂi„2(¶¾ß;­/AÚ*1Rªoh´šr94â\«Õ£5ú=ÃÝ„°9þú~ÁÙ ýÿßÈŧÆÃ(òª°sQç¢ÚYÄX¥àãƒz…´"…OÐÿlGñK+ßPN}êÝw·ÁXA¯£—ÿÛ2Ð'òâ[9¨8x§}ËB,§µVÛ@Ô7¿HP¸@A`L|ß´ëS¯£âúR$°ÑeˆSo–‰íÏÃpò¬¸=^_5‡¦bbî¬ðEá §JØg¨5;E…œ¼Îé ë í´VᤋÎu¾‡Œ«Êª^^·¼và ÒJ®8ßz¬õز'DJ´A ‹΃žÇQ‡Ð†(Ð’ ,cšß4¿J÷,±ªvUùuø½ eÌË´[YÍygóŽd—gîËØ‘H+Ê;'8,A[<µ˜öCfoõ)õ) Ø|@@7þyŒZ -3trÄ´áy÷ó U"4Ùj©¦-Å$pèAG1I©ù«v”¬BG¶ÞA£ŒI~~þ3Ј œØ×ù}í÷uÆO4õ‚&ˆö™ÉôjFóŸ_:‚r!ø©i~óâÍ‹)«žÒdíšrÍï¦/±ÊB¦EQ_öÛ% ‡?j昣'–ë˜Ý‹÷Ó®´œø4%«2-¤ÿè{\9 HCe!òk'*–‚Ydöa•F. ÆÒaih‡CV ¡bu_p™`Š«4:ÓŠ?LÃ1MBíÛÊŸKP|ºv{Òÿ=þ_Îÿ"šRÍ©—eJÙN3íjõN1ZíÇ¢?§¤½ƒÿ)Þa1„£ûƒ´+û·°@ ŽWG÷”„Ò*ñ†:W®©Îe1ˆW X°ÚvJÄ]¼¸ZcÊb …Ùçšn3 -ZÇxõ¥l Špœ¤ÞÄ÷ïQb‹ -Ê'Zq0rÀGJ’ PýÔ ŒÔëè&‘õ|®jžÊ¡G’2wcÀʹ+CŠä´¢©9ðí¿V=%=¤£øhRCBY ™*øòô¾[‡³Q ˜¯ ãk<¿ -¿þ8ôhÏov]ÜáÀ…3¯SðÂKä$êË”šÔšgÈer·º½£AÕøb˜o­æv<±Éñ - sϯCìgꙚWr‰=øùÞ¨GÑq˵ÏîÇ‚hˆJõKÂ׃5»‹;>¿%I•9ïëµ7 ï ßòàuÏ«ã`EÀ¶$°ôúÅóÊÎQÊ -ÑRþ–ÜMk™Ý2û€5‘øÓ²À*zzôŒSl¤:p«‹ºu-p¢íèµ\mézX¬T}I¢f™$(ž—Ý¢jÀ–w\2i™3±"ž ó»tçõ° ôa,Ž©#Ç67­oÚp¼¤qu+X›g—&~±3bgäç:=üI­?ò¦öV×­®Æ¿’wä즦ÕGW7®ªY^)Àâýlÿ€ÓåäZyÛɆ“ {oroÈõu…K÷&â“æ›èŸ0®˜B»™U]]SpštO4SåäQù•“ôïrù=:Òí¡;ºãd/œféM‚öÅ‹?¶TEîê”’ÆÅ <Ô‹éêY¦¿ñïôí²­ÅQÄ›ÌYœ”›˜!¬ç¶4~v–\ÄÌßkу -(Z|{/t¶u>®žjûÎ¥'ŸX¼Ï¸ÐÃg)¼0Óô Ç@¿FÉR"OÙž[¶¢lyå†*rˆTn/++Û»£Š4’ÆõUË÷.ß[´=ä’¢ ËW,_¹!—$K&š´ëä°ð5ØY–JÙ:3ÊxZ_˜S›¼&’Ä‘¸­±TøYðÇV¶m¤Â†(ùØa.ÍexNÏÊrî~ÖNõUt“Âtx0F©-Õñz®Ú@ SYŒæðvHˆ|DN¢â÷pu%KGQ˜åó•œÍß²j•Õ;¯3¨Ë©‰ñY9/c^Ƣ،0Šp`Œ²+ø!ñ!«C³Ã³ã²"èóáÄÔS;üïÄÞ‰ý¾ˆÊwzH4nyòZxòæ4XðúïPùe]õîâÍ‹76P¡(ü(õÒÌöYUª©ë\ëða³ÜSPÐæÞ~+üVî;ÊŒAÁùŸÀw Xy¾úà²-TøÌ$kÃòÂòbâãƒi Eº@•ê¯i¤‘¹ôñW»„¿ç¡bþKr'åü¬ 3Q¼¥@f‘7vw„÷Œä‰ÿÈB#ÿ)X|Õr¥åJO È~Grñ{"·¥è}+²»à-…ÞD߇ém~m¿£ï$!…ÿ­ól£B¢B<³é#¡€Ò–ÄG¼Êws›}Nüm:x(9WJå…èÀnà<€Eþ:ü&xNÐÑMÿ‰ìîÛ~4XK@zWí¦y#ŸC—‡- [3?ч¦c9,fq´nÝsä]í“+Ý]Ý·~$õäøæÓë+ÁÉ|ɶø¿ÄH\˜¬á¡MNn]ŽmŽkžÒŒfg'ÖÏ=”Q–QVX¶ª|MùƤš4í;rüÀñ»î“Éë"'t€²ÍÈ溺¡@Sb—?3rfTªq!Ñ;â+R÷¥ÖfžÊ=™s+£7ù]bwêѬ†ì²TOŠå -‹òü׸’pº-¨4¸4¼<â€N|O,ÐÅ´!0š¼«ºsñÎÅ£÷I/ 3U<òù$~oV}VýªVrU çß›”@nÂVG~6®ÅÉsXO˜ÜoÅcáo(ƒ´1U¤ö³#[>?¸uïvLùU›—~œ÷qÞæœÿÈùý0 ) W•®–u6ׯ¾Î¹K®ñUõåê³'Ž\¶sû%ê-Ážöí96Ï&2pA åSž¸’ÀŠÄS‰§–]#?Ò\î]Í ‚]5=,ÎáP©5˜‚›“Q? eE37¥Ñ¥Ùp:óULÄuê1æ´ =¹kÚÍ šƒviÐtMµ«gcEIôºèM)ŸÒ!kïåÿœ”þÔ:ùÛoP’¶fáª`ÅÊ ’˜MÉ´Ëæ–â—É0>Æ/€¨p&m=,Ìç I-ß×Yù„&P±«GËÊÉ»—PgUb G­VÅBb\Ö†H¿µ6¢J4kY æð„Ö OŠn,†r†š=¦ƒ¾Bçá19¢ˆ#‰IÙ&Pazn]ËG­ä)¹s°³íJë…΂‘˜©”=–"ÅIZ/gü<×-Ï}Eè†t)®Î̾‡›Ô¬¹¡&L£grm//~¯¾Ï‚¼ÊE¯}Ñÿ‚EV÷Ý žªc嵤æãÃo<¾º¥¸¹øôª“%'ןþ¨™¼ =ßÜÀOM^’__¼d]*É"™[2¶eìHÞ½¸,ä@ÌÞäí)Û¶ÄGâ‘ê7S@G¾¡áXuSåÉŠc;ëuGÔj‰æ”ü<é\Ù®‚Áæ^ÇÝ÷Ñó¡)™8Ó}Å,}†¯GÙu랯“@NÎ’ã[Žl¯Û^·«v·Æ¼[¶Ïê0º9Å_H¸PüˆPé«|pJuFÕUýˆýG°GN 厫Èw!ÿÔ |Á`6˜¦K˜BaÔ´ ®Óöäù×ÀÓV ƺOpé`â´½÷ ® ôB“:éA“t4ð£Íù=?Ý 4!¨ÞR<6¨Fõºã—û÷_©^©€©>$ —óKÈëÐ{^*;•]µô™› r µ ±÷ò² ìB‘É‘žòôpi{i‚Êë~è›Ð×9ÀPÓéÉ{ä DH'"q4=4Ë @Ÿoªo9§êTužºPÝ$”c_Ÿ•’’™(.Û§¹_¯~â´ë?f°;yßP±zÄ7ôï’ -endstream -endobj -484 0 obj -<> -stream -xÚcd`aa`ddðvôövòÕö/HÍ NÌ+‰ùÈq1°thÈwwÃ<ìÿ~ýÙ/ùH†#‰õ‡ÃyÆ -L?˜ˆ²È200<‘·ùAäE)$˜¥„Ø9øŤBãJó2Ýœ !”„26Ô34pÉLÏ,ɬJMQHI,ITHÎ/¨,ÊLÏ(QÐHÖT0204І: -îùùé9© -ÎùEùE‰%™ùyz W+€ÍÀôƒ!cÐn†ÆvÆÆN6&FeO†&FNÆ&–³ßCeX·‰ÊüòúyÈ`ÿ[*ók“¨ ˳Ÿ¼2¿¥Øù¾ø~¤à·[Ùo•ÌßÖ1¿ƒ8¾ó±­»¾öîš'k/¹1çßÏiß-~6ˆvÛÎóÛ˜°1þPé¥îKÝnܺiû¼Ý·ºïVœLÙ’²%tk·swHYjbZb…_·Ÿ ËžŸF¿¢E¿‹þ^}‰½ûù¬s+·®Ü²sÁ©î݇O—mû.)a»È}z`7Çïúß\¿¥/”÷cÿáÏêð=â_ôw«_Ñì?%ÿE‹þºóÛêßöZÖBÑî´)ùó*çU,jZÞ½¬{Ñ”yóæͺ¼{C÷†Æås+æ–L)èÎï.iª¨¬¨jÊïN¥¢3dØD~[Éü|ÃÎ'Ã^*ÃêG¡™tÅ(Ñ.ÃjCqДÏÿuká÷w/Ùþ4t³Ëq1²Îçáü±B7 `B -endstream -endobj -334 0 obj -<> -stream -xÚÅ[[oÛF~ß_1O­…Eä¹_ŠEÔiÓ¢IÄÞÅîºy`d:&ªˆ†D§ÉþúýÎÌPñâ*Á›@æˆÃóû9C ©”bœ)e˜U8&¤dJ+&¼ÁÑ1©=SçxÀ×x|Œc×(+˜áGÌżã€ÁµN0ÇAï s–Žyi"­'zïYÐGðã8œ¤cÿ0ðà  ¥,„#n -×H…‹ñ<•¹â$¸À*) *e5ƒ@º€\^A!¡ ˜jp×¼ ¨Œ$½4ø£ ¨Œ/*+ÀKcÊðò¸Øâ²à 05t$*@…#Q-äñ¼$ `UExGT œlª»+0`Jáâp±LrE‚q È1Vb@Zà‹¤Ì-iᤠ-¦¤¤Æ€\æ,do?*½.&“(ršWÈš¬êÁK“U=!ozàN* HXDÈ¢<M2¢EZ d|¤…µ”Ä5VI:@L92žx{R'@ž@$µ9 ©‰Ÿ€¯4§ €ó5ùU ¢"߃³æä!N²>¡ tDåHm&–ÈQâŒàt–¦¾Ðœ§%´ÔB1MÊiØH j t¡`0' -¦=ì£ap4 ˆ~xOCI#ðMÃú¦Ç@2ŒŠ™Èö1YR®Ä3–ÇIÇŒ'>ˆyH/3˜"$¬ ¡`}„!D€E,¬‰B®Yhf5BXSMˬU˜u0‰FÊX¯gbYCÇI8Á‰ÊcWkäŽSd~8Ø‘óUÀdÕpŒ3@Å„'!P \0$Ž¨±å9°Ϟû/m¬ó*üx* ¡à{ô*ÒÑG=€ç ¼ö8‚«¡À6ÞFi ?æóTiˆÎ;²tóþòR ->âlÁ ²P‰ ‚‡€ ‚Š ’ …Ê$¢W[âOv ”Ùê2›Ð4€TDå…†‚‘Ä–ÓÀ`€ÔÓHüà T4$Þ<¸&P´P%áœÈº ùX ƒ‹(•KkŠ Q,4R1J‰‚R];:GþðHqŒŒ¢ÙXk‘ÄJâÍát*%Q4JªÀÜG<š šdÍÉ'©ceÄP&…µ£Y*A¶Âˆ* Ü,Õ\G1Ã\¬í¸Z’ô¨Á$ ø -C¥+Ðu†ÒÒK „Ó¬ƒ—”ˆí¶¦ôˆW ûèeIšF„G- …F8 -’‡üN1K¶“Ô’ÎyÒË›Ø@ûÛßÎ_4ï›nw}&ÜâL„Å›ó_ª÷uúN%š³×gÂ/¨HÇaXP‹ÂðÍ·ßþ¥ ç™úçæfw­d¼ÍäcHÇØ~‡¤¢íªà\-¨ûEvoÔÿâpµ 8A~òÛ‚üfA2ÒÔ ê‘qx» .9&—‹3)ÔrA½($_PïˆC± †:ALÔ¦ &rŸhÔ‚*õ‚z[šõßi#D¤d@• ¦U>ºt4“*XÐúB -» ÞùÁ‹&+/šI%Èßäð±ÉJÀ&+WX>E¾y]ÃQV&¸Âª4„+¬ž"¿]œ©Òp”MÞ‡mr¾‚/l ×Òj`Ú -(YÐd‹ÙŠ6‡¢›ÒAÁ…ñ•V -Ä®sIxÎM)¶…íaz—¤‡å]’†wS‘ »f‡Õ} -ݧ¨…Íý”Çaò"âapŸÜ {ûäm˜Û'9`Oïft¾Ý›ËõæÉçsàùRð›ùR“/qÙÂ~ï•kjGŸÿó_ÿF7Z"ý¥ÓKäßæa½~ƒy9œG{X¢Xöó)kËy¡—n~Qº4x3œwJ-!ßì<ÖõK~ OaWâk±´óÓªåAøäìRyi—p?dŽÎ¹ta~ ºe8À1‚—K´‡ý¼ÒKS(OÝo ¼ËG¦± YŠ½øÔ2ðÂ/уúy9Ô«°¥ÜûÎÊG]ãì£Ó#ËOK5òŒVK³~Þ ¹#ç–â@?bOÂû½r‚?.=uómá[µçOý|à{a—ÖæÍÞA>1Ï_x¹ ‡yõ'?Ϋ#çÈ?ÕO|¦þÖ¨¥èÇEa_õ™Î0®˜ÆJnÉÝì4œ½T{Ó»?‰Ë‘ã0}¨8#Á9/rFŒræOÀq£µT{«þ(uxÜja¨·å¾0ËhZ{_xd4ÛÚeðóiQIõ!aÄãù<ž7Ò-]ïôœgõ®ÛÅŸLp]jCWM·®Ï.ÚMWoºÝâü)Î]ž?o¯Úóggbñí·ç¯ª-¦â-¡ÿRìâýøb[ß ²¯Ø‹fUovõKN`½ÚÖâM~l‡À¯ëu]íj&–,ý¸ú×–PþQ¨`ÕÊL@e]‰Õ\‡®Çõ\úýb÷ƒ$¨n5”¨âÔ!¦ŸÃÌÂõ˜òL9À 󘳢ýÒvõ0áüÐlwÝÞ/ªÝ^šó‹öžØ™ 3¥üjÈø‡æc}Þ5ÛzÕµÛOìj[øm¡GFèáFÉðÝC³¾i6ïØE»mÚu3Ôe5•m¢KàQ2¼ªV¿WïA¾™G>²€"ÿض¿îÃ=k6]Ëž®×MµY ­PÏãÛ”{—u×eüî®fßo>4Ûvóžp~;[eepvyÿé·Å€éí<Ó‘?mv]µ^W]Ón0Õ!‚z;çòe™™:ÒoTž×›z[­Ùe{Ûýzöt»ºk:ÄÓÃvhD!Ža=kWd™)%/´¼Ð"ÉZˆI-ŽWˆqîeW½«¿a—ŸÞ¿…WVìª^ÝmÚuûî»D†®¦ÄR¥J ¸ç¢Æ±°j77=›}è¶y÷°Š³mEI4ä¤'8%åòŠ0³Õ]®@ÿ±^ß×ÛQË3óèG¦åüHM -pŠîcN?4ëQ5vžÏ„à)=¸_±Ÿ6M×T˜™ŒYFŠ,#Å”‘¢g"¥ì"bT‰.ž_±'ì -Ê>ßV÷wÍ -±ÿVÛÛjT4„›kþƒHeóe]vì—ºƒ–»¨î§ò)Ó•£ä"‘|Øn!ñ¦fϪ®zò]5Z®ˆj2‹\6m9jÚ—Ÿ6®ùC…0_§0f»©wÍ»‘›ÞÎs*] GÉú=š$j4{ò„½ZÃêÛ!òjY–í\ŽÚùÏ›æw‚}¾n߯¯Û‡nŒ~3^:UŽÒÿg”EBVwRãf¿žÇ/ó\ŽÒåûõê!6›WŸº;$ÊåjÛÜcmÚlØÅ»nÈçvžO™ñr”ñ¯¶è”Äæ+v¹©îwwíh-ù_”>yÔêÅL—GÚL–X/±«êíP‡£þ!ËVb -ͱ?…d'’xªÌ^%'Å«>¡¹}õ¼BvóÈeæ*5…Ü—â \?[f¬ÒS¸û•År˜G.sT™)d, ïãº~ -¹šG.TÙi™S O¿ž”’îÁ·íz=*„RÁ¬Ê_ªf7Ëe;T£<Ê%rߺÙ-ìtèçs7r5ÛÓ£~T .îšûÔ°¨Â aª¾*[­ÿl±nW¿OÝ«ÉÛ ”lüR8=qºzØîšõ“ËêC[“×tÝ‘(>Ë`,æ«õnÙF¼)Ý -·æ³[Õ´‘UéV=ªOÙeóþ~­¿aO_ÊÀ‡7üJÌzqÂqý2ôï»zûõŽ=hF=ˆ—wéå=–>ºKòÀ´½'TÂþK"´#ciåÈÒ–¥Å9Kkg–¸,•q–2€‰L—veÒ -ˆåÝÕ´¢`©á³ÔšYÞqM­¥ÎÁúí×D®úÍÙ¼'›wó¦NÞ-Ë[;yg'JŠ–Î’‰XÞ§L[§,m›²´eÊòÞeÚeiO”¥ýP–6bXúYžå¥´wÉÒ¾%K{–,ïç¥I–6%ㄯë]û°]Õ;–¶úί>Ý×ðÔ»z뺿wH¿^ç}Ìó§› –?ñ9äÎë¼E9Àµ§âšnY¹zê] y€I1—v×¢z¶Üô;âfôÇ‚mrôæTúr£óDÉÓïëÌíE¿N[‘,íC²¼ y,QÚ3œ’(K”÷!÷¦5EÅ:À¥¼<.ˆÏW0í ±°·íu˜Š–0-F dD‹é‹Êuú‰•…© \œˆ/ø ÌM¿6”š‚æTèT³ -hýH¤«Is¦ÉB.t\>æ‘p€PÝš¾¶ä⢱(ôs -Ú¡‚nAŠS$?-ÄR™K -‰¾ú‹0Ã~ÖCnÈ^vãe¶qjC¯çåÙ)˜aàuR};Ò0w­ü@’/?Q4KÏÊ5Hf¡rY¾t=©²9Z¡Åç«œnÞ|M*›I•SMÈeå@®”Ë…\jªŠÙÖ5̽+ -góª#=gƒµŸ6=s -vî aO«GFÌ+aúe’û‚z‘×9²{w÷'åS“)ëæ”æ}j…²nÒ3žŸ N+$¶4—Ë‹ÊÃG×ÂOÆ\˜d°(~˜ aR³ N ò 4ó9B‘M!Eê½# 窾ãCܱ†NLi(g[ðPrþ†ì»px Jò¼Êçy™Ïó:Ÿç…~ÚTÂ1¯øy¾cS©+gû ¤®C‹LÖ)Ý©€ÒNv6©ì©Êl.¹>fw÷"Žu2³q2¸qfzÁ.-?áÄ*áŠ%X~\ŠI3£Àì ƒ)ytÇP ÌV—‚ÿòÓù¹­”*!»:L­qe˜Ui°Ú‘a°ÆuýjSS÷2Šû¡fU8iUq¤zȪ‡é„Rb.øü H)ÁgôÉjÁŒ`OKêÒ*¹üTËO—}fRç'_s@öÎêEœ•Èö· ýOýo=\Žž—õMS}×~¼&8Ì•Çk±ô!C_lëªk·g/ª«úŸì¦»cwà¶ÝÖ·ì>>:Q/Î_mÛ›‡U½=»ùÐÜßܾÿÈ~;CÒ&¦ú"HÓnžU]}öìL9®%îb”7ê¯\~Íù׋Äï×ûzó4þhŸZû¡éÞDÝh{æüï»úׇnÝl j|¾8¾ÚD×õ§ûŸ¿’=öÖŒ&º¨ºjݾ£$qñnò>µÐ Jz+¾3ßab|â?ÍÑÇÄö›þ¦Wí¬v8rFØ‹9ƒ°q0¨‹…LÏ"é-š€‚ï°HvÈZzE%Ñö n oFo¤¸ÜXât!ÝRKïM¹t4¨7ô‚щNúz Çß`Rà¨ãõ‘–^qz^:J‡5#Žô²½—²·B¯éñïŽþŸÿ¡u|ê9 Χ‡ÆÿG<d&ˆÿ±äAIHnb¬ÑS•!Ú˜^ÞŒÇÁÇÆ -?ˆEçßüå¿⬠-endstream -endobj -486 0 obj -<> -stream -xÚ¥S‹STç¿wÝÝ{A ’x‘­«Ë#"îð2Ã"%(VÞV»ÂúØ…•HKm°Ñ&Ú“Æ8ıQR‚"2µ¼\V^‹B—Š±"…"ÒƤQ´Ó8“ï²gaz—Ìôè|3¿sÎ7çÌw~¿óš‹)š¦×d䦦denI+Óê3 -õÇw)])ñÙ Àÿ7fÙî°È]®ÊÙ" @ñ›h>PÄ®â9ñŠ¢•žN|é%'º¬ò€a_¦ÜišõX+÷ýqlbò;ç«´FƒÒpÜ × -XQéô+JZgtÈð¦Ñit'œÑqÝϨ=¡Õ V«+)­¬^·R¦ וè*tUZ¦°¢Ð§ØPö £3Ë'¨x³OxhXèVÂB| †’£ZŸ7 Æ2ƒ±°BgÐ+l}VèR´è”k`Þ¥ÏÒçèßÒ@¿GÿŽ~Ÿ>O@»RÁM­£dÔ‘àøSר¿Ò*ú‰(Xô±¨Q4 ²­z[̈½ÄëÄ“˜äâq²_.1qrûžÅYÁa–Þ”ÛÛ9¹øëEw9þˆñ‹ÏÙ[øAÈî"â·ý?Q/PÚ¯2ÙQþÛŠÐp7`R'úÎúÏI „±<|1û¢“øI`—>𲱑PýÓý_> -stream -xÚWiTǶnàô€2h´ñ ' ¢‚‰ˆ âˆ33È  D@fd0¨QÔ¤ŒQc0 ‚" 2(àŒŒâ„F½‚&N1êÆ‚^wŸ³¬WyY÷½·ÞûñÖ©îÕ}ªz×®¯öþöW:ŒBÁèèèˆîþ3ýÝÆú$FÄû‡Æ¯7+!v…Üáe>€Ql±µ äï^…ÚWª_«„¯YÉŒ‘T:Ò‡º’¹ž4Tñ!Ãè¦wæ¹±|¿>H¾›Ñ›8àF¡£Ãºx/r°w?':2:%úóˆ–+BSB-Ã3’£#£R,mÃÇXNï0~½9ØYÎOHˆŒ°œœ˜šo/;i){i){ù÷y Ǻ†ºÃsÆŠËNP8ëÌ<Œ†gô™Ì@ƈ1f1fŒ3‚±fF2£˜ÑŒ cËŒaì˜qŒ=ó13žq`™‰Ì'̧Œ3™™ÂÌbf3s˜¹Ìãʸ1îŒ'ãÅx3>Œ/³€ñcü™&YÈ,b‚˜`f1³„™¤Ëè0Ö½`ã:¯t4ºŽº®ºuºwôLôŠ–Š Å^ÅqÖ‘ `sÙ}ì3΂«ä>V%L¾noõ‡éà0`÷@ëß6 7ÜcxÝðQ”ÑãÙÆ×…*ì=¸`ð«L?øöƒKC,‡ÌT): PÅÖ‹*»ú}à{SUšã¢Jñ\m¨ÂἑŠch3Á&8ÝØq¶«î±iÝÏ¿?ð…Æa6K§a5”){.Þ¹rºãôµ¢É«•w]Zg¶Ù–â ‚&Ä:vº×4¯Îd4ñÚíW´¨haUÀy?aŒÿ<Ÿ0÷pôid<Á!gG¿tyéâJp"ð ‘'aÈSà‘Uön‘¦Š¤nwõÁ£EGËÊ—Âc|¨t ›‘îD\‰ÿ÷¡Ç–K;MZ@u°H²"ccbã–ÅøÅxÞŠ¹J.’ã{Ë*¬Ü}ŠÔòõÅiÅé{H”`¤v µ‰gF§K['šþŽ¬[¹ñ`<Ìø`°[ ˆì–S1L8 ö´Ý« -¸û4 BûEhŸ„ÎçÊv%I6 ³“À9>{0úò/P¼…VgÑž¶bœ@Љà¤dœ°Ç-F»¹ø¡Ë¼E'(`ì{&Qc‚‘¦[=GÅ 1«Õ*´:oVà6xž„IxÖá@ø®Âxì€t0ÄÕp~-^ÛµúÖ¬‘ÚæEQ:Û´Ç8#é>胵HóBËãËãê³ZH3©Ë+/+/Ï«%¤9«.®4¶ty^ñ#˲ãâãâ³B‰?]Ùõ]9`°ŒÓÖѨa¡ìÿoM}]Aú¿‰—¿i"õyeeGKóêèãÿêJ±ãÉ[Ä ¼&U¢ó[ó}©ÒF7òj¼É©Ø\ÍUxÂióTì9VkÌi÷ª4sXúÏ¿ ›•Ê¸™°WÔæÞÀ³+yðñöÕ»Ví ÛÖŒóÇtv9xþ•ÒIœ «~Õù[çÙ7LÉ‹ôÎÐÖðV×ûBá;þÆî¦cu-'Z -o“'Ä¥¿Žk·oñeN¥íá8ñOÉÕµu«O$†â³fyDÒÊ$ï':Ä¿!€ƒ™O¼ÑЂ¸¦‡­ -[å™ù)í á¨/¦êÓ*Åe‘‚¸¾y ý¥4'ýÛ•hýZÃ-ÅZûŒôš21ùäД ÁÜô‡ÒË>õ€h¶†ƒóìåqtJIçùÀ ~´ àpŒ®þrõɳ“ Od$^©ØTu6 ä47˜ƒJø ÿòº‚ˆ ]&4ƒ=‚¯‚9  ý< ä -عAÄ;8'âs4Õx‚3e`xÝ‚îa¦f· ìÒ–J†ÒØ©Ýw¤RØÙûšä4’”m"uJa‡v#QF{~ìïQ±WÕéêË"î†2lã]sÜ7ºÊ2vuÜÆ€!Gv'Àðþ³ûÏÞ‚áxz‰ïöÀV%Z´ã¨2üˆPÿÑ× ‡£U¨tEO‚ënn£ˆéS´aª;$Ñ=}´ãÑž{Ÿ¾(Ô_É|h¡bWšÐðÀËÚ›Ú.é&^¡žÁõ@©«w ì¡/m&ÚÝêi§ÚŒÅWœÖR›‹Fèªþ,ð0ì…4D«¥ñªÈ¥‰3 -Ç3•¢¯Ðmç‰ú¤ Ts’¡J‘Áîâ6 ç&dÉò/—“•d•Ðë -uÔíd^«××ÃærøZÓÃj'ËÆËÔS9r/Æç@¶°‹ÚâÖ«ØËýíuåÉÔí8ü;ô6r½ÆšŸX­Ùûæpäa.XæÀ"ú‘zPßsê¢bÿ©N¢Û¿Ù¼ÑD@/—k˜Jäæâ(¢!õAo -míèAùrq‡"7—k`&òÕÞ6 }L(™–à+®<úµŒ‰_1:ãú„“X 1±¯õzèõ0–vƒ“œô…:O”æÿ˜\þüDÔñ¨ É,2{uÀÒˆ¥+g¯±#‚ô²¨Ãc?îã»ö]hVƒsi¬F¾Çý{0åÀ€eÝï_?<'Ç‹ƒlÙ•Zn%‹üäNÖÙø3ñÅÁd™›´tÕÒU³3ÇÁ·‹rÿ©mcáçúZC&ƒ'5×Ïtœ¹QÜE~&`³tíþawmªp xzÿÄœ‘F«9*}$’—É÷ƒ:‚®Ùwà‡×Fžs«LÌO8^S˜s ·˜”“û«ÊKÊKNí»HΑ†Üó9Â…œ«©÷bþ€\¥KŬCóóçæÏÞ5ƒàÇ W:Îœ8sÙ(‚"™·×§$¨$¨2äÔŠS+®‡? }ruUYšp4­(mêþ”o“I< ÊX±2)2iQÎ|Ê©^»æåÏÏŸTn{RÀZ |Á<ƘFI®æE×o]g(Ý)e¾-R¯3Q)j%+ØÝ÷wKV*ô”3Á@ņôׂË}ƒ9‚lŠÓg‹Bg&&#ˆËáÆÆ”XA3„Ž˜Åœr•o>z3F/_ƒ 0Ÿ×?¯¿yåÜý³÷‹_Òwy35ÛÞ—˜^Ír—ŒÌFoÓÍ%ëÏdÞøü‡Ìö¬<¢Ö(±ƒ“6ö çœ”KÇ˙ԧ¢î±EzÍâSNÊè3cµ-pIêॠÍ`ŸpòrTŠ$Ê=½á¼ÚWó Kû*q—z:ß» o=‹ŸÑ•)î¨5&­Îæ(áL¹6åò2m8¢k7†)Á°émÉS¹B›²‹y\˜‹Srqp¬“Ÿ©³èD‚)*厗¼/{?Ž}GÉäÖž¦ÃÍŧ® ßr±’®ø1O\Ó—‡…†ù§Ï!‚íâúŸ-HûÁSõ¥õ¥ûŸn“ᤦ¯Ñ’XÌA=a-÷m÷7wÈiú°M¥~Ù|³…\§]Ï&ר· ]Ý÷ºkÀš€ù+a„ËŸ.oF6 ’cp‹x4$VûWL"¨KÛ§H¿ˆ‹ã=Étâw8òBÔ… ÊB¿õ]~Wå™ÊÓÍE´ hj$Mºx—\Ùq~OÞóÏ• °^œœœ¸Á—VÇ©  ú#°àhQKêrksjמÊ<»æ¬SR„C4^iR¢Y°Ýh;›¥HØOÐ~³ÐºÍåK»ÓEAþÕüè -{¹‹8Š…ª{ð"j8âþ­KÞ$a=­ã:–ÍhEp84}ÔŒ‘hMЃ [ ZÝÕ9êM…Cx›Å9$°$¢%¢iÍCº´<ªi­nk,½A’KIU‹jåBÐ@XÅoAôé+C"CüR¦É%PqF­§±—K¯ ­ ?à»ÕEкpÛ; /VŸ¨®;àêûf‰OÈ—ö]ÚÓz ±D€u¼{¬gªO¶O¶ÇFW2‘¸/9·ä\Òõ-OuØÒ¸r\ƒŸ9>CãS²¤ºÑ$hÜ(û‘ýpøto@«nÛn[° -Wêˆú˜º@c(B~“''¾«(8TpøèÞzr´®¿´æ¤(ËÇí§‚ÀœØÄ{úzúÆÚSU-8ó8Õ™E˜ÚgmC9¼sUŠ8M¨έݖøͲí¡;"¶Å´!È­šê:Õ5|ÕdÆ÷n•þÇüO‡]L^š•Ÿœ°6Š,Hôž˜¢¸¢Ø#©å9“×x­ - Ió£J|L팇``¢Ì#Ë)µVsto7uS %?cîz4º7Ú¦Ô. ‡ -ÿƒ'-Héþ’òâS›”Í[` ¡âá ÓGu/hü‘Ë™-1çaö)e‰¤¾ ²úpMÉ™½-4ë&pwIˆêÌêÌüxJņyÅyÅ}’…:´"øï +/N¯ uèiFˆ`Ör ×ìŠfæÄ;gIbTbTh†åÁÐü„ÊÄÊì³ä’œl³TŠRuÕ Êèîù·æß²©Äam 2óQGÈäv>Ûþüë6rÈn¾O¿6©ˆ7)xQÓVÓv¹ô1õÍ }2~bÑkÅ©Y°Q±kE›æ`Ð3§ªxï‘Ã%%ûªÉáuÀyÔC½€`[s¸¥Ò¬5=ØÖ×#oÐ;)Xz+næöÃNVíþ×4ÐMEÃ[èÔ³ð–Óƨ %_)CØ¿R…ÏJ&r’Èéþ'•âK©:'<®j¬il.é$m¤.ýHØáð}>d²ÐkûkóÆ­ÃãêØ -BÑsË^ï¿,{¹úÝØT@7üÖó[ÏYJOàþžžóÒiöw];}íô¹ëU¿û%ŸVÎÜÞóîŸý¼û7}gsËa‹[UêzºÐ`ŽämjZ÷«°ÿ?é[pÐ؈·Icb…ÿ±Àïe‚0u>²ø¡ùÿMβ+z ºÿ#‘ÍQÍ(H½M‰ØÚüiÿ7ž[IyN/}zä2Ês©Ói6êàñ¹¼¯éHÓ‘úÚŠ&ʺ_ÌÙìOÂm4\TqODkvÞòYíÂ’…%Þ{çzÒ°š>RfÞ÷¹UãˆÎQ£{‚@)׋OÕ‡äÚ5¸¯Yá³â³à(O!‹ _3û7ºƒ#ÏJn6o>ßuè©$e[m,‚ãÊÄQÛÂd Û4.ðX¤§Ÿ³kN¬9WVVîQ1±rÌqϲ¸ ²¨jÎ*~fÞ@Îm8—u.ëBzËêB¢‡\Äa¥hFä¡›8#pZ@ÄtbKìZ\ž¿¢4ª6öDì•U?G¶'ŸM­J¯Ê8”‘—-äeî\CV 1¨gHçu £»äƾö#í¥§OT\ ÁE3ækiº PÕ4ð6‡1½ƒ'dÍØâašËåÞÎêZ}cÕƒ•´‹j»{òú1òà ×nØ¿Î/k’i–Ó:·Ü%B.÷UÁ—‡6—m:º©|SŦ£¹e¹¥›J7nÉÃaR…’Ê/4×Vd~š†ºë¦l ¢s¤Áø40J{Š¢´A‰­Ü¢G¸ÏÁr>»“Aû…¬á -%S醨5ÖÞ`á5ë¤!°V;„…?8í`é†ÄH'Y|ÍaJ’ü,¯MÓ£|û^f¤¸Æ‡Ç˜†E/Í $ËIø7+w ¸‰oX×ÛHÞ‘¥?µÝo»ü¤ô¥8•âw%þÄax¯~šw–ÇÆyÔËk¯f4c¤Z_i¤ÉÔPȲµ¼´U=›…Ž˜-eòÚ¼Þ@]y£ôšžBèzÁi×Þ|€ëpÀ@«‘T:ô?7xˆŠ -endstream -endobj -491 0 obj -<> -stream -xÚcd`aa`dd ów -öÐö/HÍ NÌ+ÖuÊÏIIøÊq1°thÈwwÃ<ì2¿yþ¼‘áê•áèeý!ÃðC–ñ‡Óyæ",² Aä~yMDJ ÆB ¬ŒŒ<î¡q¥y™nN††z†.™é™%™U©) -)‰%‰ -Éù•E™é% -Éš -F†º@ÂPGÁ=??='UÁ9¿¨ ¿(±$3?OäXk@®…ó€V1±0­å`lg`fdTv;(Ãrö{¨ ë6Q™_^?ïìKe~m•ayö“Wæ·;߀Z ¿×²•ý–Íúmû;’ã{>ÛýïǾ›¬ù.ÎÁ'ÃÚùsÞ/^Ñï•¿ç\dïÞ> -stream -xÚ=S{PSç?’œSJƒU£pM!(±*¢¤¾•K‹âå!‚" 1FIxEå"c[‡RWÛZl/m@„"0*b$h‘””µ­Ú ê…«ÕÒqjÇGçú%lpî98Ó?Îï·{Î~ßîïì.M MÓ’´˜¤ø¸ÔàƒZ—¤Ô…¬Õçíä?lô÷¢•óþ2¼)z»I½ŽHÙ#B§œrÎ¥oz8çy:§ Þ (:âuƒ|xôŸÂ!5‹QÃTJLÓ¬xºt΂ЕïDm¨8V[ª.Ô/Òéuj‹÷ðv±¦PÍ{»ô%…é|Crz –äsÉ'¢! RJ22•™ªc×Ôô9–Ë?mpFk§­§­ÝõƒœJ×jâàv"1/冋–ΪGÖÜüýÚÿ¤ÝI{XH( ¡@Äçïÿzÿ7+7>¼'ßE„##r ÎätA`b -ÙrÑQÂÔ=hu´:º/ü`¾jþÅô?èûA{9K€Éø,æ“•€•€"QŒèƒñ˜xŽu6ºý% ¥iGŸ²Ïx nÃåú ]«¥·Î×ࢱMeVÖ$A$¬Ú§ÉÒd¦–ļl•sT*ü^‚€ÂÜ¥±Kc³WÀlˆ¬iOhOø.i4e~zdbflVlIp¹_?<5E¦jÉRn`B€L9ýðç‡7.<â CE?msd † mÿíüµK–~‹ýÄUø7*ûÞ²ÁåšQÆ­ÒÞÃx|}”̾r7k`G»êŒú¸2aËÞlµV›XÎíV²IeV™÷tÁ·,1ºžK.Agy«¡ÕP³¶ƒ²|WAnAîö¼Ø¼è֌ւS…æòÓpºLíæ“­Íçª{9y{êÆŸ CEîÀø{ÑBE÷+‡½ÅΖéÿ¦¶-N -endstream -endobj -495 0 obj -<> -stream -xÚyTÙ¶v!tu)L«”¥àhW먈:fÇ8 -Š`1`–‘l+I’䜹›$©˜L¥‚q09;:†ë8ã8^ÿ{Õ »\‡yïj.ïï½ÿ[ÿZZPçœÚy{ïƒeaA™™™õ˜¿déÔYS»iƒ¼#Ã]C‚ç|9ß/ RÚ/~N‰½ÌÄÞV”¨î òæ¢ENy¯~JÑ›¢ÌÕ]ɳCHgéùMò¤4ä1€µ¦(3JaVlvÓì…Ùo#†3ÐcþbûÁƒ‡L Ó¬ŽÐŒ?~¼Æ;FÓ¶£qò ×k_¢üCBƒü‚#†jøùi"Vûiüµ~šisÝ—ÎtsÑ tqóиøû…yjÜ#½µ>š9Z¿àp?{H˜&°õEãì«Ð†‡Õ8†k¼4á¡~>Zò‘_´_¨´1Dê¤ '¿k´áš€0¯à?_MDˆFìé+±'ëþ!ÁšÐ°²Dv)÷ðˆpŸ0mh„†ptwrn•1bµW„Ä7\K¶5!þä¤oˆO¤¤Mû^„—68\á!ññöÓøjÃC½b_B*4Lk!2\`â>Dæàæèn¤+YŤŸF¦µWhh`ŒñÛã©vþÚˆp¿@ÿ¡&üÿy¥5T4$VB4s4R´z…}´HQfʾævì¤g«–kÌH¸P”‚¢)†êHu¢,)+ê3JEu¦ºP])kŠ¥ºQÕêAÙP¶TOêsª7¥¦xªÕ—ú‚êGõ§PvÔ@ÊžD ¡¾¤†RèáÔj$5ŠM¡¾¢ÆRã¨ñÔjõ55™šB9PŽÔTjåDM§œ)j5“šEͦæP®”5—r§æQó©ÔBʃZD-¦–PK©eÔrjåI}C-‘"¸!ÿÄì@‡YÖt8dnfž`ÞlþÌ‚²èmájÑhŠ¿èyô9å–¿¯ Ð|ßǦOBŸg}U0@|ÃÕãâ‚0}r5²­FzCÁ–z(¶9ÕýS«*˜'€µ`&ö‘{AWëK*ÊSKbø‘t%„åU¥m"ÊHËÑ6Ãé dµ$ÏRš,­§·­O cRÓôéÕü:[+Fš~¤ãp˜"M™¤O5¨ËQ±.¿zDÚ¼ ãqXnZ.¡d@¶å¨D—W]IÖŸ˜d˜H¯kN"7œÖƒµB5 \ÅyÐ[ÔZƒBˆÞ ÐU`¯Áñ76e®;š†üªv¬ß·#årÒµÄÊÌ͉uñëP3ÇÕó+5{ÏÍØ—u8§:³$1 é©1ü$eLIjEy‰¾Z]©ÜÜÑ”Ã`KÓ"X*ß.ŸEÑᘽCjÖé¦U¸¢Š×—1앨ò„:´•9{æè õEt6°( ?®8£1Ò·ü%;¤:CŸ &–JÉØQêYÈœR²sªÓõ‰{µ*i?8ìVzšrÿ³ýä¿9üÉÜŒ… \\N/¸~õÌ™«·Sx”ÚN‰GÞǘƒù} `¤?{Å¡ËÕ×w6mª¯¯9„¡úèMÚ+«]Ðlf¤ÍŽq Z©ÕF{!/¤­‰¬jŠ¹Ž.3*Døì!–»+Šv—I2Ù6…HIR—_˜6‡lZÊ1¯Œ–t-• wÛ„˜§ q`-NüöoÐYà -”g]:ÿã3èŸÕî@ç™cÙ«ÝЂÿåÑá‰A(†IÕu ¨¸¸°¢òÂw×sÿš›3<£C¾æà8ÑaÂTf®’½!ª¿7ù/@Ùjkq†Mx‰à—Ÿ—Ÿ—‡.lÙ -e~œrÍN½-ó ŠŠKˆiM-)Ð -òKËvÔ¯=ƒ˜ïÏ/›Å#¯_¯˜¨”¸Ü¥ˆ‰Mió"{ãõã™_Ož2k8¿-¨Y±7½(+?1)©©)ϾÃû,ž\š?Åqæ܉f]¸w÷ò¹Ç¼ÄW+Y‘P€£ÌE-üÅåEçÅ£T4;Ö5ä›e“VLAÑ(¦ ¥(­(+/“8'-59zoÜaþ -º²åÛ¦»—ž!`˜6T¸Ó )_aªÿý±/Ô·PóAá1“ÑÌ…“·6À'Ê1Óç_}øììÕ»üutÒsÛØ‚T”[AœY+öú ”Íd=Ø´¾cß¾ ¬nC='ŽÁñEÙE9ȶçØäü*@ÅYÅ©E`© ‡¾¨°élQAnAùo“UœQH<„²r2³IM˜O:3±~”¡¦» 5EwÜïÓ;*q £e Ägdæg#Û ”‘•‘“m““Mð™Ô }&^jƒÉ#53+¥Û’ -–Ÿ—mSQ’UL„-Ì/*`T®ÂÆZ`‘—âéï|N"ê+‚ö{ŒiÉ#CzIR>;•¿¸ÜŽã ÎQã±JäTíºwñÞ%GÂ/ æîýÝ»JIÕäÓQnnrJTŒwÒ*´­®=Ô{]``´l.¿|qýøÒéêÊþyŽnh,ãtÎã‰ÕÒ¼Ú|æERvBn2bæù4œ¸pöð^‚;šˆ•À;ƒíSLV€á&àð§ñR±FWɶ­hìÒ©¤? 5“èf°S@!•$šT‰&Å ¬!N?Ÿ]$¶y$Å»œ‡ŒÂyúÅÝOytmÕ±±;ÏïÞºd;^¤ÆÓ©fZÀ~øÁ8å3žó\ݾùŠÇvx q`¯¼ˆêÓwGï‹Ü´0® –:©Uq‚ÈÔB'aM­õ%Aì$%c˜XÈ­hœ[7Í@îë<—¯Z2¹1ã”øsèŒ;C/õetqËñ¦­ueU¨”1¤é’Ôé$²ÒÓæºèßq…ººôCÅQÓÄ0G€µÐ±Í•–û§X~\…¬4-’àñ zÁºÕi‹‰Ãúz½ø;Jt~ûå#Âþ}UgÐOè¶wá’¼Øâ´Ýû %«ªÉÐ%ÕLP²÷<÷.¬ž‰f¢yž^K—:"'Æ‘t@ô‡qêïÐÕêóõŒ,°­Ø,Õ bç!+Ã}èªÒ¶ÜX)Fn‘u1V²ÈÆ~x3ø5zwKK¤'mê„4¦SG·Xk+*ÖpÀËlr[n“–HÒ9™Þoˌ̷“ébtå:îÑWGæÞÁßØþhâ·€v€…þ'„0XfS)cÔ©U@}z ßHã=8_ù÷”&u&ÓÿÎדMäÚ¥p`+d=Ñçï2£$˜¾û{Kä`¨/þ¨ç·*ÛHÝD¡ôôG0‚t9º–HGw{Y—ô‘{ìh<¿Á#àbàG®Ð~üõ:Š‘:Fá?mŒÉ¸zƒDDâÄšz™%ìM–ºÛâCãsbž¢ÏGÖ‘sd -ч†s-y - ×J³“‚8šhö-‡1;àx<ä'ðЛ J“I¿Þ÷á½-€ùÓ¸î=+±Ó_‚4 yI~(a¾Z -8zÐ@ÿt÷åËq·ûð8þße+ÄY@Áã‡W¸8O›?šWa¥@Zèk£Äl4œ#´Õ…@7ã;@¢A›j„û<Å]€1Ë&=3+¥3ÆÉ­‘f ïpÙ5ÃN´UfoKaØò)†ìJÄúnWm™T(snvàúØô(”ˆÒòÃõ dˆ( FQ(.'(ƒ9.>çþŸÆð ¶ÕFcr`Cß_}Äã9þŠ9kŠ’@zô Ù7çðËÝMÇÐæé¸Û¤fåýï‚ -- ¾TÞ¾æ1wöÄÅöHl#Ú*ˆ¹é$AÞ/ñJ< V*ËØvÓœˆÝ1RÄʲ‡éôlÆÁ’”kˆd¦6¦±íòÔ?߃œ`#+ ºò²]¬Ä±ãÒدÇC`½b¿L&™Ôu’LXûob¡/­Â]„÷=Û/ .p¯e”Ô‚Úô>ˆVÁ°÷j.½"³0•Œ9)Ò•—U˜ÒÍGIBQV)bJKõ¥ÒUUQV ÓNÝx™4Ž3z)!Ñ(†ú} ´ö÷ׄø·"æ°3OOËÉB­c¡””‚¸Ú€v-I)úèZ)CbÒõ„™(:pY,}oA«ÄÞâÛÒЧ•Æê2Ë‘mey™ -r sÉø@@'lk’SçoP±aâXĽ2©ÊÆ{@-}ËåÔPµ?š•¸0:9+#¥H÷f¥ê|THÐòAÝö⽈¹sbÍ2ÞIé^X´’tD]ǸæÙÔ)—¿TßD¶^<Ë°{-fÌñwBŒ³gý©K·ÿÁAÇ2ö¦¶ÉòÖ(Ë&Py -ìBèGB³KL½âÂæ–š]Ö¾òê9Í=:ý‚öŽ4¯ß@Wè2ä5VñìaG´`íR'œ¿ãþù`ÂöÆâÙÆ“¿yóðÑ?Œùo&hk­Ÿ -ðö{qhÅyïõ¨q#â÷<Ûàn¿ƒüUtµödÃöš Õ¨Œ!£R -éÖ³sÒÒ/w ŸJΚM¾÷;t¸:ðOÑ-¯ÂEù±Å鲞o\M+†E«åj^à½ÑäÇÅ\£š²N-™^vkÞBÛr&3Ãë`ɳa÷Ð…†£7™‘¯”rÑ8ÞroLü‚g÷ØMœ`o7éÑ[IE‰L`™Âª`9‡š²kö<™xr0!ÝÍn(þ wÿ³|þ¬Ž6ˆf|¦4‡dú¬é*Ý•N¼‘ð;#XTÿrûÜkôÝu¯nìHŸ 0€Ds,‰æ:b5˜'K–yé WÕ›ÐìmÙÇ2ÊGL™^WÆ£ÒŒ’¤‚µÅÎ%~ˆ1{ÑTÞm”)Ÿãç2D‚›¦®;“ô$íÚ0¡FÓýd4ÝCqÁ=¯-Ú)ùA1ôKÌ`æåPðìÛ¨yWãUsJ….jÌÈhÓô ´¯ªaßÎÝå»À°ýÄÍJ¶o»$æVàI¡Ü«;Žƒ†:8 êpïÕ¯wïýj¬ÛF÷ëö©nÿ‹ïZjV¶¾•¦W!íCÛâ :ÚPÞ|y; l¢M難·¬/—þ’€‘§RŽ“íí ô£™ç‡ªÝWÄ·6Ë¿ûÍÊÎû -ìKÒ‹áð(™bðsa²ô½Ħ²î½XŸkiöFÛ -qª™)2ÙkZlÃþ³»·4 ¦~×j_ßuÒöþs;ë@6ìZãG¦¥6èó+ŽÏS{£5Q¾K#­Ý¼ -1¬» -ŽÑ.gÚå»òÖ[ -6"ÜD"œƒL¸+D8OS!üÈÌPLïJ  x·oÞQº@5uë·D•‡£N+s¨™ü&·„þÞåüH5ëçÍfZ‘Rs:‡ifH¸ÔõÍ@`Áúí?@¬Ý?p72üþxbßc'ôûb¡'~ã?JÝvpIÀ}ŒÍ½ùžäìDû“HÎ>¼÷þ_¡ã}txÁsnÅÕ…;'èè2d8¶Ä–¯†AgЙM: -í•raØ[&qî×~bõÿ.¡‰ ´ûúÞ«Wîþ“oud ` >’ó¤¬eèØ”´¤ÄÒ´*þ~>Øô7HxéÊÊMŽ ¬£ÙáÐáMÃæF´ Õ&×E”¤çç–H€ª'€ªÏÐÅV¬Û©FKв¡c™Öþž–êÚ;a}#T -Q¤¿w9nõ.Ï óc?uù,VmÙ»=ýnÚéŒmé[H¿-¾* E0‹fúŽúÊy_“ºDYž¦O2vßãZ{ûÖ»éíùŸˆ½B\¡xræ>¢ë7®Ýèop+¥ÏȬ ½}TYrªdŸÙ}W} -.òÌ+I/k«‹7Ho/ÕÅÄ´äXcúMëZ3èO"Ì,•íW%ØÒQihñ&Úáâò_ÿôþÆ?že¢ìÜ´Lߧؤ³Xµç$µª”7úa’Œ7XÛï·¬¯8q÷dÑ­­°R65ã -šm\8×-hb–ø<ÁÃi5“íIß.þAÍ:]E·ŸnnËU3ø©;L­‚ Ød1~Ævø¹"šÆƒà¹âŠ¬—Ý34Lj±"#~-É3ѵûB°æÓ}í Úß :Åz ÖMƒ;Šo?}°†~Jhž¤‚²¸LñAÜÇÂÁX¡(ùt/ŒÆ½qwܺ+š>=”Ð0ÀsÞ§ÊÖÖDÏ…&Xoð½bÖ§»ýTc=ò&~·¬Yh@»Ñ ÷W`öã+€Ì¢A/V+*>-t3Çà§x’7®©ÛSgØHúì"LvEsHº6;štf(IÒ§m8}¸é¼Z:¾¯nËÞ‚Ê<] *GdpË (ߊöJ¤Î¯jZŸš–¤F %™59»³7‡"­Äy¢ö„¯ OŽBÞ„Çj¡™„Y<<áRPVv|dØêðØp‡ußìõ8¯[‹Ö °x­ïúˆ´”&ýá±´uÑ9cÐoEU¨&eËúK‹6&íF»ÐŽêz¡ªVW†tR«œ¬V­¯ÇÔ’Ô®­¥ÕÌ ýÿÛªãáN‚åa++Áê3ñu·ÿžŒ1È -endstream -endobj -497 0 obj -<> -stream -xÚZ XSgÖ¾rsk-¶Æk¡KmÕ¶Z—ZglÇŽK­Ö¥¸/ˆB€°$! KHdÂ!$!awQQk]jµ­uì:m§ÖvÚi¬¶ýâ\þå» ˆöŸg}‚æÞï;ç{Ï9ïyϧ"$„àp8F,˜??bãäIÊŽ4å2éòçÈ’cÙG/ù'|Op|OŽ$|‚ Ÿ0Ø7&d;³ûö+·î“üþ 2b?7?Œ?‰qøãéìÑ7ˆà\N)çÎ5ÎS§ÏzfÝê ÏNž<åU™\­Ä'¨D3^zé%ѵ¨ï‰h¡X)‰—Š&â?¤‹“eò±T5U´F,©Ä¢8I²Xôꊕ‘K"‹žY±N´X,+¢“E+Óv$KbDË%1b©Rü¬(N¦%þ"Š‘Ic%*‰Lªœ*š¯E‹”rqŒ/gƈåìƒ)"¹X‘"Q*ñŸE¥(^-U‰cE*™H"IN‹eÍãïãdR•H®áç)ø Þj¥L©RÆ($r•[\¹pQÀGUB´Šµ«”àÇ"Y~3V“Æžfà™*Z"UŠTâLkg‡X+QÊ“£ÕØ.ÞJ®ø]HSJ¤ñw¬O)ÄñÑŠØd±Ò¿/‹Êó‰:Z.OVû×Êüo Ø—¨”â丩wbðŸE%*"œ+2Ñr›-C¾!ÿibRÐb*5;hñgb>ñjðëœå!«ƒÖs¶ÑTWÁÓÙ‚àñ1‚xˆE|å‘ÍüðÈ¿FWðçð/És…Î6ö«G7‡=f -Ÿ~í±‰}üxúÓž¸ôäÊ'ÿ&H -…gEωŠE¿…2£ nÏY´ŠóÛ­?]¸Œnùþ‡†¦Â2³ÝP©±g´F}Ž)×b9•Ê›¥]¹ ^—O­û)ãCmØ[¹ ™@mJ\*X ë»Í&›Á–]ª ¬Õ™ô^Á…ÕPbph« ÕàûÎ*W[v‰å šJ v­Ûà†J¨´9*lŽ"´P_òny.\‚¯ávŸ¼9µ)¾êŠ¥®°e 4S]ûÏ Àþ¬âÌRy¶ª ²Ìá*³[ÐDµñÀ; mÍ™Õr0€Ñ’›—_”_TX”]f(6[óŠŒÖ<ȵR¡Hv;˜^ÄX -rÁæp­Kç8Ái³U¡q¨6,¹Qp°oÉí‘täTñ Îvf ˆ€ êdxWnëæŠÜ Zëꚅഔꫡ¤àg¸±û‡Pˆ£ÊZ -Nª9­N*EYx74ï&MK“ !Çjvh.3!m“aLLžü¢×XÌCÉëÒZuà´×﹊‚¡1ð  xÄ[ˆ¸Ò£ºr%°¾£Ç~Ïw­‡ƒ.hé®ÖÖ®.ikœPMƧ¤ÄÇïJé†ú¬¾ßh‡ûVN5ªêåèôZ óá¿fPèAO)TM‚¨pTvP¡Z¯/ÒËùÒ‹tÞ`Ÿ 14|+û<ò¤¤3ªf5¬†¨LI|äÙË0šÂƒé-/÷lèˆ?–yÎÀ±šŽÎž“-ŸÃ·óõÏô­î÷¯\é^ü”€áðžÚ²xáÂ-ïß„‚—ƒŠ½ÁèæíÑ4“°6F¯Ëi¸Ôƒ=p@qQMÉ×õa½ÏO䥂©Ð`Ö YZ›¦Â`3¹ -êB§IT—í¬tØ«À UÆJC_f´ÊšHâý}K½ß$l"ÆK_ûølOsãOß4ì…K -žþ%*X «3bâ%É©› ‰J­OkÔB³Ä]ÞVdu8ëšöTîêROìF!H²Ò&Mߺ#SÃÌa„Ôxߦk†âß\“¸Þ D× 1h쵫¿ àBâÉeû)þÌH$£/Žß¹5~ùò­'Nî¼(äßdZBÞ=³1rSÜâÅ›ºNôœÚQª½‰Æ±gç `â¥è$­bFM›9s`^QîNM©ÞjÀi¥RÉb¦~ ¼_|ï‹›>kpEý×Ô£â÷#:fÃë°)3>F§Þ«)†ûÕ´_=°·æØ Jx´|Sdüv Ömï>{iïþw„— 3®òE|poúý§#À~¿wàû¸¡¨F.^ï´;¡&J-e¥…Ö0³KSž FÐä˜{0 a¾LJ¹¹¼Àá.¨*/uYÊˬeP5§Ê‰ñgÔB3.&\•cÈu8˜¬æbS‘%¬4»*×eP^ì,õ-@ a½ PJnin±³!+'OWh +0YL`µ=§'xÏzÑ gÜýçwXYÑ‚žë]Ç–$z»©ÜÒTe/_Kö±ì4ègYþ/¾$4…„F¶“èû%˜IŸAFm`ì¼qðì˜ÛúO£²æâÓd»õ§qXíX'±§iÄšÎ1HÓéLK.(§±oäù‡/žÜ›ôïæ=#©¿b|}™ÍÝI¸{Pª)<œxQ"¦ªç‘™fÆi‡÷ ½Ý(°‡îQ †À~fŸl/®©†Ö!f&’ -0Þå»ÃdgK®’Ï$¢ñ•dØ­ö{íy×biº½€êå›yC¾Æ:±‡¿ã¡Þš -”#ûj s|ô ²Ê½nªÌî/næ4y_Øoôò'’ÃeP?&×¹Û…C¶›8`7¤$lÞŽÍŸ¹Ëü naïoþL/õ=h°/ê¾d´gp¡Ý|w³å3Ib3ØãÉôŒ>èEW½üOÐx_8F0;¹ß’(íä2~Gå¢òÚÃÇçÝ#úLÉ<Îô0ÔÃe8$ÿHaQ!–É9žŸW€Ëõ-¥/ª¼Ø4–ú=Mú.=iÂøô)–„~<¯zQ9†s¾O@#g¯€û“/ƒÜ_[Ý& -çØûù‡9B2å¾'¸ ü½J#ÿMû=ô÷N­ý {xÊ÷=ÛÀ#Ì“X²¾‚ðO4MA|ô$š-„’?Y~~}ÏÒæ×qm†üôשXŸ½4õ¹g_þqQÈçßý“Ž^/Zæçõ¯,ïl¦ÿI~=îÃÇÛöT…n¬£g|ÊðLöðìü7)#qe `ø é㇠äåƒ «×D',2#Ø  P/šåwJáwJAÿ@Ô^g‚zž£>»{·ª»¾,תJGF¿×½ùÀÕý{ŽÁ;Ô/3®2cŒ’üO¹î¹ûs]‰!h -á]ìNÚùFü…}¡ùâ*º…g)_ ;vã¦it±ÓCŒzEBݶò8už:w¢Vï^BÚ¦nÓ_Ê}?§*¿6·.Ç•éÔöU‰óK`y«¾Ó?}—캒ì@ѱ=‹eù%¼­Ué{UP¶Óí9žzJ÷&vøÉëÜÂÉÌ1mÉb׋Uó\yÖ GZ¹¶j©C=íï.À1¹=¦,  Ìßé]w Ûéú*à ÷7/âà ûS -âLe;‘¾¿UõÏóelk\×[Á¬ãõ=÷÷Ý!Íæ»ßzùKy÷"¶ -?Æšû'ǶŸøb0¿½…ž¦™§ÑunÍ0fg#âçb&|hœ3\n³½ÀVè´µ7#ì'Eû2j¡¬È^î.uyÀ3„Ë™°ayâÔ—›l–f <9…vÑß1»¸(ˆ<ïËØU⮆æð¡õèýóí™À4ÎEéܧȹLz|ì3:-8ËŽ2úUÃÚsV /ô »“ºSýB\›ÑÞoû£· GoªoÛåÆ¥Á<6a΄ý< =&< ‡*»;¨µ¼ q‰«XÌÜc 5úy…ˆóÅg¿ -ÑíªûÇg#œEúöÊy¯._9wîç>¼záÜÇBV•éí“ähÃ@ýY yƒõîú3³õ7äé½âç”áøcÂ2£eä™ÓuΣ°jòÜÙîì9 ¡˜¹¬ºö[4$÷×sÈ0u=p3ZNz¾;N°¶fÄìèˆÏ¤hÄ,/ÿ;¬·—ÐÌ"Œ›ñqĸ}Êè™ÐûËZôãý/ñ:þlŸ‡fFŒGQ¢÷ŽnGK'±·~Ih6]íº9=G—¯‡ìðÀX?§fŽ¡I$™ñT6ânK¿>¢îüò… ÁQɵûqÊÞipfSü¯æ,ç¢oŠw_Êä_DšxÁàËì,å×µs®bCXÌý›i@ š2­k³Þ9wc6Dý>f\KôŒ>àEÁìoþq4Gi*iÄ*=×"-ÈÊ„TH®Sï-¤=Oœv÷Áµþ„4 - hÿó]5å¸7:reBæâ÷¼!¯íN«³¯utVÙ1"Mv½Ôÿ;5á-ÄB$ã}´æ­y‚¤M–¤´'VÅB -ddÔ€Ïÿ`Ç(þ´;üü‡Õ ‡¤º¬}¬ÃþAqhá&çÐTŽŒ-%ùŸ=ÑæîêB‹j“YäŸNpŒŽÿ>¤úŽ¼”ç2ÆìJlØQ±Ö‚Dµ¥¿Má!ë2å[¾õ4ó Èiv,"ŸFì/ò&‹h†¼ÅŒN¢¿¾¼rþ¼E«^xaÑÙ>¾|æ[!KOˆçE¦;ù]údÌaÍ9öºëæ·h¢Ÿú‘ ߀hͦhêH óîœyh³ŽÐ oåGm-¸‹¬Éî—[«Hô¬/Š>톦ŒÖôš8H¤^{#rÖ̈ž+h«éj­mò´ÛB_ÙÏôŽþmñßn¶ê'³ ³ÀœçÏà¡lÉ{ÏÿÇßµ÷Ôœ¬è¢I$ú?>ÝÛÐ.päUêðÃ<PÍõõ-B¨69ÓÝÉMIÎØâ¬?­èÉu„Y!ˆ½ò¸D;Ó\lªl'ÖÁlCïâaM‘$ЂÁdÌŒ­ÞaÛÄ^ÄÍZý'!Ì9ƒDÚ7͵ùnS­±"t”j}Æ2Á:ˆ®6vi\©,`…f ܉¼À5—CSe¬† -°—Û÷gžÐŸa§ÇïÏa¹Ñzh[CŠ;¦|žc™Ý\”]¢)ÕÛÁNUsŸĘ·dø/õ¢Ç<Dâ,Hd»ë’þ€Ýã>É5²ÿß³úîœ 9Ø#=¤R3‡÷Y°‡I"ÿpe="'á3÷ñú½ng4` €S.˜,Y†­ª¨Üõ YYN…¹ÌbdzJ¨Î‹ÙŠã¯È`_Y âÃ'5{¿‰¥ä†µ -]$P+dõÇ…h7NÚ¡=ª]Öò¢°*ü&¬¬Ù¾?¥MyPwNC›«ç(õÞpÖa5ÿ8ŒÎiJ3”Ä-!ïÕ{û§‡»‹d@õ»Hô'æî-ü}íúM¿ÿ&²ß7Ñú -³„{üú¶ÝÊÞ„™d¦’é )0št£†½è «¿^ËÈæùôw&¹‚y!=ß6ìK¸Ë>XÉøw™† °K4Y€¥u‡å+æÛ°ïûñ=€ðl†‚:ŠùзzúàÕ2È*ÓÕè""Ã"Ž»Ëñ±«Ã¡›²ëm÷4Å^ß 1 'Œ™ÀŒ‘X2ÔÒ×bƒÙk°!4è+dΫo‡}¡0i3AŽ-d³×€Î‚ÆALì²;XŒweTK¬K|¾ `^1½–!¸“†ƒ= ·’†©Ì\òH”å‹hï?3{g¸ƒØ–A%Õ«˜‘Œ’!‘roQm5ì²Ó Ò4¸ÅȪջó©PT„‹ñ†OMC³ÍÞRÔjõÔâ1{WšG²hÅŠ…f6äfcjA»J -)ü¦‚RÈ(f>oáù´×yv  %£Vj•Yþß<8™çV¶Ö·”ºá6R‚”hi ²B©%#/O©Ëè¸|þüÂ6šKmMÅmÅnöþmW–;igj±Ù?ïÏç]YqþµÄ´ŒÈ<é­–‹ý¯ ¶±¡$«Aª’™³`;¶±ø—‚[£ù¹>­ 3@oÊ+uº\ÀÂߦ®¤øó¿#¯ŒÜ‘Õ±[¥IúLȤä ÊfA5ØJ›ÚšÛvØ ÂP«¦ø¹ç×íMßû`Wu×áö}6vŒðÿGh†Ç·ÄƒF{<R0"¸|ÂÿŽ|àƈ~g9òÆȇ|?Žù?ûéÓ -endstream -endobj -499 0 obj -<> -stream -xÚ­x T׶v1Tu!8[@ÇVp@Aq DDdž•Iæ¡™¡A‰C®yû^£Æy@PF™AdTfDœ0q$jŒ ×x=Õ}Þ -½w%ÿ]o­·Þ{«EõªÚç|gïo{ŸV¡ÔÕ)uë×zú:»'E$¬ IÍwL ‰“† ܧ¡Ô÷êüëFK4²_٠Ѹ/aCi~*ÅKTøiªüt5žSß¡¥:¢T‚&’+õv¼p˜ \uÉE¼f¥®¢B[{ø.4]hf+’¦J3"ÂõÃCRCôÓ¶¤H£¢Sõ ÃŒô™-4›O. Môí£â"ôW'¦$%¦„¤JL úRýHÿõ¬­E«hRcU>£$ª3Ô樫/d–S«ÄC‰(-j5žšJM£¦SzÔLj5›2 æR†”eBͧL©”µˆZL-¡–R˨Ï)sÊ‚²¡VS¶ÔÊŽ²§(Gʉr¦\(WÊr§<(OÊ‹ZKyS>Ô:j=µò¥ü(*Z®J©P³TlT­UƒT“T ÕÆ©™¨­Q W+U_­~…¶¡ãæsf+sˆy'úBô+{NcŒÆe§cìÇìó»æTÍF­­;c“ÇéŽ;5¾cÂÊ »& M4¸zâ‡I'ýcòÉ)VSp ¸ãÜ°¶‰v¶ömÏu6ê$IÔ¯# }‘“(œäÉh8M¢¨æ$ê/äc%ø3Ñ8 ³AB7 ¯`cfä6yF&ŒB,?Æ Txc5=°ËZ![”¶0Á1:8:8<-XÛè.$Òƒ{GžÌ,ì)««¨­Î­ýsð<ýFXSX£Ç9+X )^¼6®Œ1ÎɘX æ±¹à{Á¯3e:¡ådSÛPr¡¡ôJYWáÀ™§¹O?€ÛìH²<»ó@À¯LûLÇ t¿4_YDbrbR\f4Õ)ÀxpäQÎ9‹zËkËkkrêFa˜üFÓŸaH bþ÷ƒÀè"0KÙÆÒšúÒî²îÂ;9OsžywØq:@ž&¡m¹6¸°­0¡(þx(l€ð/¥›â6Å%%F'G'»DšxßKºa »³º¦º¦íÌ-`q¶/ælÀ3'¨ncmZ'܆æókÎTUT–V–öT=©GÝÊ5º+ÝœB}Ò|ÒÖfy«4B20]¶¨ß¹ßù§X¤/`ðø@Ñ@ѽƇýH[è¢@¡³h,Òx¦÷£…blÉøãñŽ†Ëlðy^¬ÛVx¹°¹ © ¶XX¨¨"§:·úH´Àó„[ž­­–ù†€5À4ÆÖÞÖ1z`ŒËfßĪx¦ý[÷Õî«â—!;N¡äÉõ8¥šÁë🡙ÊÏø©x†rªRŒgŠÆÉ'·óRŽOeÊÐ"Z)cÆñ'.Þå@z(ùtÆéŒs;ÏC=Tœ,8_Pr¬¡|gÁ–S§R%@DlKŽKŒÏ$Þdÿ‡fh‰‚á æPÊé-­.«Ââ‚’ãÕÐÌÞŒ-wš‘Û’â’>-£P*òÐW2 ï@ä;xŒD#ÆJm$"OÑdù[Na‚ôFLå%ur7“Ü ÆòÓHzˆƼý†Xð2‰äÛ•"zœD=YÞÆGpÊY1Ø…äm˜ášÑ\òdÐ×|ͧ 3N9AÓБТ®â®ü®¼î}˜9Œ5NbMÂ4õù!•š îlù0Y’Ô =zt©šé½!­a-•V9ìaÑûìǵ]}]}Eàg¥âÙH_˜ŽŸ3Ü;‚E1¯áVF½´.:w=ØÁçqŽ®~®~æ²Y„hzÃöbù:e1¯àNú¥æ°‰ú~Ù1H ¿EÞ\uÓ¦ «žEFžBÄÆ«­XjàjàŽÇÄá©di…?:¢täj4ŸÏ” ù´2Aª|1Í÷1Åäë°ì2FÞ#?ÈÅ`Õ2ÆJÛ䥙³AŒÇƒI…Ý€ý€”lr2 yùHr%ãÎë—7^õÿ½ ÑDúvue\Éhß|9õ:2ѵ+²Ëµ?fwÌæà -Às‹C±Ör¬e1‹ð{l(ÅŸ¶¼ªöë¼7Æhš?²4~š}‰E¦rT¼â–6êå¤%ƒÅêô°!C6¤Jc«úΊAr[ZnÈàYö¥ÓÙÚøüº|²|"#˜aa?d,÷û³ÑDþ²A:Mx\3{ 7c­f¬Ù„ÇÇ=N.cJ‘)­ìaP‘„–Ö¤àTË͉Kyˆ„žD`¶lˆÃ:qäFåŒÛ?WNc‘ ƒ:F!g3Ãs%Ø…ÞÉ`#‰úïýçò$˜^ -#ÍGûO Šÿpèúþ&ö[2;-Q—i£žQssÛ w$â±2<5‰÷0Ê ‰z'þ0µ¼¡éä!ý4W|€áƒ%x¹à9‚`—BpÎ!Í0}gúO¹,8]ð¤p¬f‰Õ-cugl@F,^ -Ø°CÖmøz.û¢•€f‘€W#•{,R¹ÿRíF3»ÑŒ"’ÈžU–ñVIêg‘½«z­ÏÏ&1<7O ÀcÉp1µpüÂÙ,†Ä^U:Ýuú.æÞ"ƒ³H\´Ø¤uíçÁþÁþWeïG“¤C>"¡—þÛœsÒ°x#Ö -Âc]M-,Lcfþ7ç$>W4p(Ò(‘ÁH¶ ‰^¡ebò×€¼¥ü/üÞ$SÿÏñï9´ŸAÊ÷4rcð.ùTôu?æÚ&F{±‡/MÇàáÓ Y0C0°¥!².ê¬'XÀŒh ;/;/ÃDÌô–Ì¡‹ÕÈýzLèxLaÀ[rк³qKMÆ…äÊèRi©cƒQ÷š çSΦœÝr.+/+Ïy¨€½mí wÎ>¶.ínßÖ¾­9½.å:š§ërÞ=ÇóØÚc®Guƒ _¼b±e‰ÒD°Êv¨ñªòºµvÈëµÏõ€²ðŠ°S°ž…űv.\|—¦` -°&©î…˜ê`±•¨1õòÖÖ/Ûvö|u©×­~uïçûH…H=Á¼ŸßªJ$´Í›µ1¦Gâ™lLóó\,Q<X-¡wŒvo$1CFÜŒ=Ä.ž‹°æÁê³~u~ ²«pÚöœ¸Ö*Æë -/{Ž¨nýb—øŠhWνkw×1Ñh> s@Úµ?ÿðË“>¤]‰V xòåþÂÀ«ÝH-éÌS,æ@ËF£áÀÈsGÓm-£”,vÀœ¦CÅ$ÕoIÔÖ–›Œ>ub”:##—á1¾$w2„¡½C{þ.–ÑØŽQ ¿ßhºOñÀËHªü°ï)ô}ý£nœB,(ÇÇÐiè“/E–¼Ê¹¶sg.Ÿjb00oßüýfÍ#¾ºã'ø2y‡íå;#´sÄk*hdÍ š¯’‹óiì#ðn|²bˆ3„RssGÓ¬I† O¬X”¿°Õ±ÕñNÌ+@“¾Gšh>Q˜dLʼ˜AÛh<™qÀÖt“ÔÙä_â_æ}ÒðÎkd çAÙqUq•[;á{@*§Þ•½){ÓxÿJgwg_ÑM¸ -Íé•¡•¡Ù>¤,¦†ÍeÃŒÖ[8»9»:Ç9–Ýl¾6{/K÷?º~íe=Ó€4Ï"¢Gz€DÉ/Ö]_wݦt>8ƒë÷·(7OWKv'©Q¢¼ßN?Í~’&”¡¥BàA‰üWMdn!+ú0“çQØ$½$íÈè#­²›"CšÝ+±1Ù´zÆŒè¹Ñ†Vk}<}Ü’a ¬ËŽ¨‰ªÚÜIJøPö›š_ª~i}Øß{½·¯äšPMù}éܼ̬eÑ,Qè–­Á™Á™wûà -p;·±1¨1­žÀ‡ÓoÊ^VüÔt§çÒÕ–yßÁuÈx(eÑŒ%e O™‘2©ób».u¶[â‡i2RHáôK»bÎmÛÛ¶CQd!q{ËͱË,œœÌü±¦¿7í ™oÖâÔâ$Ä­®œê.ï.ïíî$‘K"§Ç A 3…ÆÌ -¬Øl¹mAÖlñ—Œ'š<¿wT4¼FÒ9¬éþ="þ@ª§ß—½­ø­á~W[gGoA?Ü„–Íáá§×Â*˜“naLÂféàâ@Âæ"øã+>+ë‚ÖMG›Ž´çô±hŽÈ1Ö;-hÇÆÁ{B`)8ç…5…\J¿Ͼy¨[Ê P@‹ÊÚM¤v£ýg@Zð ¹gCý†:«\0„…±Ë—;;.ôÅŒfS°– 4˜+Ÿ{ˆ½eóKO‚¨§HãZ jG^ê¹Ô£ñ ÖažËÿÃéØØ„j Ï®ö^é½vþ&)çf)³¸ávQ[W[WÍË|4 mS ê¢/™<4™Æ;É?*ûi^wI©¸¸¤þd\€ú//o¾ˆ8ÝM‡â…~0ö›$Ї/’|Özû„˜Äaqê\]ê˜é@#§ôgX¥y$…Š“BÃ7m€Xˆ<|‚Å3D•Ûkw7®:¢x¢xÄ)Ĕc®< B-Í¿0#Ç3¼ù„„–ÅÖnrKˆ“ÆJ¥áëòC[’Xý¨Aþü7ÈÜEU®ððý»LHŽ5€¦•ýÚÿkók ¾y’Ôç]çS·¤%«kÙ{0í°8íÛ¬l(€–†ºWåÙ_î­$’¿WÝûîþ÷Õº´kÛ[“. ¨sº#yÌAwÎ勵k¯=<…oÕ}¶ójF…¬Bv:BÁJênbl²‰4ÌËÀéDpqpqڸ̢óòÿä óHKnsNÓùªªüšÂúc-еۋŠN„‚7xeù¤û§ùÆG„'†'n_ì:9__¼í"t~ä{¼6²dn£;M(5q'n~ÛAâñ£ìF@““ý¹%àÎ[Ü£]£Ý<\–³YÌé'{uï:Öq¤åhÛі×^>Òz´ýZ`É ññ¹ÿ(yQwW\ûý¥ÎŽêÎê®3ÝÀ¾iö3Ôƒ¤=w¸sÙ)”®2¥#–™#hT&¡‰7⥒ÙÖÜ]PùÇÎæåæ9•ì•„béRHܱ)u“,+"…9ðTµŸàv~K[kKÕçƒHöZ—¤ >%Á xÚZ{s‡CøÁÐQŠTl¿ P„O”ˆ\þ°XÞ¿-æõÿ-¦ØŠùR¨ŠŸ–!Ý*´qüÛÑj÷qÛVÌcÞ™Îb‡2‡Fî n’kðR>ŠÆŒ°Ý4môdTÈ~Ÿ&¤†)ä.‚ÿ?ð{s~-~RsK\}§¡­µš|²Û *3seç’DHÜí—i‡ ‡t…e¶|ɉƒW ^ ÏR¯ÖÔ;]Žà”îæêæêeÎîbvß“] ½zÑ3×ÜÀ=Ã+Ú3ÚÓËÓ’ý’ÉEA4Öûäw!`‰¹ïÏ?¿ð¸ænCg[MKMû™¸å™9É9ɇ£ÈáøSØ>Q†@˜E ô{ZÅ0˜ÒçßàÛèH Š‘áã.uõt¶ø/Ö)ùI Æ]BŒšÎD]2Ï‘>é¨B i·¦°Îv¹Žâ5‘b³xsws§¥~XÍ«Ë„g2`ŠÙÖÖ¿E )ð^?¾úøjßÓ&¤FÆ9¤IN|, Èw6ßÛÜ[E,X”¥œÅ‘Ú»mvì¢ø…AvÞ~Þ~.2;°$¥$¤1¸iMøpòMÉçŸÕßìjîlîËö6tÊ.Ôú縂՟Jç£>¡t6¥sÌY’áä4’_®»¶îúê3Afð„•X“H䣈Q7<—ÈûhÒXÞF/«ëâoŠ¿9û·SßTéf -Ü+šcšcþ/*§$ŽôÄy±æNËœøa-¬%ÖD5òÍÚœ[ïƾ‚kÐsúJÅ•Šž®ÞG¤ŽÅbÍ«öÄÏQ¦ê˜è¹„YB㉣H&“r5ªÑ¿, Ôû”p:ö&È¿ŠiBÊ+Óp¿»£»³·°úà2iB*BO{´³Óç†Í ·ÎÒÉÍÉÍ9ÎM¨-òÝaDì’nÞ³).).1,ÐßåßIóÿìgEF“£±½¥¦­¦ãÌU(‡ò¿”ï¬ m³ôPØþ@AôUä2tƒ »ª¶•l+K-Ž-Š/Z_f[³ªÖ¯LVZ°£*¡áteyqyaó‰xw·÷'°)mhÚŒf¬š‡Ò*¨Â¢D‡µ^ÒU°œO{WT\ xæwoã娳Ég“ÆB¬ßã’ñ9°àû­Ï Ÿ¾¹…,^$z8”JNÝè3ø½h ûnWå#ølØ„×C\4$Þ|fó™/‹–âuG»ˆŒ é¢|ÂR ˜v´Ÿ6bðD¼»®Øn#ô–x²ò펵{|!H –¹õáua×Òá ì+=Xz°ðÛ³‡Xĉ<2üwF~jïÖ“ê'HÓœaóm6»=!T KÏ966ô§>!ÍKÏÉîÒîÒÞ®¾Aö(i^‚F›—­‚[0s•‰©3c[‹ƒ­}½¼ÂÈ'ÝX#¿¦×zPz ñh7ñµ"áÍ ÿ£`cÇàûÊ¡hgFEmR–_4åÿPnjé -endstream -endobj -501 0 obj -<> -stream -xÚcd`aa`ddw ÷ðrÒö/HÍ NÌ+Öõ,IÌÉLIùËq1°thÈwwÃ<ìÿ&üÙ)ÃyS†#‰õ‡ ÃYÆrL?䙈²Ôó0É200<‘øAä)$/ 1°22rð¸‡'”æeº9ê¸d¦g–dV¥¦(¤$–$*$çTe¦g”(h$k*è C÷üüôœTçü¢‚ü¢Ä’Ìü<=ƒ@.V€¸ÎZÆh$Ú˜•_Ë°œý*úMTæ—×Ï»@ûßR™_›DeXžýä•ù-ÅÎ'ÃÒ«ü§Aôq÷¥<ºùùÒïBßk~Ý“øÞȶä»0ëï& Å0ïá’c«×H®\½cöÑî-Ý;÷Ulû.*Q6%wJÊä”IÙýÝ -ÝÖ¡Á!¡‰:9¿%KÔ%~'yÖy°~eû]þï\•]i@A’dARJYDwvwÚ¤„Y¿Ù7ÔnmÙÙÍñ+éGƒè÷º_wXÛ°ý®ûw‡õûZÖÑîÜ)%sªæT/l^Ö½¢{錅K-™¶ª{Çñ¼•r™Ýùõe%eÅ 9Ýi|åóÝ™ùýÓk¶? Ýìr\ŒÌBñ<œ?Vˆ 8»® -endstream -endobj -503 0 obj -<> -stream -xÚ=’kLSgÇÏi{N ë(tRÀE¼´¢ƒ© ä6.›Õ aZZJ{´-P^’Éž-31š8–„Œq[ÀK¡]7‰ A—­›ÝÔÅ̽§}‹Ùé–øå÷þŸË‡çÿ>IˆDI’oäoÏÙµ³`ƒú Þô‘ÆdQf[5•Æ2I½:€Š‰x%Å/OûäËîÉ-ÅE\ÉE ¸5BN*ú$Pð&Aá¯ûä§ ˜'ÊC”º‚ IF²2$̺›=§êð6Y’‹’ŠÕYš„’ÍÕ*x pH熱ì±÷>DÁ$Œžî`®·÷_êq2géR\ü>^›¨LTb²‡C -¼ÓßÉàxñmë|à 1<»à¾æ¾vgfôÉOO‡P`/ŠìEQv$$e|R4*½ Ç.^,h΄M >YX¯=ª­Ò¨0UØÒÚRÛÞãCìn1ô—÷׎ÃÏ o¯ãϱٱÙù¾g¼näW¢m4šàoŸÂÛh‰­Ù{ÿ> -stream -xÚcd`aa`ddäós÷ópÓvö Ž44‰Øäý ùõáçlÖ2 ?dÈ1ýgþ!Î"÷Ћå?“,ÃAù“D~‘j@‚1Wˆ•‘‘[¨¡mjbQQ~yQfzF‰±ž‘s~A%˜¯ ‘¬©`hii®£`d``©à˜›Z”™œ˜§à›X’‘š›Xää(ç'g¦–T*hØd””Xéë———ë%æëå¥Ûiê(”g–d(¥§•¥¦(¸åç•(ø%æ¦*@¼¡¡œós JKR‹|óSR‹ò€.dTí LŒŒ,9?:ø~Õ|¯ÚÌxøóÏkß«DC ’šëâÜš}º»8ê§wO–›ÓÝÓÛ?wÑÛc÷¿³îœÞß×Û=©{Rk_gOüœß¼{S¿ÛtLïê«êæh®ï®—ïîœâ³Õc~mÙ«Ù*+»ËËçvÏ•ç+^üÓ~!Ûoéiìr\,æóy8'ñpõðpoæÚ̽y6ó~(¦SŒò -endstream -endobj -509 0 obj -<> -stream -xÚ]PËnƒ0¼û+ö˜/µ'„”!qH[•äŒ½PKemÙæÀß”C¶f×;³ãI›îÖ‘ò~Y-zô0*’^¬@pRÄò¤þ¨â-fnXÚܹùà3B:jòŠœOøâ5’H´Arœ\’•ÉóÑæï qÜÕ GÝÝúÕyœ;5TH¿·ÎÛN©<‡Þ§•hMpz6}ìô‹1¿8#yÈX]G¹|·(´Dg¸@ËiBVeY UÛÖ Iþ{+wÆ0ŠnYUæaòšåõ†‹~»ì¸ŒÇtP 1¼R‹µ›Ÿ˜Uüi0¥_qm+ž?ñîy{ -endstream -endobj -512 0 obj -<> -stream -xÚ]PËn„0 ¼ç+|Ü°­**!¤-+$}¨ì~@H Tœ( þ¾$P=Ä’Ç3cgÒº½¶¤<¤ŸV‹= Š¤E§g+z±ü R ¿w±Š‰–Öoܼó !4yEÎ'|öI$Ú 9N.Éž’û­ÉŸAâ°)n‹A8ï}{íçqjiÐP– ýZ8o8]¤îñ!`V¢U4Âé^wéfc~pBò±ªŠvùv¢Ðá-§Y™e”MS1$ùo¶+úA|sËÊ☯« pwôàìvE°+^Ö’eÌm„dŽ`ÄlízbŒ/~>Ü©„6Aß/ÛúA -endstream -endobj -488 0 obj -<> -stream -xÚ͘YSÛH€ß÷WÌ{Êé¹gT•J• !Ü$˜p„ʃ0Ö®-9–„üúí¶dLŠìR®aîžîO=ÝÚ;Æ™N8“^b-™òÔ×Lk,‰ež[¬=BXf8gBsjHl‰ ëUÎ`ß1ayÂ$ÖÎ%ÌÜ’(Î “·¡˜”F3ˤ–ûšIc%s¸E£@ =È™âÎã€eJ*ǬbJ ‡ž)c†§*G’E‚j;¡˜æ¨·‘hƒð¨’ÄeiD0m°g¦W8€æzœN´DÑá¨1Ù§¨Çñt«h×8NÊâñŸ;ÃœR>ƒC±ÇHoðpûÍÍU-këÑTÁ¢Nã¸Å¢=sˆÆÙjµ%°$ˆÇ#s—f¥‹3¸Ú´„9ƒ£:©vX—Ôζ¨¿U25>t¤%[㶉;yl%^ÄQ‹li5mÈ%­v|O5ô”ȼûò×¹ÄçÅÿÐÏ&O°ø\ÈU‰á¯ÊâO©j?ј•zï9ÊïÊÎSÿ¯rߺ%½Hã)Ú.ë=&gñ¬UŸOÃÛ~S˧=“Ej}ÛÚÙí5U¬Á›/|àfT31˜»TãíÄXŠ1 %Ò½Ô&­³Xüí -¼ÏN3¯,sÔ¤QúK7Úpƒ¿¥È®Þöx -ojA1Ä8”cÖ‰ŠúR¾ ¾4*Œ±¦`MãÆŠªÆ¢0ªi‰ñTÞÊÂ9‡±D£¦ÔÖZU"!Ôþb©ƒKêà–™²½„?|…uò¤+|v|Ðén>ÆÓ¼Dž‰¨ó\fÊŠ<åsÞè³­îþîécHí‹DªH—˜²"RÝ@ªæ|Õ˜'êêüOÏ:ÛWûÙðbZîùnë0\O úU âçá@ü¾šñÞ.å§Å-?[CÇZñßž¼ul¦Žm¹+‚³MpvUpûv{ÿtþØå®—¬ ÎÏÀÉ9p’›¥à_F_ [ß-¾©y× çêä–›°"9ß gærŠüEN9>é~<Û™yyeÚ7ùÞfЭš—ÖÖ.,ÇS[F'ôí “qÒÈ)ËMY‰Ÿá Y%ùí´Ò>Ù<øÜy©xqHékª†t¹)+"}ÖÄrÜÞþøáäq¨òBm$–妬u!µ¨SlÏâáû“ýÍWk{Ý3Á1­übmgaß#â >ú5¦–ÛüÁo9>‡H&¬•X^ýÖ9SçÓÈ 5Õ+׳««0y/”çFaLj@:ÄV™æ—ÌÃ(ÅéA¸šT­1)&Œ³ò ¦%ôŠá0…þͨr’‘—PÒ²ï -89(r(Ã0«ZƒP–¾NÓ\CŠro:°ëð6à=l2-av`ö`à|„CèÂ|‚c8S8ƒÏ 3ð4¿DM{Å8`…. —à -®¡ü ÿÀ†C#ø -c(aSøßáÜÀO -âË5Õ˲I6À["{¯ÝŒ+F¯ io: _©iø:-ˆF\‰Â¦ƒA˜Ph›æÙF“WUKú©šêV ùÔÝUEGÌÛy™Ý÷çÏ  þ3Œ‹×E E¨š|½Ibÿª˜Žc}‹ý2û«ð-äÔˆNG<«\]ÅP±õT]T2opb«9Iú²~°/ -endstream -endobj -524 0 obj -<<1fc3b00cdb8184dd4523869777b7f018>]/Size -525/W[1 3 2]/Filter/FlateDecode/Length 1265>> -stream -xÚ5ÖwLVWÇñó¼‹{D'¾€b8jëªÛV¡Š8ê‰[«VEqT©[ܸªâÞJ±ÖUÜ+iÚĤ+¦±ý£#ýÇ6mlMü£ô¾ßóðÏ'O~gÜÃÍå<¯1ÆTUùŒä˜x—zþn\ŒÅ8¬í3Æ5Fœ/_CR‡DЇ~ `C…º50c±&Æa-žbçاǣ}nÖÅDLÂd¬‡õ±6ÄFØS° †1Ó0›b3ÌÀæø¶À–Ø -[c&¶Á¶bL\äyu;Þð2þ.{òöbÂ/uôuFW0š„Ädü©£]I^OL»š¿A¾šú*^Çb:ÍÐ9×ÄduѺ£˜A¿iÝ ³°³˜ì -ÍßdÏb1¹?iÒ…d-uW1c§kÞ|=uwì!fj]}‹ÑÔ=ñ6öÂÞØûŠ™Ÿ¬«úa fAª÷Õ™¢::ú6{–ˆ)ÎÔä’-bJæj2d滛½ÕïùêlÌSÖÑw-¥ŒŸáÌsú?9T̳g‘SýøJ“<Ö‹Ãp¸˜_¾Ö9#D*²´)ri°Öï±v?õ(‘Ê\ÍG“L}ÇàX‡ù8'àD‘ÇO¼³É“DÝgû¤žŒS°€÷“"òí9•™G¨§‰üÉêy8_|ÙèèFÏŠot¬&\ ^ˆ‹p1â\ŠE¸ àr\!¾üíºçJñ'÷ÎéO®ÔäCžr‘ºWájñ§\×9Åâß’Yµµ@“XUN} ×àZñ—Vï¼NùO½Uñi²žUvþç¸7J`rõ³6IàŸZßÄÍX"'i¾E‚y¿z;‡Ui²•?¥¾‡Ûp»GnÓ9;$4ñ{oUhRõm³“Uöû¯Ä]X*¡'tÎn }óBëËh¿ÿ½ú.Fó}uÐ;‰D•%i²Ÿ¯PßBû…¨ÃëtÎAqÂϵ¶'?„eâ¤5?,Îæ9‘~T²V“#ìlo¿£xLœ­y:zœQûníwkÏpOái´ßáY<‡çÅÙWyÖ‘xÝí»ÝçÌWš\$¹%Ε›š”“ÜçþM>!±7¹½cmyHÝ [£½Q÷Áx´½ï1u&¶ÁôNøâ Ý9'Ò—=ëb"&¡“±ÖG?¦alˆl„±-¦`CØØŠQØ 3°9:h»a{l.¶Ä¦Ø -mgŒÆhû‘í}1;avÆXìŠéh{VMìŽ=Ðv«ž‡µ°6öÅB\Œý°?æà´Êv%Û‰lßÉFÛ)l¯ŒC0‡âp†¶ ŒÀ‘hûÅ(ƒÓp,ŽÃ|p"Ú^0§`Ú›ßÞÃö¶·7üLœ…³qÚ;|.Äùhïj{?/Â{¸—ã,B{ÇÚ;snÂ5¸7`ÚÛÌÞNÛq/îÂÝx÷á¬ÀcxO¡½Îái´ÿ¡çñ.^Æ«X‰×ðÞÁ‡âüP¥ÿwÄù{ˆÖÅ îÔ_ËFÜeÏ#ÆŒÐDÄM‰ÖÚ'n¸ŽÖ~q3ʵˆÛ[´Š;ú©Ö!qç}¡u”¸ ^iíˆ[¸Aë0Fcª¸K 4Á4q‹NiRíïíxLÀtLÄd¬ ±16·ØûÝõ?“Êcj -endstream -endobj -startxref -623471 -%%EOF diff --git a/documentation/UsersGuide/UsersGuide.rst b/documentation/UsersGuide/UsersGuide.rst deleted file mode 100644 index 3b058989..00000000 --- a/documentation/UsersGuide/UsersGuide.rst +++ /dev/null @@ -1,2007 +0,0 @@ - -.. -*- Mode: rst -*- - -.. role:: ul -.. role:: cb -.. role:: sc -.. role:: fboxtt - -.. Acronyms & names. -.. |GNU| replace:: :sc:`gnu` -.. |LGPL| replace:: :sc:`lgpl` -.. |GPL| replace:: :sc:`gpl` -.. |UPMC| replace:: :sc:`upmc` -.. |Bull| replace:: :sc:`Bull` -.. |Cadence| replace:: :sc:`Cadence` -.. |Si2| replace:: :sc:`Si2` -.. |LEFDEF| replace:: :sc:`lefdef` -.. |Flute| replace:: :sc:`Flute` -.. |MacOS| replace:: :sc:`MacOS` -.. |RHEL6| replace:: :sc:`rhel6` -.. |RHEL7| replace:: :sc:`rhel7` -.. |SL6| replace:: :sc:`Scientific Linux 6` -.. |SL7| replace:: :sc:`Scientific Linux 7` -.. |Scientific Linux| replace:: :sc:`Scientific Linux` -.. |RedHat| replace:: :sc:`RedHat` -.. |Fedora| replace:: :sc:`Fedora` -.. |FC13| replace:: :sc:`fc13` -.. |Debian| replace:: :sc:`Debian` -.. |Ubuntu| replace:: :sc:`Ubuntu` - -.. |Alexandre| replace:: :sc:`Alexandre` -.. |Belloeil| replace:: :sc:`Belloeil` -.. |Chaput| replace:: :sc:`Chaput` -.. |Chu| replace:: :sc:`Chu` -.. |Clement| replace:: :sc:`Clement` -.. |Dupuis| replace:: :sc:`Dupuis` -.. |Escassut| replace:: :sc:`Escassut` -.. |Gouvine| replace:: :sc:`Gouvine` -.. |Masson| replace:: :sc:`Masson` -.. |Sroka| replace:: :sc:`Sroka` -.. |Yifei| replace:: :sc:`Yifei` - -.. |ANSI| replace:: :sc:`ansi` -.. |MIPS| replace:: :sc:`mips` -.. |Am2901| replace:: :sc:`Am2901` -.. |Hurricane| replace:: :sc:`Hurricane` -.. |HurricaneAMS| replace:: :sc:`HurricaneAMS` -.. |Alliance| replace:: :sc:`Alliance` -.. |Yosys| replace:: :sc:`Yosys` -.. |GenLib| replace:: :sc:`GenLib` -.. |Nero| replace:: :sc:`Nero` -.. |Druc| replace:: :cb:`Druc` -.. |Coloquinte| replace:: :sc:`Coloquinte` -.. |Coriolis| replace:: :sc:`Coriolis` -.. |Coriolis1| replace:: :sc:`Coriolis 1` -.. |Coriolis2| replace:: :sc:`Coriolis 2` -.. |VLSISAPD| replace:: :sc:`vlsisapd` -.. |CRLcore| replace:: :sc:`CRLcore` -.. |Cyclop| replace:: :sc:`Cyclop` -.. |Nimbus| replace:: :sc:`Nimbus` -.. |hMetis| replace:: :sc:`hMetis` -.. |Mauka| replace:: :sc:`Mauka` -.. |Etesian| replace:: :sc:`Etesian` -.. |Knik| replace:: :sc:`Knik` -.. |Katabatic| replace:: :sc:`Katabatic` -.. |Kite| replace:: :sc:`Kite` -.. |Stratus| replace:: :sc:`Stratus` -.. |Stratus1| replace:: :sc:`Stratus1` -.. |Stratus2| replace:: :sc:`Stratus2` -.. |Unicorn| replace:: :sc:`Unicorn` -.. |ccb| replace:: :cb:`ccb` -.. |cgt| replace:: :cb:`cgt` -.. |Chams| replace:: :sc:`Chams` -.. |OpenChams| replace:: :sc:`OpenChams` -.. |Pharos| replace:: :cb:`Pharos` -.. |API| replace:: :sc:`api` -.. |STL| replace:: :sc:`stl` -.. |XML| replace:: :sc:`xml` -.. |pdf| replace:: :sc:`pdf` -.. |UTF-8| replace:: :sc:`utf-8` -.. |Python| replace:: :sc:`Python` -.. |Linux| replace:: :sc:`Linux` -.. |MacPorts| replace:: :sc:`MacPorts` -.. |devtoolset2| replace:: :cb:`devtoolset2` -.. |boost| replace:: :cb:`boost` -.. |Qt| replace:: :sc:`qt` -.. |tty| replace:: :cb:`tty` -.. |svn| replace:: :cb:`svn` -.. |git| replace:: :cb:`git` -.. |rpm| replace:: :cb:`rpm` -.. |gdb| replace:: :cb:`gdb` - -.. |KeyUp| replace:: :fboxtt:`Up` -.. |KeyDown| replace:: :fboxtt:`Down` -.. |KeyLeft| replace:: :fboxtt:`Left` -.. |KeyRight| replace:: :fboxtt:`Right` -.. |KeyF| replace:: :fboxtt:`f` -.. |KeyL| replace:: :fboxtt:`l` -.. |KeyG| replace:: :fboxtt:`g` -.. |KeyZ| replace:: :fboxtt:`z` -.. |KeyM| replace:: :fboxtt:`m` -.. |KeyI| replace:: :fboxtt:`i` -.. |KeyK| replace:: :fboxtt:`k` -.. |KeyP| replace:: :fboxtt:`p` -.. |KeyO| replace:: :fboxtt:`o` -.. |KeyW| replace:: :fboxtt:`w` -.. |KeyQ| replace:: :fboxtt:`q` -.. |KeyCapK| replace:: :fboxtt:`K` -.. |KeyCapS| replace:: :fboxtt:`S` -.. |Plus| replace:: :fboxtt:`+` -.. |KeyESC| replace:: :fboxtt:`ESC` -.. |CTRL| replace:: :fboxtt:`CTRL` -.. |CTRL_L| replace:: :fboxtt:`CTRL+L` -.. |CTRL_I| replace:: :fboxtt:`CTRL+I` -.. |CTRL_P| replace:: :fboxtt:`CTRL+P` -.. |CTRL_O| replace:: :fboxtt:`CTRL+O` -.. |CTRL_W| replace:: :fboxtt:`CTRL+W` -.. |CTRL_Q| replace:: :fboxtt:`CTRL+Q` -.. |CTRL_Down| replace:: :fboxtt:`CTRL+Down` -.. |CTRL_Up| replace:: :fboxtt:`CTRL+Up` -.. |CTRL_Left| replace:: :fboxtt:`CTRL+Left` -.. |CTRL_Right| replace:: :fboxtt:`CTRL+Right` - -.. URLs -.. _FGR: http://vlsicad.eecs.umich.edu/BK/FGR/ -.. _Box Router: http://www.cerc.utexas.edu/~thyeros/boxrouter/boxrouter.htm -.. _hMETIS: http://glaros.dtc.umn.edu/gkhome/views/metis -.. _Knik Thesis: http://www-soc.lip6.fr/en/users/damiendupuis/PhD/ -.. _RapidJSON: http://miloyip.github.io/rapidjson/ - -.. _coriolis2-1.0.2049-1.slsoc6.i686.rpm: http://asim.lip6.fr/pub/coriolis/2.0/coriolis2-1.0.2049-1.slsoc6.i686.rpm -.. _coriolis2-1.0.2049-1.slsoc6.x86_64.rpm: http://asim.lip6.fr/pub/coriolis/2.0/coriolis2-1.0.2049-1.slsoc6.x86_64.rpm -.. _coriolis2-1.0.2049-1.fc16.i686.rpm: http://asim.lip6.fr/pub/coriolis/2.0/coriolis2-1.0.2049-1.fc16.i686.rpm -.. _coriolis2-1.0.2049-1.fc16.x86_64.rpm: http://asim.lip6.fr/pub/coriolis/2.0/coriolis2-1.0.2049-1.fc16.x86_64.rpm -.. _coriolis2_1.0-2049-1_.i386.rpm (10.04): http://asim.lip6.fr/pub/coriolis/2.0/Ubuntu/10.04/coriolis2_1.0-2049-1_i386.rpm -.. _coriolis2_1.0-2049-1_.amd64.rpm (10.04): http://asim.lip6.fr/pub/coriolis/2.0/Ubuntu/10.04/coriolis2_1.0-2049-1_i386.rpm -.. _coriolis2_1.0-2049-1_.i386.rpm (12.04): http://asim.lip6.fr/pub/coriolis/2.0/Ubuntu/12.04/coriolis2_1.0-2049-1_i386.rpm -.. _coriolis2_1.0-2049-1_.amd64.rpm (12.04): http://asim.lip6.fr/pub/coriolis/2.0/Ubuntu/12.04/coriolis2_1.0-2049-1_i386.rpm - -.. Standard CAO/VLSI Concepts. -.. |netlist| replace:: *netlist* -.. |netlists| replace:: *netlists* -.. |layout| replace:: *layout* -.. |layouts| replace:: *layouts* -.. |CMOS| replace:: :sc:`cmos` -.. |VHDL| replace:: :sc:`vhdl` -.. |NWELL| replace:: :sc:`nwell` -.. |POWER| replace:: :sc:`power` -.. |GROUND| replace:: :sc:`ground` - -.. MBK Concepts -.. |MBK| replace:: :sc:`mbk` -.. |LOFIG| replace:: :cb:`Lofig` -.. |PHFIG| replace:: :cb:`Phfig` -.. |SxLib| replace:: :sc:`SxLib` - -.. Hurricane Concepts. -.. |hypernet| replace:: *hypernet* -.. |hypernets| replace:: *hypernets* -.. |Cell| replace:: *Cell* -.. |Rings| replace:: *Rings* -.. |QuadTrees| replace:: *QuadTrees* -.. |Collections| replace:: *Collections* -.. |ap| replace:: :cb:`ap` -.. |vst| replace:: :cb:`vst` -.. |kgr| replace:: :cb:`kgr` -.. |dot_conf| replace:: :cb:`.conf` - - -|medskip| - -===================== -Coriolis User's Guide -===================== - -|medskip| - -.. raw:: html - -

    - The pdf version of this document is available here:
    - Coriolis User's Guide -
    - -.. contents:: - -|newpage| - - -Credits & License -================= - -.. raw:: html - -

    Hurricane - Rémy Escassut & - Christian Masson

    -
    -

    Etesian - Gabriel Gouvine

    -
    -

    Stratus - Sophie Belloeil

    -
    -

    Knik - Damien Dupuis

    -
    -

    Kite, - Unicorn - Jean-Paul Chaput

    -
    - - -.. raw:: latex - - \begin{center}\begin{minipage}[t]{.8\textwidth} - \noindent\DUrole{sc}{Hurricane} \dotfill Rémy \DUrole{sc}{Escassut} \& - Christian \DUrole{sc}{Masson} \\ - \noindent\DUrole{sc}{Etesian} \dotfill Gabriel \DUrole{sc}{Gouvine} \\ - \noindent\DUrole{sc}{Stratus} \dotfill Sophie \DUrole{sc}{Belloeil} \\ - \noindent\DUrole{sc}{Knik} \dotfill Damien \DUrole{sc}{Dupuis} \\ - \noindent\DUrole{sc}{Kite}, - \DUrole{sc}{Unicorn} \dotfill Jean-Paul \DUrole{sc}{Chaput} \\ - \end{minipage}\end{center} - - -|medskip| - -The |Hurricane| data-base is copyright© |Bull| 2000-2016 and is -released under the terms of the |LGPL| license. All other tools are -copyright© |UPMC| 2008-2016 and released under the |GPL| -license. - -Others important contributors to |Coriolis| are Christophe |Alexandre|, -Hugo |Clement|, Marek |Sroka| and Wu |Yifei|. - -The |Knik| router makes use of the |Flute| software, which is -copyright© Chris C. N. |Chu| from the Iowa State University -(http://home.eng.iastate.edu/~cnchu/). - -|newpage| - - -Release Notes -============= - -Release 1.0.1475 -~~~~~~~~~~~~~~~~ - -This is the first preliminary release of the |Coriolis2| framework. - -This release mainly ships the global router |Knik| and the detailed router -|Kite|. Together they aim to replace the |Alliance| |Nero| router. -Unlike |Nero|, |Kite| is based on an innovating routing modeling and ad-hoc -algorithm. Although it is released under |GPL| license, the source code -will be avalaible later. -|medskip| - - -|noindent| Contents of this release: - -1. A graphical user interface (viewer only). -2. The |Knik| global router. -3. The |Kite| detailed router. - -|noindent| Supported input/output formats: - -* |Alliance| |vst| (netlist) & |ap| (physical) formats. -* Even if there are some references to the |Cadence| |LEFDEF| format, its - support is not included because it depends on a library only available - to |Si2| affiliated members. - - -Release 1.0.1963 -~~~~~~~~~~~~~~~~ - -Release 1963 is alpha. All the tools from |Coriolis1| have been ported into -this release. - -|noindent| Contents of this release: - -#. The |Stratus| netlist capture language (|GenLib| replacement). -#. The |Mauka| placer (still contains bugs). -#. A graphical user interface (viewer only). -#. The |Knik| global router. -#. The |Kite| detailed router. -#. Partially implemented python support for configuration files - (alternative to |XML|). -#. A documentation (imcomplete/obsoleted in |Hurricane|'s case). - - -Release 1.0.2049 -~~~~~~~~~~~~~~~~ - -Release `2049` is Alpha. - -|noindent| Changes of this release: - -#. The |Hurricane| documentation is now accurate. Documentation - for the Cell viewer and |CRLcore| has been added. -#. More extensive Python support for all the components of - |Coriolis|. -#. Configuration is now completly migrated under Python. - |XML| loaders can still be useds for compatibilty. -#. The |cgt| main has been rewritten in Python. - - -Release v2.0.1 -~~~~~~~~~~~~~~ - -#. Migrated the repository from |svn| to |git|, and release complete sources. - As a consequence, we drop the distribution packaging support and give - public read-only access to the repository. -#. Deep rewrite of the |Katabatic| database and |Kite| detailed router, - achieve a speedup factor greater than 20... - - -Release v2.1 -~~~~~~~~~~~~ - -#. Replace the old simulated annealing placer |Mauka| by the analytical placer - |Etesian| and its legalization and detailed placement tools. -#. Added a Blif format parser to process circuits generated by the Yosys and ABC - logic synthetizers. -#. The multiples user defined configuration files are now grouped under - a common hidden (dot) directory ``.coriolis2`` and the file extension - is back from ``.conf`` to ``.py``. - -.. #. Under |RHEL7| / |SL7|, there is a known bug in the graphical visualizer. -.. When shifting to the left, the right-half part of the screen gets -.. badly redrawn. Uses |CTRL_L| to refresh. It will be corrected as soon -.. as possible. - - -**Release v2.2** -~~~~~~~~~~~~~~~~ - -#. Added JSON import/export of the whole Hurricane DataBase. Two save mode - are supported: *Cell* mode (standalone) or *Blob* mode, which dump the - whole design down and including the standard cells. - - -|newpage| - - -Installation -============ - -.. note:: - As the sources are being released, the binary packaging is dropped. - You still may find older version here: http://asim.lip6.fr/pub/coriolis/2.0 . - -In a nutshell, building source consist in pulling the |git| repository then -running the |ccb| installer. - -Main building prerequisites: - -* cmake -* C++11-capable compiler -* RapidJSON_ -* python2.7 -* boost -* libxml2 -* bzip2 -* yacc & lex -* Qt 4 or Qt 5 - -Building documentation prerequisites: - -* doxygen -* latex -* latex2html -* python-docutils (for reStructuredText) - -Optional libraries: - -* LEF/DEF (from `SI2 `_) - -For other distributions, refer to their own packaging system. - -|newpage| - - -Fixed Directory Tree -~~~~~~~~~~~~~~~~~~~~ - -In order to simplificate the work of the |ccb| installer, the source, build -and installation tree is fixed. To successfully compile |Coriolis| you must -follow it exactly. The tree is relative to the home directory of the user -building it (noted :fboxtt:`~/` or :fboxtt:`$HOME/`). Only the source -directory needs to be manually created by the user, all others will be -automatically created either by |ccb| or the build system. - -+--------------------------+-----------------------------------------------------------------------------+ -| **Sources** | -+--------------------------+-----------------------------------------------------------------------------+ -| | Sources root | | ~/coriolis-2.x/src | -| | **under git** | | ~/coriolis-2.x/src/coriolis | -+--------------------------+-----------------------------------------------------------------------------+ -| **Architecture Dependant Build** | -+--------------------------+-----------------------------------------------------------------------------+ -| | Linux, SL 7, 64 bits | | ~/coriolis-2.x/Linux.el7_64/Release.Shared/build/ | -| | Linux, SL 6, 32 bits | | ~/coriolis-2.x/Linux.slsoc6x/Release.Shared/build/ | -| | Linux, SL 6, 64 bits | | ~/coriolis-2.x/Linux.slsoc6x_64/Release.Shared/build/ | -| | Linux, Fedora, 64 bits | | ~/coriolis-2.x/Linux.fc_64/Release.Shared/build/ | -| | Linux, Fedora, 32 bits | | ~/coriolis-2.x/Linux.fc/Release.Shared/build/ | -| | FreeBSD 8, 32 bits | | ~/coriolis-2.x/FreeBSD.8x.i386/Release.Shared/build/ | -| | FreeBSD 8, 64 bits | | ~/coriolis-2.x/FreeBSD.8x.amd64/Release.Shared/build/ | -| | Windows 7, 32 bits | | ~/coriolis-2.x/Cygwin.W7/Release.Shared/build/ | -| | Windows 7, 64 bits | | ~/coriolis-2.x/Cygwin.W7_64/Release.Shared/build/ | -| | Windows 8.x, 32 bits | | ~/coriolis-2.x/Cygwin.W8/Release.Shared/build/ | -| | Windows 8.x, 64 bits | | ~/coriolis-2.x/Cygwin.W8_64/Release.Shared/build/ | -+--------------------------+-----------------------------------------------------------------------------+ -| **Architecture Dependant Install** | -+--------------------------+-----------------------------------------------------------------------------+ -| Linux, SL 6, 32 bits | ~/coriolis-2.x/Linux.slsoc6x/Release.Shared/install/ | -+--------------------------+-----------------------------------------------------------------------------+ -| **FHS Compliant Structure under Install** | -+--------------------------+-----------------------------------------------------------------------------+ -| | Binaries | | .../install/bin | -| | Libraries (Python) | | .../install/lib | -| | Include by tool | | .../install/include/coriolis2// | -| | Configuration files | | .../install/etc/coriolis2/ | -| | Doc, by tool | | .../install/share/doc/coriolis2/en/html/ | -+--------------------------+-----------------------------------------------------------------------------+ - -.. note:: *Alternate build types:* the ``Release.Shared`` means an optimized build - with shared libraries. But there are also available ``Static`` instead of ``Shared`` - and ``Debug`` instead of ``Release`` and any combination of them. - - ``Static`` do not work because I don't know yet to mix statically linked binaries - and Python modules (which must be dynamic). - -|newpage| - - -Building Coriolis -~~~~~~~~~~~~~~~~~ - -First step is to install the prerequisites. Currently, only RapidJSON_. -As RapidJSON is evolving fast, if you encounter compatibility problems, -the exact version we compiled against is given below. :: - - dummy@lepka:~$ mkdir -p ~/coriolis-2.x/src/support - dummy@lepka:~$ cd ~/coriolis-2.x/src/support - dummy@lepka:~$ git clone http://github.com/miloyip/rapidjson - dummy@lepka:~$ git checkout ec322005072076ef53984462fb4a1075c27c7dfd - -The second step is to create the source directory and pull the |git| repository: :: - - dummy@lepka:~$ mkdir -p ~/coriolis-2.x/src - dummy@lepka:~$ cd ~/coriolis-2.x/src - dummy@lepka:~$ git clone https://www-soc.lip6.fr/git/coriolis.git - -Third and final step, build & install: :: - - dummy@lepka:src$ ./bootstrap/ccb.py --project=support \ - --project=coriolis \ - --make="-j4 install" - dummy@lepka:src$ ./bootstrap/ccb.py --project=support \ - --project=coriolis \ - --doc --make="-j1 install" - -We need to separate to perform a separate installation of the documentation because it -do not support to be generated with a parallel build. So we compile & install in a first -stage in ``-j4`` (or whatever) then we generate the documentation in ``-j1`` - -Under |RHEL6| or clones, you must build using the |devtoolset2|: :: - - dummy@lepka:src$ ./bootstrap/ccb.py --project=coriolis \ - --devtoolset-2 --make="-j4 install" - -If you want to uses Qt 5 instead of Qt 4, you may add the ``--qt5`` argument. - -The complete list of |ccb| functionalities can be accessed with the ``--help`` argument. -It also may be run in graphical mode (``--gui``). - - -Building the Devel Branch -------------------------- - -In the |Coriolis| |git| repository, two branches are present: - -* The :cb:`master` branch, which contains the latest stable version. This is the - one used by default if you follow the above instructions. - -* The :cb:`devel` branch, which obviously contains the latest commits from the - development team. To use it instead of the :cb:`master` one, do the following - command just after the first step: :: - - dummy@lepka:~$ git checkout devel - dummy@lepka:src$ ./bootstrap/ccb.py --project=coriolis \ - --make="-j4 install" --debug - - Be aware that it may requires newer versions of the dependencies and may introduce - incompatibilites with the stable version. - - In the (unlikely) event of a crash of |cgt|, as it is a |Python| script, the right - command to run |gdb| on it is: :: - - dummy@lepka:work$ gdb python core.XXXX - -|newpage| - - -Additionnal Requirement under |MacOS| -------------------------------------- - -|Coriolis| make uses of the :cb:`boost::python` module, but the |macports| |boost| -seems unable to work with the |Python| bundled with |MacOS|. So you have to install -both of them from |macports|: :: - - dummy@macos:~$ port install boost +python27 - dummy@macos:~$ port select python python27 - dummy@macos:-$ export DYLD_FRAMEWORK_PATH=/opt/local/Library/Frameworks - -The last two lines tell |MacOS| to use the |Python| from |macports| and *not* from -the system. - -Then proceed with the generic install instructions. - - -Packaging Coriolis -~~~~~~~~~~~~~~~~~~ - -Packager should not uses |ccb|, instead ``bootstrap/Makefile.package`` is provided -to emulate a top-level ``autotool`` makefile. Just copy it in the root of the -|Coriolis| git repository (``~/corriolis-2.x/src/coriolis/``) and build. - -Sligthly outaded packaging configuration files can also be found under ``bootstrap/``: - -* ``bootstrap/coriolis2.spec.in`` for |rpm| based distributions. -* ``bootstrap/debian`` for |Debian| based distributions. - - -Hooking up into |Alliance| -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -|Coriolis| relies on |Alliance| for the cell libraries. So after installing or -packaging, you must configure it so that it can found those libraries. - -This is done by editing the one variable :cb:`cellsTop` in the |Alliance| helper -(see `Alliance Helper`_). This variable must point to the directory of the -cells libraries. In a typical installation, this is generally -:cb:`/usr/share/alliance/cells`. - - -Setting up the Environment (coriolisEnv.py) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -To simplify the tedious task of configuring your environment, a helper is provided -in the ``bootstrap`` source directory (also installed in the directory -``.../install/etc/coriolis2/``) : :: - - ~/coriolis-2.x/src/coriolis/bootstrap/coriolisEnv.py - -Use it like this: :: - - dummy@lepka:~> eval `~/coriolis-2.x/src/coriolis/bootstrap/coriolisEnv.py` - -.. note:: **Do not call that script in your environement initialisation.** - When used under |RHEL6| or clones, it needs to be run in the |devtoolset2| - environement. The script then launch a new shell, which may cause an - infinite loop if it's called again in, say :cb:`~/.bashrc`. - - Instead you may want to create an alias: :: - - alias c2r='eval "`~/coriolis-2.x/src/coriolis/bootstrap/coriolisEnv.py`"' - - -|newpage| - - -Documentation -============= - -The general index of the documentation for the various parts of Coriolis -are avalaibles here `Coriolis Tools Documentation`_. - -.. note:: **Python Documentation:** - Most of the documentation is related to the C++ API and implemetation of - the tools. However, the |Python| bindings have been created so they - mimic *as closely as possible* the C++ interface, so the documentation - applies to both languages with only minor syntactic changes. - -General Software Architecture -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -|Coriolis| has been build with respect of the classical paradigm that the -computational instensive parts have been written in C++, and almost -everything else in |Python|. To build the |Python| interface we used -two methods: - -* For self-contained modules :cb:`boost::python` (mainly in :cb:`vlsisapd`). -* For all modules based on |Hurricane|, we created our own wrappers due - to very specific requirements such as shared functions between modules - or C++/|Python| secure bi-directional object deletion. - -|CoriolisSoftSchema| - - -Coriolis Configuration & Initialisation -======================================= - -All configuration & initialization files are Python scripts, despite their -|dot_conf| extention. From a syntactic point of view, there is no difference -between the system-wide configuration files and the user's configuration, -they may use the same Python helpers. -|medskip| - -Configuration is done in two stages: - -#. Selecting the symbolic technology. -#. Loading the complete configuration for the given technology. - - -First Stage: Symbolic Technology Selection -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -|noindent| -The initialization process is done by executing, in order, the following -file(s): - -+-------+----------------------------------+----------------------------------------------+ -| Order | Meaning | File | -+=======+==================================+==============================================+ -| **1** | The system setting | :cb:`/etc/coriolis2/techno.conf` | -+-------+----------------------------------+----------------------------------------------+ -| **2** | The user's global setting | :cb:`${HOME}/.coriolis2/techno.py` | -+-------+----------------------------------+----------------------------------------------+ -| **3** | The user's local setting | :cb:`/.coriolis2/techno.py` | -+-------+----------------------------------+----------------------------------------------+ - -Thoses files must provides only two variables, the name of the symbolic technology -and the one of the real technology. For example: :: - - # -*- Mode:Python -*- - - symbolicTechno = 'cmos' - realTechno = 'hcmos9' - - -Second Stage: Technology Configuration Loading -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -|noindent| -The :cb:`TECHNO` variable is set by the first stage and it's the name of the -symbolic technology. A directory of that name, with all the configuration files, -must exists in the configuration directory. In addition to the technology-specific -directories, a :cb:`common/` directory is there to provides a trunk for all the -identical datas across the various technologies. The initialization process is done -by executing, in order, the following file(s): - -+-------+----------------------------------+----------------------------------------------+ -| Order | Meaning | File | -+=======+==================================+==============================================+ -| **1** | The system initialization | :cb:`/etc/coriolis2//.conf` | -+-------+----------------------------------+----------------------------------------------+ -| **2** | The user's global initialization | :cb:`${HOME}/.coriolis2/settings.py` | -+-------+----------------------------------+----------------------------------------------+ -| **3** | The user's local initialization | :cb:`/.coriolis2/settings.py` | -+-------+----------------------------------+----------------------------------------------+ - -.. note:: *The loading policy is not hard-coded.* It is implemented - at Python level in :cb:`/etc/coriolis2/coriolisInit.py`, and thus may be easily be - amended to whatever site policy. - - The truly mandatory requirement is the existence of :cb:`coriolisInit.py` - which *must* contain a :cb:`coriolisConfigure()` function with no argument. - - -Configuration Helpers -~~~~~~~~~~~~~~~~~~~~~ - -To ease the writing of configuration files, a set of small helpers -is available. They allow to setup the configuration parameters through -simple assembly of tuples. The helpers are installed under the directory: :: - - /etc/coriolis2/ - -Where :cb:`/` is the root of the installation. - -|newpage| - - -.. _Alliance Helper: - -|Alliance| Helper ------------------ - -The configuration file must provide a :cb:`allianceConfig` tuple of -the form: :: - - cellsTop = '/usr/share/alliance/cells/' - - allianceConfig = \ - ( ( 'SYMBOLIC_TECHNOLOGY', helpers.sysConfDir+'/technology.symbolic.xml' ) - , ( 'REAL_TECHNOLOGY' , helpers.sysConfDir+'/technology.cmos130.s2r.xml') - , ( 'DISPLAY' , helpers.sysConfDir+'/display.xml' ) - , ( 'CATALOG' , 'CATAL') - , ( 'WORKING_LIBRARY' , '.') - , ( 'SYSTEM_LIBRARY' , ( (cellsTop+'sxlib' , Environment.Append) - , (cellsTop+'dp_sxlib', Environment.Append) - , (cellsTop+'ramlib' , Environment.Append) - , (cellsTop+'romlib' , Environment.Append) - , (cellsTop+'rflib' , Environment.Append) - , (cellsTop+'rf2lib' , Environment.Append) - , (cellsTop+'pxlib' , Environment.Append) ) ) - , ( 'SCALE_X' , 100) - , ( 'IN_LO' , 'vst') - , ( 'IN_PH' , 'ap') - , ( 'OUT_LO' , 'vst') - , ( 'OUT_PH' , 'ap') - , ( 'POWER' , 'vdd') - , ( 'GROUND' , 'vss') - , ( 'CLOCK' , '^ck.*') - , ( 'BLOCKAGE' , '^blockageNet*') - ) - - -|noindent| The example above shows the system configuration file, with all the -available settings. Some important remarks about thoses settings: - -* In it's configuration file, the user do not need to redefine all the settings, - just the one he wants to change. In most of the cases, the ``SYSTEM_LIBRARY``, - the ``WORKING_LIBRARY`` and the special net names (at this point there is not - much alternatives for the others settings). - -* ``SYSTEM_LIBRARY`` setting: Setting up the library search path. - Each library entry in the tuple will be added to the search path according - to the second parameter: - - * :cb:`Environment::Append`: append to the search path. - - * :cb:`Environment::Prepend`: insert in head of the search path. - - * :cb:`Environment::Replace`: look for a library of the same name and replace - it, whithout changing the search path order. If no library of that name - already exists, it is appended. - - A library is identified by it's name, this name is the last component of the - path name. For instance: ``/soc/alliance/sxlib`` will be named ``sxlib``. - Implementing the |Alliance| specification, when looking for a |Cell| ``name``, - the system will browse sequentially trought the library list and returns - the first |Cell| whose name match. - -* For ``POWER``, ``GROUND``, ``CLOCK`` and ``BLOCKAGE`` net names, a regular - expression (|GNU| regexp) is expected. - -* The ``helpers.sysConfDir`` variable is supplied by the helpers, it is the - directory in which the system-wide configuration files are locateds. - For a standard installation it would be: ``/soc/coriolis2``. - -.. * Trick and naming convention about ``SYMBOLIC_TECHNOLOGY``, ``REAL_TECHNOLOGY`` -.. and ``DISPLAY``. In the previous releases, thoses files where to read by -.. XML parsers, and still do if you triggers the XML compatibility mode. -.. But now, they have Python conterparts. In the configuration files, you -.. still have to name them as XML files, the Python file name will be -.. deduced from this one with thoses two translation rules: -.. -.. #. In the filename, all dots, except for the last (the file extention), -.. are replaced by underscores. -.. -.. #. The ``.xml`` extention is substituted by a ``.conf``. -.. -.. For the symbolic technology, it would give: :: -.. -.. /soc/coriolis2/technology.symbolic.xml -.. --> /soc/coriolis2/technology_symbolic.conf - -A typical user's configuration file would be: :: - - import os - - homeDir = os.getenv('HOME') - - allianceConfig = \ - ( ('WORKING_LIBRARY' , homeDir+'/worklib') - , ('SYSTEM_LIBRARY' , ( (homeDir+'/mylib', Environment.Append) ) ) - , ('POWER' , 'vdd.*') - , ('GROUND' , 'vss.*') - ) - - -Tools Configuration Helpers ---------------------------- - -All the tools uses the same helper to load their configuration (a.k.a. -*Configuration Helper*). Currently the following configuration system-wide -configuration files are defined: - -* :cb:`misc.conf`: commons settings or not belonging specifically to a tool. -* :cb:`etesian.conf`: for the |Etesian| tool. -* :cb:`kite.conf`: for the |Kite| tool. -* :cb:`stratus1.conf`: for the |stratus1| tool. - -Here is the contents of :cb:`etesian.conf`: :: - - # Etesian parameters. - parametersTable = \ - ( ('etesian.aspectRatio' , TypePercentage, 100 , { 'min':10, 'max':1000 } ) - , ('etesian.spaceMargin' , TypePercentage, 5 ) - , ('etesian.uniformDensity' , TypeBool , False ) - , ('etesian.routingDriven' , TypeBool , False ) - , ("etesian.effort" , TypeEnumerate , 2 - , { 'values':( ("Fast" , 1) - , ("Standard", 2) - , ("High" , 3) - , ("Extreme" , 4) ) } - ) - , ("etesian.graphics" , TypeEnumerate , 2 - , { 'values':( ("Show every step" , 1) - , ("Show lower bound" , 2) - , ("Show result only" , 3) ) } - ) - ) - - layoutTable = \ - ( (TypeTab , 'Etesian', 'etesian') - - , (TypeTitle , 'Placement area') - , (TypeOption, "etesian.aspectRatio" , "Aspect Ratio, X/Y (%)", 0 ) - , (TypeOption, "etesian.spaceMargin" , "Space Margin" , 1 ) - , (TypeRule ,) - , (TypeTitle , 'Etesian - Placer') - , (TypeOption, "etesian.uniformDensity", "Uniform density" , 0 ) - , (TypeOption, "etesian.routingDriven" , "Routing driven" , 0 ) - , (TypeOption, "etesian.effort" , "Placement effort" , 1 ) - , (TypeOption, "etesian.graphics" , "Placement view" , 1 ) - , (TypeRule ,) - ) - -Taxonomy of the file: - -* It must contains, at least, the two tables: - - * ``parametersTable``, defines & initialise the configuration variables. - - * ``layoutTables``, defines how the various parameters will be displayed - in the configuration window (`The Settings Tab`_). - -* The ``parametersTable``, is a tuple (list) of tuples. Each entry in the list - describe a configuration parameter. In it's simplest form, it's a quadruplet - :cb:`(TypeOption, 'paramId', ParameterType, DefaultValue)` with: - - #. ``TypeOption``, tells that this tuple describe a parameter. - - #. ``paramId``, the identifier of the parameter. Identifiers are defined - by the tools. The list of parameters is detailed in each tool section. - - #. ``ParameterType``, the kind of parameter. Could be: - - * ``TypeBool``, boolean. - * ``TypeInt``, signed integer. - * ``TypeEnumerate``, enumerated type, needs extra entry. - * ``TypePercentage``, percentage, expressed between 0 and 100. - * ``TypeDouble``, float. - * ``TypeString``, character string. - - #. ``DefaultValue``, the default value for that parameter. - - -Hacking the Configuration Files -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Asides from the symbols that gets used by the configuration helpers like -:cb:`allianceConfig` or :cb:`parametersTable`, you can put pretty much anything -in :cb:`/.coriolis2/settings.py` (that is, written in |Python|). - -For example: :: - - # -*- Mode:Python -*- - - defaultStyle = 'Alliance.Classic [black]' - - # Regular Coriolis configuration. - parametersTable = \ - ( ('misc.catchCore' , TypeBool , False ) - , ('misc.info' , TypeBool , False ) - , ('misc.paranoid' , TypeBool , False ) - , ('misc.bug' , TypeBool , False ) - , ('misc.logMode' , TypeBool , True ) - , ('misc.verboseLevel1' , TypeBool , False ) - , ('misc.verboseLevel2' , TypeBool , True ) - , ('misc.minTraceLevel' , TypeInt , 0 ) - , ('misc.maxTraceLevel' , TypeInt , 0 ) - ) - - # Some ordinary Python script... - import os - - print ' o Cleaning up ClockTree previous run.' - for fileName in os.listdir('.'): - if fileName.endswith('.ap') or (fileName.find('_clocked.') >= 0): - print ' - <%s>' % fileName - os.unlink(fileName) - - -See `Python Interface to Coriolis`_ for more details those capabilities. - - -CGT - The Graphical Interface -============================= - -The |Coriolis| graphical interface is split up into two windows. - -* The **Viewer**, with the following features: - - * Basic load/save capabilities. - * Display the current working cell. Could be empty if the design - is not yet placed. - * Execute Stratus Scripts. - * Menu to run the tools (placement, routage). - -Features are detailed in `Viewer & Tools`_. - -|ViewerSnapShot_1| - -* The **Controller**, which allows: - - * Tweak what is displayer by the *Viewer*. Through the *Look*, - *Filter* and *Layers&Gos* tabs. - * Browse the |netlist| with eponym tab. - * Show the list of selected objects (if any) with *selection* - * Walk through the Database, the Cell or the Selection with *Inspector*. - This is an advanced feature, reserved for experimented users. - * The tab *Settings* which give access to all the settings. - They are closely related to Configuration & Initialisation. - -|ControllerSnapShot_1| - - -.. _Viewer & Tools: - -Viewer & Tools -============== - -|Stratus| Netlist Capture -~~~~~~~~~~~~~~~~~~~~~~~~~ - -|Stratus| is the replacement for |GenLib| procedural netlist capture language. -It is designed as a set of |Python| classes, and comes with it's own documentation -(`Stratus Documentation`_) - - -The |Hurricane| Data-Base -~~~~~~~~~~~~~~~~~~~~~~~~~ - -The |Alliance| flow is based on the |MBK| data-base, which has one data-structure -for each view. That is, |LOFIG| for the *logical* view and |PHFIG| for the *physical* -view. The place and route tools were responsible for maintaining (or not) the -coherency between views. Reflecting this weak coupling between views, each one -was stored in a separate file with a specific format. The *logical* view is stored -in a |vst| file in |VHDL| format and the *physical* in an |ap| file in an ad-hoc format. - -The |Coriolis| flow is based on the |Hurricane| data-base, which has a unified -structure for *logical* and *physical* view. That data structure is the |Cell| object. -The |Cell| can have any state between pure netlist and completly placed and -routed design. Although the memory representation of the views has deeply -changed we still use the |Alliance| files format, but they now really represent -views of the same object. The point is that one must be very careful about -view coherency when going to and from |Coriolis|. - -As for the second release, |Coriolis| can be used only for three purposes : - -* **Placing a design**, in which case the |netlist| view must be present. -* **Routing a design**, in that case the |netlist| - view and the |layout| view must be present and |layout| view must contain - a placement. Both views must have the same name. When saving the routed design, - it is advised to change the design name otherwise the original unrouted placement - in the |layout| view will be overwritten. -* **Viewing a design**, the |netlist| view must be present, if a |layout| - view is present it still must have the same name but it can be in any - state. - - -Synthetizing and loading a design -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -|Coriolis| supports several file formats. It can load all file format -from the |Alliance| toolchain (.ap for layout, behavioural and structural vhdl .vbe and .vst), -BLIF netlist format as well as benchmark formats from the ISPD contests. - -It can be compiled with LEF/DEF support, although it requires acceptance of the SI2 license -and may not be compiled in your version of the software. - -Synthesis under Yosys ---------------------- - -You can create a BLIF file from the |Yosys| synthetizer, which can be imported under Coriolis. -Most libraries are specified as a .lib liberty file and a .lef LEF file. -|Yosys| opens most .lib files with minor modifications, but LEF support in Coriolis relies on SI2. -If Coriolis hasn't been compiled against it, the library is given in |Alliance| .ap format. -`Some free libraries `_ already provide both .ap and .lib files. - -Once you have installed a common library under |Yosys| and Coriolis, just synthetize your design -with |Yosys| and import it (as Blif without the extension) under Coriolis to perform place&route. - -Synthesis under Alliance ------------------------- - -|Alliance| is an older toolchain but has been extensively used for years. Coriolis can import -and write Alliance designs and libraries directly. - -Etesian -- Placer -~~~~~~~~~~~~~~~~~ - -The |Etesian| placer is a state of the art (as of 2015) analytical placer. It is -within ``5%`` of other placers' solutions, but is normally a bit worse than ePlace. -This |Coriolis| tool is actually an encapsulation of |Coloquinte| which *is* the placer. - -.. note:: *Instance Uniquification Unsupported:* a same logical instance cannot have - two different placements. So, either you manually make a clone of it or you - supply a placement for it. We need to implement uniquification in the - |Hurricane| database. - - -|noindent| -**Hierarchical Placement** - -The placement area is defined by the top cell abutment box. - -When placing a complete hierarchy, the abutment boxes of the cells (models) other than -the top cell are sets identical to the one of the top cell and their instances are -all placed at position ``(0,0,ID)``. That is, all the abutments boxes, whatever the -hierarchical level, defines the same area (they are exactly superposed). - -We choose this scheme because the placer will see all the instances as virtually -flattened, so they can be placed anywhere inside the top-cell abutment box. - -|Etesian-1| - - -|noindent| -**Computing the Placement Area** - -The placement area is computed using the ``etesian.aspectRatio`` and ``etesian.spaceMargin`` -parameters only if the top-cell has an empty abutment box. If the top-cell abutment -box has to be set, then it is propagated to all the instances models recursively. - - -|noindent| -**Reseting the Placement** - -Once a placement has been done, the placer cannot reset it (will be implemented -later). To perform a new placement, you must restart |cgt|. In addition, if you -have saved the placement on disk, you must erase any :cb:`.ap` file, which are -automatically reloaded along with the netlist (:cb:`.vst`). - -|noindent| -**Limitations** - -Etesian supports standard cells and fixed macros. As for the Coriolis 2.1 version, -it doesn't support movable macros, and you must place every macro beforehand. -Timing and routability analysis are not included either, and the returned placement -may be unroutable. - -|newpage| - - -Etesian Configuration Parameters --------------------------------- - -+-----------------------------------+------------------+----------------------------+ -| Parameter Identifier | Type | Default | -+===================================+==================+============================+ -| **Etesian Parameters** | -+-----------------------------------+------------------+----------------------------+ -|``etesian.aspectRatio`` | TypePercentage | :cb:`100` | -| +------------------+----------------------------+ -| | Define the height on width ``H/W`` aspect | -| | ratio, can be comprised between 10 and 1000 | -+-----------------------------------+------------------+----------------------------+ -|``etesian.spaceMargin`` | TypePercentage | :cb:`5` | -| +------------------+----------------------------+ -| | The extra white space added to the total area | -| | of the standard cells | -+-----------------------------------+------------------+----------------------------+ -|``etesian.uniformDensity`` | TypeBool | :cb:`False` | -| +------------------+----------------------------+ -| | Whether the cells will be spread envenly | -| | across the area or allowed to form denser | -| | clusters | -+-----------------------------------+------------------+----------------------------+ -|``etesian.effort`` | TypeInt | :cb:`2` | -| +------------------+----------------------------+ -| | Sets the balance between the speed of the | -| | placer and the solution quality | -+-----------------------------------+------------------+----------------------------+ -|``etesian.routingDriven`` | TypeBool | :cb:`False` | -| +------------------+----------------------------+ -| | Whether the tool will try routing iterations | -| | and whitespace allocation to improve | -| | routability; to be implemented | -+-----------------------------------+------------------+----------------------------+ -|``etesian.graphics`` | TypeInt | :cb:`2` | -| +------------------+----------------------------+ -| | How often the display will be refreshed | -| | More refreshing slows the placer. | -| | | -| | * ``1`` shows both upper and lower bounds | -| | * ``2`` only shows lower bound results | -| | * ``3`` only shows the final results | -+-----------------------------------+-----------------------------------------------+ - - -Knik -- Global Router -~~~~~~~~~~~~~~~~~~~~~ - -The quality of |Knik| global routing solutions are equivalent to those of FGR_ 1.0. -For an in-depth description of |Knik| algorithms, you may download the thesis of -D. |Dupuis| avalaible from here~: `Knik Thesis`_. - -The global router is (not yet) deterministic. To circumvent this limitation, -a global routing *solution* can be saved to disk and reloaded for later uses. - -A global routing is saved into a file with the same name as the design and a -|kgr| extention. It is in `Box Router`_ output format. - -|noindent| Menus: - -* |menu_P&R| |rightarrow| |menu_StepByStep| |rightarrow| |menu_KiteSaveGlobalRouting|. -* |menu_P&R| |rightarrow| |menu_StepByStep| |rightarrow| |menu_KiteLoadGlobalRouting|. - - -Kite -- Detailed Router -~~~~~~~~~~~~~~~~~~~~~~~ - -|Kite| no longer suffers from the limitations of |Nero|. It can route big designs -as its runtime and memory footprint is almost linear (with respect to the number -of gates). It has successfully routed design of more than `150K` gates. -|medskip| - -|noindent| However, this first release comes with the temporary the following -restrictions: - -* Works only with |SxLib| standard cell gauge. -* Works always with 4 routing metal layers (`M2` through `M5`). -* Do not allow (take into account) pre-routed wires on signals - other than |POWER| or |GROUND|. - -.. note:: - **Slow Layer Assignment.** Most of the time, the layer assignment stage is - fast (less than a dozen seconds), but in some instances it can take more - than a dozen *minutes*. This is a known bug and will be corrected in later - releases. - -After each run, |Kite| displays a set of *completion ratios* which must all -be equal to `100%` if the detailed routing has been successfull. -In the event of a failure, on a saturated design, you may decrease the -`edge saturation ratio` (argument `--edge`) to balance more evenly the design -saturation. That is, the maximum saturation decrease at the price of a wider -saturated area and increased wirelength. This is the saturation of the -*global* router |Knik|, and you may increase/decrease by steps of ``5%``, -which represent one track. The maximum capacity of the |SxLib| gauge is -10 tracks in two layers, that makes 20 tracks by |Knik| edge. - -Routing a design is done in four ordered steps: - -#. Detailed pre-route |menu_P&R| |rightarrow| |menu_StepByStep| |rightarrow| |menu_KiteDetailedPreRoute|. -#. Global routing |menu_P&R| |rightarrow| |menu_StepByStep| |rightarrow| |menu_KiteGlobalRoute|. -#. Detailed routing |menu_P&R| |rightarrow| |menu_StepByStep| |rightarrow| |menu_KiteDetailedRoute|. -#. Finalize routing |menu_P&R| |rightarrow| |menu_StepByStep| |rightarrow| |menu_KiteFinalizeRoute|. - -It is possible to supply to the router a complete wiring for some nets that the user's -wants to be routed according to a specific topology. The supplied topology must respect -the building rules of the |Katabatic| database (contacts must be, terminals, turns, h-tee -& v-tee only). During the first step :fboxtt:`Detailed Pre-Route` the router will solve -overlaps between the segments, without making any dogleg. If no pre-routed topologies -are present, this step may be ommited. Any net routed at this step is then fixed and -become unmovable for the later stages. - -After the detailed routing step the |Kite| data-structure is still active -(the Hurricane wiring is decorated). The finalize step performs the removal of -the |Kite| data-structure, and it is not advisable to save the design before -that step. - -You may visualize the density (saturation) of either |Knik| (on edges) or -|Kite| (on GCells) until the routing is finalized. Special layers appears -to that effect in the `The Layers&Go Tab`_. - - -Kite Configuration Parameters ------------------------------ - -As |Knik| is only called through |Kite|, it's parameters also have -the :cb:`kite.` prefix. - -The |Katabatic| parameters control the layer assignment step. - -All the defaults value given below are from the default |Alliance| technology -(:cb:`cmos` and :cb:`SxLib` cell gauge/routing gauge). - -+-----------------------------------+------------------+----------------------------+ -| Parameter Identifier | Type | Default | -+===================================+==================+============================+ -| **Katabatic Parameters** | -+-----------------------------------+------------------+----------------------------+ -|``katabatic.topRoutingLayer`` | TypeString | :cb:`METAL5` | -| +------------------+----------------------------+ -| | Define the highest metal layer that will be | -| | used for routing (inclusive). | -+-----------------------------------+------------------+----------------------------+ -|``katabatic.globalLengthThreshold``| TypeInt | :cb:`1450` | -| +------------------+----------------------------+ -| | This parameter is used by a layer assignment | -| | method which is no longer used (did not give | -| | good results) | -+-----------------------------------+------------------+----------------------------+ -| ``katabatic.saturateRatio`` | TypePercentage | :cb:`80` | -| +------------------+----------------------------+ -| | If ``M(x)`` density is above this ratio, | -| | move up feedthru global segments up from | -| | depth ``x`` to ``x+2`` | -+-----------------------------------+------------------+----------------------------+ -| ``katabatic.saturateRp`` | TypeInt | :cb:`8` | -| +------------------+----------------------------+ -| | If a GCell contains more terminals | -| | (:cb:`RoutingPad`) than that number, force a | -| | move up of the connecting segments to those | -| | in excess | -+-----------------------------------+------------------+----------------------------+ -| **Knik Parameters** | -+-----------------------------------+------------------+----------------------------+ -| ``kite.hTracksReservedLocal`` | TypeInt | :cb:`3` | -| +------------------+----------------------------+ -| | To take account the tracks needed *inside* a | -| | GCell to build the *local* routing, decrease | -| | the capacity of the edges of the global | -| | router. Horizontal and vertical locally | -| | reserved capacity can be distinguished for | -| | more accuracy. | -+-----------------------------------+------------------+----------------------------+ -| ``kite.vTracksReservedLocal`` | TypeInt | :cb:`3` | -| +------------------+----------------------------+ -| | cf. ``kite.hTracksReservedLocal`` | -+-----------------------------------+------------------+----------------------------+ -| **Kite Parameters** | -+-----------------------------------+------------------+----------------------------+ -| ``kite.eventsLimit`` | TypeInt | :cb:`4000002` | -| +------------------+----------------------------+ -| | The maximum number of segment displacements, | -| | this is a last ditch safety against infinite | -| | loop. It's perhaps a little too low for big | -| | designs | -+-----------------------------------+------------------+----------------------------+ -| ``kite.ripupCost`` | TypeInt | :cb:`3` | -| +------------------+----------------------------+ -| | Differential introduced between two ripup | -| | cost to avoid a loop between two ripped up | -| | segments | -+-----------------------------------+------------------+----------------------------+ -| ``kite.strapRipupLimit`` | TypeInt | :cb:`16` | -| +------------------+----------------------------+ -| | Maximum number of ripup for *strap* segments | -+-----------------------------------+------------------+----------------------------+ -| ``kite.localRipupLimit`` | TypeInt | :cb:`9` | -| +------------------+----------------------------+ -| | Maximum number of ripup for *local* segments | -+-----------------------------------+------------------+----------------------------+ -| ``kite.globalRipupLimit`` | TypeInt | :cb:`5` | -| +------------------+----------------------------+ -| | Maximum number of ripup for *global* segments,| -| | when this limit is reached, triggers topologic| -| | modification | -+-----------------------------------+------------------+----------------------------+ -| ``kite.longGlobalRipupLimit`` | TypeInt | :cb:`5` | -| +------------------+----------------------------+ -| | Maximum number of ripup for *long global* | -| | segments, when this limit is reached, triggers| -| | topological modification | -+-----------------------------------+------------------+----------------------------+ - - - -.. _Python Scripts in Cgt: - -Executing Python Scripts in Cgt -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Python/Stratus scripts can be executed either in text or graphical mode. - -.. note:: **How Cgt Locates Python Scripts:** - |cgt| uses the Python ``import`` mechanism to load Python scripts. - So you must give the name of your script whitout ``.py`` extention and - it must be reachable through the ``PYTHONPATH``. You may uses the - dotted module notation. - -A Python/Stratus script must contains a function called ``ScriptMain()`` -with one optional argument, the graphical editor into which it may be -running (will be set to ``None`` in text mode). The Python interface to -the editor (type: :cb:`CellViewer`) is limited to basic capabilities -only. - -Any script given on the command line will be run immediatly *after* the -initializations and *before* any other argument is processed. - -For more explanation on Python scripts see `Python Interface to Coriolis`_. - - -Printing & Snapshots -~~~~~~~~~~~~~~~~~~~~ - -Printing or saving into a |pdf| is fairly simple, just uses the **File -> Print** -menu or the |CTRL_P| shortcut to open the dialog box. - -The print functionality uses exactly the same rendering mechanism as for the -screen, beeing almost *WYSIWYG*. Thus, to obtain the best results it is advisable -to select the ``Coriolis.Printer`` look (in the *Controller*), which uses a -white background and much suited for high resolutions ``32x32`` pixels patterns - -There is also two mode of printing selectable through the *Controller* -**Settings -> Misc -> Printer/Snapshot Mode**: - -=============== ================= ===================================================== -Mode DPI (approx.) Intended Usage ---------------- ----------------- ----------------------------------------------------- -**Cell Mode** 150 For single ``Cell`` printing or very small designs. - Patterns will be bigger and more readable. -**Design Mode** 300 For designs (mostly commposed of wires and cells - outlines). -=============== ================= ===================================================== - -.. note:: *The pdf file size* - Be aware that the generated |pdf| files are indeed only pixmaps. - So they can grew very large if you select paper format above ``A2`` - or similar. - - -|noindent| -Saving into an image is subject to the same remarks as for |pdf|. - - -Memento of Shortcuts in Graphic Mode -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The main application binary is |cgt|. - -+---------------+-------------------+-----------------------------------------------------------+ -| Category | Keys | Action | -+===============+===================+===========================================================+ -| **Moves** | | |KeyUp|, | Shift the view in the according direction | -| | |KeyDown| | | -| | | |KeyLeft|, | | -| | |KeyRight| | | -+---------------+-------------------+-----------------------------------------------------------+ -| **Fit** | |KeyF| | Fit to the Cell abutment box | -+---------------+-------------------+-----------------------------------------------------------+ -| **Refresh** | |CTRL_L| | Triggers a complete display redraw | -+---------------+-------------------+-----------------------------------------------------------+ -| **Goto** | |KeyG| | *apperture* is the minimum side of the area | -| | | displayed around the point to go to. It's an | -| | | alternative way of setting the zoom level | -+---------------+-------------------+-----------------------------------------------------------+ -| **Zoom** | |KeyZ|, | Respectively zoom by a 2 factor and *unzoom* | -| | |KeyM| | by a 2 factor | -| +-------------------+-----------------------------------------------------------+ -| | | |BigMouse| | You can perform a zoom to an area. | -| | | Area Zoom | Define the zoom area by *holding down the left | -| | | mouse button* while moving the mouse. | -+---------------+-------------------+-----------------------------------------------------------+ -| **Selection** | | |BigMouse| | You can select displayed objects under an area. | -| | | Area Selection | Define the selection area by *holding down the | -| | | right mouse button* while moving the mouse. | -| +-------------------+-----------------------------------------------------------+ -| | | |BigMouse| | You can toggle the selection of one object under | -| | | Toggle Selection| the mouse position by pressing |CTRL| and | -| | | pressing down *the right mouse button*. A popup | -| | | list of what's under the position shows up into | -| | | which you can toggle the selection state of one | -| | | item. | -| +-------------------+-----------------------------------------------------------+ -| | |KeyCapS| | Toggle the selection visibility | -+---------------+-------------------+-----------------------------------------------------------+ -| **Controller**| |CTRL_I| | Show/hide the controller window. | -| | | | -| | | It's the Swiss Army Knife of the viewer. | -| | | From it, you can fine-control the display and | -| | | inspect almost everything in your design. | -+---------------+-------------------+-----------------------------------------------------------+ -| **Rulers** | |KeyK|, | One stroke on |KeyK| enters the ruler mode, in | -| | |KeyESC| | which you can draw one ruler. You can exit the | -| | | ruler mode by pressing |KeyESC|. Once in ruler | -| | | mode, the first click on the *left mouse button* | -| | | sets the ruler's starting point and the second | -| | | click the ruler's end point. The second click | -| | | exits automatically the ruler mode. | -| +-------------------+-----------------------------------------------------------+ -| | |KeyCapK| | Clears all the drawn rulers | -+---------------+-------------------+-----------------------------------------------------------+ -| **Print** | |CTRL_P| | Currently rather crude. It's a direct copy of | -| | | what's displayed in pixels. So the resulting | -| | | picture will be a little blurred due to | -| | | anti-aliasing mechanism. | -+---------------+-------------------+-----------------------------------------------------------+ -| **Open/Close**| |CTRL_O| | Opens a new design. The design name must be | -| | | given without path or extention. | -| +-------------------+-----------------------------------------------------------+ -| | |CTRL_W| | Close the current viewer window, but do not quit | -| | | the application. | -| +-------------------+-----------------------------------------------------------+ -| | |CTRL_Q| | `CTRL+Q` quit the application | -| | | (closing all windows). | -+---------------+-------------------+-----------------------------------------------------------+ -| **Hierarchy** | |CTRL_Down| | Go one hierarchy level down. That is, if there | -| | | is an *instance* under the cursor position, load | -| | | it's *model* Cell in place of the current one. | -| +-------------------+-----------------------------------------------------------+ -| | |CTRL_Up| | Go one hierarchy level up. if we have entered | -| | | the current model through |CTRL_Down| | -| | | reload the previous model (the one | -| | | in which this model is instanciated). | -+---------------+-------------------+-----------------------------------------------------------+ - - -Cgt Command Line Options -~~~~~~~~~~~~~~~~~~~~~~~~ - -Appart from the obvious ``--text`` options, all can be used for text and graphical mode. - -+-----------------------------+------------------------------------------------+ -| Arguments | Meaning | -+=============================+================================================+ -| `-t|--text` | Instruct |cgt| to run in text mode. | -+-----------------------------+------------------------------------------------+ -| `-L|--log-mode` | Disable the uses of |ANSI| escape sequence on | -| | the |tty|. Useful when the output is | -| | redirected to a file. | -+-----------------------------+------------------------------------------------+ -| `-c |--cell=` | The name of the design to load, without | -| | leading path or extention. | -+-----------------------------+------------------------------------------------+ -| `-g|--load-global` | Reload a global routing solution from disk. | -| | The file containing the solution must be named | -| | `.kgr`. | -+-----------------------------+------------------------------------------------+ -| `--save-global` | Save the global routing solution, into a file | -| | named `.kgr`. | -+-----------------------------+------------------------------------------------+ -| `-e |--edge=` | Change the edge capacity for the global | -| | router, between 0 and 1 (|Knik|). | -+-----------------------------+------------------------------------------------+ -| `-G|--global-route` | Run the global router (|Knik|). | -+-----------------------------+------------------------------------------------+ -| `-R|--detailed-route` | Run the detailed router (|Kite|). | -+-----------------------------+------------------------------------------------+ -| `-s|--save-design=` | The design into which the routed layout will | -| | be saved. It is strongly recommanded to choose | -| | a different name from the source (unrouted) | -| | design. | -+-----------------------------+------------------------------------------------+ -| `--events-limit=` | The maximal number of events after which the | -| | router will stops. This is mainly a failsafe | -| | against looping. The limit is sets to 4 | -| | millions of iteration which should suffice to | -| | any design of `100K`. gates. For bigger | -| | designs you may wants to increase this limit. | -+-----------------------------+------------------------------------------------+ -| `--stratus-script=` | Run the Python/Stratus script ``module``. | -| | See `Python Scripts in Cgt`_. | -+-----------------------------+------------------------------------------------+ - - -Some Examples : - -* Run both global and detailed router, then save the routed design : :: - - > cgt -v -t -G -R --cell=design --save-design=design_kite - -* Load a previous global solution, run the detailed router, then save the - routed design : :: - - > cgt -v -t --load-global -R --cell=design --save-design=design_kite - -* Run the global router, then save the global routing solution : :: - - > cgt -v -t -G --save-global --cell=design - - -Miscellaneous Settings -~~~~~~~~~~~~~~~~~~~~~~ - -+---------------------------------------+------------------+----------------------------+ -| Parameter Identifier | Type | Default | -+=======================================+==================+============================+ -| **Verbosity/Log Parameters** | -+---------------------------------------+------------------+----------------------------+ -| ``misc.info`` | TypeBool | :cb:`False` | -| +------------------+----------------------------+ -| | Enable display of *info* level message | -| | (:cb:`cinfo` stream) | -+---------------------------------------+------------------+----------------------------+ -| ``misc.bug`` | TypeBool | :cb:`False` | -| +------------------+----------------------------+ -| | Enable display of *bug* level message | -| | (:cb:`cbug` stream), messages can be a little | -| | scarry | -+---------------------------------------+------------------+----------------------------+ -| ``misc.logMode`` | TypeBool | :cb:`False` | -| +------------------+----------------------------+ -| | If enabled, assume that the output device | -| | is not a ``tty`` and suppress any escaped | -| | sequences | -+---------------------------------------+------------------+----------------------------+ -| ``misc.verboseLevel1`` | TypeBool | :cb:`True` | -| +------------------+----------------------------+ -| | First level of verbosity, disable level 2 | -+---------------------------------------+------------------+----------------------------+ -| ``misc.verboseLevel2`` | TypeBool | :cb:`False` | -| +------------------+----------------------------+ -| | Second level of verbosity | -+---------------------------------------+------------------+----------------------------+ -| **Development/Debug Parameters** | -+---------------------------------------+------------------+----------------------------+ -| ``misc.minTraceLevel`` | TypeInt | :cb:`0` | -+---------------------------------------+------------------+----------------------------+ -| ``misc.maxTraceLevel`` | TypeInt | :cb:`0` | -| +------------------+----------------------------+ -| | Display trace information *between* those two | -| | levels (:cb:`cdebug` stream) | -+---------------------------------------+------------------+----------------------------+ -| ``misc.catchCore`` | TypeBool | :cb:`False` | -| +------------------+----------------------------+ -| | By default, |cgt| do not dump core. | -| | To generate one set this flag to :cb:`True` | -+---------------------------------------+------------------+----------------------------+ - -|newpage| - - -.. _The Controller: - -The Controller -============== - -The *Controller* window is composed of seven tabs: - -#. `The Look Tab`_ to select the display style. -#. `The Filter Tab`_ the hierarchical levels to be displayed, the look of - rubbers and the dimension units. -#. `The Layers&Go Tab`_ to selectively hide/display layers. -#. `The Netlist Tab`_ to browse through the |netlist|. Works in association - with the *Selection* tab. -#. `The Selection Tab`_ allow to view all the currently selected elements. -#. `The Inspector Tab`_ browse through either the DataBase, the Cell or - the current selection. -#. `The Settings Tab`_ access all the tool's configuration settings. - - -.. _The Look Tab: - -The Look Tab -~~~~~~~~~~~~ - -You can select how the layout will be displayed. There is a special one -``Printer.Coriolis`` specifically designed for `Printing & Snapshots`_. -You should select it prior to calling the print or snapshot dialog boxes. - -|ControllerLook_1| - - -.. _The Filter Tab: - -The Filter Tab -~~~~~~~~~~~~~~ - -The filter tab let you select what hierarchical levels of your design will be -displayed. Hierarchy level are numbered top-down: the level 0 correspond to -the top-level cell, the level one to the instances of the top-level Cell and -so on. - -There are also check boxes to enable/disable the processing of Terminal Cell, -Master Cells and Compnents. The processing of Terminal Cell (hierarchy leaf -cells) is disabled by default when you load a hierarchical design and enabled -when you load a single Cell. - -You can choose what kind of form to give to the rubbers and the type of -unit used to display coordinates. - -.. note:: *What are Rubbers:* |Hurricane| uses *Rubbers* to materialize - physical gaps in net topology. That is, if some wires are missing to - connect two or more parts of net, a *rubber* will be drawn between them - to signal the gap. - - For example, after the detailed routing no *rubbers* should remains. - They have been made *very* visibles as big violet lines... - -|ControllerFilter_1| - - -.. _The Layers&Go Tab: - -The Layers&Go Tab -~~~~~~~~~~~~~~~~~ - -Control the individual display of all *layers* and *Gos*. - -* *Layers* correspond to a true physical layer. From a |Hurricane| point of - view they are all the *BasicLayers* (could be matched to GDSII). -* *Gos* stands from *Graphical Objects*, they are drawings that have no - physical existence but are added by the various tools to display extra - information. One good exemple is the density map of the detailed router, - to easily locate congested areas. - -For each layer/Go there are two check boxes: - -* The normal one triggers the display. -* The red-outlined allows objects of that layer to be selectable or not. - -|ControllerLayersGos_1| - - -.. _The Netlist Tab: - -The Netlist Tab -~~~~~~~~~~~~~~~ - -The *Netlist* tab shows the list of nets... By default the tab is not -*synched* with the displayed Cell. To see the nets you must check the -**Sync Netlist** checkbox. You can narrow the set of displayed nets by -using the filter pattern (supports regular expressions). - -An very useful feature is to enable the **Sync Selection**, which will -automatically select all the components of the selected net(s). You can -select multiple nets. In the figure the net ``auxsc35`` is selected and -is highlited in the *Viewer*. - -|ControllerNetlist_1| -|ViewerNetlist_1| - - -.. _The Selection Tab: - -The Selection Tab -~~~~~~~~~~~~~~~~~ - -The *Selection* tab list all the components currently selecteds. They -can be filtered thanks to the filter pattern. - -Used in conjunction with the *Netlist* **Sync Selection** you will all see -all the components part of *net*. - -In this list, you can toggle individually the selection of component by -pressing the ``t`` key. When unselected in this way a component is not -removed from the the selection list but instead displayed in red italic. -To see where a component is you may make it blink by repeatedly press -the ``t`` key... - -|ControllerSelection_1| - - -.. _The Inspector Tab: - -The Inspector Tab -~~~~~~~~~~~~~~~~~ - -This tab is very useful, but mostly for |Coriolis| developpers. It allows -to browse through the live DataBase. The *Inspector* provide three entry points: - -* **DataBase**: Starts from the whole |Hurricane| DataBase. -* **Cell**: Inspect the currently loaded Cell. -* **Selection**: Inspect the object currently highlited in the *Selection* tab. - -Once an entry point has been activated, you may recursively expore all -it's fields using the right/left arrows. - -.. note:: *Do not put your fingers in the socket:* when inspecting - anything, do not modify the DataBase. If any object under inspection - is deleted, you will crash the application... - -.. note:: *Implementation Detail:* the inspector support is done with - ``Slot``, ``Record`` and ``getString()``. - -|ControllerInspector_1| -|ControllerInspector_2| -|ControllerInspector_3| - - -.. _The Settings Tab: - -The Settings Tab -~~~~~~~~~~~~~~~~ - -Here comes the description of the *Settings* tab. - -|ControllerSettings_1| - - -.. _Python Interface to Coriolis: - -Python Interface for |Hurricane| / |Coriolis| -============================================= - -The (almost) complete interface of |Hurricane| is exported as a |Python| module -and some part of the other components of |Coriolis| (each one in a separate -module). The interface has been made to mirror as closely as possible the -C++ one, so the C++ doxygen documentation could be used to write code with -either languages. - -`Summary of the C++ Documentation `_ - -A script could be run directly in text mode from the command line or through -the graphical interface (see `Python Scripts in Cgt`_). - -Asides for this requirement, the python script can contain anything valid -in |Python|, so don't hesitate to use any package or extention. - -Small example of Python/Stratus script: :: - - from Hurricane import * - from Stratus import * - - def doSomething (): - # ... - return - - def ScriptMain ( **kw ): - editor = None - if kw.has_key('editor') and kw['editor']: - editor = kw['editor'] - stratus.setEditor( editor ) - - doSomething() - return - - if __name__ == "__main__" : - kw = {} - success = ScriptMain( **kw ) - shellSuccess = 0 - if not success: shellSuccess = 1 - - sys.exit( shellSuccess ) - ScriptMain () - -This typical script can be executed in two ways: - -#. Run directly as a |Python| script, thanks to the :: - - if __name__ == "__main__" : - - part (this is standart |Python|). It is a simple adapter that will - calls :cb:`ScriptMain()`. -#. Through |cgt|, either in text or graphical mode. In that case, the - :cb:`ScriptMain()` is directly called trough a sub-interpreter. - The arguments of the script are passed through the ``**kw`` dictionnary. - - +----------------------+-----------------------------------------------+ - | \*\*kw Dictionnary | - +----------------------+-----------------------------------------------+ - | Parameter Key/Name | Contents type | - +======================+===============================================+ - | ``'cell'`` | A Hurricane cell on which to work. Depending | - | | on the context, it may be ``None``. | - | | For example, when run from |cgt|, it the cell | - | | currently loaded in the viewer, if any. | - +----------------------+-----------------------------------------------+ - | ``'editor'`` | The viewer from which the script is run, when | - | | lauched through |cgt|. | - +----------------------+-----------------------------------------------+ - - -Plugins -======= - -Plugins are |Python| scripts specially crafted to integrate with |cgt|. -Their entry point is a :cb:`ScriptMain()` method as described in -`Python Interface to Coriolis`_. They can be called by user scripts -through this method. - - - -Chip Placement -~~~~~~~~~~~~~~ - -Automatically perform the placement of a complete chip. This plugin, as well -as the other P&R tools expect a specific top-level hierarchy for the design. -The top-level hierarchy must contains the instances of all the I/O pads and -**exactly one** instance of the chip's core model. - -|ChipStructure-1| - -The designer must provide a configuration file that define the rules for the -placement of the top-level hierarchy (that is, the pads and the core). -This file must be named after the chip's name, by appending ``_chip.py`` -(obviously, it is a |Python| file). For instance if the chip netlist file -is called ``amd2901_crl.vst``, then the configuration file must be named -``amd2901_crl_chip.vst``. - -Example of chip placement configuration file (for ``AM2901``): :: - - chip = \ - { 'pads.south' : [ 'p_a3' , 'p_a2' , 'p_a1' , 'p_r0' - , 'p_vddick0', 'p_vssick0', 'p_a0' , 'p_i6' - , 'p_i8' , 'p_i7' , 'p_r3' ] - , 'pads.east' : [ 'p_zero' , 'p_i0' , 'p_i1' , 'p_i2' - , 'p_vddeck0', 'p_vsseck0', 'p_q3' , 'p_b0' - , 'p_b1' , 'p_b2' , 'p_b3' ] - , 'pads.north' : [ 'p_noe' , 'p_y3' , 'p_y2' , 'p_y1' - , 'p_y0' , 'p_vddeck1', 'p_vsseck1', 'p_np' - , 'p_ovr' , 'p_cout' , 'p_ng' ] - , 'pads.west' : [ 'p_cin' , 'p_i4' , 'p_i5' , 'p_i3' - , 'p_ck' , 'p_d0' , 'p_d1' , 'p_d2' - , 'p_d3' , 'p_q0' , 'p_f3' ] - , 'core.size' : ( 1500, 1500 ) - , 'chip.size' : ( 3000, 3000 ) - , 'chip.clockTree' : True - } - -The file must contain *one dictionnary* named ``chip``. - -+----------------------+-------------------------------------------------------+ -| Chip Dictionnary | -+----------------------+-------------------------------------------------------+ -| Parameter Key/Name | Value/Contents type | -+======================+=======================================================+ -| ``'pad.south'`` | Ordered list (left to right) of pad instances names | -| | to put on the south side of the chip | -+----------------------+-------------------------------------------------------+ -| ``'pad.east'`` | Ordered list (down to up) of pad instances names | -| | to put on the east side of the chip | -+----------------------+-------------------------------------------------------+ -| ``'pad.north'`` | Ordered list (left to right) of pad instances names | -| | to put on the north side of the chip | -+----------------------+-------------------------------------------------------+ -| ``'pad.west'`` | Ordered list (down to up) of pad instances names | -| | to put on the west side of the chip | -+----------------------+-------------------------------------------------------+ -| ``'core.size'`` | The size of the core (to be used by the placer) | -+----------------------+-------------------------------------------------------+ -| ``'chip.size'`` | The size of the whole chip. The sides must be great | -| | enough to accomodate all the pads | -+----------------------+-------------------------------------------------------+ -| ``'chip.clockTree'`` | Whether to generate a clock tree or not. This calls | -| | the ClockTree plugin | -+----------------------+-------------------------------------------------------+ - -Configuration parameters, defaults are defined in ``etc/coriolis2//plugins.conf``. - -+-----------------------------------+------------------+----------------------------+ -| Parameter Identifier | Type | Default | -+===================================+==================+============================+ -| **Chip Plugin Parameters** | -+-----------------------------------+------------------+----------------------------+ -|``chip.block.rails.count`` | TypeInt | :cb:`5` | -| +------------------+----------------------------+ -| | The minimum number of rails around the core | -| | block. Must be odd and suppérior to 5. | -| | One rail for the clock and at least two pairs | -| | of power/grounds | -+-----------------------------------+------------------+----------------------------+ -|``chip.block.rails.hWidth`` | TypeInt | :cb:`12` | -| +------------------+----------------------------+ -| | The horizontal with of the rails | -+-----------------------------------+------------------+----------------------------+ -|``chip.block.rails.vWidth`` | TypeInt | :cb:`12` | -| +------------------+----------------------------+ -| | The vertical with of the rails | -+-----------------------------------+------------------+----------------------------+ -|``chip.block.rails.hSpacing`` | TypeInt | :cb:`6` | -| +------------------+----------------------------+ -| | The spacing, *edge to edge* of two adjacent | -| | horizontal rails | -+-----------------------------------+------------------+----------------------------+ -|``chip.block.rails.vSpacing`` | TypeInt | :cb:`6` | -| +------------------+----------------------------+ -| | The spacing, *edge to edge* of two adjacent | -| | vertical rails | -+-----------------------------------+------------------+----------------------------+ -|``chip.pad.pck`` | TypeString | :cb:`pck_px` | -| +------------------+----------------------------+ -| | The model name of the pad connected to the | -| | chip external clock | -+-----------------------------------+------------------+----------------------------+ -|``chip.pad.pvddeck`` | TypeString | :cb:`pvddeck_px` | -| +------------------+----------------------------+ -| | The model name of the pad connected to the | -| | ``vdde`` (external power) and suppling it to | -| | the core | -+-----------------------------------+------------------+----------------------------+ -|``chip.pad.pvsseck`` | TypeString | :cb:`pvsseck_px` | -| +------------------+----------------------------+ -| | The model name of the pad connected to the | -| | ``vsse`` (external ground) and suppling it to | -| | the core | -+-----------------------------------+------------------+----------------------------+ -|``chip.pad.pvddick`` | TypeString | :cb:`pvddick_px` | -| +------------------+----------------------------+ -| | The model name of the pad connected to the | -| | ``vddi`` (internal power) and suppling it to | -| | the core | -+-----------------------------------+------------------+----------------------------+ -|``chip.pad.pvssick`` | TypeString | :cb:`pvssick_px` | -| +------------------+----------------------------+ -| | The model name of the pad connected to the | -| | ``vssi`` (internal ground) and suppling it to | -| | the core | -+-----------------------------------+------------------+----------------------------+ - -.. note:: - If no clock tree is generated, then the clock rail is *not* created. - So even if the requested number of rails ``chip.block.rails.count`` is, say 5, - only four rails (2* ``power``, 2* ``ground``) will be generateds. - - -Clock Tree -~~~~~~~~~~ - -Insert a clock tree into a block. The clock tree uses the H strategy. -The clock net is splitted into sub-nets, one for each branch of the -tree. - -* On **chips** design, the sub-nets are createds in the model of the - core block (then trans-hierarchically flattened to be shown at - chip level). -* On **blocks**, the sub nets are created directly in the top block. -* The sub-nets are named according to a simple geometrical scheme. - A common prefix ``ck_htree``, then one postfix by level telling - on which quarter of plane the sub-clock is located: - - #. ``_bl``: bottom left plane quarter. - #. ``_br``: bottom right plane quarter. - #. ``_tl``: top left plane quarter. - #. ``_tr``: top right plane quarter. - - We can have ``ck_htree_bl``, ``ck_htree_bl_bl``, ``ch_htree_bl_tl`` and so on. - -The clock tree plugin works in four steps: - -#. Build the clock tree: creates the top-block abutment box, compute the - levels of H tree neededs and place the clock buffers. -#. Once the clock buffers are placed, calls the placer (|etesian|) to place - the ordinary standart cells, whithout disturbing clock H-tree buffers. -#. At this point we know the exact positions of all the DFFs, so we can - connect them to the nearest H-tree leaf clock signal. -#. Leaf clock signals that are not connecteds to any DFFs are removed. - -Netlist reorganisation: - -* Obviously the top block or chip core model netlist is modificated to - contains all the clock sub-nets. The interface is *not* changed. -* If the top block contains instances of other models *and* those models - contains DFFs that get re-connecteds to the clock sub-nets (from the - top level). Change both the model netlist and interface to propagate - the relevant clock sub-nets to the instanciated model. The new model - with the added clock signal is renamed with a ``_clocked`` suffix. - For example, the sub-block model ``ram.vst`` will become ``ram_clocked.vst``. - -.. note:: - If you are to re-run the clock tree plugin on a netlist, be careful - to erase any previously generated ``_clocked`` file (both netlist and - layout: ``rm *.clocked.{ap,vst}``). And restart |cgt| to clear it's - memory cache. - -Configuration parameters, defaults are defined in ``etc/coriolis2//plugins.conf``. - -+-----------------------------------+------------------+----------------------------+ -| Parameter Identifier | Type | Default | -+===================================+==================+============================+ -| **ClockTree Plugin Parameters** | -+-----------------------------------+------------------+----------------------------+ -|``clockTree.minimumSide`` | TypeInt | :cb:`300` | -| +------------------+----------------------------+ -| | The minimum size below which the clock tree | -| | will stop to perform quadri-partitions | -+-----------------------------------+------------------+----------------------------+ -|``clockTree.buffer`` | TypeString | :cb:`buf_x2` | -| +------------------+----------------------------+ -| | The buffer model to use to drive sub-nets | -+-----------------------------------+------------------+----------------------------+ -|``clockTree.placerEngine`` | TypeString | :cb:`Etesian` | -| +------------------+----------------------------+ -| | The placer to use. Other value is ``Mauka`` | -| | the simulated annealing placer which will go | -| | into retirement very soon | -+-----------------------------------+------------------+----------------------------+ - - -Recursive-Save (RSave) -~~~~~~~~~~~~~~~~~~~~~~ - -Perform a recursive top down save of all the models from the top cell -loaded in |cgt|. Force a write of any non-terminal model. This plugin is used -by the clock tree plugin after the netlist clock sub-nets creation. - - -A Simple Example: AM2901 -======================== - -To illustrate the capabilities of |Coriolis| tools and |Python| scripting, a small -example, derived from the |Alliance| :cb:`AM2901` is supplied. - -This example contains only the synthetized netlists and the :cb:`doChip.py` script -which perform the whole P&R of the design. - -You can generate the chip using one of the following method: - -#. **Command line mode:** directly run the script: :: - - dummy@lepka:AM2901$ ./doChip -V --cell=amd2901 - -#. **Graphic mode:** launch |cgt|, load chip netlist ``amd2901`` (the top cell) - then run the |Python| script :cb:`doChip.py`. - -.. note:: - Between two consecutive run, be sure to erase the netlist/layout generateds: :: - - dummy@lepka:AM2901$ rm *_clocked*.vst *.ap diff --git a/documentation/UsersGuide/UsersGuide_HTML.rst b/documentation/UsersGuide/UsersGuide_HTML.rst deleted file mode 100644 index 1bb507b5..00000000 --- a/documentation/UsersGuide/UsersGuide_HTML.rst +++ /dev/null @@ -1,5 +0,0 @@ - -.. -*- Mode: rst -*- - -.. include:: HTML_defs.rst -.. include:: UsersGuide.rst diff --git a/documentation/UsersGuide/UsersGuide_LaTeX.rst b/documentation/UsersGuide/UsersGuide_LaTeX.rst deleted file mode 100644 index 0c6ed943..00000000 --- a/documentation/UsersGuide/UsersGuide_LaTeX.rst +++ /dev/null @@ -1,5 +0,0 @@ - -.. -*- Mode: rst -*- - -.. include:: LaTeX_defs.rst -.. include:: UsersGuide.rst diff --git a/documentation/UsersGuide/ViewerTools.rst b/documentation/UsersGuide/ViewerTools.rst new file mode 100644 index 00000000..8313e1df --- /dev/null +++ b/documentation/UsersGuide/ViewerTools.rst @@ -0,0 +1,868 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + +.. URLs that changes between the various backends. +.. _Stratus Documentation: file:///usr/share/doc/coriolis2/en/html/stratus/index.html + + +.. |BigMouse| image:: ./images/ComputerMouse.png + :scale: 25% + +.. |ViewerSnapshot_1| image:: ./images/Viewer-1.png + :alt: Viewer Basic Snapshot + :align: middle + :width: 80% + +.. |ControllerSnapshot_1| image:: ./images/Controller-1.png + :alt: Controller Basic Snapshot + :align: middle + :width: 80% + +.. |ControllerLook_1| image:: ./images/Controller-Look-1.png + :alt: Controller Look, Snapshot 1 + :align: middle + :width: 80% + +.. |ControllerFilter_1| image:: ./images/Controller-Filter-1.png + :alt: Controller Basic Snapshot + :align: middle + :width: 80% + +.. |ControllerLayersGos_1| image:: ./images/Controller-LayersGos-1.png + :alt: Controller Basic Snapshot + :align: middle + :width: 80% + +.. |ControllerNetlist_1| image:: ./images/Controller-Netlist-1.png + :alt: Controller Basic Snapshot + :align: middle + :width: 80% + +.. |ViewerNetlist_1| image:: ./images/Viewer-Netlist-1.png + :alt: Controller Basic Snapshot + :align: middle + :width: 80% + +.. |ControllerSelection_1| image:: ./images/Controller-Selection-1.png + :alt: Controller Basic Snapshot + :align: middle + :width: 80% + +.. |ControllerInspector_1| image:: ./images/Controller-Inspector-1.png + :alt: Controller Basic Snapshot + :align: middle + :width: 80% + +.. |ControllerInspector_2| image:: ./images/Controller-Inspector-2.png + :alt: Controller Basic Snapshot + :align: middle + :width: 80% + +.. |ControllerInspector_3| image:: ./images/Controller-Inspector-3.png + :alt: Controller Basic Snapshot + :align: middle + :width: 80% + +.. |ControllerSettings_1| image:: ./images/Controller-Settings-1.png + :alt: Controller Basic Snapshot + :align: middle + :width: 80% + +.. |Etesian-1| image:: ./images/etesian-1.png + :alt: Etesian Abutment Box + :align: middle + :width: 80% + + +CGT - The Graphical Interface +============================= + +The |Coriolis| graphical interface is split up into two windows. + +* The **Viewer**, with the following features: + + * Basic load/save capabilities. + * Display the current working cell. Could be empty if the design + is not yet placed. + * Execute Stratus Scripts. + * Menu to run the tools (placement, routage). + +Features are detailed in `Viewer & Tools`_. + +|ViewerSnapShot_1| + +* The **Controller**, which allows: + + * Tweak what is displayer by the *Viewer*. Through the *Look*, + *Filter* and *Layers&Gos* tabs. + * Browse the |netlist| with eponym tab. + * Show the list of selected objects (if any) with *selection* + * Walk through the Database, the Cell or the Selection with *Inspector*. + This is an advanced feature, reserved for experimented users. + * The tab *Settings* which give access to all the settings. + They are closely related to Configuration & Initialisation. + +|bcenter| |ControllerSnapShot_1| |ecenter| + + +.. _Viewer & Tools: + +Viewer & Tools +~~~~~~~~~~~~~~ + +|Stratus| Netlist Capture +------------------------- + +|Stratus| is the replacement for |GenLib| procedural netlist capture language. +It is designed as a set of |Python| classes, and comes with it's own documentation +(`Stratus Documentation`_) + + +The |Hurricane| Data-Base +------------------------- + +The |Alliance| flow is based on the |MBK| data-base, which has one data-structure +for each view. That is, |LOFIG| for the *logical* view and |PHFIG| for the *physical* +view. The place and route tools were responsible for maintaining (or not) the +coherency between views. Reflecting this weak coupling between views, each one +was stored in a separate file with a specific format. The *logical* view is stored +in a |vst| file in |VHDL| format and the *physical* in an |ap| file in an ad-hoc format. + +The |Coriolis| flow is based on the |Hurricane| data-base, which has a unified +structure for *logical* and *physical* view. That data structure is the |Cell| object. +The |Cell| can have any state between pure netlist and completly placed and +routed design. Although the memory representation of the views has deeply +changed we still use the |Alliance| files format, but they now really represent +views of the same object. The point is that one must be very careful about +view coherency when going to and from |Coriolis|. + +As for the second release, |Coriolis| can be used only for three purposes : + +* **Placing a design**, in which case the |netlist| view must be present. +* **Routing a design**, in that case the |netlist| + view and the |layout| view must be present and |layout| view must contain + a placement. Both views must have the same name. When saving the routed design, + it is advised to change the design name otherwise the original unrouted placement + in the |layout| view will be overwritten. +* **Viewing a design**, the |netlist| view must be present, if a |layout| + view is present it still must have the same name but it can be in any + state. + + +Synthetizing and loading a design +--------------------------------- + +|Coriolis| supports several file formats. It can load all file format +from the |Alliance| toolchain (.ap for layout, behavioural and structural vhdl .vbe and .vst), +BLIF netlist format as well as benchmark formats from the ISPD contests. + +It can be compiled with LEF/DEF support, although it requires acceptance of the SI2 license +and may not be compiled in your version of the software. + +Synthesis under Yosys +..................... + +You can create a BLIF file from the |Yosys| synthetizer, which can be imported under Coriolis. +Most libraries are specified as a .lib liberty file and a .lef LEF file. +|Yosys| opens most .lib files with minor modifications, but LEF support in Coriolis relies on SI2. +If Coriolis hasn't been compiled against it, the library is given in |Alliance| .ap format. +`Some free libraries `_ already provide both .ap and .lib files. + +Once you have installed a common library under |Yosys| and Coriolis, just synthetize your design +with |Yosys| and import it (as Blif without the extension) under Coriolis to perform place&route. + +Synthesis under Alliance +........................ + +|Alliance| is an older toolchain but has been extensively used for years. Coriolis can import +and write Alliance designs and libraries directly. + +Etesian -- Placer +----------------- + +The |Etesian| placer is a state of the art (as of 2015) analytical placer. It is +within ``5%`` of other placers' solutions, but is normally a bit worse than ePlace. +This |Coriolis| tool is actually an encapsulation of |Coloquinte| which *is* the placer. + +.. note:: *Instance Uniquification Unsupported:* a same logical instance cannot have + two different placements. So, either you manually make a clone of it or you + supply a placement for it. We need to implement uniquification in the + |Hurricane| database. + + +|noindent| +**Hierarchical Placement** + +The placement area is defined by the top cell abutment box. + +When placing a complete hierarchy, the abutment boxes of the cells (models) other than +the top cell are sets identical to the one of the top cell and their instances are +all placed at position ``(0,0,ID)``. That is, all the abutments boxes, whatever the +hierarchical level, defines the same area (they are exactly superposed). + +We choose this scheme because the placer will see all the instances as virtually +flattened, so they can be placed anywhere inside the top-cell abutment box. + +|bcenter| |Etesian-1| |ecenter| + + +|noindent| +**Computing the Placement Area** + +The placement area is computed using the ``etesian.aspectRatio`` and ``etesian.spaceMargin`` +parameters only if the top-cell has an empty abutment box. If the top-cell abutment +box has to be set, then it is propagated to all the instances models recursively. + + +|noindent| +**Reseting the Placement** + +Once a placement has been done, the placer cannot reset it (will be implemented +later). To perform a new placement, you must restart |cgt|. In addition, if you +have saved the placement on disk, you must erase any :cb:`.ap` file, which are +automatically reloaded along with the netlist (:cb:`.vst`). + +|noindent| +**Limitations** + +Etesian supports standard cells and fixed macros. As for the Coriolis 2.1 version, +it doesn't support movable macros, and you must place every macro beforehand. +Timing and routability analysis are not included either, and the returned placement +may be unroutable. + + +Etesian Configuration Parameters +................................ + ++-----------------------------------+------------------+----------------------------+ +| Parameter Identifier | Type | Default | ++===================================+==================+============================+ +| **Etesian Parameters** | ++-----------------------------------+------------------+----------------------------+ +|``etesian.aspectRatio`` | TypePercentage | :cb:`100` | +| +------------------+----------------------------+ +| | Define the height on width ``H/W`` aspect | +| | ratio, can be comprised between 10 and 1000 | ++-----------------------------------+------------------+----------------------------+ +|``etesian.spaceMargin`` | TypePercentage | :cb:`5` | +| +------------------+----------------------------+ +| | The extra white space added to the total area | +| | of the standard cells | ++-----------------------------------+------------------+----------------------------+ +|``etesian.uniformDensity`` | TypeBool | :cb:`False` | +| +------------------+----------------------------+ +| | Whether the cells will be spread envenly | +| | across the area or allowed to form denser | +| | clusters | ++-----------------------------------+------------------+----------------------------+ +|``etesian.effort`` | TypeInt | :cb:`2` | +| +------------------+----------------------------+ +| | Sets the balance between the speed of the | +| | placer and the solution quality | ++-----------------------------------+------------------+----------------------------+ +|``etesian.routingDriven`` | TypeBool | :cb:`False` | +| +------------------+----------------------------+ +| | Whether the tool will try routing iterations | +| | and whitespace allocation to improve | +| | routability; to be implemented | ++-----------------------------------+------------------+----------------------------+ +|``etesian.graphics`` | TypeInt | :cb:`2` | +| +------------------+----------------------------+ +| | How often the display will be refreshed | +| | More refreshing slows the placer. | +| | | +| | * ``1`` shows both upper and lower bounds | +| | * ``2`` only shows lower bound results | +| | * ``3`` only shows the final results | ++-----------------------------------+-----------------------------------------------+ + +|newpage| + + +Knik -- Global Router +--------------------- + +The quality of |Knik| global routing solutions are equivalent to those of FGR_ 1.0. +For an in-depth description of |Knik| algorithms, you may download the thesis of +D. |Dupuis| avalaible from here~: `Knik Thesis`_. + +The global router is (not yet) deterministic. To circumvent this limitation, +a global routing *solution* can be saved to disk and reloaded for later uses. + +A global routing is saved into a file with the same name as the design and a +|kgr| extention. It is in `Box Router`_ output format. + +|noindent| Menus: + +* :math:`\textbf{P\&R} \rightarrow \textbf{Step by Step} \rightarrow \textbf{Save Global Routing}` +* :math:`\textbf{P\&R} \rightarrow \textbf{Step by Step} \rightarrow \textbf{Load Global Routing}` + + +Kite -- Detailed Router +----------------------- + +|Kite| no longer suffers from the limitations of |Nero|. It can route big designs +as its runtime and memory footprint is almost linear (with respect to the number +of gates). It has successfully routed design of more than `150K` gates. +|medskip| + +|noindent| However, this first release comes with the temporary the following +restrictions: + +* Works only with |SxLib| standard cell gauge. +* Works always with 4 routing metal layers (`M2` through `M5`). +* Do not allow (take into account) pre-routed wires on signals + other than |POWER| or |GROUND|. + +.. note:: + **Slow Layer Assignment.** Most of the time, the layer assignment stage is + fast (less than a dozen seconds), but in some instances it can take more + than a dozen *minutes*. This is a known bug and will be corrected in later + releases. + +After each run, |Kite| displays a set of *completion ratios* which must all +be equal to `100%` if the detailed routing has been successfull. +In the event of a failure, on a saturated design, you may decrease the +`edge saturation ratio` (argument `--edge`) to balance more evenly the design +saturation. That is, the maximum saturation decrease at the price of a wider +saturated area and increased wirelength. This is the saturation of the +*global* router |Knik|, and you may increase/decrease by steps of ``5%``, +which represent one track. The maximum capacity of the |SxLib| gauge is +10 tracks in two layers, that makes 20 tracks by |Knik| edge. + +Routing a design is done in four ordered steps: + +#. Detailed pre-route :math:`\textbf{P\&R} \rightarrow \textbf{Step by Step} \rightarrow \textbf{Detailed PreRoute}` +#. Global routing :math:`\textbf{P\&R} \rightarrow \textbf{Step by Step} \rightarrow \textbf{Global Route}` +#. Detailed routing :math:`\textbf{P\&R} \rightarrow \textbf{Step by Step} \rightarrow \textbf{Detailed Route}` +#. Finalize routing :math:`\textbf{P\&R} \rightarrow \textbf{Step by Step} \rightarrow \textbf{Finalize Route}` + +It is possible to supply to the router a complete wiring for some nets that the user's +wants to be routed according to a specific topology. The supplied topology must respect +the building rules of the |Katabatic| database (contacts must be, terminals, turns, h-tee +& v-tee only). During the first step :fboxtt:`Detailed Pre-Route` the router will solve +overlaps between the segments, without making any dogleg. If no pre-routed topologies +are present, this step may be ommited. Any net routed at this step is then fixed and +become unmovable for the later stages. + +After the detailed routing step the |Kite| data-structure is still active +(the Hurricane wiring is decorated). The finalize step performs the removal of +the |Kite| data-structure, and it is not advisable to save the design before +that step. + +You may visualize the density (saturation) of either |Knik| (on edges) or +|Kite| (on GCells) until the routing is finalized. Special layers appears +to that effect in the `The Layers&Go Tab`_. + + +Kite Configuration Parameters +............................. + +As |Knik| is only called through |Kite|, it's parameters also have +the :cb:`kite.` prefix. + +The |Katabatic| parameters control the layer assignment step. + +All the defaults value given below are from the default |Alliance| technology +(:cb:`cmos` and :cb:`SxLib` cell gauge/routing gauge). + ++-----------------------------------+------------------+----------------------------+ +| Parameter Identifier | Type | Default | ++===================================+==================+============================+ +| **Katabatic Parameters** | ++-----------------------------------+------------------+----------------------------+ +|``katabatic.topRoutingLayer`` | TypeString | :cb:`METAL5` | +| +------------------+----------------------------+ +| | Define the highest metal layer that will be | +| | used for routing (inclusive). | ++-----------------------------------+------------------+----------------------------+ +|``katabatic.globalLengthThreshold``| TypeInt | :cb:`1450` | +| +------------------+----------------------------+ +| | This parameter is used by a layer assignment | +| | method which is no longer used (did not give | +| | good results) | ++-----------------------------------+------------------+----------------------------+ +| ``katabatic.saturateRatio`` | TypePercentage | :cb:`80` | +| +------------------+----------------------------+ +| | If ``M(x)`` density is above this ratio, | +| | move up feedthru global segments up from | +| | depth ``x`` to ``x+2`` | ++-----------------------------------+------------------+----------------------------+ +| ``katabatic.saturateRp`` | TypeInt | :cb:`8` | +| +------------------+----------------------------+ +| | If a GCell contains more terminals | +| | (:cb:`RoutingPad`) than that number, force a | +| | move up of the connecting segments to those | +| | in excess | ++-----------------------------------+------------------+----------------------------+ +| **Knik Parameters** | ++-----------------------------------+------------------+----------------------------+ +| ``kite.hTracksReservedLocal`` | TypeInt | :cb:`3` | +| +------------------+----------------------------+ +| | To take account the tracks needed *inside* a | +| | GCell to build the *local* routing, decrease | +| | the capacity of the edges of the global | +| | router. Horizontal and vertical locally | +| | reserved capacity can be distinguished for | +| | more accuracy. | ++-----------------------------------+------------------+----------------------------+ +| ``kite.vTracksReservedLocal`` | TypeInt | :cb:`3` | +| +------------------+----------------------------+ +| | cf. ``kite.hTracksReservedLocal`` | ++-----------------------------------+------------------+----------------------------+ +| **Kite Parameters** | ++-----------------------------------+------------------+----------------------------+ +| ``kite.eventsLimit`` | TypeInt | :cb:`4000002` | +| +------------------+----------------------------+ +| | The maximum number of segment displacements, | +| | this is a last ditch safety against infinite | +| | loop. It's perhaps a little too low for big | +| | designs | ++-----------------------------------+------------------+----------------------------+ +| ``kite.ripupCost`` | TypeInt | :cb:`3` | +| +------------------+----------------------------+ +| | Differential introduced between two ripup | +| | cost to avoid a loop between two ripped up | +| | segments | ++-----------------------------------+------------------+----------------------------+ +| ``kite.strapRipupLimit`` | TypeInt | :cb:`16` | +| +------------------+----------------------------+ +| | Maximum number of ripup for *strap* segments | ++-----------------------------------+------------------+----------------------------+ +| ``kite.localRipupLimit`` | TypeInt | :cb:`9` | +| +------------------+----------------------------+ +| | Maximum number of ripup for *local* segments | ++-----------------------------------+------------------+----------------------------+ +| ``kite.globalRipupLimit`` | TypeInt | :cb:`5` | +| +------------------+----------------------------+ +| | Maximum number of ripup for *global* segments,| +| | when this limit is reached, triggers topologic| +| | modification | ++-----------------------------------+------------------+----------------------------+ +| ``kite.longGlobalRipupLimit`` | TypeInt | :cb:`5` | +| +------------------+----------------------------+ +| | Maximum number of ripup for *long global* | +| | segments, when this limit is reached, triggers| +| | topological modification | ++-----------------------------------+------------------+----------------------------+ + + + +.. _Python Scripts in Cgt: + +Executing Python Scripts in Cgt +------------------------------- + +Python/Stratus scripts can be executed either in text or graphical mode. + +.. note:: **How Cgt Locates Python Scripts:** + |cgt| uses the Python ``import`` mechanism to load Python scripts. + So you must give the name of your script whitout ``.py`` extention and + it must be reachable through the ``PYTHONPATH``. You may uses the + dotted module notation. + +A Python/Stratus script must contains a function called ``ScriptMain()`` +with one optional argument, the graphical editor into which it may be +running (will be set to ``None`` in text mode). The Python interface to +the editor (type: :cb:`CellViewer`) is limited to basic capabilities +only. + +Any script given on the command line will be run immediatly *after* the +initializations and *before* any other argument is processed. + +For more explanation on Python scripts see :ref:`Python Interface to Coriolis`. + + +Printing & Snapshots +-------------------- + +Printing or saving into a |pdf| is fairly simple, just uses the **File -> Print** +menu or the |CTRL_P| shortcut to open the dialog box. + +The print functionality uses exactly the same rendering mechanism as for the +screen, beeing almost *WYSIWYG*. Thus, to obtain the best results it is advisable +to select the ``Coriolis.Printer`` look (in the *Controller*), which uses a +white background and much suited for high resolutions ``32x32`` pixels patterns + +There is also two mode of printing selectable through the *Controller* +**Settings -> Misc -> Printer/Snapshot Mode**: + +=============== ================= ===================================================== +Mode DPI (approx.) Intended Usage +--------------- ----------------- ----------------------------------------------------- +**Cell Mode** 150 For single ``Cell`` printing or very small designs. + Patterns will be bigger and more readable. +**Design Mode** 300 For designs (mostly commposed of wires and cells + outlines). +=============== ================= ===================================================== + +.. note:: *The pdf file size* + Be aware that the generated |pdf| files are indeed only pixmaps. + So they can grew very large if you select paper format above ``A2`` + or similar. + + +|noindent| +Saving into an image is subject to the same remarks as for |pdf|. + + +Memento of Shortcuts in Graphic Mode +------------------------------------ + +The main application binary is |cgt|. + ++---------------+-------------------+-----------------------------------------------------------+ +| Category | Keys | Action | ++===============+===================+===========================================================+ +| **Moves** | | |KeyUp|, | Shift the view in the according direction | +| | |KeyDown| | | +| | | |KeyLeft|, | | +| | |KeyRight| | | ++---------------+-------------------+-----------------------------------------------------------+ +| **Fit** | |KeyF| | Fit to the Cell abutment box | ++---------------+-------------------+-----------------------------------------------------------+ +| **Refresh** | |CTRL_L| | Triggers a complete display redraw | ++---------------+-------------------+-----------------------------------------------------------+ +| **Goto** | |KeyG| | *apperture* is the minimum side of the area | +| | | displayed around the point to go to. It's an | +| | | alternative way of setting the zoom level | ++---------------+-------------------+-----------------------------------------------------------+ +| **Zoom** | |KeyZ|, | Respectively zoom by a 2 factor and *unzoom* | +| | |KeyM| | by a 2 factor | +| +-------------------+-----------------------------------------------------------+ +| | | |BigMouse| | You can perform a zoom to an area. | +| | | Area Zoom | Define the zoom area by *holding down the left | +| | | mouse button* while moving the mouse. | ++---------------+-------------------+-----------------------------------------------------------+ +| **Selection** | | |BigMouse| | You can select displayed objects under an area. | +| | | Area Selection | Define the selection area by *holding down the | +| | | right mouse button* while moving the mouse. | +| +-------------------+-----------------------------------------------------------+ +| | | |BigMouse| | You can toggle the selection of one object under | +| | | Toggle Selection| the mouse position by pressing |CTRL| and | +| | | pressing down *the right mouse button*. A popup | +| | | list of what's under the position shows up into | +| | | which you can toggle the selection state of one | +| | | item. | +| +-------------------+-----------------------------------------------------------+ +| | |KeyCapS| | Toggle the selection visibility | ++---------------+-------------------+-----------------------------------------------------------+ +| **Controller**| |CTRL_I| | Show/hide the controller window. | +| | | | +| | | It's the Swiss Army Knife of the viewer. | +| | | From it, you can fine-control the display and | +| | | inspect almost everything in your design. | ++---------------+-------------------+-----------------------------------------------------------+ +| **Rulers** | |KeyK|, | One stroke on |KeyK| enters the ruler mode, in | +| | |KeyESC| | which you can draw one ruler. You can exit the | +| | | ruler mode by pressing |KeyESC|. Once in ruler | +| | | mode, the first click on the *left mouse button* | +| | | sets the ruler's starting point and the second | +| | | click the ruler's end point. The second click | +| | | exits automatically the ruler mode. | +| +-------------------+-----------------------------------------------------------+ +| | |KeyCapK| | Clears all the drawn rulers | ++---------------+-------------------+-----------------------------------------------------------+ +| **Print** | |CTRL_P| | Currently rather crude. It's a direct copy of | +| | | what's displayed in pixels. So the resulting | +| | | picture will be a little blurred due to | +| | | anti-aliasing mechanism. | ++---------------+-------------------+-----------------------------------------------------------+ +| **Open/Close**| |CTRL_O| | Opens a new design. The design name must be | +| | | given without path or extention. | +| +-------------------+-----------------------------------------------------------+ +| | |CTRL_W| | Close the current viewer window, but do not quit | +| | | the application. | +| +-------------------+-----------------------------------------------------------+ +| | |CTRL_Q| | `CTRL+Q` quit the application | +| | | (closing all windows). | ++---------------+-------------------+-----------------------------------------------------------+ +| **Hierarchy** | |CTRL_Down| | Go one hierarchy level down. That is, if there | +| | | is an *instance* under the cursor position, load | +| | | it's *model* Cell in place of the current one. | +| +-------------------+-----------------------------------------------------------+ +| | |CTRL_Up| | Go one hierarchy level up. if we have entered | +| | | the current model through |CTRL_Down| | +| | | reload the previous model (the one | +| | | in which this model is instanciated). | ++---------------+-------------------+-----------------------------------------------------------+ + + +Cgt Command Line Options +------------------------ + +Appart from the obvious ``--text`` options, all can be used for text and graphical mode. + ++-----------------------------+------------------------------------------------+ +| Arguments | Meaning | ++=============================+================================================+ +| `-t|--text` | Instruct |cgt| to run in text mode. | ++-----------------------------+------------------------------------------------+ +| `-L|--log-mode` | Disable the uses of |ANSI| escape sequence on | +| | the |tty|. Useful when the output is | +| | redirected to a file. | ++-----------------------------+------------------------------------------------+ +| `-c |--cell=` | The name of the design to load, without | +| | leading path or extention. | ++-----------------------------+------------------------------------------------+ +| `-g|--load-global` | Reload a global routing solution from disk. | +| | The file containing the solution must be named | +| | `.kgr`. | ++-----------------------------+------------------------------------------------+ +| `--save-global` | Save the global routing solution, into a file | +| | named `.kgr`. | ++-----------------------------+------------------------------------------------+ +| `-e |--edge=` | Change the edge capacity for the global | +| | router, between 0 and 1 (|Knik|). | ++-----------------------------+------------------------------------------------+ +| `-G|--global-route` | Run the global router (|Knik|). | ++-----------------------------+------------------------------------------------+ +| `-R|--detailed-route` | Run the detailed router (|Kite|). | ++-----------------------------+------------------------------------------------+ +| `-s|--save-design=` | The design into which the routed layout will | +| | be saved. It is strongly recommanded to choose | +| | a different name from the source (unrouted) | +| | design. | ++-----------------------------+------------------------------------------------+ +| `--events-limit=` | The maximal number of events after which the | +| | router will stops. This is mainly a failsafe | +| | against looping. The limit is sets to 4 | +| | millions of iteration which should suffice to | +| | any design of `100K`. gates. For bigger | +| | designs you may wants to increase this limit. | ++-----------------------------+------------------------------------------------+ +| `--stratus-script=` | Run the Python/Stratus script ``module``. | +| | See `Python Scripts in Cgt`_. | ++-----------------------------+------------------------------------------------+ + +|newpage| + + +Some Examples : + +* Run both global and detailed router, then save the routed design : :: + + > cgt -v -t -G -R --cell=design --save-design=design_kite + +* Load a previous global solution, run the detailed router, then save the + routed design : :: + + > cgt -v -t --load-global -R --cell=design --save-design=design_kite + +* Run the global router, then save the global routing solution : :: + + > cgt -v -t -G --save-global --cell=design + + +Miscellaneous Settings +---------------------- + ++---------------------------------------+------------------+----------------------------+ +| Parameter Identifier | Type | Default | ++=======================================+==================+============================+ +| **Verbosity/Log Parameters** | ++---------------------------------------+------------------+----------------------------+ +| ``misc.info`` | TypeBool | :cb:`False` | +| +------------------+----------------------------+ +| | Enable display of *info* level message | +| | (:cb:`cinfo` stream) | ++---------------------------------------+------------------+----------------------------+ +| ``misc.bug`` | TypeBool | :cb:`False` | +| +------------------+----------------------------+ +| | Enable display of *bug* level message | +| | (:cb:`cbug` stream), messages can be a little | +| | scarry | ++---------------------------------------+------------------+----------------------------+ +| ``misc.logMode`` | TypeBool | :cb:`False` | +| +------------------+----------------------------+ +| | If enabled, assume that the output device | +| | is not a ``tty`` and suppress any escaped | +| | sequences | ++---------------------------------------+------------------+----------------------------+ +| ``misc.verboseLevel1`` | TypeBool | :cb:`True` | +| +------------------+----------------------------+ +| | First level of verbosity, disable level 2 | ++---------------------------------------+------------------+----------------------------+ +| ``misc.verboseLevel2`` | TypeBool | :cb:`False` | +| +------------------+----------------------------+ +| | Second level of verbosity | ++---------------------------------------+------------------+----------------------------+ +| **Development/Debug Parameters** | ++---------------------------------------+------------------+----------------------------+ +| ``misc.minTraceLevel`` | TypeInt | :cb:`0` | ++---------------------------------------+------------------+----------------------------+ +| ``misc.maxTraceLevel`` | TypeInt | :cb:`0` | +| +------------------+----------------------------+ +| | Display trace information *between* those two | +| | levels (:cb:`cdebug` stream) | ++---------------------------------------+------------------+----------------------------+ +| ``misc.catchCore`` | TypeBool | :cb:`False` | +| +------------------+----------------------------+ +| | By default, |cgt| do not dump core. | +| | To generate one set this flag to :cb:`True` | ++---------------------------------------+------------------+----------------------------+ + +|newpage| + + +.. _The Controller: + +The Controller +~~~~~~~~~~~~~~ + +The *Controller* window is composed of seven tabs: + +#. `The Look Tab`_ to select the display style. +#. `The Filter Tab`_ the hierarchical levels to be displayed, the look of + rubbers and the dimension units. +#. `The Layers&Go Tab`_ to selectively hide/display layers. +#. `The Netlist Tab`_ to browse through the |netlist|. Works in association + with the *Selection* tab. +#. `The Selection Tab`_ allow to view all the currently selected elements. +#. `The Inspector Tab`_ browse through either the DataBase, the Cell or + the current selection. +#. `The Settings Tab`_ access all the tool's configuration settings. + + +.. _The Look Tab: + +The Look Tab +------------ + +You can select how the layout will be displayed. There is a special one +``Printer.Coriolis`` specifically designed for `Printing & Snapshots`_. +You should select it prior to calling the print or snapshot dialog boxes. + +|bcenter| |ControllerLook_1| |ecenter| + +|newpage| + + +.. _The Filter Tab: + +The Filter Tab +-------------- + +The filter tab let you select what hierarchical levels of your design will be +displayed. Hierarchy level are numbered top-down: the level 0 correspond to +the top-level cell, the level one to the instances of the top-level Cell and +so on. + +There are also check boxes to enable/disable the processing of Terminal Cell, +Master Cells and Compnents. The processing of Terminal Cell (hierarchy leaf +cells) is disabled by default when you load a hierarchical design and enabled +when you load a single Cell. + +You can choose what kind of form to give to the rubbers and the type of +unit used to display coordinates. + +.. note:: *What are Rubbers:* |Hurricane| uses *Rubbers* to materialize + physical gaps in net topology. That is, if some wires are missing to + connect two or more parts of net, a *rubber* will be drawn between them + to signal the gap. + + For example, after the detailed routing no *rubbers* should remains. + They have been made *very* visibles as big violet lines... + +|bcenter| |ControllerFilter_1| |ecenter| + +|newpage| + + +.. _The Layers&Go Tab: + +The Layers&Go Tab +----------------- + +Control the individual display of all *layers* and *Gos*. + +* *Layers* correspond to a true physical layer. From a |Hurricane| point of + view they are all the *BasicLayers* (could be matched to GDSII). +* *Gos* stands from *Graphical Objects*, they are drawings that have no + physical existence but are added by the various tools to display extra + information. One good exemple is the density map of the detailed router, + to easily locate congested areas. + +For each layer/Go there are two check boxes: + +* The normal one triggers the display. +* The red-outlined allows objects of that layer to be selectable or not. + +|bcenter| |ControllerLayersGos_1| |ecenter| + + +.. _The Netlist Tab: + +The Netlist Tab +--------------- + +The *Netlist* tab shows the list of nets... By default the tab is not +*synched* with the displayed Cell. To see the nets you must check the +**Sync Netlist** checkbox. You can narrow the set of displayed nets by +using the filter pattern (supports regular expressions). + +An very useful feature is to enable the **Sync Selection**, which will +automatically select all the components of the selected net(s). You can +select multiple nets. In the figure the net ``auxsc35`` is selected and +is highlited in the *Viewer*. + +|bcenter| |ControllerNetlist_1| |ecenter| +|bcenter| |ViewerNetlist_1| |ecenter| + + +.. _The Selection Tab: + +The Selection Tab +----------------- + +The *Selection* tab list all the components currently selecteds. They +can be filtered thanks to the filter pattern. + +Used in conjunction with the *Netlist* **Sync Selection** you will all see +all the components part of *net*. + +In this list, you can toggle individually the selection of component by +pressing the ``t`` key. When unselected in this way a component is not +removed from the the selection list but instead displayed in red italic. +To see where a component is you may make it blink by repeatedly press +the ``t`` key... + +|bcenter| |ControllerSelection_1| |ecenter| + + +.. _The Inspector Tab: + +The Inspector Tab +----------------- + +This tab is very useful, but mostly for |Coriolis| developpers. It allows +to browse through the live DataBase. The *Inspector* provide three entry points: + +* **DataBase**: Starts from the whole |Hurricane| DataBase. +* **Cell**: Inspect the currently loaded Cell. +* **Selection**: Inspect the object currently highlited in the *Selection* tab. + +Once an entry point has been activated, you may recursively expore all +it's fields using the right/left arrows. + +.. note:: *Do not put your fingers in the socket:* when inspecting + anything, do not modify the DataBase. If any object under inspection + is deleted, you will crash the application... + +.. note:: *Implementation Detail:* the inspector support is done with + ``Slot``, ``Record`` and ``getString()``. + +|bcenter| |ControllerInspector_1| |ecenter| +|bcenter| |ControllerInspector_2| |ecenter| +|bcenter| |ControllerInspector_3| |ecenter| + + +.. _The Settings Tab: + +The Settings Tab +---------------- + +Here comes the description of the *Settings* tab. + +|bcenter| |ControllerSettings_1| |ecenter| diff --git a/documentation/UsersGuide/WWW_defs.rst b/documentation/UsersGuide/WWW_defs.rst deleted file mode 100644 index 5062f371..00000000 --- a/documentation/UsersGuide/WWW_defs.rst +++ /dev/null @@ -1,70 +0,0 @@ - -.. -*- Mode: rst -*- -.. This header contains the definitions needed for the UsersGuide.rst -.. document to be displayed correctly on the soc-extras website. -.. The only difference with HTML_defs.rst is that the images are -.. stored at a different URL on the website. Namely: -.. https://soc-extras.lip6.fr/media/filer/2012/12/07/ - -.. URLs that changes between the various backends. -.. _Coriolis Tools Documentation: https://www-soc.lip6.fr/sesi-docs/coriolis2-docs/coriolis2/ -.. _Stratus Documentation: https://www-soc.lip6.fr/sesi-docs/coriolis2-docs/coriolis2/en/html/stratus/index.html -.. _Here: https://www-soc.lip6.fr/sesi-docs/coriolis2-docs/coriolis2/en/latex/users-guide/UsersGuide.pdf - -.. role:: raw-html(raw) - :format: html - -.. For HTML backend -.. |Key_ESC| image:: https://soc-extras.lip6.fr/media/filer/2012/12/07/key_esc.png -.. |Key_CTRL| image:: https://soc-extras.lip6.fr/media/filer/2012/12/07/key_ctrl.png -.. |Key_Up| image:: https://soc-extras.lip6.fr/media/filer/2012/12/07/key_up.png -.. |Key_Down| image:: https://soc-extras.lip6.fr/media/filer/2012/12/07/key_down.png -.. |Key_Left| image:: https://soc-extras.lip6.fr/media/filer/2012/12/07/key_left.png -.. |Key_Right| image:: https://soc-extras.lip6.fr/media/filer/2012/12/07/key_right.png -.. |Key_f| image:: https://soc-extras.lip6.fr/media/filer/2012/12/07/key_f.png -.. |Key_G| image:: https://soc-extras.lip6.fr/media/filer/2012/12/07/key_gcap.png -.. |Key_i| image:: https://soc-extras.lip6.fr/media/filer/2012/12/07/key_icap.png -.. |Key_l| image:: https://soc-extras.lip6.fr/media/filer/2012/12/07/key_lcap.png -.. |Key_m| image:: https://soc-extras.lip6.fr/media/filer/2012/12/07/key_m.png -.. |Key_k| image:: https://soc-extras.lip6.fr/media/filer/2012/12/07/key_k.png -.. |Key_K| image:: https://soc-extras.lip6.fr/media/filer/2012/12/07/key_kcap.png -.. |Key_o| image:: https://soc-extras.lip6.fr/media/filer/2012/12/07/key_ocap.png -.. |Key_p| image:: https://soc-extras.lip6.fr/media/filer/2012/12/07/key_pcap.png -.. |Key_q| image:: https://soc-extras.lip6.fr/media/filer/2012/12/07/key_qcap.png -.. |Key_w| image:: https://soc-extras.lip6.fr/media/filer/2012/12/07/key_wcap.png -.. |Key_S| image:: https://soc-extras.lip6.fr/media/filer/2012/12/07/key_scap.png -.. |Key_z| image:: https://soc-extras.lip6.fr/media/filer/2012/12/07/key_z.png -.. |Plus| replace:: :raw-html:`+` -.. |rightarrow| replace:: :raw-html:`

    ` -.. |menu_P&R| replace:: :raw-html:`

    ` -.. |menu_StepByStep| replace:: :raw-html:`

    ` -.. |menu_KiteSaveGlobalRouting| image:: https://soc-extras.lip6.fr/media/filer/2012/12/07/pr-sbs-saveglobal.png -.. |menu_KiteLoadGlobalRouting| image:: https://soc-extras.lip6.fr/media/filer/2012/12/07/pr-sbs-loadglobal.png -.. |menu_KiteGlobalRoute| image:: https://soc-extras.lip6.fr/media/filer/2012/12/07/pr-globalroute.png -.. |menu_KiteDetailedRoute| image:: https://soc-extras.lip6.fr/media/filer/2012/12/07/pr-detailedroute.png -.. |menu_KiteDetailedPreRoute| image:: https://soc-extras.lip6.fr/media/filer/2012/12/07/pr-detailedpreroute.png -.. |menu_KiteFinalizeRoute| image:: https://soc-extras.lip6.fr/media/filer/2012/12/07/pr-finalizeroute.png - -.. Stand-alone images. -.. |ViewerSnapshot_1| replace:: :raw-html:`
    Viewer Basic Snapshot
    ` -.. |ControllerSnapshot_1| replace:: :raw-html:`
    Controller Basic Snapshot
    ` -.. |ControllerLook_1| replace:: :raw-html:`
    Controller Basic Snapshot
    ` -.. |ControllerFilter_1| replace:: :raw-html:`
    Controller Basic Snapshot
    ` -.. |ControllerLayersGos_1| replace:: :raw-html:`
    Controller Basic Snapshot
    ` -.. |ControllerNetlist_1| replace:: :raw-html:`
    Controller Basic Snapshot
    ` -.. |ViewerNetlist_1| replace:: :raw-html:`
    Controller Basic Snapshot
    ` -.. |ControllerSelection_1| replace:: :raw-html:`
    Controller Basic Snapshot
    ` -.. |ControllerInspector_1| replace:: :raw-html:`
    Controller Basic Snapshot
    ` -.. |ControllerInspector_2| replace:: :raw-html:`
    Controller Basic Snapshot
    ` -.. |ControllerInspector_3| replace:: :raw-html:`
    Controller Basic Snapshot
    ` -.. |ControllerSettings_1| replace:: :raw-html:`
    Controller Basic Snapshot
    ` -.. |CoriolisSoftSchema| replace:: :raw-html:`
    Coriolis Software Schematic
    ` - -.. |BigMouse| image:: https://soc-extras.lip6.fr/media/filer/2012/12/07/computermouse.png - :scale: 25% - -.. Direct LaTeX commands encapsulation. -.. |dotfill| replace:: :raw-html:`  ` -.. |noindent| replace:: :raw-html:`

    ` -.. |medskip| replace:: :raw-html:`
    ` -.. |newpage| replace:: :raw-html:`
    ` diff --git a/documentation/UsersGuide/images/Controller-1-eps-converted-to.pdf b/documentation/UsersGuide/images/Controller-1-eps-converted-to.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f30a0f38dbdff3d6cb8dbdd3e1f226a79e751bbe GIT binary patch literal 133325 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

    Q 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

    %90kGqcEFC+5Elaqiz5;XIV!Z`~Sb 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

    kBY~zHmE&@u{V3WZaPDZ3*VTwpaXjr%c3s)$^ nR1sK&G*TKF8ixNiM~V=~g?5f$Ij`e^9~GEX7!VLSW3uqy=}~4# literal 0 HcmV?d00001 diff --git a/documentation/UsersGuide/images/Controller-Settings-1-eps-converted-to.pdf b/documentation/UsersGuide/images/Controller-Settings-1-eps-converted-to.pdf new file mode 100644 index 0000000000000000000000000000000000000000..96fd825a90973f356a4f4c423a089ecb5bad697b GIT binary patch literal 59039 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 literal 0 HcmV?d00001 diff --git a/documentation/UsersGuide/images/Viewer-1-eps-converted-to.pdf b/documentation/UsersGuide/images/Viewer-1-eps-converted-to.pdf new file mode 100644 index 0000000000000000000000000000000000000000..357780b25ca1d2ff125db26d742fc85fa922455f GIT binary patch literal 16095 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 rNUN!Ky+Ep(B{> literal 0 HcmV?d00001 diff --git a/documentation/UsersGuide/images/Viewer-Netlist-1-eps-converted-to.pdf b/documentation/UsersGuide/images/Viewer-Netlist-1-eps-converted-to.pdf new file mode 100644 index 0000000000000000000000000000000000000000..39e492d223b04569feaf1c752cfed7671e66edfe GIT binary patch literal 26753 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 literal 0 HcmV?d00001 diff --git a/documentation/UsersGuide/images/chip-structure-1-eps-converted-to.pdf b/documentation/UsersGuide/images/chip-structure-1-eps-converted-to.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c937a9b432d3b626c02574390805536f211c1181 GIT binary patch literal 13414 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 literal 0 HcmV?d00001 diff --git a/documentation/UsersGuide/index.rst b/documentation/UsersGuide/index.rst new file mode 100644 index 00000000..7121510a --- /dev/null +++ b/documentation/UsersGuide/index.rst @@ -0,0 +1,21 @@ +.. -*- mode: rst; explicit-buffer-name: "index.rst" -*- + +.. include:: ../etc/definitions.rst + + +======================= +Coriolis User's Guide +======================= + +Printable version of this document `UsersGuide.pdf <../../../pdf/main/UsersGuide.pdf>`_. + + +.. toctree:: + :maxdepth: 2 + + LicenseCredits.rst + Releases.rst + Installation.rst + Configuration.rst + ViewerTools.rst + ScriptsPlugins.rst diff --git a/documentation/UsersGuide/pdfHeader.rst b/documentation/UsersGuide/pdfHeader.rst new file mode 100644 index 00000000..3a9c832f --- /dev/null +++ b/documentation/UsersGuide/pdfHeader.rst @@ -0,0 +1,15 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +======================= +Coriolis User's Guide +======================= + +|pagestylefancy| + + +.. contents:: + +|newpage| diff --git a/documentation/UsersGuide/socstyle.tex b/documentation/UsersGuide/socstyle.tex deleted file mode 100644 index 5cf8f487..00000000 --- a/documentation/UsersGuide/socstyle.tex +++ /dev/null @@ -1,89 +0,0 @@ - - \usepackage[default,osfigures,scale=0.95]{opensans} - \usepackage{xspace} - \usepackage{fancyhdr} -%\usepackage[dvipdfm]{graphicx} - \usepackage{graphicx} - \usepackage{enumitem} - \usepackage[sf,bf]{titlesec} - \usepackage{titletoc} - \usepackage[colorlinks=true,linkcolor=blue,urlcolor=blue,dvipdfm]{hyperref} - \usepackage[paper=a4paper,headheight=30pt,tmargin=1.5in,bmargin=1in]{geometry} -%\usepackage{layouts} - - \urlstyle{tt} % normal text font (alternatives: same, tt, rm, sf) - \renewlist{itemize}{itemize}{9} - \setlist[itemize]{label=\textbullet} - -% The LaTeX Companion -- p. 204. -% Miniature display of the page layout. -%\newcommand{\showpage}{% -% \setlayoutscale{0.65}\setlabelfont{\tiny}% -% \printheadingsfalse\printparametersfalse% -% \currentpage\pagedesign% -%} - - \titlecontents{section}[0pc] - {\sffamily\bfseries} % above code. - {\contentslabel{1pc}} % numbered entry format. - {} % numberless entry format. - {\titlerule*[8pt]{.}\textsc{\textbf{{\contentspage}}}} % page format. - \titlecontents{subsection}[0pc] - {\sffamily} % above code. - {\contentslabel{2pc}} % numbered entry format. - {} % numberless entry format. - {\titlerule*[8pt]{.}\textsc{\textbf{{\contentspage}}}} % page format. - \titlecontents{subsubsection}[1pc] - {\sffamily} % above code. - {\contentslabel{2pc}} % numbered entry format. - {} % numberless entry format. - {\titlerule*[8pt]{.}\textsc{\textbf{{\contentspage}}}} % page format. - - \newcommand{\key}[1]{\raisebox{-0.5\baselineskip}{\rule{0pt}{1.5\baselineskip}}\fbox{\textsf{#1}}} - - \newcommand{\DUroleul}[1]{\underline{#1}\xspace} - \newcommand{\DUrolesc}[1]{\textsc{#1}\xspace} - \newcommand{\DUrolecb}[1]{\textbf{\texttt{#1}}\xspace} - \newcommand{\DUrolefboxtt}[1]{\fbox{\texttt{#1}}\xspace} - - \newcommand{\DUtitlenote}[1]{\noindent\textbf{#1}\smallskip} - - \newcommand{\DUadmonitionnote}[1]{% - \begin{center} - \sffamily - \begin{array}[t]{m{1cm}!{\vrule width 1pt}m{.90\textwidth}} - \raisebox{0.0cm}{\includegraphics[scale=0.5,natwidth=48,natheight=48]{./images/clipboard.pdf}} & - \begin{minipage}[t]{.85\textwidth} #1 - \end{minipage} \\ - \end{array} - \end{center} - } - - \newcommand{\DUtitleerror}[1]{\noindent\textbf{\color{red}#1}\smallskip} - - \newcommand{\DUadmonitionerror}[1]{% - \begin{center} - \sffamily - \begin{array}[t]{m{1cm}!{\vrule width 1pt}m{.90\textwidth}} - \raisebox{0.0cm}{\includegraphics[scale=0.5,natwidth=48,natheight=48]{./images/i-core.pdf}} & - \begin{minipage}[t]{.85\textwidth} #1 - \end{minipage} \\ - \end{array} - \end{center} - } - - \newcommand{\UPMC} {\textsc{upmc}\xspace} - \newcommand{\LIP} {\textsc{lip6}\xspace} - \newcommand{\SoC} {\textsc{S}o\textsc{C}\xspace} - - \renewcommand{\headrulewidth}{0.2mm} - \renewcommand{\footrulewidth}{0.2mm} - \renewcommand{\sectionmark}[1]{\markboth{\thesection\ #1}{\thesection\ #1}} - \renewcommand{\subsectionmark}[1]{} - \lhead[]{Documentation \SoC} - \rhead[]{March 2015} - \lfoot[]{\UPMC/\LIP/\SoC} - \rfoot[]{\thepage} - \cfoot[]{} - - \pagestyle{fancy} diff --git a/documentation/Viewer/Viewer.rst b/documentation/Viewer/Viewer.rst new file mode 100644 index 00000000..c103b413 --- /dev/null +++ b/documentation/Viewer/Viewer.rst @@ -0,0 +1,11 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +================== +Viewer Reference +================== + +The Viewer C++ API reference is generated by Doxygen_ and is +available here: `Viewer `_ diff --git a/documentation/_build/doctrees/Contents.doctree b/documentation/_build/doctrees/Contents.doctree new file mode 100644 index 0000000000000000000000000000000000000000..b4e850b73794addf7f2589f68b09a2990ac1b6ca GIT binary patch literal 3742 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 E1NKQp`Tzg` literal 0 HcmV?d00001 diff --git a/documentation/_build/doctrees/Hurricane/Hurricane.doctree b/documentation/_build/doctrees/Hurricane/Hurricane.doctree new file mode 100644 index 0000000000000000000000000000000000000000..6424b3dcd10936d73fb4dbc7cce16ed1b7b7965c GIT binary patch literal 56501 zcmb`Q2Y}qf759w+H?RTIi{UWM*w}|nu`$)SVcg5Y0XFBoy}jF&_ik@zcU=Hc1DF;d z^d2BUNFad#=^+r(Lnui|Apw$*LINqILki#j{~wKRHM(`2@B4`JX7py>ym>#3q|r#H zJ%4bnvz)8filyqL-g0NYI)a-$`QF-y$`%J-P#GLnwj7rk-ka^o*EaO!tCg+7%GTrB zMhqG>sH42T#gyx{yr~S?*fs>30xA`&m7yEkhGMI;ynaJ>zPB=LW801_tQ%9zWqb22 zCf}7e`QBWFDR#FXzUXfpqV`*C3ws6+CLn}wY=k&00Gy=&CLT3-DcVzWXM*snJ zn0$6k<(L8o*Rf&cIEFks8c}h1lQGp~L{)pTrBZcGv2Qgz4z_p-dy~xZ<7{w@60u@e zolrO?%eZzdVAn9V83n>WF|5pFPj>a;C)z$XYFpH2^;4f*IINI_IlB-O+>u`96sGB{ zurhA1G8d>$3M=y*suN>W+=X*W7?+ikg=v0RS-{R66=70Y6GS`~8!%OK(^so{3eCb4 znni_^g=T+;X0gB9i@n@KBPvTkY-w0o#!m4>Hod_Os4tJ2uB^xmuI4J4Y>dB-9W zTvn1x7r5|R5qGN64K{_aQgm#1I2FbeA||{-&B=F`O|}vU$eOTHVppa|Kx|WF)7SXt-d z?n}hI6~fCbSva$@UQurdD`(N|v?yv8HIF%Ugw*?ba;cclPQ`pqVZCDB$Hg2f=5xc! zd34VCgJQPLA>#90#25GxZ(zh1B4P%@`jv|i@B6~a#V+1+6Y=s`S#r{xd2=h5DBw%O z%0~Khrv#O4BI1T|pX->udP$+H*qw^_vQ)&E7cNo6A9fL6p@^>xD_7CGj{S!A5c2z7 z$X90u=Q=9aB**xr4Ex&X*jFbiA3)sKg_Y}F+*hXJUYN}-US7FDao-qLZfcBMWt$f_ z&rzzLiu>kN+_w~NP}~Q&xNlY5w}qA4?`xbO6L^^J`At|(?3%Lftj-C^Y( z7xQh2n1^9s_m+#jotzlmtFS*5R_>$Y07aa7x#DJ#H|*}lsh2Zb-D0O?oSjZzeN11A zraH%tb>(A^JEpboxD==RQ=A?s+$&ByIZhuQr_1SsVdW$2?=I+XVlLx6u=}S^uZt^3!4EGaaeP!DlnWxK~u`b8e!gz&?*2 z?}lD9+a;ARpwTD8$`@Unk1Ni6y+d~o-JKnkr!-)m4l7?`NK?@m2MkJ@jTKx35+_6+ z�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 literal 0 HcmV?d00001 diff --git a/documentation/_build/doctrees/PythonCpp/DBoStandalone.doctree b/documentation/_build/doctrees/PythonCpp/DBoStandalone.doctree new file mode 100644 index 0000000000000000000000000000000000000000..933753297983db9ea7ef246ed47e92a52dc73890 GIT binary patch literal 129422 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 z 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 literal 0 HcmV?d00001 diff --git a/documentation/_build/doctrees/PythonCpp/DbU.doctree b/documentation/_build/doctrees/PythonCpp/DbU.doctree new file mode 100644 index 0000000000000000000000000000000000000000..4af945666279448d6d07661c3afdc4aa23ee51bb GIT binary patch literal 62452 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 literal 0 HcmV?d00001 diff --git a/documentation/_build/doctrees/PythonCpp/NonDBo.doctree b/documentation/_build/doctrees/PythonCpp/NonDBo.doctree new file mode 100644 index 0000000000000000000000000000000000000000..37ea30bc1206610475a32ccbda136c0a1880428f GIT binary patch literal 76835 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 ?erqink~j+ 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 PZnGRk;ixfySl9dqBGnqy literal 0 HcmV?d00001 diff --git a/documentation/_build/doctrees/PythonCpp/index.doctree b/documentation/_build/doctrees/PythonCpp/index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..f73b40b0348034d9f64276399dc522a5a150dd04 GIT binary patch literal 57281 zcmb`Q2b>(W`TmUomji67sfNQeW8*t)nlaS{8{=LUj$+PxdwaJ#-rJ(xbpeJFnjw^g zUPBKp^d5R3q>w;*NP!eWNCGJ&q(DOQf1XF9xt*C?$NBt!4v{pk^y=07U5!Sg(aoGW zIMZFq)NA=dwXIm{&Q@D^*q1HVS}GgteO6_#U)gYMYIrf-m#wWSXRDQs{L02-J6Z+} z8q`%<-D*npTGmvCtnC;ANe+eb)ymMd9Yb-{U0S`SH(RU>TidZKGwa6WGwEWswY;X5 zD;3)_&zRB8- z4I%33HI+@*c5H^Etu9k8x0SnlDx0nC7##}RGqPZ^Jz0}2X0ok)>0%w0My%}^jzR|J zyS-|uSQ)vtp4y^X@2b}FXimOV?Cj3=R4beNl`Y1~nQR6~;OUleTydp*F;D%L%2uGa zwO`o=^h|nHwNy8mY-Lo(EZA*pYdtNf@U+$@|4g=ANN2KBrnF9h`UF9lviziMvHMip z6n}YYNI4C+YL#tsgHuBS3){sTh>A?Tn9tzHZK-VEu@&rRYngWV7c{lnW~#Ny4(Fa# z+0n1;)Rh`qOZW2ku8dA?+r+!d&Z(Akt!DCF`1z}qUHnSx*wnD@dYO9F%C5^&Lo
    C6iJ2Gz=L%TgQWyQ`Jmm!&qgMfX@%*)z9gx}MsokS}H{d(GJv^#nbz zG8TRf%jEKfZn#<5ds$^%!nyRSmdbdL-p8*@7@Hf_u|3>t3M{v6ZtL83xgB$(QyT(m zr7ee+w~tK?=_#4MbS<}i$Hq_>>dL<0G10F~>Pih?-B*}WE#t?i?3Wr=HrZ;{tjt#S z&+Wb}x7)JZuFG;`mQ@bWuWWy&%7N+J9?R-EIFm!84~jQ>X?8WvuE`yn!dT-ES~(at zr}&ja;7Do^8oN)uE3N<3TM4MkWYa4uhvwM14)ZIA)8(U34SQ6W-=t49=~30bbfHjP zkuNWY#laR&ZfBA?VytzJUcy)WR7d6xP1CQfa`3TuQCg$j`l0F9ja*|D*l8s3+R`XV}xmrUzy9s z9UNd%UK2z-7aK5DGgFqUcmmD51e*D|V}xdRhh{(U%}m%y}ZQk0VhMiLzh8m^VrTgY6YTg+O2& zf@&_-C05Y&8eDI1rw+eY`ju7A?{dWNjo@Bt;k@aU)$)3cUpa+lCkI|LtGUmKGo)Vb z%Ore0HR1DVxz+M{7w5AtpHKHIXV5rj6!O_t2anHm9-kHWcnv-N6g;LQEMGYr{+{Dk z&UOBt9`Tpw%EF^(&Yo2{PY$2&SJu*|8xoYa4v!o9eWq*5@`bscd~d?z3lbh*m^)7% z-{n01v^>7ZuUt&)I`F2fuH0 zet$0hQ(r}&Zwh?2zT6C-Z}BU)I-jqP_&f~1b+ME$c5`BMo7}$LuiQby9gO2FkAX@K2 zvB4|=bBVP5@&2}NuM=7`|0iJbNx$+` zS7LJT#ndqVDk}A~n`p_gXVBv9(28b1N#$8o`kY^R-ud~c{LI$7bW73O-Bo!(9p**9 z@+G=-5GrGbK~A&2f{Q?8K;-$1;)!4XrNpoQa_$BF`hD)#|FX`KSNzIXXq&&#l(06O zBVTpr$k%eQap6V&s$YlmyfLB|ufor7_?2%uKVONQAslz6mkNb!hBqqJ%4_oZb-(g0 z+C3!jxuL{>zW1Lb;~I*Ni_amyo$&iRx!2_P!_M#T#wSYIzH%;&d%c#*_t3w-?^k}n zhVfP}Y6?((7_Xjlq}R#g4e*G2`Xg}pv0wR#)-m7-#M?}j`RjzLZ{EeCE`6f`@UcKJq^0K0JGNRZGSh=#XHki zswTYsL&DoX=H8RHH#u+rByT_PD}Sc(a4ul0gS&rm?tU0|_kFtiSGY?@SibT%`1^Oi z@(<_l2MK@YU_GJok^KGGul%#oUuOLe{<3(&-+v|i{UrC1{9Ww){kQ!6k8cKTFlbQ3 zWn1GezS%%Iy1O)kk&Zk5F&sA=GQ;{#MY9o(&ppd*jL0`b5IP9|i9p~?v5;Pa#Tzq} zHQ;vA43o}qtJ85HO6aCirJ57z|NY0=3gaVyX;F>xBfOI_n?UH%w6NS5U@@CQlEX=F zHbcTUBM=e}ujyg+Kr>SEXq7neJ-R?Dn=`ia;lRr+AOV*x5&32-gaH?ihAf)k+$Wl9 z&D1kBvo-RBW*e!EvTET7X-lmS8ja(&`0|$62x+!ewNYoxb`W~BFFqy5XM0H4bIcA% z_-03h=G4 zjyr0x8G|gL+D%%!Tdn>HHVZW;6~E^$msVv>{IoKAsL~jyJt6dHU7&7tp!R}9pvEHM zo4pYdRCv1`SOBMS%CelsQ!9FR<+J~{d?Uu5c00A(yA@WT-LWhYaBbeBIF?C&7 zGPSDN7r7!eQHqnSV#lEyL7U>%5r zZw^98SR>f0f_b{yzMTDPvT`l2gQ*zfMYqUn3ggK-bzLLPA&>#tp@@8Q7($1Ph9k&$ z7B0-CO{r=QN1lKkA+;l|T6l|YOEtrln48(+30zZEYYf*k2tAq?u4N9_bV!721`@tG z3L$ZYC!sR|STmJpVa=ji>?EX1gmpAydlCj-&xQo3jzQ#`IS3sp8jYaR1stm|W-f9B zYMzwlTcxmPaZ#i>rUqL&2j&n?xLn5YWBz)6_ zkW6*6$g?%s06LJIfRZg8xrBn*=i0?i%c<# z5igHy0rsT1!fJ-shOl6qY^(j(4|rTyG%?92sL~kKJ_tQp7r^@+z#=4?WR#HbO&K8p z^4id70n{qWiq^_`1|1V)?jDAEK?9FRuq-f|()>DH*qs3YbS2tC>so}C?@Qz23RIt>Zm_y~z7yaQ4FfOEPs zY?nHNIhDBid@u>k^gkOOrABm#9I62AE~LV^k}oBc*W>mub^ zS{G9>MvHEd)+LPXWz*@KOCbZY&mi*6XAwGNG#o+3%O=Of&IRT&1WLXS-lvb7G`)sP6;HAwj8T7*Q#kuSRP4>N#vo$@WT z>!}*MBG5HLyMeL2eA2J+3(Sp>0NLjd`Q|2s4jBz6kS)%3ADyn5n~^7Ew@B?)s}{~Q zY^n7^#&OsdPvE*uwZ?GW4xvZ$!ZqIEx&sp7`aBZ8xf3CAX{OO=0;uj%o<(&x)nfgN zE)mr|j4i6b>w6&qsxKh&&3yVd2F*7&=yGtt86jZ~I<<>i= zEZ?)(RV^Q4!vwSEWg*7w1qeMhMa;Hw%wB|q%eUrBNciR@gk;9$Q!P2$MckM_{@<|~kc@mCS~=4%KYV>S?s^`CAh=496_ z&iCeO=Ih82;8&&e4Xe~~SOD0SYeu*Mu$zmj-UQcgs^S>e*C6!R0&%T5uCGI)zW6O9 zeDiID}}?ailk{reDr)(;T*=7$I!Et-w=NM1#c zox5cAlBo-4m^Y9sVn34NkF8>O6?Ns-gBXXOl?5!)rpw(4U_Vj4For= zCL{v(781Vs8A1XJucG}%!0YGAwY+{o#n>oEx5(?4jO|s_>6^D91F~Ns^36L49Wok@ zAmcbUmlLyJBS*O2mC|plQaH}BOfyui_}9?Eh^sKr%}=p(iyyk*wwN*q0O-I#rhZR7#*Jhx#&2T? zJvK}HwsZW3K%(oyP$Yaa3?ccAK|>>tA_p{$TO<0{c!e0w3c@QyVylm7Vfk>k&vpd9 z2}P4Twt>l$1~OwdMFIR0n<2s)F+%rCu+8`-^q-ywOwZyvJQ7l|-&_h?ScQ)L1NJPF zB+m2K{_AHyjztrTHhD5iX+aTeaQ3y$w)Apcpbj)ofjaJCJ zPBx!>wqqQuf6%|}aSR+gAi|O`LWhG!Y{v|4IC(9YS}5evC9`HHry}&EeS<5}mwbknqiJ2#F`W7W5kdrrnjRip?HW zj16*hi@5e=Y_A1Q-|Ph$kc~xz#bJaF84X9yWnK&B#aiFi3>ya3p+l1VUm8@1UFsfI3on7SvR##X!*|f||xSxY@K`Plp7k zW+1|HFhYllMkATJ+@U~w{T$Rs4Qa1Fu$Mn@a3 z4fCn9j%&jLmJhEDTM+(2itNdJQc$y51R3xzMua71gbqJj2K?H|!mSZJ4VT)&DHT4} z7S{8AWCl&N`&!I#D#HCP>@mASe?5REd_11|p^wQsq!WB=?hZ4I4`H`HycGx;R5 zOSQ)OPXo>tgpk8I!^D;-R*iAbCqBscWG3#H7`@7> zGX|*wp-1C_G{HeKkO)#03E$KZ5>hzGTLWNJSB_=0l1j0$i|&xoD#mt@r>2Dop7xhMb-r9MT`09rTea|1o32vLAvK(8ylJ$>6Ob-atuaU!L+H`GAnoTMT>^<9 zU5bQnK7){u`mcd%krrG(t31o;GOEQm(Is-aoN;gsv|e8U2~b^$$TwFZbf{=FiHd8~ z3(eKY6RK;ZcCA&5u2C;sFI4Wpkm+SeexdVAZ z_Iat@Y1P8sWlOCWGWIT8Jb~*j)f&TfH-sL|3)g`T*FBI3*S$#i<_icTy~~*Zs{52@ zQQc3qSnr}sMD+k;iz@K?K}dk=Aw<4;7@)PdEh&KoaC%xPEVKTm=}>LP+yYXOI9xg6%=cVs$sx# zXW^U#sFzh~4Ahq)^k`k6&UBz&fkdFbf`o6riZBG#U;&`MrYsBU>(q*!dvu7PUS({T zaOQx|H*n~iZz6PjXeq*nm%EkN5A_-~xjXK4>3qxTgqJ%MY04!wA>gD2#S>({ttw+= zz5}60+amL*BlBHIMCN-)_~!cvNk*4DSHJlI3jxj#m22U=L0N3xM2`sPM~v+?j~@RR zhhX#*M85ecLdS?UBaC>e&0T=MsxWUNOO)P{*3Ya~*n?DP9h@3^5WSdN8sN_>%+FP6 zjMFb5^k`k2?sS}f35htpjf8K0g)rcNyDLP0cgEfdH6( zi^w;>L+CKkWCGLTe6hD`-b0o!y)UibTdj@*z>#-+Dzsjh#;IsxCF&2VFox)l5PGyM zL=QSde}Y6SQ6C`Tn?EBYB903|?dC5m0!AMyFIp|vqv!?M{FSkLI6*)E1_9Xo9g%PT zfzYv`Ez2fYkfOOR`{%6YBV>xs$I|+VLx;;Z`YJ z_;cl&k!}FZDTFJY7}#1=Z;b6G5PEEY*dFKDZVHJ`*v*i@nl3`J4Hy3Uji5h{RIVyE zn^Q4%c^pO=pl!j}t`#_avn6D}wG|@YY>m+2qT$GCi{nAH+8VPB5~4K<2`tVcWYgRq z1E5GVP`m&%P9r$-pm+k*cB(Q4YI_Jh+7_t11GNJr0<|L&*yM|ltqHFHsvnF-E5kC{ znL4p?jn0tKE{yHqPiI?k2t2zY^35284iC*m@Njh@pgPg)hFme)U5a~H#dwdJ*bLOb zJ!)bC)Sjw025K(|JvKm~j&-2MLLyLmBY|DM2nj0QqhJKI#w*v-+J}m<9!0lEYXaj) zkD6%OAOo^?M84SI9vxpqRYWSNMMsMLgL~|LxTaJI#@Z;N_jD$8$>jPu|?z>W)6W2hz>=B zZNCT|A{w)Zg6jbnV&=_WxWpWe9N{@aN=I6y5D&{VLlZmeI7ap5%Za~AF;i7%)Dtre zLXXCU=WvH-Iwa~%GmyX-H zK<(;4ErLX#79)YxScC+{zugk3&<0p7RiSk;wVp29)2!N>v5!O)=I!rV< zAf|&%4q3vKmzHO>BA5>P-!L7Nz_db@#xNBi^k`j}_Hvl|AQ7e_622)ROkjcqU@9xi zVyaLphKUXllVRMC=^#^u0GMisu#}3>VWPD$ zK7|M?st6q>nv7uLYUuoYUl;a=oP#`ZI#+7vS+#Jz%9d&lDmFyf;t5datJWB(wGetV zFHrLxs0$zws0)$6u3dx#6|ROl6Cibw@+_%~sTLzemq_Xo#&*3b@cL3nfa)`duwxgY zLq($zRC>OgT{FvEh8%&qTuN71rLaR`6=qg*Op)Qqt&t>NQDClAr7=!dLFm!CIIVJ= zu7*UMu0aA@brFUgs=)#3V9#R$=H6G2Ot}uEOB89OgzGVtEyzgF{OZIQ&tL zcCU?^I&X=&iB<5{)4FTDmDq)e`Mdet}qI*PkH)Fe5vat?x59C02FCr|tB6JAZ zfCxhNuW5Dc61fjKLU+HE9TxQ?P|+QtdV;Z?QOVyYaSTLHA;MxSLWhV3BZz2I z+u`lj%BPVpP|ry9S*zMHJ?LZoB?rdU(8t_qqK6W8YiVL{)^n;p#_V|rJ+?#4E^*9W zfJDq*M8Y>;LP%y?vzrZIi`T@LRL0VKnd-4~lRlE(ml@laEcLh6yaFj0egzTMVG%lp zY(Rt|r&(R4QnhBjhAiRxy0l)kTH!dRLIaaiS8Kq>`(+hRbhK}%(ipUFLg>-Dp!GUv zuR$VcuOs1`Zy_YK@IiB60j$2QEX(RU)Qa6R(;>3@E@OLPv@U-S0$}<+BH#P~p~FOz z5llE9)SIuFA0i=0Zy@2DA0cF;+@b=CtOHSGuqPxGPayiSs*EA}34|VP3(*RP=%y9#51joa4uR)wL|BVO=Hof#K`XmdAF+46qaCH!>Nc_ge@(woUXl zcl3UzvfK&t9#Xz}U&jNy46VNbxL>Agjf;Z6r`9?a1^>YE;a-@{iTRHd1usSm>o$La z6tq7;gk@cXjy78d+S(1n&8)2`^%s@;(3a8`*VdqI!6ul$s=(iZ0$V^Wx(P`8@9FYSk$k0C${|A`2DbrCv0*d+Pk-rJJtt(i|CRG0a; z%Kyif4^Jo*S!bV#jXEfvIH3mNN*aH!gV_K=kG9n%PHsnB(DW(QQjb~M$mcTVa)yK}Dkq~-phj4A_aBU8WR@S#b!Z%wYgh$D(Wc{{0 z`p|g#Y(<^0$0gU)w`Te9^x2Y7x1lK5O6C}if(&H0MdX|95IVAKnK~WLAFV_Li(6)U zWQghx(%I4KgdHy^wjNa7GFxI9Zzok5BRLvEkG4hfdPj0+NVJT%3lhF*MM#ny$@}X^ z$JW;3}d_G;vC%#BB0qFk#F`u=+MxV?R3E+9`F9R;e=S+Z6 zoAOkxX{TCj;z^gtYG20o?l16qA|yaH36XF1L+DV^Xyp9F`8^0Ptu^~2L!1tf&Vg1Z z>_sTj98z*}j^YVO2dT;!q{$F^v@J+!2kBr)1ZfHqzBvS;>qWYqQT-rvs4^^}!>AJ@ zL}y6oaK?7{qO(Wf5O|J6DV$)YAtgT3k?_q7glv&}e;>=N3sA$@ z<>tw!BnTa)N@Ij(Lg>-D2(5O6WebALu53U zvAsDy1#sr!&^PlDIykfxfx{{H@%f%?-YlRl?}`^nYmwCo&oUKS2c8BxJj+x(xw&(( zYK`Gp0-;Cq!gGkjvlJ5HNg?5zV-bdU`c3fuXBD|g;cvb&*PUE3D5=gEt1^Thjf>UI zj#UK`u`)>brizfw30DlP0YIuL$3m)8DF%t|5YkG4y(O?9T zc6)LQ<6LtJ@&xHrshwukqFWf(fvKTOxp71H-*Xe)%2&-XRHsAeu?a$Tu0wSOBtms2 z623VLAyFl_Fv1LgeM&PV8w(QpJAXQILL zVzU;RVs?S_F0^{#W2>N8)4tWfj2$Z|o&fe~RT~3#5riJ?3s}klyBHDyy95c}T#Asu z!pByj4bb|GGA*soQZLrM=oD#P#@NoGoa2{61YB1j^39b99WI)U;KDJle2dIgNQu?e zNciR&glt*Em2Xi~P|=xz>tB@wscThfjMQ}ydbBQ5XE;*VLn2Z)AmN)E5wbmzD<3R? z)8~|BIo(99Sg)c(99kL(&O&n=Re9mNT}pRYrA9dG*gYH> zp&XpVOVG{dRcQ>)oe+AoE;y$-ICnuJICmrAn|lx@;J^al+^Z}L=L^(|!J$Khb01?1 zrwlmv#=eYl|=d4QfoJUk?49=qvdbBP$r#m>0 zK_WPhBjKAT5GLTj0^mHUEDPr;YQ^BtA;S40V+&^$;5>~(-#mlR!J(xHoN(ZtZJwnv z@jNHB=dD_F;9keyGBgZAuJ33}oSk6wf@+R2dJ#g8O%S8=9HTEmB1SJE;hUEcl2LNt zh8ckRvhppcSEw2TMb`-GD~uZk?%C$6kO0}&5c%fo2puvSjv&J^N1{3ARip&$8%SXL zEJC)eVI-RKKlZ1@n={R8sx-#xbqGCL7pqept8YOfR^LVfuTntB_C!V^SOBK)D$8Q} z9<^ea=nye|pRw&vD*)#QIK(zugbofZ4FqSld4sC#O+S*-kF8Q8oOSf20Y{?bAIAJd zmB!%w6he>I1?Ln8=S@fi=Pe|#a*Hql2NnS5=gP8henG7m96CfezhrFTYdTfFiUEmn~4iYhX z4+*T>A|#{a$p$k3^?T)8P=BCm3=~}>s6R4pIN6Rfe}V+aK0t&eS%eN54M&jSm?zr; z^B1H9>_a4c^H+pyTf@n=;D0>XN(okfQ>8Ihe}~Ycb+PgttA9WuRv#hZn~xE)J&}_Q z7J%uW%CeaLMXeYnIz&vLFt+`v1UUc3p>O_!(7~al2%NA#Ei!{}^D8_XAmN+A2-%#- z%dOTiFKX7G79|*MsG4JpHiFP&6U693$7o|n#ApZ-z8Q*;jY{?>m;tC^%D13~Q#A&P zt`SrV{H=7}J$Y?l%3<%ku=9v-55wMX`+T1EN_NRIOV}I&Pu-ZbE z##n6$p-1atwZ^g93KFr}8VTQQgOIEu{RtL;X_T@orfsPe!$gOOX*T(cupIXdkmrO{TY5zad9;07GLlXtp1tI`;pT_E&mU2s-9IIWNf&aOyc zA1=ZK99RIH-IQhF>`tv196CfedoZ?e3V^dG4t=v1LI;PIB5=4eY07OG_K(CNhOLWy3Kf186&d~gdS~+Ou>!rG)8C&gdVMnP~8za1QHQC6bbCMMVRP2umDDfE6XxEf?Bb@Lx;%dNXEAB z^Z?FO9QtM&LI;PIB5<@tb@ALx$z;uRYP0{$kls;NFTB^EZi_WV)WC=L`a$tTADXFZ zV}xcw=+V9i&2@y1hD3yBBY_24gd`N+>xVYLXpS;1qq)?J-RsjSGMdLY*rFOZJ|80B zT7bwm3lTb8G#kN%<3USSbA56Vl7h7u3GALl$fmigz6v!(6&Z-MFv2<$sFteI7^)P6 z9<2-2-44~UkOTLxCl1pf{b!6{+P?Ok2h9FAiL}X0YPjDyTLAt4sC9U}Yfm*Z{#g z+QI6EM6j|*V5t@%VTFHj;M$~?v}++Ga{Sgk>X7aSmTtY|dBYDTsT??y7G zB2TPNlbUbU!p8)*)OxeB#S>lYbk!O|bq0hU%?nkVLv94>s&g4zRDsv$K>}3gBf`rL5IR&e8bQUmLC3tg<^p7h(}mLcwABgc1}M@T zQgm&Sg9*N}n1FPVs*FLp7($P>1!=j1bO|JabSV;8rbS3dnj3`mgV1M{VF_JEofsiH zLqeA`wsQkC&0K*);JFeJUT}cW;i0(%o)x{uT#XFjxkftITAdINimWdlPMuIZf#*6^ z8N+iugdS}R&tneH4Uh=WjYwd17Ga1dtRHx8QijEIGj(E9Cptqsw=lMN= zJZS!LN6npU9zjxs9z_B>VG*)PZaSbs>tGbS$Q4)NWpRlv^tdXGA$kHrkJg3g7Ki9b zNQCGqB(SL#A=?v92LcO#^t7@pq-UrVgG7f2=~>2hIv{2990b7hJR-co0HMP~lMzgu zWX>wpSK^bJ=0#)*)R(09lGO_@Zb7l8sA8ak;t5nQtJ)ZV=c1pxFB0a!cO>eE`&aNA<>deHTKH4G=Hmczq8N@%laz*hGtvyfk@= z8Ue5$D%S#ggNm^`7rI4YKVobj@XGHW;~2Dlf(WlRKJZ#=X zws^fI&7WD#@IAv}!6w9F-774f=wLrr#W7&NfY4(L1Z<)M_De_v>}@2l5Q~t&^qyf3 zR}EG`>>XuWV!x(ltc%ex5_^}i{h&cuf%y%D!1h~2c+~+yhmEEq*tmZ;T{iDQE?)0T z<@Z)4{G?R6+ys<1fJf$H{RO{ECpEcsHR> zCb4=D`itb2(1%osUH0e-3H_C^{V*at{Tq&e=I@B`rUQfy4UI+6aJaJHqN;Hze9K_#Y(jUIW}T5Rmo^ z22B}9LK`R}S||4m(g~6ojQn7Da*l2Y5%6q;2%BA{uMb;$G-dHLya?hbd`g_t?;)&+ zO9n%wH_YmVqj^wlJ@9C=T2MT3vJF?YQFlxWgdXh+(ISUv6G+sDHbnwUt_X=J9L+-; zz%)Xcwj+(CUhGt(Q^d77V>_BV$G3n8xVA)ukCY*Fy@_TMy=i(O+lMdNn5~g1T-!)* zl+_Dy1;y4ES5Q2GYg<(t!?hiR9_ri z9I@@gIKT$a#sk0vh=8pP5mrzUI&3r@!NwuLtvXCH`yyN5CQ5UX)$D)f60D(2YJ#qR z)UtmF9u#k#l;~>vspc5B{UP+&1aUjYaXSDKaXSzRyr&i+x#^h;FN3c6Gy`mtm2a^f zOx0L#qie)Ag>mrbP+>#OA&`RHp@^`uiqMgx@d!CyU8Z5WUCQPQ=5XW++!0bd(kh12 zEmy7yx5g!OdgO{HuuWCHF>KQy^w+XA(d1GNYefm)0NR%8(pRJf?1`oUh8E z*xnUF)f|UI;Nc6vv4)D!;i0(*9$F0l1k{{>Y(Y9vnkQM!a7G#yY=SBVDJ-7oQ_ECw z4AsdHdTfDE9qCYYLLyYlk-+;55E4~5BW2AyVz}bq$~A%3a3Y4E2}?}8R;bPxumXf0jSJX) z4p<)~ns^nFz?%&a5}4k(;@YB_S6MmHN;&hQ8)Q^rY)?F=XAEROR7HffRfG-^jafv& z)T?onpJ?jH7NeEYTxB&AqkOY>`NVowIQ&jbbgk8@IqH;I1EI$zh}3LH>J&)SwN6FC zH>V*aspKdRGw55s@@?NbovN|EMc2sf492lhexf-OQjj|f5tdpJI&w4~>0EpWICcJ# z+2(BI2--PPI@c8F=**xHM#lcJk=S)bv}e1jSJUd4%b>pgzEw%d~+c} z*Rgc%wFUs{)5@`+E}~Kl6x|`Hiy7M+Y3iCwa12D3BEmu|LWhV3BZ%0!7L>C^yvDY# zYCel>ak@;Jms`zn*a{0affeHv7Eko8D^zg|)|C)?Y=K~%K$LFm!CaCJFcw?iUacOZdR9UvsGa1Ai9 z091D>%c8oAS}{~~h^X#nY}Wv#Z0>;onC?Y{by$QB6HP`i@unK9Rd|c(5_2Ci1?qn3 zJz(`hP(iV#s2ci~n{O{kfO=4s#y~v;p-1Zib(RD5FeC!?2oiX~0m2Yeg9U(kOj#Dx z?SXJ;B&Mh+hIePvX!wPa$-CXeq*nze;y@Wvx^yRI{~7=8LR>ch*l!_Zh1j z-upBZ9gtH4BQDG|6i<+PR#nGHJqMx3Hi%S@BlSEaBJ~0izIhQLN$K7vVF$dvqym=L zOVo`m)zCTedYSQLbs!jQu)a;L z7%VzOSl?l6&qC|+cOd|#?;*mQW)V6}G#SCfnfttHbIcErAxJ-z&Kp)IoVlaOIuIqU zf_+`d?ZH1%l`%v=hR~yJA^N;S^b<&g=%+~d=1qh|6wcgLKLEX@3=8OI)QJsKbcTR_ z&e+b}p=y4CL*V%(BHz4?(BYxE2p${{TDYc`!=J1tqxlU`sWJ z)NuasPS6%l^rLrGYYftFAoOTnkTMR^Zy^z+-yz|f_Ykr{;WKz=0-WAgp5^p=s>L|b zC35-$WBXt^@cNIC0M(xm`Q`(J4i$|?P_ZX1!K>Q-j0|!5i*!D;Ivq0uPAJkGQgS{O z{~&T}^1W?;m4z6yzd`7+DPlI(G5b3tV)hRteDe`PGSin6`LhgU4*Wh=Im_>#tRlvb zu9Dxs7*E!_gOW9wPml|i|3-w}vIreZHf8{p2bn>*NQ&hKNMNfhLN<41$Z}n8b4#3+ zi6$MC=zkl^LX71`5PEEiSnlmuZVZW74nYE2W)ZHNCCq{4FqN|`hqHZ5 zBtmsK68OLvLZS+99~-QoOC70f3v4PiW5DPbflXsBJ%MEJuWeS%eM`%|-BV=$?Dj%o#_`G+oFOp^VhJty(yA z+fq$Vwd5oWA42WUCbza{Rcj1V4}>1g3({^5QZFQeltaQdd4z-%4&BZKIC;vmoK{dR z#)&SGQ-QG^x~;b9g9NCGh_ED!(4nHy2rAwk+GVXWvP7yPEn~I9yF(Rf4k~`0sd!>c zs;bf$s2YSGtqatN4pbcyfm(@#Z&o2BsBn!YumDc0m1Q}tp;n9&9U`Yw7~8u;>+-1( z0MluRu-=N$VWPp`Alg(Dm>BttUGo*Q@)eKRE1)JdNAHv6lMH6fAXQ|Q{ zs!u`a(YjDQNx&RT@ zVG%k^G-ojdtMKei$Cs*Ws^-(k5~7Qwb+Oe75vfoUJe&;lBhp&0iYI#0C8{*)jJXs- zkJg1~xX0AoHP+cd@>#b(TRIm)6<+ETDTn(t)ikzP1Qze1y22~zIb|Zuy zTOni@J7k}OM96MJ!Z$Y~B(km0uIP(8ttFtlMMW&STd5se1EhmQcN=5d%fhCb+aUzL zI}l+-7NNsO^AUU;-e)adkeWZk+=)D~yGv?!Tea{$#+GUVF4@g`O{re&PVT_HN7crt z-3y^d`=WN6qxJmkN=e7D->VMxI0 z5ky#&Md(=3XoMAK3e}ZG^B6J&>T&5jVRgcp0*W-J6a~eVITTNHttVAw4AN5&dbBM_ zo`dv7NCfF=B=EKagoLD-LRdctJ*x~$=sD`d*8S)V2|dp^m?^;77jOtXFCxN1D?*2d z<|24-%(Zu&hcDqkh+akluO&dpMjeVGJP(6nO)(8{9u9a4zM^_#oW25~#|DT~)p7bN zB;xcnB=Cv@gltk|L#d3IS6LFozM&$P*f%MQor3g@#9m`;ABM^K*KrJF-$I0U$Rc#e zXgPvRFB&ctN|k!Ph%ZWi2l=A*U8#Q0sx~}obtMM|*FcT)=jma^iT?F{)g0sY0|-4f zLEL6JZa;)X+}=O}Z>B{^ZViuGU8^)*|FQBdw4YElb|TU>Li;IW_o&s?VBUlj=-xtv zcN8FW=x98Gj+aMtBWz##IkH6U7t;Er)e5JjDl{-KUL6}Rk8aE#VC&Y~sx?OJR}gwM zFJcu(>>Wr%?AJ*6=3Rs&reUkm1iIL7lxJ!EmTIvsMwdwIcZ}`L4Lp7iN1*gRBD{qF zp`%2D5lS510pO@5)6E}{Crp2o+MldiIK10Z%{eu6F6RSkP4uh}RBepYpCR;UU!2Z% zoc;odIDLo&UTJ`koU}|8u>nwjQ>F#=ck0DJ(J6xZ2V*;W(dmzH2vQ#-!ixwHI#M(l zA;m}c^RuR8{)HTI`b0|qwo2indzNWVDbk&I60&##(tlKE4ALOn_R6GG`GgTUcGy+18)&;5CK^h5(AZ?C>Z?-^4 zNa6iWU;&i2RFn4Af2#dNeOkM>tTUArYvZk?_qf2ni~jQ8^PJ z)v7#8YFDboNYN#d8pGJmr~C<+DkfPtxhqC>czb!L)(Sa*p5kbb|MaeXA&a33>KloLvxLI>ZuXsw5eu0`?A$4Uf5hU`=i7%a{$8B zhzvf1f!*Gn)l%Ky%TEVFI6u|Woy9W=tc~K?;z5#ZnXcDLJ*85uSgK_^tF^SLnaRkR zvq5TTG2NHV<4@5J#<6dvARL<;l4|KHt)76{J0>LN5Xf>vQ$uonTD(7$hr?1syGyIr z^k$3ZFdh$2?UHk!R{GS*|73Qb^abt0(1Z`0L3dDB2{o z$%$#~=`1xeHQb;P-5y^%JOh$Ce~Y7#7@O%XW$Lwjq1sj~b!V$BnNlA&&bOGE$i-%e zS%`ddG>hVQ=SJ`e<0iEBq3o1aQ>`7+nq6HkG_DXnAj#qR9tHk3Hj zKIoiYE+0Oo6}rJ!Cb#dHg}U0it1H?I6WhIVrX4?){(ODHq_)-VRnsqMXA{{d{g&-v zeeIzQGaKzgKRQN@orAC|H##*m@Wsr9fRosHh{xvk%k7`reOYd|WjT8a?6It#+iT8X z*W>52@Z|psPt5{Ug;p&@^VU0y(Wv5G9QMLOmNl;{0d%2+kb7xV1m zLLCK_tz{y}cg&6U9EznfH86?|9f}kR0mc7ybIh@*7hH}*g!d+>C6)^@M7SKUA}81) z9lL_d(M#veZJ(Q7n(b)qN@rGNi`~`MzWnNJcWYldV@lPw{;!yZ&Ymd!ft?-coIMGJ z;Ou(YFw0OF9-NHGH=U~9dcX!-5BLoOZx$Xl*w?Wimb=}17GD;yA3WXK8_b;G*I%w` z(zY6H?U@Q!ifj6+t$Vied>YWJE|nkHs~w$J85Dw7+%A-;({v*fUStvBl?Uj$p|Pk&%1L+lFa=!!TKuz4Z!b(ly;ZDpAyenD$Pql`_0~I)hx`_h zH=1f(Kl4szInM692UrVlu)O80Y9$L#Wbh+q%%JRGSyKfp#}9{lLs2C6v3D>9<0-g+ zHSW$r!x)TY1}|nFKR@7Acz7ABJ%ZJqMvW9@{5yH?0P1olpU3?l9_LfuM3&>wWQ#Ncx3OsA=lJmf3s zJifHg<7+ZKzERBMJ0U&3QqET0F~xW z@^+)nbu7-W;<%pM3zvM8L&&QGiVsRHo?9K@6wIs0z@7CouCsb5gwE=!F)MJ4{#iie zn?BWG`zOt+f5xv~xTN=Haq%jm04`o7X_l>~`&e@4412|%!aLr9{^e@5@|5=WRjXFD zVUCbl(N-+9pWdDC!`E8!xEASh-`?+IYKXOJDzL-LjG?{M5L}AuCU2@Z>evHh*00*# zmzf$gJWeOljTb3Xha@*l)3d7sVz__=o~}eD9%dlq4-vfTtyAOVBo3JaJKNBt{^>|t z$@Dh3=Q+1lvvN=F>=1P)t_vU5ps>ezP1J`|Aj!4Jhiei(oQh2BUq?tEX2S;7$2w=u zT0C&$gP$(&VP&D3&!oHCve`_vt=^Z<~!dP zoRLL6I|Gv3rt<9CglA_W6K|SENY6S0&!&}Dw=UM)a$pA=ejQ9|Gi{iKu1;6w*6Fp} z8r)4++c7`2)6@P`8|IY#y)*pzK1J)+Uv9_w|EU}l&PHt>XT(to=RlGhA_~_fD4dH- zJSsv+3JU`Yxp_w|oxNmW0{n@ChV~ZHyt;SSz@e`w2)!$ErM_(Y%6xWJwOy0)0o*>H z=B(TM^t-)&wZYG|Q1>|1kNSB5B)OsT^ZJCJ7a|jXK7f#ZrUF0bU~=EORFnGwo$dcY zCR9tAwnDyqU|WxA&lcP3)vT$ucc=UEnC;Zd^?bE`VQ$7ieflEWw9ZcKcNPQL`c?^# zFGd|6?>?d)Ujj*P6M5{ui`+l@T#8Kmtph@OJS*^cF>g7JS+ZdMfc}QRY+t@mT9Yrg z;X_)vdRJS%)E?fe4CLcyX~p`uTfdL%tOQ294q zbwT^FbC=9+onFHIWVtrrB=mY|4t!mABY?SqEtve@YBx8c7%umpLxeZ&sA7A$XCv)& zbO+8zCUF8Xj1v_7b^ZHZAEkV2inkl3e7@x-C^xIJTWn=o+rduj(4&T5z}*<#s-gos zbVtxd%xx$HhqzSKSe>~Ya(HkDB0OtUP1XZ8!+O9S)81Q{V&%^F7PHBpXAs;7+$qJo ztfHQXhJV%!ixqP+NEhV%DJL$20(}q>2)m4;y4&WRs_36RxSXn6IM%K)$N_zY)|w361;TDbfFLvWC<~yv5g}9{c+TsO@E77gYXV zkek;~O=3yQdc$?T*O@&zX~2978KCuTM0iC!LYxCB{&4gUeG2E{@X&elT?yR{$M>Z4 zeXGT_e>J*4Ax)0M$7g1kkZERlzZt{E$_;yC*Mj&Ab7rHw{7b+V&$VZHBXc z?`7eq8{6R0k0JNXPZ097#)vft!)EaF;>(EfUlmAui;o%%!mn<>jhsxioXZzi zx23zg?Lusz-eP`*Tr}w&MEI*1gzi^jBl`!Sp@D*VmtwT&H!PYOR;>4RVM(~#{1(S^ z@av{VhTY6gM$GS!lWNfbh6Uon8uK0m7o;}oEtI;<`%K4rS86EVt&+zo{O^&AKWjla zc7DewaPF^rHj0$G>l*aUA5r2w^CyJ!JGPA!!|b9b-&+qB>OWAqKMzoD#yy>vj2rJi^l@_?ruB=_yk86q&CeLGle==XA6MzZ^)LJ{~#Re5rjuC zJ-XnrfgT&-(U!*=v#DWy>DAqsaplY)JZPCSm=})C)Wxx6jP9G|X`0%kX7KmMJtc#d zm<>>HermJu;Ra5$su>I+9+M(W4TC@{iDn}SH>Pm&>YBc;QlZmnRm~8H@kLE$ZV`D{ zqWXp@cQ|vmj;VI4K#K}&!UDtbNI>iLRkNw2n<3<|p4!wstts&BbR!_1pV~6?rT+oX zNU3d(FmVmXPQY5W&lPPkTc8k5ku4G7-9XgPK!%fGYaQ&mEVXeVyE0qAfTN}V)DZiq zD7Ry749~{YMr_QSt5X}*)|9iUjb_iExxj1#T|Fong@hMeL$^g5U%ynf94ujDdmY5D zV%vIb4#(de7*Fn)fDUvtYBw;oqSdY$wT=nalg6~-nv2I$*n$x}!0B!?J3p-)2)xr9rxyGXLLMUUP?x5_Z+IMfP zeUG4a^2MW;V9eXrV?zjKPsWow_8kyP|ANwhT=s%4xQs=FzaT;AxUd~DE?$(wIO&WJ zb--aC9jq^hYvUXyK;3a@Q|;}IweK6$9_PS@ki$gAlRNevkOLn64G3TolmK8qM84S{ zp##7MtQ)`q(m62H0f2*au)YAUivySpbqC;J)jp-M_Ctc&;{ezY0yva$vyOn}tya6f zH6Vw>pbHL%Bf?*oAaoqqj&*Z5QaV#Z9dMYYgZ1TbeVoH|s5=fbRQpklwa*M{k8@x{ z$YB=a$sJszN{$ltne%`Qj)oo>%tnOwwIg&4*oJj8m?NFJp$-_#)4}>OxFOD9KGYq9 z1*&~vW9^HA+T#q^5HeWIcyb5Vu96J+bR734d^$cLh$T=4h^2^plS1e~up#RPajbNX z3v~d3TO9aB>-D>E+!zOOJk%YC6IA<&jkTW?)E)=Hh7iOu#*;hR2Lur=j}3_7WT*l| zCnDc0N9ZuH8SBQ7mQGiw0}L4*tS^So#W8e4-C@Y8_MXPtdxP5J7}yYE$T6O*uW%>( zLs{D^+B2|hYgdT9y}DTVGX$D*mR+ey&9&D{E}IT5YK*CHnpXj%XRYUIA6a4(6Hg zvZYC*B{SZw3eWI|mvQE&cEXQdGMzwG>c;QUX%BN) zA1xrc79~@g)Bh@TbHN5Ra{{dgIiPjPB&jm8w!dJNoy^d^L}qPv$B~x5*Sr=@p$>tQ!?NajR>v zn+wpdM&{boXt>%J-i-A3q|Ry?9nD;WLKmbq%obOgYgL(byj;!JyWu7FQC%nT=Gc)` zLRZ!{@?yGBHP=hNCFxb`UAoT=sNA4BH?cPZojhI4jVe5XXGB9^{+y&EW51ZW3F6eo z_RTyuGu;wY#q;PETT{N+_#>NJS!}peCRFpi<~AOW?Cj20xekZ!&f8&gyL5+RtSO@v z`PJqQ7UM~m?&@5X@5a61=OLLhEHxt9NzI)sxUqdd(p^jsb=%_Z=FzPGt1Vaeu(pwS z+K#7^HJ;x1k!t2%NY|!@V?!Kn!TGy?0fPCd5$dD;zsP-(Zd&cb7QD_%9ozA$=6=X< z=gh7c4n+?@hAnmd59IBjub~L9t!YQ$YP)%mrEoKgrOefxxqNS~fdALbLlkd><$_-G zFq1n)e~H-X{0NG8I?eE`q*m(eNB=052j{!ZV@!;|dDYm39*6LP)Q)x($=bKCR`CWA#ka;}co!H1JAHaWP%X+In*D zt>ob$49;XQmBFbDj%08lgXs+ToJ`Nwyi1wlDxJsW!Fp;-oNgF`vGVdyfwkw&CL*2Aq-&LLV!1cH>3uxf64@ z)d%>o)s`q(}QA@yrFcE&IFQ)-fom|+jgc@DA;Ew)!b{UOQVP0Kc-gL zlR|H>@t$Gz4AcscAuGL8-rIn!WMJ{wuBtZ_cR)C(Qqv!%dox*#flTSk1Nz*7{>-I{ zSwpdw@5yIcFCbP}1Z${;-RdLO!$7FGS)-aRcYANRMwBqM!Oz@R)w}FutPj`qQqkL! z&j=?1sRHHLn<~8qL&xe`1${AGkM_cyysYmg{u=5Y{4^*VSCf}3IdkYBf9kzji3fA@I zBz?Ka`-C|PwuV_x!6sB;plYx;6F>2l-u9F-5QGZ;@|jEIRsHR;+ShIB8Sj2J9)$*# z3pj&5WS#p{k%4U${}xz(jcZ}@Cn@0XQuWuS@+@5_;BD!dthbZHi6!t{y5`-?y3yW2 zcu$pHjODNt^sPa!lRb=q3gOnmJCz4SX**UKV~Ysbtr*@NR2a*Lo(!bL!D1y_{X>Fb zAR{Yt-36~eA85Z?I8g6T3Jwm^3xHf>di3!+9ra`;?&tNn24!;f+?#5R$z@T)3AAuE ztuv59z1)|{tyU9@`Mxd?JcljdIl98VEky6?&@hm-@0Hhk-KE}D$G~?VHTZWm>V$T1 zeVQ^3tmq?|ba{pMqH7dBFQae9Sm%p%y(-xHRV(O)4r+0AHP8A*Y$vPfwcjVv_d)dL zeFdR!2YERfMCn0=5{6FiO`7YsU)5^`)nqo(n@iw1j=>7}tpk1VKq_*hUe>$CrGn{6 zNq=D^PHFv#ivC7K?~_xYoStkq{)QmusU2_}b?}eebl8`!jd>M3A%SMC^7}aY{ zU0z;aICe)ReV^7H^?4&4?z(+NlU|Xe?7n;%&1q(x6FFxP+1S{^25c}U2xlzI#J6OIX6f-uHd0t7p1<#((qO@B5zTULI3beX35KI=`u|uCA_b9lCUD zTduXInC&PG>B_aG3;lW6neHm~&o8z0Vfm%~{4xU?`*o!{)5S&I=|X;4Kfm07rvANp z^=ip2tTDNsV%p?;AKTO$k_-xE3;90BHub?#TW;Z^_HQr8g>*Zu)D%-K9qD|(236USDyA0>%M?31^8Jr(S|QLv@tV0=lv=)_X=TU?i#l6! z9og2Jj?^O9&#%zXRFgE&l5L-#P0h*VI?{oW6&sqCN4a@j*?Bc+O#w|^>DZ=K%WDi; zRmiX0(6mX_I^kxjBdBzhhNjiaYiP}NcIUd_Ss}k_L(?+In%i#jt62u!nMH+cD|FjU zwykDMIMCVBma3Vb>gY-5S8r(A5XHL}6*IZ6+SZy>ceci)=cY}%s}<-{T|KFe{2IqL zty|Wv1zD3Wq>IIDS9{Q&H5;1xp@4yQn^(wn<<~m4X`M2S06)+K3Trp?G_G3cX(<%5 zMf8JQ*POQW+(LdGKfmq({f_BYc!M8#y?9TFD`mT~)bF2PA01}{KffV5j!7*jMv^MGqPQLuM@T+fYCfm^l zH}gYh=Z7VnOD*W1-wvd=_wzdp$ZVv3Q59HzcxL0w2AP`7W|=J-mjTxNhz#1kbjP!OrglA|w6$&Ml4o7It=wEOg`N$d795+s)o)=BM+!WVV@|88kby z_3X^R+4)`dJKG;BzgsFZcy><)?qtyH-Q&%kkzR|W#i{CGM&Ht17fewAKTrB4+)Qym?JdD-q}SX|oT$!tk7 z69!o4=p}r`k2NtfHbuWy&)~LW9wGEtZf znULV>v@#`Ar?GLru)h3MpxVpNPjjdyg{b%wj_W|r%ug4l8GgQzjoT@}q`WGKcs7<{ zDzuJlR`CRynF%zrGSh`-bBCrW{;n|&;k~WBd~2x(jh->Be$JTOg06g<(4_tR zT(+VvKojOy!Bd82E-rn=;>c#I3}TfDMC}PgnM|7yo!}5%q5p|7Z}1c~_x5(_c~k=VwOSSS*U{QLnl&#S)e6+wkSaG*nQP$t$TigewF>t*g7 z48ITY^M^XW7e)MD7WFqyojf{!n7lsR&mTdvI|g1etGdsLGo+`xvo+!KkqMuV${Z%2 zH+DWBEuW9^^T*OSr&IFTRtJxda~>Zb_xNynd;&bCBP^dk5&oX!=TCP29ux7mFN%$x z(lBGr%!zgRQ{?lhe*QF?b-%RBuI6{C>o+&MvdzxxO`1l-LTy`NUTw$FTCcmcwl!z6 zn4c8}4;!+uwqQzvT6cL%ah^~+ZOnB3-<@ht>pFZo{5ZqUpV^Yx!j8dbB{=>ebBZ`_ z>o}erA80zVn5(2Z`sdHV*>$d;KaY;GPn9=4e?Eu!3*yytj5(EfF9hBQw~NrUi~am1 z4)M7{+}J0umcJCoJuMoSrcM|)aeV$Vfxg_&|B?3H@T)e6Y-tp$smcEp`Oo_K=h!GKVgq_w)Y|9${0q$3+_m<9<`QZ9i>0=2 zqQO)5nJ>ZQ%YOcqmc&Ht)yBTO{ZOgb+@w~Hy^a?1o~qhUl79o0zUk-x=KOqKex`#F zVn$tkN0Qp`M=Yt5vYz`MtRlxOJsy-ZdTcF96rO15AP&?|93NQ>G$8n{r>M| zI6A)X=Rcrr{zhSK`42fXeiW~RL*v{0Q9lk&5$nV!aP(6@{}1Qr`}PzGhC|-{wzsw9 zKa;DU`}r@*T}94f9F1IQIe4LXqN{%yZ)X0h%x7}7)4BS!hJTiDjzqHI1n4m7xYbmVFY~`D!5XbA`5Bn2bHA}OQ^R{4? z!QoMdnPn0AW;rR^`?B96KQXT@qjMb{=~iCS3#K<~!3~<}BgMW}v1#XkLs`*^JW3gF@NK`{Lx^k`pLZVj-Q-9SZ?oF zt_KOvC$l~hzS#gFTf+gQR6kg4s0`IO@b7symn;}nxHkaBKR;}qHl;D7BOI3%I?ZosGOHD&+l`3#XifV^+ceVEq zATBlf`x4a^W^H7?U*vRc)_k6T-zdze~Qq;;^y<@AH-ti^9)wq*{M z|N6J4y4tdBSk*3=p^*7z7;9c?phw*TR+So;LI1(p8&{92bRx4I%Hp)xUKQ+su!Z9e zyF1PyEOsoXpTrD@04GT>c#N4g+KgZk4#qno;hUWh@>g^hB^0TCUZB&L29M@ulucZe z%t%!j>uNhg=+Uye+Ip_5je>+1D6p z4674VXVeKZ5kil~#pYtiW=}{otWHA0H}wd~CR`P;20&)Aa#X2lpi*pHr8^`vg|S^B zpstyUV<6fKk#D9Ubckp$GO!ZSBs?H7(~%=YGo;jLl|n=;^E(i+cmmN()fq!H3qp^^ zg=m^X)C7qT?Tv(Q_CXjyWDNk(zRIzP_M=h^5#1r8*^DhB`MW=kfoKjQ-!vn1h-ff^ zh}Rzb3Q9$Tt9rcyr|Xp1H$I&G>khA0i8N7F)dp+hv6;$S}0 zjzs-Xoi%1R!sl_wazARCXdT~Z4iod*f%bRhCgCqhSuhD66J&0PqnP&7TQ zMbm|B0m@0U+iHf>L0f7`0BO>0i#NMVo?8(yc~u+r#~27b+83pqqf~%I9jS%TxV;Dx;5q=2Zw^H0aM5U_Giilo%B-=| z%t6Q!DqmU$TdmU45ero(RW?{_OzO@pNSnkNcZe#DfjSgIkJbh1G6(7~NCfI|Bz$uO zLV^kx?E?$obfmH@r=zG9JLTvQIUUW|E-Fdc90LI`9gD~}$02l>XflF{Js68JQ*)+R zFvlZTq)w3HiB_>`RB+b0a@Am!&N`8D#S^ejQoS))CqwA50fLowuug$Quuet7H>V*a ztd-EDm=W+gUAdOm8B~n%qFdy3CS$u0=^AOyf(*$1fXFvzBXr1UID(94;nYmZVE8`= zc>;E>)XuYN;qtF7RSj49JV0lmEuO%2zG{u(x&T6t=7npv!*wAf!gUc6zPT77afK(L zGXYqaD9^&Wlxne)kS-C{WsL1f7W|^O8^WfFt-A*~Vmi<<{Szc&dM^^bxep%WtSS4i#J0JaWs{Tm$5msD<`WQlG%axMsg?N)B$~uOiG**SLP&5N zon7_jX_f)6XOtPOmy-V{FNE|aW4nqTw$A(wLXdh3k#F8c=t$9=NW~^&t+}4|lreut zwn)7r&3CP4IHk9xs$fEwDv@e#wq=u@={?mM^~byqp-1BawW0&{0VL{7A0pwKj}Vd) z?|MoG%*QMRQlBV0S~E$}7n1svu^s;dcmDwiFnxx|H=iSPm}oE3p}5$VYwb2)AVYw@ zl+IUHC%j)qk?M3}fKWC`=WA6M^}&1tp-0Q2)5p>ICnTctFC={PEke?<_sgo?e8(a{ z^S$z-)e;T8AetW-+xumD`EMM8%a4eB^AkeHg_aUr#!sy`KO;k2ev!_9tWLNHi6TqL zMRTF{?vBKe{;R5tx?p~T(4%dU*~pRkFC-ehd*Klg7PS$QOt=WC`hjI>WvEWG4ASud zo6Zo=vdjw>zPmfjaySH@-iUnD2cg45a~4mqgM!1}*g`8dd-W7eU*w8WKPmRNis973 zm8%A-baIK2E1m$gyy}gCS^+|j4G^di4%CW}2-HeQU;!H;L4}jjk`d5aMY)#Ns#J_! z-sl!-t;X0+N}ax09Wo$W1CejmMCg#wa01yL6USpK!knRIE#wN>+EQG{DmJ|Zth{@6 z<*Fe|EJWHJpM!_~&b3=>r-mCv3;oM3omG=q^8J6hV7q;V1>1GyckCx!4?>TC^pj3< zKk51uZ;g(Ni^~Q`W2qe>f7QD{?f+0BW+V8(fox;>QgKDL23dARmfK$=E3)N3yV-G1Mfw((yI4GdX`JeeVHyviN8`dY&S9DW zi7-t>!Z&*&Bqpt0mka>XB;{C0^;C-8$kQD{n#|bV7s%fR90So5M827d&>^D12qIqC zChsw6&WtH@FhFp>o7oFx1Z$eqr(5-=-BFS!VzhJ;Tj{FY+#D^NoZQV&-7#p55PEEc zpsnek&4fggyIDy1hI?HIZ8bD2X~^u&(jd5xibXAOo=4wEZePZAy1qvnYxYA97|urI zoBa_whO}=Pmfc%vi{I2K^?RE+$QHh4X{M}ZxO^KHOp?>Zvm9SoHc75U)kgg?tq^*& zFLJexTpJ`Jmqx-ja}kmppV$W*{Mhj3X4B4sfR<5-Xyt@Pj|eTxIM_MMU6S(KgAlyt zA@WTJLdT0%BfK~tZ_5?&dP;}sM5btUNiS#hn#Kj4EhtunRpiWc`;JC7Z`svS=-%0e ziSx8u7NWkHJcJ&b676yZ5^ke11tfe^L`ZPl#-y!Zb~9DXoJUW}_J5fks)er%yd2*% zW#+SdxLImV0$xCo-S1ysyIBZ17%xKPn*$I!#%v%M>z|euCZ!im%eH5V=0M~K@Ig}Y zty0r20bp0I8sSoR46k>pH^KE_RUG4b2!tM6Ag)E%ArFN_!(kgUN?1&IS#oZ zcDxi%u!`Ybi7U4R#CXY@-+?_dsqVG}uoG2p4A@B!dTfAzg;Us*ArY`sknqi^2nj5_ zD=8TPuhW!kd7Vzh*p-!Tk=GfF?Oln}H)lcyWM?7r%^wgtWHcN>#%pUmZ*Zo+5d!Fiyp*kNzkH&>+L)W)1fJCS+M8Y>0Atb8sxv(_= zOcyK1V!DJ%F-&xam@Z{(udUQIm*E(QE=S~>KO%I9XfT0jYDZ7OT!9=Rx>8D4S*38f zjb)Y)kz2hUl;}=ZtI`;wYasM!U5pNQjIM=5jIKk%H`gO1BR!@nvj9jpD9b{+ky^2H zj}8&iO^oZBFt6`52ykx3p>J+M=-|*&1P=Qycd-|Wi#pPCQ(di#%&n}1cL29Z{dTL~ zGz}#=@ragA0xRoD<*&dMGg-Wg6&N~Dmi*@aiRYnr$Xblwoe+9#miVpX_}vAGt_yb~ z;hTF9lHaCiXk<%pMbo&B(!cU6#GhC}c!fy3-em4&`S1;=bqM@Eit3uygvtFXnKAdH z0Dg%F5c%fM2;DEiHshDjKW*v7O7c+iAf#gdkQ5%a3gt`YLzBcycl#ywTGJkyoUlBi z8e@DPh0vpE@!iz%eGC#!SRO~hH%}lW-*Cws)tkSt40`C3%8b^_xeEOtsHYf*OXfq( z(>Ml~XAt@3uLvC%+Oj<~nAUN7QQ4d@SX!Ap7Q1-OvnVWF j0Z9PpBgRWXdEhJcu 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
    6Q@@uz@Ip1 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 literal 0 HcmV?d00001 diff --git a/documentation/_build/doctrees/RDS/index.doctree b/documentation/_build/doctrees/RDS/index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..b83309edd8f85d07a4fde1c85c126c705ae465f4 GIT binary patch literal 57410 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 UKBvVFPQhW=c&vQ=0aHom=O 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 literal 0 HcmV?d00001 diff --git a/documentation/_build/doctrees/UsersGuide/Installation.doctree b/documentation/_build/doctrees/UsersGuide/Installation.doctree new file mode 100644 index 0000000000000000000000000000000000000000..cba3753c7a5b48558dfb1a984e643f4c7ff8b540 GIT binary patch literal 109146 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 literal 0 HcmV?d00001 diff --git a/documentation/_build/doctrees/UsersGuide/LicenseCredits.doctree b/documentation/_build/doctrees/UsersGuide/LicenseCredits.doctree new file mode 100644 index 0000000000000000000000000000000000000000..f4097c024bc5b5b027f7a9dfbcad6fd1cc45db61 GIT binary patch literal 62096 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 I;#YM4ALnR^SpWb4 literal 0 HcmV?d00001 diff --git a/documentation/_build/doctrees/UsersGuide/Releases.doctree b/documentation/_build/doctrees/UsersGuide/Releases.doctree new file mode 100644 index 0000000000000000000000000000000000000000..51764cc604a7b0501594548c8b4e3d07abfbd19d GIT binary patch literal 82831 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

    ?B5T{$9j?XT zHbkQonGccRB9hWkDvlR7Q0i|JGCEqC{XqfYECch8%IBH2>1A=!^0s=LocRp|?*<8cS z@V^fVy?7+qoa&&U(HrwgQt%XxwnICNy>JzT$}RAlS)}3e0_=f${qEy9 cl6NEZl-vu~I}X!)&W!GZrz!WtZRAG&7rn(QFaQ7m literal 0 HcmV?d00001 diff --git a/documentation/_build/doctrees/UsersGuide/ScriptsPlugins.doctree b/documentation/_build/doctrees/UsersGuide/ScriptsPlugins.doctree new file mode 100644 index 0000000000000000000000000000000000000000..676605dc5a87ff7d963b04e258a28ec78f7f4b36 GIT binary patch literal 134801 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%0AMjk)MXBTLmmKj{5pQ$ETNaf{!YnzF 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 literal 0 HcmV?d00001 diff --git a/documentation/_build/doctrees/UsersGuide/ViewerTools.doctree b/documentation/_build/doctrees/UsersGuide/ViewerTools.doctree new file mode 100644 index 0000000000000000000000000000000000000000..85bb1659f4b405e057879b5af61e0376d8e75c1f GIT binary patch literal 283447 zcmdqK37i~7`TrkoSPr@GW4ObTV>cXuaE4sO+}SKykdU3-on)r7yR%a>n*-8vV>snd zK<+~X=#NLFFagm3*#JII_?^Ka=h5$aEI79oo*Ip2Ga@(yCKiwt-@9agH9K)w86M zFLr0j?WWLEDQ61ZnfCdW(rQy%)`1!-%gifuR&pj&$+neNU)HiAq&=q4E!&+k%XAjn zOx6?-%bLqtRz*=Bu@%atwU)K4i(hO;Iai_2vKq4XvX)I)LB(V%z2!`IuF_d3S2FF{ zo=UIDmDZWsvJr~=5A93KTGor}?98=S3J9Okt!pb?P^jcGLx%!bC0ppsb!1Gj7XV7@ zO>NlrZW2E2_M+SX`ibH&_<4gk8lHJ3CR`hRal) zZR7CvOtz?EfY^rMN%vN%XN8~GAou$o} ziJI+0%Zqr9t7ZqIdgBHAK)fa@Kl?WVST38lp0dIk6G_EBt6hj9Z+`>(XavX<3g z(@|W!WPYx@w4>cKY`{>4lZpB+;zhsDnR(z>+R1Wdac6c3cKuHCi`v^e+vfWevz?vb z55vJzTQYFwc1X>hw9C}q=Jm?GZRJX#f{|M6p4*X|S1#3urCkTBxw&=>H0;PB{%qkJ z6}k(wuPY73aUW4{Dv`j#Ah7HRsjVfH4sqxR`)OALU%8Y{fQ1zTq zt%v8jJC3qV30s?2#aKYIN{#syn^%oIjPM(XicD{Jp&e5}U1>K>1-VN5aKsliwLHv} zE2Z5}Jhrq)SlY9#d9_M*KBv3V$mUIIL|59Yxh`9&m_i!{Yq_*{SQ<6BdG(Io9@>>l z`^;%xt-Ui_E@OM&InArLW!o2Ew3SQy&1qh#&`~b!Kc{&Wt9rnk(t-IQ+1}=r+3iZB zCvAdyq6xTk5aL?BJzwbTK$xX5b4p`V!DScKmBxYe_^>o#aK52sGvKWWtaNa`F+VIn zBELs|Wb;bETAG+g+rK=xdDVGE)0M5{cWYS%6$o}|5{OI=OHlo;bC6 z^&XQe=gh)fXnpVZReM6t( zEX`-*_Kq;AtOg>E#wtwZ_ED`;Poc@D&=m4Hq1nNq3H;q&=;j`(D=h%A&al+QMsX@1 zRpkcMyQ8X0#pV^u?WLYum+EQdW-5xu{b%!;*|VJVll+AI8`i83rnZdJx^?G zzlbUXf-@X~ujjo^@im5iCPJ?Y=Pbm1c33*c#eG^L?v+u0^YkfWO5ae_-waFV((PVR z)GVqUb83wA_H?zUVm>bw^ZEI2DCTWk%->SX7lfq?>6|B9irH3&h%a&xU+hQxO-6hP zB4!}eFI|dwFAGbTyLc~1#LLk#{owHvCzP&Gz*mN)Z_}rn6jU}q#8o}Ny=_$M^gK>U zQxRX4iugPED-`iHF5;^d@ik%TT6)*$@2ju$UH0_rT+r7yuh`yJx*^%iuVmmiM&n=2 zDBXm}Zw^bhxX7LOKzq4;+%y&mI+gR>F%s&cCKXx&HKN0il*xTL30#2!Mdh`>8 zeQ#L0kB$Qr@dV5j*NVJqhgY9~IkVP`Ju&0S{HWG_donuV*>5{nzTN)&4)57N#p(VO zrw8&s5vL6urw0e?kowcG^fR`Xr{9S~s`JoVdI*Pud#jJBKOg9r`f%Sdbwl#}1$c6% zJls`SdIU@#4NJdtOn(Zdy=_oi5o(!C=`oZ)9+sY9vm()xYyxz667W=5`W1_KWvUi` z2Ak5;e*1sj*Z$o!uyv{Q8@PQYEIr$nI!$=4d3Ej^Y5mrnaw)jqq1C*wskLKD&!f^8 z!qV?utWPP{TyLAMndW!2m0nc0c_}Qt%%Dc1GIkr3)ao%f7$hb}j%%o=`oJGjec+Gz z7u5&4Tp#$8#>y*U=~epXUK$nGhLQ4`8!3Ozd$Yq!+_Qf{@VxS46t5%BH^S1JF3wjH zZE)sn%ofCe9}Rnu_~x`L`7JtuF3& z{Zpn~S5H2ROWeBB-_gU~3rqiC!`4Q_lCA*dpMLc`TY8&3-Ukmq(htDp!?5&`$s?)L^WXoW$8{Fa*)Ak6>m=!6*>5^Fq8=+ZQc2VbuE8jabtEfO1C1zFHc;^bA0Etkw z2C~r9A&syE^p)r_Jlu|%GOfw1i4rm~YsqMBYZRYAP-h@CeSJnp{PwP5IfZ5&)u~A0 zQ(*HY2m?A7ol6~^bs-U*^{^3|^^tN%#itb30q|^~5{qX;8YS@r42Og^Vs1|_Xlpjc zZy?$PS!gyz>JZUk3ehC2&X~*a%GqX#$ZPm~E*APTQ&2a@w9Uj}v1eryZDEP6~QQ{066;kcDPvq>dB4COGk2 z70WqT@H2x^CQ`e|tlpZn>={i!R;xCvzRpx{RsFfg?5Y|)PD3CJ=vtgEcASPnlE-vo zhG8Q#!;z8`&naB>rhz)3)TqK_y_k0b#z8tGnA_9xDAe5`0iWHGg=P<=jt{+AKGD=e zK3H_^ZLgR;Q6@ekWww_!izjHSwLE-u7_sWDb>0MR_ExpYV9Y281Ns-FqJy*#BeHRc3qA0W?bdGxCi;?2 z@2AZkH`9zokx-43)p%>wcb-qB+NAu8|DGaNR8ymFf-3bu9SmVW?*es&12qv6f%-Bw zLNf^|LB-eo)`OW$HNcvpatmuJW!|u3RD?B+xm^TM4Q4t7U^N3-Xl5dHtmrqviX9mz z(bI9mplq5@DqOQ<*lZ13_KilK)2l_SZ{%qjcj_r(hp1kU*lY*`HbBI3j#vvMB6cV? zLUR~W65}lr&k1;aMWvS4;WYGkF)Z?$!@Nm@*fr7|0U40ZMHZS?qz)M!Cy;R{PS0lz zjssbg30RxV+O1i=y>QKOxaL73T=TIJnmkhCibtYz z0ayiiYO7N9vPLaQQWh* zKvNr20#x;qPzse%y&kGEgaI2MR3|u86-b1t7aO5jh&1k52`6R|H9>5#R4lP2lqJ`k z0>(ySM>4lZK?Y`y!f)_eiYzoCQpby)6TEoKt*O0$3)R9r+_IZo=Pc~!!^#QJrRa562XR1<<>RAv5^e%umI)GXylzL& zZ8R4^PrNQv6&KkmTK*Ar$h1WgT%jvFKZko+!-i|CJiO0fsP!?laad3H{JMzmfZ3>Q zXJr&L`s&CWglok1OjC4!e0giZE&5TJu0lsgXKwjS78N=w`B9m@8g_K&PP?^C1%lxn zTu*N+)CaUJ!%8khXEmb1-7e<6h4y+H>Y+2r!(ZRjdiqC!1TS!prnqu@RcvkaB0c z1q`SpN2)jS`X)M^dd=_YOdUMFrz*WZc{_vweXCDy?fT>$kmxvZCpJR!eWYxS7Pxqv zQ2p3jKTv_{G2Od{$$31FX zef}7wV)PRk-fIoxGZm*-3zWymsi#2Qr+Ph5_d^)40RlDBfqDQEfqD=dq4_CNf{M?9 z`<#H*&s1t@Jw!u~7Q-T~pEI}Tz|P)03>lF90$FGtLF$mvaRM37fq8B-cba(=Wdim~ znLTFBTK0zq*GR2aEnGEE?RK4(LiV_7_K-aRVZbH`*)oUhNl1k3DQtx1S4fGB=U2&_ ziql%n)6@mIUrWi7`weB@=^f)Exo4Q$6JiFp>ooH$B;fWOve5h%spCfPDQ+`!9S3JC z=65I)x94T{f;Ee;9jw-JapPdI>M3TwSFIki7a-%wEPuX#Rkd%;KAm z&IM5YQDqj@pJ?WFGKNG{uQ0c$qNrbm1gKs^7MedJb*Shxfr{4-W3k|2{(=&LdR<0u zSfhC5j5@V3B{~?_BB-9i^rq_cFues~Ke6QmYB7YTj~pQAV}y)ZJF@*~g|SW*^Ce$LwPW12#p>Hge4V1qp8pnNP40nop6E z8E?u|-5m1V1&pNXj+PmO`%HZ|g`V;60GSm~o{w++Y(%yzQe>a4sjl6u1UVS5j0}t9 zNF8G~5RCO-3j~vLOJ)}4=PPDaR>gzoYBE~g8nx^f0d{(|2v-4iSC^_c#dQr;>~XDw zFklPBwc@z035ojRTG$B9+DOTj&*8<>ob_VXp(=Xim!xBR<+_x4vmB!%x%HUaH6mq!u4f`<#H+Rw}i;wx*#s)iEsc+J?D3 zo;rJzfegsDMTRwWqz)M!Cy;Tno6J+R?NK6JJIH89YZOm*)TxDvXKPixjJP`cJ4f3| zb$Y0FhA^OWq1wu!8Vre0?ShTa)FUOT_)dy-08G28#9|skBM%e9A*P|s?PNz=GYr3h zXgIRaG$3_|=rDz7dS`FhG@?X^M#yM4YZPCuQ)f95xq-NAsypqjN?ypfzuq2~D1tCAHJQs(MoOBM+5)0S`Y$j*gP2 zu(i%z0pnRpdu=*e-aLK>K^U-E;DbCdMgk}Qu<3|cNCGdkOYSKg4hxg~kOoRgV#Fvp_*&eCe6Kpf~g#OFE@3L*8 zd$@Y;Ze}vnv@@othN-rOmJgzx(XUa}J{jmzJa#j5xBtXdli(5_<)dyhOy36?FWzx>M1={a8nvbF{FpdPmrtK#nCvb zU^_IuNI%~=`p+U}79v27qeTj|-*L1UMPFbX34~d~`uiP6N3tXyM@P{K#u4?Ge;h4^ zHpWqiEHqz5s&T{t;g2KT#>Oje=4cjj*c>CHW07(P@9s|Hpi?zUctMu<*LO}`KL)C) zn}o-yKCinS4`D#Z>TWl=Y5N37bd&HzY~U^{QZ|JPv$k^cHELk*EK^akR^BjR3_STg znR#@(nn9j|-{5j8GTcT*ihB71Qb14ksw28T$P4|^(d%{Qbd-wC88ZC3HH_Q-{5pDve0}NspCYi2~N7pu%x}S*ki6knMhqPvm2~gyjng+TD4hu zq^x?1)s3pvV|5dR0o{w$6vygjNW|(EY=q`kq+}JZmOB>!b(_j8sPECt1I3UC>UQSQ zjRhO^9gqOkoyc&545>p!rwLTNYc|flYCN>j`~bzGb(buEXf0b_gA%X(W5pW4QWsCr zJF{QlzI@~=Ga7G)^8NJ8LB+*&iAk}>58T-QcW%i?D-wyL`Q5_c?cRGJ49H8n_h7es ze?)O~H2*QSL-P})+{5<);(tCMb1%Z-D85f&^?U5TA4T@qy)9zy?^-g^FU$k1vfsn? zgDi;;*FR;wI9yY|`f$xJ9Q4;;%+H{RVek;L(EJ>!j@0bi7&eJ3N8S@nV3AoXx^301i+$USd+8@q*lu|0g&*^%n&5T7 zUqTqLt?Gd5xeoZ4ba~I@acqU=3H@%+8dG9f%r(e72@M>j8Ey4)*i$qdU^(np)Q^|L z*5gFb5j1TRo3GWEc_jQ zNA0vP3z_Go_d=w{&i0vT&F}kasgCwVRuV^>zDM*D&Ek7RiuPrS?BZX)yV3js3JCp= z$U^fcq%L%}TcPt+A)XB3F5BF8e4)a;f)e$;S7r2?HHr^cPOnzyt2$iqmf|qhnSMn3 z&#KkyPJe+gpnG+vJ6v~q9TFX`-oQp^-bBj5phfCF7v?RhVODrs<@S*E4rSiGONPas z@>k~eE|D5({ssY9y^Aa~e@E(A(Qo32#gm}%V;Xle@1aDj{vo4(TBGEepWA`TK!AKg_@qe+ z(5kA^1GE~10euV55f0GmkO)@&|LzLP7m|h9z3$eVJ`w&EoMkMq0HYRgE{^HnZv}NE@nF z57I^u26Qh-yE#Z3Ln26xmzE@stJ%o%(5C-%vTGJh^gCG&DG1v&r zSfr$-10Z)uKF%VIwS%$0~>gI2x$ze z&x2{A8feW@xuw-inKud<6=@y9+}_j1$8^kW{0t4x2^}Q5OF+W!K@0H&^r6@gpu@0% zmwb@2LGGzlsMLhxogeT-2kI$2hpS2t&m0H?`WBw=IXp)|B0O`kfj5PavNbyTx%y3( zN`TX*QVXY@GVe5s5fM%Yb9)G6#5w!~qj|_eGaspAM4t&p9B-4S;Y$`Kk0Mbj$SSZ_ zaW|6E0Gz725u=z~?B|mfW`Qd8ICVl8(7QNY?KpKoB2L}d2u%?wImIWO)`RJx8c3B? zZb=!+JW`B`q{__gpi>Q|0s&a{BEw5ONF6KsO|as@#6Df`-VMOJ42z&8Y>QRF5?evb ztI*{|qOb20Of3XhgD~iETtpm zuD%Zp|MU5nqY(~!=rIbb--VK6QDhfNGKjgqg_7!SVUA;s{jQT7&yskZ^jrwkm#ny8Q2KT*O9U3`2DwQSXR&0pYZP*CS_mHw_?wklJwLoduR?*_o9_lGjx2sAI)Ey88^es>Y z2kK5p1nT?PzzaJ_*_!yAi1nMhs02_yRH+4ZH)YM-_sQ^nYv^~Y>Sr6=#O8yl>Q;>@S`VmRkJf__25f+69pY&H z6cW+;88$-m5K_|eyA_;(*3VUHX+2CsuUj!J()tDSM7L@*k3a@wk0J}rFOfQAbeuvK zeYCY~9z&^+Jubs1tYN$!=k#iIu)e-k?^ILAgeO&}hwCW_13DM3iyW?BL84>A)7ZdU zI!K9&>v2^Mfa*6YNmk0k0>dDpXP8?=u3_d`$bjfMWO#E2sY66(7EyF$;Bw`ZiPM|R z?@%H<&&%iqYZT+5PAxR-Qhj)IpS!Ejlm6Dt?^S0q67wR20i6p^{21g*kf=Akj19cC zgVf=vasWJkREh0Lf1;7slNb&$y~5lsSF&;DRs05`*O1|j9i$Es9VU7a51wPP_{q@@t?Nf`Ln2V`U<2>%ASEb% zK1!fsA7J%26SG84dKapl9IAgoB2=GX1F!2KC8~I> z#CkA;FeW%ht$;lGYL!`$GLIIcBCVBJX3xu1gIO5@uv!IKXjVn)SkZ64tVWvESP4&8 zSC`cq)+)hjA9P$Wzn%W4yA6=Rap@?(;E3e%>l z)WftHgaN$^(8>9(Lkq2PfN<|ja*0l04F(6{vhPlOLL(V_|Oxq&E z+croYCb~>u;*Eo;g|0TdOtL-7#Ayea?P$&7Rb8u98s1Zo#-;Efxk1Qp*na4tYIl(Yf)Mx2 z!S4J2qo*{P16T!Tr~_p@+8VbU2t8gZy)(km~k;je#&=BLr-;12z^C z0UL*n(2Pe)VEo31j(4=UEs4m_VFKy%QPc8j{HLu zWxwlovr%N%?RG&A>~Gz!ZC4C`;l6yu(;O7VxNFy@1Chn!cJ-oymL! z`WQKfBMZ$Oq*}(~IKX&IEaO2m=%8Law0i^#IqA&B25w6r<*s#~@TQJGLaHxxy-A1a zsmUg*I=#-;24O(w>TDS|*|bBV$)*Dvp~)d-bK-|6tOM+wc`C7!%zPSolMKV*B$H=u zuSyhe0l$GLKo*(>NZsT@hl$CBKJ^g_`x*j8DbIFLPJc2WT9Dt)G=fO5)65%(pD^%E9OWP3Exq&T57H0(*P;; zPtIRY;lh*DQync-r5?1eLKx7ypv`yCj)p|gj=@G~jzvmn@olEa16UoWBFpM{T6ybE z42Y~wU~bPVZOA7=08A$#!=gG;hlwr|nE2kkU6`M0|1J^^W6Piq|Zq(mA z^%T0)VJy0n5IOkwj$;2;U&=}x!%h_uZ*QLlVL)`++wrI6PNz6JhMj?J+#*2A9sW!3 z{O@9A&O~S&1|$Cd4q*Lt7jq74?)L`NH&_xMzrM-par~lw_3>-q z&r_WXZH$-mkcH-aq&j-B`};>PT;&g%U#OUGv5W_=3uJR4Qtnf?nhllIxTtaP;-mug z)Rc0Os`NV9#SjMctxmSUO(~Z^qABH4Y=q`Aq-;&Rnyvb=UoKaHolvfzjW?k%7)~fx zGLODXg`MfMi4)^B@@YmDKk0Df-`HA%JwfgaZg35q>rs^bz0}AS?0d=3M z^t#0T5C-(EE^(Oa5)VM40rem@@clBRi2=p>&CjTWQT32Y?Wp=WW!|V_MBLpEGqm2?%X1N#KQa%h2r#>>>jsv@yTGMR+Ci~r|O{x^JiqC`3q9VhyHB$i|!+F?Qu%Bj6W%9UPqY_y&G1B|RR)#=_+t;t}_+YknHFG}&J0N#N_1NE=iz+Dieq!h0`+7`8v(Yq>BwdU_M z^RC+%5?Q^++^#)FQU3!Hp!z4W(7cb-p`z2oNag84Pscp-0Sd(FL)m;}ZQ`y3mD-Tf zcifPN?2A)H$A)`8L6knK8XCO*dQ<=N2 zJu-!9O;ze)S_{H}-i2wg!?ZRe!n6)HaPtExF(uY#k8CyTQVpQiQ@I7TK4spOETbZ* z4Vc^Y*&{({L;MWQMo1kYx=Rqk??Hza=H&`zV{8i1CfL9;`AFF$_s89&GytP2L>zBY zPrsD2nQHYIZ4O~T_hPhJ#Vlv zZwmo9ZHFv0+aq+OCuuGlY7;HB<@~*D%UFT#SpjhBLRbQxtjwB;eJE zEHopKI$rdg;Kh-5$iZVLo83?%TD!|=4{H=Jy-}w&tHhlV?(>EDj`Y&oo~qMhH4?&r z&c*67$7(M~#Ai}}HA}vFG61Wpe&yyUt!7P5^{sKL+2b`H!hlT> zuM-`w36O}_!Pp4RM5N@Ee)VK>tNAi@L2Z(hEVap$d9xMcBef~aZU3?@HB%u0w`s^i zGaaepM(+u3JWq`tV=^;PC~z}n*JSPDrzs+}n!T(F9J^Sgo}xBO)q2#LAq?nW)S4Z& zLm&~g+1S8?{76YHewxDhFo#kR$PSZ+MfMfSypG1mi0p9Y_T z=sUqIIvUO}ttb(&tc=>MQT5SqMon7DQwG=5N-13Js?@{P0bxMz!gaL6m4igM=3xWR z^dlv%#L*BQz$vdH%c(#suWK86XOJXPqHQPCPz z!x`ZHuf&Aq;H3Uqu<22y9-I<{0lf>(QU}LCA~eR@_=y#6qz(=}^#^CRIg+M?bCishTBB+>vp;9gS(NHIp(^#@d=m*<*AngaMl%MkhH&r$Hh{r(+{DXCNh` z^b|g^)qI`0pmnB{EUmLB^JpmARdv7l6=h_=&}9q;966yTnWro%l>Nx6_n_?vT-) z)~K4$0JC$y$M*Ec0=};Y?*JbVpseD9|N>F_l>b@+Nv zHG7PH3Sqz|h|$T8(a#_eqld78NB)tLQTp&TyVX2QUC{c4lq{`BDD!ABKGJ%WdDY=- zw)rI_;Px1@&^(URaijMHx2RK1Gf$vI)Si^lQ`V@uQ%(Dv!>*VD_A6ED0ec$4fZhcx zbijTMiGckE8~7Rx(p0B{2Vi249)XM9UOW}z==E6 z4D$kw*{Oanvlp#dvQrIkxlyZA%}6nNNi}};7qniLlBM+;WgacYM_PYoUe&2)n7=>*Zm%N?%^OG^H+oNSi#pX5^Cn6}?JXI- zZH=ls)s)ZKsk&0Y-ch9X{u9owVL;+23G%2xn=cF z$~;z#imcveZhKZ22z`K`q4^N0BSd%o5t?j1qAB~;$1?htHL4~wz+y?ib9s7Y=@V7z z5&9IufZj!Dp(8X1eO`oCzy{W~k){a21K_NrA`53_T6u675aF!CG7F~@a8|`ntar=U zesYqY5^#7=!1Q#P)oDpKYsjX~+Qjz+pfXVBslIo@JDgBY^_?|UrAKBh2m|^SnNCM$ zZAe6B9c*B+8!5@ej|`}Oa9LLcmdkpy@osK17;;&kxxF30U^l=|;Mouv7Q2zUzC(8j zJkjVHZ#G7W_-rDhO|4ON-x)s;pnm40^j(w9RH;X3a|i=^7olE9XbVV0XiIEhsT*mk z@8G`4)>H$iZB%YSWhnDH5ThcfZJFB+G!KNf!%r-8BXxx6EE3(MqzuamSwd!*dyPlD-xA1^Zm;j!-yRha!=jSWMQy&4+=2A^>?mgqKSIBW0sTC9O3@wHeZ zUEo@b`pbVUHUiohKf56d&F)BbEykgMQI@zC(@TCcC*v<$=FA=}=a|`3b|aB;|L)_) zj8#jFlj>`-s!4{+(qpW8Y9iiC)q0(7ZwLeWSErloI^8HpG|lXT4cy&8$`-}T(y*kb0A<>+27&h?zDWq(V7I}0#jje7qhf@u^XO7D4 zv~mPx-n7D~IIYZOZg17wxLY9rt1L2nISQ$pROmM`sqhO2W1>GTY}!#OTpcpZS;P1X z2TrdRF%OqhPZ67^dOc$EAq?065sN>boQFij3fKrufRx1IFC4^9%mQixTBlSjv@Xg# zXpD`}x|!Q&(_AH{2pPEbAj5a0kUDPkp5TVxgPPlVyDNBI58I+v#s=;=A!QTYq04I3 zVwUP;Rz3YNNUy5(pe=+jpnpLd?z-6`NCa&$HgLBJDO(gj;}H2Ets_-tX&pr~j}~Jh zt)snaV7xlWFFmVn{@F3UiApiuzPYfa)}4 zp*bC?Lq(?vRJO9x0DBl=7+nmM+~T!#WN zx?VOnSey7+BB(4cBkp3;QBKcEH>yq#(oGNsbS_BWb&zg`M38R52L8wa(ioC+Kt8vr z!1DPXZM;6jXvpVw=Fz%FN7>wgpWt&RGW>Z1q>c~WCHU~{VCw8~lP8-Wph$%7lGP8b zReW|Jr2!auhr8}Y_=_j0ess4g^$^_yVL3O6M6I~`S@#1Vkv3DWf?Jz$>p+G$(yPsRT z_y`xN)kNiiiquo69#*v;s$W1D(7#aaz!Zw+UQ4k2b%ESFEgaMl`+-o@8&ruv* z82uL8cyJ#niSuuO{?E79Jdf%*8@xa_&8sMqNt@a0ksaZ(|LYNtlKDMr(FI9faYlc0 z@I{Du{lVh+`a@Ck(R}VRbcfVR1@0P;EiURdFR`506fa`~Ur9nr5c@_uH&Uy$Z>z5< z++!=OHZ>alsCvEK^Ct)cHbA?_xZU##BpMB`Vk0!KA!UDJgW{_AtMeSWx>{0tWgaKP1YK@NCdyt6QKd^xhEFmQ|{l#k@k*d6a*!wEB z#6F;)W_a`F09CW9~=vu%4u zoh;i^15|VYTg8hfAldXobt|Yw57def26Qb@w>eNNK`c-!V*`KVT&4~B=HjTRdb28Z zfN3=qT1=}`=AGU!9%5R9Wlb$nxOMmiK5HTi&00tuA9_si!S6wx*(Jr^O4+Q9AA+LRlt?`_;Vcz4q_g$ zLwLJ_!Wf9aZY(l<@*k;VNB;?SoDAGz(+D#j#iBPsmIqtQzK1=cWx49VI$XU#**AaL zj}AuanGvb}Hc>Tu@V*RTz$OUZmmR!GkO{L_8|G=F<(ZO;x$YHjSoU zmt$zeHl2C&*^s!QW(K4nHxn7wbdfr8bePl-jmL<=kWnXdyAA+T(}kbF z(~S&&DFCU%Lw5;0^ca6+%=DmGkV>*N)-papjTLL4@*u_PDO6=u?4hba7_bFGb)ZAl z3yDxI#0LH}E>fb3Pf+{3n8j2DwI$NA)Q+UgqsHh+?I`B#K2pby z{uAst8uLqfa;7_1F-N0R=#G)$vDPqNXmWZr$W>hs)jQSHdDwBP)1!7ggaMt4+6|7{ z36SVK>_lwfZ3LvG#+TNr9Dvo=RFbTeCt?hPjFvICqt7+WoD3Ndoq{Yhry_NT=*%LD z&cv#x`bKjaipA)3S)O4nQ&WAdk4JmmE1rY#VduvDiqT8@d$9w2T{S0zGG{^eT8~oVh$`+3s@s`QwXKr-$nj2m?A7uKgUY zOCb@i%dmlOwjgyKO9x;%Fjr6uw60XKrS)yfJX(y2w60=qudrEx`3`=A)78jAa}83* ziCz<&*u$pvR{KaVvpDj5C&|4h#l^T z-3W<@-GmK1vyPO+;t8zE3y9sKVoU5+T6)A77>V7++|FHb1?GDY0^9A#LURXFhmEci z*tq`NJZt>Wz092`60+~h>Ic>;UjLO+4P5>7uinbMp?jrp-K9!BTt9>`pm*VFbGYt? zM7Zw320qP#l(^#c-^c?{{a8g7)lX>Up<+NpbuV+f{wrg19|XX3KeEs~fYf24%LFF; zj{dGxlX(z71nQ^Q2+hxsvSIEvI+ncf=cj7lPN?cz?)1AU1?nMH>Vf(>gaN$^)UgiK z!;lEnFR&4sN07##`aGCNsRmlVRJo<~7-in6J)Wid5Se~ZSYsJecIZ_*F#mR{r0OWP+V83QcvOfwW{`T{RYB-Z4j<` z4%ah~2-maN2+eayiA&c*DL>%#TPavxzoV_UhQr{<>v`r)>Yr6jH7`I6e7{E)nir8e zd~~0{$D!EXm0gfCFQG`_UY6A#tX15@q|`4mouXDx^$bYrDP(_Cr5>_BK^V}xkaas` zuRtPXuVMo$sz~D=R^o2tOU@;)VdY!o)iZ2a&eI^)TS#i+x zC6zqBh4Tr@gy~b64Z_JP8|J>vVYOGUhy}f*1Q# z6aHSn+9(jLb!77;Ytu3w#k^GomD;4z=U7ec1+1bK<`vpAlMCIwi!ZHNzm244`EAT9Jbnz7{5E0Uq|a8TYciXn z6f8GG7MjhGI+koqKP*R@El?nqTgqlDYg5H?puZ-N8lR~q;nV-#$^O>z;IZ5W!hlT? z%UvAH3?yQ?EjI8`d!z%iggda@UV4`04y?js$xz91N9HwHjx;-=6fAc}hQ(N|Ea{x0SJ)Oz<~<1-v@<9qiDHb3->^ngIIsR zj|`7tN&Lw0SUSNid+Nux?DM;|4E*`nanQy%8jlQrg8-=>8Rme%z)RfV=jlU!O0I%G z&U`S7c@95OW?x3iUF=RDtX9=Xv1g!h>diV2Pe| z$!Vl)O?)=0`a$Rj6<9)ZY2y)MFeKE<+@6TS)MW7!c-oMKrX8unLw5;0^f)P7$+l%H zg?7_{VnNEua-Ow}S7l`KT&V~{#_^q*kIrvYYEOc`=PtH`9+ zn#2!3%ozBKv(*=a>{+Gs7iSl$MvvAa2m`tnt-PbP7!uK1f(<+`jg+*I*>g}<4?;&t zZV4^LwoizmkWk3nKKD?nn6Kg&&>W2ne-##~Lqlf?G#YiYCYxhXAU4Oz=6GwXQ2UBwzegeYZlMnR;$K%OJC7+ z=H_+e((kLDty(=u=Rg?Hy&!GxAbkT8LHZ^(@Q^f8LW<{a=K`G0Q<>#-KFvH%42hh+ z#oW%{*4kVE2~b^#41d2BsY6Al2~=Eku}j7mqe!GKk=3QvDqeJvQf*NFIFov6V!BL~ zdY~?cFrasV`icW}1tbD>B{o9yZKMPhuYX1!!09R#Sx(=fmB)zzk<-=8?V^hf`5Fj- z=~`rXj2fxKM3)In?87s9vmLWcE>||!p;)M{m*oxCGDa0E*1**_kJrblsheCks!|Wt zO%Mk3E>yQTR5wGSn_RbG15Z;Ub*QR60M%_OO4iD|TnvPWzQ^27*>Tg%?GOUf9mqm+ zCsK!r?kuM0HWz!-p~do&viUxWgy;vdy31O{h@?~l56=kt5b4rh>Z#uJLsgm##@r2I zK<`2{#v!@~67{AZVFOF%NFAao59TLS1E+gcZoAZdlzCl>QIXgE%x#ylaX$b7SUrdg zk5nUdtmrq= zSn~?X#O_s@y=Kkg)itYC16+E(o^Oi1 z-5u#yg#N5*J!*e}Fra@?yV6m69THJ{0~?`v6Dg_1CrXhI^A`2M>}@GnX75nuP1y{L z%>K&Uo-Nrb%-K+^E^l$FnUe^<9T;^VYhh?1)}v2+5FSm#OK{msf{X0i?@%U zp6Xxkt4fd52M`AIEmDCa^&uo8^$|8g^D$DA(s_4WKM4Ix1(wh!wDE3EF&Gm1lzDXC zjbI0%BH&p88NSVf)ZwAK1RgHe;`Xlw<4RBzqLpR0inWWM%8S%$V(Mow_B#$&RlOdk z)gTPm0C6fiPOC#APHSKzG<8VHDe+>2oR~GK31VwW#S&YaGH)C*HWFKhxqWOy!G8(A zfoxr5_yRprhm4*R$n;0#ik-z$Z=oCS^sJ9^QQJVK8(Pzdk3kl@ENPV^-_ce^c$gl;=oZEvmOD?KUoPp#JM-_L``JE&F< z+l~+hbT4crhixZFgl%VR;6?{hV$%fX4lr%rO` z!hrq->v#ui4@d-SPi%x{BvQiCy_9MnW-ls&*51;vv_?_p(PCtzwGVSUnKANx@e{cA zLxu%=qz)JTCUEh=v#B{#GzXwWunv^bXloQdct)Mts8W|QR8NsQNOgLo#y}X*xk!z3 zq{c!bQsc0JKevmNq~g!;%Ym6dEnqrW#TL^<%Di#Nn271i%&bvRN@kciYQ zY+xN5DM`gE2$2U+Iz&a5(rj9Jlo${x@t6uqeIXwT0Wckg43Bvub(rWffr+DUbk~Tz z8yd~wC=;hSGCRVW#WR)FstwBHWYtrk=Bic?R4ar5-3!zK4pbHrfoj7BRJiKON+w`W;V)bk+$sys40=#A8&qSFK_o@KSSx0wJ1;cIxS2ZEH4kPXs%Z>k@Jj0!BFGPeD* zECxeD73OwgVz9mV2|Npt;o)wi4iDW`?oG81`1CV!_v6Y(*y{D|m#Qq8NVPIEeih~o^^ zRuu=@*P9sx#+62SI*A z_TRMj`XliSZ>f7)d}$^on~BM03gt|>r?XJW^!89%%v2T?Gm8q{9mPfEVdh*^mg2BR z?An~iapK(bS|+v z!2-;yQF(sERQz@1UN+!TmD(|Q8Mc$N)aa>hOkd72@2fvoK!&DVi43dGNZmlBW3h+D z2sG^r0KCf9{TVD>D{gVwd#T%jJH;65nTfj_IXKq3+APfPuFG&NbQdd`CAmrl6=9}ht>YHwFu~?B(VvjXG_{*TPel%=C{yZJ5-=qu2LUST%xw00D;0UC2W7LzN~* zFdLcfsbxGx)IGn>+>KK7ihE@JqsUq>>BK#PSbnS$ze$Y&D`%^I!rY#9*p6iGg#^vI z4_RpLN9sm1UFopeysB-4c|a1FZw-P2_doL>bW!b3k>Lq=r0m6?Z3ott0|spn4a|pB z$IopY7?=q2Vg3jP7;e!nL&U$3YBZ=GQB{xHs&u3oaFCc^LX-X;lSLXUn?|gUBX^zc z32fszcv&R%(nYOtz|{jxEdlCxMA z=GXz&h{ZF~f7a@^%)l=FHz$PjbU<{^$$=kZW8l#J7Ud4z@6@E{|2LatUO?^WWsE+( zLw+yUeq%>ZI)ppqMVd7I?~pPtp>piRmyzKkDQZST5Ve(9YV5>6O8-w*Ur+khnt#nJ zP~r}GRmy&heLLhel)D}BXKdr^C$eY=R6}DxpJ{ZjOUbWx^rRM|dxIuT1Gn!@=zzdm z$goze+G3Y%M-2k+NdK=^UvvBCI?Mpb-(>5zybs8`D0e{qE^qHe-gd>H`5fNNKVXNx z$0nx%{!^9u%@{rDPy&3PCQU7$*Wm{+1Je(Yh2|qUXb7TKFcgnz4wD4WYhMkZ@=nT}i~Tj2NygJUhik%B_wYM7dbhXFo^CO$rh$}R!qliOr4OZ2>a(A{Xr^WRoGw+woJ>Q9Tp8%RQ*SXzGU{pjmlf!2fJ_Cfl(v%M}}U9fb>$9KKJ7QH^UX zlgTZ{EBpmssX)LF*C|{=M?{%=_q0hp;F9_L0xr6;?d@2F;#CiJfm(w%AN3%M^_^Ry zDYU(_i0GEUUuTxJLm#_wUSWQ(!Gp2IZp^0>yK&`)9$l6|S4iw(b`ZGBqV3chQUlBN zPqRJC-8kL>KSHykOd49Y#o+kN4up}%ZkIlK?W9^#j?r^5J?*T*s%xRa5MaL91sQJZ zs5Egc#Fk;cx!Vq;U8Oc8QsdpoWGCn7AF5K{e`CO!*o0xs-EB1Y)P@-jDcaG13~!(y zbt9E7F_>{Yj4yilz%MR(s)v&qVeNO5{qELYPX>F6z-B|Lx~$nlMtfQ#ds#D*KL(l! zBKnADFR4bS@_VbQQMRgok9K?L!7wxk*_pv21VTaB6rD6mTRcN`tY%6wd8 zjt2z>xtW)I$4l-v)>gpwPCz-jGw+$$gO@oN60~X}GJJ<$=JpTy(2=@w9?u{~Cke^P z-AuB!lVv-_+UjH?sh133sbvRodH=LIWsl|m( zS#?ELJEGR*Ix8^Uuwa-)S*F8u^GgrP-TYF*Hts6Pq9ITXjR6~wo&(BK@~a&^shwl0 zqC)$EepPEtFXVu?5E*VfNy*+Ltx^IFHX|C_i>126ss?{TH)l*o>bLLQ8q)t!D95hj zGeXg6lUWK8T!+Z;i6PnB?nV#Q`;8YRsdFrIv^76Q=Equdea9fB8n?gSy?LA}I6kU? zU+Vui&fUxjsE0gGRDEe4ZXch7a<`AahHbnsA&Z7UH8cinR(cic?BA8)=_o#_(PnJV%lvUM=1vrvwX zgOjB}@hP%78$vYp9Ax+wk!rAAhwkF8)9>#7rfkl&HZ3Qh+W(=G?SJc3nBuC>noCn}CX^*iLgD|gpL?iOOmeeugmSbp(~O6;TS z)r#~!a)ay!l)FK8quPB_)b8H@t9An}38qKY&1#t+%jik-+1YMUp}o89aGP5pL}$AV z8UFIKH0j3QVcdEp1fUSaU_&&QSD3qPgYHp-eqPP z&4c>g5L}EULe$EZ*#|HtvS0j^rOm5iS*a^q$xm)x1Ap0NRJjLt(eu-)S0ByKXg7lo z^Hi-fnujR03%-Z9<>nW_*>OT-KjoXh0cS1YZrVo(0W8#k6JA) z_-3M}V)Z3@ALy6TdCckrlkDRpaWwJr>*G{#%dgX*<(6Nka9hi-J79P8xBS|-U!o=0 zCs0>4gy;_uJP9$EU|HO^1UnP;SD{J7_Y^eomne{ef)`(&yXt8v{Msty4^Ho=->_(T z_R}*^Oz)>>DQ(h&f`{k2JL0|c9OU5tTV(j-5J=r#VuQ4o(B1uqL@HS`KZgfao`(+F z{(_8uZ;kb`4Bmd5YnKDu{g+X}F*q&M?TAFTZeG<^W?qCj`{PThrfS(69WJPYFjx}_ z_)ghzg=ldeUE`~$)IH7iGRkqwQudgp`gPd68P`tRD|6#}Asutumdxc15c5ab{|RY+ z!ypRn70F(;b;hA_2JY)Cqp-6=yFmDw)c>8*mpE=kJ9}`8dYQ1ybek8#$AOn zA9%@j=kWJPhPnk>^9Bm_6y2NH$ZyA|=%$>rqPs=$7Ap%*wk>!YKSJ{kMd)Z7qoYr$ zt}_$Q?SExejR9NS*S^!)TI__s$-b(6cGOoneV2Ak13CCRG|;o&Lx!)6sltXJ^2%1K zbESJ$8=wCBC(6;W-k0qM)>b$Z&BcR#S*V*2p}k)va1(E}s7A9Y%rF3=dRJ4ut5?^%#=!NipQtxT zR#&I$)~v2>t%0lCvcKwl8kKx5+firMMpa<3j+}g{+R3{5;qSpXezP9R{Yr6@r_QX8 z0#vyHGJJ1LwM2L~(vNhN^v>P3G0XiraiBI!>dYo6L#>-4!)-k(>KR;gip}*ST`L>F zTDL&%PEEJOHg3PkqM?N^6Hmt@pj|nf3uGpCz!ko`mNRB+nl=V>);A#CL4O-r`~F5x zId?^R%h0B&cGcUW97AzCWcV_es%i)#e{7wGBG%5DS5e?*2g!mc{2gVslQpwrVrTvE zo6{J$@CT#Zg};l;>#ezcQj}ky-W39b%gWQ?4w1HBzYBLLZK9hvtZEp3BfR0r@NF-d zHUv@q^zOn7l5sUke}vVyaqXrbzTdvMc1O93YY&<4Y0b4*Ha0ge+uK<&BOya*tUn#v zUNZ1qxX|{dja_KQ!PpMX zL|H`R_sjaR|D5L4yYTm>HSMmL-*1ln!%#XbH3sy`swN?KyJs@C@ji^K8(Ox+sKXMezddm44ebZ6u?hwwvc4%fwzadbi zm@S(6wQmgAMz(tvbNf_MttOgg=%5=Mf-E$%k-8H#xOP(^+IDnw+wYIa<_|G zv5milAZz;qS!*lLfQA*i=M`I9O&e_*1A0vFlXjW;jUGMa0_~Fyl=?j#4;<%Awi7Qz zpb&k198&zx{d}12&cc6qwsJ&bX~6fDk)p0W$m{TcmF1(1-R%^JKv!AOuP}NTckPh3~_m zTu7T}ZNgQz2r|UG7#aR{fy^6%$Ol`2;QEX2Na-JC_3eziR6l&*ef=dwxr^_sGC$gy z6M%i4XM7ePac(uoK!6bGBOT(gGVegr7r>!IR$LUO>KD(ll?Yc%L|{qUpd8?a}f z-1Vui%lyo0^Rx6LF{Q5HPpS0En9fG-_@9GqEaA)A{+;A;-8=zz&+hQinR<@h`b=kT zVXiY1z4uf%*uHk9VV%J<+_`MmF4$FUT6$M~Q}z47jh=Fm2KKoswI3`^dpGBy7{t#< zhQC%I-3EOqHm!>WFraAp>;hR_7+K&-evplXR{$4D>bJ<6lhMT}$A0HcWQJ%i!EZF; zQe>gIOvXHzH3oEIce}j<&iAr?ROWJPeTA&AwAOlq+t=(1fL-_7(!VOwM;5*7Cg_af zJ1SBX=4x#Fy_hf<%{9zzFK$;j*Fu1BzKbk0*CBPim@ea998D2!_nPai)eW+`(OPLv zavE{-qxG~MTy0+ezezRRY-_NS#x44h-XRA<&Jb>8xf=kt;RhB_WfGlJ+^!!3AF$|_ zb=`s74S+kbjlWVWYx~k=biiusosZ+y4`|XD&|$h;-z6)*&7-GWs&4&5lm^jp>27R? z<{s%c1gaFf???UGHwJ7I+xcVWcAD042~9FTfed@@USy%U52@R8bfG;L3~)5MUuF-) zW@yBN`r!xB7&urzMY)6ZGnqeR&67u?pF;>xbdU!1uq=EZ4%9Db;~kA2fec|jiVWWi zl6gZA`Cu!&Db{t2$E5$b)wdn%3H|VW_r>=l%3XX<$^2K=JasgB8ghh4AL$T(EhFEJ z3-LF!;gEg?8=-kt$_;^P#6Ebg&)EEys@~Cv?P7=c9rNm=(en@h(+kM(X&a=jH_%T! zjuQv&^wH==S-%upqd_n0haXMf(dZ8-cg+7N^FLLazoH)lAC2ghF};f1@qZ25_>8}- z8(I#-gqNP<>oE#y9E><*-BdKh9jVHAH?5oRnPoFLUE_wC2I;4HRRCyon5dNkF;-9IO~`bg+6`7VktBe8NY8a+d$Agnomt&IdUO z{*AePmzgufyZDJF{2f_n-b3p81YOuZF~FhfAJ+PxvVPxM*E&>1&1b*8m>`dHeE z4prPGjNv1dC~Xi9!F+<>2!p;*>btJi?2K2g$k_rW$+3!{`x##idtA`&(%dQMP@Ut zt(D4>)>b|AS?=xW!J7qq=U_=Dhhtq&uA{D;EA{ew5oPR5Ha@*G4^RvI@JCO%T7&yQ zl{U5P_Ql#~M#COE?I2`$tXY*ce9_7f0-@nXNpx~OR<(|cYULx25f2`C#!KwSWvk%6 zn1FKhFWg5T1cv5d{6s@1BEyr;vbEQFbW%Onz-D{cEC+Hk$<{epbxyH$F0XMM>}MQi zrmFI3wsJcQOxKTe$72)#q{|9-!-``)|v?qrcT3CZv8kNo!D?#%4W>}+|nt++G& z2#x4$ICBm8n03}3_ZEJd`=;hgWsmzHH5C88_>Fs91)nd8D9U~Rs`!m1az~C2U}(cQ zbv6~uxdV|3Gnj+`-b_40Bg4#+W>C@21Z7SZT3dt$cG~rl7N@Zk6j(%hP~a4yPc`() zE~f*LP#H7Gs;pBO={$nUO2kQZIR_yQVs;_G!SX`SmwX=N0+O1rm0eD^;Cl?-jICEM z>AYk4zJc^0pA&kYp%BM1=GXp=$?qC7KhskIZ z!A!ji*&V{TRF6ZpXc^yR=%=E!k4vw!mzpo*{Vr4i)xc5jOZaTrX*1 z;tuBsqz8*SQs_q|(T~>4;2jQgrAWsh4B9^yzp>g`*m;e4x9@b=BWLbCxcjUoU`Aym zoq%!%TG|-*9nxzok(+Gcd{-pX@-#JHt{VG2;@B{K==mK7B&hy)1UTbI^z$Xp1m#HC zXLe@fL}8v}m}aTp*GrnsSnWSxdeHk1g@1Aq{}jCp-Yha(>itxNLGP#GHxB0!cFksS z44TCs6B(XJ2I0J;XiM|y!cTMG)O>}MdcEyWF5= zh2d9ChPjK23Eo&@23eI|B8+q%L1mW`C)F%ohB%0MIfAnLxzO_^p9i@}nO!iJD+GU~ z!JDyNrI&Qxv3yq}J;-;B(62T0%t-t?#6v{pkrnZJA*HhkBHln8wu`^OkFvW_!1i|lFyWUrYtbq@I5TdM-0wf-JqQ0tTU4Uea=^V%g}U%xGffIYq3?L2zhBK$m+ z6ZcP(Ok;^mWVQQ@D5b?{YQ9F={R2|N#Qn4QU3Sk2K3@`1Sl9Da@o{Ji;>r6T8MbJ3 z!C-8<7XXJMdJzFuDB>BcpV?YlXxn=$hEUm(`m+eU6cGT6FY6^OVq8+MFg+C2tHOUR ziT{@x_{@qTzK$>y&l~uS^Sy;p(Jf8u?4IDTWLU#>bW49FGMruvGTqW!!cTMD)O?)^ zI%Og^|~qAqZz z8GNM3Y$?mi2!qa7!EY=s6n15mY(2Q5O0G&|I3O8h3~V*wr@3!xzCl$ohtyCdSI2MM zLMnK891-$!X-&PS@!^VOIyhd7VX{glnR9C+6=kvxg0fo|&rl}JY_?T$xX?yKXke#a zFIjei0@p)&P~b?Rk23U%O4NWjXpHo;8XGNybQVEldE!)7$wov$$T0}YZhc|rOFj$o zP@_t2AovXp-m2tAdP!&9SPIf@jPxMgCPLrT&?~CsSj0g(($7k_nGn)h1nD*>4y)uA z_yK>Ufb%6$g!Z?Jk=@q`nyQlIiAK@HFs_nY;}!lsJVWu5{7|dpw!+>n!UiAP>m@Bj zTqSovdZ>{*3VmD>eJ8zCjA1gXWSA>O8ILfid}sW|!b4%_3p=4zj*hcq7m2f}Y_AOu zQ>mX^?4MCAcH_*N4xGEfGhFL5g2a(Cwq~ZCBc5oY5(P$1vjw(`vP;X_)O@2V@UBX2 zDXcUoGj2D4!9;gQfHjQ5$MQV_|6A`wQg&kAhCq z&r({6P@V&oCVAW>{7xG>HAA^t8QK{cZNhew5d*Q>5WwAsXE1qY8kszBxE(LdRJx*J zO%c{q!>WLY1elEjxI+{=je<2QCB0F?l7SrZs?Vc-y;wSbuojix{ee^I**{PqllC8a2$;|h7L_CQ& ztl;0r4;%qObT6{^b4 zHU3!Gr$^Xe=nTE2rHQ+-Gm#!D=2=2NJBfadUIy>Rm@8#E7h%xX+|ymeNot&n#N6YQ zuGXnMOiaC+y!R+RvYRcw^Oa{>;HKtVRiS^XRGaxva^x;R0`z|&g0lOWplpp^5(=48 zF!WcnfQtlsvB8$^_Q#`KqIc!*F2(P(1&{!>bs0l{Ex^=%cR5~>|IZPW-4%F-@@Fnl z`2%4Cw(0+X>fDu>WkKeU)as$&6^C7>$ zJCt%G0yq!x3`${!ky2`OSEwG?yTbh`?k0gVV*Y;Z*mE}<0nF_B!ys=#1eQtSi9B=$ z2@d_6(Th{OXSrV?76Mo79*o@Nw+SU{Z+ApHEN>?|cj?}NA2^&^2>H?zG?>N`Gfr%% zzLTj#*{FLL@iH5#f5TX7f%o(LySotwE#89wPDeb07Re8^sJ{~TszQ@-g$i40?-fR( zZ^oVsZK<8O7}g1lg5MHnd*d8>=k6mtY%VR&6K%2W!-Dj%ZS{T;+H8OK0DkCPF0M03 z;6I4?R$MB`)#O|5?;aw2i9{#P)7d`8J&a#PWbPipkB()ukM$mDdE)X__vPZW(MJJV zc8}pHLXxtN)$ezRinhHzE~qCMg~I2_d=o16=(^t{31!7S!m)zFcGo9`m$d-njhQ_~ zbQ=Vu2tSP!l+7~;uz^~H@+F@exw5kHHu|ifo--(2CqQb+gEDa-60dN`p~-CPnbwPs z0-Qq06Dg+`aaKJJwjAr82YN=7uu<@jqMa4x-pH6=5QMLz$lbk&2uScJ1ZDSUrB|r=2PV&x%;uWQ(^KUGX2o?D%!_4uAuOSvJ`~^YTy^d!vaAs)Dgbnl8 zVB0x+6}@5f-W0vR8ok2MaG_Zf7*#2~g9z6KV4pb8#q>8eyam!|7T#7q?^r$<>ZI&! z;^HYp_bx!Gt@nt6W9y^ptvb2UVJjVI2J#W_s)fC;>;6Ln|ef+W@tx1sxx z(eq<3>15nk{}EnTb?=V~`eVcl4`;M~f*1HI8HEZm5^9`8)8nCcxe2Y4CmqPn*$!<& zhaGR}=x=;i~u4nCeAKVa8s5^e#+!?G7dfa8|&43Od=1=LRNE#$mKt=VV5NS(`pOItFlNY+pl73tC*f)V81{ zkRB{(NpZi_e}sE#E^DYuiCN{Q(c}| ziNm^Ssxe|!V^#k?Mdu{TTvq@Ind^!q9rtH38MhKrV6ZDAD7#hg3S zi2Iu5zpC+*w1QqAcql2i7p`|LLfRU|seGSrgLX5xfp9GcwG*qZVY z+VEgzw+4vRH2gJ{L&kKXBP-TIdNBO8@w@ES5k|h`$&%5mMXoEL4B6&~WRb&}8Z2@I zUf?kof}KuaO=mby+a!&Rl3XN=ay=q?qvY9-YCn^>Rqb*~HKGC=HMK{kITD0qnxmLO zi|R&(m}@{HtaCI1Z1u-8SSQ5@*2&|2;^uUaqG>d0V?=FzqgEIyHp-N`NL$VZBDSF? zHaS?%E_VKSY&Vm`;pFkb;n5-G4Y|E={SgiW$4TIQeLZcRI%&Hux@QR|dv)36Y&z_` zcDuTf*vQyHWL_I1J($-fVtmtoH{;Y-)_})~jSS<>56gfzV`?zq&GAxpTL{5>5NS6R z3Xjc~QYOrIOQL!6<+<7^%&Nw_IE~jIj4IRJ3PfbOUnlVvjXzR^ToaODxLYH@BnO_s zaLIl!+~vLDR#0Y%k1pf?PAn+6}8=rnwEXc4zp6a-G#r0$H!(L zo_!Z;2uFD>N~$gB1f)Yy&R9fYfO&L|GI}RA!eHRYxpiG}zz@hO)O%_AwMY zVwuSi)AV=1ap8w!`wDtL54{6;PzxL};@b?}oWN#nI&R*G4)OQ*rJ?ib3zrrkq!Y7*IjavsJl~$nCf~eaI4l{bv>pl3`|vjr-G2`ZwE7oyPgVSt`mtchZ2Ia zI|$EEgDFO+!QAs;cU*kAlIk+z(?q=6h-=ToKR^s6PEDmdrXJDm^|bd5W)_`p>dh?G z_7riqAI>SlBgcC!Z~<7c;$Dk7ri4rTBDL1;k-nk)Gv*QXNDk@2>iWcS|G$l6YA9>a z1Ij+5@FC~1ekilGZ-|*2nNmOC^u(p!X0WE9;OTrw+st&FasDqHJUd3Bb48f zKEG{(;fIs(Li1|(qlC**c(2jA^uZwy_#uB6iY_M)5FKJ?AvQ4sa5kaE5N80^cjw?;GXUq}N5|5d0eD6p%aS?z&qKW6 zea0At{zNqV`IhJ71(*FY3PqA}w_Sh)Xq{rlRUo+eFBDd`3K#<%@cxW=RlIl?As+T{ zF@mzYL}c_--$k^jTFu8+oUHE{K-Gj&o2y?g|h^IbDeWR~9RW{2a{z0<(DI{iIhbt808# zJlwHbA@LjJTEV1MV)STx*CE}vbLmoc*CP#b-GBh+&xnwHiZFW^ADUlVv#bfg`w1%<8-30ZP=q7F@uJ0yvCMGQ{Wvf-YiltKWwhad1&$;{5U70;OivzE||pcHGqbLR7Wy69nhW z@5isQdqD5e0pw&WF<<^5Q-?BN{t)pp^W_gS);!s%1IQmi3d;IX1eid^Gn6&C3T2JU z3WwzY^*cd5Zcxzy-DDN|^aqeXA(-DAOlhLc{zuY82arEWfN%i$-hc`RknhFcI)I!9 zkj&-)a+Zoeh5RWHOjZSd3i;EB<|*V%j!z-q51F9z593Yvf8tZtp8+H$sqtjzDbZ2P zCZyIkJS%|b3_z!lN8)wpwD{+lG?c>nBLK67^#Wt9f2}x${6)m05dMS!Q_y&Zq9Q{o zs)Sj;B&e4SDz(t#6~xxG+*gH?wcI~NmirpfX}EvE56nahAzJ9cj1z|Y22+Qki#Lgv zG2Fj0Hnq^>EyO_&ZzI4_K6nN_kRR!Rej|T2`MZL8&!8&KCXc6c#>S(_$}v$GMZPce zYNN;%m?cJ$XUC&R7J@(N`~zkFp=Cb!K=LC1bu3sSyUBs%$HK)x@)P_h;QufVIBc?t zD;?aYh)WD5KO=mJTyZG5f%_c4G?e@TKROoFQ1Z3pQ1Wkx7rf6JeeB;66|ET=28VCi z&4njx15)&<66?;*jU*ToMa>Q-=Mi4kn2ZH>=<^c2>KxmANI@~rkD%-p5TSg@=SHqn z(xDY!P*4jQRN+m}W~?X7%=YInkPJgPU8q`Z>K4mL0OtG{F$_EF62s0N{eJA;2~%=?UAWs12OigrLI6mJrmE2343BUBd)@g3tnRyed8lI*M%v*{GjoXot>l zu2XydS%ST;hd0b}2!}GAP;}ULhwl~^=g7L|);=D0&KFxAuniVBb<0c5kDbAgbHjr% z(=1!3)X}W^M&$5yK_Ldj`qeqH8f1!b?h6N^l}s~n&L7QE=J+C$-3Rx zH-BizdR#j!wjZChZYAVev&~sqEM?36gQ(nBA$rTdndh$|Qz&;;1ZB6Hc+8i)Ak?Ll zn_kh@-P4cjHgZVDpl5ZVu3@N!17NlFd+{(SHUfLt(w?#Pxmi07IEUKQU7STF_T}n* z8s?&Va=1hYS5xD5=tGKiy&W_ARPCn1_rS?)Oq#Nx?|}nhCY>C*`FmszmuvU+;N+?q zo#;xG8#Y>~Awib{4{SH)y16xqeh3}{pX+UPxRe{E4uUxMDpzkMjr*>HE5)_W;5m-k zT*dxnS{-=n!zJu!1lU-CBRFxl*InAJ(|WrwsnI%xEff>mi~X&gT`&(!&Fho2yC-DP zS05ZFt~jj~y%?6f^Om!YR$Q??89TY4fOf3t#JMOl>oHT;*NO9yAyZ#&a_3aM_pq~u zcLhe)K<`OK%Yv_A6o*?A1we0HuR5HBTlt)Vrj1 z8{v0HZ>ufA){@DX*^QZI^W0G_cAFp)S#OGUv8-ZRMe~Eig10Wd7?)NEcbmbQ98%J47Ak(cIRE0?XSVD7$TiZ~ic5 zmDKA@vizTFmfUv6=JsN92V=AFA7!bsV0IK^<2+-!l-jqXESH@WU%On!Bi&ntVY!_V zgJNk$P-c7W3H`;|SPbX49!lAH-XtsEohl02Ne8*6| zb(u`9Ua3aE+-Pr++Q*YpjW-kN ztEXk{tAw-|MuBbWen|H<-lMtw5d|I(K!A<6!Z*`mR!P(172iYZqunGU*(#EgjbvfS z=#>JuiAcLAqU!@R1faA<#nzT~3eq7h{C2~LoRIuVl_L=NI=w-L}i&KLfxLwaIjF-scdePO1E+kkU+I!%oFXx>J`PbmYSM} z1^1Kth9KyjbNE$ueR_}F%496zo$F`nP`q;k#LIZ+rZcvxTX_ajP&@}Cz&U|sJ5m5g8Gszi zk$~n{KAK5GDXwDxm@Tej8C%7%{B6Xeu)c!;H?ZIt3X2S>uo9;IJwY93P$|dq@rbQy zyC(=GYrAttwtFJcsfd&C14|Wz5IL5aal&+ez|^7W;)le`nC{7pO*xiNK^*jODgszHj^!T->cb&9^)fE>-%LZwU&rCdT`g z&rtqnTK?4h5HHw>%qY}}s%zujMM#BJ zQQ-JfCM;LDSg2X6GA`IpUP8Qhc~`~m1a~PCQRJ5)D7(u=D_`;%k~ful_H`W<@u>KojZppp?Pe4kyV zEV4q?1xs*O3!V7%+Deg0j0==+>PxBNRgP4X91|C*UgT$0@zJ$T6iNYRGNxdZr;Q>DlV-(ZZK0by{tW*28YH z59`P3u@JViEo3shO>1eeh6nC1c*^Bi++o|6apOi%BUC_Ky~D1_hs18WbfSq{_b}2! z^?U@s%kEKOfSL@?~2rWM#}ct4u%#9idHYNvEzMF`M^{8m=d#x z#Cc9=#&IMHTb=qHTx+lGu-z4x6twmC)oaSsnwxg`u`wToZMXE5%gNl`6Z_SR2X|sx z4b!N($yi6Ixw`gtv_6;)<9KI!E0**PaL+Dop{5rsbl$~-`(0~Y;vlky+^(3Lo!Zlb zd9j0w^oQp#y+#_ipO_b>qG9W0pKnnK_ju8bq-(v1<`BydyL#H-|3{tbo>~NFn191v zfAEplYy>})a?&LpH-aA_Jv4$JOP!y1b$;}JSDnx%O)J~tek$E$wAs9vTHMc+%BuJ| ze&HBWz2`Nsh{gV|}kMd^eAw z&MVaU47HE}gRIQjkIm*6@B$u~XTDXbKWs@B6i8YVu^0;>9b#})o~eMY4v7$IVFYEj zh$vZm!t9emJqq;yz1r#)HTf5l{EM6Xh5t=iBlEJBJK+piLeekkrRRYeatgP$b=Y_0 z=pD3@h3g~mpR<#RB@$!ZQa}Xp%8_mu87(cUY3poiUOF1yE<^MdozwB9vRxKI^OXoO_`rPGi1U>N><8wnD2K0E4%%5g0ewn0 z=IZe&spUYfbLvzc8KI8FzAYQvsz3n4A9kei;s%ms5%4iPKV;gUmF7BFbzG0-VsR z%yB|5vuP|*1EI_kjl>3m-Oyk)Wm44{ZXYHX`&IhGH!|AQ+lY-tG%NiIQBB)K5OgYT zieH$z)qCU*CvOR-;$}=8ic@iO;$@tQTQIh&KYUB1Ky6zgz+5h#VF*C3q%+{jB@C!0 zL2YeNk)xQb#{Tea1hcKdl+K1*1O*UD6ZylpBS7$n{{&FMAAT->%OB3^!P)r3qoVOH z@$Er1>3HyKt#?2)UE)lRUE&uYr&=!Y9RXQ(_ARgmpC{4hiU!7q7B>!myzvePzoh7Yy1RB#6X$dtHb?sZ2vqcHK&?IB$;y z;lFo!1k>wbG>;z2gI_t{P(nI$oTrO;nucR&D`z~K>q8VW??+H}19*no&#Yh%kvE!i z0IVSYP?@{wmdy-hbFgKjX@!57Bx*=PF*8N@5KmZ&31&vcd{YUv6*CLzUNIicl@SHS zd<#L@9V&eL=wnt%#cV;v{4=KP4zsKdS5`+@R)v3>Y^0!YrOlC|f0U<>U|6~mQB_AP zy|${3LAviok~PpBi+Jek+X%|;J0fEGVz$y($*!~kat~GZ@2#-zyT;%5#NTno-+zLU zs8|xi#^c4*37)C_&A@(dZtd7@f#A3S*mV9n!jv~r;-#TBqTJtsG9psT-=&OkPw z4Y_eRfmAK$RPyFqYuqQ>I&g4b+xi<~FEaRzXu`+IOJ_Ser*_~jb!5_M==FQz{FPdoVDRBA8P*vx?4)#&O{*!CG8={x0CN#p5}iN6soFY?-S_QnjJfxJd90I)5(`k&8VM z&2Re}Ns%v6d~K00MLI<0{I+4a%Mb&JFGqk25QT0MGoxh3$!|bT8($&FD-BX#Mr;bK zW+fWQs|0qn2WtUx)o*J*u&Ma6u1i1~mkFpG{>>`3Veb*HYemM@+n{TdZ(0vc&Gk_m zbgdxx`F))@z1}!2orU>ykR|(x&+i+UI+TyOUl1?z`F$f}tA2j}5-CvXO$e~O0M9U> zBUeyAMw0R8_br0D)u5t}QnDI1;l~eYyCL?>j)V%E$Mw5zUWpCdVJ&>m#39AK!NZvh41{lOJ6)yqp&T>R^%mMgVsk zfIhxc<#i8}hEiU?1z@(k?qzJ1kMH{skJ7py0rth?8A^)`B}=OgP!9^~A%l_>oJh0M zk`xaM;1L6;VR(-+btr;72EeQ!zhi7w!+RVlVDbqBn5D-vh(fNCqT~Seq@bQMs8oT3 z?e$L!<{5)2orLwURSoYC1PF$AGPl&vhwVmFyGuXdZy6qk1=S4C+JaG)M)xe}RWZ8f z5KW_Fa%^;`A&<1t!3i{sjY`fv4_FBMM+9Z}0-m(KD7muiUKG%u45*p~{+UTbDY%ya zm@T-M8C%5yUqL*0d=)|2y@qEfHZr7QOSpgjBB<95s$wNzG(_QPPzeW6WosH7KyQdb zH3!gC?*Mu^w5t^kpf{EOUoHQ^9YAjZsAGu|IZir&-WDz#K=0s3v=Yz;sXUmPD*@j{ zQo;rF9#KkUj4q&!-TQc#3+My<=vYE7phmIlT|gfqUhqD5jOacR4etW_7%ye_38P>S zVI^RN2HmGfg@I7utP|)np=LWHGA|+^{d@?@Zhoa!xLYW& zcegAcm<2ry2ZRZ^IXYTMN$KnxOQgYKsAHHuM|5FCf`LU4l-;6uh8oB0p!>+>($0p2 zE|-6?cHLse(cgCFk`mJF8Ud-v;l@DruVd1}9@L9aNVAk+3wLgp36hv))*Frk@t@2sCHd4UM zItVbmDl*14vliR2^GVC|cp$(~jlvB#>LWzG-l*Fuzb`|kvgp9~xNt62FC_1P(6GuGr zsD^=VLktcg+IG!z1#MuwA_aB}oo?z11 zkAY&FE-B-515SS6>W#{bSi;kg|FqVFAY*@SGA7?~?!`aEB|Qfaz;o0>O`T9J(f(NdU*BL0^s-ED##U<#Wez(ldK%m3@LgL%=K@J;DGEt@Id z&3(SKerb-@zl9>x+A#ubw6;V#te@>qKP1>nl)i41v}T30t;$D^m3sjEzhYvp3GzYk zttI$2CV1h0Ny3b^Y%5W>^P*N*%l3+_Z7n+>Jz*_7iqbfvBx@n zE9kqz3$>4+_BE(z3_(_7FVud5+23GFTft2UB}LLiUZ?{I5S#(q04g{Gn)rLDi$J2H z@qVZSLA8oYU=pI~5@2%d64)L&rCkDHwA2d7vYU)2Kc*Dx#qfTpHUYF7fV=>ajJ61* z$fTi^*c1R}OKd7*t9SuA5RdZeL{N4mJVSYrA(dCc3viI2x(uqq3s7;Oc)|-%Y0be4 zFijMyc>xabUVu-7T~~Mkx|M&AG;u+lNVq+vFp76GY~I$pF8@lgGIx80cPT* z><(d6!V6HLLHA9h!ayi+)(bF8sM*HAxL{vdCSL3XsHFWZB%;U+ z_230KTu?_CRN-_eYyxj_<;N+4#8l--Z9SOQ)5mZADNyCCa5OQlhvlhnJ-xW8j+2Mj zpr93u+%AwhP@aX+)rk{y!W9GZ8RY6C0qS``7}M6WL$ES;lpt&#ai{{iqk#lP9)ke)A&Y{|BMy}U7^Z&F1aSY)w?*eWMyGU;`P-Rp z?e+i%N#9kfByrzkQpNc$@pg&hm}XmlLovAH5eIfpKu~rk;u)$sGY(C26Z^n_w!GX) zmeu!_)ekJI!Wt8k~g)pqMV9!=!sv@5u!T{kxm=q`Ds?6vIa3oce+tJLzK=mN`={BMIy50^((Z`5{0vkg2peEO+(l^ zc@7~4U!lEIWc23>*sst&PdWU=a?lE$`ub1{>+8qnTKaX?R`ks^qXS1+RqT`u&<*Z< zP=OR=I&QtfvhANLi*%91rh5U>L+f)Peq-yjF!Ci&mYl|9Lmj_JKpC>l5EtcqF;jzE z;u5@+-K9dXqvMmJ(rhlPO02O&en{?ehE~0T)b8hqgVkJtpzN;1GgL2TC##8F5i7uO zYN^y+WrVI4p=*p#VK5A+nvD5oJ4aW`mUD1~8JA`+tg z5<%JBgl7b6DJVyPFN~7UA7$c!f%sh<6x!Vj29egmRll;rwBJJ(md5 z5`9J0SAXng<|&W(w72sGZwF#c1H402GnNu9c>guhg8|-&-4=S~9#LXz(E;`ml&TVnns;VJP~C>dCCeZizyDRKy5s#0q#Q99btvkcSo6VD+MhV(pwvil>R!H}3?%8>FI zLz;boxfd*h7nQ-EEQ7*7LJ3-=BxvzC3iz|=z2xatnXP$QNon22+IR)&8Ew3ZNND3V z1ZDRZQLs?}v$ICeF1XXYE)CGVZYXaE z&4Y^lIPFx&19#eoB0%a|yJz-y;K#^ZyHS|d)80A7Jm6tWfR7!Vj?#@oQnXhKF79^B zZ3ZGe-CP#gj*1%I4b7_D+`xeG&Vv9qkc+&vF=RB^#vBQnUjY+z^BKeQi{S-~;lfvhIkaCa ziD=Z}>->V^bs^7dk#&9?4>sV{n5tU2ZFS5q>UgCu$ZrJ6v66C&DrcQ>^HNJ!4<@cg zV!87kMI3tHj!7&Y#xrTs)M9^2Kkk~DI()>WNt{`$UR&$LNyb*A+PW~(Lv39|yf6A6 z;GJ5_*0aULNrw04iK=IdE0y(Z3H&O%CH0=yw@WRZvtBJ#m1<*&(z9MI&9FuO#_A>K zmH`Cn(Xt3|sXCrvYA_o~8(#u7H;_i=-0Ft1hEUct zl!B#Ym|aUiYkMGmuEnNKcGpo#ZFbj1I@pE(YM9j!Hyklwcmx96FfMdsm|3M5)@X_q z%B^QuBZW1}uqqC}s?>3V;6{5mbd6xUqDqqYypn74-iUPY&M{;H*Ns6m1Xv$I*=-;i zCIB-{2|(vQXWKUv@J0q4&9)oQ{$tk<|27unCLWTlY1Mfn|JByxD&~!nOPu35rWkfi z;y$O@!LFZx&9q-(G`OkwOslY|xe$#8#|nZ|QJYD!%}uhfE|uaYrlPiB>QE*&wj^F= zDrzgnR-KCaI#N&$O$f?vYdk}vK(0_|_C59H0&m)PV+-Dv+=wdXivT4W?AAWqOkd5KON#VR}>lG1D8<(Az!LwSj6C(`!dG zO^?a3>2(cadPP8%-4r})nBG(YbQnN2)9Yl?P)e)>z-);f#MmmP*M)eL#54rhiHm0_ zFEW%YFPdJDpn46en(2K*0L}nvm|h=KhayNn0JDM&Ft)1cO-BltoPhv0P~#ayAy-LJ zXnHdRb%;ULFuiXIW|qN}Ce$*$G690=acB`*y*>Xi(_3Gr_bpJZVtR)nnx@C(*!1=t z#PkjWWZ4~#XARRkLI6h^KsD1lib+E$v7-T)EwN)5TgCK_MLbI4+X%3I7SB*#WJu*j zN0C2;;k$zRo`$=l2cLgG5kMV_mdJ2&{{1B3V*dU6_))-;^I^7j&tE9b>GvNXB{BW}Lt>Q37pLDh zbtmIp)9O6xg zG=kL~xl$2pDvNgb0&e+jbDh0f6zvb?gD2ROse>9C+)sd=ktK}f&KK#dER&0TrX7kdi)2#E#bK>iY?q&YVdEQ3ptjxyk< zR#1q$3~^xYas=3*C;~Q$XJ$}*G_M-z17xXJZ-DXfx7erR$f%ol#xx-*e51~+@q)3`*;Qea? zgf8eYK!q;o5&qV|n`^+UZ3v6MoJNI`@#F40L9|K_bQhx812H-7fu2A{wZ`4Q0c6?T zjc2k4GC?(By+;7QH30QMk%%_#zL!ZuDX{whm@TmT8C#_XdI0e#t_Km6-9vbW;vz$# z2ZDv$pKlQT-S7_sq+`|6bEu%nX8sXTK{Nj-erVnPbnW%W{o^`=)IEmyL?iz@!j~2X z6*lsX?s2@Uk$(a|I#y*PKfaeel5gXGk7$AWoKfMQ6bawPKZTdFdzw*b$hPo*5MHLD83$}!o+Y-KzU?H8=st%O=<<04m_iese9313|oULF?VUP5Xs z4$5{f<44D0(q5nM&)q8|R`Pm!6))KQ$0+D&MK)G&VUp;qaKcV*8&CBwB-U6W(^-|h zE)oeA?VRrMQMPXgfXkfT#ILgZtKRdaz0uZ!Dj7*Eb9zguBIn*_QjKL!?=a0avUtAT zyNE&wyoaFd-p4aoGxH6N4}1NLfFBsO7Z>~^h zr}fy_JsW}S$6Sd`+&oFh`u~=#i7a*C;N3z9cZ0eY^cN9InY6` zk8Q44?9hq}<*?mCJD6tehWV(T?pe9EuGT)>#)o_C;6$^bg7!;kE)dtY!kOJR5IMi= zhEMXE%Wa#CpLF1eOksyn!)FpOTi64^#y%GS3;PRc7 z6y8FHR~l)?oRY6jsV3jT_+3lBMVMxOQ!@&;C}JSqVhC_^E1p3-W*fxQvO3+l`cGJo zTf(whQduo!S=oxcf0lHm!j@JB%UA}b`K>EYDQsD#n!=XD?^+65o@u5qGk&)MVxX`U z5tQ9Zcm{3V`l zG+u5bVkRz+)?rjfxX^S|duxB|sL8E;MK=nm>P#E(qhkeirr!(=-DnaEooOB~*oem{ z-&&DN#@9BY8KM$pm|&GKeSwOY72e%GpnTQDuXVsJ}Df}yPtl-<|y428^` zLm|UbgT#+3?0$oW0+T$>!W}WQ!FnBbYZX$>m$9>3#iB7>VG0)}A|VyR-BMbSXe;jC7>D0oK|Z<6v!6Yx}5< zo+#H$Z3?569b^>Q+Efmect-&wYSTDGz<75;fQb^N#UvyCV*)?12DtB6x;+#Ee5dT8{Oos)4%+hCfmGdm6qb z(yPN)3b&WA3Winsh*!*-@Co7eR;mfN4}RAYZeOO^-sNeN4|4nA6>{y5pzIF7Gswj} zgIpTf{Ij*w9cWoiQdX^&mEVi-PgeX&ZB14NZI(f)cb;n6YFDahtBBtnmnX01jn}|W zVOonEO*{8Y>744OA_DsAK!B?t@eKN6u0dbi#SpbZu4E_&38l+Ww9z2~iTUT6jcEex zP5?#?8AljBN=R2DZx87Adyx*7xrfqMefJGSfoX>Tmoy6B{B6t%Oh^7Ubp%mk>G}z|0J;fSGyqh9n->hrG@XA77G8%634ZI75X^IeY}^OjYCC+K0yh!?dn9N zrz-SGh=N&tA3@puK=@`>%qnSCoSCxGPpad0KQt02i^M5LLLUoN!DE3~%}*85X@*p4 zt=hu=NU2uSe~jO?YWnF+v;GKU5qAb&A=#M-%I+*YLp^7nmG#^YTHM)&a*j~WH56aZ zJxC?@=Lzs923Xq6Tm>9TBzn{Hm1^Aolu0%GUKcRUMl91i+PmC^cnAAGLr``X;ThOx zrh$Dqy=;sY4YJ(DhIxrFFEvbadZi#^VQ5>I3I1{qpKY{$u9Vuwbp_JXjn(Ybj_`@n%Oi(_ht#_`v6`2= zj`aZruPDwN))y2`evzlNA=lIe-{`|$H!pPFkFH7tcn%^`{`4CE@`Vpdl9Z$ z99M?p$)@7_X9fF>lzQUiT<;LNNrNVks??6c74kL`nocr)=;HUqg}A4VcGb+-7t zv>Vj=;I9et=P18jq$mC0Q-~j-I{qH#rD>~m8(cIz7P@sZz7Xw3%J_>32*A$%kKTE>#Du1({Q3g1X~3Lx=~bQdCE@4rESNiC&Td?V2a z{WsD*g88k%gni9SPc(e@D%C38eN3v+@ZHZe8|(yob`Ky9tUQPS^H+F=s>h5&)f?m+ z>0!fvMEH*y{@~w83E>_S*6$1}cv4crJ+4#}?g{*^CEV|smiDAPiAYHI6avg>;Tfc3 z&Oy2cHY`=Ylxo#l_l(i~gXlhMbPHde4ou2xgWbY&qV~L}mKk#VQ3+`?GYXtndjaWC zK=K>nMMOdTKOrc)KMUVF1!k4(6f|eAb;BLV%4(LN;NUSujss=4X4LteJP8 z7}}>o`^?bn&c7sBCHtQX_zMHB!T#TrTATg9BR$FfFx+GV_UA%?YYXuVwTqbr_Ag*L z{Wo+;ZXOe7UWqfGiBtHmVLvWzj@9Ou5DS?OthQpSCaF~ZVH zwZdKoziSotvP?^j5tc(73VV43Ww!#Jp|F{8C~QtTap%U0f?CO-H0i{Vll2;jarVjr zTg8Ko2Xd3FL}S}N>vN{(AD)k4o+uj?7Tk)k)s z=xNL5(C{PSX$bysmIl!pZL~D?SXpY}aF#qF20ff*{0X4|8wKmnW*MUl*0&6FDP(>9 zZdgXbp?<6X$f?H#F!mn(z!3#_VBXm}ZYIFhUHr(`EJSwnhqw zY=fZew#5@f#BnufXq=3p26525op81{oYG4eT2Z1M^q$sIEYXfgheRAJ`!aUp5CtA~ zLV$TI;oDe@IY^KWJF!3?L-M6(3}R=a(JUIf7!CUvstO-Tg6fbs>0?)+@8;2WK*L&J zzXv{9s~D^ND>mn2%CH&}`qa(M%7UN;<|Judt9b^v<_Y)H_4L~e zZl8Tx%gw+%^exT>6#hKgzSimbltxm8H(?}BRmkBBy|sOMC!275YnzWioSMfWM>;v= zRCF@{q!cWwnA+KmqQUEN)}PMb?S zZr=mxp{};5bSC`&()kyZ4lO_1WGo>^BM7B+PGBGrHd*P+**m8shq*~2k1F?5i znvErvF3Il0(3-q-)pPqI4K2lf2(Uj5&(P#C`&5&M44cz-SyO8k3Ahp$0I_ zmTdV3uT?0M4JB&u+Vq~*Q7lh8(o+py5m69h3IbefDST`2m_xF`;|k!)7R7ZKZl`cd zhO3prm2j1uA0+55gD&OKuCXMh>Ag1R-AD)L+z@SzlJzh#mZ{@bOhG>Std+hHbKWE6+%y|z&tf%HnFI1({1ilY$Vf=Qv9 zQ80s~QD~M!oqM%j&mCiQjuoA68y%Y&sfiN_R5>#Fj!1mhlQ+%JySI~=7<$d`;{`L)f)5`Gdt%{R zWvQ~Q{$W*`*z1RQl0BKB^_pn{?i8fKnomVgcBkPPdQE08YmPq@*w~NMpw9is(0(km z(+y3Xfu%!yX72mOGX!;}K}CJzS$a=vBIf#Rq=W0^$G|y=0<-5LD7*87Z&i;uB&(i| zBULp@eGGU5cRw*o=Zn%$jglQ=ItW&!R2K;MLc@*Plb`9mwp14(y|O*I7%>p)5(GHF zQ|KlXGe`=>bNl9KjdYh;)|V^mpIg?2Ii5|VHfy!;#9vtAe1-D9(()c;iSt#0Na)pF zjhKn6qz7{_^=GS89(}PRmI+6{Gov+7B z+1eCVzYb>qU)h`K(>JoU&!;eJ7)jU|c^SN5>2_C}FPFzpvTN7?_9Xe~p`>Lvig zP;N$m>3EUOmwf(Y9kv3!`fWS63hGw|Rd^G!#B-*(=sNH|9AeGgIhwz>xn4WXnhiK* z<%xUA)Vk=b+{9Ed7xm(E5v~33hSpxW{%lN$dE+8FiB6nBhfMh48|KUL%0(WzhUxei zWI_X0tc)00xAo5BwvT4Q!)gt#>;)TGw>ufjfIFtOx`X`0G<=h;XPTO%aV@)Ti^adV z__7bz`DThFIBIT_MzTe6X0V9c1wd#09a7=1O@+Y=NWCV!fOjfYsok%z*m8t*`TK$$#fnS^6FE?-IMo&|rfqUR8l-Sd(rU-BZe zfUG<4+j9RXs22=M-E3u#6}IKRD2Rks+@BCLaarqT`#SqZ>AcTTGkf}G_PIYJOCqhRY?N@-myDEbpb_ZG$1NT{(ycC+2-Uxc1u&UdF# zmah}d@6%GxohJVV0HCus5nvgE$mL5uPqJ9ig}x=Iw+*Ur2OJ}N_YBC)+pq!(%ePu{ z>aMKw4E@k72{J1e4NQtI?7<0NMbmJWE$@uCqf^70pN6_-Tr>fzpX^#)Cu;>3h53Cb z07mcEnrlERA&RaaQ*2z4$;!d_;uO|3#WmCg9(sCFfpWaR!Z2;pR~2(wXE$c(biS)U zjTO6VdBGT|M5jb{=K^<}^&?ZLXQ-RlwL2wF!rr3pby+uYj&D>uTc=_`fQ&nFyBa?{ zO|F?a6!_H6>3~G_O^hM@z=3;h>L#_|Fc9?Ym^_TNv3W;-e=qj+P4DXK>@T);boXFM z{>+9RH+9QN2clU)k+k#nGP_A*GCks?sj&sMCfPYIsI;vxE_g@9oVBeBgE_w|fEJyX zI21c@?*Rd}_C5j};w$X@kg>rh&ChqIABx6DMx%6_Z7^keVkGjhQYC=n*ar~}T-b*koHOyTSaVYYo5R~20c!nZp#-Yfy z5G~n!x@8P)S)nawXtoe72^NVGwrnpi_!T_-7+BJmZ;0uRT9Fj|zHQE(RB6pit0O^Y zbJT3r-AW*n*^F(?BAr?*Gr2{RGgUHhs~{Pw`x*k={fcK$9i@co{62GxY5g%|s|hk^ zkmd>+q{}HChJ~Qow65abxD<{dTb%^Lru34R!L5PViA(pPTN}l0ZB*2)xiyiZ{c_gz z;DD305Yw?R#!@_}3=)oDl^$yU=GF!_E|0~N&E%IN5!ppzz&~8%MtE{}fFm7= zkKwm1X=hIlPXUK1905$jC?WLsHpmGh5_ZR7NHH>38o&S{9w^yx-rP2I8l@!BIyG#f z3wk)lLR)viQ%x95p=*3mJQ#Dy{0u9RF_E4Z+Vp@4@u|G|4 ztNnRc&t+jKu$}-~3ZuWg9^6RaqI^anD7yv`%KsyTP)aNmKR_5Qa(N>cIv%Dc1_+Hx zwT5U6lWGhQ)@NF>crC+Xe-Nr_F6H(sODC_PF4coqi zom6ULtmtiK^lE5hbETR#w!rUN+Srn5No{O}2x#N$2(YpS&!7$F8niJnXk$(rt=k&8 zAp30)U`-C5tl$5#>>|BZI&HU8?%P}LgM3ZyAc#awayues;tJ`nNi-cg(!h;FvOXwx z!jF#O`k=frRJ-w{7CtC<#!J~XGYSge`6B5L%BDbc7t+F}UIt@IXX85#jel^_?kWli z7JX%pa@~z+EraKKdmzA$c2Ufie70m%W)Ykx69hHUpb95}^TcNm*WkdD(ZxG8 zV%HVF%Xol;zOZ~lr)yEP-jYi#XBJy|4`HY>`bst1llz2AZHm}2WNP-S>zGx0;tQ)C zzL+-bIbzFLsjTpkw5OQPD(mV{M0*K<&QpHlV?BpS8HPp_J<%fVqg1Pd`!cCUi?kop zQbVKt5eJnYfS~LS#4}VwW*n;FF|3AP36;7@#&4_mooxITzB>G&$XPhyK)l2RO`AAw zH;xCHpeYI>VH<7=VkRzzi(vXtxkqVXm~&GRsT$sa9~~>IhF>4dr;{{74KLxP><(fS zYB(;z7`B~}%8eS86I7o;6}|wk6X5cg<*DKzG_fmF^jrVDvl90YYB+<}G5N*~N1#f!cFpYP zQ7axvmy34xX*>j%$)rgeu8rF{0I!vJ9;k2KTwhNY)*|9S6?5aj>fzv-hL)Ar%}?&^ z&&}v@TD6Dvr6~1r+X}!E^FnNK#3T-fF-+dpgd^Mf2DR7kbY?>TO_{-7BC=y#GbtAh(IySK!Bs4m0GbUkDB*`pqYX>#9&Hm z*hW~UCz_mZD%F~tSxlVrTrQDA8xpCIttd1Xd$0#;kf<}R#Wyc~Nio-svVH>XPzKu8N z>^lf>&#O@LYD1U>bcT*Ny4QYZs%{S2wfmlBew;Et-ZC%D>0Bb^>AKq!l-G%tSC}$P znczuEH52?ke%CU=A22O7W%xtHL7yihz&)^d1{-9?!3Ni%B8OC!-Kj?JG|~H!(X)*M zL&C2V{>P$nx=|^ugb!q&o~VCkDAj~N6TfQ-e-_hPbU;en+_;19TK}oQF7RO74#6`3m@SatR-B#50#08QLt&Pz>Dt67Z;tHz6pyoAC@y2ANFO#T!@`|2u1gyTydORYLyCge?3Q z3xpPq#^<=%KaW?Z5Z3EZX9dTj&^ibU48wIomhwE z+B!7w-z~JT_4S}ueI)&WC}peS9bqK>pa6Jo{zJ<8VavMX9*`t6)+vu;oqL2yLpg)} zQQ~C|&3}xsrs4g9OzwAxgoYnSPEnG4dv(KL*A>%1taKN*y^-f|^0%K-iN z%@`&@s6PwlB@e@uuwV>waDr@EZnP*bKz^nH%@ySh3KW!zX2X5jW1FC!cIr$M*L?k6OV8M;1p8 zxyd~TH@G)Jr>1@XRhgs(Y#M)8u;tFpQJfmh$+VsER@Gi~uhYeH}?qOg;4sFS|ja4fow}1(13;}Lsl)fYl@#V^Fo^5H zDhe)|nlx#6eq?^+xNUjACywhuS|?lxgeKX*IDC&i2lD{-8GzuTQ4Pa_l;Wui(OtMX zSY>aAA!%qSqZkfia6~|o;=#D;86!Xp1dG}j-aaBbati~F52Wg>72F-H;6nkl6mEwt z{@0g<`v}s&7(Yf(cArSJ{Qrh%sOPLaXiAE>hY}6mr;_nAFC#y3l9tF`>2sx}%iid4 zB=`l=(E#v_$Y8?mZ-|2e|Bj&ShN1Nf?J~2oMlJF;%mm_p%;Mc#U=EzljiBu2F-{Br zQI?`2N;LTMioN+fduOteVF6}G56*Ky1AvykudM^$f|!_SYYk_JsXK6(n?)1Shb3I0 zDG8sJXpZ`@SI(J>v2F@HiWdI8Iv(pS2Qs>zM|u=6NC~I$ z^cn(K(*SfuQzVvM(XoB&;6;10R9?Bn%pzKEA8H$JusfZE{QN5tn zGpNFPG~+NN=jYQl7>uV7QUZyO&E|4@)0#s^s?6cXt3r{0-!ZFh=I|@fIgzg zQo@w;Od5)o8i|)NUCx~&l4J_S63bYw0_$2!W7 zs3t*eZBWrilt~mmqP7vtwjL%2%-LE7#u?iQK5YbEAsAj<(|WPI zJPiHyv6jPn?+Vb6T8Hlftxdou2{vcoJ4IhSSl+DzMX(;b7c0TZIsmdm0sHpB;_|iu zY~tXWhT0zkJ4;RJf@&K7c&M$-0?zlZqE{PadQ@ zo+?Ud!)Y4-bg1AR0$_LCsjN$uwYp<6ljx2QVp7z94KlLqB3`CDp2pa8cifFgSY{7` zvg^e&bXepjbXdMS{)WLi!S)$!syimfzB}$0*nkIPcbpPuI+G%C2I-Dx05IDfAI#X< zbjLFR1L+PyfWuDk4APOgAYJH=X9=ooP*Hbm5{2&gTY@>%!izK3c%X7;vE;0%~b<;(V=m>0LV< zZsySQAGv;(6nhwp-074X9!~m*CNOcdI6iQTZUkHn@jB#I%yiC(`}vVJd&FKqh;=~m3$PPI*(%*7uYk{fP>uv>f5Abz`J zrOtFwHjRHa)Z}jqprvp$3iB(WZ}%N=1l##8g0lOb*vo%)*h7mzLq&7J#g)g2$>WX5 z(%n2=&(f^{)G@LrC{;z^PQ>q8NB*D0G`lncCg;A7SE%6!2yn0no}mgc&(I2R0n!|_ zO?R?odWteV)iTv8r#YBOr3Oz^RzLDtVGd?kR6#g|`LPmAd8gxdrSiP4(IlP0G*cex zmOB%#P~KSx%I<7DgYuZ2+Mf=aR{T0L{AVkoJI8W6SGk>MxfSLFH_?(rK<~>W-I%6*n|5S-l43E5R~1;cm`!L!=$p7mx8^? zU{fO!a_mPWHw)|*55^HmN}OAn6p1s)h~!rQ%#KKIW9)23B)0B5NQPC?yeP|=9QBnl&v-w5Vz53@LIqQ1V;5Ma;uC^=o`UVha1-y$8HV;W;v0@vM( zXfS&pg0j0`H0-m5naZ5A^QjLA_(20MEC5lq^Glrl5-r{^h!6T!hg**|S;(*ZDV+zS zf1cLb=6bLMt0_L8Ia>WcrlFB{Yj8J|PWEi?DQbtdr;2Ug(_1HF^SIH#Y#*p<{T4?c z8rtMI$2Zde@Li8B1~|y2yB$l0QEzxcFEF@`s&#T_S0|kXT(->J_83vLIDk3WMQK$sw`4|G6m?8z{OJ2(~Lsh46DAVJDdcvTzD4?<+!f6q|7et~U+>?lz znDc&$Q8L#kmHz#s5ZcF!^j?&};X zU8o}4B#GyCi(FgoInrz_QHXd6TiEaOyeK7D_L~Bt-2X_lmZ9bJ0$`!k7ZKn_dr{7p zeD-AAl=>0+Omq-`7Su}yC8ZjNyTCE{DL~klzO2*?chTw8uOPkjh0%Le^j?eT0sSv} z!G=X_TQnkD?LTqeww|uO@$(EoC1imvrPm2pn%ib#-@r@Ry(v_-SfKM)y`<Pp?F>YT`$?}nHBMe z!P^$r-^_*II9~uyRtB7eFf20r+&C=`!Ch9)%>w|G5HpJ_Kv+^SudvhkHI09ZnaxMc zmfDo(M>-6C0R%XMK$P+&pBdmf3_Cdm+Ks8N8X;!g@)wforh6*oz=Nh`p%L z7c+ES(=uTu7LP2B2#87ISuvLobeg^wb4jB3O(vwY6y71$(g@0K8DZv2o;)+JA=a{j zU(Vo7tmXBR&Ndcn1*8YDRuuY5hOSlV+ZLy^4s`Xql@SNYNIxstDndwS;U)VTQEcBz zAhs%^AlzyQ$}T75e97lP7E;0$QF>db^jMBtS~+fI=DWIRtYI`v;5GG<<|eK^YcV}k zpS6X*P7;6J8u-kL7C9VYs68X_8}}s$!`Ghm^s?pt6Boq&XSkjME#2J7){kugb0w*f z2!rlN;WzeQ3p-zc%?+!s4;@QXr|@OqMiUuVRxpS*kA}LG7k*m!rt$AEyGA62f#(?f zF1z&wo-c_en%NDiqBoYv94Tzbu%)n6qSK3ca~mNQ<+?EfTvC8%7#%Y+6e>#3oLyLj z8dpjFvf>SevZ)A+jR=6T&GeF%tFaUcWpk#7QrSZITPE?h(o3TMu;Ot&Gx~650+(Ah zmY6Mt{5rx=DoyxZc3TTOUqDc6-o$N#L=a)#*<#sN1k&s`jen2%ZHL6L2x)u##;pVb z&zD3K((hOmy|F~@NMRhq+7mK6AsOW|9zogdjAtkp=4M4<6EYR$613SYv|S=J@UyF4 z(&EG#+zshLgS!iT4@1|{-)t&(D>@vd){kWdt_4X@9J9$PZi4XAIeEoRB#JGzNYUIA zDUf(C1UTkhH1Z{%5gAIgFhSJ41;3BMTWhkfUeXN2qV9+EAnN`?Kfus+NvZr2jrsf} zcOYURC3DD1IY}t#OuUq>M4^vuGJcd@n_%-L5ky(E$GEOY(2C2h8%t!0HZp~wIflTH zn~GOxr~?76y2dlu1apy1&@ohD5OF&kDr!mC2SwOmr%NwsQR0d^4e3GM-9qn4qW9{h zqV=3B-Fh-tO7sncLG=#5ar?Ef?eqb3Hdyg1e>B#fPVL}5k8mDiw1~;*9Y^oQiD^w! z*Xd(mWLV?HiEXDVC&FErjd^`sLTh=HAeqjVV83!si`_K-12Q_GM7t(v5VqWOz@bcL zAi&O2A=x!SgCKz;${x@3&J^|`9-CXwyto`je^b$EHjM;1orQF7Bv6qn;}r~j3qjc( zDqQm*Fq34%0i5-b(?6h5cbMgIxbir{^7u!IMaqEJZLkjJNM&}EWoGsKXuV`LvpV9b znPZq94EI>P;KpyE_-_9@dKtWfVYa08U4+4KzlYytcbu@(9ZX^ldeS6!Jh2-~%sXp; zCx}3r{ig9BGrtp&7&@4f@Vo53FYtUxG+`G%sEXcLB6p&sLDcgF|5JlE!@EE)X$E3ZFGP9} z^=CrA$j~)DR|m7sgV2AG zM88olgZC@Um7@F-VbJ(Z_>En9!p;}AK^w<4I5_acwQ@%<_Eo4Ja7q*oM8655zXwN8 z(eKz==l4}q`b^y|%&D5DYKOTC2pIg{@ zU0V?^apIlYID2ASp2yWc6OHKuB+yu5_Sq76P&CpKG>!j)Sw4is(3n1q-`K1s@O()$ zVXBW-MaNDk#FN5f3~kkbcS|-@^5=dB2o%fX2(VQR&rpe&;cVN}-wW-@2n{SfrI)ls zjisQ+r;#4?_>9p1VCdS+z`^y_IEceNi%4jV8DzEgoG{XPc&$B86x$jRQTrp}Ams}P z%I-yB=Sw~dGLbUAU^0Ia{GScpOztJUq_d92dl~6LyjO(&s-bJnL~ZEytzCV^N$xeo zLqg_}mGCb@N@wFGe4Qw4N8i8?crOKuqkI{S68Nj$h3np8T&f)1^q}&Oh5ktr{ZqXR-k>s9%Jdn+ zp#IPC8;80IJ73rr4JtNCVHQT)xBQe+ShCWGOI~o`f3X{f^Wu(pO)uFtF1D@QzmEkX zJu|G~)oFV0IAR@p9VUAExTe(ojT|(V$bYst|1Kud8fY5-ck(<82Y8_z{?!c5g=|o| zb0ff}8$40ECC@cgm8t{T26$d!&S#ib8|K$bTCTWc7hrlQ+69HbP!hjRFM~J0%$90e z7-1;dMerMU{0ciSA5q)@7pI_n`qA(%M#RPvv(1*s;=)aH-qbwLT+C|;q=uGvN&LoE z4#DS3A_|*cx+*?4P9UBXmSJe)xzO?&V{Tcbpd6M%P})ZOYmzOyqVZKdP!#;OSdl4gLK1%KElxBLF<@Ft{!oaj`XwA zttW(Z7D2j^#9?bY3P0dB6>z>JiqQV(7}@0snrdyy6Ahw~p^aL{Kr>_T3a2QZq4-H& z#Xp2m>juK!Fv12O8|fu2L|hd&MtV^5CPLpdi9S{@gEz9wm7;8hFsOWU{Kjpq!p;}Q zp^rl!8o`<(1zMjwa%|2}S;5_YpQbe0-eSYUTx+3Z5-$tJT&?xt}j*#a3lQWOCTO%y={5fA~9E~p?y zr3%tPK?LbY6H)%p^L+2QbLZYkHo&6q`+NWSd@|>rd%pdAPr0X>d+(`8QjK!9O=P;y zx4neFcN~8oMTW0I$(H#x38Bxo$#}*QlETjFFye9z%C!wx=P<$XsCrbS`w~AFkb62G z_7jPu0uA{kln+yo>MPRy@mz9K1&UUu?)B>s zdZ(eMy08J>Lq+mPt2j$YNj6@^F5<9O?Z!jN^$0i{h$8Z!w~Xxi2%4x>DHpxtNQUt~ ztiubKsfeKD`tj?%fqX_{^@c2uPQQpWlgs9g0CU;UT_AU zOYZB!wxti{%DUaP^x@>3BI@ZgiHf@y8KkCb&k}Z0_J;hj%Bi!F>g(xm;2F!G1)mK> z6b0a0Rq=6SA>LEoZ!@%e7JWVKMRVsM4S8`cf|5HAzrIkC)qJby^M!Unga%>0qexO2 zEKSCH3UeVsZ@ll~84Hqyk*(BHWeP0Mk7T#VL6Q{DvdkJ1a$sZuVx?o{v zgOCMfNI0B#lOGEHGJ`iayIheZ>#}w~Lb})P3Zehl&?~yUSK=MCBmJ~?R|z4>!fSUm zaacM31P>*5jexU(D8l+bEhD>Y37V*!DHC(yI)>#g@AZh5+|Tgqv!CQgS|{Hi?4L*2 zkmE*0l1h||<4s8SX1-bIx5UwJRb==&nOv#LZG`nUza5d1`-RZ0&%0Oe9CT`Nl7l+3 z*oT6y?L0dL0=20t;NF8`2X@2cu};HBxstSqF$L=^TVJ@|-9d)Afa0ce?M|^wD%_A? zUS;@~#IZi_f|KW0APTSkHG-16OZ>AzC?xG5uMU1>2RYp>sNWcr`SLxC1Xm+n%aZHj z+xo-B5YiPkzE_~v7^(Y2>V6~Dv?&_C=H?tGQi~n5m~J@2VTu^b;nxF4W*lDPx`m?q zEpXVe{GD)<#>xd0l3DtDgg!?fz;nqxD2!|%3b}wHr1Rh*0VT;c}Fcmo(|1on9Xm>~J2 zNIqpGM~Dl@q<}gon+@i5$SX_-hgtTtC_WQX+(=or1+q-Ltu5bT8HHkigO&S>?pYwv zB+m&kY1ndpJ&$ysUoYSpXO9U31Gxwx8u_R5>(2s8l5NPZto(YBsXo76LZsyWA_Sjb zP=La{T$Kv$)53e^*IyZytGZVZExA{PWcfwfiTvVuB=a-Q-++e9dQJ3RH+nkAWIl*6 z2Spnqr``~`H$!sto95;%D|3n;B@9i;nwdKb?aN)|>o z5QSVo?&*AbPe4hs4f$1+Pwz9;=hFv>l-!3x@c9JsDcna@spJ9*!hHG%L(8WvVb_ll zExCUR$?}P`6Zy1GBA?Qx`2hmN(mc0a#%WTO>H$S>Ys2@x!)QYh#O2v7T|Dbh)6_gL3#fZeoO(ni zSD&q~-IMbvyaW-~RQF+(6mC6gb)9|uW{vS^>1yxA)g2w(IC;+wSe}<@>z&i1tC?8{ z@y}g1y)$bk)Mo}K4D=0j76&seVBONm9X`4qnWtwRGd|NS<3Jf;G#|lpHYyG73&J{5 zJ#FxHqfA~`5RFaTL6tC$TMuclbp`>B9TH%+8X(xy(&3KQ4FtZSfd}hj<4%|!+tIp_ zQYDw$7|)d_zJ^DIqJrCmX|}qX8oNyqheV?h;GiM=`eH+-%6dR=4OKo@mbyA4zq!bd zG4h|ETx1r1E8AGntq=>9Pp5%u5_;SQ2<1Pm`6D`b6X$^vu=q1OPTTO z%}R;AS;=)o4)3-$a@&a9wnnaL#ORUP^v$-Nh-_~}hVZ8GN;PlV0nbBu(~eAwdDBja zL+zarl-w@(^=gx;SDQD3VY>9Q6kfNh5pEFS-Hfnq2K$VJDowGw$W1VE!8UM-bivv~ zsb-2j@jR3%CNizDX)!2gHI3T~Z(xkQ5tQ6M`1QshTW<_Ztil*ot0Xtc2uv1%yb)*` z1|d?;7ms~~xnGF6ELc@mb3+!CDMSei3U)VG%Vd?K6_^}eh6QHMoH=8Qy{))?w{M&J znQmO6XB80Yo}*=mJnD&O0#(O5O?8u1zioQ9y}rsLNe zka~Foa*Jy{pbik!fd-{-Nmk-ki^g_7b1DN@FNI(i0GV}kthvI6BHE16Jl}s_p?@>9 zJ!sdlt+TU;Qy_FsMQf*P9q7i?2k+JcY*(~fdQ5FgoD{#{>wME!=U4THhg0y@fZ{BD zo<_$?U}8F>12J%vRiQX^BXqFDPd7pvM2*lPf@o|y{7YBR9ST;k|6vG9?r`zV{s;IX zbD5WDB6+I*5#rt)az}MvQ#L&N{VhsKTFgkW-#-KC@IaoI>NCu>;vE!gLr`)B5wLFn zGK2edY#ZKG!P`JTd+xfKM!#M3JB)tQ=c5%FBj)Lyq8o&CPlSvON#}&~nm6LUA{;=b zLl?@Yn&^Py9$tWflh685O6>AUxok`A;H-8x$mNGTcDc6)hf(NEGv30qTkqVk^NP!- z(TTiw!&k~5h>4f%~Dm+lfoV^e-XYvQ^=85!M!05eNslU?v^pgOZ8 z?9=s$*^$O9xD?Gsm>%oXIi*_DQ^a%SIBL01*UvQTdmvNX0HRQ5HUi8`;n!E2B8n@OT6zcLILB4XK{DA$#}<|8^%D;z>e0*$~ykPXI=Cir2-DeX@4jVml=nqX1L*a zRNWopn-4{C>z^_6=qZP8GPRUB)Nw0Qi^Imnj8AFoFZA(Z1BOFD;ApP+00;U=rDk_I zm_ZZjRvzQv=rJ|;hiz>Ab{9!Gyit@{a*QHZWVfcY*_V&4GLUdzbzMcIv;+tdW(dD|># ztEDQlTtMw1e8;xa7onK$I>hC790Ck;_j7JX$JuYk8wb^{l-? zVx;mQ%G#eJ-DmBM68xr6@CEFaRRxFGv{u@6Zk7-!vGbeDb#6gw5IV@Mc*dp;!G{iV zJ0lC)L8{4L#X)F8IY- z?;)*RK!MA7wUy)9G1iV06~rZTLhRe6vb>1vZb6VT;4%{FQ^9$ zs_8ulK1j(2apVtXAbYUC825VcqBtB%f)2ZebI;E$%g&1M|qlbhWI?Czh34t8%pc8lVp6utVEuI^r(R@8-Ur!9^LFJcfC z^E5mP+3yVM8R(vY_30RQo#MieE$}s5+$whAPkRZ6O;9;5a5i@0QDS8ATOZ&!p z$B!yi^xPkqG{kMCk1;JAqe6DL#}P-K{t-dRJ%L}}N|UK?r8h_JeTIBGK!q^Rnrqw9qRQL(nav%jlw1eS;J za>-V##QQ6BL-BY;ioO~u${|N9jO>5>O>dLMEOZ@oY+gfp=nE{s?sdfB3vVF6)*vC< zC8W|bzYFd?g9{!>mT_Ia z_C8aiPWv$PgdYGf{SERV--h#qVg2Mj!aGR$4+JImF@C-8Qy%a8oE*sD-hh7^@FxQP zmjMUQP}KPSYpj^U&yar$^3xFV`Kn6Q;Jn4MQp0?Si~?Z#OJpIwwF$i)XE=WcTd3X! z<92on0{|K>f&lZd`1Kl6IB6LB=3GoriyM^o7{$Ihu}p|Z-SJdkG%7PYozCFxD)8J~ z98Q4Cy4138Y^WdS;`ic~KD*RxW-oU`p>JP{R;S-}wraWQcsM|1W9{39CB#4Jv<>-f zqPAg4LGZ)1RuV5|66?d2I>bI)muAvPoMsu~r9NDj<=fvDJrn=X%_`H=N*x^Dzt3H$8<()*EhEMn6C6s|1rG* zA%_2$-ac~G4Fw#2ZfztE8yknFF|gr*y>3=`#e_=FVB_4$oihe253@w2I?#@j2{!>E z1gD(kF0TJD-c(dmr6&4%8jW<{Io%A;I37wE*&rlK;mTxvVcc9mDYAKJi1uTQQf(n` zQWZBAiEyNP1lai`$ZXT{Rg{KKlql@$WCfoy_~1|uhN30gLUGCAw#0K~@5TsFqOF)_ zYy4$Ow>4fsifs^-+_w1j?o2*#XAIoiNy8cht=JIn?Y^Cn*j^;Y8wnc(tp*-xgNilw zsl9`+cMP$2ipSa)s}t&zapBUnv^b)oz~7~P!Tq8ZgLz5v>BN=$xh94PK~ z0;M6HVP~;P)KPxdvfmgODtxO*_MG0!oq1kC!v-uGGe+y3eGWn*cOq z&>jd%Zcow3enuLw1GT_sYuG26C}Mks#JCiICZr$jt#?Tk44?k957Oa3tiAJFxJigX zw#f*v|4FFUA0h)ePY`u~&?(1d@?j>qeGPLzVNNkjt+9$gQbO-9*r_3`3B9$1Zq&P> zg`S3VFZ9-KI${v|00h|MBvccc3=%?9PdF2gB>>7nLOIw_$|pvfZ7bdR5P=>Vf*uAk z6MA)=t+qaAM)&hxbDK$OZN*w!OrB!bw2c6?p{IbZ01rMYcD7^LV6nCr-3D&8#;4@q zl>H9eW9lHcQ4da>y5IDDCk)ne(5QN~cbFtdnx;G*ayZhxryn7in?soo{gP#d$TU*A z6tzfzl*suVRElOOwXtch1t^|t1ySU08v@K;ibHmRa)7e5ZdirS6rXnE6HMkBB^135 z#ih6F#B;I=Cjl10fT304eO#;UX5j^-??O;=-T3uYIQhh@aF!YRjq5RtUSaeZhK|Ez zYNf143dR{s@FqS{C~Hx1leHhuL&-Y8G+XG=j_SFm&CSLe2s;M>4$H!?7nY3T!uque z^8|U6K}Ks8%$io_*h9}?ehK~EqXj$|0>1)%>*^ZOyUt8zQ-LF{S)h0!R()MvCeL9X z4AZDfju9fekVB0MW^p|v`x@;itHs)xEr1{0h4CIMi7i+`cNDfM6meW67RzroCWFg) zQK)hKB!-*Hw^ZUf4_xn&QIY465H96K)MM9Sy#&UMigj2o!7m4nNM&aAU~L}A+4`+!ddePL+*LuGetLs*1aRgy7M#VKm*jzPMw0gjdVj{Co9KKf3& zHacF$NSQCci)y12nCj2wJP{FWj}wBOWHYq$F=tM$N;(%X7g*50!q5(!sqVw>6hNRb zor<93PQ$M+OcceMGCR2wWKLn>|DWOV?sSv;tCIU`Cinj&0Z|1q6Hr}qz04UB^Xs9Q z?8ii9mf3iw5|SQL&c?Hl4*PR1Gc4-vY`j9geFFhD2MXW1AY^5g;3r_-*t9c{zF58B zzGb|=EnepsuLVFiGEvy?2`_d(S8UD;*_@32QvycSzAjdF zyz&Uua2=0u#GU6{xU4<5#X6qV1-x$FCV-ApE%tvExPF@B^36EdapPux^PrzYiM|jx zIzOYp+POSLUtfz`kXYMepax_A;E82Cn0gs-sQbYcqO{;n0bMd^>vv*{r3i1RNgTp!opu?y`{|<563t!>kVPO{bXM zEpt1&2fE{o+PoM5BM4?OTD2e?=bGUXSm%kMjnH8`ob5jM#FOJCpiY<+Q@r_j(sA`|Cenn+)NY_wsEZuF;%nJpq1 zND{8DXEtytRb}hwzu(W7rzQ(;Lw-UuLUDm0>>EDm%kDc!L_xj~0ah^x(!Sx7kPv`H zBkTZvPw*ERyq~gRdTh$(`%0B$?qVhlF=cZJ(_&LLKR_HJU5cROeu!V+CXgxW7S$`f z1CnbhxwSG@1l?tZe7TT+WXQTOvI=lnC03GG2<68ylq%(!)#a4}Nm|^@!&dJqq(dLB z=t)%w?rJ1Lxt}1wR$5WAij(Z)6(=uQ9j^9pKQ&6%iqdsPNmsKDhZU*pKcuf0`p-gi zn_OVEL`84V+o2WxInu+7V^!vEL>#)^grMYZ7P9F^Cf1loAJem`UU=#1f41s#x0sl> zO3d3#%%=aIJgF?XU4s206pT~iL)6yHqdNpPbROM_bmS4ozN%LF?w0^Sru_;5ZWaZCp_y&ehmqF?wX zoPP1B-Vf~;e?WTZ7uN8*$M6Pz@i+o(mKM7C1sTO_TC(!J1owntJt?fG49li9ZJj9x z7h>(;(}H`(;QaQQL_7GbQYE^34$niigU>T9w!P*B#G$~S5a5_f{Q7o~Ore010ew&^GTX)qLaccpl0(-eX#P*5iG=fSEo(fX&bN_0B=A-Z{96+U7VipQr!nJ~Af% z5R;FMNz)f3T4|$yiu5N&dWiD#FQuA|{*C9MZ1gG9V&$i1EtzN(0^AgYUvDBZ^(LaL zX4J!W3mg0*f?w3&)zDaaBsfRw!jHwp1iN?$%dKuxv4n~{fiO6R&86+w)>_0M8@?FO z=bza-;4nUkj~sm5=rd!yTLQSCT)l6dRo0xCRcX#_Yt zQ=GCvC=T_Kg@U)RrXQW-Wd*gIK~u`Ivitj1SK~{ zz~&fLfT0=XDm%tlVbvR!ImS3fykl_v#)5E+3M*If2}(7zPh=%!&ZKPWiPsoquULRS z5xKGViY+MKP+qa6X-FwB>c*Y5?!pH_8S*n-zifsjyBAcHouh>qhiRz+k z47WYf;T7W%;G!!5C#s7wFf^lFWv|##SUVY(dBx6*c&}(&Kwgosa}~d!TtoZCE|POs zle4K8QtiouY&ws^(OXe%u>k!dq8|DMXSS<1Aq|o#m3fg*?1psj6T3@`385DB?ugHS zL<=ZEL#91&4~djgBHt(v+*7IMfmH-{6Oj%N+zSC#ZV1>sunI6lpcTp%}ZB4=2HN0B?9xqv%+k;o69b*O(x{ zwt&u=ovn!V^>+2P&$Cf%aqmRG)W5bli*OqOCVX*%^FU{p=(qt)AxFd9lUi`~F-{n5 z9n7@p5mOAKF`wMu(h5;D^D%=n)7n>$r6733t;YyD#`YHqwVPySGt>!I*p@J1Kw6TY ztw3czIWvAHHhT8=k8h4@19Tq7DnGbx%8D|~rFmv->Bc#xILp*^wO}N_;=t)bJ0~~5 zoQv^bVh+2jyWYdoWZJt5?N~%Ulgs#{ZdGKGPOQ=9oz6(%JOIb-(Ycp=;kC`Z-MC4; z(1x3+K@Rz2qYB7^@azD=0tXV~Ye08bV|oLVLR?;pOP~E^)XZaQ)rE;1Idc|fxXOoLNiBjko6o>=$MG$^IS{+g?RrmUAzBC5 z%FymGO;=;C4XH4G0YS;l#IH9#1%mOTWvs6-1OAWHd9K~8(jlvKnpK+qFIgaR&RB0E zkTqt7)_5EKV3W0UiZ;J%lC3{mHnllS@yiy_MvuiVje%A)!(0^xh|aDqbQAhJ(QJ+; z=w1U3v+^w%wF)~O9K=E+rG*7(q^AL9rtd|I0nT3KnICp?h{GO5oN2o84J#@m(Qq8#iqC+}IK-TT z0Lv2b>+26P^_6##bq9NC|5*=k^Gvv-B;3&^T+@F^n93{}lt?8LX^1R2MyZx1$KrXY zEIE#8u`D?rab(E}2ukim{Q4{*Q=cXIbe4Rvvf)lLwkM12SB$L=xJl&v7h@BdF;+31 zB9^CyEboA32lWo1i#;!c!p&=3@X>9>TG!!aMwgfEY{u`20y^c?DP(1b%EZ@8=!G}(Q>VPkq6H^Jw>a#xLc@~Nyl_OGb5^JP8Wooruez6;Jyk9aG$RsD7iC4 zF00cNKNmUV7qcg~x0&F#--(hxP#H<%Wicljpbko#K*O77eE z^=?n5-tDor7fT5$a@d_?i02CNJVUh8bSeQWRXJba7Z|uN!3kBqqf}GnLOc(p%6FL- zE5YAG9I9M|pya-fU#|+8dR5dr{nGr>U2HO3A{l;QGFXrJOXC?C*dOzBshIyTWWF-; zu3B*^pY|m4mrvrnjELcBPh1w2Dr$)_m7o@9LIq=Rgy8@?&X)rnxl$F={RoN3qAL)T z+>gnq!{&=Av(F;G6#q&=U1dF!K zLoqM}GPARti!rgja%^9V!`W*1oG-d-0i)9~uERseiaH&mBdRy9Cry7k#?KJJIxN1z z?rNSPt9F#Kp6cN1SNN? z=w^eEIc1jJ{n+Jgg1X(Hi?h0Tp%(E0yNTO()f%00rgSoQiS z;!y4n2ukiT{Cefc)GL>Pa`W>9_qb8|qbNOLl$u6@S*h%k!hb5n=W@50kMUdoX(gGa z&)~W8kUsMYR$0$7&DLwkLEUqB0ac$zP;xKe*Q-jFP&N9z*J`BDo86xb>(9b^(Xeba zQrX|l5o5iumjwNn5SklNS>Fyu<2-}$62*a9*K56~DjSCief92TP#Usa{Z(wz<*GX> zSFZ@da-D*>SMdU-_#1+fdrhfX?cHK37*YPPWW6q!Hw?xPc`-d!vffmxWyxDi8lq&q z&9vl@*E@I#S>8o}n+fpivxS_!2iC)cpV4OT8Qu3q_XDHb^x5e|)`(^AhobpWNb@Af z)_~7<)`x9{nJv6TBZH6c0UUFS?|E#&DscB0$E~Adh(fr`AP_rwDdQkU=UY2^G#yYo zS}xy;BZZoE;*g@+YTc}Ba&1A;I6uCioV6bp>hdJUXJP+lF3o*^kDe)QL z7REb>zX$@H;(=f9hh*&i5KCq-@)ye~x0s^KttkaosmhW9t_^{C_+~l7S;Z}- z6jNhqJSVF-T7^~IGEB2#O=oe-A`TUnLx6Qa`1LA~VZ4T0lxlEWhg-o=RusxghN7Es zlw2wH$^u#?1d6I=b4<#;s*+6Z)$lx&+^aJ!zLahaynx_qA}G1F@aqL9%edfB94G(c z+p~HRaBCZ(bwp@gBh)k>q)17Y@DGt2SZuYP2xN?ax}TMOnvVfSjn@}Ms%S+M$QvL% z_?OY#P&7A+Xaap>MJf+ToxVtGZ&z{B!d!zxF__Vt5H45HzBR5v$>f_|b4Nq?Es^pe2 zWwRoei<8?zk)+Kd1>KfN4^}kvt%SaH9DSQ1(8-Cm-j?b9ma^>-DY@;1654vaB5C$y zMf@EQ`hNG0c*bSC!mxV+qc4Tb-ng*5AJf3te7!SKaj!0e=*AJ>ZQe!LNq!CaqNewE zB~D`#zXz+5Za_Lp)@}%JMXpHUid-V)0!pWf4PBq`VjHjb1i|lN@aAKCDw32V7kIrV zBHin~m(ce%bn95)R%^EpUVtx&r}dm9=p=ow=Vao9Js6V8BM!axMNo442{jvp^vQh) zy`~6$e}gx@rYe%;Th^-)>0YmCLZ5Ev+KoBE8hm#E-a$3ePpfvI5RxpsYTPjd)ws9Q zQ#%N+pxwa;Fbyc|Y!I@b3<>Rc_0Uc#)Xd49t$6QZCE!reILv66#)m7C6sKH(j$pbk zLCwN%iQ~^00-vl{0$LGzM{2_}jzbVeSb%0KQgO}SLY%ELfo#H#TuG`Op*Ma9o=dJ% z*jar()zw8k>ewfEU7ZVvj(cz!qzcq5QAn!akRMQi>O!jDjNOfAT!kxmT!o8}m2I!$ zN&H+u`6zQALo1Ti#B)a?9hvJ8;1C4-`o@mz)Yt{K;Tqcu$|aLemd8G4`bA(MA^_25 zE0Pw?=gb_Y`>dHO{CRQwqZEm?Bh#1Qep8${T*UP*mNjHcHIGK3DWs*Jl!WTE5sGh>A?|rae_?r$uOx z>U2etTIB+7&aWcfoAYZzKf}h+{{u z#|WN{w@~#P2(Xb{1hPTMg_0yH8?WQH1pjS=w~FN)MUvdhI-ZMkuj6?_Ki|-smWGb% z1Lyac)-ZYNW_JM+pe324wfv5-l6<_D7ZQhuntm4#xM)_u*+3ML5f_z_-S-KaxGa@| z(M>L9XxrROD0d0oz)(LxfD2{u>wSWZcB*u7M)HcyZX#HRP8IC~Z3XekztpeH-%gRKTw# zj@_EN;N-auM3HsZBfweQ;-3vdA!&z1wxuiE8-)3D!!&QdQIVt?}=D9C^_-Uwq48cCu@WLv<|G3>*(!jLzR06Dd8Sl z2B{|TP7zD0(vTlij{Fj-zRLX-p0P<)@VIvtA)Caz6i?#k0*XrU?`GJjdos&aZdFO$ zZvcv%x(7kY-HTse$jDiREEuNZy-#TOM`)1kw~C}?^QQeB(!FVaFZ2ftT|F|^lY3)) z?m@hR`A9!)zK4X6WZ}*CFmWocrhWvkpyZ?Lr3O*y8Bp0vXv&3PA`y3uh?s)-c z15rcjy@UXlz~a|?0@=tDMo`_pEbPBV*pTNH zMUu*t%k8U3_ZI(~&|izAzplve)h)SFr8f|I>%WQTl6yRh}UO|4`QQKgDw zCtB=air5KKwWx?YdU5)O4l@C0`HXWRjc)5~(<&YgIo7uK0u*JRLy?=gw<%37pf2gG zeMbT%tVzsaA-5Ow6P(7g7Rr0r1~m)VLX@IB7)BbA_}ixv?_ispokQEF{C4>dDcO> zims5*Ee;Um%n}GnZb{Lzd0ujyZ`E8Yw51|6$h5Q~>1^?)Tn6dhl*}b%NlxB+D-x%%8qt-I0+m-rP;#q?NHz#LQKE!1dKX$% z@T(cTx!~%GBqhiNUe`5{?sZ*L=xZ6eCYw}IZ-;7nZM=k*WRTW!9bqJScrDi@4y)<) z@PM6#0?r1ah|E~OjO;cbXrh{?P;`_H8QNa)?Xqqo#9*L}5tQ5}`1O@EnT)iO-c;D5 zBWy^snIcJ5$|bfA>E7C#3w=x+eXJtGSJLE4h3XM{%a6lz$z_F|ZR&)VVJkv&bAI&P z&2SwzM(m0_UI^81%M9#pK#v%YT3#@w77H%1fuJulvrxd8s~gDp%ioIOjt3>;9*SDK zW4F0^E=Xb}6dpF`t>(FaillQjCux$VXvm+WlD~ygZO$CBx-Ah$hHQnP2+nVZackCGBz4C-1bO^C-6i_8pw@D9ISUhP;xs8+3E+f ziPsN6+80O*)}C%BW52W5?_%t~1U@Mv?ka{2Awy2BC~IlK-Sl#33+|3|7=vqL=E8Cl zL}?GBglYpv=HfYFIUT?Ww{d$S4M-D(w3i{-0h~xpNx8Sc_6fl_*y#NZa!%6gq2-*6 zbjZo27w}b=M--g*MS#Iq;aWzMNnBjas0=rPHAMvWj|f1Lsfwf}@!!IYO!ozUn((K` z@efdB_?DV%>Awde^aYubV-PL5 zWAW>=pX6ne5qvWpC+y=RY{+qfB1t96&GCsy_hvpx=qJa~zoN+S%`v%Bl~WLUlb?!b z97-zeY}3i8e$a}w*y>|!%S6WyC*+1#B>Bya;p&NS#Cb|f8_!SVVYwQtSRjTcK z7>OS4Yd}D5o`Im`zAkLr_b?J{2ubsWt0&GBjk7`;ydgl&8?zGItFx6Z`Q110oOCx5 zWFCE!p$#OLDY$RpEyVpcf|5H2zux)CJaRtZ@wkEoo+<8JV}G95pKt8H99EHO=hMDj zAW^6uxyuRs38)(J1bZ z88&LMc|tOGC6eG+S0O05tMTg{i=3>cAJL52PekCFhybMesUk_O%K33E(|v|qC;aQ< z_&-x*`2GgjQo|b%`V9Fwo=fgVVMjA&Tu0k6jpv#cr(%P%n_Xy|+>3R&=ycpf8o7WH zq_gH`kx44ikUv{la|=>^r{h*U<9bBFX9E$15pJ)Fp9?4?1^)%ZaK>yX8QmQKLMGjb zpyYmuU!O_jX_++4!0oSu_Ui}@Qr)FUQmb6x&3QM{y*Ym)^m`1wqUUih-obFBpElfm zLP)akhP$6Ql|7H&;uVzq9Ri$mDC}$yvY-sm(^TEaCgE4J@2m#||DeHJMevX!N!DfU z9!9#??h&CsYUt&j$Cl0R4|oUdNI$LJV?s!>@Y+329QHi^hzDHEC*W)#im?8ZWn}jh zK@&X>%0%CInxXYPwuEJ#LA2za#jnqPl9x?J(DQgs*w07UkmChKl1h{d=%0}8%jchk z{$d>cB}FPK%+%xDTt3zi5=O@>pTcQ0?{J7VN4T7!fVo|okkkP*w!|j|pQdtY>lSdb8*Ofou!DdQo zIn!2f^|%wtbsoje54MbA4IfTfz$`mAS&>24JYE5&x&t=`gy$ji>HwU3jl+7`wHfFv zcG%<{x<6Qz3XQNwqIDiukkW){PkKdmNM=Gq{+p^`UR7#i(*`55lKUIL;VG{n!102@ z&5jTk0y1OJr{QtIZ-~O1Aq9?J_#9wg<}JNX%4`If+ixQsj?2^MEZ^Kacmu)SMSzva zLbuOaGBOvo6V+D*PW4Q7?-`BvMdJgb(KIxCr9vMH>!T2h-{_&!P@jM3_0al!jCAP3 z@dr7A`zKyNolg*8J+81#9kPk5b0O8CbNvr>OZRWnFHoJa3{rikWLZ3y+;W1?1|kZ7U%o1SE})PUd<su3EbT1}CpR=L2Nb9JP9bFLxuH4VL@Q?eG` z!EmIXHr(1mNV4#TTZcH6osxC&3QDer0K@vi&ITb1$^bo0)yhuE`hwrU;LY(iR3yo| ztldUP_u6eN^i2%CqEoUd-a$LkPir??2uT)RyUmEhPDvdeN^WxjX9H1$^~aQv-B^Mq zIwh2ezERJx+$kA{C`R@1>$9KatqPp~ik+OWw}`MI$CipDl_+;gwnDlupIZxkn>hNm ziVWW=Ay=xh9YSyN?eSc4&$x0A83D5^$!Q+0|iLu!w#a7RG}e%p^E2@ zN)5LbfQQ=&FW_T4BPh9DlxjPMC;^yIwDP>dt^#Wa!BA~uuz5HkVba|MoRr51(+;~M zJzm_asp}>H2vY8W0QcO9qBVIGC|=y>QzuUpfxRLEkZ*5A((?H_c^{~E~>8V0aO5TwFo^rYoss6)# z8lFpTy5O^ch(hxNs^aGYibin{WEg(9S4!rZkc9j=2tmmmj9*{=$jS0!L?7;lh`^x{ z0Z4V2B1x^vMeuN@`wTfk_|0+r7Da|{BgvK;&Oqohq!rI4*CuRR(jU6E?t>{#?!@_H z_+Bp%6&JQKNDX+;6n0YfhWz)HBkf4_O=Ab1F`_Q`Y#^f0J*bMG3n&}qoyE{@8&Ro? ziRQYHhAinufThj&^;tqz@gh>S&FB?cUxWr>j#MP63@+xwdkW(adgB%GTyp)wsGJ}e zAapJu{j|Mi3n9tE+iMPSDqF<4cm*ZrA;6fru(LtPf-*o)Q?;^1JX-LB25&85Ns%P$ zvUbNH-D`KO(2p~8?E%vm>sDF*ZPDzGM+$T#m$Z&22rbFT>v$q@*e;%g2i*E4;A|j@ z$b+wxk=-c-O|*-YjCpY?Lo-z-~Y8WTX*%w|`C8XGGW#>FbIl z^(mLnGm-9#=UGBOJC6PhMJnpc)OS0%Qmbzw^m*_tJmbgTps%yppE1U}qBIQydfeoZiO*EUbQQ>+HwXQN@;-1qLMPCLQ5k~?X% zhWsU}7|tV3QWkm{@VEAWgXGX$RvL=;8m%BuLefRa(#s~FmHCEMBV1#?#;1^Mt3 z1i0D=zrHY&k=1y^eD3^IXxBz)5al{WlB(naZ@BA`?hW@dq2FNW6`wml$2(Yy^wZY5 zQ3y#E-dZ;ir?PUt8Lyz^EeLS(g|Kn*1>tf5Wk@)icahr!f4jk(i~T~8BTY{>C|B1t96Me#wTdow>I^oQf&HT~4l4 z(^(w$0#GCM{904zl5_9Tl%K5R`cEImx-PW$UL1je-(wK{0;f5l{K#*)z`PL;<@Dh zCirY1qHyoms^a4m47{hzuQLqS+*A?Iy@7P($(sl;?2KPu?8t7uweH(OdnZDJK<_G& zR45mCBmN!f-iYrB{e45PsC7TUJJ^i$(>D812uT*+W*-r!vex|vUO~x^5tQ6Ng`EvT z7L+03c-~z;5&XXl-rViqiX>T=wfhw5Ub~w0$ZiyVVbk(T*xWYFZXvvcdSsARZ((61 zd3f~}Au6lgMe$H_iwQUzh$76tcp2F(LC{3COQGl&OER>Tu(@qqEn+axQV6iJ8Nc2O z$Yi9I?=r$(Ho}H9%PEpnrCd6fN4mH63PN8oj=qv2!&koKN`+QN=q# zKu~gf2s;~uEGWYe_4=NIpJ?#rZhI+`WL?&7Z=`$e_7VCdLofHHw{Lcn@ebONepMJ z75V|fJ}|%i{g62Np^6M&p_40BISipU`QdoR`eI>^ph8z+ zsHo5>OFB!MMKGNu*Q=1WD0KuC`V0WV*sTaKx+<&@Rp`_ztk4U>of+aLX3yL8Iw@u@ zAU-YC!7x61-ia3wC_qqhv+(P4pKOM%(7Oz+TWCFoma5QA==oIWy&}uTsYqH0 zU!gmud)Fxnzdw#YpvdqQI@!`7vk`jNnS*DXXf5ol4o(Qiylr7hMU6g>__=`G)6Q~~ zNF)_#$loAmIU1?HMjym8PLvRQHV{!1onxxv=K=~yp^s%~SM6$KBq^Ue4gkp2;}Kv{ zGk$%plHYu*^b>`4QiKMHPF5tT5eBmHo)Ucpp*Q0xcrLk9g;80hpGN3hK>BH;oi2nV z3vaZq5~s3C{~BIF$ukgO99G!bAY?%qhN#ld6#Q8RZw`01B1zU|?Y@C@uiZC={w+f< zSLry*;oEoz?MOeZ-8n)?vhdoSOB`0|=i#B`&KGbt5Jg!3f- z^sQl;?;?tWA@J+7pX5hcrC%iM??>2><6=dUN|dYgOOWo%bE36SU2((Gq zApAtQ*MzuQA7&Lo9lQ8H)%&EJxqt*{=xZ6;`Y^+C*WnFBx*h=zk-)F_9x{qI346x- z_+QA%?gr!ebMd^B07>@MQhI>>9NfzF4e;`g}qx2YFLCMDv z;4W}sXM>OhWf-DSdP49|8oW8)Q;H;6=K`#Q6~DvUl^7frI!)Kievox>?iq=HcGDu z`_%{=a{Nt^q!Q&u={2PL^7*>Z--x5XsmSn+61h^9w-9=hzm4aTdq>z=-5WgINDdab z;?jt)T8@U|aXH)wS|(g05w=X24M?<2R4ARV?@FqqNgDFEtGNGNsUv8c-UA?f`F#W> z_kplR)HcyHVcYbfa6bxhd0uRVCA8pIiAiBGpo{l3`o|0#o3O(G3w|Rbx_{y|g!=>m zmi^+_yAxT)TdBQ(xS%ZV{%u@871x@KxHc_F4k)W;z9CvFp0sr|X#W zX3WB(5^K45r8e(Nn7&G%2#zfp!Lgk^V_Vz%-6BBXP1}PDb?nx$5b{n}9YB$w1Wp`> z1^~vPMHj<{WdV*sdg#W%OW=UPX#jOB7mPwsgrfc)ge8Od4{G-C ztTR>Z?3M>Cj7;UrMb%%Gu!0E16bi3OFq!E8D-zERm6{)?l>mw|u`&W2;~~m8#)J5{ z85V&WA76p3DyY>ANk8c^+*M%~##~}}cMfl}Da`H1jX9Zi%wyre z9;==T^=@@zS*fu<=yeToOly2!bWHb}L~mTMBCQ3QFwNQsaACPb$OfUDw1k-^gUe#z zr|Sx8J%egm9Oo9))$N5vE+{pb$=H3;k4s4_^Ll(;UF{&sz#z{yvb)Jbfad1T?!I1! z)f6~nt`!?}JB!_%vF++@Y4b!vOV`&n_Gaes9-{%w>hgpm?WpO&bsk*HgA`oRsZ8Pd zNd4H!fJL$Oee*yX8Numd6mnkkiBFvHHdOo0vD?nV8!xz_r@48`LDTlyZ{H~m)Aj<1 zjKAl{3t!vT+mGu-+1lU+Rvx&dk0I`ysm#<3VKCMe8QCh8snG$^>m%Je-UfIsxebMZ z@qz!}x-sk0^U9TkFESg+Rw?V|f2;OstMbSN%q>3)d3V`ZF2-z%Z^{)G*dV=&Ed(fpoiSAsRi&@0oNO_y@j)pIeHT8gpLzH z)&PQg7BRoeDK5*nE%2P|gnH?>WSX7q!Io+(M8R}x1i1ekzg|LevCab)%mZPC8cbvP zQsIlM+ZIqj-wpw0Oz;cz>Y$Mh{`+dYaCQiBYHPS;+*c6Hh8>lX%<6JB?1Xg4wHOc$ z&Fzdg5M~zyCATYny)I;B*0#k^K$}(rb-sjZ$Tff$gxC!M&fmr_E%Ie?OBr>7*zOUs z<&bz-FVdoW>h;hTorv_%HBgtjy%2>adm|{heS~W>oMe(PXSN3B{EStvn*=&wFd0F~ z^*pUHMX5tuV}GQ>8g$Gus+)?pkhu{-$xXwr_c5|e z7^SWToz4-rC~i6^fb;oF`7j3ppfMHsA(F)5}fGb zSYsKTv(b{7InaZ{G0>QDqbZuf=H^B}z~^C+R;?T8>ERI^qr<~yF=DC3T+Pk2&AST^=q$`BI2;XvAy18cLK|+^ zZ7JejcJ7;<(TRn;ylrsh5%;< ziDG!S%IBmA*Pt7ex9l7t(#;|10NDdBO>ab(wu_mIC0 z0ZxO*uP-NLnqZ=E^&r5(Nci<;CYywr$Jd~a{@ex0^?@Q-9f_di9DZrRFGe#m zj`}r4QSJ{Z(;<_EmlhgOx-8^o<2l*Sp_9`w=P#4kQH?rzkEE&W~dGIcF8QBT$p9>*G?qT|i5`jo*Q2H@7& zea|?`08DxT<)Vt5R_JrRJO`=JHgv^!oFq-UZbSZ$QN?(?AR3!?{DQi;6F>;|J`q95 zog}K+FH9AAK$C~VbtjAVS3=tCNQD-p51yjeNmUJ>zIQ6p;X{i8OJ;Yc;ROUf9Rc>- z;Mcny*_hkeVzD)9P)3K!Blk5xgUlHSFwcu$`q{83l}eo{#Ir)gC2F8lnC;Z+Y`q^^ zt8XA3TCu}zSniv619`rM09$bI>(wHoxLWJiK&|oAs)Wyi` zjmR7a-^R+eMzRHe_7~v zKf(*G|Ln67-FP<;6{6*l5ZZdX(ODJAVt<>vf*duJJAEmTqbqc_cJ`kZ-9|HgF}!Z; zZFN5e)95F?9qQGB8qCBDGYCPbI1^mKLfeZlc zu2EdR;C{;I>5I_3?pizt6i5?QkZvsBUWXTj*pbgTF$-_V=6Z%UT``<%x}O0K9&!VM zlKVM+eYvD~QMtqi0*H;O!AA;!ZxrxN25fI5Cqb!V!3xK&Zx-Y&206sob!?#eRsqHe zg1ZfGf;*NCZ{)olv5qBmBkyxj+4u#K{6O;^h?Lx&d7V#;6!rf~fj|L3<&FN&H{(Ff@2 zZO_c;)n&bv2J+uE_es`RHig6QFGP8AzaSc$)*MzF_gjF$PQOEd6SIVqoevHyNQ1#2 zIllFPFdsC`U=&)>FgB)_ zSS`-{vco-Yr2Z&UPZ+6@p+?&Jk;*4UXh$fpI6%po%!Ylml$4)K=( zeg(FB775V$IRv<@0l!{rGFEj^9)%=!g=e`J00itmA;8o(e(BLEut+Io;fn%($$*1R z7p|6te^IJs;mdgLIKCxT=`}J1}hxi~-6Na0wQ<4uuyDRqHgA%|2FE(MSsV-Pl^JVqKWq(#pO$3viKB z8`$X9R^Xjav60CZ)C*R~Ytca|6ne&Bz@$K!mM&ZY+MlUA@Sw)M4?JjM9fw5*iWqi5 z$)CZ4Qbl+MFZBs;hQQt4tY=!`QGyxTYzrYBW?LR4k_6nsNP|L)Ai$LzB4mT;WN&qE zG$(-`QB7rebBh`J;zD1-&~l9Bg1*GSV@dl4jHio zMKu%+w~7*mHr%R6hvCp?sZqV=R>KR}Y;^=Bw}!CIW@MDee>zaI8gy$Kfwe?nZ6hF8 zOF~Af#2Tb^gtcynH30f(kT4v}Mxd*R^DVJ`nnUWGR97>_cEwtR)J%EYhidEU8VmjG zffv~$&36`Cqn>HOjq`o-OdhoB>c&H~>UH^gk}PS?hWsm0U7is{qXrs3zwB;(kU=(V zfB+NjqG^MdpPwd_qItubcOy~WIHX*y%x$8yq^?GUmG7oVPnWsTcniTdLr`*cB4PeR zhVe2t3Yp94Yr*(2vSD;u#aa z!m#u3SjV~P1jPwy3{pdZ2M9Vzzajs+#*PjoPI##fN%8Xoeti%E9HA!EY!K2Xca#Gw z3YAA$9U}Nc4c?sSFh!DlacUgiQ?J7jdcBUobICOe!#?jOOxZg#x}^^z|8wg%b1lTd zDOe0r3eFH(l95-il{ofYT1m4F3DC5F0N0L)Mm7i;QJx_*Z5Mop!JDR?iX;UnYZ@Tk zYdTBlU52i{)ZQ51#fMj0W_pqLighCis*+7w)gIv`IeArkiDL)#B#8DQ1-c%I0JCQz zk_|#mlqjKV`Wo4yF#8SDv>s3-DN8Q!em|S(-tXrKe{LLq-Vpd?MgKSop|{%6crLj? zVVHl^)p1@eY~o#sIM|oRAmty&2rVgSL;g(_fMb#BTc+diTynF3%ujE+Fl+k-jeABzbS7Gl^pZS)_CpqEPN^1SR(kVP=Dn zJb5SF$!qmZ!GFu(&56FPNRn+?t8eHcsx0Fq_wg8$+<>KoVL~Z5+NzH zx77towT1FA0o`}-9!9$mLCJkrKv}J(j{$)twM54uyfN*2g1#t(UIIFMMcGb&U+*0`%Ic4-YI0;A#(3tLr#``kyzT9{>Enp^* z`Ox($Uj&w}&3+^yt}r3Y5r3>m+LXRFyOQbNk*^Z|)p7iv41rHp%!+FedPn{#o=fgp zVPtg!NnPCp`KPbXt|L}1AfL4RT`$C>s15nIRiFI~slGnD0neC%5qvffQFzUbRq=6N z8s1aXn;4q^#-wsL<29V;76dp44ZprdBbWKsXtxRN_6QAf{6dkW9=X7q><*-Rliexw zUmCh*)3(fJ-LDXbnMgZrre6yh;n&~kxAA1;Jy<9G6$PK;lw zvT8+%#&WTNelENy;u7=+KnLPdrnEI46qBS_-Wm@Pr|}C*@G!{0ijN>Dxktq@8-!v} z*Mt?z1(Q$JcGHCW0RA9?j~T(HOJS!vd^u+@r;?e;X{lo8QH8qN-Eg%8rfa!a9~Z~> z1E9TtMM~Hu&=$^e5g5kf5CnQ$G$D0P^ zKVIF}f)hA7GTseNb~k5pa|6baYtX3sOU_2Vf5 z?gb>mU;l&vlS}yZRT|l=N(+aV*MZ9o>tF6gBlVI<{l!Q%%@++WLP5i+$CritS3|a` zM`-wp;xd_g70;EEjb%;$##j3~F1Mr5pWSZ$0By z!P>_7ygrxT;d3&BvDPBHlbmG3h--PSue-&~LS1O{ds+mLuCV;<{J+F7X`P1r$I(FP zzXh=eO75o;v1S7~T*tjoghJco`Q9}3C?-u`%qq{0$eLEssSxb3v^q;ODN^T&q19OifE`aK)mfHr8=F=~R_@rBX~i+n#ho_r zdTp@tj^p}vcFO?<+AWWu2U~Lf2qgxw=~uQP^lL1SPjNe!Y#z)7xkiY{b<@ z>j-LHgKE;-NKh0w4%~*Tjn)%n#vswb!zxS6%9PtRzaMseLBvXk+W>E-Z`7@mzI(^^ z&K&Ef^o!i48*WS(%jpldAwcODZX-N&)M_!(r%}<`n56w;q)iaPwlcoL)Z|9cCvP0s zH*5@7-)Lv?MB59hFA6uBgmVG4Da-B`Cv7HbG1jnfQOmKASk)9 zBA*RH8K^-;omMZXaR$}2F;rqh%~f+5jQ?SIoUN3c(b?02uX)sG+TU64vcO2`E^@GZ3$TDvlRjy^Cv{xay%bIh)3;0@83q~+ZwvH)6Dz1k8TGfV(N^U3odhaLCr1$SEs9g*y@_rMPt{=`>>?*JZ z1C#4lx{sf;*i8^AQ%4o{?nw7@7868skBBD9`<{v<<{B1h#VW^13v(o&Vz47Ok#K&_ zVlPB+M~YCxVf1|zNzh5mS&%(wrRFRqiQMEkx%}|tR-$M_k=s|~_KTC7GCa8*s*+n~ zDJ_59U*x97$u%mHw0R_vn}&2hWiego2gK1290Hx3Xlq`N7Y%kCgb1brgc92N5Jl4L z$%^=gBJ>|Hhv6A}h=gHB>h6v&vi4p#&mBSVTtEipTFIB-W?>|GG~^fIfd;OHIE^}? zHzGF!?@$O@5#UTep=X1T2c=LsC=Uzy!JLBNXBxbH!?!Dv?pi}Zbu`)_`Z;{ zLCAp;By=l}7%(4qM)^Q}6;ADyMB^BvVfr4cNK%?|F*%OuzMLE{{1f8%Ck}y6R`kM? znC|`PWJEC3FO;yHoT5mYKUop~RD|B%r{THeP8UX2lL>Wo`QF)uVqKm4D&cbhIiyYg zHK8P#G~^dkK{*4demL;!crLj!1)mK>6czAURq=BH1)`8=Gqgn|lE-}mFOX;7L{M_y z!mn>^NFN!7oEc_ny{=-tZ4}_3*AX*tYUr$5 zcRte5RlfiMt^*OVFas`BBu$w@P`B?gy&CCS_dO(m=tT%H&`vmXxK>2(WDtdNdf(uf zT0TtZozpWoeKGq4a~A__5_5{8bZpzvzz*#t!cEEm=08vZ*BoDpC)@#|csAIKJxm~8 zRz`G}irTy$^8nyUOlpj)C+SBx$tX)zf16U8+e0os15a2;kdMKg<;T~2bY5a2Wegx^h7JO9be=u}gzthn<(?)Y=V-Gb3 zZZ(L(Tag`i3gONqhrtc3=5>z&3oc6u(zWE{BAFDz*OGrEPPkrZ#QdHB5^VP*f|7em z^s_-I1oeRVWWmrv<+jVWI8O`n8N;*|>sdvTV&($h;ylN6-{L$k{1@W*e;NXxtmvnI zM(Az*BA!d`C1Ke4uw3}xkM`y-gw6$|pSI-7LP(0(kY7se&0mq~+nZPLTyn1pJ{yQA z+~IFk@pA#ip@^?Bv`-sI<6cJ;R(=CP$-RkR@1dk__8q3Rc}r+-M`+;xjv`6c?ed z_fLXWY)r@n6p3c~grO}&n+f~;3sJ0D#;>;z$wwu)!V|s!d@7up4LuHwGfI)9=w;(9 zgmiD5h4EZ+ix|3g!y&)?D5F+Fw9FXj=V1)o`{Nb`AWTN4X_GA`DoMWHWQ!BkcAgE( zVhO;(7E2<)y}}}y4MM(@cD^NYDPb;cm{uZ}Q6wo@xkN6@bZ^n+gui?oe}y6N$%^^7 zB0_J`mGF#vgN0#h1M2FgVozS7*nv{H3Ndm4d87@vs*sXmHsqI4say@IzErM`XDkL5 zd^QkKWc->{@pA!1qL^zjw8iphPg=36q?6Iv!hgAD5{lGGs= zcvEeFbZ@E+g}#xY>pRdkp-moi8{;MHLF#^McZRgVCxSMlp@MMlGy(yVZD5f0?oLXo5rWkYR= zbZ@Awgub<*H=*#=O!Fr#w{U71oBgnHrmeGxP091H_@&LY%yHWQ93~{|vJ61%e^N%_hpb{D4m61%JL8{+u8 z4S`Qq%-!7)dh1TWGw!hvhK+92)lKZ}??rLlli(P?Vvt&sHc=Q!85{D;skrWiR9{^8 z#xo8;5_~ogQFy?ls`&V_#e2#)nW6PZDUQn{4m6BDDP@Gzc(N zk)#5-z#FL%>E1}wgg)KSqgHg{pgRDsU?P%Fo9IBnCpmZ%aT~Zw>OpwG@RWeF!S-0| z#FBbQ8QC35&_qe4NVL;o46PMyhkXu56qi=u*V~8WhcBPa!fA zPMgpRhTe1n%4Z#hy$h~?z!mB;81CkrT{jNR=pN|CLI>L|!FO23&{7+gTP$U0v2AZm z>BE$u8sc`$`1OWYhPL$7wsdiC8-~+ypy3=8c1#)Iq$BNQCfZTGz1^8ET;AJ-JfT+U zJeesmlZyE~X;&(z?>q2>dxRAa8?v%e%%7ktpSE>iY zIZ>$&5S=u{G!br;7kY7oa>M=<5mFls0F1h0bpAAG5PI-J){9HhJDB}qXtx}~p z?nK1lk0&9(%^djk{z&rktyI4vv{NE92ym(*Nd?MAIt}UGNT&<^tA?(Hup5xQN;?#g-~WO5b|xj2K+gKKiA;P10kdy4uqU1i1Q61cs~^H0>!1A`wpIm z67NE$nRwk`_gzGBLx+$#beIcBJ`xY(ALXLs9sVNWd_TfL{#~p{(zNCLy9DVz|9&9! zOATEc%%&EKeH_X_1w79x;~BUGIa1!!5fHn4FcS?A#}?~GO~=cwt?GRE3N0QHQeijd%fYRL{-8?3RJj5 zx+eXZ=-gm*tS0@rB58g6u+EK4_l|Xw@NbUe-!cR~Spmx;(^6R(_cK*Fs400P(ws z@&hcgfNXc;8ON6hG#fk{4tdhy{>q7`IJ}T5~ zK;jUM{3Q@QYp7w?M}+yPVVaNqL6M{cxT6~HnaPhK^p(%!c*eCD!pN$3!jq@D?iD>x zuFT4`SPg_VV|dA~W_|610xqJrqp(>A>1_t}P+doFmkq^YU|-$UE)0R=_8xdl1|vZI zy*+h2tN{ykyL)x?jJmW;=8`k2lCHU)kZeh98uF{EEq_v}wqW@SNba5j9puB)2uki5 z5zT59^cNrsm1y3uo_kiLp9@KI!Olp`#X9hL;Uq0!#F?KjARUgyFZ%gsfcq1mq3NFy z;K~q@w)&9*#_LC}L>nr%+)GB~FQW3YQPJA9p)ew2%%{%$t0=x=6wRMsRV1yyuQUI~ zbYEw_Cj8gq_-`muz4y6L*!v_~+VV|=zHGdO=aPF{*nY2BqmC)TBm=sj?+_;!kYn0y z-xXR?=!X27a@)Tn)ptSP!*j{KFZgUAqR8|Qs^Vjy8Sg3RhYYPYiDYsg;U)6+9|%hB zWBmF)7I`RdhntZ7r_er$&>+RX6iI543%t4hjdb7Kd@A%Bc(!o``Y1)x=;TBt7Gk<@ zZWcxaqsWGzY;G3C>vDZdR=&AeObAIHAig+J!sccPJeS;(0xdT;wTyr6=4L5iS7~mR z#%ne=Oinj9R1%t3Yi^c7QpqigUp6=Fov4{8=k9Vys&0ejg;d1`D|15;v)!FVt%*wXrF`pp|j! zfHE>`T?8e!p4em;JR9UZb0uuAGGexV$c(EoQ|(nXo3g>$KuAe58Fd!>4UrD7L?KQ! zSXD^6jQ|eqH%3r$n~1ixSQK%@E!L(+WwfYlW>n_aVwpMS(_+<$;^s!t3c?sg(gyG? z)>x+d7OP(PAu?C29c86Rw$`n z{&sj>u5!rASG(H_A;|;8#}g&2c6Y!t4x1vls z4pHsyilmZjz%Q#^o_#Z|x1Ae_%N6f#NUUy!-Gx@g3KNh37q3cg52V4L_e4-~6Gb5# zkOvANrI~NlyO%KcHca!leH2Lwf(y>^o>@K#p|5%;;~5tn2qW9{cC5DQH_h2AFITA; z9M-}5ws%C8unxGlsucSXaf&l)UiAO_Fh9v%*mex$Ajc_cqjzomCa5FnDm8I^rU8T1 zeFJ@1S%P!oxV;fu_crx)KCvQ3SUx`o34K@rf}{5B?6-O0M@v-&inuFBM+-p>+{9Dp z=EnwYn6BXWl~IyrY{;*xUfX_3ZETwIC78@j0daW6{s=IsB2L*ag%gyg2cVkg;9jHn zO*4MM9DD<_2A{6D?BEW-b8_^I1n5==GPHqE9*XF=5dlgZgaA`9`1Ku7vazb#_L{8( z6ISsLcZd-2zmlfeS(&0imB1GZG%TUfn1)Bwz%xJR=6>C8{6k8Q!s=KV4 z0SKttiU5m@Mb26!3KDOXdO_nq?BA|n!p)R$?Iv8)e?gEai{{gYc1X}p6Vz(7K#_C~ z`8ISG(|sG-CH(F%r1Kcs5OpIw?kGetDS}^L zxJW)KTvZqN3<{?d;eh)wiX=tP1>Qc#BHi2PIH4bJ=uH_obl65}kf+>K;5^Sx-Cr`# zod95%jf~S~J5iL9yuI1}zwX`xzRlu}8#iP-lR&}<5GAZ6jcqB6KpGO9K?sQx5=S70 zv1LoPbe1LMBxOLvDo~&VD0|Z~3N26yw5(EQDHIB{tU?(DN}-GvN`V4pyx;Hdp3`_9 z$qtbI|9#)&uU(=>Zufp_WCj75_g}4`X|VN zt*%9cj~NK9t;neNK6}03{Iq}rL){<=w-QA|{fy<-Qa1|zO$J|j6Sf7eZivxyfbTS3 zucTABPD$e|i6o|H_4;N2!-C}OwcyW%lAF1;;4g?{I&Gh9ZUHQeax0>|zD>ybmBX7- zOQ*GJ+%8ae7^u)O7<(3SVn_{|SI09MU!(3>>syqJcgh@(`ScHt>iXJ!H5RAixB<#e z54mhz=jbgIthWLOwN}}>wt@RWjTlThx5ZhMrTRi9W!-8#o#lm3{H)U$>nt6l>0Y!G+X8k+C zaZB9TR44WIC`#=Z`WT+``f-8xDSm{+H@tp#pwGzn} zMovIF{sONd8}NS>_}2}5(O-bnonJg}2*lqEgxb^D-|?oTMLGQzo~w!XHp`4tI*g^? zK@wd5jtEZa2(6UlQjoH2_G?@JyMpsx0S6WNPf55fT&&3VQEn^pUxNODK@ZKs54WXB z{A|aN-i?7U=`+>pgVQxSfedz<{Xx#zor)pN^~;&wp7J|ipv-lF{0tafLsxFx)>OnU z|EZ7G!&X!8Tbk_PaXLN$#7Dmf?vCJS+!@#SN#B9}+uf9lSyT93uzW2R7lPv=Y!(VW zMtJ;e*W!|9yx8dUz~W3419+s?&?|+<*@?#C&D_gp;0)hdYJoE@a#>u$lI6X~aI7fc zib=R8z#8#3`wzv$?n<%E{v#`3(XRcVZ2ZO>up4D0tsM=O%dT1 zb0g0GH>}Hz+g}72U<4?1{ehA;#vO#`YQ`PRvSQaCf+UoxMTC>g5n3CQOR0@{u<=*w z9(tG|JzPkSFr-6YnM_f4u8)iqVxt^lTvDmf3;DBjGXZh8chgAO#zvzYX5jrGo^Gr+ zM81I{7f&Tw{pVwoJxLb<2TN!af{}ZAWDzEI_;hlqREuwE@ zL^pG=agy*>pj|oHmgV*>w4LB@Uy47z3O-q}0r(Kxx6lMU@va{%eG`tCD=7t5#e&sS}*~0uH!0NWv{TK5rqPT>XfxeFAvKHVwh>hsL4N&rL+b zcp>vBQoe!s-gVxY8NDkh1QdCCEw-BwakI4++nqSgeR9|XV6en=M0vfZQ1mN@EoFr< z#2!`W{Cf%J41;Of+qWg*7OXhupUHCD-u4#!S*7^1tKgFr?YR$PYtKeJ=k*-Hu$$xM zk{C?$=Mp}k$iZv9d4l2=vaxBpw72;vwbT54@r>^>0`FHs6qUYTMf`xGKooKzW3!=F zAW?Clb%ME(TD#-!s zbTcwxB{J|@X@y|8c~~n2iNjubARcfxv;h0fy-E;}u6oYhX8K@)x_TvrqNxsHT(U}X zfIbvCu+?FR^120~wG|ol-aii)oYn#kA7s<)>(P3OFSBDFla3?fY9}2g_*Xs!6MBPzmZ{0;j3Afs| z?mCIn{6DW@7sNzMh#|tZ5z)x69JN_jeU48`FuM(=8J`l8a2uvLKJ~ENj!#L!PnF`Q zB~f`z!upSqE!*}=#I|i|Jm+;ru8;M3;JKx4Y?>(p z)+&_R0c$m$^LmZI`;`zyFIZa&~r=&+PHfy^@q4bf+h5gqd!WF^@ZBHbVK1Z#i z1nuYo8pJq85^gmD${Orglv{%xC+OcX=q01p(slZHWWrQr;5F3=g5l<2O?4u1IBIwAn#My;j#ROG-`>k;7^T!hwEWYqhpb-Li3 zQNV#5-2Dd>gR&~3xghNlnFCNOPMQom{+s2zVCdsz&(U$#gUXRnacWB;)*|UPANGsuwLH+ zYOpXR^IG^;VdWOiTKG2NG;bt1ZU-?~^$tWhI9>Sql_MPW?z0i!DVV=9n5GfmB?-6q z#YTKL%WWgRNAT}0#lNo#K3TDC+>hAS&9CvC*AECrX(L{?PXC7B*iFI6(}*7w47ZGp zO>?9XKSUfh;@{!{Yxn}}SFaC1HX6?(k``qBJ3PA^F@>U_k1{T4#LM(!$bq>ZM}%d1 zgtifrQSXiT4}$YV0S9tCDG9d{ICCEP@ZTBtPU zk``J!sRJ_t&h_}K(0q);IqtA0m0mUNc-wU;3*g+;%PYrPo<*`_dbN|F=^7HziSdqG&%}ku6R87Gm36 z-o|rYza!XoqrrZ099XYAVrwx^{5x^rM$O36x&9$&ZlN2S=1b>#7o~Qd_#U3|jX~i3 zN{FHjyk8L?+ZvEhLI1_rY&0myq(49=n!$&NuvGz}Z3g6Fnn5o=ZvQQ49~aOd#V3+* zYk{+XkWVQ-MQqLWA3W#vXM$n&l$&>{9KohPCq_V#hu2tN2$GwPHP)BJ;Yd`oGdXO6 z5PHRqVprKz5`wAw;n_V5Q78)9pJm2e(&gohvjND2xdtN2>p=*uxyY#Zk!Y~s3@PA1 zlv+u+l_=V3D9Wv^h6(y`gC05!J#qoA<;91hm~CHXqd#7ttCO5E;u?cEF7L%H2mJ91 ze@Vu^w!h}5!tPzt*Mbx+8o;b>nfy2fdZ;zGemhkTFCjoJ~^mCOJmsM zQv2pYbPIB-n<=q8x3Adtt5J^_Iwkyjvl{nLR?lEUc56X+maU z9m$#vt0cV*U_o;nA{>>C5X~~Q;rQiBZzoi?cc}30UZ)XI#gr*rgt>-b`p9!8+x*1u5a9entiOq?;^A(8QSKBGFcK{ zwe3p$6qef;%C`i6YAJqQ6@0Q{L#an>dwK(&^V%;M&PqH7pjMnvsRM)$D01-jv}uCk z7P7Hvp}atLB@V~L-SB`juLanzW;;HNdlZrNbb`8mJyR-5x+i0EYLpC%IG=JaWTA>@ zAi{}12<@OqPQ4F`GX-bw0uEZ(EJ?Vv2q934T=^JCEc`bHX=?qaa2< zxEyi2B(5fhpOG!ZgVX8bys$>5fz;PqadSigx5~ES=1OUEXupl9o}LGysI&QqaA3D^ z@NZNOXr-(j=VSN+;j^FNW8T9HB_T@d{qgK>aKvVVTg2G?9$t)0h~I=Lua_XSO^%ET zO%7-aVYH1_fqJQ7dw{TAX4r0A76r3a8Kd~!u)?)UfVTG=EEnOLjc^#fs@-p}LLf>S zoem-=xD^hchi6?+58O2BcsgiZD$T{Dj6M*>a;L#Tc!*7qI}Mf<4&UeNrf{dh!AM}+ z0JHESq6`1ruB;Cm{Yllgn0wBbI#drOv4En~#g1X`F*r;pl*s7ZV^Cz+eGsL;x0@lLt*x#u zi^aCKHlJgnsq(Xr&Nl5)ANImWc%PJyFx(-53#h_r3=-jl@l(+qVB%5T9+n;v3B0N| z7c3qX2%~#78FeRspnDghyp9QmsgPtdD`;H{sMk+|8k4L#ZXZHj_Kd}`3yH(K1iN-mJ<#vj8G7>nNT~Hk3d`}Wy_GCr; zQxV%iVm+Smr9d#u6s=Kr<#;Y?MxRc2oVCu#^BeyRL2)x_Y&uY;Xx}G}dDRu^orz5J zma`DyxFx}dKRY1h}lM?N(?AFig>3j9NSPesPVKlx%5^iydP3lUP+ctHT;Qy!;|LQ9EWJQZz!*Xl!A0vUKdO>m8)U}fE z@+T|eUx(OQ{CYg&xOTxXiy>`w*>%ne&nmP5>6FgES7AdU zAX~5f?iM<3&eneSNU2f3z(wDST&RB^qP)IeK+H%`00BFS>CAwCEr1UgKyy_PbpDN` zg|mJT&*hf`83L?7xrptZ8v%Hzenng8-x(5*3W>)I z2|0tmB6vZUD$`QihaMMlzc=JeAN+$P+{O(k+lQWDxos9t3jR~2_)k~CCo7uf8N{|( z{1MN2{j6Y^Yk1r07NZX(QeAQ{SDSv0SOG;o-gfXOL3E4S*mQ{Wqvug-`_T({#$}cQ z?^i+;wfRy-{D7iZ6!p)H&BgU)V(FJrfcks|5pJzSXzP=F`s_=85wzC|XprQul5lH+ zlk|~KNnS^6jrInfaVMo<_(L(Yn0fIGugjL%E~c>=uJ^5LT++O7oiBWIU+8o-Vim3W+0KlB@Ai_nN0`0E~4IyX&rT+js&xkPi^yU?7CHUdg7kpUM$URcxz2GF1L8R6aIT%z+nG zFv?Z>MDRW}c$516g483QjG$r zoUhy<^d_JP@|z-pf4Lza`dXw4Ht1u->MyJY7*=M)8Yl^O>nn~}gII1ytiggmq!hol z3O-rUq(c$g&NmFtc|BY({2_dBt7)t2@Xh2+(6cabG2Yvx+VlwGW0{?iXJ$E4NVtV= zY&u-Vu2CqpW7lSQ#!9)s`;`#Ih_QJ^d@N-npF(fJxH+^XB&;H!9s>|m-dIGq^bw(L z?c~_!D7KZLZCyZvOxsApty4f*LykkaHRQH}zMVl2&4HLJur?>|GS1fu$AbpL50~?% z;`6Nd&D6q;SI)Yt;6JlH$id=T!pkk4wYZNs%^ORQ37`hkPDF%NbYYD9CCDP6 zs5z`_3|wu8-;RR0lfg92d}m3x^%i-uL2r`nIQ?cG67{x_idD0 z)6Eq0y$!m&o|l{T=&;Wi&W9Ci*k@Fg6@WEZi%=$n)+yND$qkHa10NYzU#$ zR@cFJ#=^9~`;`zy6&+d;KcFZUMLmqMGjA^yOShl^wRAWl+%bUA4h-Z|T1#c4vo%_q zpoI%)kfdD_ZcT8S4e}{T2V!fq2%hsgDj5FITr>jQ6>TQ%RR#v`7A?%aYx!=B_}XTg z_u{NVpQl(}8+QsHw`A7FT~gXC9#UUN3LOIhSTc?XR|yC;<8SqKsG*_IIK^JtEo2i8 zSstQTt~UE=kCeIrZJ?y5Y5~p|;6hI| zGWXF_vx1s4sHUf`l7v@s+f!Gw+%~#3g1@#D|A;F1WJS%7L~I+~Iy_?`Suo5tsJ6PO zZzgtF#8aHGMk8I(y`5y6K8h3qiafn7>S!V27Q3-2CcX9;l-gce`B4pz*=Tlk6hF58 z@_{Mfo3sw+XLPTVZ_O0WYxUEFn_E6>_0y%)ag+U~vgk8F4aWUGqP#v+Nc)Wk?l&ck zMn&T}Kiba{24@=vYJ#&L;2cSdrutkwyMMHk0NcrVjLnaB8c&~(G^D-&5mvwv+9p9Z z(j-c*+nijlFEa2K3;ZPpUd}6!S}C``vgu9-Kv-2Oa+;-~A1^

    4`U*xK|p#0)6%@;0j<3$k0>#-?uR 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 literal 0 HcmV?d00001 diff --git a/documentation/_build/doctrees/UsersGuide/index.doctree b/documentation/_build/doctrees/UsersGuide/index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..df558295a7f42278a51b0804c397613be55849fe GIT binary patch literal 57246 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 literal 0 HcmV?d00001 diff --git a/documentation/_build/doctrees/Viewer/Viewer.doctree b/documentation/_build/doctrees/Viewer/Viewer.doctree new file mode 100644 index 0000000000000000000000000000000000000000..3da5916df7c3f09a05698efa86e8f3c38d66dcf5 GIT binary patch literal 56433 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 JLgF=x{}1ZlE-e56 literal 0 HcmV?d00001 diff --git a/documentation/_build/doctrees/environment.pickle b/documentation/_build/doctrees/environment.pickle new file mode 100644 index 0000000000000000000000000000000000000000..3e71d9053a069a4c644b808debf90de2915035c1 GIT binary patch literal 60007 zcmbt-2Ygh;_CKIff;0gYv0RNMC`o8yFEjyxfWQit7&gh0yO(4)JG%=6y*4z8Vi&vE zd&6Fzy<>0BpFZoeJoVZ2i9XB!`#p1K_ink#^8WdJa?i}2`JQv;d*-&;xpR;0R?(1b zwWG16Rgu`@sEWs0BC%B2_;j?naguLGqH8?S%}s1j5$e&{yfE4vNhUTlz;r6wTy_BV z#lkI-P%N657;Q+EB{mv%T%vnJU0pqNrJ}LAy0T;hyL;50I6Kj^KD0r&wKdVJCe*8L zNm#`ereh6>vYJr$R5V59z1_sd6`?){MiV)4dEvP>$MCHlfr zKR408BGgNTmn7q9)euPx2z3dSg;OaNtxu<*aT7N&up-p6G2KcxlZipKp&kv*;bao& z!L^~D_2Gs^DzY${*t9mZL9{WM*sM0Rk*>OVZ93Gm!3HHN5=#uJO>B|x$lS)~1g`d_K-;P|?;@a#nM?DH=;AhKrk(ZlWsVW_3|FM^wPi!SHidTgr~dvaVSR zaNoiCw|iSU0g7mGpzDJ(CT4E|`*53S`70 z3lh7N#XUUt5_^WaB^wfZg?)5FJ1N~8uJ!^x15NA$_x5!Y`{_nn_E;e&)LmOn?4Pa& zWCK8~YAZ1gmB+h@33S8ko2Wgv>Ea|eaRAHu8W$(TRW#llO)f}GriW9Ehg0oh-W>>2 zJpnbS#5CBO?j~j!=O*dM!Kp}*08WoKL}JOv1QltFrjm&o3E)gOF-yZ?|Dd7)oDH)B zXjTKQ9W75&Vh-%jbrT`Bsd$Zp(fXO${?uv<;D;(}Vnjt3M;eD)KBX}@7k3k_bgooP0uDP_hx<^~(Y<4FOHOp(EYI zQ5i#SQA0<=&<-%PtH;P_FajNwWFK z#By=*1UGSF#>MucE}jGzw}*@KBFzo)mWY*#TjnU;#P?#=eddVGoD;f)RPP02`>wVEsLr^nOrv$7r~c{-NYsICAik5@aDX% zH=FysnGlaHj5eilQUddd)#BAPmREli#ZxJvc*7<w~)%o?n*rd^4ZtQ)9_gxVc&DzfK&#-c8()as0-jj^6~wH-_Um=$ql)EpFmg zdRI_*8(g?P>q4*D6X#Ux7_Jecx4VfuGDhz#YVh9m* z?jUe9w#u3mYY4X{(_}f;WKqk*@a+*d@hE)@tn?Thc_8b^rddaDU#8-X=?3X;kBdi7 zxQQn-9z9jmqo?5!uPr01c=wc5@C=-J)=fM|XNr|S4?mvB`q7)Q!+&eIDUw(##$Rv~ zFJ_FtRMhy(p7Bf+ria_&=~Uts7=P7Gyk?B&m%k34)E^61Nu%y{|6V|aTD*-h2k~-0Vm$fIx*090L_jxM{xa2Cf*ZA-ggrp zWE}ahs3RZ2kv?$5L*g34Cy|fg#6R7{Cv>8)^iw$Se%67$*{)E-CxXw!_UCTmUm4q9 z6t(>&Z1c>qTNTV&6L#6f%AA|`+>@#-Je-)mic{HF@ao@g;%j=fKDck-@8?;62h74V zS472<)h3bnR$TthO?;nm`G=w|{|J{ify)Nz3*1le?q@ggA9@#1At%@S=#-kaJP^ z1HS(0CjO$Y{{voi>Dr|W+VX3*E&Z~cK+dG9E34qCPjy4WRU2Sy8lyIpOyT37+K8Z` z^S4ElGF`#anycAA#?6{)%}uB9gb{95-BJ0(<5Uj_SM|h}ttk!K3$<;_p=-V-Oi<0Z zBuA<}smfT3P3Vn;t2V|q(}X^fDbj?#1nEvPVfJ+15k<0{MD;@{eC`k7ssW-y_m(1c zH=!oWq4BJfzVj|_1*b$KDy$mpHZ_oy>FXdQTs0WmjIWzYriibb5j1rEaL_%*yU!ej z`^=11E56Ww8}8k0Ce`M^p%p_QT(yO0AF%#fhSIv_(BW+Rdg4e(;kGfUwq!9|v=tJr z+8WzTi?)$Wkrr754V`bHMHAvJtr)Se@qCD92y1S*9)|`RlrgX^>Y^3fLAa`1G!7^Y zxjn5|4js#Qo(`2Y##_SZ{NYqs?I22bq|(p^$yB4-Np@7ojvn3(f*OYGG>!qq;<4s% zeWW?5c9wd(u%3*>q%Z`6K`CCVlU6ERuZE+@E)VrbL8U3EWI-hg+Cx2?A~AgcRw3_j z6YA1Fe^U_B+SVMcM|Wwf!vMpg*0xkzYoubB9Ssf2lvHL*+U4dGwK%?!)Z-+)qiJYL zscP-RU|m}2l~zV$l`I`WN95X#dpWuLvFu25YecD$#H|kXGy5yO{i6gi1U`H)_guLq62IwXM?ZA$3M+bGQxnbvriU!4GWj?o+BuDx2b>bPrM5JsIJFsrIBw zFGFn{CZUV)8rL9EwU<`am;UM9qGxaFk@|~eh!J<-DGsKoeRTbe_3lc&b6=^=0h-ZO zW5E-~2S>Nh-x7H*gi$kk#yeHqw8$8Z+K;-1hqm-0nW+S=m6=NWi*DXU)AQzde3AG) z&hvwQbEkMcUg}!n$H>A^+L3T0nk_M#KzuZ`WkE!BB^}s_qR+$tgLJKkEXLRvgGt%} z32dfByf{EmnvIcavNi-tMye@NVxoYnB5pmK(Y@4EtxTfe+kK$a=Zz@a9*d;#{F4&v z(=?zToA2!x+tZ0ihq`+Q^bBNORfBDXqmNyON2(m$bD?sMIk@MB>ray7)jMd-*mZLp zgP)PIy16PGOX_E%St`D?txU~?p1fKuZB5X}pYZAX@n@|^@mELpYfVO7gK|{@> zw&T=%))YRu<3x1`cSD0dq8%Q=asabQXeieZgka1eNp#^ zWr{vVb#(MG=J0^Z@P!9$?p-_Eo7zI@AM~0d%aSYLN0qY_l*YsUos_A+|4)tkjj@Q?v;teSkfj2P}+Wd`5#gPj2QTP!j+*lWGUJ`Cgs@6Tt%y06YdgR0>5aLcJQIdgL#u(%9i@-iF~ys2b?XVk#K@Ke(cn5ZN8}Fvg{p zB4f^gdRH0x5lYHb8;WrAxD3KoM`BwM>f74Z#39LKT{6{%bN*4-3yBPczFrTw*vI+belb|1^#Wi8<(4%j+i)N$OQ z2UykdOb-$zNjtuzPX8LnJ1?~yMJqym^q#t8df~$8Qgs6BZ&-!ignO9C(r9d9oH}K6 zHK|TSX{~C~8tLVadLlMN9J+QlOAbW)uHR7#zSZ5W*(j)N=O zWT(_h+Tc}m)QAxyDo2eNx!Z7y=G1AlQWj}Vql5EzRdqUR`hO8pXRu2D$kK-9bYrBh z)q8kXXJU7)It$y1P1ltNnI#Ew^{5p(bt-6#zqQld=rqpUCyxyui{AJh^>Ve=^H6)Xv zzNtt{D{d$vNs?--%TZdZu3(+Ax=fk6Qq=Tg#ihP}ca_w>8rup-I^4#ldsU&LI3%uw zx}yPUJg#4Zsws7?XzQnhq<~1d)-i9VLICvZ^d3m`rTkr9d6X8u5h!*^KFEwHLNBy50Iw=oL~50 zT18AU)GLm&pTh6lNp-unBD&JaNS%I`xC47n4rvScktS7_ZpD*fq_J*cOG@2|!cear z>a88{+tv<;gnD>~le&vWrNfuuCXSD;_<2g*jlH$%9&9T@o0z!}OH)rH2L8{j7&Rr5V97hnra&&3FL&b+9(VBW1c(J%}AO_^rHWOC%MR z2ik|Q$5nsBw!-e?+U2f2+_h_5d!B1AaP6pTE7xA;+RI&grE9Np?bWV*oolag)x(5@ zHe}n?BS_2G*r>6?@l@N2PF9b5BAgD!V5S534deRqC@b;7W$(;mB3M<){qa0l)f{ad zTeVQ_D~E^t9zCLJRH%nOjFRdxU~ARm)WCTT2S&oN%30wwM&<2rYdWQ#KuI`l-|yOw zyY^bwe#5ojbM4Pu`&-vu=Q>?c>^fz#9Vpu^xlM=qdY8HeI~?PY_#}6S`r(pX7fZL) zpS=62(zLF2`LrSS@M+!c8l>mpe*ylZ(|X!!S{HlSv<>a$)4JI!v2PXr zS7ZNm_+Nwc{rG52I-n1U}XOQ3Gf8DgM;wJ|Jv$3Gs@D@RtL)2QbN>QSqnrz{WS9%C(1a&^e9 z_yTsfs~1_w;iF=j&H12mPJCgia!vy-m|-#U5|zWq%ap5WZ;4 zD1V0v_>{^~r`*c#qNrW{gBAEB#OpzZ{Q79q;%L}&`8{fb*7qsbl9mq$qRTn;KE&R3 z^%2Xe0$nyY)0O(+W^z2~S^1dSVdbBc;`=Amw1xN{i24+D+SO;Q$zN}a)09E$zVtaQ zz|y}c#nKnV^T5PSns>ABdG#eq+SOMq4N}Q| zKvL$3#&hR;YKN5{D8=<3sVR@7eAG{<)2@DI&GoW5T3YrW+JenrD8=SFY6`TeQNN;2 zyZVha`J~uMVE82HHSxbR19QJqin%|iME~NPiH;BOCyLwEU#t{-#AkrsHJz=s`?xu;H)P6Fb{gFBVmH zPLvsy@%%5NZrJEeDgJLvMeM4+uAB$zgDUN+FDvfSxkWub;Mwa(JFwTEQtS<&n$2?U zBcz_eK{Nz|gDJ(}rqqfmqBMeA>g(ss2K>yUziu5hsK30qSg)NVs5J;5S`^L5x0yjt60U%T3l zB|%POB4ukO9vAelXdXr7)C%p}Qx50pc?asC(?#p=h|+eo6YFrAQjXJeBJvoRl6;urq!ziTzI}^^q`vAl)C~sH8S*wJoXHQuABw0y2uvbMXaj2%Iyr}1+Mxai+ z8i{S1;893aI6MzI?C}oU?T}=LCv}Ihb9l*e=&Qr)t;2rf@C@znq~h>i!r^7o;bq3* zrQV?thbL5r9oym2>+p;a0q>(B>q7%@=Y_jR+)-ynM#i83E}_bj% zSY4!cgT&35{jELRuCeFY3+$+^>}B?Hd!@a~UTt4zud(m9AGg=qZ`kkIpV{U1I=S7F zn=QH3k{d0$vAfv7M7Jh+a!sl|u)|e*dKUTtyFIK_!p=-snh#rHSaV=635!R<<_WNR z8tk42%a_6S^{{?B>^}exo`4T8z>7EG$NTW)bNKw7z0Uqs`_qlw@D5OZAk>}>VwU%T z`lqST#*LBI2nK*-4ZJ(uOWfPra}SZ*2T7Ukls6qto?iDwAv^hgkg$yE`*&1*oL7B3 zs}E=O2}o5qJZb`MOhh4>oJ3F!K?ihHeKHE^(iB#o$Ldo%s(zqXeHyDTVD;%8RiEKi zuVM8ltIzDH`Yf;dL9D)v)n|89eU4XsE~~F(^-xFE5B93hWA#<6KEI>thj`TwW%bpp zei%{}4)3%B**_dr$bKzB*Aa9CQi0X$P)PO{u=*NS4|i0(-mBig>i4sHV@K5^UiF2n z{y3{QbyVHb2v3Gb4cK9&h@J^5vEX5w2UtqNjsX#r;P)G`nqyj!M6LC~W z2-ia#O$1L_L>$u*;#d!H91(oJCF1yw5X(Kp36N?0I<7~mF%~1Eh8QNrepj_)TVb!N zRVOha_iw&C=G@8T>SWXr7JOCA1S_?Ig}fQ@72-mfnZBq_VFfJfG;xePD(fJ0_=*|YiiYnEc5R8&1^t*5q5^ONcGT z&!tAGpP$v-S)8BCSQNz126t|f8wROj(GOyY?W!#=5QV_L1j7B_nNZ`ahP@oRqy zGhmYViTrld!2sDE0=QEE`t2ljmt=}eFuEHB`8uhrE(&ML)IBJM#(N=Lb)P8lG~O?n ze2tbv<9JO+JpgHb%EE}WetQh_>RT};ig9TbZsLnjW$HoHgN276FdmC-W>VC{k}0%6 zXK3LO$b8rFI+=b2tV}(MVkmwL!c~uBn^F7(Gn}Q=fZr>kedEMR6yMm$&c= zmo~dO-cpk}B(ZSw$!ScHqMNk+BxUiJ&(u>W!#u2~AzbwgwlHjO12A2Y`Bivn&iJXG z&Fmadz>az@Q`jpL6!m;&XK!Eh)mqtYmpfiBcma7=y@+k5;V(%hpHVdDWfVAGtX~n_ ztA5;TMRArx6J+CcmOEY~-$2GyZwkcgD{o0A->&7*6!CwDbi8=IjkK%&PY@pb9cBXJ zRo-#D=nO5qOIgCJckS(#jk)okW42(cCwbLyJriQQx8jw0{TTs_(G{?ZxW-Kn<2dUpo%Q zkD}=(tw{&tXUPPU@gJ6(VEiKZb$0eG5X>wbeYvG_02uKHaN9+`hgrqDbs5&kEn ziN#+?yQ&K&d}WT^uFT}bV)Jqg>F^FHGhM48+{$UvrG|x0(sDPkgO?xG21vPTLv2?s zVDgrxcc-;LZG;lM1gW}94QY$&fiz#%R6UW%d0*3EGiaa}VMFKlz?IKarOL1i0q+fg znaJ4chFT6?kkH!u%X^!=zGf!NOwbKfeKfkSp!;dGT!{;6_D3N)3_X!IE(?xcyhiKj zGpY&w0MWXM)~dVCK*Qe6s*JEs>wiAx-FqAdN}Lg7A9IP-gN% zkKc(aZS(SMCGQz3ImM&Y(9=m;-csxgmEY<)D@kpI9f-@;5U$!rN(W?1E$jfB^bx^f zkJ(l#Zs%3xonPL2y{eoT^qK9Yj_xx%Ang?P7wV-~J5uJo<*RnWPIy)U;i_TSnjS+J z{5^)_qt-++f_DfaYG;kxMR3D4PR3AubtC)xN2`~c~;++XMs+k z`=B-=!e(}SqTg4P@28dPIP5Q(!Z;Wn$FbZT?c)VM!H=I9fTt;PFbUFx@c^V>J{8i0@j#?qHBAs6d^$5ZVcgUUV=|ho!~k$aRkp>GZOKwYM;B>#2Bm&e zQ}Yjfmgut%p*~fE3JBLs2v^O*mf_+LXvM1^M17XSCKL}*;i+}DsGg%$>tM~5Od(r_ z>=4Qg*#`@Jo*&LR6NRr5Sq?3+(T6}9vJXWX^C|`5k$pHbIb;thAlppaD3xz|Nz=8I zLuJe)pFlIeSRH{npu7&kRSU2sQdy%Ubiw)YMjzptm z3L{}IauJrBP%IRDlOJyf;Ax6{L?KNm9Hd>fNDy8qnwiN7MZa=0M+4Kk8X~IH0MIuY zY@yWeB~H?_LafS4YnJFzF%*LNIE1TOu_f~y2q~PXJ1kCABh5YDzMN zq#9DvC^x5~#R6aAhc69)(-NE525CaF3~5Xa6@QIaXNPD_NlkR~KYBkihV1mVGt zWhN&i+h#)2;2-;|EJ}T)mhrZ~&GZG531<32mK&-s68yz} z{3QW+nqsRjg)~&JM%q=E3BsfLa%OU<9$dZ%qhz>|N`>*}N8@^uO%G}I3d*4}QaKIk zNcKceqoMmsQ~}*rLAdH_Y)LnVHiH1yP^aav6~zfRXRK>Q<#k%6rullw6w+*Hx&h@T zN;eApCO`b<05~nNxwk-?Al-_zt8Np7$MPD<6k4Yx!f%H(LAnEJSKTQH4}KRjIYHW5 z2kHO!bVXNb|87b>kR;>>o^kF$Ma1l02#lO!%b0O-r;cIwQ$I#gA&N(?v=h|>V)j98 zR>$=r$rLhcPE>zGxe3g}0)NC0e>4D2OC;toNE4XHk#^M+g75NG3QGFQVLp;w6EUBYQp?HItoKOrbZ&euP=5t{( zh6M`jc&g;10GyWC`9jMaqne|f+O=a%1vax5%{-$_;&$t zS|TOiLz>9^fV8WA6oeO5VspTkvuR21)ROP^I@aUa4mxdP&niQ|hNa zyjp5u{xnr$IX1j=G}C**??0%62>b%!s&&{h0y14Z2=ObmS`OP%D(kc$y*?10YQhHbL4|0|ns)VGuJpLFiY`v1HsIc{A8c zC7-_0;9yGqqYg)qaYJNYLEjW5Abm3kS8a|hN$1bsdG&@+gXPfM;$)k<)h$HRP_0SR zxus+Z=`?g~#d32g-dgb6`0-W%o~GEkZ6QrGwnG{#YY4)lb9>1Ynx`egcYrj}*b!-0 z?IZ{fUcpRGH2O$1%<==J#)6*F+%QVLdKfu2FG{POu^*Ax1;SOsv1KIqjzLbXN}?@? zein~I_TJMlS|u8*wMHG05t1pS#4tJ%<%ZEw0w3*%j|qU&5}UXyq+xU{(ij96gvaRa z%;Yet`}ab5U7ZUWl*%c6qrp8Wv;A97Qs?XEYEP7a)x97vyp65DfBWj~Lk$?qhA5TS zeMRSfTBqi9f5`;%Iu7NA*YN_M;D=8PfYTD2ISJD6dH~WG)E0!t>l9{kc-=(zR9S1l zTPvhgYUv(rPNmcXbkY(1>lUa3Q3!UYLAYuxnOF5RQeHp(o)nYT8C;AJQT!AC;4>L_ge1m{+DsmF5YcBup(EozU^ zYBj;fN+y`#<4|r0K3?F<{qPe4;IzcXo(O3OZb#ZxCketM_+(~s2p%9O2fW=ZD`~9{ zzx0kKS5WFHY&_`At+LR23d%t5sSvJOi7n~nOpJn>r%{XL(C5zBEq0?^Y+rT&-X3o5 z{7x57&d{Fdh@2^z{D`1oXQ9B{pPVhYbNsk-i{dakjs4_h70XR1&qKyl=L^J(#RZbd zw`(~xMf`=3CX^Q;?W&6f;lVFqCMT5H$%n%`p3FvPXyH=P*TI7AYBg#gewRVG>T;<* zz{dLQ4juAlZd@USS9*n9eO+B88EKlj8tJ?h&IL^eu3=gJ{ETa{6E?4daMktLqR${w zmP13*H@q1=cxdBF?CJ&$xKRK%X@HHT*!@o4EQPmtgqxr?!@ z+p!Nm-T{GuV{DC&w3G3Xoib>W-(3Q|I|GG7_edtVL)^=9(;@E@{QZ9X0|9uNBHItL z+;qr?kik4zfp|UYVaXKQrzzqefixZRQKVh@j(Vw7ik~~o(f^E~pVer6^gkz=;6^{sazpxB z!N1_gzZih0DK_OLNW=NdNW1D4L3pISDw#s_v_$x8kcRWuk#^M^g7DyPGLyr3zjAr$ zQhw;>VjrbaPv2R-93Nc|lph``$rm{*G}BfzKd+OYhXHU}VhcZlG?adfG)7wm;ZgbtGdYy@E^okE zb6Ca?t4x(jC;g(aPbu}%_!FqanhPcBGwcPGpF?2e6kAfs>1NqFppnj%O5+!z>PxLk z)A*HSf@%CW$_k{)g4@QAvx?#@hbGvtZ6OWw+aZksRY7>vZ7-R8vz9|kgzo@pnBNg;45$jigI6#U z!2G<9nWrs?5Ew|smdxYZH4c4Q59Svb<|{>0mDZ%0ua-y}mH1Fdj zlTQHrnt%es`$WM_^5YIDinAP=V6!H(+z>wn8COjeh{xQ4lF7GgIW$H5G)P1IbfjH1 zLl7RkhM553qa71ZXJ}z2WyxPGQnOGU!8i!QRkN{WFz`tthu#$rhM|3qVCHI!radH? z;N~C9azp<-!O!>O4++526dQLaq+$Osq%qzp2#>y6$rPHWCBlz@H0;+QjcK}q@Ze!) za@gMrx1Ctd+rOl@Zvp7cb-R<$&{LYPr_|FUJ6qgVHJ~oy(g@+I2)2leOpojgiO{iW z#Y0zk@4rwCG-(4mh_+-3Su{b2vfM<$5&R-QzBvF-Q>38<(nKMKw5#HR@S@PlOimOw zEsO$w0?OXDc0xa0q}>GNPwZV0`Ex(SEaBe?|jic5CX#4isFQuVxk$U}XhC>1A0wGU^Rz_xv5+Q8 z$06;i;|1Ztmot+Sr2*wUG&mb3h2NmpCqVR$CQqQ$&lO-B%Rh7ZQ_g>ZLcJ{eiKv0- zv_oK26$G_4?jHsPD^a@ z8IXqLGm&=HS%UCLKAV{wk~fo~VsDC_UILo)wX;JEog54Fk%rHq94bp$lDbhA2ZQws z?wnY}CCf2aJEhJ=JrKSM!d2&COTxJTW=AN{&c>8V`}v~$0t#UWsuZ77xPYen;QTC-;RddUQ{eFMr3+cygQ zCO`b<05~nN-M2s*wr@omvxEiVvAu?w9JV*tzlYdiET9Fl<+~v3)ywH5E#FS5C-}0z zj*(tINA!Yl(W|@p9jFM_?}TvGUD%R!PVnsz2IkqG&Y16L*y3)nc#pQIqj9ff3Zr2z zzxScsMB{#eKj4Qy7yzdwa`F(QiN@cM#wxgi@S^buGda=N!t{Obbkk7DWfqcH`=R73 zFx{l>M=A9ShoiHd**o7<@FPkY)x*?dsEn9A4uSc{*fJ)3;jmLE;=-2wFLCibP%Cro zeo{PmN_(JV^t5F1V>F~T^SX(>%%GnU^s|2Sa{*}eJPOPef34tN@Z(-AinAP=AiXcK z+;okXk-K)l$#Dw%w*Er+Ive+|-fjn|RJK(`<~_?yh+bdBst$g++fPUs9RyhXVl z9}iW32LPSmZ3ql_V~b8;YNW=eUNW1EDL3r?gF_Xi8AMeIkKa*sxN1X(N zp3&SFl=?^GT{GX>;4K$c-To3~;QcEItRsOf4?g~AoL>{6psU40QFx2>wJ7{XE7U>x zRx*XG7*fAOxgqs?f&bu#{}=$LCARV>NJHw+NW1Dkg78TFg_#^u`BMX*`Eu@HJE4?* z(bzgl{mad+nMVxF9*d}7Q367LgK*V`4-6T^8rzN&<1C$#&Hx&3ret36ga_HQ!9G^BSwQJHLTIoSql*gVZ z0gt^PTvdi`AdmE}Gaidwnthjm<>p+{Tg+{&&1s_gNG6{s_}-TV<|NWjfc^cz0Y!lr zkH&tseG`_O2n|FA1JVNVA~aYs`GzfrrikAZ(nM%8q%mDr5FUI8GdU5;p2e4Ud={rO zw6Fzb>EBmYLs1_w+Y-W6TVacs+4z34L-&e@$PmA^V7Ad1O}r(U;P!8e@`A;xyfydA z)OIMvQWxbASjIwBdBp6%OsJ<>xfS2O>y9TY{OW2i50&XvRPiOewiTfb`99`~e5!iz z_gO4uiWM)YsK(*ic35Kf7dKXEbE9v2q=4y29s#4PD zNxDkX=S#X;(icd21k$)Cv!jhzR&_;aV{d^$p2*>hn^Qd zNV1pL?0L*yX%3wUVq>DVp%0x&lF8>AP9J~*bIO`5xG8?z)S@`cp$WG6Ku8m(X-H#^ zuOK|4XGkXBtmV)W;WdyZPBW3lf)#@B;0H026Q}GMYi0gnn7hOqouP%H(5hu@U$9y+V*wp)rRe*z`3f87R@PqnPl?WM%0f)f$7#q z3C{K7jxLI`9GYOKIfmt?TOW&ztBwI5jPL1Kib73s^h;K&W`*SA)f{wld!d0hW%Z`36 z0zwZv?&zlqW~IjHj((bCf+;wiwhz{;U8zO|gMzLz)PjgEUr$5QInJD#;X@ zrzOJAgESF1A8A)zAP5hBAu~A<*t#6w2gWy}n=6y}D9;kydsXr?wOB_%J{X?45O)$E zx=Q;OQR>0J$y%?)kNr@uHO{A3U5tu|$|Vr4x)fVplR5a;Aq-JttBOZ0du2BKuNLi> zY3(|GmrJIQK*RqPC^!6HDe$ZO@T&vhw8Zvb18Mlb7HL;qCkT)K>zT>nf9LXrQGAFF zAD6&4nktiRE%otcyv7Xr?O41y-qeP7I=wG*lo|`VOp5hw)aCJ0yEj4cDRemW2(w!PFS-6E!L)uwcmZj(%Kl-8i!MCo>c z-{FVf833mxGIJNCiPGIjV+yh$yeQqvOiq-l%99bi;MwSf$rl~$&7OSB;&7!#imub2 z`zVLX2Rr779TO^FgmTYv)AcHJ>V6;*tp^}n^&qy4Ruv+?etHlw@=$8T9ujkZ)8=%< z9+pgS#2#U}3E889f6R}6JOEEqr05Aq6S60fcGXjY@Iv-9GdUr{@7Fn@(O(wNK3Q~f zLZgec`wXSIkMf1u`>=6RJ&Ov6z;h6;dLCOw!24)Ywr7~?Ae!D6C)!-`*NUzev@T8W zi;^j%*UDV$G;kYrztk`HAoYk*OA63v>-fs-;_+Dd0Ha;El3lczaxzW zDg@!d|BsoR==3i)i^6%Id@uEop>wqOj_BtCn(rdzs((mckM79=nr4N#1$^bE#i#WSPtz=JiWIwI5*!5xB5hb zJ{8bs8YGkVy$XQSW~mFSelB|crS<5J@r7gxBVz*lCCW`;zY_Sr{qU~?;Iu?0zJWA> z{T69geJ2Pnu-`M26WA@w<@57=9X{Lpy%?8#@X=9P|ABJo{Gnh}zJQQ-tEay$o>V`g z8bb3EgsXnWmWN;`ATZDN6h9ENcM{oWe5P_&0Q`^G`$gN+(O4&$!f2d|{cO;$kR}?x zA&pUKL3nijE}23&EfM|)q>09#NW1DUL3r>k=z6))u*&Ul1ApR{=^?o>krAp=4?8+b z54yqxBEpq^rfAJFPbBx^#Ig6J>V~R_$_5Zv5t*(bDkT6B8Mf_ziHz^@={j>V-AL?r z*Y5FUIWGdTxac1Y&Bjvt@s3@r?z)XN*>e4Au2_9IrCLbz%(Y!NH_HbjDM z6pw`AcXPoE(HPC|7Lo~W=TMd#p0^bIR(|}}0eG5XE4G0&G+Ri!YFj~gJZ&eLLi4ml zcsZn@d3&T?wSyo$_>Rov&^#FT=u0sx0^cdeQ&C*C<-QTq3HS7nW_P00>pLAlb=E|q zPQM#dfpWxP7=){K#+Jtm*LNyb8=;}=#Y2-leHoH>5v9YmQXQm9$rQ3=NUmbJVYyoH zBmDT00eG5Xb4NiMmPaFvQD{MUEbq!p4$GUA*QcY+vbJ)A_oed8*{KtX=^ky4rPMRe z$9uYP$?(2?`>F{P_I?@HEBdje|518IQE9CJ4f#bfRPm&C?R$lORn*4nP_UR0zU@Phln}B3oo5 z!r6t5k;RebN=)FvXFp1f4Be#dsg!yeR)%g)Fq}x8)_BpW4n!qHXc`0tv$17_I1Mxq zf=IC?#UoXC7|amOHCnTd*-Xh4l4dxcg>u9BK?0xchtCOs(-PY~7t(MZLfTaa3&P`k z9y2+dZ(nY{K8`P@RH{fKjk5$_L-ZD|ZV5NUv-eS*92az$Ud$JpL+5V|F2{KvH-~y_ zc2>Q&jT#G7m1(U~ zABT%26HMQ+Rw)BV9a+GVgi!WbA`yDdddd=~LeOPI=)DA$m>C1VPL*^THA)H^8rHu zE`V^=h1l}&<9DOiLkW5fTi@AnS?pBkdzM;b?s+Z}UoO_Z=;QVh$>hfot-cfmCjP4h zcbOk|c~KmeuE2hhb_L5#2e=X$EUqCCFM?M~Cf_brY{q`#uYoij;98_H5HAQ1emyfe z9U%KGwWi}|DLO+7H&E)IqB0}uIHYGsaAC#s@M0|Gj-Q{ncxYw}=|(^h(wiVKwvH`A zYTt(-(Zk|FGSuH9m|HbQQ-7Oef+<*oa`T((?E=5U55JR{qQAMWS-;<0?}DNlhaXpL zS9c>F4x9~h4@#wCI6J>Z|2WF#fz(oe9KGMraxZXL9U5DGdcv9Ie#zw1f`C1M0@EWO z6x>68+~11gEQcl-?}s5xhkOKSS3N2SuSY#5nS8UBLra7|4rw~%6G*%2NkMqhb?>GW9WT!r+Dwn z-Yxk~2ag-_pBGJQwIwQpW+s6B$2(@9&d|dDQR;VZM^@oCXsqGch|k6I z7wC6T1mfR?z(6&&B>s62Pfv;yZzz6GFz;)OruYNN1UL0VmK&-+68y)0{67QmG{uH| z0%@536lqs|CJ2wJ&m~i6o|Xvz7o=hO3#483r64@`SIp!vJ<$6F6dzQ=TDHyMD8A>J zxx{utKK-N7e^csD0F1<}YWcZyxHS$#EJmaH8dVU4Zy;RtEw%`Pd;%ZKLK!BVw-<~G(@jM+Eu>_!Xx@OW^#ze zQW*94`h@;%Iog27OMJeQ6Yol8n@-a5e<}5_{76i=9!IVE$7E`?CTOkdcT@x8e?YkE zPi)CJhvho}fpxZ}RM!6z-CcT$Zq0gE$po|B4dsUQ4Uopzv>(1v0GyWC_U?pxU)t;; z@Sc8nFJ^LB?^j+QPc_&aKFs}ISSMYZzR_SArG7>miPv|=Yh@TXkq?CRMkzSn7{XP3 zuqDTQMk}lfYUyxi)OK<&xYnGR`ijYZ+N7qwzhv^MM;ivPz#J)?2ymbuIH)Mla%h7b z3}(3r+NQ{0kXj&KU*B9Z`G&C|GWHWc1kwa;3#45&R1h9~OJ;I{mc1EV+ws|-&d|bE zl=|$Sxfz@uZo`40wnh;`v<-x-ENpr9e;v`FC&i;-INnw;+i8sExLh*9P2Ha5hUy&z zzoQ?&QvjZ(*pLcH!}KtuF%&HbkE&fHQ)r%+2p2sCC!|i;r-QUQf>O^k&9IMk<2`L^B#IG%Q4p>gjV%unewVvQWyFPk7mrKf zX@899+*Rw;5gIF*LW&H-yP@1Lyt}~n@Wb~EfYTD&x)-EjcyFX#wT~b?hWBMAhv7}K z3@0N^e4Z_tU%E$|`%!u;x|qpBb39#Ye-whp0Ih}ofwv&L+PZ|$X>bLf1c}np) zkZ7Z|qcvUBS_f0Dsz*Hpr~v|F(%3RUd~3fW6avNu6%Sb9=_Vq|7i#4?bWM^eumdbB2n+`>A-;DXJnB!WeQYglpp|rpkdvLC0 zv0%ZB@zd(&&aA_sR5xeRm9VNS<3)3IESn~3UakJtq_FQe@~#9 z;q~h~^pd7e6+^zhvl2VNg>cm>Y)#*wX?;p4)+NrZ48U6?Pn}I?7>E>S=}E(uJ$Vps#COgB=LPwGbF7meQQAK|ixy<9exfgI8^f{H`&6 z>STnsZpzH*lXMrkQEC~;;y?JBxqrFE4%M9rOAjqWOUNv5!6rmNhIa?@4r5%|4+_r zSB=9TIj0dX$TKF*9XDNfmM5fYA*EDHf1ae&V_m-UiC>R;3RU3Y(-5wD23ylx=uB{L zc~--o6WH?_mfKr&(@N_tYemfqT8-{4FG{AcX{NWlgmTkcUKaQ(e)y{aa9ScWuR)sL z@;cI(#4HG}x4g+rPH)*F(_5BcmWBBNaJ_m7-K6ce#FDR<{2ewRgR0d^Xj+WZu--ljcmCJ9lc$WZgUdAyo<~q&oWX9;F_LVDIqZ)%z%dM;}1A z>O*Wzub}bZUh$EJeJrqlYFKWs&`s&MSFkkyCFSfs`wjDO@`;%FRGZPg<}=CUHyLgH z90lgi=3j#Q!jJp1D9&eD4X?okgk#^PBg7CV_H%pirATi!pR5YhY@0;_9ai)h;a z!2KY7(a{XPAN2j2^PXY;7typ%YtqdBDw%u=;Ms2|FwFl~aKHO;e-y=84o$FOf3ne9>fNBo4>RWkW@Er+Iv?}lV zD@Rn09JAZ5nLD#ih^KcnIfPPAmNCSStQt{8RcZ^Af%~BluG$h?a4+lQN_$njn_$mP+h!QCO)JYGSJ-6HIJ1$_=q2 z1U}La9~A(nCAM-jq#|Ua9Z>>-hyN_goiQO0FhS>cCzP}$nE&xtTY~^@JL+k{kT{Te< z9)D}VD19{lO2#Cga@Q{`; zg}Q5pREycu!2n_QR-7sQo}2F`@iTJ|6BB#!j6JlVRWkW4fa?hqn0pr`xTGJKDvHCp z&e+eEry)&;Sd272nI{M@qDv){Z`N{XiSRZ^(;=22jnP*@c<`f`$>|W;+w;#lzDJ}p zwBSk)Es9$HOKUXxZ(wa2&=Se1?1GsiR3JmoZ2<}2Z?xLbN%b^Lj z>|#hm{Uu0a#SB4s+^v>OzFEtmCBiR*G}K>?w5zTVga^NpnE>k7bxb{-p@pj`ht99Y zRby0@H9m}=-sD$HtYe@s2`-J*Kllyz2{XcrB3908sOoA!5tnNqTy-tBh>O#uEA&|o zoh>~yPFJ8zbgmP9*K2(`IyXorpC)*JBMMA(ZW7$he%viZah5|9Z2YY(H{rPr8CR_l zh{x~klF7GgIW$H59grqGcOs3&kOkqv?`EcWc%;Q0M~ME=$UT&L72wP%%3BM&n&+)? zv!+^e(|EZNE9a6p;N;xRGQKOnFNHB3|gkYs`>_#4X2RON>S z{)iv`C^N;TDhmPYH(U8J>Z){`-bx^37suF7^}t zCZy^9Zy}ATxq|TEZ!;6n{n_A-yFdM*k^iIA*MLrwO*QJ&Y*>QO2A1yZm6~DFl{86LY@rG z-BE66?ji7=et53{I4!ZgWsrvE-blM@V?lT{_hBZ7=Kg+~xqOCsYAk_d`bVREDfLvv zF_=5;BUxs7^+Pcz?hoOr0oama{v1@KG6<&Ir4qb}=p3kZYJvwzCYa#CC^rOeD)7zx z@XZ6@w8XX!fiwhffi$Mw3c@3JOJ;Hi-U3U(;=a8l(ijb={^$NoPicNDO1&1{7|fi; zD;XKpx&3-;R0QeUKwyS0wj`Zv(RBy|{cKdJ^lvNLx6|4+{pFGgrhj{s8~S$;_>O+~ zP62RQV*4u~4gJHA##CNGc=YeWOb-2<7o&eY`#Jrj@!^#E9f2|U21pU|rN39A8mO;= za8)(7q@F*LcK`zMY)+}fj}YA>wQf!PD9Hp9KN{tR_%QbQcAHY&M}(vTH=| zOs!XwJxemdWFLfbL-uTe&+)_O2Eb{FZ4N;ivJXbuRr3VlkQEGd;KLyBZ9;5GFlV3_R0XwkxHD=y9u0N2^xfmviqRvq zQO$mxWb)ZZBNm{*-0p-0SMSF)6vbH%O^|~|mYc9eka5*Qfq1+(NhaT}<)E9omGeYB*nlJqf> zzFN}9O8Oc}ABS}CP{i>ltq`xo9fy86bikoyhbA4`a%jY%c86+xBNLhL5s-gGyu`tY zG{20{7+H$I^Meg)Inb^;f$rFSYVGn`dw8u~Q)|zwwHMUd(OO&8+RJL~<+b+8T6Cg zYm7G})rn%WUE7>I?yW;tR@%2bWtZ#Z%w_ZJ;W{~X_By*pCx@JVvpr9e!#^D|%U+<9 z`>j03j_RcQ-GR2!b(4d}*vs_ZoA>|AUheJvA!)DFdk-AfY_HOLYri?nUaj~3xocPZ zI=#2=*i-E_dhgrk&a>~=$raO<*pKVvx&PeRUaONYZuXM>hE9I_{?qn*lC0d}nW+7l z-h0J1``O>>Wa!%!_Bx$haOptdO6TsIa))rHb7Q{zLAcYo*v@AOhdMXRJq=uXbL5ih zB;oR8av2)j&>Rmhs*ALQqs?_#z6ew4_}IPzg(ru$LcCk*7RKYL7$(rvDKmkoPCjO) zPC=y=p)xz%oT_W)Vo>T-?3uPvXcMfsn@XnZ*Z#!6PzsGO`; zXRuaZ^bWt7GeuorELt7IyYn!lBHd!lWFbe6S@;k$#__)~ z!{Kd~JnS!dgc+{W!IDRjvDdJrk8wB8_uTzBGJZQxu#lfnVBwR*NPM2+ZjM=V_tVT6 z^UpBDD+)`VMaHk~ITmuborTZ)VQZP;^@b%c6&q9ljFK8f{oq7j24RG+4ck-OvC&-XN^L>i+@RE8ju@ literal 0 HcmV?d00001 diff --git a/documentation/_build/doctrees/etc/definitions.doctree b/documentation/_build/doctrees/etc/definitions.doctree new file mode 100644 index 0000000000000000000000000000000000000000..899fce4fcc3548df07048643ef17821ae72ad3d1 GIT binary patch literal 55032 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 literal 0 HcmV?d00001 diff --git a/documentation/_build/html/.buildinfo b/documentation/_build/html/.buildinfo new file mode 100644 index 00000000..3ba06f68 --- /dev/null +++ b/documentation/_build/html/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 1563ffe9c48542af75d7298c4e351220 +tags: fbb0d17656682115ca4d033fb2f83ba1 diff --git a/documentation/_build/html/Contents.html b/documentation/_build/html/Contents.html new file mode 100644 index 00000000..9fbbead3 --- /dev/null +++ b/documentation/_build/html/Contents.html @@ -0,0 +1,473 @@ + + + + + + + + + + + + Comprenhensive Table of Contents — Coriolis 2 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/documentation/_build/html/CrlCore/CrlCore.html b/documentation/_build/html/CrlCore/CrlCore.html new file mode 100644 index 00000000..4b5509f1 --- /dev/null +++ b/documentation/_build/html/CrlCore/CrlCore.html @@ -0,0 +1,334 @@ + + + + + + + + + + + + CRL Core Reference — Coriolis 2 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + + + +
    +
    +
    +
      +
    • Docs »
    • + +
    • CRL Core Reference
    • +
    • + + + +
    • +
    +
    +
    +
    + +
    +

    CRL Core Reference¶

    +

    The CRL Core C++ API reference is generated by Doxygen and is +available here: CRL Core

    +
    + + +
    +
    + + + + +
    + +
    + + + + + +
    + Generated by Sphinx + using a RTD theme on Jul 15, 2017. +
    + + + + + +
    Coriolis 2 Documentation + © Copyright 2000-2017, UPMC. +
    +
    + +
    + +
    +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/documentation/_build/html/DpGen/DpGen.html b/documentation/_build/html/DpGen/DpGen.html new file mode 100644 index 00000000..c4f9e8bf --- /dev/null +++ b/documentation/_build/html/DpGen/DpGen.html @@ -0,0 +1,334 @@ + + + + + + + + + + + + DpGen Reference — Coriolis 2 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + + + +
    +
    +
    +
      +
    • Docs »
    • + +
    • DpGen Reference
    • +
    • + + + +
    • +
    +
    +
    +
    + +
    +

    DpGen Reference¶

    +

    The DpGen extension of the Stratus Language reference is generated by LaTeX2HTML and is +available here: DpGen

    +
    + + +
    +
    + + + + +
    + +
    + + + + + +
    + Generated by Sphinx + using a RTD theme on Jul 15, 2017. +
    + + + + + +
    Coriolis 2 Documentation + © Copyright 2000-2017, UPMC. +
    +
    + +
    + +
    +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/documentation/_build/html/Hurricane/Hurricane.html b/documentation/_build/html/Hurricane/Hurricane.html new file mode 100644 index 00000000..08a418ab --- /dev/null +++ b/documentation/_build/html/Hurricane/Hurricane.html @@ -0,0 +1,334 @@ + + + + + + + + + + + + Hurricane Reference — Coriolis 2 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + + + +
    +
    +
    +
      +
    • Docs »
    • + +
    • Hurricane Reference
    • +
    • + + + +
    • +
    +
    +
    +
    + +
    +

    Hurricane Reference¶

    +

    The Hurricane C++ API reference is generated by Doxygen and is +available here: Hurricane

    +
    + + +
    +
    + + + + +
    + +
    + + + + + +
    + Generated by Sphinx + using a RTD theme on Jul 15, 2017. +
    + + + + + +
    Coriolis 2 Documentation + © Copyright 2000-2017, UPMC. +
    +
    + +
    + +
    +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/documentation/_build/html/Patterns/Patterns.html b/documentation/_build/html/Patterns/Patterns.html new file mode 100644 index 00000000..c50c5ab5 --- /dev/null +++ b/documentation/_build/html/Patterns/Patterns.html @@ -0,0 +1,334 @@ + + + + + + + + + + + + Patterns Reference — Coriolis 2 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + + + +
    +
    +
    +
      +
    • Docs »
    • + +
    • Patterns Reference
    • +
    • + + + +
    • +
    +
    +
    +
    + +
    +

    Patterns Reference¶

    +

    The Patterns extension of the Stratus Language reference is generated by LaTeX2HTML and is +available here: Patterns

    +
    + + +
    +
    + + + + +
    + +
    + + + + + +
    + Generated by Sphinx + using a RTD theme on Jul 15, 2017. +
    + + + + + +
    Coriolis 2 Documentation + © Copyright 2000-2017, UPMC. +
    +
    + +
    + +
    +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/documentation/_build/html/PythonCpp/Configuration.html b/documentation/_build/html/PythonCpp/Configuration.html new file mode 100644 index 00000000..cd4adf59 --- /dev/null +++ b/documentation/_build/html/PythonCpp/Configuration.html @@ -0,0 +1,367 @@ + + + + + + + + + + + + 2. Basic File Structure and CMake configuration — Coriolis 2 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + + + +
    +
    +
    + +
    +
    +
    + +
    +

    2. Basic File Structure and CMake configuration¶

    +

    As a first example we will consider the Hurrican::Library +class. To export a class into Python, we must create three files:

    +
      +
    1. PyLibrary.h, defines the PyLibrary C-Struct and the functions +needed outside the module istself (mostly for PyHurricane.cpp).
    2. +
    3. PyLibrary.cpp, contains the complete wrapping of the class and +the Python type definition (PyTypeLibrary).
    4. +
    5. PyHurricane.cpp, the definition of the Python module into which +the classes are registered. The module act as a namespace in +Python so it is good practice to give it the same name as it’s +associated C++ namespace.
    6. +
    +

    +

    To build a Python module in cmake, use the following macro:

    +
    +
                  set( pyCpps      PyLibrary.cpp
    +                               PyHurricane.cpp )
    +              set( pyIncludes  hurricane/isobar/PyLibrary.h
    +
    +add_python_module( "${pyCpps}"
    +                   "${pyIncludes}"
    +                   "isobar;1.0;1"     # Name & version of the supporting
    +                                      # shared library.
    +                   Hurricane          # Name of the Python module will give:
    +                                      #   Hurricane.so
    +                   "${depLibs}"       # List of dependency libraries.
    +                   include/coriolis2/hurricane/isobar
    +                                      # Where to install the include files.
    +                 )
    +
    +
    +
    +
    + + +
    +
    + + + + +
    + +
    + + + + + +
    + Generated by Sphinx + using a RTD theme on Jul 15, 2017. +
    + + + + + +
    Coriolis 2 Documentation + © Copyright 2000-2017, UPMC. +
    +
    + +
    + +
    +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/documentation/_build/html/PythonCpp/DBoHierarchy.html b/documentation/_build/html/PythonCpp/DBoHierarchy.html new file mode 100644 index 00000000..4b794806 --- /dev/null +++ b/documentation/_build/html/PythonCpp/DBoHierarchy.html @@ -0,0 +1,738 @@ + + + + + + + + + + + + 4. Case 2 - Hierarchy of DBo Derived Classes — Coriolis 2 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + + + +
    +
    +
    + +
    +
    +
    + +

    +
    +

    4. Case 2 - Hierarchy of DBo Derived Classes¶

    +

    Now we want to export the following C++ class hierarchy into Python:

    +
    PyEntity <-- PyComponent <-+- PyContact
    +                           +- PySegment <-+- PyHorizontal
    +                                          +- PyVertical
    +
    +
    +

    4.1 Base Class Header¶

    +

    Remark: this is only a partial description of the tree for the sake of +clarity.

    +

    One important fact to remember is that PyEntity and PyComponent +being related to C++ abstract classes, no objects of those types will be +created, only PyContact, PyHorizontal or PyVertical will.

    +

    The consequence is that there is no PyEntity_Link() like in 3.1 Class Associated Header File +but instead two functions:

    +
      +
    1. PyEntity_NEW() which create the relevant PyEntity derived +object from the Entity one. For example, if the Entity* given +as argument is in fact a Horizontal*, then the function will +return a PyHorizontal*.
    2. +
    3. EntityCast() do the reverse of PyEntity_NEW() that is, from +a PyEntity, return the C++ derived object. Again, if the +PyEntity* is a PyHorizontal*, the function will cast it as +a Horizontal* then return it as an Entity*.
    4. +
    +
    #ifndef ISOBAR_PY_ENTITY_H
    +#define ISOBAR_PY_ENTITY_H
    +
    +#include "hurricane/isobar/PyHurricane.h"
    +#include "hurricane/Entity.h"
    +
    +namespace  Isobar {
    +  extern "C" {
    +
    +    typedef struct {
    +        PyObject_HEAD
    +        Hurricane::Entity* _object;
    +    } PyEntity;
    +
    +    extern  PyObject*     PyEntity_NEW        ( Hurricane::Entity* entity );
    +    extern  void          PyEntity_LinkPyType ();
    +    extern  PyTypeObject  PyTypeEntity;
    +    extern  PyMethodDef   PyEntity_Methods[];
    +
    +
    +#define IsPyEntity(v)    ( (v)->ob_type == &PyTypeEntity )
    +#define PYENTITY(v)      ( (PyEntity*)(v) )
    +#define PYENTITY_O(v)    ( PYENTITY(v)->_object )
    +
    +  }  // extern "C".
    +
    +  Hurricane::Entity*  EntityCast ( PyObject* derivedObject );
    +
    +}  // Isobar namespace.
    +
    +#endif  // ISOBAR_PY_ENTITY_H
    +
    +
    +

    +
    +
    +

    4.2 Base Class File¶

    +

    Changes from 3.2 Class Associated File are:

    +
      +
    1. No call to DBoLinkCreateMethod() because there must be no PyEntity_Link(), +but the definitions of PyEntity_NEW() and EntityCast.
    2. +
    3. For defining the PyTypeEntity Python type, we call a different +macro: PyTypeRootObjectDefinitions, dedicated to base classes.
    4. +
    +
    #include "hurricane/isobar/PyCell.h"
    +#include "hurricane/isobar/PyHorizontal.h"
    +#include "hurricane/isobar/PyVertical.h"
    +#include "hurricane/isobar/PyContact.h"
    +
    +namespace Isobar {
    +  using namespace Hurricane;
    +
    +  extern "C" {
    +
    +#if defined(__PYTHON_MODULE__)
    +
    +#define  METHOD_HEAD(function)   GENERIC_METHOD_HEAD(Entity,entity,function)
    +
    +    DBoDestroyAttribute(PyEntity_destroy ,PyEntity)
    +
    +    static PyObject* PyEntity_getCell ( PyEntity *self )
    +    {
    +      Cell* cell = NULL;
    +      HTRY
    +        METHOD_HEAD( "Entity.getCell()" )
    +        cell = entity->getCell();
    +      HCATCH
    +      return PyCell_Link( cell );
    +    }
    +
    +    PyMethodDef PyEntity_Methods[] =
    +      { { "getCell", (PyCFunction)PyEntity_getCell, METH_NOARGS
    +                   , "Returns the entity cell." }
    +      , { "destroy", (PyCFunction)PyEntity_destroy, METH_NOARGS
    +                   , "Destroy associated hurricane object, the python object remains." }
    +      , {NULL, NULL, 0, NULL}  /* sentinel */
    +      };
    +
    +
    +    DBoDeleteMethod(Entity)
    +    PyTypeObjectLinkPyType(Entity)
    +
    +#else  // End of Python Module Code Part.
    +
    +    PyObject* PyEntity_NEW ( Entity* entity )
    +    {
    +      if (not entity) {
    +        PyErr_SetString ( HurricaneError, "Invalid Entity (bad occurrence)" );
    +        return NULL;
    +      }
    +
    +      Horizontal* horizontal = dynamic_cast<Horizontal*>(entity);
    +      if (horizontal) return PyHorizontal_Link( horizontal );
    +
    +      Vertical* vertical = dynamic_cast<Vertical*>(entity);
    +      if (vertical) return PyVertical_Link( vertical );
    +
    +      Contact* contact = dynamic_cast<Contact*>(entity);
    +      if (contact) return PyContact_Link( contact );
    +
    +      Py_RETURN_NONE;
    +    }
    +
    +    PyTypeRootObjectDefinitions(Entity)
    +
    +#endif  // Shared Library Code Part (1).
    +
    +}  // extern "C".
    +
    +
    +#if !defined(__PYTHON_MODULE__)
    +
    +Hurricane::Entity* EntityCast ( PyObject* derivedObject ) {
    +  if (IsPyHorizontal(derivedObject)) return PYHORIZONTAL_O(derivedObject);
    +  if (IsPyVertical  (derivedObject)) return PYVERTICAL_O(derivedObject);
    +  if (IsPyContact   (derivedObject)) return PYCONTACT_O(derivedObject);
    +  return NULL;
    +}
    +
    +#endif  // Shared Library Code Part (2).
    +
    +}  // Isobar namespace.
    +
    +
    +

    +
    +
    +

    4.3 Intermediate Class Header¶

    +

    Changes from 3.1 Class Associated Header File are:

    +
      +
    1. As for PyEntity, and because this is still an abstract class, +there is no PyComponent_Link() function.
    2. +
    3. The definition of the PyComponent struct is differs. There is +no PyObject_HEAD (it is a Python derived class). The only +field is of the base class type PyEntity and for use with +Coriolis macros, it must be named _baseObject (note that +this is not a pointer but a whole object).
    4. +
    +
    #ifndef ISOBAR_PY_COMPONENT_H
    +#define ISOBAR_PY_COMPONENT_H
    +
    +#include "hurricane/isobar/PyEntity.h"
    +#include "hurricane/Component.h"
    +
    +namespace  Isobar {
    +  extern "C" {
    +
    +    typedef struct {
    +        PyEntity  _baseObject;
    +    } PyComponent;
    +
    +    extern  PyTypeObject  PyTypeComponent;
    +    extern  PyMethodDef   PyComponent_Methods[];
    +    extern  void          PyComponent_LinkPyType ();
    +
    +#define IsPyComponent(v) ((v)->ob_type == &PyTypeComponent)
    +#define PYCOMPONENT(v)   ((PyComponent*)(v))
    +#define PYCOMPONENT_O(v) (static_cast<Component*>(PYCOMPONENT(v)->_baseObject._object))
    +
    +  }  // extern "C".
    +}  // Isobar namespace.
    +
    +#endif
    +
    +
    +
    +
    +

    4.4 Intermediate Class File¶

    +

    Changes from 3.2 Class Associated File are:

    +
      +
    1. Redefinition of the default macros ACCESS_OBJECT and ACCESS_CLASS.
        +
      • The pointer to the C++ encapsulated object (attribute _object) is hold +by the base class PyEntity. The ACCESS_OBJECT macro which is tasked +to give access to that attribute is then _baseObject._object as +PyComponent is a direct derived class of PyEntity.
      • +
      • ACCESS_CLASS is similar to ACCESS_OBJECT for accessing the base +class, that is a pointer to PyEntity.
      • +
      +
    2. +
    +

    +
      +
    1. For defining the PyTypeComponent Python type, we call a yet different +macro: PyTypeInheritedObjectDefinitions(), dedicated to derived classes. +For this this macro we need to give as argument the derived class and the +base class.
    2. +
    +
    #include "hurricane/isobar/PyComponent.h"
    +#include "hurricane/isobar/PyNet.h"
    +
    +namespace  Isobar {
    +  using namespace Hurricane;
    +
    +  extern "C" {
    +
    +#undef   ACCESS_OBJECT
    +#undef   ACCESS_CLASS
    +#define  ACCESS_OBJECT           _baseObject._object
    +#define  ACCESS_CLASS(_pyObject)  &(_pyObject->_baseObject)
    +#define  METHOD_HEAD(function)   GENERIC_METHOD_HEAD(Component,component,function)
    +
    +#if defined(__PYTHON_MODULE__)
    +
    +    DirectGetLongAttribute(PyComponent_getX,getX,PyComponent,Component)
    +    DirectGetLongAttribute(PyComponent_getY,getY,PyComponent,Component)
    +    DBoDestroyAttribute(PyComponent_destroy,PyComponent)
    +
    +    static PyObject* PyComponent_getNet ( PyComponent *self )
    +    {
    +      Net* net = NULL;
    +      HTRY
    +        METHOD_HEAD( "Component.getNet()" )
    +        net = component->getNet( );
    +      HCATCH
    +      return PyNet_Link( net );
    +    }
    +
    +    PyMethodDef PyComponent_Methods[] =
    +      { { "getX"   , (PyCFunction)PyComponent_getX   , METH_NOARGS
    +                   , "Return the Component X value." }
    +      , { "getY"   , (PyCFunction)PyComponent_getY   , METH_NOARGS
    +                   , "Return the Component Y value." }
    +      , { "getNet" , (PyCFunction)PyComponent_getNet , METH_NOARGS
    +                   , "Returns the net owning the component." }
    +      , { "destroy", (PyCFunction)PyComponent_destroy, METH_NOARGS
    +                   , "destroy associated hurricane object, the python object remains." }
    +      , {NULL, NULL, 0, NULL}    /* sentinel */
    +      };
    +
    +    DBoDeleteMethod(Component)
    +    PyTypeObjectLinkPyType(Component)
    +
    +#else  // Python Module Code Part.
    +
    +    PyTypeInheritedObjectDefinitions(Component, Entity)
    +
    +#endif  // Shared Library Code Part.
    +
    +  }  // extern "C".
    +}  // Isobar namespace.
    +
    +
    +
    +
    +

    4.5 Terminal Class Header¶

    +

    The contents of this file is almost identical to 4.3 Intermediate Class Header, +save for the presence of a PyContact_Link() function. She is present +at this level because the class is a concrete one and can be instanciated.

    +
    #ifndef ISOBAR_PY_CONTACT_H
    +#define ISOBAR_PY_CONTACT_H
    +
    +#include "hurricane/isobar/PyComponent.h"
    +#include "hurricane/Contact.h"
    +
    +namespace  Isobar {
    +  extern "C" {
    +
    +    typedef struct {
    +      PyComponent _baseObject;
    +    } PyContact;
    +
    +    extern PyTypeObject  PyTypeContact;
    +    extern PyMethodDef   PyContact_Methods[];
    +    extern PyObject*     PyContact_Link       ( Hurricane::Contact* object );
    +    extern void          PyContact_LinkPyType ();
    +
    +#define IsPyContact(v)    ( (v)->ob_type == &PyTypeContact )
    +#define PYCONTACT(v)      ( (PyContact*)(v) )
    +#define PYCONTACT_O(v)    ( PYCONTACT(v)->_baseObject._baseObject._object )
    +
    +  }  // extern "C".
    +}  // Isobar namespace.
    +
    +#endif  // ISOBAR_PY_CONTACT_H
    +
    +
    +
    +
    +

    4.6 Terminal Class File¶

    +

    Changes from 4.4 Intermediate Class File are:

    +
      +
    1. As previously, we have to redefine the macros ACCESS_OBJECT and ACCESS_CLASS. +But, as we are one level deeper into the hierarchy, one more level of +indirection using _baseObject must be used.
        +
      • ACCESS_OBJECT becomes _baseObject._baseObject._object.
      • +
      • ACCESS_CLASS becomes &(_pyObject->_baseObject._baseObject).
      • +
      +
    2. +
    3. For defining the PyTypeContact Python type, we call again +PyTypeInheritedObjectDefinitions(). It is the same whether the class is +terminal or not.
    4. +
    5. And, this time, as the Python class is concrete, we call the macro +DBoLinkCreateMethod() to create the PyContact_Link() function.
    6. +
    +
    #include "hurricane/isobar/PyContact.h"
    +
    +namespace  Isobar {
    +  using namespace Hurricane;
    +
    +  extern "C" {
    +
    +#undef  ACCESS_OBJECT
    +#undef  ACCESS_CLASS
    +#define ACCESS_OBJECT           _baseObject._baseObject._object
    +#define ACCESS_CLASS(_pyObject) &(_pyObject->_baseObject._baseObject)
    +#define METHOD_HEAD(function)   GENERIC_METHOD_HEAD(Contact,contact,function)
    +
    +#if defined(__PYTHON_MODULE__)
    +
    +    DirectGetLongAttribute(PyContact_getWidth , getWidth , PyContact,Contact)
    +    DirectGetLongAttribute(PyContact_getHeight, getHeight, PyContact,Contact)
    +    DBoDestroyAttribute(PyContact_destroy, PyContact)
    +
    +    static PyObject* PyContact_create ( PyObject*, PyObject *args )
    +    {
    +      Contact* contact = NULL;
    +      HTRY
    +        // Usual signature then arguments parsing.
    +      HCATCH
    +      return PyContact_Link(contact);
    +    }
    +
    +    PyMethodDef PyContact_Methods[] =
    +      { { "create"   , (PyCFunction)PyContact_create   , METH_VARARGS|METH_STATIC
    +                     , "Create a new Contact." }
    +      , { "destroy"  , (PyCFunction)PyContact_destroy  , METH_NOARGS
    +                     , "Destroy associated hurricane object, the python object remains." }
    +      , { "getWidth" , (PyCFunction)PyContact_getWidth , METH_NOARGS
    +                     , "Return the contact width." }
    +      , { "getHeight", (PyCFunction)PyContact_getHeight, METH_NOARGS
    +                     , "Return the contact height." }
    +      , {NULL, NULL, 0, NULL}  /* sentinel */
    +      };
    +
    +    DBoDeleteMethod(Contact)
    +    PyTypeObjectLinkPyType(Contact)
    +
    +#else  // Python Module Code Part.
    +
    +    DBoLinkCreateMethod(Contact)
    +    PyTypeInheritedObjectDefinitions(Contact, Component)
    +
    +#endif  // Shared Library Code Part.
    +
    +  }  // extern "C".
    +}  // Isobar namespace.
    +
    +
    +
    +
    +

    4.8 Python Module¶

    +
    DL_EXPORT(void) initHurricane ()
    +{
    +  PyEntity_LinkPyType();  // step 1.
    +  PyComponent_LinkPyType();
    +  PyContact_LinkPyType();
    +
    +  PYTYPE_READY( Entity )  // step 2.
    +  PYTYPE_READY_SUB( Component, Entity )
    +  PYTYPE_READY_SUB( Contact  , Component )
    +
    +  __cs.addType( "ent"    , &PyTypeEntity   , "<Entity>"   , false ); // step 3.
    +  __cs.addType( "comp"   , &PyTypeComponent, "<Component>", false, "ent"  );
    +  __cs.addType( "contact", &PyTypeContact  , "<Contact>"  , false, "comp" );
    +
    +  PyObject* module = Py_InitModule( "Hurricane", PyHurricane_Methods );
    +  if (module == NULL) {
    +    cerr << "[ERROR]\n"
    +         << "  Failed to initialize Hurricane module." << endl;
    +    return;
    +  }
    +
    +  Py_INCREF( &PyTypeContact );                                        // step 4.
    +  PyModule_AddObject( module, "Contact", (PyObject*)&PyTypeContact ); // step 4.
    +}
    +
    +
    +
    +
    + + +
    +
    + + + + +
    + +
    + + + + + +
    + Generated by Sphinx + using a RTD theme on Jul 15, 2017. +
    + + + + + +
    Coriolis 2 Documentation + © Copyright 2000-2017, UPMC. +
    +
    + +
    + +
    +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/documentation/_build/html/PythonCpp/DBoStandalone.html b/documentation/_build/html/PythonCpp/DBoStandalone.html new file mode 100644 index 00000000..b0bc58cb --- /dev/null +++ b/documentation/_build/html/PythonCpp/DBoStandalone.html @@ -0,0 +1,669 @@ + + + + + + + + + + + + 3. Case 1 - DBo Derived, Standalone — Coriolis 2 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + + + +
    +
    +
    + +
    +
    +
    + +
    +

    3. Case 1 - DBo Derived, Standalone¶

    +

    As example, we take Library. This a DBo derived class, but we +choose not to export the parent classes. From Python, it will appear +as a base class.

    +
    +

    3.1 Class Associated Header File¶

    +

    Here is the typical content of a header file (for PyLibrary):

    +
    #ifndef  PY_LIBRARY_H
    +#define  PY_LIBRARY_H
    +
    +#include "hurricane/isobar/PyHurricane.h"
    +#include "hurricane/Library.h"
    +
    +namespace  Isobar {
    +  using namespace Hurricane;
    +
    +  extern "C" {
    +
    +    typedef struct {
    +        PyObject_HEAD
    +        Library* _object;
    +    } PyLibrary;
    +
    +    extern  PyTypeObject  PyTypeLibrary;
    +    extern  PyMethodDef   PyLibrary_Methods[];
    +    extern  PyObject*     PyLibrary_Link       ( Hurricane::Library* lib );
    +    extern  void          PyLibrary_LinkPyType ();
    +
    +
    +#define IsPyLibrary(v) ( (v)->ob_type == &PyTypeLibrary )
    +#define PYLIBRARY(v)   ( (PyLibrary*)(v) )
    +#define PYLIBRARY_O(v) ( PYLIBRARY(v)->_object )
    +
    +  }  // extern "C".
    +}  // Isobar namespace.
    +
    +#endif  // PY_LIBRARY_H
    +
    +
    +

    The code is organized as follow:

    +
      +
    1. It must have, as the first include PyHurricane.h, which provides +the complete bunch of macros needed to build the module. Then the include +of the C++ class we want to wrap (Library.h).

      +
    2. +
    3. As Python is written in C, all the wrapper code has to be but inside +an extern "C" namespace.

      +
    4. +
    5. Definition of the wrapped struct, PyLibrary. It is standard Python here.

      +
      +

      Note

      +

      For our set of macros to work, the name of the pointer to the +C++ class must always be _object, and the various functions and +macros defined here must take the name of the class (either in +lowercase, camel case or capitals).

      +
      +
    6. +
    7. Declaration of the Python type PyTypeLibrary (standard).

      +
    8. +
    9. Declaration of the Python type table of methods PyLibrary_Methods (standard).

      +
    10. +
    +
      +
    1. Declaration of PyLibrary_Link(), helper to convert a C++ Lybrary into +a PyLibrary (put in the support shared library).
    2. +
    3. Declaration of PyLibrary_LinkPyType(), this function setup the class-level +function of the new Python type (here, PyTypeLibrary).
    4. +
    5. And, lastly, three macros to:
        +
      • IsPylibrary(), know if a Python object is a PyLibrary
      • +
      • PYLIBRARY(), force cast (C style) of a PyObject into a PyLibrary.
      • +
      • PYLIBRARY_O(), extract the C++ object (Library*) from the Python +object (PyLibrary).
      • +
      +
    6. +
    +
    +
    +

    3.2 Class Associated File¶

    +
    +

    3.2.1 Head of the file¶

    +
    #include "hurricane/isobar/PyLibrary.h"
    +#include "hurricane/isobar/PyDataBase.h"
    +#include "hurricane/isobar/PyCell.h"
    +
    +namespace Isobar {
    +  using namespace Hurricane;
    +
    +  extern "C" {
    +
    +#define  METHOD_HEAD(function)   GENERIC_METHOD_HEAD(Library,lib,function)
    +
    +
    +

    As for the header, all the code must be put inside a extern "C" namespace.

    +

    A convenience macro METHOD_HEAD() must be defined, by refining +GENERIC_METHOD_HEAD(). This macro will be used in the method wrappers +below to cast the _object field of the Python object into the +appropriate C++ class, this is done using a C-style cast. +The parameters of that macro are:

    +
      +
    1. The C++ encapsulated class (Library).
    2. +
    3. The name of the variable that will be used to store a pointer +to the C++ working object.
    4. +
    5. The name of the C++ method which is to be wrapped.
    6. +
    +
    +
    +

    3.2.2 The Python Module Part¶

    +

    First, we have to build all the wrappers to the C++ methods of +the class. For common predicates, accessors, and mutators macros +are supplied.

    +

    Wrapping of the Library::getCell() method:

    +
    static PyObject* PyLibrary_getCell ( PyLibrary* self, PyObject* args )
    +{
    +  Cell* cell = NULL;
    +
    +  HTRY
    +    METHOD_HEAD( "Library.getCell()" )
    +    char* name = NULL;
    +    if (PyArg_ParseTuple(args,"s:Library.getCell", &name)) {
    +      cell = lib->getCell( Name(name) );
    +    } else {
    +      PyErr_SetString( ConstructorError
    +                     , "invalid number of parameters for Library::getCell." );
    +      return NULL;
    +    }
    +  HCATCH
    +
    +  return PyCell_Link(cell);
    +}
    +
    +
    +

    Key points about this method wrapper:

    +
      +
    1. The HTRY / HCATCH macros provides an insulation from the C++ +exceptions. If one is emitted, it will be catched and transformed in +a Python one. This way, the Python program will be cleanly interrupted +and the usual stack trace displayed.
    2. +
    3. The returned value of this method is of type Cell*, we have to +transform it into a Python one. This is done with PyCell_Link(). +This macro is supplied by the PyCell.h header and this is why +it must be included.
    4. +
    +

    +

    Wrapping of the Library::create() method:

    +
    static PyObject* PyLibrary_create( PyObject*, PyObject* args )
    +{
    +  PyObject* arg0;
    +  PyObject* arg1;
    +  Library* library = NULL;
    +
    +  HTRY
    +    __cs.init( "Library.create" );                          // Step (1).
    +    if (not PyArg_ParseTuple( args, "O&O&:Library.create"
    +                            , Converter, &arg0
    +                            , Converter, &arg1 )) {         // Step (2).
    +      PyErr_SetString( ConstructorError
    +                     , "invalid number of parameters for Library constructor." );
    +      return NULL;
    +    }
    +    if (__cs.getObjectIds() == ":db:string") {              // Step (3.a)
    +      DataBase* db = PYDATABASE_O(arg0);
    +      library = Library::create( db, Name(PyString_AsString(arg1)) );
    +    } else if (__cs.getObjectIds() == ":library:string") {  // Step (3.b)
    +      Library* masterLibrary = PYLIBRARY_O(arg0);
    +      library = Library::create( masterLibrary, Name(PyString_AsString(arg1)) );
    +    } else {
    +      PyErr_SetString( ConstructorError
    +                     , "invalid number of parameters for Library constructor." );
    +      return NULL;
    +    }
    +  HCATCH
    +
    +  return PyLibrary_Link( library );
    +}
    +
    +
    +

    Key point about this constructor:

    +
      +
    1. We want the Python interface to mimic as closely as possible the +C++ API. As such, Python object will be created using a static +.create() method. So we do not use the usual Python allocation +mechanism.
    2. +
    3. As it is a static method, there is no first argument.
    4. +
    5. Python do not allow function overload like C++. To emulate that +behavior we use the __cs object (which is a global variable).
        +
      1. Init/reset the __cs object: see step (1).
      2. +
      3. Call PyArg_ParseTuple(), read every mandatory or optional +argument as a Python object ("O&") and use Converter +on each one. Converter will determine the real type of +the Python object given as argument by looking at the +encapsulated C++ class. It then update the __cs object. +Done in step (2)
      4. +
      5. After the call to PyArg_ParseTuple(), the function +__cs.getObjectIds() will return the signature of +the various arguments. In our case, the valid signatures +will be ":db:string" (step (3.a)*a) and ``”:library:string”`` +(*step (3.b)).
      6. +
      7. Call the C++ method after extracting the C++ objects from +the Python arguments. Note the use of the PYLIBRARY_O() +and PYDATABSE_O() macros to perform the conversion.
      8. +
      +
    6. +
    7. Return the result, encapsulated through a call to PyLibrary_Link().
    8. +
    +

    +

    Wrapping of the Library::destroy() method:

    +
    DBoDestroyAttribute(PyLibrary_destroy, PyLibrary)
    +
    +
    +

    For C++ classes that are derived from DBo, the destroy method +wrapper must be defined using the macro DBoDestroyAttribute(). +This macro implements the bi-directional communication mechanism +using Hurricane::Property. It must not be used for +non DBo derived classes.

    +

    Defining the method table of the PyLibrary type:

    +
    PyMethodDef PyLibrary_Methods[] =
    +  { { "create"    , (PyCFunction)PyLibrary_create , METH_VARARGS|METH_STATIC
    +                  , "Creates a new library." }
    +  , { "getCell"   , (PyCFunction)PyLibrary_getCell, METH_VARARGS
    +                  , "Get the cell of name <name>" }
    +  , { "destroy"   , (PyCFunction)PyLibrary_destroy, METH_NOARGS
    +                  , "Destroy associated hurricane object The python object remains." }
    +  , {NULL, NULL, 0, NULL}           /* sentinel */
    +  };
    +
    +
    +

    This is standard Python/C API. The name of the PyMethodDef table must be +named from the class: PyLibrary_Methods.

    +
    +
    +

    3.2.3 Python Type Linking¶

    +

    Defining the PyTypeLibrary class methods and the type linking function.

    +

    Those are the functions for the Python object itself to work, not the +wrapped method from the C++ class.

    +
    +

    Note

    +

    At this point we do not define the PyTypeLibrary itself. +Only it’s functions and a function to set them up once the +type will be defined.

    +
    +
    DBoDeleteMethod(Library)
    +PyTypeObjectLinkPyType(Library)
    +
    +
    +

    The macro DBoDeleteMethod() define the function to delete a +PyLibrary Python object. Again, do not mistake it for the deletion +of the C++ class (implemented by DBoDestroyAttribute()). +Here again, DBoDeleteMethod() is specially tailored for +DBo derived classes.

    +

    To define PyLibrary_LinkPyType(), use the PyTypeObjectLinkPyType() +macro. This macro is specific for DBo derived classes that are seen as +base classes under Python (i.e. we don’t bother exposing the base +class under Python). PyLibrary_LinkPyType() setup the class functions +in the PyTypeLibrary type object, it must be called in the +Python module this class is part of (in this case: PyHurricane.cpp). +This particular flavor of the macro will define and setup the +following class functions:

    +
      +
    • PyTypeLibrary.tp_compare (defined by the macro).
    • +
    • PyTypeLibrary.tp_repr (defined by the macro).
    • +
    • PyTypeLibrary.tp_str (defined by the macro).
    • +
    • PyTypeLibrary.tp_hash (defined by the macro).
    • +
    • PyTypeLibrary.tp_methods sets to the previously defined PyLibrary_Methods table.
    • +
    • PyTypeLibrary.tp_dealloc is set to a function that must be named PyLibrary_DeAlloc, +this is what DBoDeleteMethod does. It is not done by PyTypeObjectLinkPyType.
    • +
    +

    Defining the PyTypeLibrary type:

    +
    +
    +

    3.2.4 The Shared Library Part¶

    +

    This part will be put in a separate supporting shared library, allowing +other Python module to link against it (and make use of its symbols).

    +
    DBoLinkCreateMethod(Library)
    +PyTypeObjectDefinitions(Library)
    +
    +
    +

    To define PyTypeLibrary, use the PyTypeObjectDefinitions() macro. +This macro is specific for classes that, as exposed by Python, +are neither derived classes nor base classes for others. +That is, they are standalone from the inheritance point of view.

    +

    The DBoLinkCreateMethod() macro will define the PyLibrary_Link() +function which is responsible for encapsulating a C++ Library object +into a Python PyLibrary one.

    +
    +
    +
    +

    3.3 Python Module (C++ namespace)¶

    +

    We use the Python module to replicate the C++ namespace. Thus, for the +Hurricane namespace we create a Python Hurricane module which is +defined in the PyHurricane.cpp file, then we add into that module +dictionary all the Python types encapsulating the C++ classes of that +namespace.

    +
    DL_EXPORT(void) initHurricane ()
    +{
    +  PyLibrary_LinkPyType();  // step 1.
    +
    +  PYTYPE_READY( Library )  // step 2.
    +
    +  __cs.addType( "library", &PyTypeLibrary, "<Library>", false ); // step 3.
    +
    +  PyObject* module = Py_InitModule( "Hurricane", PyHurricane_Methods );
    +  if (module == NULL) {
    +    cerr << "[ERROR]\n"
    +         << "  Failed to initialize Hurricane module." << endl;
    +    return;
    +  }
    +
    +  Py_INCREF( &PyTypeLibrary );                                        // step 4.
    +  PyModule_AddObject( module, "Library", (PyObject*)&PyTypeLibrary ); // step 4.
    +}
    +
    +
    +

    The initHurricane() initialisation function shown above has +been scrubbed of everything not relevant to the PyLibrary class. +The integration of the PyLibrary class into the module needs +four steps:

    +
      +
    1. A call to PyLibrary_LinkPyType() to hook the Python type functions +in the Python type object.

      +
    2. +
    3. A call to the PYTYPE_READY() macro (standard Python).

      +
    4. +
    5. Registering the type into the __cs object, with addType(). +The arguments are self explanatory, save for the last which is a +boolean to tell if this is a derived class or not.

      +
    6. +
    7. Adding the type object (PyTypeLibrary) into the dictionnary of +the module itself. This allow to mimic closely the C++ syntax:

      +
      import Hurricane
      +lib = Hurricane.Library.create( db, 'root' )
      +
      +
      +
    8. +
    +
    +
    + + +
    +
    + + + + +
    + +
    + + + + + +
    + Generated by Sphinx + using a RTD theme on Jul 15, 2017. +
    + + + + + +
    Coriolis 2 Documentation + © Copyright 2000-2017, UPMC. +
    +
    + +
    + +
    +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/documentation/_build/html/PythonCpp/DbU.html b/documentation/_build/html/PythonCpp/DbU.html new file mode 100644 index 00000000..e1d1b95c --- /dev/null +++ b/documentation/_build/html/PythonCpp/DbU.html @@ -0,0 +1,383 @@ + + + + + + + + + + + + 6. Encapsulating DbU — Coriolis 2 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + + + +
    +
    +
    + +
    +
    +
    + +
    +

    6. Encapsulating DbU¶

    +

    While Hurricane::DbU is a class, the Hurricane::DbU::Unit is only +a typedef over uint64_t. The DbU class only provides a set of +static methods to manipulate and convert to and from other units. +At Python level, DbU::Unit will be stored in plain long long.

    +

    When a DbU::Unit argument is expected in a Python functions, just use +the DbU::Unit  PyAny_AsLong( PyObject* ) function to convert it.

    +

    For example, if we explicit the expension of:

    +
    DirectSetLongAttribute(PyPoint_SetX,setX,PyPoint,Point)
    +
    +
    +

    +

    We would get:

    +
    static PyObject* PyPoint_setX ( PyPoint *self, PyObject* args )
    +{
    +  Point* cobject = static_cast<Point*>( self->_object );
    +  if (cobject == NULL) {
    +    PyErr_SetString( ProxyError
    +                   , "Attempt to call Point.setX() on an unbound Hurricane object" );
    +    return NULL;
    +  }
    +
    +  HTRY
    +    PyObject* arg0 = NULL;
    +    if (not PyArg_ParseTuple( args, "O:Point.setX()", &arg0 ))
    +      return ( NULL );
    +    cobject->setX( Isobar::PyAny_AsLong(arg0) );
    +  HCATCH
    +  Py_RETURN_NONE;
    +}
    +
    +
    +

    For the other way around, use PyObject* PyDbU_FromLong( DbU::Unit ).

    +
    DirectGetLongAttribute(PyPoint_GetX,getX,PyPoint,Point)
    +
    +
    +

    We would get:

    +
    static PyObject* PyPoint_GetX ( PyPoint *self, PyObject* args )
    +{
    +  Point* cobject = static_cast<Point*>( self->_object );
    +  if (cobject == NULL) {
    +    PyErr_SetString( ProxyError
    +                   , "Attempt to call Point.getX() on an unbound Hurricane object" );
    +    return NULL;
    +  }
    +  return Isobar::PyDbU_FromLong(cobject->getX());
    +}
    +
    +
    +
    + + +
    +
    + + + + +
    + +
    + + + + + +
    + Generated by Sphinx + using a RTD theme on Jul 15, 2017. +
    + + + + + +
    Coriolis 2 Documentation + © Copyright 2000-2017, UPMC. +
    +
    + +
    + +
    +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/documentation/_build/html/PythonCpp/Introduction.html b/documentation/_build/html/PythonCpp/Introduction.html new file mode 100644 index 00000000..b63d2391 --- /dev/null +++ b/documentation/_build/html/PythonCpp/Introduction.html @@ -0,0 +1,497 @@ + + + + + + + + + + + + 1. Introduction — Coriolis 2 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + + + +
    +
    +
    + +
    +
    +
    + +
    +

    1. Introduction¶

    +
      +
    • This document is written for people already familiar with the +Python/C API Reference Manual.
    • +
    • The macros provided by the Hurricane Python/C API are written using +the standard Python C/API. That is, you may not use them and write +directly your functions with the original API or any mix between. +You only have to respect some naming convention.
    • +
    • Coriolis is build against Python 2.7.
    • +
    +
    +

    1.1 First, A Disclaimer¶

    +

    The Hurricane Python/C++ API has been written about ten years ago, at a time +my mastering of template programming was less than complete. This is why this +interface is build with old fashioned C macro instead of C++ template.

    +

    It is my hope that at some point in the future I will have time to completly +rewrite it, borrowing the interface from boost::python.

    +
    +
    +

    1.2 About Technical Choices¶

    +

    Some would say, why not use off the shelf wrappers like swig +or boost::python, here are some clues.

    +
      +
    1. Partial exposure of the C++ class tree. We expose at Python level +C++ base classes, only if they provides common methods that we want +to see. Otherwise, we just show them as base classes under Python. +For instance Library is derived from DBo, but we won’t see +it under Python.

      +
    2. +
    3. Bi-directional communication. When a Python object is deleted, the +wrapper obviously has a pointer toward the underlying C++ object and +is able to delete it. But, the reverse case can occurs, meaning that +you have a C++ object wrapped in Python and the database delete the +underlying object. The wrapped Python object must be informed that +it no longer refer a valid C++ one. Moreover, as we do not control +when Python objects gets deleteds (that is, when their reference count +reaches zero), we can have valid Python object with a dangling +C++ pointer. So our Python objects can be warned by the C++ objects +that they are no longer valid and any other operation than the +deletion should result in a severe non-blocking error.

      +

      To be precise, this apply to persistent object in the C++ database, +like Cell, Net, Instance or Component. Short lived +objects like Box or Point retains the classic Python behavior.

      +

      Another aspect is that, for all derived DBo objects, one and only +one Python object is associated. For one given Instance object we +will always return the same PyInstance object, thanks to the +bi-directional link. Obviously, the reference count of the +PyInstance is managed accordingly. This mechanism is implemented +by the PyInstance_Link() function.

      +
    4. +
    5. Linking accross modules. As far as I understand, the wrappers +are for monolithic libraries. That is, you wrap the entire library +in one go. But Hurricane has a modular design, the core database +then various tools. We do not, and cannot, have one gigantic wrapper +that would encompass all the libraries in one go. We do one Python +module for one C++ library.

      +

      This brings another issue, at Python level this time. The Python +modules for the libraries have to share some functions. Python +provides a mechanism to pass C function pointers accross modules, +but I did found it cumbersome. Instead, all our modules are split +in two:

      +
        +
      • The first part contains the classic Python module code.
      • +
      • The second part is to be put in a separate dynamic library that +will hold the shared functions. The Python module is dynamically linked +against that library like any other. And any other Python module +requiring the functions will link against the associated shared +library.
      • +
      +

      Each module file will be compiled twice, once to build the Python +module (__PYTHON_MODULE is defined) and once to build the supporting +shared library (__PYTHON_MODULE__ not defined). This tricky +double compilation is taken care of though the add_python_module +cmake macro.

      +

      For the core Hurricane library we will have:

      +
        +
      • Hurricane.so the Python module (use with: import Hurricane).
      • +
      • libisobar.so.1.0 the supporting shared library.
      • +
      +

      The PyLibrary.cpp file will have the following structure:

      +
      #include "hurricane/isobar/PyLibrary.h"
      +
      +namespace  Isobar {
      +
      +  extern "C" {
      +
      +#if defined(__PYTHON_MODULE__)
      +
      +  // +=================================================================+
      +  // |               "PyLibrary" Python Module Code Part               |
      +  // +=================================================================+
      +  //
      +  // The classic part of a Python module. Goes into Hurricane.so.
      +
      +
      +#else  // End of Python Module Code Part.
      +
      +  // x=================================================================x
      +  // |              "PyLibrary" Shared Library Code Part               |
      +  // x=================================================================x
      +  //
      +  // Functions here will be part of the associated shared library and
      +  // made available to all other Python modules. Goes into libisobar.so.1.0
      +
      +
      +# endif  // Shared Library Code Part.
      +
      +  }  // extern "C".
      +
      +}  // Isobar namespace.
      +
      +
      +

      This way, we do not rely upon a pointer transmission through Python +modules, but directly uses linker capabilities.

      +
    6. +
    +
    +
    +

    1.3 Botched Design¶

    +

    The mechanism to compute the signature of a call to a Python function, +the __cs object, is much too complex and, in fact, not needed. +At some point I may root it out, but it is used in so many places...

    +

    What I should have used the "O!" capablity of PyArg_ParseTuple(), +like in the code below:

    +

    +
    static PyObject* PyContact_create ( PyObject*, PyObject *args )
    +{
    +  Contact* contact = NULL;
    +  HTRY
    +    PyNet*       pyNet       = NULL;
    +    PyLayer*     pyLayer     = NULL;
    +    PyComponent* pyComponent = NULL;
    +    DbU::Unit    x           = 0;
    +    DbU::Unit    y           = 0;
    +    DbU::Unit    width       = 0;
    +    DbU::Unit    height      = 0;
    +
    +    if (PyArg_ParseTuple( args, "O!O!ll|ll:Contact.create"
    +                        , &PyTypeNet  , &pyNet
    +                        , &PyTypeLayer, &pyLayer
    +                        , &x, &y, &width, &height)) {
    +      contact = Contact::create( PYNET_O(pyNet), PYLAYER_O(pyLayer)
    +                               , x, y, width, height );
    +    } else {
    +      PyErr_Clear();
    +      if (PyArg_ParseTuple( args, "O!O!ll|ll:Contact.create"
    +                          , &PyTypeComponent, &pyComponent
    +                          , &PyTypeLayer    , &pyLayer
    +                          , &x, &y, &width, &height)) {
    +        contact = Contact::create( PYCOMPONENT_O(pyComponent), PYLAYER_O(pyLayer)
    +                                 , x, y, width, height );
    +      } else {
    +        PyErr_SetString( ConstructorError
    +                       , "invalid number of parameters for Contact constructor." );
    +        return NULL;
    +      }
    +    }
    +  HCATCH
    +  return PyContact_Link( contact );
    +}
    +
    +
    +
    +
    + + +
    +
    + + + + +
    + +
    + + + + + +
    + Generated by Sphinx + using a RTD theme on Jul 15, 2017. +
    + + + + + +
    Coriolis 2 Documentation + © Copyright 2000-2017, UPMC. +
    +
    + +
    + +
    +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/documentation/_build/html/PythonCpp/Name.html b/documentation/_build/html/PythonCpp/Name.html new file mode 100644 index 00000000..84b19d21 --- /dev/null +++ b/documentation/_build/html/PythonCpp/Name.html @@ -0,0 +1,336 @@ + + + + + + + + + + + + 7. No C++ Hurricane::Name encapsulation — Coriolis 2 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + + + +
    +
    +
    + +
    +
    +
    + +
    +

    7. No C++ Hurricane::Name encapsulation¶

    +

    To be written.

    +
    + + +
    +
    + + + + +
    + +
    + + + + + +
    + Generated by Sphinx + using a RTD theme on Jul 15, 2017. +
    + + + + + +
    Coriolis 2 Documentation + © Copyright 2000-2017, UPMC. +
    +
    + +
    + +
    +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/documentation/_build/html/PythonCpp/NonDBo.html b/documentation/_build/html/PythonCpp/NonDBo.html new file mode 100644 index 00000000..857508c6 --- /dev/null +++ b/documentation/_build/html/PythonCpp/NonDBo.html @@ -0,0 +1,486 @@ + + + + + + + + + + + + 5. Case 3 - Non-DBo Standalone Classe — Coriolis 2 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + + + +
    +
    +
    + +
    +
    +
    + +
    +

    5. Case 3 - Non-DBo Standalone Classe¶

    +

    Let’s have a look at the encapsulation of Hurricane::Point.

    +

    Non-BDo derived classes do not support the bi-directionnal communication. +So each Python object is associated with one C++ object. The C++ object +is created and deleted along with the Python one. This behavior implies +that the C++ object is copy constructible (which should be the case).

    +
    +

    5.1 Class Header¶

    +

    Changes from 3.1 Class Associated Header File:

    +
      +
    • There is no PyPoint_Link() function, as it’s related to the +bi-directional communication mechanism.
    • +
    +
    +

    Note

    +

    About the _object attribute of the PyPoint. As the C++ object life span +(Point) is linked to the Python (PyPoint) one, we may have used a +value instead of a pointer. It is best to keep a pointer as the macros +written for DBo derived classes will remain usables.

    +
    +
    #ifndef ISOBAR_PY_POINT_H
    +#define ISOBAR_PY_POINT_H
    +
    +#include "hurricane/isobar/PyHurricane.h"
    +#include "hurricane/Point.h"
    +
    +namespace  Isobar {
    +  extern "C" {
    +
    +    typedef struct {
    +        PyObject_HEAD
    +        Hurricane::Point* _object;
    +    } PyPoint;
    +
    +    extern  PyTypeObject  PyTypePoint;
    +    extern  PyMethodDef   PyPoint_Methods[];
    +    extern  void          PyPoint_LinkPyType();
    +
    +#define IsPyPoint(v)    ( (v)->ob_type == &PyTypePoint )
    +#define PYPOINT(v)      ( (PyPoint*)(v) )
    +#define PYPOINT_O(v)    ( PYPOINT(v)->_object )
    +
    +  }  // extern "C".
    +}  // Isobar namespace.
    +
    +#endif  // ISOBAR_PY_POINT_H
    +
    +
    +

    +
    +
    +

    5.2 Class File¶

    +

    Changes from 3.2 Class Associated File:

    +
      +
    • As there is no PyPoint_Link() function, there is no call to any +flavor of the DBoLinkcreatemethod() macro (obvious as it’s not +a DBo).
    • +
    • To use the standard Python constructor, we have to define PyPoint_NEW() +and PyPoint_Init() functions, I’m not absolutely certain that the later +needs to be defined (that part is still not clear to me from the Python doc).
    • +
    • As it’s not a DBo there is no destroy() method, so no call to +DirectDestroyMethod()
    • +
    • Lastly, as this object has a PyPoint_NEW() (field tp_new) and +a PyPoint_Init() (field tp_init) we have to use the macro +PyTypeObjectLinkPyTypeNewInit() to define PyPoint_LinkPyType().
    • +
    +
    #include "hurricane/isobar/PyPoint.h"
    +
    +namespace Isobar {
    +  using namespace Hurricane;
    +
    +  extern "C" {
    +
    +#define METHOD_HEAD(function)   GENERIC_METHOD_HEAD(Point,point,function)
    +
    +#if defined(__PYTHON_MODULE__)
    +
    +    static PyObject* PyPoint_NEW ( PyObject* module, PyObject *args )
    +    {
    +      Point* point = NULL;
    +      HTRY
    +        PyObject* arg0 = NULL;
    +        PyObject* arg1 = NULL;
    +
    +        __cs.init( "Point.Point" );
    +        if (not PyArg_ParseTuple( args,"|O&O&:Point.Point"
    +                                , Converter,&arg0
    +                                , Converter,&arg1 )) {
    +          PyErr_SetString ( ConstructorError
    +                          , "invalid number of parameters for Point constructor." );
    +          return NULL;
    +        }
    +
    +        if      (__cs.getObjectIds() == "")
    +                { point = new Point()); }
    +        else if (__cs.getObjectIds() == ":point")
    +                { point = new Point( *PYPOINT_O(arg0) ); }
    +        else if (__cs.getObjectIds() == ":int:int")
    +                { point = new Point( PyAny_AsLong(arg0), PyAny_AsLong(arg1) ); }
    +        else {
    +          PyErr_SetString ( ConstructorError
    +                          , "invalid number of parameters for Point constructor." );
    +          return NULL;
    +        }
    +
    +        PyPoint* pyPoint = PyObject_NEW( PyPoint, &PyTypePoint );
    +        if (pyPoint == NULL) { delete point; return NULL; }
    +        pyPoint->_object = point;
    +      HCATCH
    +
    +      return (PyObject*)pyPoint;
    +    }
    +
    +    static int  PyPoint_Init ( PyPoint* self, PyObject* args, PyObject* kwargs )
    +    { return 0; }
    +
    +    DirectGetLongAttribute(PyPoint_getX,getX,PyPoint,Point)
    +    DirectGetLongAttribute(PyPoint_getY,getY,PyPoint,Point)
    +    DirectSetLongAttribute(PyPoint_SetX,setX,PyPoint,Point)
    +    DirectSetLongAttribute(PyPoint_SetY,setY,PyPoint,Point)
    +
    +    PyMethodDef PyPoint_Methods[] =
    +      { { "getX"   , (PyCFunction)PyPoint_getX     , METH_NOARGS
    +                   , "Return the Point X value." }
    +      , { "getY"   , (PyCFunction)PyPoint_getY     , METH_NOARGS
    +                   , "Return the Point Y value." }
    +      , { "setX"   , (PyCFunction)PyPoint_SetX     , METH_VARARGS
    +                   , "Modify the Point X value." }
    +      , { "setY"   , (PyCFunction)PyPoint_SetY     , METH_VARARGS
    +                   , "Modify the Point Y value." }
    +      , {NULL, NULL, 0, NULL}  /* sentinel */
    +      };
    +
    +    DirectDeleteMethod(PyPoint_DeAlloc,PyPoint)
    +    PyTypeObjectLinkPyTypeNewInit(Point)
    +
    +#else  // Python Module Code Part.
    +
    +    PyTypeObjectDefinitions(Point)
    +
    +#endif  // Shared Library Code Part.
    +
    +  }  // extern "C".
    +}  // Isobar namespace.
    +
    +
    +
    +
    +

    5.2 Class File¶

    +

    To put it bluntly, there is no difference in the Python module for +a standalone DBo class and a non-DBo class.

    +
    +
    + + +
    +
    + + + + +
    + +
    + + + + + +
    + Generated by Sphinx + using a RTD theme on Jul 15, 2017. +
    + + + + + +
    Coriolis 2 Documentation + © Copyright 2000-2017, UPMC. +
    +
    + +
    + +
    +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/documentation/_build/html/PythonCpp/index.html b/documentation/_build/html/PythonCpp/index.html new file mode 100644 index 00000000..f475e012 --- /dev/null +++ b/documentation/_build/html/PythonCpp/index.html @@ -0,0 +1,368 @@ + + + + + + + + + + + + Hurricane Python/C++ API Tutorial — Coriolis 2 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + + + + + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/documentation/_build/html/RDS/RDSpage.html b/documentation/_build/html/RDS/RDSpage.html new file mode 100644 index 00000000..5cba7b2e --- /dev/null +++ b/documentation/_build/html/RDS/RDSpage.html @@ -0,0 +1,784 @@ + + + + + + + + + + + + Symbolic Layout — Coriolis 2 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + + + +
    +
    +
    + +
    +
    +
    + +

    +
    +

    Symbolic Layout¶

    +
    +

    Symbolic Components¶

    +

    A symbolic layout is, in practice, made of only of three objects:

    + +++++ + + + + + + + + + + + + + + + + + + + + +
    ObjectmbkExplanation
    SegmentsphsegOriented segments with a width and an orientation.
    VIAs & contactsphviaBoils down to just a point.
    Big VIAs & Big ContactsphviaPoint with a width and a height +That is a rectangle of width by height centered +on the VIA coordinates.
    +

    Each of thoses objects is associated to a symbolic layer which will +control how the object is translated in many real rectangles.

    + ++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    mbkLayer NameUsable ByUsage
    phsegnwellSegmentN Well
    PWELLSegmentP Well
    NDIFSegmentN Diffusion
    PDIFSegmentP Diffusion
    NTIESegmentN Tie
    PTIESegmentP Tie
    NTRANSSegmentN transistor, in Alliance, a transistor +is represented as a segment (it’s grid).
    PTRANSSegmentP transistor
    POLYSegmentPolysilicium
    ALUxSegmentMetal level x
    CALUxSegmentMetal level x, that can be used by the +upper hierarchical level as a connector. +From the layout point of view it is the +same as ALUx.
    TALUxSegmentBlockage for metal level x. Will +diseappear in the real layout as it is an +information for the P&R tools only.
    phviaCONT_BODY_NVIA, BIGVIAContact to N Well
    CONT_BODY_PVIA, BIGVIAContact to P Well
    CONT_DIF_NVIA, BIGVIAContact to N Diffusion
    CONT_DIF_PVIA, BIGVIAContact to P Diffusion
    CONT_POLYVIA, BIGVIAContact to polysilicium
    CONT_VIAVIA, BIGVIAContact between metal1 and metal2
    CONT_VIAxVIA, BIGVIAContact between metal x and metal x+1. +The index is the the one of the bottom +metal of the VIA.
    C_X_NVIAN transistor corner, to build transistor +bend. Not used anymore in recent technos
    C_X_PVIAP transistor corner, to build transistor +bend. Not used anymore in recent technos
    +
    +

    Note

    +

    Not all association of object and symbolic layers are meaningful. +For instance you cannot associate a contact to a NTRANS layer.

    +
    +
    +

    Note

    +

    The symbolic layer associated with blockages is prefixed by a T, +for transparency, which may seems silly. It is for historical reasons, +it started as a true transparency, but at some point we had to invert +the meaning (blockage) with the rise of over-the-cell routing, but the +name stuck...

    +
    +
    +
    +

    Symbolic Segments¶

    +

    In Alliance, segments are oriented (up, down, left, right). This disambiguate +the left or right side when using the LCW and RCW rules in the rds file. +It allows to generate, if needed, asymetric object in the real layout file.

    +

    Symbolic Segment Orientations

    +

    +
    +
    +
    +

    The RDS File¶

    +

    The RDS file control how a symbolic layout is transformed into it’s real +conterpart.

    +
    +

    Note

    +

    Unit used inside the RDS file: all units are expressed in micrometers.

    +
    +

    Alliance tools relying on the RDS file, and what layers are active for them:

    + +++++ + + + + + + + + + + + + + + + + + + + + + + + + +
    ToolNameRDS Flags
    Layout editorgraalALL
    Design Rule CheckerdrucALL, DRC
    Electrical extractorcougarALL, EXT
    The symbolic to real layout translators2rALL
    +
    +

    Physical Grid & Lambda Value¶

    +

    RDS file:

    +
    DEFINE  PHYSICAL_GRID  0.005
    +DEFINE  LAMBDA         0.09
    +
    +

    Tells that the physical grid (founder grid) step is 0.005µm and the lambda has +a value of 0.09µm. That is, one lambda is 18 grid steps.

    +

    We can distinguish two kind of rds files:

    +
      +
    • The 1µm kind, odd segment widths and coordinates are allowed, but the LAMBDA +value must represent an even number of foundry grid step.
    • +
    • The 2µm kind, segments widths and coordinates must all be even. And in that case +the LAMBDA value can be any multiple of the foundry grid.
    • +
    +
    +
    +

    The MBK_TO_RDS_SEGMENT table¶

    +

    The MBK_TO_RDS_SEGMENT table control the way segments are translated into +real rectangles. Be aware that we are translating segments and not rectangles. +Segments are defined by their axis (source & target points) and their width. +The geometrical transformations are described according to that model. +Obviously, they are either horizontal or vertical.

    +

    The translation method of a symbolic segment is as follow:

    +
      +
    1. The segment is translated into one or more physical rectangles. +The generated rectangles depends on the tool which is actually +using rds and the flag for the considered real layer. +For instance, real layers flagged with DRC will be generated +for s2r (for the cif or gds) and druc, but will not +be shown under graal.

      +
    2. +
    3. Translation into one real layer. First the source & target coordinates and width +of the symbolic segment are multiplied by the LAMBDA value to obtain a real +segment. Then one of the VW, LCW or RCW transformation is applied to +that segment to get the final real rectangle.

      +
        +
      • VW for Variable Width, expand the real layer staying centered from the +original one. In those rules, the third number is not used, it is only here +to make the life easier for the parser...

        +

        RDS Variable Width Rule

        +
      • +
      • LCW or RCW for Left/Right Constant Width, create an off-center rectangle +of fixed width relatively to the real segment. Note that the SP number +is the distance between the edge of the real segment and the edge of the +generated real rectangle (not from the axis). It is often zero.

        +

        RDS Left Constant Width Rule

        +
      • +
      +
    4. +
    +

    +

    Examples:

    +
    TABLE MBK_TO_RDS_SEGMENT
    +
    +    # (Case 1)
    +    ALU1       RDS_ALU1   VW  0.18  0.09  0.0  ALL
    +
    +    # (Case 2)
    +    NDIF       RDS_NDIF   VW  0.18  0.0   0.0  ALL \
    +               RDS_ACTIV  VW  0.18  0.0   0.0  DRC \
    +               RDS_NIMP   VW  0.36  0.36  0.0  DRC
    +
    +    # (Case 3)
    +    NTRANS     RDS_POLY   VW  0.27  0.00  0.0  ALL \
    +               RDS_GATE   VW  0.27  0.00  0.0  DRC \
    +               RDS_NDIF  LCW  0.0   0.27  0.0  EXT \
    +               RDS_NDIF  RCW  0.0   0.27  0.0  EXT \
    +               RDS_NDIF   VW  0.0   0.72  0.0  DRC \
    +               RDS_ACTIV  VW  0.0   0.72  0.0  ALL \
    +               RDS_NIMP   VW  0.18  1.26  0.0  DRC
    +
    +END
    +
    +

    Case 1 the ALU1 is translated in exacltly one real rectangle of +RDS_ALU1, both ends are extended by 0.18µm and it’s width is increased +by 0.09µm.

    +

    Case 2 the NDIF will be translated into only one segment +under graal, for symbolic visualization. And into three real rectangles +for s2r and druc.

    +

    Case 3 the NTRANS, associated to a transistor is a little bit +more complex, the generated shapes are different for the extractor cougar +in one hand, and for both druc & s2r in the other hand.

    +
      +
    • For the extractor (EXT & ALL flags) there will be four rectangles +generateds:

      +
        +
      1. The gate (RDS_GATE)
      2. +
      3. The left diffusion of the transistor (source or drain) (RDS_NDIF).
      4. +
      5. The right diffusion of the transistor (drain or source) (RDS_NDIF).
      6. +
      7. The active area (RDS_ACTIV).
      8. +
      +

      As the extractor must kept separate the source and the drain of the transistor, +they are generated as two offset rectangles, using the LCW and RCW directives.

      +
    • +
    • For s2r and druc (DRC and ALL), five rectangles are generateds:

      +
        +
      1. The poly (RDS_POLY).
      2. +
      3. The gate (RDS_GATE).
      4. +
      5. The diffusion, as one rectangle that covers both the LCW and the RCW (RDS_NDIF).
      6. +
      7. The active area (RDS_ACTIV).
      8. +
      9. The N implantation (RDS_NIMP).
      10. +
      +

      In the layout send to the foundry, the source & drain are draw as one rectangle +across the gate area (the transistor being defined by the intersection of both +rectangles).

      +
    • +
    +

    +
    +
    +

    The MBK_TO_RDS_VIA table¶

    +

    This table is to translate default VIAs into real via. In the symbolic layout +the default VIA is simply a point and a set of layers. All layers are converted +in squares shapes centered on the VIA coordinate. The one dimension given is the +size of the side of that square.

    +

    Note that although we are refering to VIAs, which for the purists are between two +metal layers, this table also describe contacts.

    +

    Example:

    +
    TABLE MBK_TO_RDS_VIA
    +
    +    CONT_DIF_P RDS_PDIF  0.54 ALL \
    +               RDS_CONT  0.18 ALL \
    +               RDS_ALU1  0.36 ALL \
    +               RDS_ACTIV 0.54 DRC \
    +               RDS_PIMP  0.90 DRC
    +
    +    CONT_POLY  RDS_POLY  0.54 ALL \
    +               RDS_CONT  0.18 ALL \
    +               RDS_ALU1  0.36 ALL
    +
    +    CONT_VIA   RDS_ALU1  0.45 ALL \
    +               RDS_VIA1  0.27 ALL \
    +               RDS_ALU2  0.45 ALL
    +
    +END
    +
    +
    +

    Note

    +

    In CONT_DIF_P you may see that only three layers will be shown under +graal, but five will be generated in the gds layout.

    +
    +
    +
    +

    The MBK_TO_RDS_BIGVIA_HOLE table¶

    +

    In s2r, when generating BIGVIAs, the matrix of holes they contains is +not draw relative to the position of the BIGVIA itself, but on a grid which +is common througout all the design real layout. This is to allow overlap +between two BIGVIA without risking the holes matrix to be not exactly overlapping. +As a consequence, when visualizing the gds file, the holes may not be centerend +inside one individual BIGVIA.

    +

    The MBK_TO_RDS_BIGVIA_HOLE table define the global hole matrix for the whole +design. The first number is the individual hole side and the second the grid step +(edge to edge). The figure below show the hole generation.

    +

    BIGVIA holes

    +

    Example of BIGVIA overlap:

    +

    BIGVIA holes overlap

    +

    Example:

    +
    TABLE MBK_TO_RDS_BIGVIA_HOLE
    +
    +    CONT_VIA   RDS_VIA1 0.27 0.27 ALL
    +    CONT_VIA2  RDS_VIA2 0.27 0.27 ALL
    +    CONT_VIA3  RDS_VIA3 0.27 0.27 ALL
    +    CONT_VIA4  RDS_VIA4 0.27 0.27 ALL
    +    CONT_VIA5  RDS_VIA5 0.36 0.36 ALL
    +
    +END
    +
    +
    +

    Note

    +

    BIGVIA demotion. If the size of the bigvia is too small, there is +a possibility that no hole from the global matrix will be under it. +To avoid that case, if the either side of the BIGVIA is less than +1.5 * step, the BIGVIA is demoted to a simple VIA.

    +
    +
    +
    +

    The MBK_TO_RDS_BIGVIA_METAL table¶

    +

    This table describe how the metal part of a BIGVIA is expanded (for the hole +part, see the previous table MBK_TO_RDS_BIGVIA_HOLE). The rule give for each +metal:

    +
      +
    1. The delta-with (have to ask Franck).
    2. +
    3. The overhang, the length the real rectangle is expanded on each side from +the symbolic rectange.
    4. +
    +

    Example:

    +
    TABLE MBK_TO_RDS_BIGVIA_METAL
    +
    +    CONT_VIA  RDS_ALU1 0.0 0.09  ALL \
    +              RDS_ALU2 0.0 0.09  ALL
    +
    +    CONT_VIA2 RDS_ALU2 0.0 0.09  ALL \
    +              RDS_ALU3 0.0 0.09  ALL
    +
    +    CONT_VIA3 RDS_ALU3 0.0 0.09  ALL \
    +              RDS_ALU4 0.0 0.09  ALL
    +
    +    CONT_VIA4 RDS_ALU4 0.0 0.09  ALL \
    +              RDS_ALU5 0.0 0.09  ALL
    +
    +    CONT_VIA5 RDS_ALU5 0.0 0.09  ALL \
    +              RDS_ALU6 0.0 0.18  ALL
    +END
    +
    +
    +
    +

    The MBK_WIRESETTING table¶

    +

    From a strict standpoint this table shouldn’t be here but put in a separate +configuration file, because it contains informations only used by the symbolic +layout tools (ocp, nero, ring).

    +

    This table defines the cell gauge the routing pitch and minimal (symbolic) +wire width and minimal spacing for the routers. They are patly redundant.

    +

    Example:

    +
    TABLE MBK_WIRESETTING
    +
    +    X_GRID             10
    +    Y_GRID             10
    +    Y_SLICE           100
    +    WIDTH_VDD          12
    +    WIDTH_VSS          12
    +    TRACK_WIDTH_ALU8    0
    +    TRACK_WIDTH_ALU7    4
    +    TRACK_WIDTH_ALU6    4
    +    TRACK_WIDTH_ALU5    4
    +    TRACK_WIDTH_ALU4    3
    +    TRACK_WIDTH_ALU3    3
    +    TRACK_WIDTH_ALU2    3
    +    TRACK_WIDTH_ALU1    3
    +    TRACK_SPACING_ALU8  0
    +    TRACK_SPACING_ALU7  4
    +    TRACK_SPACING_ALU6  4
    +    TRACK_SPACING_ALU5  4
    +    TRACK_SPACING_ALU4  4
    +    TRACK_SPACING_ALU3  4
    +    TRACK_SPACING_ALU2  4
    +    TRACK_SPACING_ALU1  3
    +
    +END
    +
    +
    +
    + + +
    +
    + + + + +
    + +
    + + + + + +
    + Generated by Sphinx + using a RTD theme on Jul 15, 2017. +
    + + + + + +
    Coriolis 2 Documentation + © Copyright 2000-2017, UPMC. +
    +
    + +
    + +
    +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/documentation/_build/html/RDS/index.html b/documentation/_build/html/RDS/index.html new file mode 100644 index 00000000..bcaceb10 --- /dev/null +++ b/documentation/_build/html/RDS/index.html @@ -0,0 +1,352 @@ + + + + + + + + + + + + Symbolic to Real Conversion in Alliance — Coriolis 2 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + + + +
    +
    +
    +
      +
    • Docs »
    • + +
    • Symbolic to Real Conversion in Alliance
    • +
    • + + + +
    • +
    +
    +
    +
    + +

    Disclaimer: This document is still far from complete.

    + + + +
    +
    + + + + +
    + +
    + + + + + +
    + Generated by Sphinx + using a RTD theme on Jul 15, 2017. +
    + + + + + +
    Coriolis 2 Documentation + © Copyright 2000-2017, UPMC. +
    +
    + +
    + +
    +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/documentation/_build/html/Stratus/Stratus.html b/documentation/_build/html/Stratus/Stratus.html new file mode 100644 index 00000000..6a731f36 --- /dev/null +++ b/documentation/_build/html/Stratus/Stratus.html @@ -0,0 +1,334 @@ + + + + + + + + + + + + Stratus Reference — Coriolis 2 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + + + +
    +
    +
    +
      +
    • Docs »
    • + +
    • Stratus Reference
    • +
    • + + + +
    • +
    +
    +
    +
    + +
    +

    Stratus Reference¶

    +

    The Stratus Language reference is generated by LaTeX2HTML and is +available here: Stratus

    +
    + + +
    +
    + + + + +
    + +
    + + + + + +
    + Generated by Sphinx + using a RTD theme on Jul 15, 2017. +
    + + + + + +
    Coriolis 2 Documentation + © Copyright 2000-2017, UPMC. +
    +
    + +
    + +
    +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/documentation/_build/html/Unicorn/Unicorn.html b/documentation/_build/html/Unicorn/Unicorn.html new file mode 100644 index 00000000..52571658 --- /dev/null +++ b/documentation/_build/html/Unicorn/Unicorn.html @@ -0,0 +1,334 @@ + + + + + + + + + + + + Unicorn Reference — Coriolis 2 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + + + +
    +
    +
    +
      +
    • Docs »
    • + +
    • Unicorn Reference
    • +
    • + + + +
    • +
    +
    +
    +
    + +
    +

    Unicorn Reference¶

    +

    The Unicorn C++ API reference is generated by Doxygen and is +available here: Unicorn

    +
    + + +
    +
    + + + + +
    + +
    + + + + + +
    + Generated by Sphinx + using a RTD theme on Jul 15, 2017. +
    + + + + + +
    Coriolis 2 Documentation + © Copyright 2000-2017, UPMC. +
    +
    + +
    + +
    +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/documentation/_build/html/UsersGuide/Configuration.html b/documentation/_build/html/UsersGuide/Configuration.html new file mode 100644 index 00000000..c81cc030 --- /dev/null +++ b/documentation/_build/html/UsersGuide/Configuration.html @@ -0,0 +1,653 @@ + + + + + + + + + + + + Coriolis Configuration & Initialisation — Coriolis 2 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + + + +
    +
    +
    + +
    +
    +
    + +

    +
    +

    Coriolis Configuration & Initialisation¶

    +
    +

    General Software Architecture¶

    +

    Coriolis has been build with respect of the classical paradigm that the +computational instensive parts have been written in C++, and almost +everything else in Python. To build the Python interface we used +two methods:

    +
      +
    • For self-contained modules boost::python (mainly in vlsisapd).
    • +
    • For all modules based on Hurricane, we created our own wrappers due +to very specific requirements such as shared functions between modules +or C++/Python secure bi-directional object deletion.
    • +
    +
    +

    Note

    +

    Python Documentation: +Most of the documentation is related to the C++ API and implemetation of +the tools. However, the Python bindings have been created so they +mimic as closely as possible the C++ interface, so the documentation +applies to both languages with only minor syntactic changes.

    +
    +

    Coriolis Software Schematic

    +

    All configuration & initialization files are Python scripts, despite their +.conf extention. From a syntactic point of view, there is no difference +between the system-wide configuration files and the user’s configuration, +they may use the same Python helpers. +

    +

    Configuration is done in two stages:

    +
      +
    1. Selecting the symbolic technology.
    2. +
    3. Loading the complete configuration for the given technology.
    4. +
    +

    +
    +
    +

    First Stage: Symbolic Technology Selection¶

    +

    +The initialization process is done by executing, in order, the following +file(s):

    + +++++ + + + + + + + + + + + + + + + + + + + + +
    OrderMeaningFile
    1The system setting/etc/coriolis2/techno.conf
    2The user’s global setting${HOME}/.coriolis2/techno.py
    3The user’s local setting<CWD>/.coriolis2/techno.py
    +

    Thoses files must provides only two variables, the name of the symbolic technology +and the one of the real technology. For example:

    +
    # -*- Mode:Python -*-
    +
    +symbolicTechno = 'cmos'
    +realTechno     = 'hcmos9'
    +
    +
    +
    +
    +

    Second Stage: Technology Configuration Loading¶

    +

    +The TECHNO variable is set by the first stage and it’s the name of the +symbolic technology. A directory of that name, with all the configuration files, +must exists in the configuration directory. In addition to the technology-specific +directories, a common/ directory is there to provides a trunk for all the +identical datas across the various technologies. The initialization process is done +by executing, in order, the following file(s):

    + +++++ + + + + + + + + + + + + + + + + + + + + +
    OrderMeaningFile
    1The system initialization/etc/coriolis2/<TECHNO>/<TOOL>.conf
    2The user’s global initialization${HOME}/.coriolis2/settings.py
    3The user’s local initialization<CWD>/.coriolis2/settings.py
    +
    +

    Note

    +

    The loading policy is not hard-coded. It is implemented +at Python level in /etc/coriolis2/coriolisInit.py, and thus may be easily be +amended to whatever site policy.

    +

    The truly mandatory requirement is the existence of coriolisInit.py +which must contain a coriolisConfigure() function with no argument.

    +
    +
    +
    +

    Configuration Helpers¶

    +

    To ease the writing of configuration files, a set of small helpers +is available. They allow to setup the configuration parameters through +simple assembly of tuples. The helpers are installed under the directory:

    +
    <install>/etc/coriolis2/
    +
    +

    Where <install>/ is the root of the installation.

    +

    +
    +

    Alliance Helper¶

    +

    The configuration file must provide a allianceConfig tuple of +the form:

    +
    cellsTop = '/usr/share/alliance/cells/'
    +
    +allianceConfig = \
    +    ( ( 'SYMBOLIC_TECHNOLOGY', helpers.sysConfDir+'/technology.symbolic.xml'   )
    +    , ( 'REAL_TECHNOLOGY'    , helpers.sysConfDir+'/technology.cmos130.s2r.xml')
    +    , ( 'DISPLAY'            , helpers.sysConfDir+'/display.xml'               )
    +    , ( 'CATALOG'            , 'CATAL')
    +    , ( 'WORKING_LIBRARY'    , '.')
    +    , ( 'SYSTEM_LIBRARY'     , ( (cellsTop+'sxlib'   , Environment.Append)
    +                               , (cellsTop+'dp_sxlib', Environment.Append)
    +                               , (cellsTop+'ramlib'  , Environment.Append)
    +                               , (cellsTop+'romlib'  , Environment.Append)
    +                               , (cellsTop+'rflib'   , Environment.Append)
    +                               , (cellsTop+'rf2lib'  , Environment.Append)
    +                               , (cellsTop+'pxlib'   , Environment.Append) ) )
    +    , ( 'SCALE_X'            , 100)
    +    , ( 'IN_LO'              , 'vst')
    +    , ( 'IN_PH'              , 'ap')
    +    , ( 'OUT_LO'             , 'vst')
    +    , ( 'OUT_PH'             , 'ap')
    +    , ( 'POWER'              , 'vdd')
    +    , ( 'GROUND'             , 'vss')
    +    , ( 'CLOCK'              , '^ck.*')
    +    , ( 'BLOCKAGE'           , '^blockageNet*')
    +    )
    +
    +
    +

    The example above shows the system configuration file, with all the +available settings. Some important remarks about thoses settings:

    +
      +
    • In it’s configuration file, the user do not need to redefine all the settings, +just the one he wants to change. In most of the cases, the SYSTEM_LIBRARY, +the WORKING_LIBRARY and the special net names (at this point there is not +much alternatives for the others settings).

      +
    • +
    • SYSTEM_LIBRARY setting: Setting up the library search path. +Each library entry in the tuple will be added to the search path according +to the second parameter:

      +
        +
      • Environment::Append: append to the search path.
      • +
      • Environment::Prepend: insert in head of the search path.
      • +
      • Environment::Replace: look for a library of the same name and replace +it, whithout changing the search path order. If no library of that name +already exists, it is appended.
      • +
      +

      A library is identified by it’s name, this name is the last component of the +path name. For instance: /soc/alliance/sxlib will be named sxlib. +Implementing the Alliance specification, when looking for a Cell name, +the system will browse sequentially trought the library list and returns +the first Cell whose name match.

      +
    • +
    • For POWER, GROUND, CLOCK and BLOCKAGE net names, a regular +expression (gnu regexp) is expected.

      +
    • +
    • The helpers.sysConfDir variable is supplied by the helpers, it is the +directory in which the system-wide configuration files are locateds. +For a standard installation it would be: /soc/coriolis2.

      +
    • +
    +

    A typical user’s configuration file would be:

    +
    import os
    +
    +homeDir = os.getenv('HOME')
    +
    +allianceConfig = \
    +    ( ('WORKING_LIBRARY'    , homeDir+'/worklib')
    +    , ('SYSTEM_LIBRARY'     , ( (homeDir+'/mylib', Environment.Append) ) )
    +    , ('POWER'              , 'vdd.*')
    +    , ('GROUND'             , 'vss.*')
    +    )
    +
    +
    +
    +
    +

    Tools Configuration Helpers¶

    +

    All the tools uses the same helper to load their configuration (a.k.a. +Configuration Helper). Currently the following configuration system-wide +configuration files are defined:

    +
      +
    • misc.conf: commons settings or not belonging specifically to a tool.
    • +
    • etesian.conf: for the Etesian tool.
    • +
    • kite.conf: for the Kite tool.
    • +
    • stratus1.conf: for the Stratus1 tool.
    • +
    +

    Here is the contents of etesian.conf:

    +
    # Etesian parameters.
    +parametersTable = \
    +    ( ('etesian.aspectRatio'    , TypePercentage, 100    , { 'min':10, 'max':1000 } )
    +    , ('etesian.spaceMargin'    , TypePercentage, 5      )
    +    , ('etesian.uniformDensity' , TypeBool      , False  )
    +    , ('etesian.routingDriven'  , TypeBool      , False  )
    +    , ("etesian.effort"         , TypeEnumerate , 2
    +      , { 'values':( ("Fast"    , 1)
    +                   , ("Standard", 2)
    +                   , ("High"    , 3)
    +                   , ("Extreme" , 4) ) }
    +      )
    +    , ("etesian.graphics"       , TypeEnumerate , 2
    +      , { 'values':( ("Show every step"  , 1)
    +                   , ("Show lower bound" , 2)
    +                   , ("Show result only" , 3) ) }
    +      )
    +    )
    +
    +layoutTable = \
    +    ( (TypeTab   , 'Etesian', 'etesian')
    +
    +    , (TypeTitle , 'Placement area')
    +    , (TypeOption, "etesian.aspectRatio"   , "Aspect Ratio, X/Y (%)", 0 )
    +    , (TypeOption, "etesian.spaceMargin"   , "Space Margin"         , 1 )
    +    , (TypeRule  ,)
    +    , (TypeTitle , 'Etesian - Placer')
    +    , (TypeOption, "etesian.uniformDensity", "Uniform density"      , 0 )
    +    , (TypeOption, "etesian.routingDriven" , "Routing driven"       , 0 )
    +    , (TypeOption, "etesian.effort"        , "Placement effort"     , 1 )
    +    , (TypeOption, "etesian.graphics"      , "Placement view"       , 1 )
    +    , (TypeRule  ,)
    +    )
    +
    +
    +

    +

    Taxonomy of the file:

    +
      +
    • It must contains, at least, the two tables:
        +
      • parametersTable, defines & initialise the configuration variables.
      • +
      • layoutTables, defines how the various parameters will be displayed +in the configuration window (The Settings Tab).
      • +
      +
    • +
    • The parametersTable, is a tuple (list) of tuples. Each entry in the list +describe a configuration parameter. In it’s simplest form, it’s a quadruplet +(TypeOption, ‘paramId’, ParameterType, DefaultValue) with:
        +
      1. TypeOption, tells that this tuple describe a parameter.
      2. +
      3. paramId, the identifier of the parameter. Identifiers are defined +by the tools. The list of parameters is detailed in each tool section.
      4. +
      5. ParameterType, the kind of parameter. Could be:
          +
        • TypeBool, boolean.
        • +
        • TypeInt, signed integer.
        • +
        • TypeEnumerate, enumerated type, needs extra entry.
        • +
        • TypePercentage, percentage, expressed between 0 and 100.
        • +
        • TypeDouble, float.
        • +
        • TypeString, character string.
        • +
        +
      6. +
      7. DefaultValue, the default value for that parameter.
      8. +
      +
    • +
    +
    +
    +
    +

    Hacking the Configuration Files¶

    +

    Asides from the symbols that gets used by the configuration helpers like +allianceConfig or parametersTable, you can put pretty much anything +in <CWD>/.coriolis2/settings.py (that is, written in Python).

    +

    For example:

    +
    # -*- Mode:Python -*-
    +
    +defaultStyle = 'Alliance.Classic [black]'
    +
    +# Regular Coriolis configuration.
    +parametersTable = \
    +    ( ('misc.catchCore'           , TypeBool      , False  )
    +    , ('misc.info'                , TypeBool      , False  )
    +    , ('misc.paranoid'            , TypeBool      , False  )
    +    , ('misc.bug'                 , TypeBool      , False  )
    +    , ('misc.logMode'             , TypeBool      , True   )
    +    , ('misc.verboseLevel1'       , TypeBool      , False  )
    +    , ('misc.verboseLevel2'       , TypeBool      , True   )
    +    , ('misc.minTraceLevel'       , TypeInt       , 0      )
    +    , ('misc.maxTraceLevel'       , TypeInt       , 0      )
    +    )
    +
    +# Some ordinary Python script...
    +import os
    +
    +print '       o  Cleaning up ClockTree previous run.'
    +for fileName in os.listdir('.'):
    +  if fileName.endswith('.ap') or (fileName.find('_clocked.') >= 0):
    +    print '          - <%s>' % fileName
    +    os.unlink(fileName)
    +
    +
    +

    See Python Interface for Hurricane / Coriolis for more details those capabilities.

    +
    +
    + + +
    +
    + + + + +
    + +
    + + + + + +
    + Generated by Sphinx + using a RTD theme on Jul 15, 2017. +
    + + + + + +
    Coriolis 2 Documentation + © Copyright 2000-2017, UPMC. +
    +
    + +
    + +
    +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/documentation/_build/html/UsersGuide/Installation.html b/documentation/_build/html/UsersGuide/Installation.html new file mode 100644 index 00000000..faedd981 --- /dev/null +++ b/documentation/_build/html/UsersGuide/Installation.html @@ -0,0 +1,574 @@ + + + + + + + + + + + + Installation — Coriolis 2 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + + + +
    +
    +
    + +
    +
    +
    + +

    +
    +

    Installation¶

    +
    +

    Note

    +

    As the sources are being released, the binary packaging is dropped. +You still may find older version here: http://asim.lip6.fr/pub/coriolis/2.0 .

    +
    +

    In a nutshell, building source consist in pulling the git repository then +running the ccb installer.

    +

    Main building prerequisites:

    +
      +
    • cmake
    • +
    • C++11-capable compiler
    • +
    • RapidJSON
    • +
    • python2.7
    • +
    • boost
    • +
    • libxml2
    • +
    • bzip2
    • +
    • yacc & lex
    • +
    • Qt 4 or Qt 5
    • +
    +

    Building documentation prerequisites:

    +
      +
    • doxygen
    • +
    • latex
    • +
    • latex2html
    • +
    • python-docutils (for reStructuredText)
    • +
    +

    Optional libraries:

    +
      +
    • LEF/DEF (from SI2)
    • +
    +

    For other distributions, refer to their own packaging system.

    +

    +
    +

    Fixed Directory Tree¶

    +

    In order to simplificate the work of the ccb installer, the source, build +and installation tree is fixed. To successfully compile Coriolis you must +follow it exactly. The tree is relative to the home directory of the user +building it (noted ~/ or $HOME/). Only the source +directory needs to be manually created by the user, all others will be +automatically created either by ccb or the build system.

    + ++++ + + + + + + + + + + + + + + + + + + + + + + +
    Sources
    +
    Sources root
    +
    under git
    +
    +
    +
    ~/coriolis-2.x/src
    +
    ~/coriolis-2.x/src/coriolis
    +
    +
    Architecture Dependant Build
    +
    Linux, SL 7, 64b
    +
    Linux, SL 6, 32b
    +
    Linux, SL 6, 64b
    +
    Linux, Fedora, 64b
    +
    Linux, Fedora, 32b
    +
    FreeBSD 8, 32b
    +
    FreeBSD 8, 64b
    +
    Windows 7, 32b
    +
    Windows 7, 64b
    +
    Windows 8.x, 32b
    +
    Windows 8.x, 64b
    +
    +
    +
    ~/coriolis-2.x/Linux.el7_64/Release.Shared/build/<tool>
    +
    ~/coriolis-2.x/Linux.slsoc6x/Release.Shared/build/<tool>
    +
    ~/coriolis-2.x/Linux.slsoc6x_64/Release.Shared/build/<tool>
    +
    ~/coriolis-2.x/Linux.fc_64/Release.Shared/build/<tool>
    +
    ~/coriolis-2.x/Linux.fc/Release.Shared/build/<tool>
    +
    ~/coriolis-2.x/FreeBSD.8x.i386/Release.Shared/build/<tool>
    +
    ~/coriolis-2.x/FreeBSD.8x.amd64/Release.Shared/build/<tool>
    +
    ~/coriolis-2.x/Cygwin.W7/Release.Shared/build/<tool>
    +
    ~/coriolis-2.x/Cygwin.W7_64/Release.Shared/build/<tool>
    +
    ~/coriolis-2.x/Cygwin.W8/Release.Shared/build/<tool>
    +
    ~/coriolis-2.x/Cygwin.W8_64/Release.Shared/build/<tool>
    +
    +
    Architecture Dependant Install
    Linux, SL 6, 32b~/coriolis-2.x/Linux.slsoc6x/Release.Shared/install/
    FHS Compliant Structure under Install
    +
    Binaries
    +
    Libraries (Python)
    +
    Include by tool
    +
    Configuration files
    +
    Doc, by tool
    +
    +
    +
    .../install/bin
    +
    .../install/lib
    +
    .../install/include/coriolis2/<project>/<tool>
    +
    .../install/etc/coriolis2/
    +
    .../install/share/doc/coriolis2/en/html/<tool>
    +
    +
    +
    +

    Note

    +

    Alternate build types: the Release.Shared means an optimized build +with shared libraries. But there are also available Static instead of Shared +and Debug instead of Release and any combination of them.

    +

    Static do not work because I don’t know yet to mix statically linked binaries +and Python modules (which must be dynamic).

    +
    +

    +
    +
    +

    Building Coriolis¶

    +

    First step is to install the prerequisites. Currently, only RapidJSON. +As RapidJSON is evolving fast, if you encounter compatibility problems, +the exact version we compiled against is given below.

    +
    dummy@lepka:~$ mkdir -p ~/coriolis-2.x/src/support
    +dummy@lepka:~$ cd ~/coriolis-2.x/src/support
    +dummy@lepka:~$ git clone http://github.com/miloyip/rapidjson
    +dummy@lepka:~$ git checkout ec322005072076ef53984462fb4a1075c27c7dfd
    +
    +

    The second step is to create the source directory and pull the git repository:

    +
    dummy@lepka:~$ mkdir -p ~/coriolis-2.x/src
    +dummy@lepka:~$ cd ~/coriolis-2.x/src
    +dummy@lepka:~$ git clone https://www-soc.lip6.fr/git/coriolis.git
    +
    +

    Third and final step, build & install:

    +
    dummy@lepka:src$ ./bootstrap/ccb.py --project=support  \
    +                                    --project=coriolis \
    +                                    --make="-j4 install"
    +dummy@lepka:src$ ./bootstrap/ccb.py --project=support  \
    +                                    --project=coriolis \
    +                                    --doc --make="-j1 install"
    +
    +

    We need to separate to perform a separate installation of the documentation because it +do not support to be generated with a parallel build. So we compile & install in a first +stage in -j4 (or whatever) then we generate the documentation in -j1

    +

    Under rhel6 or clones, you must build using the devtoolset2:

    +
    dummy@lepka:src$ ./bootstrap/ccb.py --project=coriolis \
    +                                    --devtoolset-2 --make="-j4 install"
    +
    +

    If you want to uses Qt 5 instead of Qt 4, you may add the --qt5 argument.

    +

    The complete list of ccb functionalities can be accessed with the --help argument. +It also may be run in graphical mode (--gui).

    +
    +

    Building the Devel Branch¶

    +

    In the Coriolis git repository, two branches are present:

    +
      +
    • The master branch, which contains the latest stable version. This is the +one used by default if you follow the above instructions.

      +
    • +
    • The devel branch, which obviously contains the latest commits from the +development team. To use it instead of the master one, do the following +command just after the first step:

      +
      dummy@lepka:~$ git checkout devel
      +dummy@lepka:src$ ./bootstrap/ccb.py --project=coriolis \
      +                                    --make="-j4 install" --debug
      +
      +

      Be aware that it may requires newer versions of the dependencies and may introduce +incompatibilites with the stable version.

      +

      In the (unlikely) event of a crash of cgt, as it is a Python script, the right +command to run gdb on it is:

      +
      dummy@lepka:work$ gdb python core.XXXX
      +
      +
    • +
    +

    +
    +
    +

    Additionnal Requirement under MacOS¶

    +

    Coriolis make uses of the boost::python module, but the MacPorts boost +seems unable to work with the Python bundled with MacOS. So you have to install +both of them from MacPorts:

    +
    dummy@macos:~$ port install boost +python27
    +dummy@macos:~$ port select python python27
    +dummy@macos:-$ export DYLD_FRAMEWORK_PATH=/opt/local/Library/Frameworks
    +
    +

    The last two lines tell MacOS to use the Python from MacPorts and not from +the system.

    +

    Then proceed with the generic install instructions.

    +
    +
    +
    +

    Packaging Coriolis¶

    +

    Packager should not uses ccb, instead bootstrap/Makefile.package is provided +to emulate a top-level autotool makefile. Just copy it in the root of the +Coriolis git repository (~/corriolis-2.x/src/coriolis/) and build.

    +

    Sligthly outaded packaging configuration files can also be found under bootstrap/:

    +
      +
    • bootstrap/coriolis2.spec.in for rpm based distributions.
    • +
    • bootstrap/debian for Debian based distributions.
    • +
    +
    +
    +

    Hooking up into Alliance¶

    +

    Coriolis relies on Alliance for the cell libraries. So after installing or +packaging, you must configure it so that it can found those libraries.

    +

    This is done by editing the one variable cellsTop in the Alliance helper +(see Alliance Helper). This variable must point to the directory of the +cells libraries. In a typical installation, this is generally +/usr/share/alliance/cells.

    +
    +
    +

    Setting up the Environment (coriolisEnv.py)¶

    +

    To simplify the tedious task of configuring your environment, a helper is provided +in the bootstrap source directory (also installed in the directory +.../install/etc/coriolis2/) :

    +
    ~/coriolis-2.x/src/coriolis/bootstrap/coriolisEnv.py
    +
    +

    Use it like this:

    +
    dummy@lepka:~> eval `~/coriolis-2.x/src/coriolis/bootstrap/coriolisEnv.py`
    +
    +
    +

    Note

    +

    Do not call that script in your environement initialisation. +When used under rhel6 or clones, it needs to be run in the devtoolset2 +environement. The script then launch a new shell, which may cause an +infinite loop if it’s called again in, say ~/.bashrc.

    +

    Instead you may want to create an alias:

    +
    alias c2r='eval "`~/coriolis-2.x/src/coriolis/bootstrap/coriolisEnv.py`"'
    +
    +
    +
    +
    + + +
    +
    + + + + +
    + +
    + + + + + +
    + Generated by Sphinx + using a RTD theme on Jul 15, 2017. +
    + + + + + +
    Coriolis 2 Documentation + © Copyright 2000-2017, UPMC. +
    +
    + +
    + +
    +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/documentation/_build/html/UsersGuide/LicenseCredits.html b/documentation/_build/html/UsersGuide/LicenseCredits.html new file mode 100644 index 00000000..f7ce4e9a --- /dev/null +++ b/documentation/_build/html/UsersGuide/LicenseCredits.html @@ -0,0 +1,361 @@ + + + + + + + + + + + + Credits & License — Coriolis 2 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + + + +
    +
    +
    + +
    +
    +
    + +
    +

    Credits & License¶

    +

    Hurricane +Rémy Escassut & + Christian Masson

    +
    +

    Etesian +Gabriel Gouvine

    +
    +

    Stratus +Sophie Belloeil

    +
    +

    Knik +Damien Dupuis

    +
    +

    Kite, + Unicorn +Jean-Paul Chaput

    +


    +

    The Hurricane data-base is copyright© Bull 2000-2016 and is +released under the terms of the lgpl license. All other tools are +copyright© upmc 2008-2016 and released under the gpl +license.

    +

    Others important contributors to Coriolis are Christophe Alexandre, +Hugo Clement, Marek Sroka and Wu Yifei.

    +

    The Knik router makes use of the Flute software, which is +copyright© Chris C. N. Chu from the Iowa State University +(http://home.eng.iastate.edu/~cnchu/).

    +
    + + +
    +
    + + + + +
    + +
    + + + + + +
    + Generated by Sphinx + using a RTD theme on Jul 15, 2017. +
    + + + + + +
    Coriolis 2 Documentation + © Copyright 2000-2017, UPMC. +
    +
    + +
    + +
    +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/documentation/_build/html/UsersGuide/Releases.html b/documentation/_build/html/UsersGuide/Releases.html new file mode 100644 index 00000000..4a9b956a --- /dev/null +++ b/documentation/_build/html/UsersGuide/Releases.html @@ -0,0 +1,418 @@ + + + + + + + + + + + + Release Notes — Coriolis 2 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + + + +
    +
    +
    + +
    +
    +
    + +
    +

    Release Notes¶

    +
    +

    Release 1.0.1475¶

    +

    This is the first preliminary release of the Coriolis 2 framework.

    +

    This release mainly ships the global router Knik and the detailed router +Kite. Together they aim to replace the Alliance Nero router. +Unlike Nero, Kite is based on an innovating routing modeling and ad-hoc +algorithm. Although it is released under gpl license, the source code +will be avalaible later. +

    +

    Contents of this release:

    +
      +
    1. A graphical user interface (viewer only).
    2. +
    3. The Knik global router.
    4. +
    5. The Kite detailed router.
    6. +
    +

    Supported input/output formats:

    +
      +
    • Alliance vst (netlist) & ap (physical) formats.
    • +
    • Even if there are some references to the Cadence lefdef format, its +support is not included because it depends on a library only available +to Si2 affiliated members.
    • +
    +
    +
    +

    Release 1.0.1963¶

    +

    Release 1963 is alpha. All the tools from Coriolis 1 have been ported into +this release.

    +

    Contents of this release:

    +
      +
    1. The Stratus netlist capture language (GenLib replacement).
    2. +
    3. The Mauka placer (still contains bugs).
    4. +
    5. A graphical user interface (viewer only).
    6. +
    7. The Knik global router.
    8. +
    9. The Kite detailed router.
    10. +
    11. Partially implemented python support for configuration files +(alternative to xml).
    12. +
    13. A documentation (imcomplete/obsoleted in Hurricane‘s case).
    14. +
    +
    +
    +

    Release 1.0.2049¶

    +

    Release 2049 is Alpha.

    +

    Changes of this release:

    +
      +
    1. The Hurricane documentation is now accurate. Documentation +for the Cell viewer and CRLcore has been added.
    2. +
    3. More extensive Python support for all the components of +Coriolis.
    4. +
    5. Configuration is now completly migrated under Python. +xml loaders can still be useds for compatibilty.
    6. +
    7. The cgt main has been rewritten in Python.
    8. +
    +
    +
    +

    Release v2.0.1¶

    +
      +
    1. Migrated the repository from svn to git, and release complete sources. +As a consequence, we drop the distribution packaging support and give +public read-only access to the repository.
    2. +
    3. Deep rewrite of the Katabatic database and Kite detailed router, +achieve a speedup factor greater than 20...
    4. +
    +
    +
    +

    Release v2.1¶

    +
      +
    1. Replace the old simulated annealing placer Mauka by the analytical placer +Etesian and its legalization and detailed placement tools.
    2. +
    3. Added a Blif format parser to process circuits generated by the Yosys and ABC +logic synthetizers.
    4. +
    5. The multiples user defined configuration files are now grouped under +a common hidden (dot) directory .coriolis2 and the file extension +is back from .conf to .py.
    6. +
    +
    +
    +

    Release v2.2¶

    +
      +
    1. Added JSON import/export of the whole Hurricane DataBase. Two save mode +are supported: Cell mode (standalone) or Blob mode, which dump the +whole design down and including the standard cells.
    2. +
    +
    +
    + + +
    +
    + + + + +
    + +
    + + + + + +
    + Generated by Sphinx + using a RTD theme on Jul 15, 2017. +
    + + + + + +
    Coriolis 2 Documentation + © Copyright 2000-2017, UPMC. +
    +
    + +
    + +
    +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/documentation/_build/html/UsersGuide/ScriptsPlugins.html b/documentation/_build/html/UsersGuide/ScriptsPlugins.html new file mode 100644 index 00000000..990c8ec8 --- /dev/null +++ b/documentation/_build/html/UsersGuide/ScriptsPlugins.html @@ -0,0 +1,712 @@ + + + + + + + + + + + + Python Interface for Hurricane / Coriolis — Coriolis 2 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + + + +
    +
    +
    + +
    +
    +
    + +
    +

    Python Interface for Hurricane / Coriolis¶

    +

    The (almost) complete interface of Hurricane is exported as a Python module +and some part of the other components of Coriolis (each one in a separate +module). The interface has been made to mirror as closely as possible the +C++ one, so the C++ doxygen documentation could be used to write code with +either languages.

    +

    Summary of the C++ Documentation

    +

    A script could be run directly in text mode from the command line or through +the graphical interface (see Executing Python Scripts in Cgt).

    +

    Asides for this requirement, the python script can contain anything valid +in Python, so don’t hesitate to use any package or extention.

    +

    Small example of Python/Stratus script:

    +
    from Hurricane import *
    +from Stratus   import *
    +
    +def doSomething ():
    +    # ...
    +    return
    +
    +def ScriptMain ( **kw ):
    +  editor = None
    +  if kw.has_key('editor') and kw['editor']:
    +    editor = kw['editor']
    +    stratus.setEditor( editor )
    +
    +  doSomething()
    +  return
    +
    +if __name__ == "__main__" :
    +  kw           = {}
    +  success      = ScriptMain( **kw )
    +  shellSuccess = 0
    +  if not success: shellSuccess = 1
    +
    +  sys.exit( shellSuccess )
    +      ScriptMain ()
    +
    +

    This typical script can be executed in two ways:

    +
      +
    1. Run directly as a Python script, thanks to the

      +
      if __name__ == "__main__" :
      +
      +

      part (this is standart Python). It is a simple adapter that will +calls ScriptMain().

      +
    2. +
    3. Through cgt, either in text or graphical mode. In that case, the +ScriptMain() is directly called trough a sub-interpreter. +The arguments of the script are passed through the **kw dictionnary.

      + ++++ + + + + + + + + + + + + + + + +
      **kw Dictionnary
      Parameter Key/NameContents type
      'cell'A Hurricane cell on which to work. Depending +on the context, it may be None. +For example, when run from cgt, it the cell +currently loaded in the viewer, if any.
      'editor'The viewer from which the script is run, when +lauched through cgt.
      +
    4. +
    +
    +

    Plugins¶

    +

    Plugins are Python scripts specially crafted to integrate with cgt. +Their entry point is a ScriptMain() method as described in +Python Interface to Coriolis. They can be called by user scripts +through this method.

    +
    +

    Chip Placement¶

    +

    Automatically perform the placement of a complete chip. This plugin, as well +as the other P&R tools expect a specific top-level hierarchy for the design. +The top-level hierarchy must contains the instances of all the I/O pads and +exactly one instance of the chip’s core model.

    +

    Chip Top Structure

    +

    The designer must provide a configuration file that define the rules for the +placement of the top-level hierarchy (that is, the pads and the core). +This file must be named after the chip’s name, by appending _chip.py +(obviously, it is a Python file). For instance if the chip netlist file +is called amd2901_crl.vst, then the configuration file must be named +amd2901_crl_chip.vst.

    +

    Example of chip placement configuration file (for AM2901):

    +
    chip = \
    +  { 'pads.south'     : [ 'p_a3'     , 'p_a2'     , 'p_a1'     , 'p_r0'
    +                       , 'p_vddick0', 'p_vssick0', 'p_a0'     , 'p_i6'
    +                       , 'p_i8'     , 'p_i7'     , 'p_r3'     ]
    +  , 'pads.east'      : [ 'p_zero'   , 'p_i0'     , 'p_i1'     , 'p_i2'
    +                       , 'p_vddeck0', 'p_vsseck0', 'p_q3'     , 'p_b0'
    +                       , 'p_b1'     , 'p_b2'     , 'p_b3'     ]
    +  , 'pads.north'     : [ 'p_noe'    , 'p_y3'     , 'p_y2'     , 'p_y1'
    +                       , 'p_y0'     , 'p_vddeck1', 'p_vsseck1', 'p_np'
    +                       , 'p_ovr'    , 'p_cout'   , 'p_ng'     ]
    +  , 'pads.west'      : [ 'p_cin'    , 'p_i4'     , 'p_i5'     , 'p_i3'
    +                       , 'p_ck'     , 'p_d0'     , 'p_d1'     , 'p_d2'
    +                       , 'p_d3'     , 'p_q0'     , 'p_f3'     ]
    +  , 'core.size'      : ( 1500, 1500 )
    +  , 'chip.size'      : ( 3000, 3000 )
    +  , 'chip.clockTree' : True
    +  }
    +
    +
    +

    The file must contain one dictionnary named chip.

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Chip Dictionnary
    Parameter Key/NameValue/Contents type
    'pad.south'Ordered list (left to right) of pad instances names +to put on the south side of the chip
    'pad.east'Ordered list (down to up) of pad instances names +to put on the east side of the chip
    'pad.north'Ordered list (left to right) of pad instances names +to put on the north side of the chip
    'pad.west'Ordered list (down to up) of pad instances names +to put on the west side of the chip
    'core.size'The size of the core (to be used by the placer)
    'chip.size'The size of the whole chip. The sides must be great +enough to accomodate all the pads
    'chip.clockTree'Whether to generate a clock tree or not. This calls +the ClockTree plugin
    +

    Configuration parameters, defaults are defined in etc/coriolis2/<STECHNO>/plugins.conf.

    + +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Parameter IdentifierTypeDefault
    Chip Plugin Parameters
    chip.block.rails.countTypeInt5
    The minimum number of rails around the core +block. Must be odd and suppérior to 5. +One rail for the clock and at least two pairs +of power/grounds
    chip.block.rails.hWidthTypeInt12
    The horizontal with of the rails
    chip.block.rails.vWidthTypeInt12
    The vertical with of the rails
    chip.block.rails.hSpacingTypeInt6
    The spacing, edge to edge of two adjacent +horizontal rails
    chip.block.rails.vSpacingTypeInt6
    The spacing, edge to edge of two adjacent +vertical rails
    chip.pad.pckTypeStringpck_px
    The model name of the pad connected to the +chip external clock
    chip.pad.pvddeckTypeStringpvddeck_px
    The model name of the pad connected to the +vdde (external power) and suppling it to +the core
    chip.pad.pvsseckTypeStringpvsseck_px
    The model name of the pad connected to the +vsse (external ground) and suppling it to +the core
    chip.pad.pvddickTypeStringpvddick_px
    The model name of the pad connected to the +vddi (internal power) and suppling it to +the core
    chip.pad.pvssickTypeStringpvssick_px
    The model name of the pad connected to the +vssi (internal ground) and suppling it to +the core
    +
    +

    Note

    +

    If no clock tree is generated, then the clock rail is not created. +So even if the requested number of rails chip.block.rails.count is, say 5, +only four rails (2* power, 2* ground) will be generateds.

    +
    +
    +
    +

    Clock Tree¶

    +

    Insert a clock tree into a block. The clock tree uses the H strategy. +The clock net is splitted into sub-nets, one for each branch of the +tree.

    +
      +
    • On chips design, the sub-nets are createds in the model of the +core block (then trans-hierarchically flattened to be shown at +chip level).

      +
    • +
    • On blocks, the sub nets are created directly in the top block.

      +
    • +
    • The sub-nets are named according to a simple geometrical scheme. +A common prefix ck_htree, then one postfix by level telling +on which quarter of plane the sub-clock is located:

      +
        +
      1. _bl: bottom left plane quarter.
      2. +
      3. _br: bottom right plane quarter.
      4. +
      5. _tl: top left plane quarter.
      6. +
      7. _tr: top right plane quarter.
      8. +
      +

      We can have ck_htree_bl, ck_htree_bl_bl, ch_htree_bl_tl and so on.

      +
    • +
    +

    The clock tree plugin works in four steps:

    +
      +
    1. Build the clock tree: creates the top-block abutment box, compute the +levels of H tree neededs and place the clock buffers.
    2. +
    3. Once the clock buffers are placed, calls the placer (Etesian) to place +the ordinary standart cells, whithout disturbing clock H-tree buffers.
    4. +
    5. At this point we know the exact positions of all the DFFs, so we can +connect them to the nearest H-tree leaf clock signal.
    6. +
    7. Leaf clock signals that are not connecteds to any DFFs are removed.
    8. +
    +

    Netlist reorganisation:

    +
      +
    • Obviously the top block or chip core model netlist is modificated to +contains all the clock sub-nets. The interface is not changed.
    • +
    • If the top block contains instances of other models and those models +contains DFFs that get re-connecteds to the clock sub-nets (from the +top level). Change both the model netlist and interface to propagate +the relevant clock sub-nets to the instanciated model. The new model +with the added clock signal is renamed with a _clocked suffix. +For example, the sub-block model ram.vst will become ram_clocked.vst.
    • +
    +
    +

    Note

    +

    If you are to re-run the clock tree plugin on a netlist, be careful +to erase any previously generated _clocked file (both netlist and +layout: rm *.clocked.{ap,vst}). And restart cgt to clear it’s +memory cache.

    +
    +

    Configuration parameters, defaults are defined in etc/coriolis2/<STECHNO>/plugins.conf.

    + +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Parameter IdentifierTypeDefault
    ClockTree Plugin Parameters
    clockTree.minimumSideTypeInt300
    The minimum size below which the clock tree +will stop to perform quadri-partitions
    clockTree.bufferTypeStringbuf_x2
    The buffer model to use to drive sub-nets
    clockTree.placerEngineTypeStringEtesian
    The placer to use. Other value is Mauka +the simulated annealing placer which will go +into retirement very soon
    +
    +
    +

    Recursive-Save (RSave)¶

    +

    Perform a recursive top down save of all the models from the top cell +loaded in cgt. Force a write of any non-terminal model. This plugin is used +by the clock tree plugin after the netlist clock sub-nets creation.

    +
    +
    +
    +

    A Simple Example: AM2901¶

    +

    To illustrate the capabilities of Coriolis tools and Python scripting, a small +example, derived from the Alliance AM2901 is supplied.

    +

    This example contains only the synthetized netlists and the doChip.py script +which perform the whole P&R of the design.

    +

    You can generate the chip using one of the following method:

    +
      +
    1. Command line mode: directly run the script:

      +
      dummy@lepka:AM2901$ ./doChip -V --cell=amd2901
      +
      +
    2. +
    3. Graphic mode: launch cgt, load chip netlist amd2901 (the top cell) +then run the Python script doChip.py.

      +
    4. +
    +
    +

    Note

    +

    Between two consecutive run, be sure to erase the netlist/layout generateds:

    +
    dummy@lepka:AM2901$ rm *_clocked*.vst *.ap
    +
    +
    +
    +
    + + +
    +
    + + + + +
    + +
    + + + + + +
    + Generated by Sphinx + using a RTD theme on Jul 15, 2017. +
    + + + + + +
    Coriolis 2 Documentation + © Copyright 2000-2017, UPMC. +
    +
    + +
    + +
    +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/documentation/_build/html/UsersGuide/ViewerTools.html b/documentation/_build/html/UsersGuide/ViewerTools.html new file mode 100644 index 00000000..0972c80d --- /dev/null +++ b/documentation/_build/html/UsersGuide/ViewerTools.html @@ -0,0 +1,1205 @@ + + + + + + + + + + + + CGT - The Graphical Interface — Coriolis 2 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + + + +
    +
    +
    + +
    +
    +
    + +
    +

    CGT - The Graphical Interface¶

    +

    The Coriolis graphical interface is split up into two windows.

    +
      +
    • The Viewer, with the following features:
        +
      • Basic load/save capabilities.
      • +
      • Display the current working cell. Could be empty if the design +is not yet placed.
      • +
      • Execute Stratus Scripts.
      • +
      • Menu to run the tools (placement, routage).
      • +
      +
    • +
    +

    Features are detailed in Viewer & Tools.

    +

    Viewer Basic Snapshot

    +
      +
    • The Controller, which allows:
        +
      • Tweak what is displayer by the Viewer. Through the Look, +Filter and Layers&Gos tabs.
      • +
      • Browse the netlist with eponym tab.
      • +
      • Show the list of selected objects (if any) with selection
      • +
      • Walk through the Database, the Cell or the Selection with Inspector. +This is an advanced feature, reserved for experimented users.
      • +
      • The tab Settings which give access to all the settings. +They are closely related to Configuration & Initialisation.
      • +
      +
    • +
    +

    Controller Basic Snapshot

    +
    +

    Viewer & Tools¶

    +
    +

    Stratus Netlist Capture¶

    +

    Stratus is the replacement for GenLib procedural netlist capture language. +It is designed as a set of Python classes, and comes with it’s own documentation +(Stratus Documentation)

    +
    +
    +

    The Hurricane Data-Base¶

    +

    The Alliance flow is based on the mbk data-base, which has one data-structure +for each view. That is, Lofig for the logical view and Phfig for the physical +view. The place and route tools were responsible for maintaining (or not) the +coherency between views. Reflecting this weak coupling between views, each one +was stored in a separate file with a specific format. The logical view is stored +in a vst file in vhdl format and the physical in an ap file in an ad-hoc format.

    +

    The Coriolis flow is based on the Hurricane data-base, which has a unified +structure for logical and physical view. That data structure is the Cell object. +The Cell can have any state between pure netlist and completly placed and +routed design. Although the memory representation of the views has deeply +changed we still use the Alliance files format, but they now really represent +views of the same object. The point is that one must be very careful about +view coherency when going to and from Coriolis.

    +

    As for the second release, Coriolis can be used only for three purposes :

    +
      +
    • Placing a design, in which case the netlist view must be present.
    • +
    • Routing a design, in that case the netlist +view and the layout view must be present and layout view must contain +a placement. Both views must have the same name. When saving the routed design, +it is advised to change the design name otherwise the original unrouted placement +in the layout view will be overwritten.
    • +
    • Viewing a design, the netlist view must be present, if a layout +view is present it still must have the same name but it can be in any +state.
    • +
    +
    +
    +

    Synthetizing and loading a design¶

    +

    Coriolis supports several file formats. It can load all file format +from the Alliance toolchain (.ap for layout, behavioural and structural vhdl .vbe and .vst), +BLIF netlist format as well as benchmark formats from the ISPD contests.

    +

    It can be compiled with LEF/DEF support, although it requires acceptance of the SI2 license +and may not be compiled in your version of the software.

    +
    +

    Synthesis under Yosys¶

    +

    You can create a BLIF file from the Yosys synthetizer, which can be imported under Coriolis. +Most libraries are specified as a .lib liberty file and a .lef LEF file. +Yosys opens most .lib files with minor modifications, but LEF support in Coriolis relies on SI2. +If Coriolis hasn’t been compiled against it, the library is given in Alliance .ap format. +Some free libraries already provide both .ap and .lib files.

    +

    Once you have installed a common library under Yosys and Coriolis, just synthetize your design +with Yosys and import it (as Blif without the extension) under Coriolis to perform place&route.

    +
    +
    +

    Synthesis under Alliance¶

    +

    Alliance is an older toolchain but has been extensively used for years. Coriolis can import +and write Alliance designs and libraries directly.

    +
    +
    +
    +

    Etesian – Placer¶

    +

    The Etesian placer is a state of the art (as of 2015) analytical placer. It is +within 5% of other placers’ solutions, but is normally a bit worse than ePlace. +This Coriolis tool is actually an encapsulation of Coloquinte which is the placer.

    +
    +

    Note

    +

    Instance Uniquification Unsupported: a same logical instance cannot have +two different placements. So, either you manually make a clone of it or you +supply a placement for it. We need to implement uniquification in the +Hurricane database.

    +
    +

    +Hierarchical Placement

    +

    The placement area is defined by the top cell abutment box.

    +

    When placing a complete hierarchy, the abutment boxes of the cells (models) other than +the top cell are sets identical to the one of the top cell and their instances are +all placed at position (0,0,ID). That is, all the abutments boxes, whatever the +hierarchical level, defines the same area (they are exactly superposed).

    +

    We choose this scheme because the placer will see all the instances as virtually +flattened, so they can be placed anywhere inside the top-cell abutment box.

    +

    Etesian Abutment Box

    +

    +Computing the Placement Area

    +

    The placement area is computed using the etesian.aspectRatio and etesian.spaceMargin +parameters only if the top-cell has an empty abutment box. If the top-cell abutment +box has to be set, then it is propagated to all the instances models recursively.

    +

    +Reseting the Placement

    +

    Once a placement has been done, the placer cannot reset it (will be implemented +later). To perform a new placement, you must restart cgt. In addition, if you +have saved the placement on disk, you must erase any .ap file, which are +automatically reloaded along with the netlist (.vst).

    +

    +Limitations

    +

    Etesian supports standard cells and fixed macros. As for the Coriolis 2.1 version, +it doesn’t support movable macros, and you must place every macro beforehand. +Timing and routability analysis are not included either, and the returned placement +may be unroutable.

    +
    +

    Etesian Configuration Parameters¶

    + +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Parameter IdentifierTypeDefault
    Etesian Parameters
    etesian.aspectRatioTypePercentage100
    Define the height on width H/W aspect +ratio, can be comprised between 10 and 1000
    etesian.spaceMarginTypePercentage5
    The extra white space added to the total area +of the standard cells
    etesian.uniformDensityTypeBoolFalse
    Whether the cells will be spread envenly +across the area or allowed to form denser +clusters
    etesian.effortTypeInt2
    Sets the balance between the speed of the +placer and the solution quality
    etesian.routingDrivenTypeBoolFalse
    Whether the tool will try routing iterations +and whitespace allocation to improve +routability; to be implemented
    etesian.graphicsTypeInt2

    How often the display will be refreshed +More refreshing slows the placer.

    +
      +
    • 1 shows both upper and lower bounds
    • +
    • 2 only shows lower bound results
    • +
    • 3 only shows the final results
    • +
    +
    +

    +
    +
    +
    +

    Knik – Global Router¶

    +

    The quality of Knik global routing solutions are equivalent to those of FGR 1.0. +For an in-depth description of Knik algorithms, you may download the thesis of +D. Dupuis avalaible from here~: Knik Thesis.

    +

    The global router is (not yet) deterministic. To circumvent this limitation, +a global routing solution can be saved to disk and reloaded for later uses.

    +

    A global routing is saved into a file with the same name as the design and a +kgr extention. It is in Box Router output format.

    +

    Menus:

    +
      +
    • \textbf{P\&R} \rightarrow \textbf{Step by Step} \rightarrow \textbf{Save Global Routing}
    • +
    • \textbf{P\&R} \rightarrow \textbf{Step by Step} \rightarrow \textbf{Load Global Routing}
    • +
    +
    +
    +

    Kite – Detailed Router¶

    +

    Kite no longer suffers from the limitations of Nero. It can route big designs +as its runtime and memory footprint is almost linear (with respect to the number +of gates). It has successfully routed design of more than 150K gates. +

    +

    However, this first release comes with the temporary the following +restrictions:

    +
      +
    • Works only with SxLib standard cell gauge.
    • +
    • Works always with 4 routing metal layers (M2 through M5).
    • +
    • Do not allow (take into account) pre-routed wires on signals +other than power or ground.
    • +
    +
    +

    Note

    +

    Slow Layer Assignment. Most of the time, the layer assignment stage is +fast (less than a dozen seconds), but in some instances it can take more +than a dozen minutes. This is a known bug and will be corrected in later +releases.

    +
    +

    After each run, Kite displays a set of completion ratios which must all +be equal to 100% if the detailed routing has been successfull. +In the event of a failure, on a saturated design, you may decrease the +edge saturation ratio (argument –edge) to balance more evenly the design +saturation. That is, the maximum saturation decrease at the price of a wider +saturated area and increased wirelength. This is the saturation of the +global router Knik, and you may increase/decrease by steps of 5%, +which represent one track. The maximum capacity of the SxLib gauge is +10 tracks in two layers, that makes 20 tracks by Knik edge.

    +

    Routing a design is done in four ordered steps:

    +
      +
    1. Detailed pre-route \textbf{P\&R} \rightarrow \textbf{Step by Step} \rightarrow \textbf{Detailed PreRoute}
    2. +
    3. Global routing \textbf{P\&R} \rightarrow \textbf{Step by Step} \rightarrow \textbf{Global Route}
    4. +
    5. Detailed routing \textbf{P\&R} \rightarrow \textbf{Step by Step} \rightarrow \textbf{Detailed Route}
    6. +
    7. Finalize routing \textbf{P\&R} \rightarrow \textbf{Step by Step} \rightarrow \textbf{Finalize Route}
    8. +
    +

    It is possible to supply to the router a complete wiring for some nets that the user’s +wants to be routed according to a specific topology. The supplied topology must respect +the building rules of the Katabatic database (contacts must be, terminals, turns, h-tee +& v-tee only). During the first step Detailed Pre-Route the router will solve +overlaps between the segments, without making any dogleg. If no pre-routed topologies +are present, this step may be ommited. Any net routed at this step is then fixed and +become unmovable for the later stages.

    +

    After the detailed routing step the Kite data-structure is still active +(the Hurricane wiring is decorated). The finalize step performs the removal of +the Kite data-structure, and it is not advisable to save the design before +that step.

    +

    You may visualize the density (saturation) of either Knik (on edges) or +Kite (on GCells) until the routing is finalized. Special layers appears +to that effect in the The Layers&Go Tab.

    +
    +

    Kite Configuration Parameters¶

    +

    As Knik is only called through Kite, it’s parameters also have +the kite. prefix.

    +

    The Katabatic parameters control the layer assignment step.

    +

    All the defaults value given below are from the default Alliance technology +(cmos and SxLib cell gauge/routing gauge).

    + +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Parameter IdentifierTypeDefault
    Katabatic Parameters
    katabatic.topRoutingLayerTypeStringMETAL5
    Define the highest metal layer that will be +used for routing (inclusive).
    katabatic.globalLengthThresholdTypeInt1450
    This parameter is used by a layer assignment +method which is no longer used (did not give +good results)
    katabatic.saturateRatioTypePercentage80
    If M(x) density is above this ratio, +move up feedthru global segments up from +depth x to x+2
    katabatic.saturateRpTypeInt8
    If a GCell contains more terminals +(RoutingPad) than that number, force a +move up of the connecting segments to those +in excess
    Knik Parameters
    kite.hTracksReservedLocalTypeInt3
    To take account the tracks needed inside a +GCell to build the local routing, decrease +the capacity of the edges of the global +router. Horizontal and vertical locally +reserved capacity can be distinguished for +more accuracy.
    kite.vTracksReservedLocalTypeInt3
    cf. kite.hTracksReservedLocal
    Kite Parameters
    kite.eventsLimitTypeInt4000002
    The maximum number of segment displacements, +this is a last ditch safety against infinite +loop. It’s perhaps a little too low for big +designs
    kite.ripupCostTypeInt3
    Differential introduced between two ripup +cost to avoid a loop between two ripped up +segments
    kite.strapRipupLimitTypeInt16
    Maximum number of ripup for strap segments
    kite.localRipupLimitTypeInt9
    Maximum number of ripup for local segments
    kite.globalRipupLimitTypeInt5
    Maximum number of ripup for global segments, +when this limit is reached, triggers topologic +modification
    kite.longGlobalRipupLimitTypeInt5
    Maximum number of ripup for long global +segments, when this limit is reached, triggers +topological modification
    +
    +
    +
    +

    Executing Python Scripts in Cgt¶

    +

    Python/Stratus scripts can be executed either in text or graphical mode.

    +
    +

    Note

    +

    How Cgt Locates Python Scripts: +cgt uses the Python import mechanism to load Python scripts. +So you must give the name of your script whitout .py extention and +it must be reachable through the PYTHONPATH. You may uses the +dotted module notation.

    +
    +

    A Python/Stratus script must contains a function called ScriptMain() +with one optional argument, the graphical editor into which it may be +running (will be set to None in text mode). The Python interface to +the editor (type: CellViewer) is limited to basic capabilities +only.

    +

    Any script given on the command line will be run immediatly after the +initializations and before any other argument is processed.

    +

    For more explanation on Python scripts see Python Interface for Hurricane / Coriolis.

    +
    +
    +

    Printing & Snapshots¶

    +

    Printing or saving into a pdf is fairly simple, just uses the File -> Print +menu or the CTRL+P shortcut to open the dialog box.

    +

    The print functionality uses exactly the same rendering mechanism as for the +screen, beeing almost WYSIWYG. Thus, to obtain the best results it is advisable +to select the Coriolis.Printer look (in the Controller), which uses a +white background and much suited for high resolutions 32x32 pixels patterns

    +

    There is also two mode of printing selectable through the Controller +Settings -> Misc -> Printer/Snapshot Mode:

    + +++++ + + + + + + + + + + + + + + +
    ModeDPI (approx.)Intended Usage
    Cell Mode150For single Cell printing or very small designs. +Patterns will be bigger and more readable.
    Design Mode300For designs (mostly commposed of wires and cells +outlines).
    +
    +

    Note

    +

    The pdf file size +Be aware that the generated pdf files are indeed only pixmaps. +So they can grew very large if you select paper format above A2 +or similar.

    +
    +

    +Saving into an image is subject to the same remarks as for pdf.

    +
    +
    +

    Memento of Shortcuts in Graphic Mode¶

    +

    The main application binary is cgt.

    + +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    CategoryKeysAction
    Moves
    +
    Up, +Down
    +
    Left, +Right
    +
    +
    Shift the view in the according direction
    FitfFit to the Cell abutment box
    RefreshCTRL+LTriggers a complete display redraw
    Gotogapperture is the minimum side of the area +displayed around the point to go to. It’s an +alternative way of setting the zoom level
    Zoomz, +mRespectively zoom by a 2 factor and unzoom +by a 2 factor
    +
    BigMouse
    +
    Area Zoom
    +
    +
    You can perform a zoom to an area. +Define the zoom area by holding down the left +mouse button while moving the mouse.
    Selection
    +
    BigMouse
    +
    Area Selection
    +
    +
    You can select displayed objects under an area. +Define the selection area by holding down the +right mouse button while moving the mouse.
    +
    BigMouse
    +
    Toggle Selection
    +
    +
    You can toggle the selection of one object under +the mouse position by pressing CTRL and +pressing down the right mouse button. A popup +list of what’s under the position shows up into +which you can toggle the selection state of one +item.
    SToggle the selection visibility
    ControllerCTRL+I

    Show/hide the controller window.

    +

    It’s the Swiss Army Knife of the viewer. +From it, you can fine-control the display and +inspect almost everything in your design.

    +
    Rulersk, +ESCOne stroke on k enters the ruler mode, in +which you can draw one ruler. You can exit the +ruler mode by pressing ESC. Once in ruler +mode, the first click on the left mouse button +sets the ruler’s starting point and the second +click the ruler’s end point. The second click +exits automatically the ruler mode.
    KClears all the drawn rulers
    PrintCTRL+PCurrently rather crude. It’s a direct copy of +what’s displayed in pixels. So the resulting +picture will be a little blurred due to +anti-aliasing mechanism.
    Open/CloseCTRL+OOpens a new design. The design name must be +given without path or extention.
    CTRL+WClose the current viewer window, but do not quit +the application.
    CTRL+QCTRL+Q quit the application +(closing all windows).
    HierarchyCTRL+DownGo one hierarchy level down. That is, if there +is an instance under the cursor position, load +it’s model Cell in place of the current one.
    CTRL+UpGo one hierarchy level up. if we have entered +the current model through CTRL+Down +reload the previous model (the one +in which this model is instanciated).
    +
    +
    +

    Cgt Command Line Options¶

    +

    Appart from the obvious --text options, all can be used for text and graphical mode.

    + ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ArgumentsMeaning
    -t|–textInstruct cgt to run in text mode.
    -L|–log-modeDisable the uses of ansi escape sequence on +the tty. Useful when the output is +redirected to a file.
    -c <cell>|–cell=<cell>The name of the design to load, without +leading path or extention.
    -g|–load-globalReload a global routing solution from disk. +The file containing the solution must be named +<cell>.kgr.
    –save-globalSave the global routing solution, into a file +named <design>.kgr.
    -e <ratio>|–edge=<ratio>Change the edge capacity for the global +router, between 0 and 1 (Knik).
    -G|–global-routeRun the global router (Knik).
    -R|–detailed-routeRun the detailed router (Kite).
    -s|–save-design=<routed>The design into which the routed layout will +be saved. It is strongly recommanded to choose +a different name from the source (unrouted) +design.
    –events-limit=<count>The maximal number of events after which the +router will stops. This is mainly a failsafe +against looping. The limit is sets to 4 +millions of iteration which should suffice to +any design of 100K. gates. For bigger +designs you may wants to increase this limit.
    –stratus-script=<module>Run the Python/Stratus script module. +See Python Scripts in Cgt.
    +

    +

    Some Examples :

    +
      +
    • Run both global and detailed router, then save the routed design :

      +
      > cgt -v -t -G -R --cell=design --save-design=design_kite
      +
      +
    • +
    • Load a previous global solution, run the detailed router, then save the +routed design :

      +
      > cgt -v -t --load-global -R --cell=design --save-design=design_kite
      +
      +
    • +
    • Run the global router, then save the global routing solution :

      +
      > cgt -v -t -G --save-global --cell=design
      +
      +
    • +
    +
    +
    +

    Miscellaneous Settings¶

    + +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Parameter IdentifierTypeDefault
    Verbosity/Log Parameters
    misc.infoTypeBoolFalse
    Enable display of info level message +(cinfo stream)
    misc.bugTypeBoolFalse
    Enable display of bug level message +(cbug stream), messages can be a little +scarry
    misc.logModeTypeBoolFalse
    If enabled, assume that the output device +is not a tty and suppress any escaped +sequences
    misc.verboseLevel1TypeBoolTrue
    First level of verbosity, disable level 2
    misc.verboseLevel2TypeBoolFalse
    Second level of verbosity
    Development/Debug Parameters
    misc.minTraceLevelTypeInt0
    misc.maxTraceLevelTypeInt0
    Display trace information between those two +levels (cdebug stream)
    misc.catchCoreTypeBoolFalse
    By default, cgt do not dump core. +To generate one set this flag to True
    +

    +
    +
    +
    +

    The Controller¶

    +

    The Controller window is composed of seven tabs:

    +
      +
    1. The Look Tab to select the display style.
    2. +
    3. The Filter Tab the hierarchical levels to be displayed, the look of +rubbers and the dimension units.
    4. +
    5. The Layers&Go Tab to selectively hide/display layers.
    6. +
    7. The Netlist Tab to browse through the netlist. Works in association +with the Selection tab.
    8. +
    9. The Selection Tab allow to view all the currently selected elements.
    10. +
    11. The Inspector Tab browse through either the DataBase, the Cell or +the current selection.
    12. +
    13. The Settings Tab access all the tool’s configuration settings.
    14. +
    +
    +

    The Look Tab¶

    +

    You can select how the layout will be displayed. There is a special one +Printer.Coriolis specifically designed for Printing & Snapshots. +You should select it prior to calling the print or snapshot dialog boxes.

    +

    Controller Look, Snapshot 1

    +

    +
    +
    +

    The Filter Tab¶

    +

    The filter tab let you select what hierarchical levels of your design will be +displayed. Hierarchy level are numbered top-down: the level 0 correspond to +the top-level cell, the level one to the instances of the top-level Cell and +so on.

    +

    There are also check boxes to enable/disable the processing of Terminal Cell, +Master Cells and Compnents. The processing of Terminal Cell (hierarchy leaf +cells) is disabled by default when you load a hierarchical design and enabled +when you load a single Cell.

    +

    You can choose what kind of form to give to the rubbers and the type of +unit used to display coordinates.

    +
    +

    Note

    +

    What are Rubbers: Hurricane uses Rubbers to materialize +physical gaps in net topology. That is, if some wires are missing to +connect two or more parts of net, a rubber will be drawn between them +to signal the gap.

    +

    For example, after the detailed routing no rubbers should remains. +They have been made very visibles as big violet lines...

    +
    +

    Controller Basic Snapshot

    +

    +
    +
    +

    The Layers&Go Tab¶

    +

    Control the individual display of all layers and Gos.

    +
      +
    • Layers correspond to a true physical layer. From a Hurricane point of +view they are all the BasicLayers (could be matched to GDSII).
    • +
    • Gos stands from Graphical Objects, they are drawings that have no +physical existence but are added by the various tools to display extra +information. One good exemple is the density map of the detailed router, +to easily locate congested areas.
    • +
    +

    For each layer/Go there are two check boxes:

    +
      +
    • The normal one triggers the display.
    • +
    • The red-outlined allows objects of that layer to be selectable or not.
    • +
    +

    Controller Basic Snapshot

    +
    +
    +

    The Netlist Tab¶

    +

    The Netlist tab shows the list of nets... By default the tab is not +synched with the displayed Cell. To see the nets you must check the +Sync Netlist checkbox. You can narrow the set of displayed nets by +using the filter pattern (supports regular expressions).

    +

    An very useful feature is to enable the Sync Selection, which will +automatically select all the components of the selected net(s). You can +select multiple nets. In the figure the net auxsc35 is selected and +is highlited in the Viewer.

    +

    Controller Basic Snapshot + Controller Basic Snapshot

    +
    +
    +

    The Selection Tab¶

    +

    The Selection tab list all the components currently selecteds. They +can be filtered thanks to the filter pattern.

    +

    Used in conjunction with the Netlist Sync Selection you will all see +all the components part of net.

    +

    In this list, you can toggle individually the selection of component by +pressing the t key. When unselected in this way a component is not +removed from the the selection list but instead displayed in red italic. +To see where a component is you may make it blink by repeatedly press +the t key...

    +

    Controller Basic Snapshot

    +
    +
    +

    The Inspector Tab¶

    +

    This tab is very useful, but mostly for Coriolis developpers. It allows +to browse through the live DataBase. The Inspector provide three entry points:

    +
      +
    • DataBase: Starts from the whole Hurricane DataBase.
    • +
    • Cell: Inspect the currently loaded Cell.
    • +
    • Selection: Inspect the object currently highlited in the Selection tab.
    • +
    +

    Once an entry point has been activated, you may recursively expore all +it’s fields using the right/left arrows.

    +
    +

    Note

    +

    Do not put your fingers in the socket: when inspecting +anything, do not modify the DataBase. If any object under inspection +is deleted, you will crash the application...

    +
    +
    +

    Note

    +

    Implementation Detail: the inspector support is done with +Slot, Record and getString().

    +
    +

    Controller Basic Snapshot + Controller Basic Snapshot + Controller Basic Snapshot

    +
    +
    +

    The Settings Tab¶

    +

    Here comes the description of the Settings tab.

    +

    Controller Basic Snapshot

    +
    +
    +
    + + +
    +
    + + + + +
    + +
    + + + + + +
    + Generated by Sphinx + using a RTD theme on Jul 15, 2017. +
    + + + + + +
    Coriolis 2 Documentation + © Copyright 2000-2017, UPMC. +
    +
    + +
    + +
    +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/documentation/_build/html/UsersGuide/index.html b/documentation/_build/html/UsersGuide/index.html new file mode 100644 index 00000000..ca9f52ab --- /dev/null +++ b/documentation/_build/html/UsersGuide/index.html @@ -0,0 +1,373 @@ + + + + + + + + + + + + Coriolis User’s Guide — Coriolis 2 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + + + + + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/documentation/_build/html/Viewer/Viewer.html b/documentation/_build/html/Viewer/Viewer.html new file mode 100644 index 00000000..cce3f0ea --- /dev/null +++ b/documentation/_build/html/Viewer/Viewer.html @@ -0,0 +1,334 @@ + + + + + + + + + + + + Viewer Reference — Coriolis 2 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + + + + +
    +
    +
    +
      +
    • Docs »
    • + +
    • Viewer Reference
    • +
    • + + + +
    • +
    +
    +
    +
    + +
    +

    Viewer Reference¶

    +

    The Viewer C++ API reference is generated by Doxygen and is +available here: Viewer

    +
    + + +
    +
    + + + + +
    + +
    + + + + + +
    + Generated by Sphinx + using a RTD theme on Jul 15, 2017. +
    + + + + + +
    Coriolis 2 Documentation + © Copyright 2000-2017, UPMC. +
    +
    + +
    + +
    +
    + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/documentation/_build/html/_images/ComputerMouse.png b/documentation/_build/html/_images/ComputerMouse.png new file mode 100644 index 0000000000000000000000000000000000000000..81b89ddf27b85a229a56e0b4397f3b646c1f156f GIT binary patch literal 9931 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 Y3lmEpXja26f%Abx1*HVa_;h^#7ooih7XSbN literal 0 HcmV?d00001 diff --git a/documentation/_build/html/_images/Controller-Filter-1.png b/documentation/_build/html/_images/Controller-Filter-1.png new file mode 100644 index 0000000000000000000000000000000000000000..71b669ba6ecd92c02a10a6fe014f7a51731326ed GIT binary patch literal 27386 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 VWWFU#J(r3`SIbZn`sBrj{{{VW7*zlO literal 0 HcmV?d00001 diff --git a/documentation/_build/html/_images/Controller-Inspector-1.png b/documentation/_build/html/_images/Controller-Inspector-1.png new file mode 100644 index 0000000000000000000000000000000000000000..618a1cde0804877e669e6c0bae5067e64c166add GIT binary patch literal 26264 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 literal 0 HcmV?d00001 diff --git a/documentation/_build/html/_images/Controller-Inspector-2.png b/documentation/_build/html/_images/Controller-Inspector-2.png new file mode 100644 index 0000000000000000000000000000000000000000..ac509d41afbf15250cf5eb607bbcc943ea1bc863 GIT binary patch literal 49778 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

    #RiYx3_ zEr6Nqa9le^_UhA6JY>XG=Gtdl6x!%H#0CF)DiKtyIU{sMSyrlV&a>`XR@yN}%pU;9 zj*5i|wAz@*45tj1G(!qkIgdTO1Vj;!D}{o+rFFCY#5QL0BuWwnTkY9sqtd@&W{v_Q z$OHsj>8X!1c1Z~<7AaG7D$ORX3m?9*hD_Wj4_U!fZ?}ug{BP5YU7C;adRlyX2=T_E zj#)1Xt%&`PJUZ5^<`h(5e)kRH%2T;8m9MpETLebXs;kSbCc>gek7tau25bC8t9J~I zlLHym6J9Nr>RU$s>Zh8hf#ti$^ylmxB2MsVBV)$5lPIeo56hD9NHRa#eAdu{M z!G^Kmd#r=1Py{|5T-G7i(8*r_CP^Qz2*~QIYN`HI&@h9&e%I=_4$O6&?-oCoi1tkj zv`|j})=Ns<)iG7W3c)LN=LEzNa&tC*%1$t?B6tqf*2N5$&AdGlPtNRPpGe7AtF#0V zajy_xvp#z#pX$0}w|Fb>Yq})REh%aCORWBMHEUCfn)-UD+w9nFNS74S!qRA$Rg>~| z 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 Y3ztDyZGL!;d;vvHN?Ec}{8Qln0KcMZ+W-In literal 0 HcmV?d00001 diff --git a/documentation/_build/html/_images/Controller-Settings-1.png b/documentation/_build/html/_images/Controller-Settings-1.png new file mode 100644 index 0000000000000000000000000000000000000000..ef260368d971c028b4abefc12f48c8c162bd3d94 GIT binary patch literal 25799 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 z�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 literal 0 HcmV?d00001 diff --git a/documentation/_build/html/_images/Coriolis-Soft-Schema.png b/documentation/_build/html/_images/Coriolis-Soft-Schema.png new file mode 100644 index 0000000000000000000000000000000000000000..93c9135cae2938ee33f5c3eb22b424c7c2328bd1 GIT binary patch literal 12016 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 HOnLtcAULjB literal 0 HcmV?d00001 diff --git a/documentation/_build/html/_images/RDS_LCW.png b/documentation/_build/html/_images/RDS_LCW.png new file mode 100644 index 0000000000000000000000000000000000000000..b6f22d24e506e53f13d51d62d70866319a0db8da GIT binary patch literal 4383 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 KU7dd{FfvuDc0mDM<1HD6T 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 JTz~#~{sG*K_z3_2 literal 0 HcmV?d00001 diff --git a/documentation/_build/html/_images/SegmentOrientation.png b/documentation/_build/html/_images/SegmentOrientation.png new file mode 100644 index 0000000000000000000000000000000000000000..4de3a6e4d3266b3a950de27b5e9e8aa668b259bb GIT binary patch literal 10451 zcmeI2cT`hL`|qPilqS+al%{k60VzT#Ql*D3p#npYM|$siXb$CMgps2n4#R zrmCa|0$qs$KCZ-9ff~x*o-yEy#7!0I2?CL8U3{*L4wh;ImCRns#$Ng_?Yv%Ddf0-V z>S(e(eeu%M%hTG!!Oe^9v7m&I*JI->5Qq(=rX+6wPupIQ^USVWk#obMP|h`i7`{g- zJ2~t`2K9YDRk<>aTBJ%v#fKy%=hvhIueziElzqb%B|4+lC+c3LQKi!{K%b)aopy0! zboYVRNO(Kp^A+~tQ^R>q3h|G0FFDvlsFbO$fOLjfLnx=b`xnUzBE!SOjfxEqjh<+o zwGq~QVfAxY4*qHo?4w@&>b*dCb|?-4@rT2&f|S|OpeMQ!+#nrV3<-#~Mg(m(B}U#Z zMBeog8z;==x$=oc35pR)Aks6r4MC1}5`MFSzED4uL+W)gQj?BOQ$o&e2)|cOyT0Q6 z;5LfHkgMI=534`O+n>G1{V)xUA*_y?2ZPzn8qOq+i73e(T zW^KP|S7W=g-|E71e}Hz&w;Q@f2CjidotYu3JfMU>aPwE*WKlvupLjZGp1kdt$Psg+ z!SF?JzscHlHp$Sjy23Gj54fU>c||O!Rbcqa76i;VkGj>DcqN6-DiYkp!%(0+Toj@p zp8FQ~HEE^5j?z<*zCtVbPNydi>65lo$P(4)Nr@}ju&b>^{%}kmv?ZyzT&u{E3@ zmGF;=FOn)-hzi(V%VQ=PxR2+`nL5U7QX&r%nZDOnt)j$Eeuafh)gtGL1DakXp591 z^1svjrxW{qdajX0Rcp7EYYd8KfQG0S*@(<)GQM03rTTLbfw^csWbg{7q~f)}ePT-$ZsimxvLjMT_eA|BK(x zxG8gTcIcb%=z-n?d%;Gr6|VmGcHk9=F}#vMjz!Y{O1ygc?FdO=Ftbww#z5}~xir7r zIy1w%3Dg)~0b1T3GAUAE0dqs|5&5i#cZpcMdO+FHEsLD*%N1PorZ=548iVm5o|1|gj{ik!b+raGr1DlBaY9S+{ zCnCTDFcx3+ZL>|jY;brDupoINzHgm(*)0}%F}{5nc^EL%QC8cRe@+HA5yk?OQ4D39 zeVRPD?pBMj(->oZbtoA6yRfW8k*krkW6ZD|Hx!^v?3Sa?63DdK#- z<|LJ;NQ}*wWw*hLuienY6-1}0LlV0N}ok+BV zE%TG(m}2ElUq4db$+iT>!xJ?c0Pkx?;vdZ*V+kxnOFxXpDi3RqQkR_=2fuc~vI+JX zsgB;2MMlXv+p8Y^@2eG6xTd_5Hkn$tyvodRF0vBL_QlLv#51-0WA2MT_ME1gx4cMa zznXaof`8S35h!q8)r6%YamArPx7UxCp19dsk%k1{Ti|?5EOw(p3 z5EQZLX;Vqy&RZ#429f!^*5HgQ^qoT_>f5g3w&08*hR&f~RUY~C^fZlawQxn1NH_*8 zwQ~D8l^l0LRpYT`A~v8UB4hcTjv1$q$Kh-uS9lCHw&Ru8;iEsZUiV`f!8pj`6*=ch zpeN`ly&T+wu-Z3b!|mkJgJgw#NY@_w5h40|H8BgDZn@I?<9OK8ITEUf6kdHBdrOHuVI z@{IHH7s^AG;(o@*w(V1H0~YKu%03=c`BFrHfAmG>$EFA5t#JHcHy0%fnsl3HqBwq9 zN(hfc{B|{e4W=zDZE&U;>+cd^cB#V~kLJHJOH4QGROAACuQ5SBp5Xb3iP_IoTv!MJ zgfC%=_~4_Oae;*x2ERs!8&!Y0&c?0pKI>?sX$jkk#1eIEV$7|MI~v(2!1dR|H6?5E zgMIvqH*%*(LK3*UdQNkGof$k?#FZa;pFhQN8>$Y=zSx^NpizRdehEAKmcetr6**$< zC{}uu@l%-jOBmMLVVbE-%K5BtCpj$x&u}=MrCO+ z<6G54J3_BZAM+@d?7l{A=TFP(xw)sevVWQu?Ie}!^}QzrL%#;+7(BMI@i2cjGE1|Y z_$7@braCmeq;9lJ#$|5eLo|PSK;wdKOVNtY{l)u@rq3c|&oOCS;QGIPX)IhtG5kPW z7P%+ZZ}O6tuQu_O6T#7=rz43TayV6v`I;|U#rC;1aACW-@gN#e)B2kQni2%vomj*= z8R>ra`Ryu(?Yr0;^boGxrwe7@`ZmUK@eSs^x8CP-ZL@g4a`M~i$~alb78DcPfc(9& zJCb~d7S;y__=#cdI$s-L?QZnf@+BmwCzISf{b;@g?HYDXkz2Gsr=L$t-UR|#ulD3> z0+o6T=h4{laUwD$CWGNtB`=oeXd^a{RYwH#Vjw6z*j%L;e{B^@S`@^|MRn(=|vtJbh(8f%N3cxzbS zDW-zksH3g@Wecu_2m3$Ata}fwseb%xu(nU?;B`y3XZ?P{IqasRUf}NP90)jAtwrd<$l|ci{%EqaGtV$eM>cee{JBrz3s2)7!EEH_r=~ zrkx5rrwg6{5d_bkXzoyZt=wZ~y-AY`>YDlE(Zb#8xjT1;Oc%OR^!kRj%zU^WCi3Ij z_Dpx@Zn)&0ppbkTBCje#OoN`i^X=(bZ7Acb;a=Xt2d;T4oRKG-#tps-{CQe+nm)9P z-K*D|$zjs+sjLJB$Tw*GT+dO@Z(0efXL`AV`C7*t-V!Q42zdjfoi6ATC9OTENP!-jvQ^S z4S9%*-f;)*m-(G#PFvw0;icpZjs~!?w_-C8hQFPXHEPn$bWUpn!($q-92{Ba-TwDA zeh&&XXmGk``5?|t#oj%Y)U)AcSWwLG0j7iq!@KOMCR6?%{JMFl$V+I-_<}Dcf-8YA ziQHs*mMq1P^J!zZWBr0!Z0px3Kt6Ba>SWk|@WqQZCj_qkpges3$|r#3E{Le$A5c2~ z2(S}CYtjHWsgo&_0tf_Lt^4-=Zx93Z0v!Sd9DqS+1>YrieKn@*Arq{+=#mV8Xu#tC z0<9gA-$8Lfe>0an%&kb{0`;P3SBdf){sqJ?MU#!8W%j61fEW|WQ?hZdkFF5k>8raz6Ehb;eAYB|Vso1x2%Q_5+Zc7*~V&S>0X99Z>*^~seI zG_^kQm)^7L*=zD?96-QY8+DR({7r)N_^edNGpS1@hxXhSgZD9X1?}za9nqi7LLM!W zMn;Wx`RS()mB=7-#i%W--7PZtGY_lvvM56RXl$w(A+|1RhG)8m*O4#hOoiQRD2!%` z_%qpDLS|_|JnEb9+36E=DZK!#?nE|1Z4NVNe#1n)28GbpitmBYafR_ zUw`ojh=&5>5D5sB1RanFpeiQgo0SxG^Ulv_3+Q(Xqf5Q9ydoZDo zG1}tMARPNqIQjdwjzANwK-Yjuq!sKEiv!~ z?**PH%$i=M4osdEt7;V^+?B<1k5KCJ4p)gR7!0Nm?-;Y9rcwZIXW)Bu^JFiP(xOKgbBBOEYT%+npcJ$*p@iENX z&?>7~Y$_E&5~fN|7@@JR>`aIv&`BC1nri3-D3!wrNerR6l3zbSM9+^JF&PO*)kkao z=-Rp~I?9{HrzQu zf1%#-P_VuU66t${##mE%oEd|L_0iZ6gR5`u0#^SdSpJQRB(41!0Bm1s0n3@-CvJhGBmH0DHP$L=ry4gF z@D1PJt$rNr`tEB&RQ1V!yjilDH{i60ZO#7|-&*AuAQ<5Syx&a^m+qH1K&Q(5hg~xk zvOOpWj{@)B`gPrB>_<%w5*{L%w*q;+^7S#nYf(-f5>#fs62F2CwQL$#D_s_PE#3); zIj6?~sG*1CEAG;RugNl_q&}p#ExchF6BWzLy%b1p5|pnErN)HOWq!?#ZGU~#8=I*h zC&^p6tM4blXm;RN?|jFA7A3Os^<(Qmcxh%$Yd;C(^I@r_(_;kc4#Rbnh%1q$url1s$AtfFi=IoAzCZNf7`B5Q~)!mybwKs`9U?cW|CU;N8!t_4mnu`gyq+1U;Bbi0npw5A z5{niv2%#)?(1LL>iDRoH01fysQO$jz0nj#p%Hl&r$(YJaT2j09>w`Ijm1x+aQ@h7#tOEqOk5j*#hb$9`iTS3eHrg?)eWb{k*QPNU z!YL7_{H-}km-}XXJ4CeRk{`iIH*EHWOvG@BatFcC&lBHtObUIs9jsgH)*m|sMWTr0 zogO>i43|c+sAP*4tL(td>*eN4PdcY^hDQ0Oe_EPfsX~1@Rs10Q;Gi4;a1DVC^#J;T z!kt8%s^iV@vm02axXnnSX1fG8)^)&avVHnS-N@s&K)adIAg4AddBAA>LAmH z+`6qX>C*bN+Az6;JN`Gd(DP8j4YlRmv7h~_ktRbI5)P%S=$V%3wKzn=khuV2QvB3 zAle%T7J$kGRgU&(Q95I>@R_ zCg843Cz-JJT}x2~@pVlOgSb*@#D)`EOQ{`xFC=YoemAgSYoefVXAjS1llY@RE&HXe zb-Az~qiu;wX!-I_%kgO^rKNl6Rgph$LqZY~0|}J{r&&z+_~I_-r?vIS6X?&%)PsofvZmm;!lr!V zId*rqJcCE^^XS0(O;qJh8}3+c@5lhNDpRU-5Vd47e|f-!m1h1Zt-rRg5*fY3ihInm zmqzW-xyCZ=<|^3}lq!lAOYf&3yv;W}{cDLtAnWD3GnZo04*gNJ)_BIC`OJq7H&T6K z|9EpkS}1cnOt+(3;a8UGK{8RFo*}I+K$!rE(M{uW@F`IHiK3)W{DmcTm6wQkNl5>& zIOtQsT}-dH`4E%dz72kmn=Xt1s7xyCbI|tOy z-Z=Ahp0w9RVMCtlg`};>)WW0ijh!SsPdH7yRi8aTQ)(8yb8A|=4H=0NP`RzwhFLZ* zg)0d07W`b1S%XK>e_`xY<&9=fI^`pc<-V5aNGh|)n;Qywy4Fy(=4(ZHjUb7QVpM5E zM6fDgAR0?O7M3xke)n^cdJXP(l3R4o3dQfpvBclHbxSQNwtJ=HL(wq4+-O;?>ZV5V zs&CYA-57}JRYD`5*so!+GA^%JMXI84vADNHq+kEM%A=Zeo&LFTo}&;yO_Y8v0L&6R z?p=xsYKi#aQdenr;zGS1=|#^7?s@7G+Ii}k1rqf7{FG!c zku>Z{J4Kef4!~TFM`T6BzhFCFezc?1Uq%{ykMu-B0XnMVZc9>Sd-Z?)>+%l*^X(=- z*VMY@D-Ru|0TT0{3KSe6b>!q1<=dC#uld=o@7fEg)t`H8k@GaFYdMrSSL1CWt*WQl(yQe;5Tp`2Oj@zae>0$+ip1)j$ z>h4e~%-+~;j}Kp5lkQegJlDKU)`B3|%dTAj8Q#z7F-M5z>kNY5Mfy3|=TtG<5^?TG zFGH}&rS;I)2>s0KS#FMgdXa`MJ?M|FCbfHu>&)gN9Yg#yOU3{=V^Lcx{a&+srcN4C z45hs5-3TOSLSI_Y)s+={Zx?#b015X?$SOHU-2dii@~dV}_Qg_0CO}zxmvJ9R*k4js zO5CG^bF%g$ufV|3r8W-V3Q>N;{O7uDLmlIOC9*1Akh zpYBxTg#vb%bFI*_AeWp!qf;jg9SsP5Mw|m^WCXCCu$XsnyClf#^ z7vOy8Nc7*PUnq&r?jCRU$t|T&cc0j#1IjB}O~q)~6l{YP^6S_ZbO7hITTqeEwS+ZUGJd;?ZGe9;mc^FEZW75fUnJ;467pR3jM#78$1ml% z3?xPG@P@IReb}Jn7$xINv-T5R8nlgv7Au!}h2VS>0aKOkICC0qNi(PXY6X zKiAjKed?i!pP_pp#Qi@UZO6-bC;wfvpg)7taIy zms_)V0~NL3`GKdOw6uKnQHoIf7S3LtEpy;+e5)#72z@R9L`e^X&%?~fZj?99-h^D^ zO5$j+kEsI9OZu=I+h5dbz-#N&0IBRj)|4f%(==d$7wjkB6J8+03zVywqEbHTN*_Rg z)U>O+7Jx#p;u{#F3Q-Cu_^kNm0C-9`Yoi4AdOSps0`s{IlWUx$tW zD*Ga6D%Cu>a+k7Rl#letO71u@0?B?L?OV$;Dv63f18}#Vv42Tl6`o>I&r+HEV}F{4 z;JN-9{Iw&Oo?&08f>j^O-}96?{Yq0^#|ck5t@0PQ{Z-R%?_QZY*#!=7pGsJ2WB7J; zCpsLfmEbnIld*sLteGXFKa%pj-69=}eHGi|4WEM)7uWlxE5KQ!#q>J*@AF1@iw$jr zmBt`kSgUWzvEa|hY>ADen(I?U=mQA&p#VWH+BF2mfwSn@*(B!jXc=Lm5PLbm`4jM@ zGkhIz(5)d=AIRd~gn9PM({trwOX|10j&4bpQp^&xUtk5IR$rPLvZ3FfaKG-LT%~xe z1|F_|8L?!0a@S=qM7%Y=IVcqoc{w};q(9i literal 0 HcmV?d00001 diff --git a/documentation/_build/html/_images/Viewer-1.png b/documentation/_build/html/_images/Viewer-1.png new file mode 100644 index 0000000000000000000000000000000000000000..01195845a195bdeee4c9fd843d3d760fc7591e92 GIT binary patch literal 12298 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 literal 0 HcmV?d00001 diff --git a/documentation/_build/html/_images/bigvia-2.png b/documentation/_build/html/_images/bigvia-2.png new file mode 100644 index 0000000000000000000000000000000000000000..71f6b7e08f7c35f5f9bf724b2a9ce4ee194e416d GIT binary patch literal 3770 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 Ra|B$`6ny#k>3{ch{{?nPbe8}C literal 0 HcmV?d00001 diff --git a/documentation/_build/html/_images/math/0183b70ce5b7bb56d8ad838429a01d2858d99612.png b/documentation/_build/html/_images/math/0183b70ce5b7bb56d8ad838429a01d2858d99612.png new file mode 100644 index 0000000000000000000000000000000000000000..ea9f234ed1996eb111a7784a660a2d5866c40485 GIT binary patch literal 1186 zcmV;T1YP@yP)7%Q7=2l%UhgLUnb@18NpKwX%E2ZG2~nz8DO`XwRuR4Q;FU_#LshLs zQ{}*qLvu#X1+KOz5{MuvVmLs!hh z%WRb{S(nL;=COiI72VUe735lWRu-MTByS5LkH|uY6+e`l#~VGvd;xZ?6!x;>ltr;X zzxTaX>JtbIUD#`kByIzJR2x{_$BG}y&Et)oA-V+rlNBZ5rLk5ek|-gd)p#=;H+Iv4 zG{U}5so_lgc_?eQ+KY*wujkDvU;FhrEUyDtcz12>V%4m|1c9jTWSVb2xy4Ej zr;kK=WEjh%LeE=ohelP_mg1(BQOu@gW|%_#P;Q=$V)q#o1`rT9-k-Hrfvl{z<+CPl zWDqYIwiQ#B$P#L?rY6iK(^}zv)QzrZ=&{WY-+X~KowqZ2^pu4&vE24XaYJ0cWJxZP z6Aa7bx-Ryq!ZdmYp|`@Oc^{OUXAY60i1g#Wz;#-YscWMoc;zD9IaY;anOU;3V_RV< zWf(aeiCG0kt9z<4iVJ45Hz`JMHAL_sD)0_7NTi~jKmQFEskbaE!6ZH4fEeI|^64w3 z_inylrYaK>=YrcxF!?}0{ZMWmeTHfW%MY4L-1*wq`D^d666`lNoK{Fyr>@(mw@u6f!gG!w==+c`weZ5|z`2z=_S6 zA2#A#p~b>-QSk1h>CRz=WSLpAGS97~Z7aX;?qJ}ncTFoPEwKx*)QT;kCL|0(ewilv z9P4@fBC~eXJm}~FR0yD(uY@1U#Umx~)>AZNKLpM^B5y;=iOpCqsd1BcY(ma7okt|e z64}52mdS=%wXM9ly7`g#BoMQldu8Ry$rHR;#nmZ$7mYTB(N7!WMMNj>BHFlFlC?|M zMK@-@xb!0ZU9*lzAC#Nt>eNiO2I&k0&iZgUeQ&O%)%&FJ z5?Sf^_M(PAj+d9%oh5dAL92~1rlqh?$b0p5elN`7KK4b)IK+^s$ah*#GSX#5|Fd=g z)FE3zrTHWy|6+HX&5yT@1E3By9<6SFhyPLh4Z1LX-$l8rqyPW_07*qoM6N<$f=lE! Axc~qF literal 0 HcmV?d00001 diff --git a/documentation/_build/html/_images/math/642cf89034341e49c1fbc546ca776e1205ae49c0.png b/documentation/_build/html/_images/math/642cf89034341e49c1fbc546ca776e1205ae49c0.png new file mode 100644 index 0000000000000000000000000000000000000000..c93ee4cac5ac685557426a7b13405147f7f90e27 GIT binary patch literal 1053 zcmV+&1mgRNP)=*2?<()J+I;s+uM z3H2^rE7%T0E#Al3qlxmJ~f{5#PN1Ozhg;dhii8J2U_H-`~!> z*}hs?~uBkVYPOU)Y3Vzrft7Qo{*R*uI)j8Ygff2Ot z^6gOLMTC0V#>{4rnvLP>K&ThWU^77}wGx#p$X%PQ8TYm@KZG?lai|kZW1M!Ipudck zA)6TKnmwv;XB(N%A@~=|cmuJQ%JE_M)=qQMEMYL|A`aTbZVZY`4a8G}@b`=^CH3*G zzk`+>g=L7nRE`h3`-DO77A{Y$#+v6i9Mj>CS7b939dne-6c(?NTBtv|4eIpcdLj1d zZpI)!@O3LLiA*R~|A)%);fF!waP{kJ7H<0dvZzoI6S2&};*)usSYkw`ALo4O_K>K& z6$83VGb<)WV{uwKvdt&vgzkE`U%aOMLS#^)Ny*lOeVVBIq6Tpv&ZHEYv(&#-j*m&4 z3G^Xfm%`ax%Tb9-KbaHUfHsrZz?i8k$K+t4qR||48jY=gw4HYCh5ig$i|o13juh7d)@kSpXLTfj&wUF_S9x9g)6Q?tzSyPt8=MY|J5OWUQ1?)K{423#p zb?RMUVooznpdBjpVbqYeB{*rW$|37V11^d&N>Jm&!%rnkwq_Cs5*Y9DbApG;+wt8`9R8YmNi57F*ZNjg_+gqT7GxEX5ZRHiMJ#g~hzX;SI9YIQ28?$gdkjd*W(%JGrz%4As{6JY|m<%{9e z26N}hoM1OjJ0}QXWOXeHe-|cG5L%hjr#KDo>FQ$6WPxTgM4!%#%i;5v+ z47Exgz8&+0IDYIXa@umCEY%lpXr9A+EUQwmn$bj@{aIOoYE@%VJaad%&5x}>^&iI{ Xb*@L)$64d!00000NkvXXu0mjf$dU80 literal 0 HcmV?d00001 diff --git a/documentation/_build/html/_images/math/6a2cfe8749bfed89e3c82527f74daaff6378d70e.png b/documentation/_build/html/_images/math/6a2cfe8749bfed89e3c82527f74daaff6378d70e.png new file mode 100644 index 0000000000000000000000000000000000000000..1b39c2bb3b44dca7fe50da80ce569600d029c9c5 GIT binary patch literal 1156 zcmV-~1bh35P)d`}%T@-06DHTD)nt&*XhXl%Q4^k3r zrHDd8dzQ?_gA_@yh$2GPB4R6&T(or8)~$zD5XoMOuxm)ECtXT^?>B$)lJ4y8u?HVv zX5M?>-}n7K^L{fE96lafczqebAAi#UvU}nVhTAi1*B=6vq0wkQvk#Thc(HGso+Es^ zW8}x2!Ho%5xa`LH7RAEivC@E-?p{^L5KPn&o*6CKU7fmv%{Pv45?XdRqef;wDy5OT zvC*-vU12qc11>>$Le0ueSJ2Q~16F5MQ_MFpl5+`=@3^xX5027eThJfNtvo>BrRw{z zduYPW$`R^mg+QNBvr-8TrUo1@4iL1n@Xwsa4g@~F^p8`Cz}$ntOV#&bcb~9mRN;;U z?d&cD!T9hVMB+906D`>d$CQfW93$eFv=N?O=10yYhYf80vdEriamYK5ItYaBACOuj7Ik~vzw~#V-pktbEx*D zaHBHvrc9rHGDbgyQI~+SGGe!rtkp%gJxvb@t=E!bvt`g8@DyohuN|Sc!UyvOgz6l6 ze@1=ezvJV#A|-Q^akCo1w)sU;&LK2~Vkc}dd#Ds2Cdd~^bD${+&Lc8y5pWD$1#AM& zN)z~mwX_FOQAasz>+drGPuZq0UTe(Zw6(^lRd8Et++@8Oz=xtl0l~!5(oZtCV#g*3 zq)?vpbAX3R@o}oid}HYyi2?1SQ&ScJ$2^sD2{h9!K$QAT7HAp%8p54+p6l*6Hs0Xq#zUV^%a5pk z5-S-9qsde9`_1O3Ub*_-i!aD-6BkapufgcA%=g9GLIu$iHxOOBR?`w^uJAC1FPvOHexsdyzn!eh7(BSy6)j6BPY=W`*3!RDMf$n+S#hxk+Pf{BqDE`~phw6!H+u~=n`&qZN57qz8vpoV8 WTVQa_Yvs)V0000cP&5?T~lx}={`Jf+xBL{t2IMbQSFOHYo)D7|7}V zxs{VgQS~P4Ykq^JwEpG6NAg4~nFIEz3JhmV7RXw(G7b7LtPRS6 zSr&R&oK%+202W2CcqjQ1SS*D>EFkXQ8oJ8c&GWhZ!_tJdvCYO6-}X zbGqDa?{0|~B%*^B#X`V@EAcif*--zY3P~}RgEBsdd{>!LSyu`RmMOTJl$kDO>ZG!K z1dAV|s(~?hN>@&TPq54z>wqkcuDmFmNn^5fYU4&M4tZjf2<1bsKqKcHh43S2Ke>4t zcZ6%H9C+6#8?Col17Fec3l`_WY6M_XM(i5xR)q|B#~|PI3wj5Y&4*YDX$XwVMQD|9 zD(-$38G~CTawd(nE*e`Cu{fkzEFoB}j07QTF1z|dc?vFxu1}O@yG|{_?*hEVbPV=H zFJAnX&obXMSln?ajJhbmL1puyWPhwCdDQamd~rIn&w@23)z3bw4+TA89w(f+##Ups zCWzP`7JT?scSxNyS%ybF?30SZ%?>qV=^yfHk`_eI6H^&&Zw#>SEl0>$Ex!dYA{$Wn@KE=YR?O$026QTUgTI|vJMTs$X z9u8^pps{FAcNuyYnv{?+wlhp>|@FQSv`X4*jdz*4-$BveP{1}(9w^eI^L#j fcG@NQAGLn~O%Znd>zIgm00000NkvXXu0mjf#SuR| literal 0 HcmV?d00001 diff --git a/documentation/_build/html/_images/math/d3499f8834024d33c997cd9730e31d3a02ebab18.png b/documentation/_build/html/_images/math/d3499f8834024d33c997cd9730e31d3a02ebab18.png new file mode 100644 index 0000000000000000000000000000000000000000..adb6d5bf37c726740c29601380a0edd7d7e36c26 GIT binary patch literal 1045 zcmV+w1nT>VP)qS6 zGT$<-P(nFqT`kE5tk;(N}IRdmra<|5`)eBR;_!65o|GaA%{ z+~KKRXzoB_Ml;6dpt9oFNK=FGbqdXR`UJh%YD(!D1(?;z^+l3W$Ylj%_Gy{#%=h4+ zA#I7sPV*&cVx6eKDW0SbN@#TSp@^TDsgQajNVU6-o!nSuiz8-#^@E{DM4F9JS3|?j z9_X-Aaca$fc7?0153 zBa)NKii7bY9TAc=FBXoR{R;uHge+1@ugX++aL<*UV6q z3>{!wDcChk$MKQ&fj^AO`0^x37|YQ~WyOIn9K|Y0>g}X^gYl>ub_H={rTyfm^a-6V z1$R5fW8i8*TLE8M++Q-tfo*q>4{a390#5HRj~D-QIgTr({xtlXC*d#M(^=^7P3gw5 z8;3X0-=)gQ@1U~c&~3V9;PzQu=aV=;wE=AZ%lFSI-PoqdiEz%iO=WteM15TYpR*x+ z9mru}>JAn&*2ovCX`aAqEUIGo7gk4__+DIs>YvyGe`If7{G42Z>OZnyD1$8G@ZQEzJxSV7xv&Gp=G6%N{ah(DC;)h$rVXJTn|#7 zfE5vi)b$TYE_>QT!@4iBE~J!Yq3$8Mtm1aXo>oDY^dgE?(yJ@tZ)Tp?)W`Pb!8ttb z{O0@n&Sz$Rlfn3GeB$^w03JQ34@CFqzvym<*6+LqDqYcNA-e~aqY3xIAP%-2u^%~n z$6PAkB%hd^(OogibZG!uav714KHcaBsq1dO7$PaKeE0PA>|RukM(&|GEX_M(oF;Uu zf}E5moDtiU9FS|EcizH9!CpO+!9G%NA-Dsi?85a@**?;J9Knnm7gu-U?n}EOF5Ffg z{*kkI3$9Q8>yOb%qqYmKm&*2$?!8?@e1~`^ZmoNF`x908lTFc$#2s}bf%^GBnNTDb zpMrMp&rU7z-)d3ee);SZT;s(^qVo=w?L+RY8DND0AOB)uPWK%-wLPwP9hmq$}dW%;b>-t|FWsdVA>a@gCCpZ@39ba7Gj$tv& zxUOKlRJIRI7Hk4N1L!%0jbi^0KGVhS60Y7mB-0e`i`Fm@A@?SYX(`K;97b9GRk@M57SsQWtpmC0775Y$8c8FMxQF1t##QFVidT-b;{9_XU_a3KuT=` zH;_hozh5SJs2o0y-KAY=;^O1kio#{Vgi14uq18q$E8I<7V^rbx?$`K@hQbXe9J?D3 z^(St}W~QF^Y2tXhaRcdxQtG9$eMIdxY}~-0zG>j%z=(Du?zn0zc{i>yHF3)^luiN} z(G587>UZL^j}CQ%_RY^|NR!80HH%>wjH`R(rLujD$xPhsELKe1*-GEfBF)4t4WKSd zjeeE|t}-nDPZ#ci zJj>lzxZzRMb&+O06S445!{Qyv>EXC#D&9rubb4;>!ly?>w}EeuS-(Kh`*JbAtWQ)B zJ$e_>^;=bzTv(N1EdI7ILw~Lt&xD7{_96Evs_|CpQY-cG?8)Hd+0zxR~So2J;MvA4zCZ{|fjz^*EW_tv^_OD~&yP`$tQir;p2e|Vwq cLG?klH+hIO(xbN~KL7v#07*qoM6N<$g3kI1t^fc4 literal 0 HcmV?d00001 diff --git a/documentation/_build/html/_sources/Contents.txt b/documentation/_build/html/_sources/Contents.txt new file mode 100644 index 00000000..febd0e88 --- /dev/null +++ b/documentation/_build/html/_sources/Contents.txt @@ -0,0 +1,20 @@ +.. Coriolis documentation master file, created by + sphinx-quickstart on Mon Jul 10 15:08:36 2017. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Comprenhensive Table of Contents +================================ + +.. toctree:: + + UsersGuide/index.rst + Stratus/Stratus.rst + DpGen/DpGen.rst + Patterns/Patterns.rst + Hurricane/Hurricane.rst + Viewer/Viewer.rst + CrlCore/CrlCore.rst + Unicorn/Unicorn.rst + PythonCpp/index.rst + RDS/index.rst diff --git a/documentation/_build/html/_sources/CrlCore/CrlCore.txt b/documentation/_build/html/_sources/CrlCore/CrlCore.txt new file mode 100644 index 00000000..d462e48e --- /dev/null +++ b/documentation/_build/html/_sources/CrlCore/CrlCore.txt @@ -0,0 +1,11 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +==================== +CRL Core Reference +==================== + +The CRL Core C++ API reference is generated by Doxygen_ and is +available here: `CRL Core `_ diff --git a/documentation/_build/html/_sources/DpGen/DpGen.txt b/documentation/_build/html/_sources/DpGen/DpGen.txt new file mode 100644 index 00000000..0d8324d1 --- /dev/null +++ b/documentation/_build/html/_sources/DpGen/DpGen.txt @@ -0,0 +1,11 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +================= +DpGen Reference +================= + +The DpGen extension of the Stratus Language reference is generated by LaTeX2HTML_ and is +available here: `DpGen `_ diff --git a/documentation/_build/html/_sources/Hurricane/Hurricane.txt b/documentation/_build/html/_sources/Hurricane/Hurricane.txt new file mode 100644 index 00000000..4b1ec994 --- /dev/null +++ b/documentation/_build/html/_sources/Hurricane/Hurricane.txt @@ -0,0 +1,11 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +===================== +Hurricane Reference +===================== + +The Hurricane C++ API reference is generated by Doxygen_ and is +available here: `Hurricane `_ diff --git a/documentation/_build/html/_sources/Patterns/Patterns.txt b/documentation/_build/html/_sources/Patterns/Patterns.txt new file mode 100644 index 00000000..66c4791c --- /dev/null +++ b/documentation/_build/html/_sources/Patterns/Patterns.txt @@ -0,0 +1,11 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +==================== +Patterns Reference +==================== + +The Patterns extension of the Stratus Language reference is generated by LaTeX2HTML_ and is +available here: `Patterns `_ diff --git a/documentation/_build/html/_sources/PythonCpp/Configuration.txt b/documentation/_build/html/_sources/PythonCpp/Configuration.txt new file mode 100644 index 00000000..2e9d11e9 --- /dev/null +++ b/documentation/_build/html/_sources/PythonCpp/Configuration.txt @@ -0,0 +1,42 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +2. Basic File Structure and CMake configuration +================================================= + +As a first example we will consider the ``Hurrican::Library`` +class. To export a class into Python, we must create three files: + +#. ``PyLibrary.h``, defines the ``PyLibrary`` C-Struct and the functions + needed outside the module istself (mostly for ``PyHurricane.cpp``). + +#. ``PyLibrary.cpp``, contains the complete wrapping of the class and + the Python type definition (``PyTypeLibrary``). + +#. ``PyHurricane.cpp``, the definition of the Python module into which + the classes are registered. The module act as a ``namespace`` in + Python so it is good practice to give it the same name as it's + associated C++ namespace. + +|newpage| + +To build a Python module in |cmake|, use the following macro: + + .. code-block:: cmake + + set( pyCpps PyLibrary.cpp + PyHurricane.cpp ) + set( pyIncludes hurricane/isobar/PyLibrary.h + + add_python_module( "${pyCpps}" + "${pyIncludes}" + "isobar;1.0;1" # Name & version of the supporting + # shared library. + Hurricane # Name of the Python module will give: + # Hurricane.so + "${depLibs}" # List of dependency libraries. + include/coriolis2/hurricane/isobar + # Where to install the include files. + ) diff --git a/documentation/_build/html/_sources/PythonCpp/DBoHierarchy.txt b/documentation/_build/html/_sources/PythonCpp/DBoHierarchy.txt new file mode 100644 index 00000000..4c72bf3b --- /dev/null +++ b/documentation/_build/html/_sources/PythonCpp/DBoHierarchy.txt @@ -0,0 +1,439 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +|newpage| + + +4. Case 2 - Hierarchy of DBo Derived Classes +============================================== + +Now we want to export the following C++ class hierarchy into Python: :: + + PyEntity <-- PyComponent <-+- PyContact + +- PySegment <-+- PyHorizontal + +- PyVertical + + +4.1 Base Class Header +~~~~~~~~~~~~~~~~~~~~~~~ + +**Remark:** this is only a partial description of the tree for the sake of +clarity. + +One important fact to remember is that ``PyEntity`` and ``PyComponent`` +being related to C++ abstract classes, no objects of those types will be +created, only ``PyContact``, ``PyHorizontal`` or ``PyVertical`` will. + +The consequence is that there is no ``PyEntity_Link()`` like in :ref:`3.1` +but instead two functions: + +#. ``PyEntity_NEW()`` which create the relevant ``PyEntity`` *derived* + object from the ``Entity`` one. For example, if the ``Entity*`` given + as argument is in fact a ``Horizontal*``, then the function will + return a ``PyHorizontal*``. + +#. ``EntityCast()`` do the reverse of ``PyEntity_NEW()`` that is, from + a ``PyEntity``, return the C++ *derived* object. Again, if the + ``PyEntity*`` is a ``PyHorizontal*``, the function will cast it as + a ``Horizontal*`` *then* return it as an ``Entity*``. + +.. code-block:: python + + #ifndef ISOBAR_PY_ENTITY_H + #define ISOBAR_PY_ENTITY_H + + #include "hurricane/isobar/PyHurricane.h" + #include "hurricane/Entity.h" + + namespace Isobar { + extern "C" { + + typedef struct { + PyObject_HEAD + Hurricane::Entity* _object; + } PyEntity; + + extern PyObject* PyEntity_NEW ( Hurricane::Entity* entity ); + extern void PyEntity_LinkPyType (); + extern PyTypeObject PyTypeEntity; + extern PyMethodDef PyEntity_Methods[]; + + + #define IsPyEntity(v) ( (v)->ob_type == &PyTypeEntity ) + #define PYENTITY(v) ( (PyEntity*)(v) ) + #define PYENTITY_O(v) ( PYENTITY(v)->_object ) + + } // extern "C". + + Hurricane::Entity* EntityCast ( PyObject* derivedObject ); + + } // Isobar namespace. + + #endif // ISOBAR_PY_ENTITY_H + +|newpage| + + +4.2 Base Class File +~~~~~~~~~~~~~~~~~~~~~ + +Changes from :ref:`3.2 Class Associated File` are: + +#. No call to ``DBoLinkCreateMethod()`` because there must be no ``PyEntity_Link()``, + but the definitions of ``PyEntity_NEW()`` and ``EntityCast``. + +#. For defining the ``PyTypeEntity`` Python type, we call a different + macro: ``PyTypeRootObjectDefinitions``, dedicated to base classes. + + +.. code-block:: c++ + + #include "hurricane/isobar/PyCell.h" + #include "hurricane/isobar/PyHorizontal.h" + #include "hurricane/isobar/PyVertical.h" + #include "hurricane/isobar/PyContact.h" + + namespace Isobar { + using namespace Hurricane; + + extern "C" { + + #if defined(__PYTHON_MODULE__) + + #define METHOD_HEAD(function) GENERIC_METHOD_HEAD(Entity,entity,function) + + DBoDestroyAttribute(PyEntity_destroy ,PyEntity) + + static PyObject* PyEntity_getCell ( PyEntity *self ) + { + Cell* cell = NULL; + HTRY + METHOD_HEAD( "Entity.getCell()" ) + cell = entity->getCell(); + HCATCH + return PyCell_Link( cell ); + } + + PyMethodDef PyEntity_Methods[] = + { { "getCell", (PyCFunction)PyEntity_getCell, METH_NOARGS + , "Returns the entity cell." } + , { "destroy", (PyCFunction)PyEntity_destroy, METH_NOARGS + , "Destroy associated hurricane object, the python object remains." } + , {NULL, NULL, 0, NULL} /* sentinel */ + }; + + + DBoDeleteMethod(Entity) + PyTypeObjectLinkPyType(Entity) + + #else // End of Python Module Code Part. + + PyObject* PyEntity_NEW ( Entity* entity ) + { + if (not entity) { + PyErr_SetString ( HurricaneError, "Invalid Entity (bad occurrence)" ); + return NULL; + } + + Horizontal* horizontal = dynamic_cast(entity); + if (horizontal) return PyHorizontal_Link( horizontal ); + + Vertical* vertical = dynamic_cast(entity); + if (vertical) return PyVertical_Link( vertical ); + + Contact* contact = dynamic_cast(entity); + if (contact) return PyContact_Link( contact ); + + Py_RETURN_NONE; + } + + PyTypeRootObjectDefinitions(Entity) + + #endif // Shared Library Code Part (1). + + } // extern "C". + + + #if !defined(__PYTHON_MODULE__) + + Hurricane::Entity* EntityCast ( PyObject* derivedObject ) { + if (IsPyHorizontal(derivedObject)) return PYHORIZONTAL_O(derivedObject); + if (IsPyVertical (derivedObject)) return PYVERTICAL_O(derivedObject); + if (IsPyContact (derivedObject)) return PYCONTACT_O(derivedObject); + return NULL; + } + + #endif // Shared Library Code Part (2). + + } // Isobar namespace. + +|newpage| + + +4.3 Intermediate Class Header +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Changes from :ref:`3.1 Class Associated Header File` are: + +#. As for ``PyEntity``, and because this is still an abstract class, + there is no ``PyComponent_Link()`` function. + +#. The definition of the ``PyComponent`` |struct| is differs. There is + no ``PyObject_HEAD`` (it is a Python *derived* class). The only + field is of the base class type ``PyEntity`` and for use with + Coriolis macros, **it must** be named ``_baseObject`` (note that + this is *not* a pointer but a whole object). + +.. code-block:: c++ + + #ifndef ISOBAR_PY_COMPONENT_H + #define ISOBAR_PY_COMPONENT_H + + #include "hurricane/isobar/PyEntity.h" + #include "hurricane/Component.h" + + namespace Isobar { + extern "C" { + + typedef struct { + PyEntity _baseObject; + } PyComponent; + + extern PyTypeObject PyTypeComponent; + extern PyMethodDef PyComponent_Methods[]; + extern void PyComponent_LinkPyType (); + + #define IsPyComponent(v) ((v)->ob_type == &PyTypeComponent) + #define PYCOMPONENT(v) ((PyComponent*)(v)) + #define PYCOMPONENT_O(v) (static_cast(PYCOMPONENT(v)->_baseObject._object)) + + } // extern "C". + } // Isobar namespace. + + #endif + + +4.4 Intermediate Class File +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Changes from :ref:`3.2 Class Associated File` are: + +1. Redefinition of the default macros ``ACCESS_OBJECT`` and ``ACCESS_CLASS``. + + * The pointer to the C++ encapsulated object (attribute ``_object``) is hold + by the base class ``PyEntity``. The ``ACCESS_OBJECT`` macro which is tasked + to give access to that attribute is then ``_baseObject._object`` as + ``PyComponent`` is a direct derived class of ``PyEntity``. + + * ``ACCESS_CLASS`` is similar to ``ACCESS_OBJECT`` for accessing the base + class, that is a pointer to ``PyEntity``. + +|newpage| + +2. For defining the ``PyTypeComponent`` Python type, we call a yet different + macro: ``PyTypeInheritedObjectDefinitions()``, dedicated to derived classes. + For this this macro we need to give as argument the derived class and the + base class. + +.. code-block:: c++ + + #include "hurricane/isobar/PyComponent.h" + #include "hurricane/isobar/PyNet.h" + + namespace Isobar { + using namespace Hurricane; + + extern "C" { + + #undef ACCESS_OBJECT + #undef ACCESS_CLASS + #define ACCESS_OBJECT _baseObject._object + #define ACCESS_CLASS(_pyObject) &(_pyObject->_baseObject) + #define METHOD_HEAD(function) GENERIC_METHOD_HEAD(Component,component,function) + + #if defined(__PYTHON_MODULE__) + + DirectGetLongAttribute(PyComponent_getX,getX,PyComponent,Component) + DirectGetLongAttribute(PyComponent_getY,getY,PyComponent,Component) + DBoDestroyAttribute(PyComponent_destroy,PyComponent) + + static PyObject* PyComponent_getNet ( PyComponent *self ) + { + Net* net = NULL; + HTRY + METHOD_HEAD( "Component.getNet()" ) + net = component->getNet( ); + HCATCH + return PyNet_Link( net ); + } + + PyMethodDef PyComponent_Methods[] = + { { "getX" , (PyCFunction)PyComponent_getX , METH_NOARGS + , "Return the Component X value." } + , { "getY" , (PyCFunction)PyComponent_getY , METH_NOARGS + , "Return the Component Y value." } + , { "getNet" , (PyCFunction)PyComponent_getNet , METH_NOARGS + , "Returns the net owning the component." } + , { "destroy", (PyCFunction)PyComponent_destroy, METH_NOARGS + , "destroy associated hurricane object, the python object remains." } + , {NULL, NULL, 0, NULL} /* sentinel */ + }; + + DBoDeleteMethod(Component) + PyTypeObjectLinkPyType(Component) + + #else // Python Module Code Part. + + PyTypeInheritedObjectDefinitions(Component, Entity) + + #endif // Shared Library Code Part. + + } // extern "C". + } // Isobar namespace. + + +4.5 Terminal Class Header +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The contents of this file is almost identical to `4.3 Intermediate Class Header`_, +save for the presence of a ``PyContact_Link()`` function. She is present +at this level because the class is a concrete one and can be instanciated. + +.. code-block:: c++ + + #ifndef ISOBAR_PY_CONTACT_H + #define ISOBAR_PY_CONTACT_H + + #include "hurricane/isobar/PyComponent.h" + #include "hurricane/Contact.h" + + namespace Isobar { + extern "C" { + + typedef struct { + PyComponent _baseObject; + } PyContact; + + extern PyTypeObject PyTypeContact; + extern PyMethodDef PyContact_Methods[]; + extern PyObject* PyContact_Link ( Hurricane::Contact* object ); + extern void PyContact_LinkPyType (); + + #define IsPyContact(v) ( (v)->ob_type == &PyTypeContact ) + #define PYCONTACT(v) ( (PyContact*)(v) ) + #define PYCONTACT_O(v) ( PYCONTACT(v)->_baseObject._baseObject._object ) + + } // extern "C". + } // Isobar namespace. + + #endif // ISOBAR_PY_CONTACT_H + + +4.6 Terminal Class File +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Changes from `4.4 Intermediate Class File`_ are: + +#. As previously, we have to redefine the macros ``ACCESS_OBJECT`` and ``ACCESS_CLASS``. + But, as we are one level deeper into the hierarchy, one more level of + indirection using ``_baseObject`` must be used. + + * ``ACCESS_OBJECT`` becomes ``_baseObject._baseObject._object``. + + * ``ACCESS_CLASS`` becomes ``&(_pyObject->_baseObject._baseObject)``. + +#. For defining the ``PyTypeContact`` Python type, we call again + ``PyTypeInheritedObjectDefinitions()``. It is the same whether the class is + terminal or not. + +#. And, this time, as the Python class is concrete, we call the macro + ``DBoLinkCreateMethod()`` to create the ``PyContact_Link()`` function. + + +.. code-block:: c++ + + #include "hurricane/isobar/PyContact.h" + + namespace Isobar { + using namespace Hurricane; + + extern "C" { + + #undef ACCESS_OBJECT + #undef ACCESS_CLASS + #define ACCESS_OBJECT _baseObject._baseObject._object + #define ACCESS_CLASS(_pyObject) &(_pyObject->_baseObject._baseObject) + #define METHOD_HEAD(function) GENERIC_METHOD_HEAD(Contact,contact,function) + + #if defined(__PYTHON_MODULE__) + + DirectGetLongAttribute(PyContact_getWidth , getWidth , PyContact,Contact) + DirectGetLongAttribute(PyContact_getHeight, getHeight, PyContact,Contact) + DBoDestroyAttribute(PyContact_destroy, PyContact) + + static PyObject* PyContact_create ( PyObject*, PyObject *args ) + { + Contact* contact = NULL; + HTRY + // Usual signature then arguments parsing. + HCATCH + return PyContact_Link(contact); + } + + PyMethodDef PyContact_Methods[] = + { { "create" , (PyCFunction)PyContact_create , METH_VARARGS|METH_STATIC + , "Create a new Contact." } + , { "destroy" , (PyCFunction)PyContact_destroy , METH_NOARGS + , "Destroy associated hurricane object, the python object remains." } + , { "getWidth" , (PyCFunction)PyContact_getWidth , METH_NOARGS + , "Return the contact width." } + , { "getHeight", (PyCFunction)PyContact_getHeight, METH_NOARGS + , "Return the contact height." } + , {NULL, NULL, 0, NULL} /* sentinel */ + }; + + DBoDeleteMethod(Contact) + PyTypeObjectLinkPyType(Contact) + + #else // Python Module Code Part. + + DBoLinkCreateMethod(Contact) + PyTypeInheritedObjectDefinitions(Contact, Component) + + #endif // Shared Library Code Part. + + } // extern "C". + } // Isobar namespace. + + +4.8 Python Module +~~~~~~~~~~~~~~~~~~~ + +.. code-block:: c++ + + DL_EXPORT(void) initHurricane () + { + PyEntity_LinkPyType(); // step 1. + PyComponent_LinkPyType(); + PyContact_LinkPyType(); + + PYTYPE_READY( Entity ) // step 2. + PYTYPE_READY_SUB( Component, Entity ) + PYTYPE_READY_SUB( Contact , Component ) + + __cs.addType( "ent" , &PyTypeEntity , "" , false ); // step 3. + __cs.addType( "comp" , &PyTypeComponent, "", false, "ent" ); + __cs.addType( "contact", &PyTypeContact , "" , false, "comp" ); + + PyObject* module = Py_InitModule( "Hurricane", PyHurricane_Methods ); + if (module == NULL) { + cerr << "[ERROR]\n" + << " Failed to initialize Hurricane module." << endl; + return; + } + + Py_INCREF( &PyTypeContact ); // step 4. + PyModule_AddObject( module, "Contact", (PyObject*)&PyTypeContact ); // step 4. + } diff --git a/documentation/_build/html/_sources/PythonCpp/DBoStandalone.txt b/documentation/_build/html/_sources/PythonCpp/DBoStandalone.txt new file mode 100644 index 00000000..36cdb46e --- /dev/null +++ b/documentation/_build/html/_sources/PythonCpp/DBoStandalone.txt @@ -0,0 +1,395 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +3. Case 1 - DBo Derived, Standalone +====================================== + +As example, we take ``Library``. This a ``DBo`` derived class, but we +choose not to export the parent classes. From Python, it will appear +as a base class. + +.. _3.1: + +.. _3.1 Class Associated Header File: + +3.1 Class Associated Header File +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Here is the typical content of a header file (for ``PyLibrary``): + +.. code-block:: c++ + + #ifndef PY_LIBRARY_H + #define PY_LIBRARY_H + + #include "hurricane/isobar/PyHurricane.h" + #include "hurricane/Library.h" + + namespace Isobar { + using namespace Hurricane; + + extern "C" { + + typedef struct { + PyObject_HEAD + Library* _object; + } PyLibrary; + + extern PyTypeObject PyTypeLibrary; + extern PyMethodDef PyLibrary_Methods[]; + extern PyObject* PyLibrary_Link ( Hurricane::Library* lib ); + extern void PyLibrary_LinkPyType (); + + + #define IsPyLibrary(v) ( (v)->ob_type == &PyTypeLibrary ) + #define PYLIBRARY(v) ( (PyLibrary*)(v) ) + #define PYLIBRARY_O(v) ( PYLIBRARY(v)->_object ) + + } // extern "C". + } // Isobar namespace. + + #endif // PY_LIBRARY_H + + +The code is organized as follow: + +1. It must have, *as the first include* ``PyHurricane.h``, which provides + the complete bunch of macros needed to build the module. Then the include + of the C++ class we want to wrap (``Library.h``). + +2. As Python is written in C, all the wrapper code has to be but inside + an ``extern "C"`` namespace. + +3. Definition of the wrapped |struct|, ``PyLibrary``. It is standard Python here. + + .. note:: + For our set of macros to work, the name of the pointer to the + C++ class must always be **_object**, and the various functions and + macros defined here must take the name of the class (either in + lowercase, camel case or capitals). + +4. Declaration of the Python type ``PyTypeLibrary`` (standard). + +5. Declaration of the Python type table of methods ``PyLibrary_Methods`` (standard). + +.. _3.6: + +6. Declaration of ``PyLibrary_Link()``, helper to convert a C++ ``Lybrary`` into + a ``PyLibrary`` (put in the support shared library). + +7. Declaration of ``PyLibrary_LinkPyType()``, this function setup the class-level + function of the new Python type (here, ``PyTypeLibrary``). + +8. And, lastly, three macros to: + + * ``IsPylibrary()``, know if a Python object is a ``PyLibrary`` + * ``PYLIBRARY()``, force cast (C style) of a ``PyObject`` into a ``PyLibrary``. + * ``PYLIBRARY_O()``, extract the C++ object (``Library*``) from the Python + object (``PyLibrary``). + + +.. _3.2 Class Associated File: + +3.2 Class Associated File +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +3.2.1 Head of the file +------------------------ + +.. code-block:: c++ + + #include "hurricane/isobar/PyLibrary.h" + #include "hurricane/isobar/PyDataBase.h" + #include "hurricane/isobar/PyCell.h" + + namespace Isobar { + using namespace Hurricane; + + extern "C" { + + #define METHOD_HEAD(function) GENERIC_METHOD_HEAD(Library,lib,function) + +As for the header, all the code must be put inside a ``extern "C"`` namespace. + +A convenience macro ``METHOD_HEAD()`` must be defined, by refining +``GENERIC_METHOD_HEAD()``. This macro will be used in the method wrappers +below to cast the ``_object`` field of the Python object into the +appropriate C++ class, this is done using a C-style cast. +The parameters of that macro are: + +#. The C++ encapsulated class (``Library``). +#. The name of the *variable* that will be used to store a pointer + to the C++ working object. +#. The name of the C++ method which is to be wrapped. + + +3.2.2 The Python Module Part +------------------------------ + +First, we have to build all the wrappers to the C++ methods of +the class. For common predicates, accessors, and mutators macros +are supplied. + +Wrapping of the ``Library::getCell()`` method: + +.. code-block:: c++ + + static PyObject* PyLibrary_getCell ( PyLibrary* self, PyObject* args ) + { + Cell* cell = NULL; + + HTRY + METHOD_HEAD( "Library.getCell()" ) + char* name = NULL; + if (PyArg_ParseTuple(args,"s:Library.getCell", &name)) { + cell = lib->getCell( Name(name) ); + } else { + PyErr_SetString( ConstructorError + , "invalid number of parameters for Library::getCell." ); + return NULL; + } + HCATCH + + return PyCell_Link(cell); + } + +Key points about this method wrapper: + +#. The ``HTRY`` / ``HCATCH`` macros provides an insulation from the C++ + exceptions. If one is emitted, it will be catched and transformed in + a Python one. This way, the Python program will be cleanly interrupted + and the usual stack trace displayed. + +#. The returned value of this method is of type ``Cell*``, we have to + transform it into a Python one. This is done with ``PyCell_Link()``. + This macro is supplied by the ``PyCell.h`` header and this is why + it must be included. + +|newpage| + + +Wrapping of the ``Library::create()`` method: + +.. code-block:: c++ + + static PyObject* PyLibrary_create( PyObject*, PyObject* args ) + { + PyObject* arg0; + PyObject* arg1; + Library* library = NULL; + + HTRY + __cs.init( "Library.create" ); // Step (1). + if (not PyArg_ParseTuple( args, "O&O&:Library.create" + , Converter, &arg0 + , Converter, &arg1 )) { // Step (2). + PyErr_SetString( ConstructorError + , "invalid number of parameters for Library constructor." ); + return NULL; + } + if (__cs.getObjectIds() == ":db:string") { // Step (3.a) + DataBase* db = PYDATABASE_O(arg0); + library = Library::create( db, Name(PyString_AsString(arg1)) ); + } else if (__cs.getObjectIds() == ":library:string") { // Step (3.b) + Library* masterLibrary = PYLIBRARY_O(arg0); + library = Library::create( masterLibrary, Name(PyString_AsString(arg1)) ); + } else { + PyErr_SetString( ConstructorError + , "invalid number of parameters for Library constructor." ); + return NULL; + } + HCATCH + + return PyLibrary_Link( library ); + } + +Key point about this constructor: + +#. We want the Python interface to mimic as closely as possible the + C++ API. As such, Python object will be created using a static + ``.create()`` method. So we do not use the usual Python allocation + mechanism. + +#. As it is a *static* method, there is no first argument. + +#. Python do not allow function overload like C++. To emulate that + behavior we use the ``__cs`` object (which is a global variable). + + #. Init/reset the ``__cs`` object: see *step (1)*. + + #. Call ``PyArg_ParseTuple()``, read every mandatory or optional + argument as a Python object (``"O&"``) and use ``Converter`` + on each one. ``Converter`` will determine the real type of + the Python object given as argument by looking at the + encapsulated C++ class. It then update the ``__cs`` object. + Done in *step (2)* + + #. After the call to ``PyArg_ParseTuple()``, the function + ``__cs.getObjectIds()`` will return the *signature* of + the various arguments. In our case, the valid signatures + will be ``":db:string"`` (*step (3.a)*a) and ``":library:string"`` + (*step (3.b)*). + + #. Call the C++ method after extracting the C++ objects from + the Python arguments. Note the use of the ``PYLIBRARY_O()`` + and ``PYDATABSE_O()`` macros to perform the conversion. + +#. Return the result, encapsulated through a call to ``PyLibrary_Link()``. + +|newpage| + + +Wrapping of the ``Library::destroy()`` method: + +.. code-block:: c++ + + DBoDestroyAttribute(PyLibrary_destroy, PyLibrary) + +For C++ classes **that are derived** from ``DBo``, the destroy method +wrapper must be defined using the macro ``DBoDestroyAttribute()``. +This macro implements the bi-directional communication mechanism +using ``Hurricane::Property``. It **must not** be used for +non ``DBo`` derived classes. + + +Defining the method table of the PyLibrary type: + +.. code-block:: c++ + + PyMethodDef PyLibrary_Methods[] = + { { "create" , (PyCFunction)PyLibrary_create , METH_VARARGS|METH_STATIC + , "Creates a new library." } + , { "getCell" , (PyCFunction)PyLibrary_getCell, METH_VARARGS + , "Get the cell of name " } + , { "destroy" , (PyCFunction)PyLibrary_destroy, METH_NOARGS + , "Destroy associated hurricane object The python object remains." } + , {NULL, NULL, 0, NULL} /* sentinel */ + }; + + +This is standard Python/C API. The name of the ``PyMethodDef`` table must be +named from the class: ``PyLibrary_Methods``. + + +3.2.3 Python Type Linking +--------------------------- + +Defining the ``PyTypeLibrary`` class methods and the type linking function. + +Those are the functions for the Python object itself to work, not the +wrapped method from the C++ class. + +.. note:: + At this point we **do not** define the ``PyTypeLibrary`` itself. + Only it's functions and a function to set them up *once* the + type will be defined. + +.. code-block:: c++ + + DBoDeleteMethod(Library) + PyTypeObjectLinkPyType(Library) + + +The macro ``DBoDeleteMethod()`` define the function to delete a +``PyLibrary`` *Python* object. Again, do not mistake it for the deletion +of the C++ class (implemented by ``DBoDestroyAttribute()``). +Here again, ``DBoDeleteMethod()`` is specially tailored for +``DBo`` derived classes. + +.. _PyLibrary_LinkPyType(): + +To define ``PyLibrary_LinkPyType()``, use the ``PyTypeObjectLinkPyType()`` +macro. This macro is specific for ``DBo`` derived classes that are seen as +base classes under Python (i.e. we don't bother exposing the base +class under Python). ``PyLibrary_LinkPyType()`` setup the class functions +in the ``PyTypeLibrary`` type object, it **must** be called in the +Python module this class is part of (in this case: ``PyHurricane.cpp``). +This particular flavor of the macro *will define* and setup the +following class functions: + +* ``PyTypeLibrary.tp_compare`` (defined by the macro). +* ``PyTypeLibrary.tp_repr`` (defined by the macro). +* ``PyTypeLibrary.tp_str`` (defined by the macro). +* ``PyTypeLibrary.tp_hash`` (defined by the macro). +* ``PyTypeLibrary.tp_methods`` sets to the previously defined ``PyLibrary_Methods`` table. +* ``PyTypeLibrary.tp_dealloc`` is set to a function that *must* be named ``PyLibrary_DeAlloc``, + this is what ``DBoDeleteMethod`` does. It is *not* done by ``PyTypeObjectLinkPyType``. + +Defining the ``PyTypeLibrary`` type: + + +3.2.4 The Shared Library Part +------------------------------- + +This part will be put in a separate supporting shared library, allowing +other Python module to link against it (and make use of its symbols). + +.. code-block:: c++ + + DBoLinkCreateMethod(Library) + PyTypeObjectDefinitions(Library) + + +To define ``PyTypeLibrary``, use the ``PyTypeObjectDefinitions()`` macro. +This macro is specific for classes that, as exposed by Python, +are neither *derived* classes nor *base* classes for others. +That is, they are standalone from the inheritance point of view. + +The ``DBoLinkCreateMethod()`` macro will define the ``PyLibrary_Link()`` +function which is responsible for encapsulating a C++ ``Library`` object +into a Python ``PyLibrary`` one. + + +3.3 Python Module (C++ namespace) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +We use the Python module to replicate the C++ *namespace*. Thus, for the +``Hurricane`` namespace we create a Python ``Hurricane`` module which is +defined in the ``PyHurricane.cpp`` file, then we add into that module +dictionary all the Python types encapsulating the C++ classes of that +namespace. + +.. code-block:: c++ + + DL_EXPORT(void) initHurricane () + { + PyLibrary_LinkPyType(); // step 1. + + PYTYPE_READY( Library ) // step 2. + + __cs.addType( "library", &PyTypeLibrary, "", false ); // step 3. + + PyObject* module = Py_InitModule( "Hurricane", PyHurricane_Methods ); + if (module == NULL) { + cerr << "[ERROR]\n" + << " Failed to initialize Hurricane module." << endl; + return; + } + + Py_INCREF( &PyTypeLibrary ); // step 4. + PyModule_AddObject( module, "Library", (PyObject*)&PyTypeLibrary ); // step 4. + } + +The ``initHurricane()`` initialisation function shown above has +been scrubbed of everything not relevant to the ``PyLibrary`` class. +The integration of the ``PyLibrary`` class into the module needs +four steps: + +#. A call to `PyLibrary_LinkPyType()`_ to hook the Python type functions + in the Python type object. + +#. A call to the ``PYTYPE_READY()`` macro (standard Python). + +#. Registering the type into the ``__cs`` object, with ``addType()``. + The arguments are self explanatory, save for the last which is a + boolean to tell if this is a *derived* class or not. + +#. Adding the type object (``PyTypeLibrary``) into the dictionnary of + the module itself. This allow to mimic closely the C++ syntax: + + .. code-block:: python + + import Hurricane + lib = Hurricane.Library.create( db, 'root' ) diff --git a/documentation/_build/html/_sources/PythonCpp/DbU.txt b/documentation/_build/html/_sources/PythonCpp/DbU.txt new file mode 100644 index 00000000..930e76d1 --- /dev/null +++ b/documentation/_build/html/_sources/PythonCpp/DbU.txt @@ -0,0 +1,67 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +6. Encapsulating DbU +====================== + +While ``Hurricane::DbU`` is a class, the ``Hurricane::DbU::Unit`` is only +a ``typedef`` over ``uint64_t``. The ``DbU`` class only provides a set of +static methods to manipulate and convert to and from other units. +At Python level, ``DbU::Unit`` will be stored in plain ``long long``. + +When a ``DbU::Unit`` argument is expected in a Python functions, just use +the ``DbU::Unit PyAny_AsLong( PyObject* )`` function to convert it. + +For example, if we explicit the expension of: + +.. code-block:: c++ + + DirectSetLongAttribute(PyPoint_SetX,setX,PyPoint,Point) + +|newpage| + +We would get: + +.. code-block:: c++ + + static PyObject* PyPoint_setX ( PyPoint *self, PyObject* args ) + { + Point* cobject = static_cast( self->_object ); + if (cobject == NULL) { + PyErr_SetString( ProxyError + , "Attempt to call Point.setX() on an unbound Hurricane object" ); + return NULL; + } + + HTRY + PyObject* arg0 = NULL; + if (not PyArg_ParseTuple( args, "O:Point.setX()", &arg0 )) + return ( NULL ); + cobject->setX( Isobar::PyAny_AsLong(arg0) ); + HCATCH + Py_RETURN_NONE; + } + + +For the other way around, use ``PyObject* PyDbU_FromLong( DbU::Unit )``. + +.. code-block:: c++ + + DirectGetLongAttribute(PyPoint_GetX,getX,PyPoint,Point) + +We would get: + +.. code-block:: c++ + + static PyObject* PyPoint_GetX ( PyPoint *self, PyObject* args ) + { + Point* cobject = static_cast( self->_object ); + if (cobject == NULL) { + PyErr_SetString( ProxyError + , "Attempt to call Point.getX() on an unbound Hurricane object" ); + return NULL; + } + return Isobar::PyDbU_FromLong(cobject->getX()); + } diff --git a/documentation/_build/html/_sources/PythonCpp/Introduction.txt b/documentation/_build/html/_sources/PythonCpp/Introduction.txt new file mode 100644 index 00000000..5a3300e4 --- /dev/null +++ b/documentation/_build/html/_sources/PythonCpp/Introduction.txt @@ -0,0 +1,185 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +1. Introduction +================= + +* This document is written for people already familiar with the + `Python/C API Reference Manual`_. + +* The macros provided by the Hurricane Python/C API are written using + the standard Python C/API. That is, you may not use them and write + directly your functions with the original API or any mix between. + You only have to respect some naming convention. + +* Coriolis is build against Python 2.7. + + +1.1 First, A Disclaimer +~~~~~~~~~~~~~~~~~~~~~~~~~ + +The Hurricane Python/C++ API has been written about ten years ago, at a time +my mastering of template programming was less than complete. This is why this +interface is build with old fashioned C macro instead of C++ template. + +It is my hope that at some point in the future I will have time to completly +rewrite it, borrowing the interface from ``boost::python``. + + +1.2 About Technical Choices +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Some would say, why not use *off the shelf* wrappers like ``swig`` +or ``boost::python``, here are some clues. + +#. **Partial exposure of the C++ class tree.** We expose at Python level + C++ base classes, only if they provides common methods that we want + to see. Otherwise, we just show them as base classes under Python. + For instance ``Library`` is derived from ``DBo``, but we won't see + it under Python. + +#. **Bi-directional communication.** When a Python object is deleted, the + wrapper obviously has a pointer toward the underlying C++ object and + is able to delete it. But, the reverse case can occurs, meaning that + you have a C++ object wrapped in Python and the database delete the + underlying object. The wrapped Python object *must* be informed that + it no longer refer a valid C++ one. Moreover, as we do not control + when Python objects gets deleteds (that is, when their reference count + reaches zero), we can have valid Python object with a dangling + C++ pointer. So our Python objects can be warned by the C++ objects + that they are no longer valid and any other operation than the + deletion should result in a severe non-blocking error. + + To be precise, this apply to persistent object in the C++ database, + like ``Cell``, ``Net``, ``Instance`` or ``Component``. Short lived + objects like ``Box`` or ``Point`` retains the classic Python behavior. + + Another aspect is that, for all derived ``DBo`` objects, one and only + one Python object is associated. For one given ``Instance`` object we + will always return the *same* ``PyInstance`` object, thanks to the + bi-directional link. Obviously, the *reference count* of the + ``PyInstance`` is managed accordingly. This mechanism is implemented + by the ``PyInstance_Link()`` function. + +#. **Linking accross modules.** As far as I understand, the wrappers + are for monolithic libraries. That is, you wrap the entire library + in one go. But Hurricane has a modular design, the core database + then various tools. We do not, and cannot, have one gigantic wrapper + that would encompass all the libraries in one go. We do one Python + module for one C++ library. + + This brings another issue, at Python level this time. The Python + modules for the libraries have to share some functions. Python + provides a mechanism to pass C function pointers accross modules, + but I did found it cumbersome. Instead, all our modules are split + in two: + + * The first part contains the classic Python module code. + * The second part is to be put in a separate dynamic library that + will hold the shared functions. The Python module is dynamically linked + against that library like any other. And any other Python module + requiring the functions will link against the associated shared + library. + + Each module file will be compiled *twice*, once to build the Python + module (``__PYTHON_MODULE`` is defined) and once to build the supporting + shared library (``__PYTHON_MODULE__`` **not** defined). This tricky + double compilation is taken care of though the ``add_python_module`` + ``cmake`` macro. + + For the core Hurricane library we will have: + + * ``Hurricane.so`` the Python module (use with: ``import Hurricane``). + * ``libisobar.so.1.0`` the supporting shared library. + + The ``PyLibrary.cpp`` file will have the following structure: + + .. code-block:: c++ + + #include "hurricane/isobar/PyLibrary.h" + + namespace Isobar { + + extern "C" { + + #if defined(__PYTHON_MODULE__) + + // +=================================================================+ + // | "PyLibrary" Python Module Code Part | + // +=================================================================+ + // + // The classic part of a Python module. Goes into Hurricane.so. + + + #else // End of Python Module Code Part. + + // x=================================================================x + // | "PyLibrary" Shared Library Code Part | + // x=================================================================x + // + // Functions here will be part of the associated shared library and + // made available to all other Python modules. Goes into libisobar.so.1.0 + + + # endif // Shared Library Code Part. + + } // extern "C". + + } // Isobar namespace. + + + This way, we do not rely upon a pointer transmission through Python + modules, but directly uses linker capabilities. + + +1.3 Botched Design +~~~~~~~~~~~~~~~~~~~~ + +The mechanism to compute the signature of a call to a Python function, +the ``__cs`` object, is much too complex and, in fact, not needed. +At some point I may root it out, but it is used in so many places... + +What I should have used the ``"O!"`` capablity of ``PyArg_ParseTuple()``, +like in the code below: + +|newpage| + +.. code-block:: c++ + + static PyObject* PyContact_create ( PyObject*, PyObject *args ) + { + Contact* contact = NULL; + HTRY + PyNet* pyNet = NULL; + PyLayer* pyLayer = NULL; + PyComponent* pyComponent = NULL; + DbU::Unit x = 0; + DbU::Unit y = 0; + DbU::Unit width = 0; + DbU::Unit height = 0; + + if (PyArg_ParseTuple( args, "O!O!ll|ll:Contact.create" + , &PyTypeNet , &pyNet + , &PyTypeLayer, &pyLayer + , &x, &y, &width, &height)) { + contact = Contact::create( PYNET_O(pyNet), PYLAYER_O(pyLayer) + , x, y, width, height ); + } else { + PyErr_Clear(); + if (PyArg_ParseTuple( args, "O!O!ll|ll:Contact.create" + , &PyTypeComponent, &pyComponent + , &PyTypeLayer , &pyLayer + , &x, &y, &width, &height)) { + contact = Contact::create( PYCOMPONENT_O(pyComponent), PYLAYER_O(pyLayer) + , x, y, width, height ); + } else { + PyErr_SetString( ConstructorError + , "invalid number of parameters for Contact constructor." ); + return NULL; + } + } + HCATCH + return PyContact_Link( contact ); + } diff --git a/documentation/_build/html/_sources/PythonCpp/Name.txt b/documentation/_build/html/_sources/PythonCpp/Name.txt new file mode 100644 index 00000000..bb4470e8 --- /dev/null +++ b/documentation/_build/html/_sources/PythonCpp/Name.txt @@ -0,0 +1,9 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +7. No C++ Hurricane::Name encapsulation +========================================== + +To be written. diff --git a/documentation/_build/html/_sources/PythonCpp/NonDBo.txt b/documentation/_build/html/_sources/PythonCpp/NonDBo.txt new file mode 100644 index 00000000..db9f570a --- /dev/null +++ b/documentation/_build/html/_sources/PythonCpp/NonDBo.txt @@ -0,0 +1,171 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +5. Case 3 - Non-DBo Standalone Classe +======================================= + +Let's have a look at the encapsulation of ``Hurricane::Point``. + +Non-BDo derived classes do not support the bi-directionnal communication. +So each Python object is associated with one C++ object. The C++ object +is created and deleted along with the Python one. This behavior implies +that the C++ object is *copy constructible* (which should be the case). + + +5.1 Class Header +~~~~~~~~~~~~~~~~~~ + +Changes from :ref:`3.1 Class Associated Header File`: + +* There is no ``PyPoint_Link()`` function, as it's related to the + bi-directional communication mechanism. + +.. note:: + **About the _object attribute** of the PyPoint. As the C++ object life span + (``Point``) is linked to the Python (``PyPoint``) one, we may have used a + value instead of a pointer. It is best to keep a pointer as the macros + written for ``DBo`` derived classes will remain usables. + + +.. code-block:: c++ + + #ifndef ISOBAR_PY_POINT_H + #define ISOBAR_PY_POINT_H + + #include "hurricane/isobar/PyHurricane.h" + #include "hurricane/Point.h" + + namespace Isobar { + extern "C" { + + typedef struct { + PyObject_HEAD + Hurricane::Point* _object; + } PyPoint; + + extern PyTypeObject PyTypePoint; + extern PyMethodDef PyPoint_Methods[]; + extern void PyPoint_LinkPyType(); + + #define IsPyPoint(v) ( (v)->ob_type == &PyTypePoint ) + #define PYPOINT(v) ( (PyPoint*)(v) ) + #define PYPOINT_O(v) ( PYPOINT(v)->_object ) + + } // extern "C". + } // Isobar namespace. + + #endif // ISOBAR_PY_POINT_H + +|newpage| + + +5.2 Class File +~~~~~~~~~~~~~~~~ + +Changes from :ref:`3.2 Class Associated File`: + +* As there is no ``PyPoint_Link()`` function, there is no call to any + flavor of the ``DBoLinkcreatemethod()`` macro (obvious as it's *not* + a ``DBo``). + +* To use the standard Python constructor, we have to define ``PyPoint_NEW()`` + and ``PyPoint_Init()`` functions, I'm not absolutely certain that the later + needs to be defined (that part is still not clear to me from the Python doc). + +* As it's not a ``DBo`` there is no ``destroy()`` method, so no call to + ``DirectDestroyMethod()`` + +* Lastly, as this object has a ``PyPoint_NEW()`` (field ``tp_new``) and + a ``PyPoint_Init()`` (field ``tp_init``) we have to use the macro + ``PyTypeObjectLinkPyTypeNewInit()`` to define ``PyPoint_LinkPyType()``. + + +.. code-block:: c++ + + #include "hurricane/isobar/PyPoint.h" + + namespace Isobar { + using namespace Hurricane; + + extern "C" { + + #define METHOD_HEAD(function) GENERIC_METHOD_HEAD(Point,point,function) + + #if defined(__PYTHON_MODULE__) + + static PyObject* PyPoint_NEW ( PyObject* module, PyObject *args ) + { + Point* point = NULL; + HTRY + PyObject* arg0 = NULL; + PyObject* arg1 = NULL; + + __cs.init( "Point.Point" ); + if (not PyArg_ParseTuple( args,"|O&O&:Point.Point" + , Converter,&arg0 + , Converter,&arg1 )) { + PyErr_SetString ( ConstructorError + , "invalid number of parameters for Point constructor." ); + return NULL; + } + + if (__cs.getObjectIds() == "") + { point = new Point()); } + else if (__cs.getObjectIds() == ":point") + { point = new Point( *PYPOINT_O(arg0) ); } + else if (__cs.getObjectIds() == ":int:int") + { point = new Point( PyAny_AsLong(arg0), PyAny_AsLong(arg1) ); } + else { + PyErr_SetString ( ConstructorError + , "invalid number of parameters for Point constructor." ); + return NULL; + } + + PyPoint* pyPoint = PyObject_NEW( PyPoint, &PyTypePoint ); + if (pyPoint == NULL) { delete point; return NULL; } + pyPoint->_object = point; + HCATCH + + return (PyObject*)pyPoint; + } + + static int PyPoint_Init ( PyPoint* self, PyObject* args, PyObject* kwargs ) + { return 0; } + + DirectGetLongAttribute(PyPoint_getX,getX,PyPoint,Point) + DirectGetLongAttribute(PyPoint_getY,getY,PyPoint,Point) + DirectSetLongAttribute(PyPoint_SetX,setX,PyPoint,Point) + DirectSetLongAttribute(PyPoint_SetY,setY,PyPoint,Point) + + PyMethodDef PyPoint_Methods[] = + { { "getX" , (PyCFunction)PyPoint_getX , METH_NOARGS + , "Return the Point X value." } + , { "getY" , (PyCFunction)PyPoint_getY , METH_NOARGS + , "Return the Point Y value." } + , { "setX" , (PyCFunction)PyPoint_SetX , METH_VARARGS + , "Modify the Point X value." } + , { "setY" , (PyCFunction)PyPoint_SetY , METH_VARARGS + , "Modify the Point Y value." } + , {NULL, NULL, 0, NULL} /* sentinel */ + }; + + DirectDeleteMethod(PyPoint_DeAlloc,PyPoint) + PyTypeObjectLinkPyTypeNewInit(Point) + + #else // Python Module Code Part. + + PyTypeObjectDefinitions(Point) + + #endif // Shared Library Code Part. + + } // extern "C". + } // Isobar namespace. + + +5.2 Class File +~~~~~~~~~~~~~~~~ + +To put it bluntly, there is no difference in the Python module for +a standalone ``DBo`` class and a non-``DBo`` class. diff --git a/documentation/_build/html/_sources/PythonCpp/index.txt b/documentation/_build/html/_sources/PythonCpp/index.txt new file mode 100644 index 00000000..cb5575c2 --- /dev/null +++ b/documentation/_build/html/_sources/PythonCpp/index.txt @@ -0,0 +1,23 @@ +.. -*- mode: rst; explicit-buffer-name: "index.rst" -*- + +.. include:: ../etc/definitions.rst + + +=================================== +Hurricane Python/C++ API Tutorial +=================================== + +Printable version of this document `PythonCpp.pdf <../../../pdf/main/PythonCpp.pdf>`_. + + +.. toctree:: + :maxdepth: 2 + + Introduction.rst + Configuration.rst + DBoStandalone.rst + DBoHierarchy.rst + NonDBo.rst + DbU.rst + Name.rst + diff --git a/documentation/_build/html/_sources/RDS/RDSpage.txt b/documentation/_build/html/_sources/RDS/RDSpage.txt new file mode 100644 index 00000000..be3aa644 --- /dev/null +++ b/documentation/_build/html/_sources/RDS/RDSpage.txt @@ -0,0 +1,474 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +.. Tools +.. |ocp| replace:: ``ocp`` +.. |nero| replace:: ``nero`` +.. |ring| replace:: ``ring`` +.. |s2r| replace:: ``s2r`` +.. |druc| replace:: ``druc`` +.. |graal| replace:: ``graal`` +.. |cougar| replace:: ``cougar`` +.. |cif| replace:: ``cif`` +.. |gds| replace:: ``gds`` +.. |phseg| replace:: ``phseg`` +.. |phvia| replace:: ``phvia`` + +.. RDS file syntax. +.. |MBK_TO_RDS_SEGMENT| replace:: ``MBK_TO_RDS_SEGMENT`` +.. |MBK_TO_RDS_VIA| replace:: ``MBK_TO_RDS_VIA`` +.. |MBK_TO_RDS_BIGVIA_HOLE| replace:: ``MBK_TO_RDS_BIGVIA_HOLE`` +.. |MBK_TO_RDS_BIGVIA_METAL| replace:: ``MBK_TO_RDS_BIGVIA_METAL`` +.. |MBK_WIRESETTING| replace:: ``MBK_WIRESETTING`` +.. |ALL| replace:: ``ALL`` +.. |DRC| replace:: ``DRC`` +.. |EXT| replace:: ``EXT`` +.. |VW| replace:: ``VW`` +.. |LCW| replace:: ``LCW`` +.. |RCW| replace:: ``RCW`` +.. |ALUx| replace:: ``ALUx`` +.. |CALUx| replace:: ``CALUx`` +.. |TALUx| replace:: ``TALUx`` +.. |ALU1| replace:: ``ALU1`` +.. |POLY| replace:: ``POLY`` +.. |NTIE| replace:: ``NTIE`` +.. |PTIE| replace:: ``PTIE`` +.. |NDIF| replace:: ``NDIF`` +.. |PDIF| replace:: ``PDIF`` +.. |PWELL| replace:: ``PWELL`` +.. |NTRANS| replace:: ``NTRANS`` +.. |PTRANS| replace:: ``PTRANS`` +.. |CONT_DIF_N| replace:: ``CONT_DIF_N`` +.. |CONT_DIF_P| replace:: ``CONT_DIF_P`` +.. |CONT_BODY_N| replace:: ``CONT_BODY_N`` +.. |CONT_BODY_P| replace:: ``CONT_BODY_P`` +.. |CONT_POLY| replace:: ``CONT_POLY`` +.. |CONT_VIA| replace:: ``CONT_VIA`` +.. |CONT_VIAx| replace:: ``CONT_VIAx`` +.. |C_X_N| replace:: ``C_X_N`` +.. |C_X_P| replace:: ``C_X_P`` +.. |RDS_NDIF| replace:: ``RDS_NDIF`` +.. |RDS_NIMP| replace:: ``RDS_NIMP`` +.. |RDS_ACTIV| replace:: ``RDS_ACTIV`` +.. |RDS_GATE| replace:: ``RDS_GATE`` +.. |RDS_POLY| replace:: ``RDS_POLY`` +.. |RDS_ALU1| replace:: ``RDS_ALU1`` + +.. Stand-alone images. +.. |RDS_VW| image:: ./images/RDS_VW.png + :alt: RDS Variable Width Rule + :align: middle + :width: 60% + +.. |RDS_LCW| image:: ./images/RDS_LCW.png + :alt: RDS Left Constant Width Rule + :align: middle + :width: 40% + +.. |SegmentOrientation| image:: ./images/SegmentOrientation.png + :alt: Symbolic Segment Orientations + :align: middle + :width: 50% + +.. |BIGVIA_1| image:: ./images/bigvia-1.png + :alt: BIGVIA holes + :align: middle + :width: 40% + +.. |BIGVIA_2| image:: ./images/bigvia-2.png + :alt: BIGVIA holes overlap + :align: middle + :width: 40% + + + +|newpage| + + +Symbolic Layout +=============== + +Symbolic Components +~~~~~~~~~~~~~~~~~~~ + +A symbolic layout is, in practice, made of only of three objects: + +=========================== ============ =================================================== +Object |MBK| Explanation +=========================== ============ =================================================== +Segments |phseg| Oriented segments with a width and an orientation. +VIAs & contacts |phvia| Boils down to just a point. +Big VIAs & Big Contacts |phvia| Point with a width and a height + That is a rectangle of width by height centered + on the VIA coordinates. +=========================== ============ =================================================== + +Each of thoses objects is associated to a *symbolic layer* which will +control how the object is translated in many *real rectangles*. + ++---------+---------------+-------------+--------------------------------------------+ +| |MBK| | Layer Name | Usable By | Usage | ++=========+===============+=============+============================================+ +| |phseg| | |NWELL| | Segment | N Well | +| +---------------+-------------+--------------------------------------------+ +| | |PWELL| | Segment | P Well | +| +---------------+-------------+--------------------------------------------+ +| | |NDIF| | Segment | N Diffusion | +| +---------------+-------------+--------------------------------------------+ +| | |PDIF| | Segment | P Diffusion | +| +---------------+-------------+--------------------------------------------+ +| | |NTIE| | Segment | N Tie | +| +---------------+-------------+--------------------------------------------+ +| | |PTIE| | Segment | P Tie | +| +---------------+-------------+--------------------------------------------+ +| | |NTRANS| | Segment | N transistor, in |Alliance|, a transistor | +| | | | is represented as a segment (it's grid). | +| +---------------+-------------+--------------------------------------------+ +| | |PTRANS| | Segment | P transistor | +| +---------------+-------------+--------------------------------------------+ +| | |POLY| | Segment | Polysilicium | +| +---------------+-------------+--------------------------------------------+ +| | |ALUx| | Segment | Metal level *x* | +| +---------------+-------------+--------------------------------------------+ +| | |CALUx| | Segment | Metal level *x*, that can be used by the | +| | | | upper hierarchical level as a connector. | +| | | | From the layout point of view it is the | +| | | | same as |ALUx|. | +| +---------------+-------------+--------------------------------------------+ +| | |TALUx| | Segment | Blockage for metal level *x*. Will | +| | | | diseappear in the real layout as it is an | +| | | | information for the P&R tools only. | ++---------+---------------+-------------+--------------------------------------------+ +| |phvia| | |CONT_BODY_N| | VIA, BIGVIA | Contact to N Well | +| +---------------+-------------+--------------------------------------------+ +| | |CONT_BODY_P| | VIA, BIGVIA | Contact to P Well | +| +---------------+-------------+--------------------------------------------+ +| | |CONT_DIF_N| | VIA, BIGVIA | Contact to N Diffusion | +| +---------------+-------------+--------------------------------------------+ +| | |CONT_DIF_P| | VIA, BIGVIA | Contact to P Diffusion | +| +---------------+-------------+--------------------------------------------+ +| | |CONT_POLY| | VIA, BIGVIA | Contact to polysilicium | +| +---------------+-------------+--------------------------------------------+ +| | |CONT_VIA| | VIA, BIGVIA | Contact between metal1 and metal2 | +| +---------------+-------------+--------------------------------------------+ +| | |CONT_VIAx| | VIA, BIGVIA | Contact between metal *x* and metal *x+1*. | +| | | | The index is the the one of the bottom | +| | | | metal of the VIA. | +| +---------------+-------------+--------------------------------------------+ +| | |C_X_N| | VIA | N transistor corner, to build transistor | +| | | | bend. Not used anymore in recent technos | +| +---------------+-------------+--------------------------------------------+ +| | |C_X_P| | VIA | P transistor corner, to build transistor | +| | | | bend. Not used anymore in recent technos | ++---------+---------------+-------------+--------------------------------------------+ + +.. note:: + Not all association of object and symbolic layers are meaningful. + For instance you cannot associate a contact to a ``NTRANS`` layer. + +.. note:: + The symbolic layer associated with blockages is prefixed by a ``T``, + for *transparency*, which may seems silly. It is for historical reasons, + it started as a true transparency, but at some point we had to invert + the meaning (blockage) with the rise of over-the-cell routing, but the + name stuck... + + + +Symbolic Segments +~~~~~~~~~~~~~~~~~ + +In |Alliance|, segments are oriented (up, down, left, right). This disambiguate +the left or right side when using the ``LCW`` and ``RCW`` rules in the |RDS| file. +It allows to generate, if needed, asymetric object in the real layout file. + +|bcenter| |SegmentOrientation| |ecenter| + +|newpage| + + +The RDS File +============ + + +The RDS file control how a symbolic layout is transformed into it's real +conterpart. + +.. note:: **Unit used inside the RDS file:** all units are expressed in micrometers. + +Alliance tools relying on the RDS file, and what layers are active for them: + +======================================= ============= =============================== +Tool Name RDS Flags +======================================= ============= =============================== +Layout editor |graal| |ALL| +Design Rule Checker |druc| |ALL|, |DRC| +Electrical extractor |cougar| |ALL|, |EXT| +The symbolic to real layout translator |s2r| |ALL| +======================================= ============= =============================== + + +Physical Grid & Lambda Value +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +RDS file: :: + + DEFINE PHYSICAL_GRID 0.005 + DEFINE LAMBDA 0.09 + +Tells that the physical grid (founder grid) step is 0.005µm and the lambda has +a value of 0.09µm. That is, one lambda is 18 grid steps. + +We can distinguish two kind of |RDS| files: + +* The *1µm* kind, odd segment widths and coordinates are allowed, but the ``LAMBDA`` + value **must** represent an *even* number of foundry grid step. +* The *2µm* kind, segments widths and coordinates must all be even. And in that case + the ``LAMBDA`` value can be any multiple of the foundry grid. + + +The |MBK_TO_RDS_SEGMENT| table +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The |MBK_TO_RDS_SEGMENT| table control the way segments are translated into +real rectangles. Be aware that we are translating *segments* and not *rectangles*. +Segments are defined by their axis (source & target points) and their width. +The geometrical transformations are described according to that model. +Obviously, they are either horizontal or vertical. + +The translation method of a symbolic segment is as follow: + +1. The segment is translated into one or more physical rectangles. + The generated rectangles depends on the tool which is actually + using |RDS| and the flag for the considered real layer. + For instance, real layers flagged with |DRC| will be generated + for |s2r| (for the |cif| or |gds|) and |druc|, but will not + be shown under |graal|. + +2. Translation into one real layer. *First* the source & target coordinates and width + of the symbolic segment are multiplied by the ``LAMBDA`` value to obtain a real + segment. *Then* one of the |VW|, |LCW| or |RCW| transformation is applied to + that segment to get the final real rectangle. + + * |VW| for Variable Width, expand the real layer staying centered from the + original one. In those rules, the third number is not used, it is only here + to make the life easier for the parser... + + |bcenter| |RDS_VW| |ecenter| + + * |LCW| or |RCW| for Left/Right Constant Width, create an off-center rectangle + of fixed width relatively to the real segment. Note that the ``SP`` number + is the distance *between the edge* of the real segment and the edge of the + generated real rectangle (*not* from the axis). It is often zero. + + |bcenter| |RDS_LCW| |ecenter| + + +|newpage| + +Examples: :: + + TABLE MBK_TO_RDS_SEGMENT + + # (Case 1) + ALU1 RDS_ALU1 VW 0.18 0.09 0.0 ALL + + # (Case 2) + NDIF RDS_NDIF VW 0.18 0.0 0.0 ALL \ + RDS_ACTIV VW 0.18 0.0 0.0 DRC \ + RDS_NIMP VW 0.36 0.36 0.0 DRC + + # (Case 3) + NTRANS RDS_POLY VW 0.27 0.00 0.0 ALL \ + RDS_GATE VW 0.27 0.00 0.0 DRC \ + RDS_NDIF LCW 0.0 0.27 0.0 EXT \ + RDS_NDIF RCW 0.0 0.27 0.0 EXT \ + RDS_NDIF VW 0.0 0.72 0.0 DRC \ + RDS_ACTIV VW 0.0 0.72 0.0 ALL \ + RDS_NIMP VW 0.18 1.26 0.0 DRC + + END + +:fboxtt:`Case 1` the |ALU1| is translated in exacltly one real rectangle of +|RDS_ALU1|, both ends are extended by 0.18µm and it's width is increased +by 0.09µm. + +:fboxtt:`Case 2` the |NDIF| will be translated into only one segment +under |graal|, for symbolic visualization. And into three real rectangles +for |s2r| and |druc|. + +:fboxtt:`Case 3` the |NTRANS|, associated to a transistor is a little bit +more complex, the generated shapes are different for the extractor |cougar| +in one hand, and for both |druc| & |s2r| in the other hand. + +* For the extractor (|EXT| & |ALL| flags) there will be four rectangles + generateds: + + 1. The gate (|RDS_GATE|) + 2. The left diffusion of the transistor (source or drain) (|RDS_NDIF|). + 3. The right diffusion of the transistor (drain or source) (|RDS_NDIF|). + 4. The active area (|RDS_ACTIV|). + + As the extractor must kept separate the source and the drain of the transistor, + they are generated as two offset rectangles, using the |LCW| and |RCW| directives. + +* For |s2r| and |druc| (|DRC| and |ALL|), five rectangles are generateds: + + 1. The poly (|RDS_POLY|). + 2. The gate (|RDS_GATE|). + 3. The diffusion, as one rectangle that covers both the |LCW| and the |RCW| (|RDS_NDIF|). + 4. The active area (|RDS_ACTIV|). + 5. The N implantation (|RDS_NIMP|). + + In the layout send to the foundry, the source & drain are draw as one rectangle + across the gate area (the transistor being defined by the intersection of both + rectangles). + + +|newpage| + +The |MBK_TO_RDS_VIA| table +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This table is to translate *default* VIAs into real via. In the symbolic layout +the default VIA is simply a point and a set of layers. All layers are converted +in squares shapes centered on the VIA coordinate. The one dimension given is the +size of the side of that square. + +Note that although we are refering to VIAs, which for the purists are between two +metal layers, this table also describe *contacts*. + +Example: :: + + TABLE MBK_TO_RDS_VIA + + CONT_DIF_P RDS_PDIF 0.54 ALL \ + RDS_CONT 0.18 ALL \ + RDS_ALU1 0.36 ALL \ + RDS_ACTIV 0.54 DRC \ + RDS_PIMP 0.90 DRC + + CONT_POLY RDS_POLY 0.54 ALL \ + RDS_CONT 0.18 ALL \ + RDS_ALU1 0.36 ALL + + CONT_VIA RDS_ALU1 0.45 ALL \ + RDS_VIA1 0.27 ALL \ + RDS_ALU2 0.45 ALL + + END + +.. note:: **In CONT_DIF_P** you may see that only three layers will be shown under + |graal|, but five will be generated in the |gds| layout. + + +The |MBK_TO_RDS_BIGVIA_HOLE| table +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +In |s2r|, when generating BIGVIAs, the matrix of holes they contains is +not draw relative to the position of the BIGVIA itself, but on a grid which +is common througout all the design real layout. This is to allow overlap +between two BIGVIA without risking the holes matrix to be not exactly overlapping. +As a consequence, when visualizing the |gds| file, the holes may not be centerend +inside one individual BIGVIA. + +The |MBK_TO_RDS_BIGVIA_HOLE| table define the global hole matrix for the whole +design. The first number is the individual hole side and the second the grid step +(edge to edge). The figure below show the hole generation. + +|bcenter| |BIGVIA_1| |ecenter| + +Example of BIGVIA overlap: + +|bcenter| |BIGVIA_2| |ecenter| + +Example: :: + + TABLE MBK_TO_RDS_BIGVIA_HOLE + + CONT_VIA RDS_VIA1 0.27 0.27 ALL + CONT_VIA2 RDS_VIA2 0.27 0.27 ALL + CONT_VIA3 RDS_VIA3 0.27 0.27 ALL + CONT_VIA4 RDS_VIA4 0.27 0.27 ALL + CONT_VIA5 RDS_VIA5 0.36 0.36 ALL + + END + +.. note:: **BIGVIA demotion.** If the size of the bigvia is too small, there is + a possibility that no hole from the global matrix will be under it. + To avoid that case, if the either side of the BIGVIA is less than + ``1.5 * step``, the BIGVIA is demoted to a simple VIA. + + +The |MBK_TO_RDS_BIGVIA_METAL| table +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This table describe how the metal part of a BIGVIA is expanded (for the hole +part, see the previous table |MBK_TO_RDS_BIGVIA_HOLE|). The rule give for each +metal: + +1. The *delta-with* (have to ask Franck). +2. The *overhang*, the length the real rectangle is expanded on each side from + the symbolic rectange. + +Example: :: + + TABLE MBK_TO_RDS_BIGVIA_METAL + + CONT_VIA RDS_ALU1 0.0 0.09 ALL \ + RDS_ALU2 0.0 0.09 ALL + + CONT_VIA2 RDS_ALU2 0.0 0.09 ALL \ + RDS_ALU3 0.0 0.09 ALL + + CONT_VIA3 RDS_ALU3 0.0 0.09 ALL \ + RDS_ALU4 0.0 0.09 ALL + + CONT_VIA4 RDS_ALU4 0.0 0.09 ALL \ + RDS_ALU5 0.0 0.09 ALL + + CONT_VIA5 RDS_ALU5 0.0 0.09 ALL \ + RDS_ALU6 0.0 0.18 ALL + END + + +The |MBK_WIRESETTING| table +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +From a strict standpoint this table shouldn't be here but put in a separate +configuration file, because it contains informations only used by the symbolic +layout tools (|ocp|, |nero|, |ring|). + +This table defines the cell gauge the routing pitch and minimal (symbolic) +wire width and minimal spacing for the routers. They are patly redundant. + +Example: :: + + TABLE MBK_WIRESETTING + + X_GRID 10 + Y_GRID 10 + Y_SLICE 100 + WIDTH_VDD 12 + WIDTH_VSS 12 + TRACK_WIDTH_ALU8 0 + TRACK_WIDTH_ALU7 4 + TRACK_WIDTH_ALU6 4 + TRACK_WIDTH_ALU5 4 + TRACK_WIDTH_ALU4 3 + TRACK_WIDTH_ALU3 3 + TRACK_WIDTH_ALU2 3 + TRACK_WIDTH_ALU1 3 + TRACK_SPACING_ALU8 0 + TRACK_SPACING_ALU7 4 + TRACK_SPACING_ALU6 4 + TRACK_SPACING_ALU5 4 + TRACK_SPACING_ALU4 4 + TRACK_SPACING_ALU3 4 + TRACK_SPACING_ALU2 4 + TRACK_SPACING_ALU1 3 + + END + diff --git a/documentation/_build/html/_sources/RDS/index.txt b/documentation/_build/html/_sources/RDS/index.txt new file mode 100644 index 00000000..757d647e --- /dev/null +++ b/documentation/_build/html/_sources/RDS/index.txt @@ -0,0 +1,26 @@ +.. -*- mode: rst; explicit-buffer-name: "index.rst" -*- + +.. include:: ../etc/definitions.rst + + +:Date: 26, september 2014 +:Authors: Jean-Paul Chaput +:Contact: +:Version: 0.2 + + +**Disclaimer:** This document is still far from complete. + + +========================================= +Symbolic to Real Conversion in Alliance +========================================= + +Printable version of this document `RDS.pdf <../../../pdf/main/RDS.pdf>`_. + + +.. toctree:: + :maxdepth: 2 + + RDSpage.rst + diff --git a/documentation/_build/html/_sources/Stratus/Stratus.txt b/documentation/_build/html/_sources/Stratus/Stratus.txt new file mode 100644 index 00000000..f61b2dac --- /dev/null +++ b/documentation/_build/html/_sources/Stratus/Stratus.txt @@ -0,0 +1,11 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +=================== +Stratus Reference +=================== + +The Stratus Language reference is generated by LaTeX2HTML_ and is +available here: `Stratus `_ diff --git a/documentation/_build/html/_sources/Unicorn/Unicorn.txt b/documentation/_build/html/_sources/Unicorn/Unicorn.txt new file mode 100644 index 00000000..c972e5f0 --- /dev/null +++ b/documentation/_build/html/_sources/Unicorn/Unicorn.txt @@ -0,0 +1,11 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +=================== +Unicorn Reference +=================== + +The Unicorn C++ API reference is generated by Doxygen_ and is +available here: `Unicorn `_ diff --git a/documentation/_build/html/_sources/UsersGuide/Configuration.txt b/documentation/_build/html/_sources/UsersGuide/Configuration.txt new file mode 100644 index 00000000..e2da0de5 --- /dev/null +++ b/documentation/_build/html/_sources/UsersGuide/Configuration.txt @@ -0,0 +1,342 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + +.. URLs that changes between the various backends. +.. _Coriolis Tools Documentation: file:///usr/share/doc/coriolis2/index.html + + + +.. |CoriolisSoftSchema| image:: ./images/Coriolis-Soft-Schema.png + :alt: Coriolis Software Schematic + :align: middle + :width: 60% + +|newpage| + + +Coriolis Configuration & Initialisation +======================================= + + +General Software Architecture +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +|Coriolis| has been build with respect of the classical paradigm that the +computational instensive parts have been written in C++, and almost +everything else in |Python|. To build the |Python| interface we used +two methods: + +* For self-contained modules :cb:`boost::python` (mainly in :cb:`vlsisapd`). +* For all modules based on |Hurricane|, we created our own wrappers due + to very specific requirements such as shared functions between modules + or C++/|Python| secure bi-directional object deletion. + +.. note:: **Python Documentation:** + Most of the documentation is related to the C++ API and implemetation of + the tools. However, the |Python| bindings have been created so they + mimic *as closely as possible* the C++ interface, so the documentation + applies to both languages with only minor syntactic changes. + +|bcenter| |CoriolisSoftSchema| |ecenter| + +All configuration & initialization files are Python scripts, despite their +|dot_conf| extention. From a syntactic point of view, there is no difference +between the system-wide configuration files and the user's configuration, +they may use the same Python helpers. +|medskip| + +Configuration is done in two stages: + +#. Selecting the symbolic technology. +#. Loading the complete configuration for the given technology. + +|newpage| + + +First Stage: Symbolic Technology Selection +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +|noindent| +The initialization process is done by executing, in order, the following +file(s): + ++-------+----------------------------------+----------------------------------------------+ +| Order | Meaning | File | ++=======+==================================+==============================================+ +| **1** | The system setting | :cb:`/etc/coriolis2/techno.conf` | ++-------+----------------------------------+----------------------------------------------+ +| **2** | The user's global setting | :cb:`${HOME}/.coriolis2/techno.py` | ++-------+----------------------------------+----------------------------------------------+ +| **3** | The user's local setting | :cb:`/.coriolis2/techno.py` | ++-------+----------------------------------+----------------------------------------------+ + +Thoses files must provides only two variables, the name of the symbolic technology +and the one of the real technology. For example: :: + + # -*- Mode:Python -*- + + symbolicTechno = 'cmos' + realTechno = 'hcmos9' + + +Second Stage: Technology Configuration Loading +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +|noindent| +The :cb:`TECHNO` variable is set by the first stage and it's the name of the +symbolic technology. A directory of that name, with all the configuration files, +must exists in the configuration directory. In addition to the technology-specific +directories, a :cb:`common/` directory is there to provides a trunk for all the +identical datas across the various technologies. The initialization process is done +by executing, in order, the following file(s): + ++-------+----------------------------------+----------------------------------------------+ +| Order | Meaning | File | ++=======+==================================+==============================================+ +| **1** | The system initialization | :cb:`/etc/coriolis2//.conf` | ++-------+----------------------------------+----------------------------------------------+ +| **2** | The user's global initialization | :cb:`${HOME}/.coriolis2/settings.py` | ++-------+----------------------------------+----------------------------------------------+ +| **3** | The user's local initialization | :cb:`/.coriolis2/settings.py` | ++-------+----------------------------------+----------------------------------------------+ + +.. note:: *The loading policy is not hard-coded.* It is implemented + at Python level in :cb:`/etc/coriolis2/coriolisInit.py`, and thus may be easily be + amended to whatever site policy. + + The truly mandatory requirement is the existence of :cb:`coriolisInit.py` + which *must* contain a :cb:`coriolisConfigure()` function with no argument. + + +Configuration Helpers +~~~~~~~~~~~~~~~~~~~~~ + +To ease the writing of configuration files, a set of small helpers +is available. They allow to setup the configuration parameters through +simple assembly of tuples. The helpers are installed under the directory: :: + + /etc/coriolis2/ + +Where :cb:`/` is the root of the installation. + +|newpage| + + +.. _Alliance Helper: + +|Alliance| Helper +----------------- + +The configuration file must provide a :cb:`allianceConfig` tuple of +the form: :: + + cellsTop = '/usr/share/alliance/cells/' + + allianceConfig = \ + ( ( 'SYMBOLIC_TECHNOLOGY', helpers.sysConfDir+'/technology.symbolic.xml' ) + , ( 'REAL_TECHNOLOGY' , helpers.sysConfDir+'/technology.cmos130.s2r.xml') + , ( 'DISPLAY' , helpers.sysConfDir+'/display.xml' ) + , ( 'CATALOG' , 'CATAL') + , ( 'WORKING_LIBRARY' , '.') + , ( 'SYSTEM_LIBRARY' , ( (cellsTop+'sxlib' , Environment.Append) + , (cellsTop+'dp_sxlib', Environment.Append) + , (cellsTop+'ramlib' , Environment.Append) + , (cellsTop+'romlib' , Environment.Append) + , (cellsTop+'rflib' , Environment.Append) + , (cellsTop+'rf2lib' , Environment.Append) + , (cellsTop+'pxlib' , Environment.Append) ) ) + , ( 'SCALE_X' , 100) + , ( 'IN_LO' , 'vst') + , ( 'IN_PH' , 'ap') + , ( 'OUT_LO' , 'vst') + , ( 'OUT_PH' , 'ap') + , ( 'POWER' , 'vdd') + , ( 'GROUND' , 'vss') + , ( 'CLOCK' , '^ck.*') + , ( 'BLOCKAGE' , '^blockageNet*') + ) + + +|noindent| The example above shows the system configuration file, with all the +available settings. Some important remarks about thoses settings: + +* In it's configuration file, the user do not need to redefine all the settings, + just the one he wants to change. In most of the cases, the ``SYSTEM_LIBRARY``, + the ``WORKING_LIBRARY`` and the special net names (at this point there is not + much alternatives for the others settings). + +* ``SYSTEM_LIBRARY`` setting: Setting up the library search path. + Each library entry in the tuple will be added to the search path according + to the second parameter: + + * :cb:`Environment::Append`: append to the search path. + + * :cb:`Environment::Prepend`: insert in head of the search path. + + * :cb:`Environment::Replace`: look for a library of the same name and replace + it, whithout changing the search path order. If no library of that name + already exists, it is appended. + + A library is identified by it's name, this name is the last component of the + path name. For instance: ``/soc/alliance/sxlib`` will be named ``sxlib``. + Implementing the |Alliance| specification, when looking for a |Cell| ``name``, + the system will browse sequentially trought the library list and returns + the first |Cell| whose name match. + +* For ``POWER``, ``GROUND``, ``CLOCK`` and ``BLOCKAGE`` net names, a regular + expression (|GNU| regexp) is expected. + +* The ``helpers.sysConfDir`` variable is supplied by the helpers, it is the + directory in which the system-wide configuration files are locateds. + For a standard installation it would be: ``/soc/coriolis2``. + +.. * Trick and naming convention about ``SYMBOLIC_TECHNOLOGY``, ``REAL_TECHNOLOGY`` +.. and ``DISPLAY``. In the previous releases, thoses files where to read by +.. XML parsers, and still do if you triggers the XML compatibility mode. +.. But now, they have Python conterparts. In the configuration files, you +.. still have to name them as XML files, the Python file name will be +.. deduced from this one with thoses two translation rules: +.. +.. #. In the filename, all dots, except for the last (the file extention), +.. are replaced by underscores. +.. +.. #. The ``.xml`` extention is substituted by a ``.conf``. +.. +.. For the symbolic technology, it would give: :: +.. +.. /soc/coriolis2/technology.symbolic.xml +.. --> /soc/coriolis2/technology_symbolic.conf + +A typical user's configuration file would be: :: + + import os + + homeDir = os.getenv('HOME') + + allianceConfig = \ + ( ('WORKING_LIBRARY' , homeDir+'/worklib') + , ('SYSTEM_LIBRARY' , ( (homeDir+'/mylib', Environment.Append) ) ) + , ('POWER' , 'vdd.*') + , ('GROUND' , 'vss.*') + ) + + +Tools Configuration Helpers +--------------------------- + +All the tools uses the same helper to load their configuration (a.k.a. +*Configuration Helper*). Currently the following configuration system-wide +configuration files are defined: + +* :cb:`misc.conf`: commons settings or not belonging specifically to a tool. +* :cb:`etesian.conf`: for the |Etesian| tool. +* :cb:`kite.conf`: for the |Kite| tool. +* :cb:`stratus1.conf`: for the |stratus1| tool. + +Here is the contents of :cb:`etesian.conf`: :: + + # Etesian parameters. + parametersTable = \ + ( ('etesian.aspectRatio' , TypePercentage, 100 , { 'min':10, 'max':1000 } ) + , ('etesian.spaceMargin' , TypePercentage, 5 ) + , ('etesian.uniformDensity' , TypeBool , False ) + , ('etesian.routingDriven' , TypeBool , False ) + , ("etesian.effort" , TypeEnumerate , 2 + , { 'values':( ("Fast" , 1) + , ("Standard", 2) + , ("High" , 3) + , ("Extreme" , 4) ) } + ) + , ("etesian.graphics" , TypeEnumerate , 2 + , { 'values':( ("Show every step" , 1) + , ("Show lower bound" , 2) + , ("Show result only" , 3) ) } + ) + ) + + layoutTable = \ + ( (TypeTab , 'Etesian', 'etesian') + + , (TypeTitle , 'Placement area') + , (TypeOption, "etesian.aspectRatio" , "Aspect Ratio, X/Y (%)", 0 ) + , (TypeOption, "etesian.spaceMargin" , "Space Margin" , 1 ) + , (TypeRule ,) + , (TypeTitle , 'Etesian - Placer') + , (TypeOption, "etesian.uniformDensity", "Uniform density" , 0 ) + , (TypeOption, "etesian.routingDriven" , "Routing driven" , 0 ) + , (TypeOption, "etesian.effort" , "Placement effort" , 1 ) + , (TypeOption, "etesian.graphics" , "Placement view" , 1 ) + , (TypeRule ,) + ) + +|newpage| + + +Taxonomy of the file: + +* It must contains, at least, the two tables: + + * ``parametersTable``, defines & initialise the configuration variables. + + * ``layoutTables``, defines how the various parameters will be displayed + in the configuration window (:ref:`The Settings Tab`). + +* The ``parametersTable``, is a tuple (list) of tuples. Each entry in the list + describe a configuration parameter. In it's simplest form, it's a quadruplet + :cb:`(TypeOption, 'paramId', ParameterType, DefaultValue)` with: + + #. ``TypeOption``, tells that this tuple describe a parameter. + + #. ``paramId``, the identifier of the parameter. Identifiers are defined + by the tools. The list of parameters is detailed in each tool section. + + #. ``ParameterType``, the kind of parameter. Could be: + + * ``TypeBool``, boolean. + * ``TypeInt``, signed integer. + * ``TypeEnumerate``, enumerated type, needs extra entry. + * ``TypePercentage``, percentage, expressed between 0 and 100. + * ``TypeDouble``, float. + * ``TypeString``, character string. + + #. ``DefaultValue``, the default value for that parameter. + + +Hacking the Configuration Files +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Asides from the symbols that gets used by the configuration helpers like +:cb:`allianceConfig` or :cb:`parametersTable`, you can put pretty much anything +in :cb:`/.coriolis2/settings.py` (that is, written in |Python|). + +For example: :: + + # -*- Mode:Python -*- + + defaultStyle = 'Alliance.Classic [black]' + + # Regular Coriolis configuration. + parametersTable = \ + ( ('misc.catchCore' , TypeBool , False ) + , ('misc.info' , TypeBool , False ) + , ('misc.paranoid' , TypeBool , False ) + , ('misc.bug' , TypeBool , False ) + , ('misc.logMode' , TypeBool , True ) + , ('misc.verboseLevel1' , TypeBool , False ) + , ('misc.verboseLevel2' , TypeBool , True ) + , ('misc.minTraceLevel' , TypeInt , 0 ) + , ('misc.maxTraceLevel' , TypeInt , 0 ) + ) + + # Some ordinary Python script... + import os + + print ' o Cleaning up ClockTree previous run.' + for fileName in os.listdir('.'): + if fileName.endswith('.ap') or (fileName.find('_clocked.') >= 0): + print ' - <%s>' % fileName + os.unlink(fileName) + + +See :ref:`Python Interface to Coriolis` for more details those capabilities. diff --git a/documentation/_build/html/_sources/UsersGuide/Installation.txt b/documentation/_build/html/_sources/UsersGuide/Installation.txt new file mode 100644 index 00000000..224ee5f4 --- /dev/null +++ b/documentation/_build/html/_sources/UsersGuide/Installation.txt @@ -0,0 +1,230 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + +|newpage| + + +Installation +============ + +.. note:: + As the sources are being released, the binary packaging is dropped. + You still may find older version here: http://asim.lip6.fr/pub/coriolis/2.0 . + +In a nutshell, building source consist in pulling the |git| repository then +running the |ccb| installer. + +Main building prerequisites: + +* cmake +* C++11-capable compiler +* RapidJSON_ +* python2.7 +* boost +* libxml2 +* bzip2 +* yacc & lex +* Qt 4 or Qt 5 + +Building documentation prerequisites: + +* doxygen +* latex +* latex2html +* python-docutils (for reStructuredText) + +Optional libraries: + +* LEF/DEF (from `SI2 `_) + +For other distributions, refer to their own packaging system. + +|newpage| + + +Fixed Directory Tree +~~~~~~~~~~~~~~~~~~~~ + +In order to simplificate the work of the |ccb| installer, the source, build +and installation tree is fixed. To successfully compile |Coriolis| you must +follow it exactly. The tree is relative to the home directory of the user +building it (noted :fboxtt:`~/` or :fboxtt:`$HOME/`). Only the source +directory needs to be manually created by the user, all others will be +automatically created either by |ccb| or the build system. + ++--------------------------------------------------------------------------------------------------------------+ +| **Sources** | ++------------------------------+-------------------------------------------------------------------------------+ +| | Sources root | | ~/coriolis-2.x/src | +| | **under git** | | ~/coriolis-2.x/src/coriolis | ++------------------------------+-------------------------------------------------------------------------------+ +| **Architecture Dependant Build** | ++------------------------------+-------------------------------------------------------------------------------+ +| | Linux, SL 7, 64b | | ~/coriolis-2.x/Linux.el7_64/Release.Shared/build/ | +| | Linux, SL 6, 32b | | ~/coriolis-2.x/Linux.slsoc6x/Release.Shared/build/ | +| | Linux, SL 6, 64b | | ~/coriolis-2.x/Linux.slsoc6x_64/Release.Shared/build/ | +| | Linux, Fedora, 64b | | ~/coriolis-2.x/Linux.fc_64/Release.Shared/build/ | +| | Linux, Fedora, 32b | | ~/coriolis-2.x/Linux.fc/Release.Shared/build/ | +| | FreeBSD 8, 32b | | ~/coriolis-2.x/FreeBSD.8x.i386/Release.Shared/build/ | +| | FreeBSD 8, 64b | | ~/coriolis-2.x/FreeBSD.8x.amd64/Release.Shared/build/ | +| | Windows 7, 32b | | ~/coriolis-2.x/Cygwin.W7/Release.Shared/build/ | +| | Windows 7, 64b | | ~/coriolis-2.x/Cygwin.W7_64/Release.Shared/build/ | +| | Windows 8.x, 32b | | ~/coriolis-2.x/Cygwin.W8/Release.Shared/build/ | +| | Windows 8.x, 64b | | ~/coriolis-2.x/Cygwin.W8_64/Release.Shared/build/ | ++------------------------------+-------------------------------------------------------------------------------+ +| **Architecture Dependant Install** | ++------------------------------+-------------------------------------------------------------------------------+ +| Linux, SL 6, 32b | ~/coriolis-2.x/Linux.slsoc6x/Release.Shared/install/ | ++------------------------------+-------------------------------------------------------------------------------+ +| **FHS Compliant Structure under Install** | ++------------------------------+-------------------------------------------------------------------------------+ +| | Binaries | | .../install/bin | +| | Libraries (Python) | | .../install/lib | +| | Include by tool | | .../install/include/coriolis2// | +| | Configuration files | | .../install/etc/coriolis2/ | +| | Doc, by tool | | .../install/share/doc/coriolis2/en/html/ | ++------------------------------+-------------------------------------------------------------------------------+ + +.. note:: *Alternate build types:* the ``Release.Shared`` means an optimized build + with shared libraries. But there are also available ``Static`` instead of ``Shared`` + and ``Debug`` instead of ``Release`` and any combination of them. + + ``Static`` do not work because I don't know yet to mix statically linked binaries + and Python modules (which must be dynamic). + +|newpage| + + +Building Coriolis +~~~~~~~~~~~~~~~~~ + +First step is to install the prerequisites. Currently, only RapidJSON_. +As RapidJSON is evolving fast, if you encounter compatibility problems, +the exact version we compiled against is given below. :: + + dummy@lepka:~$ mkdir -p ~/coriolis-2.x/src/support + dummy@lepka:~$ cd ~/coriolis-2.x/src/support + dummy@lepka:~$ git clone http://github.com/miloyip/rapidjson + dummy@lepka:~$ git checkout ec322005072076ef53984462fb4a1075c27c7dfd + +The second step is to create the source directory and pull the |git| repository: :: + + dummy@lepka:~$ mkdir -p ~/coriolis-2.x/src + dummy@lepka:~$ cd ~/coriolis-2.x/src + dummy@lepka:~$ git clone https://www-soc.lip6.fr/git/coriolis.git + +Third and final step, build & install: :: + + dummy@lepka:src$ ./bootstrap/ccb.py --project=support \ + --project=coriolis \ + --make="-j4 install" + dummy@lepka:src$ ./bootstrap/ccb.py --project=support \ + --project=coriolis \ + --doc --make="-j1 install" + +We need to separate to perform a separate installation of the documentation because it +do not support to be generated with a parallel build. So we compile & install in a first +stage in ``-j4`` (or whatever) then we generate the documentation in ``-j1`` + +Under |RHEL6| or clones, you must build using the |devtoolset2|: :: + + dummy@lepka:src$ ./bootstrap/ccb.py --project=coriolis \ + --devtoolset-2 --make="-j4 install" + +If you want to uses Qt 5 instead of Qt 4, you may add the ``--qt5`` argument. + +The complete list of |ccb| functionalities can be accessed with the ``--help`` argument. +It also may be run in graphical mode (``--gui``). + + +Building the Devel Branch +------------------------- + +In the |Coriolis| |git| repository, two branches are present: + +* The :cb:`master` branch, which contains the latest stable version. This is the + one used by default if you follow the above instructions. + +* The :cb:`devel` branch, which obviously contains the latest commits from the + development team. To use it instead of the :cb:`master` one, do the following + command just after the first step: :: + + dummy@lepka:~$ git checkout devel + dummy@lepka:src$ ./bootstrap/ccb.py --project=coriolis \ + --make="-j4 install" --debug + + Be aware that it may requires newer versions of the dependencies and may introduce + incompatibilites with the stable version. + + In the (unlikely) event of a crash of |cgt|, as it is a |Python| script, the right + command to run |gdb| on it is: :: + + dummy@lepka:work$ gdb python core.XXXX + +|newpage| + + +Additionnal Requirement under |MacOS| +------------------------------------- + +|Coriolis| make uses of the :cb:`boost::python` module, but the |macports| |boost| +seems unable to work with the |Python| bundled with |MacOS|. So you have to install +both of them from |macports|: :: + + dummy@macos:~$ port install boost +python27 + dummy@macos:~$ port select python python27 + dummy@macos:-$ export DYLD_FRAMEWORK_PATH=/opt/local/Library/Frameworks + +The last two lines tell |MacOS| to use the |Python| from |macports| and *not* from +the system. + +Then proceed with the generic install instructions. + + +Packaging Coriolis +~~~~~~~~~~~~~~~~~~ + +Packager should not uses |ccb|, instead ``bootstrap/Makefile.package`` is provided +to emulate a top-level ``autotool`` makefile. Just copy it in the root of the +|Coriolis| git repository (``~/corriolis-2.x/src/coriolis/``) and build. + +Sligthly outaded packaging configuration files can also be found under ``bootstrap/``: + +* ``bootstrap/coriolis2.spec.in`` for |rpm| based distributions. +* ``bootstrap/debian`` for |Debian| based distributions. + + +Hooking up into |Alliance| +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +|Coriolis| relies on |Alliance| for the cell libraries. So after installing or +packaging, you must configure it so that it can found those libraries. + +This is done by editing the one variable :cb:`cellsTop` in the |Alliance| helper +(see :ref:`Alliance Helper`). This variable must point to the directory of the +cells libraries. In a typical installation, this is generally +:cb:`/usr/share/alliance/cells`. + + +Setting up the Environment (coriolisEnv.py) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To simplify the tedious task of configuring your environment, a helper is provided +in the ``bootstrap`` source directory (also installed in the directory +``.../install/etc/coriolis2/``) : :: + + ~/coriolis-2.x/src/coriolis/bootstrap/coriolisEnv.py + +Use it like this: :: + + dummy@lepka:~> eval `~/coriolis-2.x/src/coriolis/bootstrap/coriolisEnv.py` + +.. note:: **Do not call that script in your environement initialisation.** + When used under |RHEL6| or clones, it needs to be run in the |devtoolset2| + environement. The script then launch a new shell, which may cause an + infinite loop if it's called again in, say :cb:`~/.bashrc`. + + Instead you may want to create an alias: :: + + alias c2r='eval "`~/coriolis-2.x/src/coriolis/bootstrap/coriolisEnv.py`"' diff --git a/documentation/_build/html/_sources/UsersGuide/LicenseCredits.txt b/documentation/_build/html/_sources/UsersGuide/LicenseCredits.txt new file mode 100644 index 00000000..3cf0eefe --- /dev/null +++ b/documentation/_build/html/_sources/UsersGuide/LicenseCredits.txt @@ -0,0 +1,55 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +Credits & License +================= + +.. raw:: html + +

    Hurricane + Rémy Escassut & + Christian Masson

    +
    +

    Etesian + Gabriel Gouvine

    +
    +

    Stratus + Sophie Belloeil

    +
    +

    Knik + Damien Dupuis

    +
    +

    Kite, + Unicorn + Jean-Paul Chaput

    +
    + + +.. raw:: latex + + \begin{center}\begin{minipage}[t]{.8\textwidth} + \noindent\DUrole{sc}{Hurricane} \dotfill Rémy \DUrole{sc}{Escassut} \& + Christian \DUrole{sc}{Masson} \\ + \noindent\DUrole{sc}{Etesian} \dotfill Gabriel \DUrole{sc}{Gouvine} \\ + \noindent\DUrole{sc}{Stratus} \dotfill Sophie \DUrole{sc}{Belloeil} \\ + \noindent\DUrole{sc}{Knik} \dotfill Damien \DUrole{sc}{Dupuis} \\ + \noindent\DUrole{sc}{Kite}, + \DUrole{sc}{Unicorn} \dotfill Jean-Paul \DUrole{sc}{Chaput} \\ + \end{minipage}\end{center} + + +|medskip| + +The |Hurricane| data-base is copyright© |Bull| 2000-2016 and is +released under the terms of the |LGPL| license. All other tools are +copyright© |UPMC| 2008-2016 and released under the |GPL| +license. + +Others important contributors to |Coriolis| are Christophe |Alexandre|, +Hugo |Clement|, Marek |Sroka| and Wu |Yifei|. + +The |Knik| router makes use of the |Flute| software, which is +copyright© Chris C. N. |Chu| from the Iowa State University +(http://home.eng.iastate.edu/~cnchu/). diff --git a/documentation/_build/html/_sources/UsersGuide/Releases.txt b/documentation/_build/html/_sources/UsersGuide/Releases.txt new file mode 100644 index 00000000..c86243a1 --- /dev/null +++ b/documentation/_build/html/_sources/UsersGuide/Releases.txt @@ -0,0 +1,102 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +Release Notes +============= + +Release 1.0.1475 +~~~~~~~~~~~~~~~~ + +This is the first preliminary release of the |Coriolis2| framework. + +This release mainly ships the global router |Knik| and the detailed router +|Kite|. Together they aim to replace the |Alliance| |Nero| router. +Unlike |Nero|, |Kite| is based on an innovating routing modeling and ad-hoc +algorithm. Although it is released under |GPL| license, the source code +will be avalaible later. +|medskip| + + +|noindent| Contents of this release: + +1. A graphical user interface (viewer only). +2. The |Knik| global router. +3. The |Kite| detailed router. + +|noindent| Supported input/output formats: + +* |Alliance| |vst| (netlist) & |ap| (physical) formats. +* Even if there are some references to the |Cadence| |LEFDEF| format, its + support is not included because it depends on a library only available + to |Si2| affiliated members. + + +Release 1.0.1963 +~~~~~~~~~~~~~~~~ + +Release 1963 is alpha. All the tools from |Coriolis1| have been ported into +this release. + +|noindent| Contents of this release: + +#. The |Stratus| netlist capture language (|GenLib| replacement). +#. The |Mauka| placer (still contains bugs). +#. A graphical user interface (viewer only). +#. The |Knik| global router. +#. The |Kite| detailed router. +#. Partially implemented python support for configuration files + (alternative to |XML|). +#. A documentation (imcomplete/obsoleted in |Hurricane|'s case). + + +Release 1.0.2049 +~~~~~~~~~~~~~~~~ + +Release `2049` is Alpha. + +|noindent| Changes of this release: + +#. The |Hurricane| documentation is now accurate. Documentation + for the Cell viewer and |CRLcore| has been added. +#. More extensive Python support for all the components of + |Coriolis|. +#. Configuration is now completly migrated under Python. + |XML| loaders can still be useds for compatibilty. +#. The |cgt| main has been rewritten in Python. + + +Release v2.0.1 +~~~~~~~~~~~~~~ + +#. Migrated the repository from |svn| to |git|, and release complete sources. + As a consequence, we drop the distribution packaging support and give + public read-only access to the repository. +#. Deep rewrite of the |Katabatic| database and |Kite| detailed router, + achieve a speedup factor greater than 20... + + +Release v2.1 +~~~~~~~~~~~~ + +#. Replace the old simulated annealing placer |Mauka| by the analytical placer + |Etesian| and its legalization and detailed placement tools. +#. Added a Blif format parser to process circuits generated by the Yosys and ABC + logic synthetizers. +#. The multiples user defined configuration files are now grouped under + a common hidden (dot) directory ``.coriolis2`` and the file extension + is back from ``.conf`` to ``.py``. + +.. #. Under |RHEL7| / |SL7|, there is a known bug in the graphical visualizer. +.. When shifting to the left, the right-half part of the screen gets +.. badly redrawn. Uses |CTRL_L| to refresh. It will be corrected as soon +.. as possible. + + +**Release v2.2** +~~~~~~~~~~~~~~~~ + +#. Added JSON import/export of the whole Hurricane DataBase. Two save mode + are supported: *Cell* mode (standalone) or *Blob* mode, which dump the + whole design down and including the standard cells. diff --git a/documentation/_build/html/_sources/UsersGuide/ScriptsPlugins.txt b/documentation/_build/html/_sources/UsersGuide/ScriptsPlugins.txt new file mode 100644 index 00000000..2e9e3d0c --- /dev/null +++ b/documentation/_build/html/_sources/UsersGuide/ScriptsPlugins.txt @@ -0,0 +1,332 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + +.. URLs that changes between the various backends. +.. _Stratus Documentation: file:///usr/share/doc/coriolis2/en/html/stratus/index.html + +.. |ChipStructure-1| image:: ./images/chip-structure-1.png + :alt: Chip Top Structure + :align: middle + :width: 90% + + +.. _Python Interface to Coriolis: + +Python Interface for |Hurricane| / |Coriolis| +============================================= + +The (almost) complete interface of |Hurricane| is exported as a |Python| module +and some part of the other components of |Coriolis| (each one in a separate +module). The interface has been made to mirror as closely as possible the +C++ one, so the C++ doxygen documentation could be used to write code with +either languages. + +`Summary of the C++ Documentation `_ + +A script could be run directly in text mode from the command line or through +the graphical interface (see :ref:`Python Scripts in Cgt`). + +Asides for this requirement, the python script can contain anything valid +in |Python|, so don't hesitate to use any package or extention. + +Small example of Python/Stratus script: :: + + from Hurricane import * + from Stratus import * + + def doSomething (): + # ... + return + + def ScriptMain ( **kw ): + editor = None + if kw.has_key('editor') and kw['editor']: + editor = kw['editor'] + stratus.setEditor( editor ) + + doSomething() + return + + if __name__ == "__main__" : + kw = {} + success = ScriptMain( **kw ) + shellSuccess = 0 + if not success: shellSuccess = 1 + + sys.exit( shellSuccess ) + ScriptMain () + +This typical script can be executed in two ways: + +#. Run directly as a |Python| script, thanks to the :: + + if __name__ == "__main__" : + + part (this is standart |Python|). It is a simple adapter that will + calls :cb:`ScriptMain()`. +#. Through |cgt|, either in text or graphical mode. In that case, the + :cb:`ScriptMain()` is directly called trough a sub-interpreter. + The arguments of the script are passed through the ``**kw`` dictionnary. + + +----------------------+-----------------------------------------------+ + | \*\*kw Dictionnary | + +----------------------+-----------------------------------------------+ + | Parameter Key/Name | Contents type | + +======================+===============================================+ + | ``'cell'`` | A Hurricane cell on which to work. Depending | + | | on the context, it may be ``None``. | + | | For example, when run from |cgt|, it the cell | + | | currently loaded in the viewer, if any. | + +----------------------+-----------------------------------------------+ + | ``'editor'`` | The viewer from which the script is run, when | + | | lauched through |cgt|. | + +----------------------+-----------------------------------------------+ + + +Plugins +~~~~~~~ + +Plugins are |Python| scripts specially crafted to integrate with |cgt|. +Their entry point is a :cb:`ScriptMain()` method as described in +`Python Interface to Coriolis`_. They can be called by user scripts +through this method. + + + +Chip Placement +-------------- + +Automatically perform the placement of a complete chip. This plugin, as well +as the other P&R tools expect a specific top-level hierarchy for the design. +The top-level hierarchy must contains the instances of all the I/O pads and +**exactly one** instance of the chip's core model. + +|bcenter| |ChipStructure-1| |ecenter| + +The designer must provide a configuration file that define the rules for the +placement of the top-level hierarchy (that is, the pads and the core). +This file must be named after the chip's name, by appending ``_chip.py`` +(obviously, it is a |Python| file). For instance if the chip netlist file +is called ``amd2901_crl.vst``, then the configuration file must be named +``amd2901_crl_chip.vst``. + +Example of chip placement configuration file (for ``AM2901``): :: + + chip = \ + { 'pads.south' : [ 'p_a3' , 'p_a2' , 'p_a1' , 'p_r0' + , 'p_vddick0', 'p_vssick0', 'p_a0' , 'p_i6' + , 'p_i8' , 'p_i7' , 'p_r3' ] + , 'pads.east' : [ 'p_zero' , 'p_i0' , 'p_i1' , 'p_i2' + , 'p_vddeck0', 'p_vsseck0', 'p_q3' , 'p_b0' + , 'p_b1' , 'p_b2' , 'p_b3' ] + , 'pads.north' : [ 'p_noe' , 'p_y3' , 'p_y2' , 'p_y1' + , 'p_y0' , 'p_vddeck1', 'p_vsseck1', 'p_np' + , 'p_ovr' , 'p_cout' , 'p_ng' ] + , 'pads.west' : [ 'p_cin' , 'p_i4' , 'p_i5' , 'p_i3' + , 'p_ck' , 'p_d0' , 'p_d1' , 'p_d2' + , 'p_d3' , 'p_q0' , 'p_f3' ] + , 'core.size' : ( 1500, 1500 ) + , 'chip.size' : ( 3000, 3000 ) + , 'chip.clockTree' : True + } + +The file must contain *one dictionnary* named ``chip``. + ++----------------------+-------------------------------------------------------+ +| Chip Dictionnary | ++----------------------+-------------------------------------------------------+ +| Parameter Key/Name | Value/Contents type | ++======================+=======================================================+ +| ``'pad.south'`` | Ordered list (left to right) of pad instances names | +| | to put on the south side of the chip | ++----------------------+-------------------------------------------------------+ +| ``'pad.east'`` | Ordered list (down to up) of pad instances names | +| | to put on the east side of the chip | ++----------------------+-------------------------------------------------------+ +| ``'pad.north'`` | Ordered list (left to right) of pad instances names | +| | to put on the north side of the chip | ++----------------------+-------------------------------------------------------+ +| ``'pad.west'`` | Ordered list (down to up) of pad instances names | +| | to put on the west side of the chip | ++----------------------+-------------------------------------------------------+ +| ``'core.size'`` | The size of the core (to be used by the placer) | ++----------------------+-------------------------------------------------------+ +| ``'chip.size'`` | The size of the whole chip. The sides must be great | +| | enough to accomodate all the pads | ++----------------------+-------------------------------------------------------+ +| ``'chip.clockTree'`` | Whether to generate a clock tree or not. This calls | +| | the ClockTree plugin | ++----------------------+-------------------------------------------------------+ + +Configuration parameters, defaults are defined in ``etc/coriolis2//plugins.conf``. + ++-----------------------------------+------------------+----------------------------+ +| Parameter Identifier | Type | Default | ++===================================+==================+============================+ +| **Chip Plugin Parameters** | ++-----------------------------------+------------------+----------------------------+ +|``chip.block.rails.count`` | TypeInt | :cb:`5` | +| +------------------+----------------------------+ +| | The minimum number of rails around the core | +| | block. Must be odd and suppérior to 5. | +| | One rail for the clock and at least two pairs | +| | of power/grounds | ++-----------------------------------+------------------+----------------------------+ +|``chip.block.rails.hWidth`` | TypeInt | :cb:`12` | +| +------------------+----------------------------+ +| | The horizontal with of the rails | ++-----------------------------------+------------------+----------------------------+ +|``chip.block.rails.vWidth`` | TypeInt | :cb:`12` | +| +------------------+----------------------------+ +| | The vertical with of the rails | ++-----------------------------------+------------------+----------------------------+ +|``chip.block.rails.hSpacing`` | TypeInt | :cb:`6` | +| +------------------+----------------------------+ +| | The spacing, *edge to edge* of two adjacent | +| | horizontal rails | ++-----------------------------------+------------------+----------------------------+ +|``chip.block.rails.vSpacing`` | TypeInt | :cb:`6` | +| +------------------+----------------------------+ +| | The spacing, *edge to edge* of two adjacent | +| | vertical rails | ++-----------------------------------+------------------+----------------------------+ +|``chip.pad.pck`` | TypeString | :cb:`pck_px` | +| +------------------+----------------------------+ +| | The model name of the pad connected to the | +| | chip external clock | ++-----------------------------------+------------------+----------------------------+ +|``chip.pad.pvddeck`` | TypeString | :cb:`pvddeck_px` | +| +------------------+----------------------------+ +| | The model name of the pad connected to the | +| | ``vdde`` (external power) and suppling it to | +| | the core | ++-----------------------------------+------------------+----------------------------+ +|``chip.pad.pvsseck`` | TypeString | :cb:`pvsseck_px` | +| +------------------+----------------------------+ +| | The model name of the pad connected to the | +| | ``vsse`` (external ground) and suppling it to | +| | the core | ++-----------------------------------+------------------+----------------------------+ +|``chip.pad.pvddick`` | TypeString | :cb:`pvddick_px` | +| +------------------+----------------------------+ +| | The model name of the pad connected to the | +| | ``vddi`` (internal power) and suppling it to | +| | the core | ++-----------------------------------+------------------+----------------------------+ +|``chip.pad.pvssick`` | TypeString | :cb:`pvssick_px` | +| +------------------+----------------------------+ +| | The model name of the pad connected to the | +| | ``vssi`` (internal ground) and suppling it to | +| | the core | ++-----------------------------------+------------------+----------------------------+ + +.. note:: + If no clock tree is generated, then the clock rail is *not* created. + So even if the requested number of rails ``chip.block.rails.count`` is, say 5, + only four rails (2* ``power``, 2* ``ground``) will be generateds. + + +Clock Tree +---------- + +Insert a clock tree into a block. The clock tree uses the H strategy. +The clock net is splitted into sub-nets, one for each branch of the +tree. + +* On **chips** design, the sub-nets are createds in the model of the + core block (then trans-hierarchically flattened to be shown at + chip level). +* On **blocks**, the sub nets are created directly in the top block. +* The sub-nets are named according to a simple geometrical scheme. + A common prefix ``ck_htree``, then one postfix by level telling + on which quarter of plane the sub-clock is located: + + #. ``_bl``: bottom left plane quarter. + #. ``_br``: bottom right plane quarter. + #. ``_tl``: top left plane quarter. + #. ``_tr``: top right plane quarter. + + We can have ``ck_htree_bl``, ``ck_htree_bl_bl``, ``ch_htree_bl_tl`` and so on. + +The clock tree plugin works in four steps: + +#. Build the clock tree: creates the top-block abutment box, compute the + levels of H tree neededs and place the clock buffers. +#. Once the clock buffers are placed, calls the placer (|etesian|) to place + the ordinary standart cells, whithout disturbing clock H-tree buffers. +#. At this point we know the exact positions of all the DFFs, so we can + connect them to the nearest H-tree leaf clock signal. +#. Leaf clock signals that are not connecteds to any DFFs are removed. + +Netlist reorganisation: + +* Obviously the top block or chip core model netlist is modificated to + contains all the clock sub-nets. The interface is *not* changed. +* If the top block contains instances of other models *and* those models + contains DFFs that get re-connecteds to the clock sub-nets (from the + top level). Change both the model netlist and interface to propagate + the relevant clock sub-nets to the instanciated model. The new model + with the added clock signal is renamed with a ``_clocked`` suffix. + For example, the sub-block model ``ram.vst`` will become ``ram_clocked.vst``. + +.. note:: + If you are to re-run the clock tree plugin on a netlist, be careful + to erase any previously generated ``_clocked`` file (both netlist and + layout: ``rm *.clocked.{ap,vst}``). And restart |cgt| to clear it's + memory cache. + +Configuration parameters, defaults are defined in ``etc/coriolis2//plugins.conf``. + ++-----------------------------------+------------------+----------------------------+ +| Parameter Identifier | Type | Default | ++===================================+==================+============================+ +| **ClockTree Plugin Parameters** | ++-----------------------------------+------------------+----------------------------+ +|``clockTree.minimumSide`` | TypeInt | :cb:`300` | +| +------------------+----------------------------+ +| | The minimum size below which the clock tree | +| | will stop to perform quadri-partitions | ++-----------------------------------+------------------+----------------------------+ +|``clockTree.buffer`` | TypeString | :cb:`buf_x2` | +| +------------------+----------------------------+ +| | The buffer model to use to drive sub-nets | ++-----------------------------------+------------------+----------------------------+ +|``clockTree.placerEngine`` | TypeString | :cb:`Etesian` | +| +------------------+----------------------------+ +| | The placer to use. Other value is ``Mauka`` | +| | the simulated annealing placer which will go | +| | into retirement very soon | ++-----------------------------------+------------------+----------------------------+ + + +Recursive-Save (RSave) +---------------------- + +Perform a recursive top down save of all the models from the top cell +loaded in |cgt|. Force a write of any non-terminal model. This plugin is used +by the clock tree plugin after the netlist clock sub-nets creation. + + +A Simple Example: AM2901 +~~~~~~~~~~~~~~~~~~~~~~~~ + +To illustrate the capabilities of |Coriolis| tools and |Python| scripting, a small +example, derived from the |Alliance| :cb:`AM2901` is supplied. + +This example contains only the synthetized netlists and the :cb:`doChip.py` script +which perform the whole P&R of the design. + +You can generate the chip using one of the following method: + +#. **Command line mode:** directly run the script: :: + + dummy@lepka:AM2901$ ./doChip -V --cell=amd2901 + +#. **Graphic mode:** launch |cgt|, load chip netlist ``amd2901`` (the top cell) + then run the |Python| script :cb:`doChip.py`. + +.. note:: + Between two consecutive run, be sure to erase the netlist/layout generateds: :: + + dummy@lepka:AM2901$ rm *_clocked*.vst *.ap diff --git a/documentation/_build/html/_sources/UsersGuide/ViewerTools.txt b/documentation/_build/html/_sources/UsersGuide/ViewerTools.txt new file mode 100644 index 00000000..8313e1df --- /dev/null +++ b/documentation/_build/html/_sources/UsersGuide/ViewerTools.txt @@ -0,0 +1,868 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + +.. URLs that changes between the various backends. +.. _Stratus Documentation: file:///usr/share/doc/coriolis2/en/html/stratus/index.html + + +.. |BigMouse| image:: ./images/ComputerMouse.png + :scale: 25% + +.. |ViewerSnapshot_1| image:: ./images/Viewer-1.png + :alt: Viewer Basic Snapshot + :align: middle + :width: 80% + +.. |ControllerSnapshot_1| image:: ./images/Controller-1.png + :alt: Controller Basic Snapshot + :align: middle + :width: 80% + +.. |ControllerLook_1| image:: ./images/Controller-Look-1.png + :alt: Controller Look, Snapshot 1 + :align: middle + :width: 80% + +.. |ControllerFilter_1| image:: ./images/Controller-Filter-1.png + :alt: Controller Basic Snapshot + :align: middle + :width: 80% + +.. |ControllerLayersGos_1| image:: ./images/Controller-LayersGos-1.png + :alt: Controller Basic Snapshot + :align: middle + :width: 80% + +.. |ControllerNetlist_1| image:: ./images/Controller-Netlist-1.png + :alt: Controller Basic Snapshot + :align: middle + :width: 80% + +.. |ViewerNetlist_1| image:: ./images/Viewer-Netlist-1.png + :alt: Controller Basic Snapshot + :align: middle + :width: 80% + +.. |ControllerSelection_1| image:: ./images/Controller-Selection-1.png + :alt: Controller Basic Snapshot + :align: middle + :width: 80% + +.. |ControllerInspector_1| image:: ./images/Controller-Inspector-1.png + :alt: Controller Basic Snapshot + :align: middle + :width: 80% + +.. |ControllerInspector_2| image:: ./images/Controller-Inspector-2.png + :alt: Controller Basic Snapshot + :align: middle + :width: 80% + +.. |ControllerInspector_3| image:: ./images/Controller-Inspector-3.png + :alt: Controller Basic Snapshot + :align: middle + :width: 80% + +.. |ControllerSettings_1| image:: ./images/Controller-Settings-1.png + :alt: Controller Basic Snapshot + :align: middle + :width: 80% + +.. |Etesian-1| image:: ./images/etesian-1.png + :alt: Etesian Abutment Box + :align: middle + :width: 80% + + +CGT - The Graphical Interface +============================= + +The |Coriolis| graphical interface is split up into two windows. + +* The **Viewer**, with the following features: + + * Basic load/save capabilities. + * Display the current working cell. Could be empty if the design + is not yet placed. + * Execute Stratus Scripts. + * Menu to run the tools (placement, routage). + +Features are detailed in `Viewer & Tools`_. + +|ViewerSnapShot_1| + +* The **Controller**, which allows: + + * Tweak what is displayer by the *Viewer*. Through the *Look*, + *Filter* and *Layers&Gos* tabs. + * Browse the |netlist| with eponym tab. + * Show the list of selected objects (if any) with *selection* + * Walk through the Database, the Cell or the Selection with *Inspector*. + This is an advanced feature, reserved for experimented users. + * The tab *Settings* which give access to all the settings. + They are closely related to Configuration & Initialisation. + +|bcenter| |ControllerSnapShot_1| |ecenter| + + +.. _Viewer & Tools: + +Viewer & Tools +~~~~~~~~~~~~~~ + +|Stratus| Netlist Capture +------------------------- + +|Stratus| is the replacement for |GenLib| procedural netlist capture language. +It is designed as a set of |Python| classes, and comes with it's own documentation +(`Stratus Documentation`_) + + +The |Hurricane| Data-Base +------------------------- + +The |Alliance| flow is based on the |MBK| data-base, which has one data-structure +for each view. That is, |LOFIG| for the *logical* view and |PHFIG| for the *physical* +view. The place and route tools were responsible for maintaining (or not) the +coherency between views. Reflecting this weak coupling between views, each one +was stored in a separate file with a specific format. The *logical* view is stored +in a |vst| file in |VHDL| format and the *physical* in an |ap| file in an ad-hoc format. + +The |Coriolis| flow is based on the |Hurricane| data-base, which has a unified +structure for *logical* and *physical* view. That data structure is the |Cell| object. +The |Cell| can have any state between pure netlist and completly placed and +routed design. Although the memory representation of the views has deeply +changed we still use the |Alliance| files format, but they now really represent +views of the same object. The point is that one must be very careful about +view coherency when going to and from |Coriolis|. + +As for the second release, |Coriolis| can be used only for three purposes : + +* **Placing a design**, in which case the |netlist| view must be present. +* **Routing a design**, in that case the |netlist| + view and the |layout| view must be present and |layout| view must contain + a placement. Both views must have the same name. When saving the routed design, + it is advised to change the design name otherwise the original unrouted placement + in the |layout| view will be overwritten. +* **Viewing a design**, the |netlist| view must be present, if a |layout| + view is present it still must have the same name but it can be in any + state. + + +Synthetizing and loading a design +--------------------------------- + +|Coriolis| supports several file formats. It can load all file format +from the |Alliance| toolchain (.ap for layout, behavioural and structural vhdl .vbe and .vst), +BLIF netlist format as well as benchmark formats from the ISPD contests. + +It can be compiled with LEF/DEF support, although it requires acceptance of the SI2 license +and may not be compiled in your version of the software. + +Synthesis under Yosys +..................... + +You can create a BLIF file from the |Yosys| synthetizer, which can be imported under Coriolis. +Most libraries are specified as a .lib liberty file and a .lef LEF file. +|Yosys| opens most .lib files with minor modifications, but LEF support in Coriolis relies on SI2. +If Coriolis hasn't been compiled against it, the library is given in |Alliance| .ap format. +`Some free libraries `_ already provide both .ap and .lib files. + +Once you have installed a common library under |Yosys| and Coriolis, just synthetize your design +with |Yosys| and import it (as Blif without the extension) under Coriolis to perform place&route. + +Synthesis under Alliance +........................ + +|Alliance| is an older toolchain but has been extensively used for years. Coriolis can import +and write Alliance designs and libraries directly. + +Etesian -- Placer +----------------- + +The |Etesian| placer is a state of the art (as of 2015) analytical placer. It is +within ``5%`` of other placers' solutions, but is normally a bit worse than ePlace. +This |Coriolis| tool is actually an encapsulation of |Coloquinte| which *is* the placer. + +.. note:: *Instance Uniquification Unsupported:* a same logical instance cannot have + two different placements. So, either you manually make a clone of it or you + supply a placement for it. We need to implement uniquification in the + |Hurricane| database. + + +|noindent| +**Hierarchical Placement** + +The placement area is defined by the top cell abutment box. + +When placing a complete hierarchy, the abutment boxes of the cells (models) other than +the top cell are sets identical to the one of the top cell and their instances are +all placed at position ``(0,0,ID)``. That is, all the abutments boxes, whatever the +hierarchical level, defines the same area (they are exactly superposed). + +We choose this scheme because the placer will see all the instances as virtually +flattened, so they can be placed anywhere inside the top-cell abutment box. + +|bcenter| |Etesian-1| |ecenter| + + +|noindent| +**Computing the Placement Area** + +The placement area is computed using the ``etesian.aspectRatio`` and ``etesian.spaceMargin`` +parameters only if the top-cell has an empty abutment box. If the top-cell abutment +box has to be set, then it is propagated to all the instances models recursively. + + +|noindent| +**Reseting the Placement** + +Once a placement has been done, the placer cannot reset it (will be implemented +later). To perform a new placement, you must restart |cgt|. In addition, if you +have saved the placement on disk, you must erase any :cb:`.ap` file, which are +automatically reloaded along with the netlist (:cb:`.vst`). + +|noindent| +**Limitations** + +Etesian supports standard cells and fixed macros. As for the Coriolis 2.1 version, +it doesn't support movable macros, and you must place every macro beforehand. +Timing and routability analysis are not included either, and the returned placement +may be unroutable. + + +Etesian Configuration Parameters +................................ + ++-----------------------------------+------------------+----------------------------+ +| Parameter Identifier | Type | Default | ++===================================+==================+============================+ +| **Etesian Parameters** | ++-----------------------------------+------------------+----------------------------+ +|``etesian.aspectRatio`` | TypePercentage | :cb:`100` | +| +------------------+----------------------------+ +| | Define the height on width ``H/W`` aspect | +| | ratio, can be comprised between 10 and 1000 | ++-----------------------------------+------------------+----------------------------+ +|``etesian.spaceMargin`` | TypePercentage | :cb:`5` | +| +------------------+----------------------------+ +| | The extra white space added to the total area | +| | of the standard cells | ++-----------------------------------+------------------+----------------------------+ +|``etesian.uniformDensity`` | TypeBool | :cb:`False` | +| +------------------+----------------------------+ +| | Whether the cells will be spread envenly | +| | across the area or allowed to form denser | +| | clusters | ++-----------------------------------+------------------+----------------------------+ +|``etesian.effort`` | TypeInt | :cb:`2` | +| +------------------+----------------------------+ +| | Sets the balance between the speed of the | +| | placer and the solution quality | ++-----------------------------------+------------------+----------------------------+ +|``etesian.routingDriven`` | TypeBool | :cb:`False` | +| +------------------+----------------------------+ +| | Whether the tool will try routing iterations | +| | and whitespace allocation to improve | +| | routability; to be implemented | ++-----------------------------------+------------------+----------------------------+ +|``etesian.graphics`` | TypeInt | :cb:`2` | +| +------------------+----------------------------+ +| | How often the display will be refreshed | +| | More refreshing slows the placer. | +| | | +| | * ``1`` shows both upper and lower bounds | +| | * ``2`` only shows lower bound results | +| | * ``3`` only shows the final results | ++-----------------------------------+-----------------------------------------------+ + +|newpage| + + +Knik -- Global Router +--------------------- + +The quality of |Knik| global routing solutions are equivalent to those of FGR_ 1.0. +For an in-depth description of |Knik| algorithms, you may download the thesis of +D. |Dupuis| avalaible from here~: `Knik Thesis`_. + +The global router is (not yet) deterministic. To circumvent this limitation, +a global routing *solution* can be saved to disk and reloaded for later uses. + +A global routing is saved into a file with the same name as the design and a +|kgr| extention. It is in `Box Router`_ output format. + +|noindent| Menus: + +* :math:`\textbf{P\&R} \rightarrow \textbf{Step by Step} \rightarrow \textbf{Save Global Routing}` +* :math:`\textbf{P\&R} \rightarrow \textbf{Step by Step} \rightarrow \textbf{Load Global Routing}` + + +Kite -- Detailed Router +----------------------- + +|Kite| no longer suffers from the limitations of |Nero|. It can route big designs +as its runtime and memory footprint is almost linear (with respect to the number +of gates). It has successfully routed design of more than `150K` gates. +|medskip| + +|noindent| However, this first release comes with the temporary the following +restrictions: + +* Works only with |SxLib| standard cell gauge. +* Works always with 4 routing metal layers (`M2` through `M5`). +* Do not allow (take into account) pre-routed wires on signals + other than |POWER| or |GROUND|. + +.. note:: + **Slow Layer Assignment.** Most of the time, the layer assignment stage is + fast (less than a dozen seconds), but in some instances it can take more + than a dozen *minutes*. This is a known bug and will be corrected in later + releases. + +After each run, |Kite| displays a set of *completion ratios* which must all +be equal to `100%` if the detailed routing has been successfull. +In the event of a failure, on a saturated design, you may decrease the +`edge saturation ratio` (argument `--edge`) to balance more evenly the design +saturation. That is, the maximum saturation decrease at the price of a wider +saturated area and increased wirelength. This is the saturation of the +*global* router |Knik|, and you may increase/decrease by steps of ``5%``, +which represent one track. The maximum capacity of the |SxLib| gauge is +10 tracks in two layers, that makes 20 tracks by |Knik| edge. + +Routing a design is done in four ordered steps: + +#. Detailed pre-route :math:`\textbf{P\&R} \rightarrow \textbf{Step by Step} \rightarrow \textbf{Detailed PreRoute}` +#. Global routing :math:`\textbf{P\&R} \rightarrow \textbf{Step by Step} \rightarrow \textbf{Global Route}` +#. Detailed routing :math:`\textbf{P\&R} \rightarrow \textbf{Step by Step} \rightarrow \textbf{Detailed Route}` +#. Finalize routing :math:`\textbf{P\&R} \rightarrow \textbf{Step by Step} \rightarrow \textbf{Finalize Route}` + +It is possible to supply to the router a complete wiring for some nets that the user's +wants to be routed according to a specific topology. The supplied topology must respect +the building rules of the |Katabatic| database (contacts must be, terminals, turns, h-tee +& v-tee only). During the first step :fboxtt:`Detailed Pre-Route` the router will solve +overlaps between the segments, without making any dogleg. If no pre-routed topologies +are present, this step may be ommited. Any net routed at this step is then fixed and +become unmovable for the later stages. + +After the detailed routing step the |Kite| data-structure is still active +(the Hurricane wiring is decorated). The finalize step performs the removal of +the |Kite| data-structure, and it is not advisable to save the design before +that step. + +You may visualize the density (saturation) of either |Knik| (on edges) or +|Kite| (on GCells) until the routing is finalized. Special layers appears +to that effect in the `The Layers&Go Tab`_. + + +Kite Configuration Parameters +............................. + +As |Knik| is only called through |Kite|, it's parameters also have +the :cb:`kite.` prefix. + +The |Katabatic| parameters control the layer assignment step. + +All the defaults value given below are from the default |Alliance| technology +(:cb:`cmos` and :cb:`SxLib` cell gauge/routing gauge). + ++-----------------------------------+------------------+----------------------------+ +| Parameter Identifier | Type | Default | ++===================================+==================+============================+ +| **Katabatic Parameters** | ++-----------------------------------+------------------+----------------------------+ +|``katabatic.topRoutingLayer`` | TypeString | :cb:`METAL5` | +| +------------------+----------------------------+ +| | Define the highest metal layer that will be | +| | used for routing (inclusive). | ++-----------------------------------+------------------+----------------------------+ +|``katabatic.globalLengthThreshold``| TypeInt | :cb:`1450` | +| +------------------+----------------------------+ +| | This parameter is used by a layer assignment | +| | method which is no longer used (did not give | +| | good results) | ++-----------------------------------+------------------+----------------------------+ +| ``katabatic.saturateRatio`` | TypePercentage | :cb:`80` | +| +------------------+----------------------------+ +| | If ``M(x)`` density is above this ratio, | +| | move up feedthru global segments up from | +| | depth ``x`` to ``x+2`` | ++-----------------------------------+------------------+----------------------------+ +| ``katabatic.saturateRp`` | TypeInt | :cb:`8` | +| +------------------+----------------------------+ +| | If a GCell contains more terminals | +| | (:cb:`RoutingPad`) than that number, force a | +| | move up of the connecting segments to those | +| | in excess | ++-----------------------------------+------------------+----------------------------+ +| **Knik Parameters** | ++-----------------------------------+------------------+----------------------------+ +| ``kite.hTracksReservedLocal`` | TypeInt | :cb:`3` | +| +------------------+----------------------------+ +| | To take account the tracks needed *inside* a | +| | GCell to build the *local* routing, decrease | +| | the capacity of the edges of the global | +| | router. Horizontal and vertical locally | +| | reserved capacity can be distinguished for | +| | more accuracy. | ++-----------------------------------+------------------+----------------------------+ +| ``kite.vTracksReservedLocal`` | TypeInt | :cb:`3` | +| +------------------+----------------------------+ +| | cf. ``kite.hTracksReservedLocal`` | ++-----------------------------------+------------------+----------------------------+ +| **Kite Parameters** | ++-----------------------------------+------------------+----------------------------+ +| ``kite.eventsLimit`` | TypeInt | :cb:`4000002` | +| +------------------+----------------------------+ +| | The maximum number of segment displacements, | +| | this is a last ditch safety against infinite | +| | loop. It's perhaps a little too low for big | +| | designs | ++-----------------------------------+------------------+----------------------------+ +| ``kite.ripupCost`` | TypeInt | :cb:`3` | +| +------------------+----------------------------+ +| | Differential introduced between two ripup | +| | cost to avoid a loop between two ripped up | +| | segments | ++-----------------------------------+------------------+----------------------------+ +| ``kite.strapRipupLimit`` | TypeInt | :cb:`16` | +| +------------------+----------------------------+ +| | Maximum number of ripup for *strap* segments | ++-----------------------------------+------------------+----------------------------+ +| ``kite.localRipupLimit`` | TypeInt | :cb:`9` | +| +------------------+----------------------------+ +| | Maximum number of ripup for *local* segments | ++-----------------------------------+------------------+----------------------------+ +| ``kite.globalRipupLimit`` | TypeInt | :cb:`5` | +| +------------------+----------------------------+ +| | Maximum number of ripup for *global* segments,| +| | when this limit is reached, triggers topologic| +| | modification | ++-----------------------------------+------------------+----------------------------+ +| ``kite.longGlobalRipupLimit`` | TypeInt | :cb:`5` | +| +------------------+----------------------------+ +| | Maximum number of ripup for *long global* | +| | segments, when this limit is reached, triggers| +| | topological modification | ++-----------------------------------+------------------+----------------------------+ + + + +.. _Python Scripts in Cgt: + +Executing Python Scripts in Cgt +------------------------------- + +Python/Stratus scripts can be executed either in text or graphical mode. + +.. note:: **How Cgt Locates Python Scripts:** + |cgt| uses the Python ``import`` mechanism to load Python scripts. + So you must give the name of your script whitout ``.py`` extention and + it must be reachable through the ``PYTHONPATH``. You may uses the + dotted module notation. + +A Python/Stratus script must contains a function called ``ScriptMain()`` +with one optional argument, the graphical editor into which it may be +running (will be set to ``None`` in text mode). The Python interface to +the editor (type: :cb:`CellViewer`) is limited to basic capabilities +only. + +Any script given on the command line will be run immediatly *after* the +initializations and *before* any other argument is processed. + +For more explanation on Python scripts see :ref:`Python Interface to Coriolis`. + + +Printing & Snapshots +-------------------- + +Printing or saving into a |pdf| is fairly simple, just uses the **File -> Print** +menu or the |CTRL_P| shortcut to open the dialog box. + +The print functionality uses exactly the same rendering mechanism as for the +screen, beeing almost *WYSIWYG*. Thus, to obtain the best results it is advisable +to select the ``Coriolis.Printer`` look (in the *Controller*), which uses a +white background and much suited for high resolutions ``32x32`` pixels patterns + +There is also two mode of printing selectable through the *Controller* +**Settings -> Misc -> Printer/Snapshot Mode**: + +=============== ================= ===================================================== +Mode DPI (approx.) Intended Usage +--------------- ----------------- ----------------------------------------------------- +**Cell Mode** 150 For single ``Cell`` printing or very small designs. + Patterns will be bigger and more readable. +**Design Mode** 300 For designs (mostly commposed of wires and cells + outlines). +=============== ================= ===================================================== + +.. note:: *The pdf file size* + Be aware that the generated |pdf| files are indeed only pixmaps. + So they can grew very large if you select paper format above ``A2`` + or similar. + + +|noindent| +Saving into an image is subject to the same remarks as for |pdf|. + + +Memento of Shortcuts in Graphic Mode +------------------------------------ + +The main application binary is |cgt|. + ++---------------+-------------------+-----------------------------------------------------------+ +| Category | Keys | Action | ++===============+===================+===========================================================+ +| **Moves** | | |KeyUp|, | Shift the view in the according direction | +| | |KeyDown| | | +| | | |KeyLeft|, | | +| | |KeyRight| | | ++---------------+-------------------+-----------------------------------------------------------+ +| **Fit** | |KeyF| | Fit to the Cell abutment box | ++---------------+-------------------+-----------------------------------------------------------+ +| **Refresh** | |CTRL_L| | Triggers a complete display redraw | ++---------------+-------------------+-----------------------------------------------------------+ +| **Goto** | |KeyG| | *apperture* is the minimum side of the area | +| | | displayed around the point to go to. It's an | +| | | alternative way of setting the zoom level | ++---------------+-------------------+-----------------------------------------------------------+ +| **Zoom** | |KeyZ|, | Respectively zoom by a 2 factor and *unzoom* | +| | |KeyM| | by a 2 factor | +| +-------------------+-----------------------------------------------------------+ +| | | |BigMouse| | You can perform a zoom to an area. | +| | | Area Zoom | Define the zoom area by *holding down the left | +| | | mouse button* while moving the mouse. | ++---------------+-------------------+-----------------------------------------------------------+ +| **Selection** | | |BigMouse| | You can select displayed objects under an area. | +| | | Area Selection | Define the selection area by *holding down the | +| | | right mouse button* while moving the mouse. | +| +-------------------+-----------------------------------------------------------+ +| | | |BigMouse| | You can toggle the selection of one object under | +| | | Toggle Selection| the mouse position by pressing |CTRL| and | +| | | pressing down *the right mouse button*. A popup | +| | | list of what's under the position shows up into | +| | | which you can toggle the selection state of one | +| | | item. | +| +-------------------+-----------------------------------------------------------+ +| | |KeyCapS| | Toggle the selection visibility | ++---------------+-------------------+-----------------------------------------------------------+ +| **Controller**| |CTRL_I| | Show/hide the controller window. | +| | | | +| | | It's the Swiss Army Knife of the viewer. | +| | | From it, you can fine-control the display and | +| | | inspect almost everything in your design. | ++---------------+-------------------+-----------------------------------------------------------+ +| **Rulers** | |KeyK|, | One stroke on |KeyK| enters the ruler mode, in | +| | |KeyESC| | which you can draw one ruler. You can exit the | +| | | ruler mode by pressing |KeyESC|. Once in ruler | +| | | mode, the first click on the *left mouse button* | +| | | sets the ruler's starting point and the second | +| | | click the ruler's end point. The second click | +| | | exits automatically the ruler mode. | +| +-------------------+-----------------------------------------------------------+ +| | |KeyCapK| | Clears all the drawn rulers | ++---------------+-------------------+-----------------------------------------------------------+ +| **Print** | |CTRL_P| | Currently rather crude. It's a direct copy of | +| | | what's displayed in pixels. So the resulting | +| | | picture will be a little blurred due to | +| | | anti-aliasing mechanism. | ++---------------+-------------------+-----------------------------------------------------------+ +| **Open/Close**| |CTRL_O| | Opens a new design. The design name must be | +| | | given without path or extention. | +| +-------------------+-----------------------------------------------------------+ +| | |CTRL_W| | Close the current viewer window, but do not quit | +| | | the application. | +| +-------------------+-----------------------------------------------------------+ +| | |CTRL_Q| | `CTRL+Q` quit the application | +| | | (closing all windows). | ++---------------+-------------------+-----------------------------------------------------------+ +| **Hierarchy** | |CTRL_Down| | Go one hierarchy level down. That is, if there | +| | | is an *instance* under the cursor position, load | +| | | it's *model* Cell in place of the current one. | +| +-------------------+-----------------------------------------------------------+ +| | |CTRL_Up| | Go one hierarchy level up. if we have entered | +| | | the current model through |CTRL_Down| | +| | | reload the previous model (the one | +| | | in which this model is instanciated). | ++---------------+-------------------+-----------------------------------------------------------+ + + +Cgt Command Line Options +------------------------ + +Appart from the obvious ``--text`` options, all can be used for text and graphical mode. + ++-----------------------------+------------------------------------------------+ +| Arguments | Meaning | ++=============================+================================================+ +| `-t|--text` | Instruct |cgt| to run in text mode. | ++-----------------------------+------------------------------------------------+ +| `-L|--log-mode` | Disable the uses of |ANSI| escape sequence on | +| | the |tty|. Useful when the output is | +| | redirected to a file. | ++-----------------------------+------------------------------------------------+ +| `-c |--cell=` | The name of the design to load, without | +| | leading path or extention. | ++-----------------------------+------------------------------------------------+ +| `-g|--load-global` | Reload a global routing solution from disk. | +| | The file containing the solution must be named | +| | `.kgr`. | ++-----------------------------+------------------------------------------------+ +| `--save-global` | Save the global routing solution, into a file | +| | named `.kgr`. | ++-----------------------------+------------------------------------------------+ +| `-e |--edge=` | Change the edge capacity for the global | +| | router, between 0 and 1 (|Knik|). | ++-----------------------------+------------------------------------------------+ +| `-G|--global-route` | Run the global router (|Knik|). | ++-----------------------------+------------------------------------------------+ +| `-R|--detailed-route` | Run the detailed router (|Kite|). | ++-----------------------------+------------------------------------------------+ +| `-s|--save-design=` | The design into which the routed layout will | +| | be saved. It is strongly recommanded to choose | +| | a different name from the source (unrouted) | +| | design. | ++-----------------------------+------------------------------------------------+ +| `--events-limit=` | The maximal number of events after which the | +| | router will stops. This is mainly a failsafe | +| | against looping. The limit is sets to 4 | +| | millions of iteration which should suffice to | +| | any design of `100K`. gates. For bigger | +| | designs you may wants to increase this limit. | ++-----------------------------+------------------------------------------------+ +| `--stratus-script=` | Run the Python/Stratus script ``module``. | +| | See `Python Scripts in Cgt`_. | ++-----------------------------+------------------------------------------------+ + +|newpage| + + +Some Examples : + +* Run both global and detailed router, then save the routed design : :: + + > cgt -v -t -G -R --cell=design --save-design=design_kite + +* Load a previous global solution, run the detailed router, then save the + routed design : :: + + > cgt -v -t --load-global -R --cell=design --save-design=design_kite + +* Run the global router, then save the global routing solution : :: + + > cgt -v -t -G --save-global --cell=design + + +Miscellaneous Settings +---------------------- + ++---------------------------------------+------------------+----------------------------+ +| Parameter Identifier | Type | Default | ++=======================================+==================+============================+ +| **Verbosity/Log Parameters** | ++---------------------------------------+------------------+----------------------------+ +| ``misc.info`` | TypeBool | :cb:`False` | +| +------------------+----------------------------+ +| | Enable display of *info* level message | +| | (:cb:`cinfo` stream) | ++---------------------------------------+------------------+----------------------------+ +| ``misc.bug`` | TypeBool | :cb:`False` | +| +------------------+----------------------------+ +| | Enable display of *bug* level message | +| | (:cb:`cbug` stream), messages can be a little | +| | scarry | ++---------------------------------------+------------------+----------------------------+ +| ``misc.logMode`` | TypeBool | :cb:`False` | +| +------------------+----------------------------+ +| | If enabled, assume that the output device | +| | is not a ``tty`` and suppress any escaped | +| | sequences | ++---------------------------------------+------------------+----------------------------+ +| ``misc.verboseLevel1`` | TypeBool | :cb:`True` | +| +------------------+----------------------------+ +| | First level of verbosity, disable level 2 | ++---------------------------------------+------------------+----------------------------+ +| ``misc.verboseLevel2`` | TypeBool | :cb:`False` | +| +------------------+----------------------------+ +| | Second level of verbosity | ++---------------------------------------+------------------+----------------------------+ +| **Development/Debug Parameters** | ++---------------------------------------+------------------+----------------------------+ +| ``misc.minTraceLevel`` | TypeInt | :cb:`0` | ++---------------------------------------+------------------+----------------------------+ +| ``misc.maxTraceLevel`` | TypeInt | :cb:`0` | +| +------------------+----------------------------+ +| | Display trace information *between* those two | +| | levels (:cb:`cdebug` stream) | ++---------------------------------------+------------------+----------------------------+ +| ``misc.catchCore`` | TypeBool | :cb:`False` | +| +------------------+----------------------------+ +| | By default, |cgt| do not dump core. | +| | To generate one set this flag to :cb:`True` | ++---------------------------------------+------------------+----------------------------+ + +|newpage| + + +.. _The Controller: + +The Controller +~~~~~~~~~~~~~~ + +The *Controller* window is composed of seven tabs: + +#. `The Look Tab`_ to select the display style. +#. `The Filter Tab`_ the hierarchical levels to be displayed, the look of + rubbers and the dimension units. +#. `The Layers&Go Tab`_ to selectively hide/display layers. +#. `The Netlist Tab`_ to browse through the |netlist|. Works in association + with the *Selection* tab. +#. `The Selection Tab`_ allow to view all the currently selected elements. +#. `The Inspector Tab`_ browse through either the DataBase, the Cell or + the current selection. +#. `The Settings Tab`_ access all the tool's configuration settings. + + +.. _The Look Tab: + +The Look Tab +------------ + +You can select how the layout will be displayed. There is a special one +``Printer.Coriolis`` specifically designed for `Printing & Snapshots`_. +You should select it prior to calling the print or snapshot dialog boxes. + +|bcenter| |ControllerLook_1| |ecenter| + +|newpage| + + +.. _The Filter Tab: + +The Filter Tab +-------------- + +The filter tab let you select what hierarchical levels of your design will be +displayed. Hierarchy level are numbered top-down: the level 0 correspond to +the top-level cell, the level one to the instances of the top-level Cell and +so on. + +There are also check boxes to enable/disable the processing of Terminal Cell, +Master Cells and Compnents. The processing of Terminal Cell (hierarchy leaf +cells) is disabled by default when you load a hierarchical design and enabled +when you load a single Cell. + +You can choose what kind of form to give to the rubbers and the type of +unit used to display coordinates. + +.. note:: *What are Rubbers:* |Hurricane| uses *Rubbers* to materialize + physical gaps in net topology. That is, if some wires are missing to + connect two or more parts of net, a *rubber* will be drawn between them + to signal the gap. + + For example, after the detailed routing no *rubbers* should remains. + They have been made *very* visibles as big violet lines... + +|bcenter| |ControllerFilter_1| |ecenter| + +|newpage| + + +.. _The Layers&Go Tab: + +The Layers&Go Tab +----------------- + +Control the individual display of all *layers* and *Gos*. + +* *Layers* correspond to a true physical layer. From a |Hurricane| point of + view they are all the *BasicLayers* (could be matched to GDSII). +* *Gos* stands from *Graphical Objects*, they are drawings that have no + physical existence but are added by the various tools to display extra + information. One good exemple is the density map of the detailed router, + to easily locate congested areas. + +For each layer/Go there are two check boxes: + +* The normal one triggers the display. +* The red-outlined allows objects of that layer to be selectable or not. + +|bcenter| |ControllerLayersGos_1| |ecenter| + + +.. _The Netlist Tab: + +The Netlist Tab +--------------- + +The *Netlist* tab shows the list of nets... By default the tab is not +*synched* with the displayed Cell. To see the nets you must check the +**Sync Netlist** checkbox. You can narrow the set of displayed nets by +using the filter pattern (supports regular expressions). + +An very useful feature is to enable the **Sync Selection**, which will +automatically select all the components of the selected net(s). You can +select multiple nets. In the figure the net ``auxsc35`` is selected and +is highlited in the *Viewer*. + +|bcenter| |ControllerNetlist_1| |ecenter| +|bcenter| |ViewerNetlist_1| |ecenter| + + +.. _The Selection Tab: + +The Selection Tab +----------------- + +The *Selection* tab list all the components currently selecteds. They +can be filtered thanks to the filter pattern. + +Used in conjunction with the *Netlist* **Sync Selection** you will all see +all the components part of *net*. + +In this list, you can toggle individually the selection of component by +pressing the ``t`` key. When unselected in this way a component is not +removed from the the selection list but instead displayed in red italic. +To see where a component is you may make it blink by repeatedly press +the ``t`` key... + +|bcenter| |ControllerSelection_1| |ecenter| + + +.. _The Inspector Tab: + +The Inspector Tab +----------------- + +This tab is very useful, but mostly for |Coriolis| developpers. It allows +to browse through the live DataBase. The *Inspector* provide three entry points: + +* **DataBase**: Starts from the whole |Hurricane| DataBase. +* **Cell**: Inspect the currently loaded Cell. +* **Selection**: Inspect the object currently highlited in the *Selection* tab. + +Once an entry point has been activated, you may recursively expore all +it's fields using the right/left arrows. + +.. note:: *Do not put your fingers in the socket:* when inspecting + anything, do not modify the DataBase. If any object under inspection + is deleted, you will crash the application... + +.. note:: *Implementation Detail:* the inspector support is done with + ``Slot``, ``Record`` and ``getString()``. + +|bcenter| |ControllerInspector_1| |ecenter| +|bcenter| |ControllerInspector_2| |ecenter| +|bcenter| |ControllerInspector_3| |ecenter| + + +.. _The Settings Tab: + +The Settings Tab +---------------- + +Here comes the description of the *Settings* tab. + +|bcenter| |ControllerSettings_1| |ecenter| diff --git a/documentation/_build/html/_sources/UsersGuide/index.txt b/documentation/_build/html/_sources/UsersGuide/index.txt new file mode 100644 index 00000000..7121510a --- /dev/null +++ b/documentation/_build/html/_sources/UsersGuide/index.txt @@ -0,0 +1,21 @@ +.. -*- mode: rst; explicit-buffer-name: "index.rst" -*- + +.. include:: ../etc/definitions.rst + + +======================= +Coriolis User's Guide +======================= + +Printable version of this document `UsersGuide.pdf <../../../pdf/main/UsersGuide.pdf>`_. + + +.. toctree:: + :maxdepth: 2 + + LicenseCredits.rst + Releases.rst + Installation.rst + Configuration.rst + ViewerTools.rst + ScriptsPlugins.rst diff --git a/documentation/_build/html/_sources/Viewer/Viewer.txt b/documentation/_build/html/_sources/Viewer/Viewer.txt new file mode 100644 index 00000000..c103b413 --- /dev/null +++ b/documentation/_build/html/_sources/Viewer/Viewer.txt @@ -0,0 +1,11 @@ +.. -*- Mode: rst -*- + +.. include:: ../etc/definitions.rst + + +================== +Viewer Reference +================== + +The Viewer C++ API reference is generated by Doxygen_ and is +available here: `Viewer `_ diff --git a/documentation/_build/html/_sources/etc/definitions.txt b/documentation/_build/html/_sources/etc/definitions.txt new file mode 100644 index 00000000..ab364f9b --- /dev/null +++ b/documentation/_build/html/_sources/etc/definitions.txt @@ -0,0 +1,182 @@ +.. -*- Mode: rst; explicit-buffer-name: "definition.rst" -*- + + +.. role:: raw-html(raw) + :format: html + +.. role:: raw-latex(raw) + :format: latex + +.. role:: ul +.. role:: cb +.. role:: sc +.. role:: fboxtt + +.. HTML/LaTeX backends mixed macros. +.. |br| replace:: :raw-latex:`\linebreak` :raw-html:`
    ` +.. |medskip| replace:: :raw-latex:`\medskip` :raw-html:`
    ` +.. |newpage| replace:: :raw-latex:`\newpage` +.. |linebreak| replace:: :raw-latex:`\smallskip` +.. |noindent| replace:: :raw-latex:`\noindent` :raw-html:`

    ` +.. |dotfill| replace:: :raw-html:`  ` +.. |bcenter| replace:: :raw-latex:`\begin{center}` +.. |ecenter| replace:: :raw-latex:`\end{center}` +.. |pagestylefancy| replace:: :raw-latex:`\thispagestyle{fancy}` + + +.. Acronyms & names. +.. |GNU| replace:: :sc:`gnu` +.. |LGPL| replace:: :sc:`lgpl` +.. |GPL| replace:: :sc:`gpl` +.. |UPMC| replace:: :sc:`upmc` +.. |Bull| replace:: :sc:`Bull` +.. |Cadence| replace:: :sc:`Cadence` +.. |Si2| replace:: :sc:`Si2` +.. |LEFDEF| replace:: :sc:`lefdef` +.. |Flute| replace:: :sc:`Flute` +.. |MacOS| replace:: :sc:`MacOS` +.. |RHEL6| replace:: :sc:`rhel6` +.. |RHEL7| replace:: :sc:`rhel7` +.. |SL6| replace:: :sc:`Scientific Linux 6` +.. |SL7| replace:: :sc:`Scientific Linux 7` +.. |Scientific Linux| replace:: :sc:`Scientific Linux` +.. |RedHat| replace:: :sc:`RedHat` +.. |Fedora| replace:: :sc:`Fedora` +.. |FC13| replace:: :sc:`fc13` +.. |Debian| replace:: :sc:`Debian` +.. |Ubuntu| replace:: :sc:`Ubuntu` + +.. |Alexandre| replace:: :sc:`Alexandre` +.. |Belloeil| replace:: :sc:`Belloeil` +.. |Chaput| replace:: :sc:`Chaput` +.. |Chu| replace:: :sc:`Chu` +.. |Clement| replace:: :sc:`Clement` +.. |Dupuis| replace:: :sc:`Dupuis` +.. |Escassut| replace:: :sc:`Escassut` +.. |Gouvine| replace:: :sc:`Gouvine` +.. |Masson| replace:: :sc:`Masson` +.. |Sroka| replace:: :sc:`Sroka` +.. |Yifei| replace:: :sc:`Yifei` + +.. |ANSI| replace:: :sc:`ansi` +.. |MIPS| replace:: :sc:`mips` +.. |Am2901| replace:: :sc:`Am2901` +.. |Hurricane| replace:: :sc:`Hurricane` +.. |HurricaneAMS| replace:: :sc:`HurricaneAMS` +.. |Alliance| replace:: :sc:`Alliance` +.. |Yosys| replace:: :sc:`Yosys` +.. |GenLib| replace:: :sc:`GenLib` +.. |Nero| replace:: :sc:`Nero` +.. |Druc| replace:: :cb:`Druc` +.. |Coloquinte| replace:: :sc:`Coloquinte` +.. |Coriolis| replace:: :sc:`Coriolis` +.. |Coriolis1| replace:: :sc:`Coriolis 1` +.. |Coriolis2| replace:: :sc:`Coriolis 2` +.. |VLSISAPD| replace:: :sc:`vlsisapd` +.. |CRLcore| replace:: :sc:`CRLcore` +.. |Cyclop| replace:: :sc:`Cyclop` +.. |Nimbus| replace:: :sc:`Nimbus` +.. |hMetis| replace:: :sc:`hMetis` +.. |Mauka| replace:: :sc:`Mauka` +.. |Etesian| replace:: :sc:`Etesian` +.. |Knik| replace:: :sc:`Knik` +.. |Katabatic| replace:: :sc:`Katabatic` +.. |Kite| replace:: :sc:`Kite` +.. |Stratus| replace:: :sc:`Stratus` +.. |Stratus1| replace:: :sc:`Stratus1` +.. |Stratus2| replace:: :sc:`Stratus2` +.. |Unicorn| replace:: :sc:`Unicorn` +.. |ccb| replace:: :cb:`ccb` +.. |cgt| replace:: :cb:`cgt` +.. |Chams| replace:: :sc:`Chams` +.. |OpenChams| replace:: :sc:`OpenChams` +.. |Pharos| replace:: :cb:`Pharos` +.. |API| replace:: :sc:`api` +.. |STL| replace:: :sc:`stl` +.. |XML| replace:: :sc:`xml` +.. |pdf| replace:: :sc:`pdf` +.. |UTF-8| replace:: :sc:`utf-8` +.. |Python| replace:: :sc:`Python` +.. |Linux| replace:: :sc:`Linux` +.. |MacPorts| replace:: :sc:`MacPorts` +.. |devtoolset2| replace:: :cb:`devtoolset2` +.. |boost| replace:: :cb:`boost` +.. |Qt| replace:: :sc:`qt` +.. |tty| replace:: :cb:`tty` +.. |svn| replace:: :cb:`svn` +.. |git| replace:: :cb:`git` +.. |rpm| replace:: :cb:`rpm` +.. |gdb| replace:: :cb:`gdb` +.. |cmake| replace:: :cb:`cmake` +.. |struct| replace:: :cb:`struct` + +.. |KeyUp| replace:: :fboxtt:`Up` +.. |KeyDown| replace:: :fboxtt:`Down` +.. |KeyLeft| replace:: :fboxtt:`Left` +.. |KeyRight| replace:: :fboxtt:`Right` +.. |KeyF| replace:: :fboxtt:`f` +.. |KeyL| replace:: :fboxtt:`l` +.. |KeyG| replace:: :fboxtt:`g` +.. |KeyZ| replace:: :fboxtt:`z` +.. |KeyM| replace:: :fboxtt:`m` +.. |KeyI| replace:: :fboxtt:`i` +.. |KeyK| replace:: :fboxtt:`k` +.. |KeyP| replace:: :fboxtt:`p` +.. |KeyO| replace:: :fboxtt:`o` +.. |KeyW| replace:: :fboxtt:`w` +.. |KeyQ| replace:: :fboxtt:`q` +.. |KeyCapK| replace:: :fboxtt:`K` +.. |KeyCapS| replace:: :fboxtt:`S` +.. |Plus| replace:: :fboxtt:`+` +.. |KeyESC| replace:: :fboxtt:`ESC` +.. |CTRL| replace:: :fboxtt:`CTRL` +.. |CTRL_L| replace:: :fboxtt:`CTRL+L` +.. |CTRL_I| replace:: :fboxtt:`CTRL+I` +.. |CTRL_P| replace:: :fboxtt:`CTRL+P` +.. |CTRL_O| replace:: :fboxtt:`CTRL+O` +.. |CTRL_W| replace:: :fboxtt:`CTRL+W` +.. |CTRL_Q| replace:: :fboxtt:`CTRL+Q` +.. |CTRL_Down| replace:: :fboxtt:`CTRL+Down` +.. |CTRL_Up| replace:: :fboxtt:`CTRL+Up` +.. |CTRL_Left| replace:: :fboxtt:`CTRL+Left` +.. |CTRL_Right| replace:: :fboxtt:`CTRL+Right` + +.. URLs +.. _Doxygen: http://www.stack.nl/~dimitri/doxygen/ +.. _LaTeX2HTML: http://www.latex2html.org/ +.. _FGR: http://vlsicad.eecs.umich.edu/BK/FGR/ +.. _Box Router: http://www.cerc.utexas.edu/~thyeros/boxrouter/boxrouter.htm +.. _hMETIS: http://glaros.dtc.umn.edu/gkhome/views/metis +.. _Knik Thesis: http://www-soc.lip6.fr/en/users/damiendupuis/PhD/ +.. _RapidJSON: http://miloyip.github.io/rapidjson/ +.. _Python/C API Reference Manual: https://docs.python.org/2/c-api/index.html + +.. Standard CAO/VLSI Concepts. +.. |netlist| replace:: *netlist* +.. |netlists| replace:: *netlists* +.. |layout| replace:: *layout* +.. |layouts| replace:: *layouts* +.. |CMOS| replace:: :sc:`cmos` +.. |VHDL| replace:: :sc:`vhdl` +.. |NWELL| replace:: :sc:`nwell` +.. |POWER| replace:: :sc:`power` +.. |GROUND| replace:: :sc:`ground` + +.. MBK Concepts +.. |MBK| replace:: :sc:`mbk` +.. |LOFIG| replace:: :cb:`Lofig` +.. |PHFIG| replace:: :cb:`Phfig` +.. |SxLib| replace:: :sc:`SxLib` +.. |RDS| replace:: :sc:`rds` + +.. Hurricane Concepts. +.. |hypernet| replace:: *hypernet* +.. |hypernets| replace:: *hypernets* +.. |Cell| replace:: *Cell* +.. |Rings| replace:: *Rings* +.. |QuadTrees| replace:: *QuadTrees* +.. |Collections| replace:: *Collections* +.. |ap| replace:: :cb:`ap` +.. |vst| replace:: :cb:`vst` +.. |kgr| replace:: :cb:`kgr` +.. |dot_conf| replace:: :cb:`.conf` diff --git a/documentation/_build/html/_sources/index.txt b/documentation/_build/html/_sources/index.txt new file mode 100644 index 00000000..eb622595 --- /dev/null +++ b/documentation/_build/html/_sources/index.txt @@ -0,0 +1,34 @@ +.. -*- mode: rst; explicit-buffer-name: "index.rst" -*- + +.. Coriolis documentation master file, created by + sphinx-quickstart on Mon Jul 10 15:08:36 2017. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to Coriolis's documentation! +==================================== + +Contents: + +.. toctree:: + + UsersGuide/index.rst + Stratus/Stratus.rst + DpGen/DpGen.rst + Patterns/Patterns.rst + Hurricane/Hurricane.rst + Viewer/Viewer.rst + CrlCore/CrlCore.rst + Unicorn/Unicorn.rst + PythonCpp/index.rst + RDS/index.rst + + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + diff --git a/documentation/etc/SoC-ReST.css b/documentation/_build/html/_static/SoC-ReST.css similarity index 96% rename from documentation/etc/SoC-ReST.css rename to documentation/_build/html/_static/SoC-ReST.css index eb5b2304..6b45edf2 100644 --- a/documentation/etc/SoC-ReST.css +++ b/documentation/_build/html/_static/SoC-ReST.css @@ -34,8 +34,10 @@ hr { color: #09550b; border: 1px dotted #09550b; border-style: none none dotted; +/* padding-top: 10pt; padding-bottom: 10pt; + */ } h2, h3 { @@ -77,6 +79,17 @@ div.contents p.first { font-weight: bold; } +table.contentstable { + width: 90%; +} + +table.contentstable, +table.contentstable tr, +table.contentstable tr td +{ + border: none; +} + div#centered { margin-left: auto; @@ -172,14 +185,14 @@ img.addborder { border: 1px solid black; } -img.align-center { +img.align-center, img.align-middle { display: block; /* clear: both; */ margin-left: auto; margin-right: auto; - width: 99%; + width: 70%; text-align: center; } @@ -206,7 +219,7 @@ div.note { border-left-style: solid; padding: 1px 10pt 1px 55px; /*background: #fff676 url('/dsk/l1/jpc/pictures/ReST/clipboard.png') no-repeat 0% 50%;;*/ - background: #ffdd66 url('../etc/images/clipboard.png') no-repeat 0% 50%;; + background: #ffdd66 url('../_static/images/clipboard.png') no-repeat 0% 50%;; font-size: 90% } @@ -216,7 +229,7 @@ div.error { border-left-width: 4px; border-left-style: solid; padding: 1px 10pt 1px 55px; - background: #ffddcc url('../etc/images/i-core.png') no-repeat 0% 50%;; + background: #ffddcc url('../_static/images/i-core.png') no-repeat 0% 50%;; font-size: 90% } diff --git a/documentation/_build/html/_static/SoC.css b/documentation/_build/html/_static/SoC.css new file mode 100644 index 00000000..391cd3e0 --- /dev/null +++ b/documentation/_build/html/_static/SoC.css @@ -0,0 +1,5 @@ + +@import url("../_static/css/theme.css"); +@import url("../_static/www-SoC.css"); +@import url("../_static/SoC-ReST.css"); +@import url("../_static/pygments.css"); diff --git a/documentation/_build/html/_static/ajax-loader.gif b/documentation/_build/html/_static/ajax-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..61faf8cab23993bd3e1560bff0668bd628642330 GIT binary patch literal 673 zcmZ?wbhEHb6krfw_{6~Q|Nno%(3)e{?)x>&1u}A`t?OF7Z|1gRivOgXi&7IyQd1Pl zGfOfQ60;I3a`F>X^fL3(@);C=vM_KlFfb_o=k{|A33hf2a5d61U}gjg=>Rd%XaNQW zW@Cw{|b%Y*pl8F?4B9 zlo4Fz*0kZGJabY|>}Okf0}CCg{u4`zEPY^pV?j2@h+|igy0+Kz6p;@SpM4s6)XEMg z#3Y4GX>Hjlml5ftdH$4x0JGdn8~MX(U~_^d!Hi)=HU{V%g+mi8#UGbE-*ao8f#h+S z2a0-5+vc7MU$e-NhmBjLIC1v|)9+Im8x1yacJ7{^tLX(ZhYi^rpmXm0`@ku9b53aN zEXH@Y3JaztblgpxbJt{AtE1ad1Ca>{v$rwwvK(>{m~Gf_=-Ro7Fk{#;i~+{{>QtvI yb2P8Zac~?~=sRA>$6{!(^3;ZP0TPFR(G_-UDU(8Jl0?(IXu$~#4A!880|o%~Al1tN literal 0 HcmV?d00001 diff --git a/documentation/_build/html/_static/basic.css b/documentation/_build/html/_static/basic.css new file mode 100644 index 00000000..43e8bafa --- /dev/null +++ b/documentation/_build/html/_static/basic.css @@ -0,0 +1,540 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox input[type="text"] { + width: 170px; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + width: 30px; +} + +img { + border: 0; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable dl, table.indextable dd { + margin-top: 0; + margin-bottom: 0; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- general body styles --------------------------------------------------- */ + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.field-list ul { + padding-left: 1em; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px 7px 0 7px; + background-color: #ffe; + width: 40%; + float: right; +} + +p.sidebar-title { + font-weight: bold; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + border: 0; + border-collapse: collapse; +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.field-list td, table.field-list th { + border: 0 !important; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +dl { + margin-bottom: 15px; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dt:target, .highlighted { + background-color: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.refcount { + color: #060; +} + +.optional { + font-size: 1.3em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +tt.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +tt.descclassname { + background-color: transparent; +} + +tt.xref, a tt { + background-color: transparent; + font-weight: bold; +} + +h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/documentation/_build/html/_static/comment-bright.png b/documentation/_build/html/_static/comment-bright.png new file mode 100644 index 0000000000000000000000000000000000000000..551517b8c83b76f734ff791f847829a760ad1903 GIT binary patch literal 3500 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 A2LJ#7 literal 0 HcmV?d00001 diff --git a/documentation/_build/html/_static/comment.png b/documentation/_build/html/_static/comment.png new file mode 100644 index 0000000000000000000000000000000000000000..92feb52b8824c6b0f59b658b1196c61de9162a95 GIT binary patch literal 3445 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 Xn!ZpXD%P(H00000NkvXXu0mjfa span.toctree-expand:before, +.rst-content h1 .headerlink:before, +.rst-content h2 .headerlink:before, +.rst-content p.caption .headerlink:before, +.rst-content h3 .headerlink:before, +.rst-content h4 .headerlink:before, +.rst-content h5 .headerlink:before, +.rst-content h6 .headerlink:before, +.rst-content dl dt .headerlink:before, +.rst-content tt.download span:first-child:before, +.rst-content code.download span:first-child:before, +.icon:before, +.wy-dropdown .caret:before, +.wy-inline-validate.wy-inline-validate-success .wy-input-context:before, +.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before, +.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before, +.wy-inline-validate.wy-inline-validate-info .wy-input-context:before, +.wy-alert, +.btn, +input[type="text"], +input[type="password"], +input[type="email"], +input[type="url"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="datetime"], +input[type="datetime-local"], +input[type="week"], +input[type="number"], +input[type="search"], +input[type="tel"], +input[type="color"], +select, +textarea, +.wy-menu-vertical li.on a, +.wy-menu-vertical li.current>a, +.wy-side-nav-search>a, +.wy-side-nav-search .wy-dropdown>a, +.wy-nav-top a +{ -webkit-font-smoothing:antialiased; } + +/* +.clearfix{*zoom:1} + +.clearfix:before,.clearfix:after{display:table; + content:""} + +.clearfix:after{clear:both} +*/ + +/*! + * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */ +@font-face { + font-family: 'FontAwesome'; + src: url("../fonts/fontawesome-webfont.eot?v=4.2.0"); + src: url("../fonts/fontawesome-webfont.eot?#iefix&v=4.2.0") format("embedded-opentype"), + url("../fonts/fontawesome-webfont.woff?v=4.2.0") format("woff"), + url("../fonts/fontawesome-webfont.ttf?v=4.2.0") format("truetype"), + url("../fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular") format("svg"); + font-weight: normal; + font-style: normal; +} + +.fa, +.wy-menu-vertical li span.toctree-expand, +.wy-menu-vertical li.on a span.toctree-expand, +.wy-menu-vertical li.current>a span.toctree-expand, +.rst-content h1 .headerlink, +.rst-content h2 .headerlink, +.rst-content h3 .headerlink, +.rst-content h4 .headerlink, +.rst-content h5 .headerlink, +.rst-content h6 .headerlink, +.rst-content dl dt .headerlink, +.rst-content p.caption .headerlink, +.rst-content tt.download span:first-child, +.rst-content code.download span:first-child, +.icon { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* +.fa-lg{font-size:1.33333em; + line-height:0.75em; + vertical-align:-15%} + +.fa-2x{font-size:2em} + +.fa-3x{font-size:3em} + +.fa-4x{font-size:4em} + +.fa-5x{font-size:5em} + +.fa-fw{width:1.28571em; + text-align:center} + +.fa-ul{padding-left:0; + margin-left:2.14286em; + list-style-type:none} + +.fa-ul>li{position:relative} + +.fa-li{position:absolute; + left:-2.14286em; + width:2.14286em; + top:0.14286em; + text-align:center} + +.fa-li.fa-lg{left:-1.85714em} + +.fa-border{padding:.2em .25em .15em; + border:solid 0.08em #eee; + border-radius:.1em} + +.pull-right{float:right} + +.pull-left{float:left} +*/ + +/* +.rst-content .pull-left.admonition-title, +.rst-content h1 .pull-left.headerlink, +.rst-content h2 .pull-left.headerlink, +.rst-content p.caption .pull-left.headerlink, +.rst-content h3 .pull-left.headerlink, +.rst-content h4 .pull-left.headerlink, +.rst-content h5 .pull-left.headerlink, +.rst-content h6 .pull-left.headerlink, +.rst-content dl dt .pull-left.headerlink, +.rst-content tt.download span.pull-left:first-child, +.rst-content code.download span.pull-left:first-child, +*/ +.fa.pull-left, +.wy-menu-vertical li span.pull-left.toctree-expand, +.wy-menu-vertical li.on a span.pull-left.toctree-expand, +.wy-menu-vertical li.current>a span.pull-left.toctree-expand, +.pull-left.icon +{ margin-right:.3em; } + +/* +.rst-content .pull-right.admonition-title, +.rst-content h1 .pull-right.headerlink, +.rst-content h2 .pull-right.headerlink, +.rst-content p.caption .pull-right.headerlink, +.rst-content h3 .pull-right.headerlink, +.rst-content h4 .pull-right.headerlink, +.rst-content h5 .pull-right.headerlink, +.rst-content h6 .pull-right.headerlink, +.rst-content dl dt .pull-right.headerlink, +.rst-content tt.download span.pull-right:first-child, +.rst-content code.download span.pull-right:first-child, +*/ +.fa.pull-right, +.wy-menu-vertical li span.pull-right.toctree-expand, +.wy-menu-vertical li.on a span.pull-right.toctree-expand, +.wy-menu-vertical li.current>a span.pull-right.toctree-expand, +.pull-right.icon +{ margin-left:.3em; } + +/* +.fa-spin{-webkit-animation:fa-spin 2s infinite linear; + animation:fa-spin 2s infinite linear} + +@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg); + transform:rotate(0deg)} + +100%{-webkit-transform:rotate(359deg); + transform:rotate(359deg)} + +} + +@keyframes fa-spin{0%{-webkit-transform:rotate(0deg); + transform:rotate(0deg)} + +100%{-webkit-transform:rotate(359deg); + transform:rotate(359deg)} + +} + +.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1); + -webkit-transform:rotate(90deg); + -ms-transform:rotate(90deg); + transform:rotate(90deg)} + +.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2); + -webkit-transform:rotate(180deg); + -ms-transform:rotate(180deg); + transform:rotate(180deg)} + +.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3); + -webkit-transform:rotate(270deg); + -ms-transform:rotate(270deg); + transform:rotate(270deg)} + +.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0); + -webkit-transform:scale(-1, 1); + -ms-transform:scale(-1, 1); + transform:scale(-1, 1)} + +.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2); + -webkit-transform:scale(1, -1); + -ms-transform:scale(1, -1); + transform:scale(1, -1)} + +:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none} + +.fa-stack{position:relative; + display:inline-block; + width:2em; + height:2em; + line-height:2em; + vertical-align:middle} + +.fa-stack-1x,.fa-stack-2x{position:absolute; + left:0; + width:100%; + text-align:center} + +.fa-stack-1x{line-height:inherit} + +.fa-stack-2x{font-size:2em} + +.fa-inverse{color:#fff} +*/ + +.fa-glass:before{content:""} + +.fa-music:before{content:"ï€"} + +.fa-search:before,.icon-search:before{content:""} + +.fa-envelope-o:before{content:""} + +.fa-heart:before{content:""} + +.fa-star:before{content:""} + +.fa-star-o:before{content:""} + +.fa-user:before{content:""} + +.fa-film:before{content:""} + +.fa-th-large:before{content:""} + +.fa-th:before{content:""} + +.fa-th-list:before{content:""} + +.fa-check:before{content:""} + +.fa-remove:before,.fa-close:before,.fa-times:before{content:"ï€"} + +.fa-search-plus:before{content:""} + +.fa-search-minus:before{content:"ï€"} + +.fa-power-off:before{content:""} + +.fa-signal:before{content:""} + +.fa-gear:before,.fa-cog:before{content:""} + +.fa-trash-o:before{content:""} + +.fa-home:before,.icon-home:before { content: ""; } + +.fa-file-o:before{content:""} + +.fa-clock-o:before{content:""} + +.fa-road:before{content:""} + +.fa-download:before,.rst-content tt.download span:first-child:before,.rst-content code.download span:first-child:before{content:""} + +.fa-arrow-circle-o-down:before{content:""} + +.fa-arrow-circle-o-up:before{content:""} + +.fa-inbox:before{content:""} + +.fa-play-circle-o:before{content:"ï€"} + +.fa-rotate-right:before,.fa-repeat:before{content:""} + +.fa-refresh:before{content:""} + +.fa-list-alt:before{content:""} + +.fa-lock:before{content:""} + +.fa-flag:before{content:""} + +.fa-headphones:before{content:""} + +.fa-volume-off:before{content:""} + +.fa-volume-down:before{content:""} + +.fa-volume-up:before{content:""} + +.fa-qrcode:before{content:""} + +.fa-barcode:before{content:""} + +.fa-tag:before{content:""} + +.fa-tags:before{content:""} + +.fa-book:before,.icon-book:before{content:""} + +.fa-bookmark:before{content:""} + +.fa-print:before{content:""} + +.fa-camera:before{content:""} + +.fa-font:before{content:""} + +.fa-bold:before{content:""} + +.fa-italic:before{content:""} + +.fa-text-height:before{content:""} + +.fa-text-width:before{content:""} + +.fa-align-left:before{content:""} + +.fa-align-center:before{content:""} + +.fa-align-right:before{content:""} + +.fa-align-justify:before{content:""} + +.fa-list:before{content:""} + +.fa-dedent:before,.fa-outdent:before{content:""} + +.fa-indent:before{content:""} + +.fa-video-camera:before{content:""} + +.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""} + +.fa-pencil:before{content:"ï€"} + +.fa-map-marker:before{content:"ï"} + +.fa-adjust:before{content:"ï‚"} + +.fa-tint:before{content:"ïƒ"} + +.fa-edit:before,.fa-pencil-square-o:before{content:"ï„"} + +.fa-share-square-o:before{content:"ï…"} + +.fa-check-square-o:before{content:"ï†"} + +.fa-arrows:before{content:"ï‡"} + +.fa-step-backward:before{content:"ïˆ"} + +.fa-fast-backward:before{content:"ï‰"} + +.fa-backward:before{content:"ïŠ"} + +.fa-play:before{content:"ï‹"} + +.fa-pause:before{content:"ïŒ"} + +.fa-stop:before{content:"ï"} + +.fa-forward:before{content:"ïŽ"} + +.fa-fast-forward:before{content:"ï"} + +.fa-step-forward:before{content:"ï‘"} + +.fa-eject:before{content:"ï’"} + +.fa-chevron-left:before{content:"ï“"} + +.fa-chevron-right:before{content:"ï”"} + +.fa-plus-circle:before{content:"ï•"} + +.fa-minus-circle:before{content:"ï–"} + +.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:"ï—"} + +.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:"ï˜"} + +.fa-question-circle:before{content:"ï™"} + +.fa-info-circle:before{content:"ïš"} + +.fa-crosshairs:before{content:"ï›"} + +.fa-times-circle-o:before{content:"ïœ"} + +.fa-check-circle-o:before{content:"ï"} + +.fa-ban:before{content:"ïž"} + +.fa-arrow-left:before{content:"ï "} + +.fa-arrow-right:before{content:"ï¡"} + +.fa-arrow-up:before{content:"ï¢"} + +.fa-arrow-down:before{content:"ï£"} + +.fa-mail-forward:before,.fa-share:before{content:"ï¤"} + +.fa-expand:before{content:"ï¥"} + +.fa-compress:before{content:"ï¦"} + +.fa-plus:before{content:"ï§"} + +.fa-minus:before{content:"ï¨"} + +.fa-asterisk:before{content:"ï©"} + +.fa-exclamation-circle:before, +.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before, +.wy-inline-validate.wy-inline-validate-info .wy-input-context:before +{content:"ïª"} + +.fa-gift:before{content:"ï«"} + +.fa-leaf:before{content:"ï¬"} + +.fa-fire:before,.icon-fire:before{content:"ï­"} + +.fa-eye:before{content:"ï®"} + +.fa-eye-slash:before{content:"ï°"} + +.fa-warning:before,.fa-exclamation-triangle:before{content:"ï±"} + +.fa-plane:before{content:"ï²"} + +.fa-calendar:before{content:"ï³"} + +.fa-random:before{content:"ï´"} + +.fa-comment:before{content:"ïµ"} + +.fa-magnet:before{content:"ï¶"} + +.fa-chevron-up:before{content:"ï·"} + +.fa-chevron-down:before{content:"ï¸"} + +.fa-retweet:before{content:"ï¹"} + +.fa-shopping-cart:before{content:"ïº"} + +.fa-folder:before{content:"ï»"} + +.fa-folder-open:before{content:"ï¼"} + +.fa-arrows-v:before{content:"ï½"} + +.fa-arrows-h:before{content:"ï¾"} + +.fa-bar-chart-o:before,.fa-bar-chart:before{content:"ï‚€"} + +.fa-twitter-square:before{content:"ï‚"} + +.fa-facebook-square:before{content:"ï‚‚"} + +.fa-camera-retro:before{content:""} + +.fa-key:before{content:"ï‚„"} + +.fa-gears:before,.fa-cogs:before{content:"ï‚…"} + +.fa-comments:before{content:""} + +.fa-thumbs-o-up:before{content:""} + +.fa-thumbs-o-down:before{content:""} + +.fa-star-half:before{content:""} + +.fa-heart-o:before{content:"ï‚Š"} + +.fa-sign-out:before{content:"ï‚‹"} + +.fa-linkedin-square:before{content:"ï‚Œ"} + +.fa-thumb-tack:before{content:"ï‚"} + +.fa-external-link:before{content:"ï‚Ž"} + +.fa-sign-in:before{content:"ï‚"} + +.fa-trophy:before{content:"ï‚‘"} + +.fa-github-square:before{content:"ï‚’"} + +.fa-upload:before{content:"ï‚“"} + +.fa-lemon-o:before{content:"ï‚”"} + +.fa-phone:before{content:"ï‚•"} + +.fa-square-o:before{content:"ï‚–"} + +.fa-bookmark-o:before{content:"ï‚—"} + +.fa-phone-square:before{content:""} + +.fa-twitter:before{content:"ï‚™"} + +.fa-facebook:before{content:"ï‚š"} + +.fa-github:before,.icon-github:before{content:"ï‚›"} + +.fa-unlock:before{content:"ï‚œ"} + +.fa-credit-card:before{content:"ï‚"} + +.fa-rss:before{content:"ï‚ž"} + +.fa-hdd-o:before{content:"ï‚ "} + +.fa-bullhorn:before{content:"ï‚¡"} + +.fa-bell:before{content:""} + +.fa-certificate:before{content:"ï‚£"} + +.fa-hand-o-right:before{content:""} + +.fa-hand-o-left:before{content:"ï‚¥"} + +.fa-hand-o-up:before{content:""} + +.fa-hand-o-down:before{content:""} + +.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""} + +.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:"ï‚©"} + +.fa-arrow-circle-up:before{content:""} + +.fa-arrow-circle-down:before{content:"ï‚«"} + +.fa-globe:before{content:""} + +.fa-wrench:before{content:"ï‚­"} + +.fa-tasks:before{content:"ï‚®"} + +.fa-filter:before{content:"ï‚°"} + +.fa-briefcase:before{content:""} + +.fa-arrows-alt:before{content:""} + +.fa-group:before,.fa-users:before{content:""} + +.fa-chain:before,.fa-link:before,.icon-link:before{content:"ïƒ"} + +.fa-cloud:before{content:""} + +.fa-flask:before{content:""} + +.fa-cut:before,.fa-scissors:before{content:""} + +.fa-copy:before,.fa-files-o:before{content:""} + +.fa-paperclip:before{content:""} + +.fa-save:before,.fa-floppy-o:before{content:""} + +.fa-square:before{content:""} + +.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:""} + +.fa-list-ul:before{content:""} + +.fa-list-ol:before{content:""} + +.fa-strikethrough:before{content:""} + +.fa-underline:before{content:"ïƒ"} + +.fa-table:before{content:""} + +.fa-magic:before{content:"ïƒ"} + +.fa-truck:before{content:""} + +.fa-pinterest:before{content:""} + +.fa-pinterest-square:before{content:""} + +.fa-google-plus-square:before{content:""} + +.fa-google-plus:before{content:""} + +.fa-money:before{content:""} + +.fa-caret-down:before,.wy-dropdown .caret:before,.icon-caret-down:before{content:""} + +.fa-caret-up:before{content:""} + +.fa-caret-left:before{content:""} + +.fa-caret-right:before{content:""} + +.fa-columns:before{content:""} + +.fa-unsorted:before,.fa-sort:before{content:""} + +.fa-sort-down:before,.fa-sort-desc:before{content:"ïƒ"} + +.fa-sort-up:before,.fa-sort-asc:before{content:""} + +.fa-envelope:before{content:""} + +.fa-linkedin:before{content:""} + +.fa-rotate-left:before,.fa-undo:before{content:""} + +.fa-legal:before,.fa-gavel:before{content:""} + +.fa-dashboard:before,.fa-tachometer:before{content:""} + +.fa-comment-o:before{content:""} + +.fa-comments-o:before{content:""} + +.fa-flash:before,.fa-bolt:before{content:""} + +.fa-sitemap:before{content:""} + +.fa-umbrella:before{content:""} + +.fa-paste:before,.fa-clipboard:before{content:""} + +.fa-lightbulb-o:before{content:""} + +.fa-exchange:before{content:""} + +.fa-cloud-download:before{content:""} + +.fa-cloud-upload:before{content:""} + +.fa-user-md:before{content:""} + +.fa-stethoscope:before{content:""} + +.fa-suitcase:before{content:""} + +.fa-bell-o:before{content:"ï‚¢"} + +.fa-coffee:before{content:""} + +.fa-cutlery:before{content:""} + +.fa-file-text-o:before{content:""} + +.fa-building-o:before{content:""} + +.fa-hospital-o:before{content:""} + +.fa-ambulance:before{content:""} + +.fa-medkit:before{content:""} + +.fa-fighter-jet:before{content:""} + +.fa-beer:before{content:""} + +.fa-h-square:before{content:""} + +.fa-plus-square:before{content:""} + +.fa-angle-double-left:before{content:"ï„€"} + +.fa-angle-double-right:before{content:"ï„"} + +.fa-angle-double-up:before{content:"ï„‚"} + +.fa-angle-double-down:before{content:""} + +.fa-angle-left:before{content:"ï„„"} + +.fa-angle-right:before{content:"ï„…"} + +.fa-angle-up:before{content:""} + +.fa-angle-down:before{content:""} + +.fa-desktop:before{content:""} + +.fa-laptop:before{content:""} + +.fa-tablet:before{content:"ï„Š"} + +.fa-mobile-phone:before,.fa-mobile:before{content:"ï„‹"} + +.fa-circle-o:before{content:"ï„Œ"} + +.fa-quote-left:before{content:"ï„"} + +.fa-quote-right:before{content:"ï„Ž"} + +.fa-spinner:before{content:"ï„"} + +.fa-circle:before{content:"ï„‘"} + +.fa-mail-reply:before,.fa-reply:before{content:"ï„’"} + +.fa-github-alt:before{content:"ï„“"} + +.fa-folder-o:before{content:"ï„”"} + +.fa-folder-open-o:before{content:"ï„•"} + +.fa-smile-o:before{content:""} + +.fa-frown-o:before{content:"ï„™"} + +.fa-meh-o:before{content:"ï„š"} + +.fa-gamepad:before{content:"ï„›"} + +.fa-keyboard-o:before{content:"ï„œ"} + +.fa-flag-o:before{content:"ï„"} + +.fa-flag-checkered:before{content:"ï„ž"} + +.fa-terminal:before{content:"ï„ "} + +.fa-code:before{content:"ï„¡"} + +.fa-mail-reply-all:before,.fa-reply-all:before{content:"ï„¢"} + +.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"ï„£"} + +.fa-location-arrow:before{content:""} + +.fa-crop:before{content:"ï„¥"} + +.fa-code-fork:before{content:""} + +.fa-unlink:before,.fa-chain-broken:before{content:""} + +.fa-question:before{content:""} + +.fa-info:before{content:"ï„©"} + +.fa-exclamation:before{content:""} + +.fa-superscript:before{content:"ï„«"} + +.fa-subscript:before{content:""} + +.fa-eraser:before{content:"ï„­"} + +.fa-puzzle-piece:before{content:"ï„®"} + +.fa-microphone:before{content:"ï„°"} + +.fa-microphone-slash:before{content:""} + +.fa-shield:before{content:""} + +.fa-calendar-o:before{content:""} + +.fa-fire-extinguisher:before{content:"ï„´"} + +.fa-rocket:before{content:""} + +.fa-maxcdn:before{content:""} + +.fa-chevron-circle-left:before{content:"ï„·"} + +.fa-chevron-circle-right:before{content:""} + +.fa-chevron-circle-up:before{content:""} + +.fa-chevron-circle-down:before{content:""} + +.fa-html5:before{content:"ï„»"} + +.fa-css3:before{content:""} + +.fa-anchor:before{content:""} + +.fa-unlock-alt:before{content:""} + +.fa-bullseye:before{content:"ï…€"} + +.fa-ellipsis-h:before{content:"ï…"} + +.fa-ellipsis-v:before{content:"ï…‚"} + +.fa-rss-square:before{content:"ï…ƒ"} + +.fa-play-circle:before{content:"ï…„"} + +.fa-ticket:before{content:"ï……"} + +.fa-minus-square:before{content:"ï…†"} + +.fa-minus-square-o:before, +.wy-menu-vertical li.on a span.toctree-expand:before, +.wy-menu-vertical li.current>a span.toctree-expand:before +{ content:"ï…‡"; } + +.fa-level-up:before{content:"ï…ˆ"} + +.fa-level-down:before{content:"ï…‰"} + +.fa-check-square:before{content:"ï…Š"} + +.fa-pencil-square:before{content:"ï…‹"} + +.fa-external-link-square:before{content:"ï…Œ"} + +.fa-share-square:before{content:"ï…"} + +.fa-compass:before{content:"ï…Ž"} + +.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"ï…"} + +.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"ï…‘"} + +.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"ï…’"} + +.fa-euro:before,.fa-eur:before{content:"ï…“"} + +.fa-gbp:before{content:"ï…”"} + +.fa-dollar:before,.fa-usd:before{content:"ï…•"} + +.fa-rupee:before,.fa-inr:before{content:"ï…–"} + +.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"ï…—"} + +.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"ï…˜"} + +.fa-won:before,.fa-krw:before{content:"ï…™"} + +.fa-bitcoin:before,.fa-btc:before{content:"ï…š"} + +.fa-file:before{content:"ï…›"} + +.fa-file-text:before{content:"ï…œ"} + +.fa-sort-alpha-asc:before{content:"ï…"} + +.fa-sort-alpha-desc:before{content:"ï…ž"} + +.fa-sort-amount-asc:before{content:"ï… "} + +.fa-sort-amount-desc:before{content:"ï…¡"} + +.fa-sort-numeric-asc:before{content:"ï…¢"} + +.fa-sort-numeric-desc:before{content:"ï…£"} + +.fa-thumbs-up:before{content:"ï…¤"} + +.fa-thumbs-down:before{content:"ï…¥"} + +.fa-youtube-square:before{content:"ï…¦"} + +.fa-youtube:before{content:"ï…§"} + +.fa-xing:before{content:"ï…¨"} + +.fa-xing-square:before{content:"ï…©"} + +.fa-youtube-play:before{content:"ï…ª"} + +.fa-dropbox:before{content:"ï…«"} + +.fa-stack-overflow:before{content:"ï…¬"} + +.fa-instagram:before{content:"ï…­"} + +.fa-flickr:before{content:"ï…®"} + +.fa-adn:before{content:"ï…°"} + +.fa-bitbucket:before,.icon-bitbucket:before{content:"ï…±"} + +.fa-bitbucket-square:before{content:"ï…²"} + +.fa-tumblr:before{content:"ï…³"} + +.fa-tumblr-square:before{content:"ï…´"} + +.fa-long-arrow-down:before{content:"ï…µ"} + +.fa-long-arrow-up:before{content:"ï…¶"} + +.fa-long-arrow-left:before{content:"ï…·"} + +.fa-long-arrow-right:before{content:"ï…¸"} + +.fa-apple:before{content:"ï…¹"} + +.fa-windows:before{content:"ï…º"} + +.fa-android:before{content:"ï…»"} + +.fa-linux:before{content:"ï…¼"} + +.fa-dribbble:before{content:"ï…½"} + +.fa-skype:before{content:"ï…¾"} + +.fa-foursquare:before{content:""} + +.fa-trello:before{content:"ï†"} + +.fa-female:before{content:""} + +.fa-male:before{content:""} + +.fa-gittip:before{content:""} + +.fa-sun-o:before{content:""} + +.fa-moon-o:before{content:""} + +.fa-archive:before{content:""} + +.fa-bug:before{content:""} + +.fa-vk:before{content:""} + +.fa-weibo:before{content:""} + +.fa-renren:before{content:""} + +.fa-pagelines:before{content:""} + +.fa-stack-exchange:before{content:"ï†"} + +.fa-arrow-circle-o-right:before{content:""} + +.fa-arrow-circle-o-left:before{content:"ï†"} + +.fa-toggle-left:before,.fa-caret-square-o-left:before{content:""} + +.fa-dot-circle-o:before{content:""} + +.fa-wheelchair:before{content:""} + +.fa-vimeo-square:before{content:""} + +.fa-turkish-lira:before,.fa-try:before{content:""} + +.fa-plus-square-o:before, +.wy-menu-vertical li span.toctree-expand:before +{ content:""; } + +.fa-space-shuttle:before{content:""} + +.fa-slack:before{content:""} + +.fa-envelope-square:before{content:""} + +.fa-wordpress:before{content:""} + +.fa-openid:before{content:""} + +.fa-institution:before,.fa-bank:before,.fa-university:before{content:""} + +.fa-mortar-board:before,.fa-graduation-cap:before{content:"ï†"} + +.fa-yahoo:before{content:""} + +.fa-google:before{content:""} + +.fa-reddit:before{content:""} + +.fa-reddit-square:before{content:""} + +.fa-stumbleupon-circle:before{content:""} + +.fa-stumbleupon:before{content:""} + +.fa-delicious:before{content:""} + +.fa-digg:before{content:""} + +.fa-pied-piper:before{content:""} + +.fa-pied-piper-alt:before{content:""} + +.fa-drupal:before{content:""} + +.fa-joomla:before{content:""} + +.fa-language:before{content:""} + +.fa-fax:before{content:""} + +.fa-building:before{content:""} + +.fa-child:before{content:""} + +.fa-paw:before{content:""} + +.fa-spoon:before{content:""} + +.fa-cube:before{content:""} + +.fa-cubes:before{content:""} + +.fa-behance:before{content:""} + +.fa-behance-square:before{content:""} + +.fa-steam:before{content:""} + +.fa-steam-square:before{content:""} + +.fa-recycle:before{content:""} + +.fa-automobile:before,.fa-car:before{content:""} + +.fa-cab:before,.fa-taxi:before{content:""} + +.fa-tree:before{content:""} + +.fa-spotify:before{content:""} + +.fa-deviantart:before{content:""} + +.fa-soundcloud:before{content:""} + +.fa-database:before{content:""} + +.fa-file-pdf-o:before{content:"ï‡"} + +.fa-file-word-o:before{content:""} + +.fa-file-excel-o:before{content:""} + +.fa-file-powerpoint-o:before{content:""} + +.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:""} + +.fa-file-zip-o:before,.fa-file-archive-o:before{content:""} + +.fa-file-sound-o:before,.fa-file-audio-o:before{content:""} + +.fa-file-movie-o:before,.fa-file-video-o:before{content:""} + +.fa-file-code-o:before{content:""} + +.fa-vine:before{content:""} + +.fa-codepen:before{content:""} + +.fa-jsfiddle:before{content:""} + +.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"ï‡"} + +.fa-circle-o-notch:before{content:""} + +.fa-ra:before,.fa-rebel:before{content:"ï‡"} + +.fa-ge:before,.fa-empire:before{content:""} + +.fa-git-square:before{content:""} + +.fa-git:before{content:""} + +.fa-hacker-news:before{content:""} + +.fa-tencent-weibo:before{content:""} + +.fa-qq:before{content:""} + +.fa-wechat:before,.fa-weixin:before{content:""} + +.fa-send:before,.fa-paper-plane:before{content:""} + +.fa-send-o:before,.fa-paper-plane-o:before{content:""} + +.fa-history:before{content:""} + +.fa-circle-thin:before{content:""} + +.fa-header:before{content:""} + +.fa-paragraph:before{content:"ï‡"} + +.fa-sliders:before{content:""} + +.fa-share-alt:before{content:""} + +.fa-share-alt-square:before{content:""} + +.fa-bomb:before{content:""} + +.fa-soccer-ball-o:before,.fa-futbol-o:before{content:""} + +.fa-tty:before{content:""} + +.fa-binoculars:before{content:""} + +.fa-plug:before{content:""} + +.fa-slideshare:before{content:""} + +.fa-twitch:before{content:""} + +.fa-yelp:before{content:""} + +.fa-newspaper-o:before{content:""} + +.fa-wifi:before{content:""} + +.fa-calculator:before{content:""} + +.fa-paypal:before{content:""} + +.fa-google-wallet:before{content:""} + +.fa-cc-visa:before{content:""} + +.fa-cc-mastercard:before{content:""} + +.fa-cc-discover:before{content:""} + +.fa-cc-amex:before{content:""} + +.fa-cc-paypal:before{content:""} + +.fa-cc-stripe:before{content:""} + +.fa-bell-slash:before{content:""} + +.fa-bell-slash-o:before{content:""} + +.fa-trash:before{content:""} + +.fa-copyright:before{content:""} + +.fa-at:before{content:""} + +.fa-eyedropper:before{content:""} + +.fa-paint-brush:before{content:""} + +.fa-birthday-cake:before{content:""} + +.fa-area-chart:before{content:""} + +.fa-pie-chart:before{content:""} + +.fa-line-chart:before{content:"ïˆ"} + +.fa-lastfm:before{content:""} + +.fa-lastfm-square:before{content:""} + +.fa-toggle-off:before{content:""} + +.fa-toggle-on:before{content:""} + +.fa-bicycle:before{content:""} + +.fa-bus:before{content:""} + +.fa-ioxhost:before{content:""} + +.fa-angellist:before{content:""} + +.fa-cc:before{content:""} + +.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:""} + +.fa-meanpath:before{content:""} + +/* +.rst-content h1 .headerlink, +.rst-content h2 .headerlink, +.rst-content p.caption .headerlink, +.rst-content h3 .headerlink, +.rst-content h4 .headerlink, +.rst-content h5 .headerlink, +.rst-content h6 .headerlink, +.rst-content dl dt .headerlink, +.rst-content tt.download span:first-child, +.rst-content code.download span:first-child, +*/ +.fa, +.wy-menu-vertical li span.toctree-expand, +.wy-menu-vertical li.on a span.toctree-expand, +.wy-menu-vertical li.current>a span.toctree-expand, +.icon, +.wy-dropdown .caret, +.wy-inline-validate.wy-inline-validate-success .wy-input-context, +.wy-inline-validate.wy-inline-validate-danger .wy-input-context, +.wy-inline-validate.wy-inline-validate-warning .wy-input-context, +.wy-inline-validate.wy-inline-validate-info .wy-input-context +{ font-family: inherit; } + +/* +.rst-content h1 .headerlink:before, +.rst-content h2 .headerlink:before, +.rst-content p.caption .headerlink:before, +.rst-content h3 .headerlink:before, +.rst-content h4 .headerlink:before, +.rst-content h5 .headerlink:before, +.rst-content h6 .headerlink:before, +.rst-content dl dt .headerlink:before, +.rst-content tt.download span:first-child:before, +.rst-content code.download span:first-child:before, +*/ +.fa:before, +.wy-menu-vertical li span.toctree-expand:before, +.wy-menu-vertical li.on a span.toctree-expand:before, +.wy-menu-vertical li.current>a span.toctree-expand:before, +.icon:before, +.wy-dropdown .caret:before, +.wy-inline-validate.wy-inline-validate-success .wy-input-context:before, +.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before, +.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before, +.wy-inline-validate.wy-inline-validate-info .wy-input-context:before +{ + font-family: "FontAwesome"; + display: inline-block; + font-style: normal; + font-weight: normal; + line-height: 1; + text-decoration: inherit +} + +/* +a .rst-content h1 .headerlink, +.rst-content h1 a .headerlink, +a .rst-content h2 .headerlink, +.rst-content h2 a .headerlink, +a .rst-content p.caption .headerlink, +.rst-content p.caption a .headerlink, +a .rst-content h3 .headerlink, +.rst-content h3 a .headerlink, +a .rst-content h4 .headerlink, +.rst-content h4 a .headerlink, +a .rst-content h5 .headerlink, +.rst-content h5 a .headerlink, +a .rst-content h6 .headerlink, +.rst-content h6 a .headerlink, +a .rst-content dl dt .headerlink, +.rst-content dl dt a .headerlink, +a .rst-content tt.download span:first-child, +.rst-content tt.download a span:first-child, +a .rst-content code.download span:first-child, +.rst-content code.download a span:first-child, +*/ +a .fa, +a .wy-menu-vertical li span.toctree-expand, +.wy-menu-vertical li a span.toctree-expand, +.wy-menu-vertical li.on a span.toctree-expand, +.wy-menu-vertical li.current>a span.toctree-expand, +a .icon +{ + display: inline-block; + text-decoration: inherit; +} + +.btn .fa, +.btn .wy-menu-vertical li span.toctree-expand, +.wy-menu-vertical li .btn span.toctree-expand, +.btn .wy-menu-vertical li.on a span.toctree-expand, +.wy-menu-vertical li.on a .btn span.toctree-expand, +.btn .wy-menu-vertical li.current>a span.toctree-expand, +.wy-menu-vertical li.current>a .btn span.toctree-expand, +.btn .rst-content .admonition-title, +.rst-content .btn .admonition-title, +.btn .rst-content h1 .headerlink, +.rst-content h1 .btn .headerlink, +.btn .rst-content h2 .headerlink, +.rst-content h2 .btn .headerlink, +.btn .rst-content p.caption .headerlink, +.rst-content p.caption .btn .headerlink, +.btn .rst-content h3 .headerlink, +.rst-content h3 .btn .headerlink, +.btn .rst-content h4 .headerlink, +.rst-content h4 .btn .headerlink, +.btn .rst-content h5 .headerlink, +.rst-content h5 .btn .headerlink, +.btn .rst-content h6 .headerlink, +.rst-content h6 .btn .headerlink, +.btn .rst-content dl dt .headerlink, +.rst-content dl dt .btn .headerlink, +.btn .rst-content tt.download span:first-child, +.rst-content tt.download .btn span:first-child, +.btn .rst-content code.download span:first-child, +.rst-content code.download .btn span:first-child, +.btn .icon, +.nav .fa, +.nav .wy-menu-vertical li span.toctree-expand, +.wy-menu-vertical li .nav span.toctree-expand, +.nav .wy-menu-vertical li.on a span.toctree-expand, +.wy-menu-vertical li.on a .nav span.toctree-expand, +.nav .wy-menu-vertical li.current>a span.toctree-expand, +.wy-menu-vertical li.current>a .nav span.toctree-expand, +.nav .rst-content .admonition-title, +.rst-content .nav .admonition-title, +.nav .rst-content h1 .headerlink, +.rst-content h1 .nav .headerlink, +.nav .rst-content h2 .headerlink, +.rst-content h2 .nav .headerlink, +.nav .rst-content p.caption .headerlink, +.rst-content p.caption .nav .headerlink, +.nav .rst-content h3 .headerlink, +.rst-content h3 .nav .headerlink, +.nav .rst-content h4 .headerlink, +.rst-content h4 .nav .headerlink, +.nav .rst-content h5 .headerlink, +.rst-content h5 .nav .headerlink, +.nav .rst-content h6 .headerlink, +.rst-content h6 .nav .headerlink, +.nav .rst-content dl dt .headerlink, +.rst-content dl dt .nav .headerlink, +.nav .rst-content tt.download span:first-child, +.rst-content tt.download .nav span:first-child, +.nav .rst-content code.download span:first-child, +.rst-content code.download .nav span:first-child, +.nav .icon +{ display: inline; } + +.btn .fa.fa-large, +.btn .wy-menu-vertical li span.fa-large.toctree-expand, +.wy-menu-vertical li .btn span.fa-large.toctree-expand, +.btn .rst-content .fa-large.admonition-title, +.rst-content .btn .fa-large.admonition-title, +.btn .rst-content h1 .fa-large.headerlink, +.rst-content h1 .btn .fa-large.headerlink, +.btn .rst-content h2 .fa-large.headerlink, +.rst-content h2 .btn .fa-large.headerlink, +.btn .rst-content p.caption .fa-large.headerlink, +.rst-content p.caption .btn .fa-large.headerlink, +.btn .rst-content h3 .fa-large.headerlink, +.rst-content h3 .btn .fa-large.headerlink, +.btn .rst-content h4 .fa-large.headerlink, +.rst-content h4 .btn .fa-large.headerlink, +.btn .rst-content h5 .fa-large.headerlink, +.rst-content h5 .btn .fa-large.headerlink, +.btn .rst-content h6 .fa-large.headerlink, +.rst-content h6 .btn .fa-large.headerlink, +.btn .rst-content dl dt .fa-large.headerlink, +.rst-content dl dt .btn .fa-large.headerlink, +.btn .rst-content tt.download span.fa-large:first-child, +.rst-content tt.download .btn span.fa-large:first-child, +.btn .rst-content code.download span.fa-large:first-child, +.rst-content code.download .btn span.fa-large:first-child, +.btn .fa-large.icon, +.nav .fa.fa-large, +.nav .wy-menu-vertical li span.fa-large.toctree-expand, +.wy-menu-vertical li .nav span.fa-large.toctree-expand, +.nav .rst-content .fa-large.admonition-title, +.rst-content .nav .fa-large.admonition-title, +.nav .rst-content h1 .fa-large.headerlink, +.rst-content h1 .nav .fa-large.headerlink, +.nav .rst-content h2 .fa-large.headerlink, +.rst-content h2 .nav .fa-large.headerlink, +.nav .rst-content p.caption .fa-large.headerlink, +.rst-content p.caption .nav .fa-large.headerlink, +.nav .rst-content h3 .fa-large.headerlink, +.rst-content h3 .nav .fa-large.headerlink, +.nav .rst-content h4 .fa-large.headerlink, +.rst-content h4 .nav .fa-large.headerlink, +.nav .rst-content h5 .fa-large.headerlink, +.rst-content h5 .nav .fa-large.headerlink, +.nav .rst-content h6 .fa-large.headerlink, +.rst-content h6 .nav .fa-large.headerlink, +.nav .rst-content dl dt .fa-large.headerlink, +.rst-content dl dt .nav .fa-large.headerlink, +.nav .rst-content tt.download span.fa-large:first-child, +.rst-content tt.download .nav span.fa-large:first-child, +.nav .rst-content code.download span.fa-large:first-child, +.rst-content code.download .nav span.fa-large:first-child, +.nav .fa-large.icon +{ line-height: 0.9em; } + +.btn .fa.fa-spin, +.btn .wy-menu-vertical li span.fa-spin.toctree-expand, +.wy-menu-vertical li .btn span.fa-spin.toctree-expand, +.btn .rst-content .fa-spin.admonition-title, +.rst-content .btn .fa-spin.admonition-title, +.btn .rst-content h1 .fa-spin.headerlink, +.rst-content h1 .btn .fa-spin.headerlink, +.btn .rst-content h2 .fa-spin.headerlink, +.rst-content h2 .btn .fa-spin.headerlink, +.btn .rst-content p.caption .fa-spin.headerlink, +.rst-content p.caption .btn .fa-spin.headerlink, +.btn .rst-content h3 .fa-spin.headerlink, +.rst-content h3 .btn .fa-spin.headerlink, +.btn .rst-content h4 .fa-spin.headerlink, +.rst-content h4 .btn .fa-spin.headerlink, +.btn .rst-content h5 .fa-spin.headerlink, +.rst-content h5 .btn .fa-spin.headerlink, +.btn .rst-content h6 .fa-spin.headerlink, +.rst-content h6 .btn .fa-spin.headerlink, +.btn .rst-content dl dt .fa-spin.headerlink, +.rst-content dl dt .btn .fa-spin.headerlink, +.btn .rst-content tt.download span.fa-spin:first-child, +.rst-content tt.download .btn span.fa-spin:first-child, +.btn .rst-content code.download span.fa-spin:first-child, +.rst-content code.download .btn span.fa-spin:first-child, +.btn .fa-spin.icon, +.nav .fa.fa-spin, +.nav .wy-menu-vertical li span.fa-spin.toctree-expand, +.wy-menu-vertical li .nav span.fa-spin.toctree-expand, +.nav .rst-content .fa-spin.admonition-title, +.rst-content .nav .fa-spin.admonition-title, +.nav .rst-content h1 .fa-spin.headerlink, +.rst-content h1 .nav .fa-spin.headerlink, +.nav .rst-content h2 .fa-spin.headerlink, +.rst-content h2 .nav .fa-spin.headerlink, +.nav .rst-content p.caption .fa-spin.headerlink, +.rst-content p.caption .nav .fa-spin.headerlink, +.nav .rst-content h3 .fa-spin.headerlink, +.rst-content h3 .nav .fa-spin.headerlink, +.nav .rst-content h4 .fa-spin.headerlink, +.rst-content h4 .nav .fa-spin.headerlink, +.nav .rst-content h5 .fa-spin.headerlink, +.rst-content h5 .nav .fa-spin.headerlink, +.nav .rst-content h6 .fa-spin.headerlink, +.rst-content h6 .nav .fa-spin.headerlink, +.nav .rst-content dl dt .fa-spin.headerlink, +.rst-content dl dt .nav .fa-spin.headerlink, +.nav .rst-content tt.download span.fa-spin:first-child, +.rst-content tt.download .nav span.fa-spin:first-child, +.nav .rst-content code.download span.fa-spin:first-child, +.rst-content code.download .nav span.fa-spin:first-child, +.nav .fa-spin.icon +{ display: inline-block; } + +.btn.fa:before, +.wy-menu-vertical li span.btn.toctree-expand:before, +.rst-content .btn.admonition-title:before, +.rst-content h1 .btn.headerlink:before, +.rst-content h2 .btn.headerlink:before, +.rst-content p.caption .btn.headerlink:before, +.rst-content h3 .btn.headerlink:before, +.rst-content h4 .btn.headerlink:before, +.rst-content h5 .btn.headerlink:before, +.rst-content h6 .btn.headerlink:before, +.rst-content dl dt .btn.headerlink:before, +.rst-content tt.download span.btn:first-child:before, +.rst-content code.download span.btn:first-child:before, +.btn.icon:before +{ + opacity: 0.5; + -webkit-transition: opacity 0.05s ease-in; + -moz-transition: opacity 0.05s ease-in; + transition: opacity 0.05s ease-in; +} + +.btn.fa:hover:before, +.wy-menu-vertical li span.btn.toctree-expand:hover:before, +.rst-content .btn.admonition-title:hover:before, +.rst-content h1 .btn.headerlink:hover:before, +.rst-content h2 .btn.headerlink:hover:before, +.rst-content p.caption .btn.headerlink:hover:before, +.rst-content h3 .btn.headerlink:hover:before, +.rst-content h4 .btn.headerlink:hover:before, +.rst-content h5 .btn.headerlink:hover:before, +.rst-content h6 .btn.headerlink:hover:before, +.rst-content dl dt .btn.headerlink:hover:before, +.rst-content tt.download span.btn:first-child:hover:before, +.rst-content code.download span.btn:first-child:hover:before, +.btn.icon:hover:before +{ opacity: 1; } + +.btn-mini .fa:before, +.btn-mini .wy-menu-vertical li span.toctree-expand:before, +.wy-menu-vertical li .btn-mini span.toctree-expand:before, +.btn-mini .rst-content .admonition-title:before, +.rst-content .btn-mini .admonition-title:before, +.btn-mini .rst-content h1 .headerlink:before, +.rst-content h1 .btn-mini .headerlink:before, +.btn-mini .rst-content h2 .headerlink:before, +.rst-content h2 .btn-mini .headerlink:before, +.btn-mini .rst-content p.caption .headerlink:before, +.rst-content p.caption .btn-mini .headerlink:before, +.btn-mini .rst-content h3 .headerlink:before, +.rst-content h3 .btn-mini .headerlink:before, +.btn-mini .rst-content h4 .headerlink:before, +.rst-content h4 .btn-mini .headerlink:before, +.btn-mini .rst-content h5 .headerlink:before, +.rst-content h5 .btn-mini .headerlink:before, +.btn-mini .rst-content h6 .headerlink:before, +.rst-content h6 .btn-mini .headerlink:before, +.btn-mini .rst-content dl dt .headerlink:before, +.rst-content dl dt .btn-mini .headerlink:before, +.btn-mini .rst-content tt.download span:first-child:before, +.rst-content tt.download .btn-mini span:first-child:before, +.btn-mini .rst-content code.download span:first-child:before, +.rst-content code.download .btn-mini span:first-child:before, +.btn-mini .icon:before +{ + font-size: 14px; + vertical-align: -15%; +} + +/* +.wy-alert{padding:12px; + line-height:24px; + margin-bottom:24px; + background:#e7f2fa} + +.wy-alert-title{color:#fff; + font-weight:bold; + display:block; + color:#fff; + background:#6ab0de; + margin:-12px; + padding:6px 12px; + margin-bottom:12px} + +.wy-alert.wy-alert-danger, +.rst-content .wy-alert-danger.note, +.rst-content .wy-alert-danger.attention, +.rst-content .wy-alert-danger.caution, +.rst-content .wy-alert-danger.hint, +.rst-content .wy-alert-danger.important, +.rst-content .wy-alert-danger.tip, +.rst-content .wy-alert-danger.warning, +.rst-content .wy-alert-danger.seealso, +.rst-content .wy-alert-danger.admonition-todo{background:#fdf3f2} + +.wy-alert.wy-alert-danger .wy-alert-title, +.rst-content .wy-alert-danger.note .wy-alert-title, +.rst-content .wy-alert-danger.attention .wy-alert-title, +.rst-content .wy-alert-danger.caution .wy-alert-title, +.rst-content .danger .wy-alert-title, +.rst-content .error .wy-alert-title, +.rst-content .wy-alert-danger.hint .wy-alert-title, +.rst-content .wy-alert-danger.important .wy-alert-title, +.rst-content .wy-alert-danger.tip .wy-alert-title, +.rst-content .wy-alert-danger.warning .wy-alert-title, +.rst-content .wy-alert-danger.seealso .wy-alert-title, +.rst-content .wy-alert-danger.admonition-todo .wy-alert-title, +.wy-alert.wy-alert-danger .rst-content .admonition-title, +.rst-content .wy-alert.wy-alert-danger .admonition-title, +.rst-content .wy-alert-danger.note .admonition-title, +.rst-content .wy-alert-danger.attention .admonition-title, +.rst-content .wy-alert-danger.caution .admonition-title, +.rst-content .wy-alert-danger.hint .admonition-title, +.rst-content .wy-alert-danger.important .admonition-title, +.rst-content .wy-alert-danger.tip .admonition-title, +.rst-content .wy-alert-danger.warning .admonition-title, +.rst-content .wy-alert-danger.seealso .admonition-title, +.rst-content .wy-alert-danger.admonition-todo .admonition-title{background:#f29f97} + +.wy-alert.wy-alert-warning, +.rst-content .wy-alert-warning.note, +.rst-content .wy-alert-warning.danger, +.rst-content .wy-alert-warning.error, +.rst-content .wy-alert-warning.hint, +.rst-content .wy-alert-warning.important, +.rst-content .wy-alert-warning.tip, +.rst-content .wy-alert-warning.seealso +{background:#ffedcc} + +.wy-alert.wy-alert-warning .wy-alert-title, +.rst-content .wy-alert-warning.note .wy-alert-title, +.rst-content .attention .wy-alert-title, +.rst-content .caution .wy-alert-title, +.rst-content .wy-alert-warning.danger .wy-alert-title, +.rst-content .wy-alert-warning.error .wy-alert-title, +.rst-content .wy-alert-warning.hint .wy-alert-title, +.rst-content .wy-alert-warning.important .wy-alert-title, +.rst-content .wy-alert-warning.tip .wy-alert-title, +.rst-content .warning .wy-alert-title, +.rst-content .wy-alert-warning.seealso .wy-alert-title, +.rst-content .admonition-todo .wy-alert-title, +.wy-alert.wy-alert-warning .rst-content .admonition-title, +.rst-content .wy-alert.wy-alert-warning .admonition-title, +.rst-content .wy-alert-warning.note .admonition-title, +.rst-content .wy-alert-warning.danger .admonition-title, +.rst-content .wy-alert-warning.error .admonition-title, +.rst-content .wy-alert-warning.hint .admonition-title, +.rst-content .wy-alert-warning.important .admonition-title, +.rst-content .wy-alert-warning.tip .admonition-title, +.rst-content .wy-alert-warning.seealso .admonition-title +{background:#f0b37e} + +.wy-alert.wy-alert-info, +.rst-content .wy-alert-info.attention, +.rst-content .wy-alert-info.caution, +.rst-content .wy-alert-info.danger, +.rst-content .wy-alert-info.error, +.rst-content .wy-alert-info.hint, +.rst-content .wy-alert-info.important, +.rst-content .wy-alert-info.tip, +.rst-content .wy-alert-info.warning, +.rst-content .wy-alert-info.admonition-todo{background:#e7f2fa} + +.wy-alert.wy-alert-info .wy-alert-title, +.rst-content .note .wy-alert-title, +.rst-content .wy-alert-info.attention .wy-alert-title, +.rst-content .wy-alert-info.caution .wy-alert-title, +.rst-content .wy-alert-info.danger .wy-alert-title, +.rst-content .wy-alert-info.error .wy-alert-title, +.rst-content .wy-alert-info.hint .wy-alert-title, +.rst-content .wy-alert-info.important .wy-alert-title, +.rst-content .wy-alert-info.tip .wy-alert-title, +.rst-content .wy-alert-info.warning .wy-alert-title, +.rst-content .seealso .wy-alert-title, +.rst-content .wy-alert-info.admonition-todo .wy-alert-title, +.wy-alert.wy-alert-info .rst-content .admonition-title, +.rst-content .wy-alert.wy-alert-info .admonition-title, +.rst-content .wy-alert-info.attention .admonition-title, +.rst-content .wy-alert-info.caution .admonition-title, +.rst-content .wy-alert-info.danger .admonition-title, +.rst-content .wy-alert-info.error .admonition-title, +.rst-content .wy-alert-info.hint .admonition-title, +.rst-content .wy-alert-info.important .admonition-title, +.rst-content .wy-alert-info.tip .admonition-title, +.rst-content .wy-alert-info.warning .admonition-title, +.rst-content .wy-alert-info.admonition-todo .admonition-title{background:#6ab0de} + +.wy-alert.wy-alert-success, +.rst-content .wy-alert-success.note, +.rst-content .wy-alert-success.attention, +.rst-content .wy-alert-success.caution, +.rst-content .wy-alert-success.danger, +.rst-content .wy-alert-success.error, +.rst-content .wy-alert-success.warning, +.rst-content .wy-alert-success.seealso, +.rst-content .wy-alert-success.admonition-todo{background:#dbfaf4} + +.wy-alert.wy-alert-success .wy-alert-title, +.rst-content .wy-alert-success.note .wy-alert-title, +.rst-content .wy-alert-success.attention .wy-alert-title, +.rst-content .wy-alert-success.caution .wy-alert-title, +.rst-content .wy-alert-success.danger .wy-alert-title, +.rst-content .wy-alert-success.error .wy-alert-title, +.rst-content .hint .wy-alert-title, +.rst-content .important .wy-alert-title, +.rst-content .tip .wy-alert-title, +.rst-content .wy-alert-success.warning .wy-alert-title, +.rst-content .wy-alert-success.seealso .wy-alert-title, +.rst-content .wy-alert-success.admonition-todo .wy-alert-title, +.wy-alert.wy-alert-success .rst-content .admonition-title, +.rst-content .wy-alert.wy-alert-success .admonition-title, +.rst-content .wy-alert-success.note .admonition-title, +.rst-content .wy-alert-success.attention .admonition-title, +.rst-content .wy-alert-success.caution .admonition-title, +.rst-content .wy-alert-success.danger .admonition-title, +.rst-content .wy-alert-success.error .admonition-title, +.rst-content .wy-alert-success.warning .admonition-title, +.rst-content .wy-alert-success.seealso .admonition-title, +.rst-content .wy-alert-success.admonition-todo .admonition-title{background:#1abc9c} + +.wy-alert.wy-alert-neutral, +.rst-content .wy-alert-neutral.note, +.rst-content .wy-alert-neutral.attention, +.rst-content .wy-alert-neutral.caution, +.rst-content .wy-alert-neutral.danger, +.rst-content .wy-alert-neutral.error, +.rst-content .wy-alert-neutral.hint, +.rst-content .wy-alert-neutral.important, +.rst-content .wy-alert-neutral.tip, +.rst-content .wy-alert-neutral.warning, +.rst-content .wy-alert-neutral.seealso, +.rst-content .wy-alert-neutral.admonition-todo{background:#f3f6f6} + +.wy-alert.wy-alert-neutral .wy-alert-title, +.rst-content .wy-alert-neutral.note .wy-alert-title, +.rst-content .wy-alert-neutral.attention .wy-alert-title, +.rst-content .wy-alert-neutral.caution .wy-alert-title, +.rst-content .wy-alert-neutral.danger .wy-alert-title, +.rst-content .wy-alert-neutral.error .wy-alert-title, +.rst-content .wy-alert-neutral.hint .wy-alert-title, +.rst-content .wy-alert-neutral.important .wy-alert-title, +.rst-content .wy-alert-neutral.tip .wy-alert-title, +.rst-content .wy-alert-neutral.warning .wy-alert-title, +.rst-content .wy-alert-neutral.seealso .wy-alert-title, +.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title, +.wy-alert.wy-alert-neutral .rst-content .admonition-title, +.rst-content .wy-alert.wy-alert-neutral .admonition-title, +.rst-content .wy-alert-neutral.note .admonition-title, +.rst-content .wy-alert-neutral.attention .admonition-title, +.rst-content .wy-alert-neutral.caution .admonition-title, +.rst-content .wy-alert-neutral.danger .admonition-title, +.rst-content .wy-alert-neutral.error .admonition-title, +.rst-content .wy-alert-neutral.hint .admonition-title, +.rst-content .wy-alert-neutral.important .admonition-title, +.rst-content .wy-alert-neutral.tip .admonition-title, +.rst-content .wy-alert-neutral.warning .admonition-title, +.rst-content .wy-alert-neutral.seealso .admonition-title, +.rst-content .wy-alert-neutral.admonition-todo .admonition-title{color:#404040; + background:#e1e4e5} + +.wy-alert.wy-alert-neutral a, +.rst-content .wy-alert-neutral.note a, +.rst-content .wy-alert-neutral.attention a, +.rst-content .wy-alert-neutral.caution a, +.rst-content .wy-alert-neutral.danger a, +.rst-content .wy-alert-neutral.error a, +.rst-content .wy-alert-neutral.hint a, +.rst-content .wy-alert-neutral.important a, +.rst-content .wy-alert-neutral.tip a, +.rst-content .wy-alert-neutral.warning a, +.rst-content .wy-alert-neutral.seealso a, +.rst-content .wy-alert-neutral.admonition-todo a{color:#2980B9} + +.wy-alert p:last-child{margin-bottom:0} + +.wy-tray-container{position:fixed; + bottom:0px; + left:0; + z-index:600} + +.wy-tray-container li{display:block; + width:300px; + background:transparent; + color:#fff; + text-align:center; + box-shadow:0 5px 5px 0 rgba(0,0,0,0.1); + padding:0 24px; + min-width:20%; + opacity:0; + height:0; + line-height:56px; + overflow:hidden; + -webkit-transition:all 0.3s ease-in; + -moz-transition:all 0.3s ease-in; + transition:all 0.3s ease-in} + +.wy-tray-container li.wy-tray-item-success{background:#27AE60} + +.wy-tray-container li.wy-tray-item-info{background:#2980B9} + +.wy-tray-container li.wy-tray-item-warning{background:#E67E22} + +.wy-tray-container li.wy-tray-item-danger{background:#E74C3C} + +.wy-tray-container li.on{opacity:1; + height:56px} + +@media screen and (max-width: 768px){.wy-tray-container{bottom:auto; + top:0; + width:100%} + +.wy-tray-container li{width:100%} + +} + +button{font-size:100%; + margin:0; + vertical-align:baseline; + *vertical-align:middle; + cursor:pointer; + line-height:normal; + -webkit-appearance:button; + *overflow:visible} + +button::-moz-focus-inner,input::-moz-focus-inner{border:0; + padding:0} + +button[disabled]{cursor:default} +*/ + +a.btn, a.btn:link { + display: inline-block; + text-align: center; + cursor: pointer; + font-size: 110%; + font-weight: bold; + padding: 4pt; + margin-top: 10pt; + border: 2px solid black; + border-bottom: 2px solid black; +} + +a.btn:hover { + color: white; + background: black; +} + +/* +.btn { + display: inline-block; + border-radius: 2px; + line-height: normal; + white-space: nowrap; + text-align: center; + cursor: pointer; + font-size: 100%; + padding: 6px 12px 8px 12px; + color: #fff; + border: 1px solid rgba(0,0,0,0.1); + background-color: #27AE60; + text-decoration: none; + font-weight: normal; + font-family: "Lato","proxima-nova","Helvetica Neue",Arial,sans-serif; + box-shadow: 0px 1px 2px -1px rgba(255,255,255,0.5) inset,0px -2px 0px 0px rgba(0,0,0,0.1) inset; + outline-none: false; + vertical-align: middle; + *display: inline; + zoom: 1; + -webkit-user-drag: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-transition: all 0.1s linear; + -moz-transition: all 0.1s linear; + transition: all 0.1s linear; +} + +.btn-hover { background: #2e8ece; color: #fff; } +.btn:hover { background: #2cc36b; color: #fff; } +.btn:focus { background: #2cc36b; outline: 0; } + +.btn:active { + box-shadow: 0px -1px 0px 0px rgba(0,0,0,0.05) inset,0px 2px 0px 0px rgba(0,0,0,0.1) inset; + padding: 8px 12px 6px 12px; +} + +.btn:visited { color: #fff; } + +.btn:disabled { + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + filter: alpha(opacity=40); + opacity: 0.4; + cursor: not-allowed; + box-shadow: none; +} + +.btn-disabled { + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + filter: alpha(opacity=40); + opacity: 0.4; + cursor: not-allowed; + box-shadow: none; +} + +.btn-disabled:hover, +.btn-disabled:focus, +.btn-disabled:active +{ + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); + filter: alpha(opacity=40); + opacity: 0.4; + cursor: not-allowed; + box-shadow: none; +} + +.btn::-moz-focus-inner { + padding: 0; + border: 0; +} + +.btn-small { font-size: 80%; } +.btn-info { background-color: #2980B9 !important; } +.btn-info:hover { background-color: #2e8ece !important; } +.btn-neutral { background-color: #f3f6f6 !important; color:#404040 !important; } +.btn-neutral:hover { background-color: #e5ebeb !important; color:#404040; } +.btn-neutral:visited { color: #404040 !important; } +.btn-success { background-color: #27AE60 !important; } +.btn-success:hover { background-color: #295 !important; } +.btn-danger { background-color: #E74C3C !important; } +.btn-danger:hover { background-color: #ea6153 !important; } +.btn-warning { background-color: #E67E22 !important; } +.btn-warning:hover { background-color: #e98b39 !important; } +.btn-invert { background-color: #222} +.btn-invert:hover { background-color: #2f2f2f !important; } + +.btn-link { + background-color: transparent !important; + color: #2980B9; + box-shadow: none; + border-color: transparent !important; +} + +.btn-link:hover { + background-color: transparent !important; + color: #409ad5 !important; + box-shadow: none; +} + +.btn-link:active { + background-color: transparent !important; + color: #409ad5 !important; + box-shadow: none; +} + +.btn-link:visited { color:#9B59B6; } + +.wy-btn-group .btn, +.wy-control .btn +{ vertical-align: middle; } + +.wy-btn-group { margin-bottom: 24px; *zoom:1; } + +.wy-btn-group:before, +.wy-btn-group:after +{ display:table; content: ""; } + +.wy-btn-group:after { clear: both; } + +.wy-dropdown{position:relative; + display:inline-block} + +.wy-dropdown-active .wy-dropdown-menu{display:block} + +.wy-dropdown-menu{position:absolute; + left:0; + display:none; + float:left; + top:100%; + min-width:100%; + background:#fcfcfc; + z-index:100; + border:solid 1px #cfd7dd; + box-shadow:0 2px 2px 0 rgba(0,0,0,0.1); + padding:12px} + +.wy-dropdown-menu>dd>a{display:block; + clear:both; + color:#404040; + white-space:nowrap; + font-size:90%; + padding:0 12px; + cursor:pointer} + +.wy-dropdown-menu>dd>a:hover{background:#2980B9; + color:#fff} + +.wy-dropdown-menu>dd.divider{border-top:solid 1px #cfd7dd; + margin:6px 0} + +.wy-dropdown-menu>dd.search{padding-bottom:12px} + +.wy-dropdown-menu>dd.search input[type="search"]{width:100%} + +.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3; + text-transform:uppercase; + font-weight:500; + font-size:80%} + +.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3} + +.wy-dropdown-menu>dd.call-to-action .btn{color:#fff} + +.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%; + top:auto; + left:auto; + right:0} + +.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc; + margin-top:2px} + +.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px} + +.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980B9; + color:#fff} + +.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0; + left:auto; + text-align:right} + +.wy-dropdown-arrow:before{content:" "; + border-bottom:5px solid #f5f5f5; + border-left:5px solid transparent; + border-right:5px solid transparent; + position:absolute; + display:block; + top:-4px; + left:50%; + margin-left:-3px} + +.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px} + +.wy-form-stacked select{display:block} + +.wy-form-aligned input,.wy-form-aligned textarea,.wy-form-aligned select,.wy-form-aligned .wy-help-inline,.wy-form-aligned label{display:inline-block; + *display:inline; + *zoom:1; + vertical-align:middle} + +.wy-form-aligned .wy-control-group>label{display:inline-block; + vertical-align:middle; + width:10em; + margin:6px 12px 0 0; + float:left} + +.wy-form-aligned .wy-control{float:left} + +.wy-form-aligned .wy-control label{display:block} + +.wy-form-aligned .wy-control select{margin-top:6px} + +fieldset{border:0; + margin:0; + padding:0} + +legend{display:block; + width:100%; + border:0; + padding:0; + white-space:normal; + margin-bottom:24px; + font-size:150%; + *margin-left:-7px} + +label{display:block; + margin:0 0 0.3125em 0; + color:#333; + font-size:90%} + +input,select,textarea{font-size:100%; + margin:0; + vertical-align:baseline; + *vertical-align:middle} + +.wy-control-group{margin-bottom:24px; + *zoom:1; + max-width:68em; + margin-left:auto; + margin-right:auto; + *zoom:1} + +.wy-control-group:before,.wy-control-group:after{display:table; + content:""} + +.wy-control-group:after{clear:both} + +.wy-control-group:before,.wy-control-group:after{display:table; + content:""} + +.wy-control-group:after{clear:both} + +.wy-control-group.wy-control-group-required>label:after{content:" *"; + color:#E74C3C} + +.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px} + +.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds select{width:100%} + +.wy-control-group .wy-form-full input[type="text"],.wy-control-group .wy-form-full input[type="password"],.wy-control-group .wy-form-full input[type="email"],.wy-control-group .wy-form-full input[type="url"],.wy-control-group .wy-form-full input[type="date"],.wy-control-group .wy-form-full input[type="month"],.wy-control-group .wy-form-full input[type="time"],.wy-control-group .wy-form-full input[type="datetime"],.wy-control-group .wy-form-full input[type="datetime-local"],.wy-control-group .wy-form-full input[type="week"],.wy-control-group .wy-form-full input[type="number"],.wy-control-group .wy-form-full input[type="search"],.wy-control-group .wy-form-full input[type="tel"],.wy-control-group .wy-form-full input[type="color"],.wy-control-group .wy-form-halves input[type="text"],.wy-control-group .wy-form-halves input[type="password"],.wy-control-group .wy-form-halves input[type="email"],.wy-control-group .wy-form-halves input[type="url"],.wy-control-group .wy-form-halves input[type="date"],.wy-control-group .wy-form-halves input[type="month"],.wy-control-group .wy-form-halves input[type="time"],.wy-control-group .wy-form-halves input[type="datetime"],.wy-control-group .wy-form-halves input[type="datetime-local"],.wy-control-group .wy-form-halves input[type="week"],.wy-control-group .wy-form-halves input[type="number"],.wy-control-group .wy-form-halves input[type="search"],.wy-control-group .wy-form-halves input[type="tel"],.wy-control-group .wy-form-halves input[type="color"],.wy-control-group .wy-form-thirds input[type="text"],.wy-control-group .wy-form-thirds input[type="password"],.wy-control-group .wy-form-thirds input[type="email"],.wy-control-group .wy-form-thirds input[type="url"],.wy-control-group .wy-form-thirds input[type="date"],.wy-control-group .wy-form-thirds input[type="month"],.wy-control-group .wy-form-thirds input[type="time"],.wy-control-group .wy-form-thirds input[type="datetime"],.wy-control-group .wy-form-thirds input[type="datetime-local"],.wy-control-group .wy-form-thirds input[type="week"],.wy-control-group .wy-form-thirds input[type="number"],.wy-control-group .wy-form-thirds input[type="search"],.wy-control-group .wy-form-thirds input[type="tel"],.wy-control-group .wy-form-thirds input[type="color"]{width:100%} + +.wy-control-group .wy-form-full{float:left; + display:block; + margin-right:2.35765%; + width:100%; + margin-right:0} + +.wy-control-group .wy-form-full:last-child{margin-right:0} + +.wy-control-group .wy-form-halves{float:left; + display:block; + margin-right:2.35765%; + width:48.82117%} + +.wy-control-group .wy-form-halves:last-child{margin-right:0} + +.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0} + +.wy-control-group .wy-form-halves:nth-of-type(2n+1){clear:left} + +.wy-control-group .wy-form-thirds{float:left; + display:block; + margin-right:2.35765%; + width:31.76157%} + +.wy-control-group .wy-form-thirds:last-child{margin-right:0} + +.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0} + +.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left} + +.wy-control-group.wy-control-group-no-input .wy-control{margin:6px 0 0 0; + font-size:90%} + +.wy-control-no-input{display:inline-block; + margin:6px 0 0 0; + font-size:90%} + +.wy-control-group.fluid-input input[type="text"],.wy-control-group.fluid-input input[type="password"],.wy-control-group.fluid-input input[type="email"],.wy-control-group.fluid-input input[type="url"],.wy-control-group.fluid-input input[type="date"],.wy-control-group.fluid-input input[type="month"],.wy-control-group.fluid-input input[type="time"],.wy-control-group.fluid-input input[type="datetime"],.wy-control-group.fluid-input input[type="datetime-local"],.wy-control-group.fluid-input input[type="week"],.wy-control-group.fluid-input input[type="number"],.wy-control-group.fluid-input input[type="search"],.wy-control-group.fluid-input input[type="tel"],.wy-control-group.fluid-input input[type="color"]{width:100%} + +.wy-form-message-inline{display:inline-block; + padding-left:0.3em; + color:#666; + vertical-align:middle; + font-size:90%} + +.wy-form-message{display:block; + color:#999; + font-size:70%; + margin-top:0.3125em; + font-style:italic} + +.wy-form-message p{font-size:inherit; + font-style:italic; + margin-bottom:6px} + +.wy-form-message p:last-child{margin-bottom:0} + +input{line-height:normal} + +input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button; + cursor:pointer; + font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif; + *overflow:visible} + +input[type="text"],input[type="password"],input[type="email"],input[type="url"],input[type="date"],input[type="month"],input[type="time"],input[type="datetime"],input[type="datetime-local"],input[type="week"],input[type="number"],input[type="search"],input[type="tel"],input[type="color"]{-webkit-appearance:none; + padding:6px; + display:inline-block; + border:1px solid #ccc; + font-size:80%; + font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif; + box-shadow:inset 0 1px 3px #ddd; + border-radius:0; + -webkit-transition:border 0.3s linear; + -moz-transition:border 0.3s linear; + transition:border 0.3s linear} + +input[type="datetime-local"]{padding:0.34375em 0.625em} + +input[disabled]{cursor:default} + +input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + box-sizing:border-box; + padding:0; + margin-right:0.3125em; + *height:13px; + *width:13px} +*/ + +input[type="search"] { + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + box-sizing:border-box +} + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none +} + +input[type="text"]:focus, +input[type="password"]:focus, +input[type="email"]:focus, +input[type="url"]:focus, +input[type="date"]:focus, +input[type="month"]:focus, +input[type="time"]:focus, +input[type="datetime"]:focus, +input[type="datetime-local"]:focus, +input[type="week"]:focus, +input[type="number"]:focus, +input[type="search"]:focus, +input[type="tel"]:focus, +input[type="color"]:focus$ +{ + outline: 0; + outline: thin dotted \9; + border-color: #333 +} + +/* +input.no-focus:focus{border-color:#ccc !important} + +input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333; + outline:1px auto #129FEA} + +input[type="text"][disabled],input[type="password"][disabled],input[type="email"][disabled],input[type="url"][disabled],input[type="date"][disabled],input[type="month"][disabled],input[type="time"][disabled],input[type="datetime"][disabled],input[type="datetime-local"][disabled],input[type="week"][disabled],input[type="number"][disabled],input[type="search"][disabled],input[type="tel"][disabled],input[type="color"][disabled]{cursor:not-allowed; + background-color:#fafafa} + +input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#E74C3C; + border:1px solid #E74C3C} + +input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#E74C3C} + +input[type="file"]:focus:invalid:focus,input[type="radio"]:focus:invalid:focus,input[type="checkbox"]:focus:invalid:focus{outline-color:#E74C3C} + +input.wy-input-large{padding:12px; + font-size:100%} + +textarea{overflow:auto; + vertical-align:top; + width:100%; + font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif} + +select,textarea{padding:0.5em 0.625em; + display:inline-block; + border:1px solid #ccc; + font-size:80%; + box-shadow:inset 0 1px 3px #ddd; + -webkit-transition:border 0.3s linear; + -moz-transition:border 0.3s linear; + transition:border 0.3s linear} + +select{border:1px solid #ccc; + background-color:#fff} + +select[multiple]{height:auto} + +select:focus,textarea:focus{outline:0} + +select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed; + background-color:#fafafa} + +input[type="radio"][disabled],input[type="checkbox"][disabled]{cursor:not-allowed} + +.wy-checkbox,.wy-radio{margin:6px 0; + color:#404040; + display:block} + +.wy-checkbox input,.wy-radio input{vertical-align:baseline} + +.wy-form-message-inline{display:inline-block; + *display:inline; + *zoom:1; + vertical-align:middle} + +.wy-input-prefix,.wy-input-suffix{white-space:nowrap; + padding:6px} + +.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px; + padding:0 8px; + display:inline-block; + font-size:80%; + background-color:#f3f6f6; + border:solid 1px #ccc; + color:#999} + +.wy-input-suffix .wy-input-context{border-left:0} + +.wy-input-prefix .wy-input-context{border-right:0} + +.wy-switch{width:36px; + height:12px; + margin:12px 0; + position:relative; + border-radius:4px; + background:#ccc; + cursor:pointer; + -webkit-transition:all 0.2s ease-in-out; + -moz-transition:all 0.2s ease-in-out; + transition:all 0.2s ease-in-out} + +.wy-switch:before{position:absolute; + content:""; + display:block; + width:18px; + height:18px; + border-radius:4px; + background:#999; + left:-3px; + top:-3px; + -webkit-transition:all 0.2s ease-in-out; + -moz-transition:all 0.2s ease-in-out; + transition:all 0.2s ease-in-out} + +.wy-switch:after{content:"false"; + position:absolute; + left:48px; + display:block; + font-size:12px; + color:#ccc} + +.wy-switch.active{background:#1e8449} + +.wy-switch.active:before{left:24px; + background:#27AE60} + +.wy-switch.active:after{content:"true"} + +.wy-switch.disabled,.wy-switch.active.disabled{cursor:not-allowed} + +.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#E74C3C} + +.wy-control-group.wy-control-group-error input[type="text"],.wy-control-group.wy-control-group-error input[type="password"],.wy-control-group.wy-control-group-error input[type="email"],.wy-control-group.wy-control-group-error input[type="url"],.wy-control-group.wy-control-group-error input[type="date"],.wy-control-group.wy-control-group-error input[type="month"],.wy-control-group.wy-control-group-error input[type="time"],.wy-control-group.wy-control-group-error input[type="datetime"],.wy-control-group.wy-control-group-error input[type="datetime-local"],.wy-control-group.wy-control-group-error input[type="week"],.wy-control-group.wy-control-group-error input[type="number"],.wy-control-group.wy-control-group-error input[type="search"],.wy-control-group.wy-control-group-error input[type="tel"],.wy-control-group.wy-control-group-error input[type="color"]{border:solid 1px #E74C3C} + +.wy-control-group.wy-control-group-error textarea{border:solid 1px #E74C3C} + +.wy-inline-validate{white-space:nowrap} + +.wy-inline-validate .wy-input-context{padding:0.5em 0.625em; + display:inline-block; + font-size:80%} + +.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27AE60} + +.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#E74C3C} + +.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#E67E22} + +.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980B9} + +.rotate-90{-webkit-transform:rotate(90deg); + -moz-transform:rotate(90deg); + -ms-transform:rotate(90deg); + -o-transform:rotate(90deg); + transform:rotate(90deg)} + +.rotate-180{-webkit-transform:rotate(180deg); + -moz-transform:rotate(180deg); + -ms-transform:rotate(180deg); + -o-transform:rotate(180deg); + transform:rotate(180deg)} + +.rotate-270{-webkit-transform:rotate(270deg); + -moz-transform:rotate(270deg); + -ms-transform:rotate(270deg); + -o-transform:rotate(270deg); + transform:rotate(270deg)} + +.mirror{-webkit-transform:scaleX(-1); + -moz-transform:scaleX(-1); + -ms-transform:scaleX(-1); + -o-transform:scaleX(-1); + transform:scaleX(-1)} + +.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg); + -moz-transform:scaleX(-1) rotate(90deg); + -ms-transform:scaleX(-1) rotate(90deg); + -o-transform:scaleX(-1) rotate(90deg); + transform:scaleX(-1) rotate(90deg)} + +.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg); + -moz-transform:scaleX(-1) rotate(180deg); + -ms-transform:scaleX(-1) rotate(180deg); + -o-transform:scaleX(-1) rotate(180deg); + transform:scaleX(-1) rotate(180deg)} + +.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg); + -moz-transform:scaleX(-1) rotate(270deg); + -ms-transform:scaleX(-1) rotate(270deg); + -o-transform:scaleX(-1) rotate(270deg); + transform:scaleX(-1) rotate(270deg)} + +@media only screen and (max-width: 480px){.wy-form button[type="submit"]{margin:0.7em 0 0} + +.wy-form input[type="text"],.wy-form input[type="password"],.wy-form input[type="email"],.wy-form input[type="url"],.wy-form input[type="date"],.wy-form input[type="month"],.wy-form input[type="time"],.wy-form input[type="datetime"],.wy-form input[type="datetime-local"],.wy-form input[type="week"],.wy-form input[type="number"],.wy-form input[type="search"],.wy-form input[type="tel"],.wy-form input[type="color"]{margin-bottom:0.3em; + display:block} + +.wy-form label{margin-bottom:0.3em; + display:block} + +.wy-form input[type="password"],.wy-form input[type="email"],.wy-form input[type="url"],.wy-form input[type="date"],.wy-form input[type="month"],.wy-form input[type="time"],.wy-form input[type="datetime"],.wy-form input[type="datetime-local"],.wy-form input[type="week"],.wy-form input[type="number"],.wy-form input[type="search"],.wy-form input[type="tel"],.wy-form input[type="color"]{margin-bottom:0} + +.wy-form-aligned .wy-control-group label{margin-bottom:0.3em; + text-align:left; + display:block; + width:100%} + +.wy-form-aligned .wy-control{margin:1.5em 0 0 0} + +.wy-form .wy-help-inline,.wy-form-message-inline,.wy-form-message{display:block; + font-size:80%; + padding:6px 0} + +} + +@media screen and (max-width: 768px){.tablet-hide{display:none} + +} + +@media screen and (max-width: 480px){.mobile-hide{display:none} + +} +*/ + +.float-left { float: left; } +.float-right { float: right; } +.full-width { width: 100%; } + +/* +.wy-table{border-collapse:collapse; + border-spacing:0; + empty-cells:show; + margin-bottom:24px} + +.wy-table caption{color:#000; + font:italic 85%/1 arial,sans-serif; + padding:1em 0; + text-align:center} + +.wy-table td,.wy-table th{font-size:90%; + margin:0; + overflow:visible; + padding:8px 16px} + +.wy-table td:first-child,.wy-table th:first-child{border-left-width:0} + +.wy-table thead{color:#000; + text-align:left; + vertical-align:bottom; + white-space:nowrap} + +.wy-table thead th{font-weight:bold; + border-bottom:solid 2px #e1e4e5} + +.wy-table td{background-color:transparent; + vertical-align:middle} + +.wy-table td p{line-height:18px} + +.wy-table td p:last-child{margin-bottom:0} + +.wy-table .wy-table-cell-min{width:1%; + padding-right:0} + +.wy-table .wy-table-cell-min input[type=checkbox],.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox],.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox]{margin:0} + +.wy-table-secondary{color:gray; + font-size:90%} + +.wy-table-tertiary{color:gray; + font-size:80%} + +.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td{background-color:#f3f6f6} + +.wy-table-backed{background-color:#f3f6f6} + +.wy-table-bordered-all{border:1px solid #e1e4e5} + +.wy-table-bordered-all td{border-bottom:1px solid #e1e4e5; + border-left:1px solid #e1e4e5} + +.wy-table-bordered-all tbody>tr:last-child td{border-bottom-width:0} + +.wy-table-bordered{border:1px solid #e1e4e5} + +.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5} + +.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0} + +.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0} + +.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px 0; + border-bottom:1px solid #e1e4e5} + +.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0} + +.wy-table-responsive{margin-bottom:24px; + max-width:100%; + overflow:auto} + +.wy-table-responsive table{margin-bottom:0 !important} + +.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap} +*/ + +a { + color: #2980B9; + text-decoration: none; + cursor: pointer; +} + +a:hover { color: #3091d1; } +a:visited { color: #9B59B6; } + +html { + height: 100%; + overflow-x: hidden; +} + +body { + font-family: "Lato","proxima-nova","Helvetica Neue",Arial,sans-serif; + font-weight: normal; + color: #404040; + min-height: 100%; + overflow-x: hidden; + background: #edf0f2; +} + +/* +.wy-text-left{text-align:left} + +.wy-text-center{text-align:center} + +.wy-text-right{text-align:right} + +.wy-text-large{font-size:120%} + +.wy-text-normal{font-size:100%} + +.wy-text-small,small{font-size:80%} + +.wy-text-strike{text-decoration:line-through} + +.wy-text-warning{color:#E67E22 !important} + +a.wy-text-warning:hover{color:#eb9950 !important} + +.wy-text-info{color:#2980B9 !important} + +a.wy-text-info:hover{color:#409ad5 !important} + +.wy-text-success{color:#27AE60 !important} + +a.wy-text-success:hover{color:#36d278 !important} + +.wy-text-danger{color:#E74C3C !important} + +a.wy-text-danger:hover{color:#ed7669 !important} + +.wy-text-neutral{color:#404040 !important} + +a.wy-text-neutral:hover{color:#595959 !important} + +h1,h2,.rst-content p.caption,h3,h4,h5,h6,legend{margin-top:0; + font-weight:700; + font-family:"Roboto Slab","ff-tisa-web-pro","Georgia",Arial,sans-serif} + +p{line-height:24px; + margin:0; + font-size:16px; + margin-bottom:24px} + +h1{font-size:175%} + +h2,.rst-content p.caption{font-size:150%} + +h3{font-size:125%} + +h4{font-size:115%} + +h5{font-size:110%} + +h6{font-size:100%} + +hr{display:block; + height:1px; + border:0; + border-top:1px solid #e1e4e5; + margin:24px 0; + padding:0} + +code,.rst-content tt,.rst-content code{white-space:nowrap; + max-width:100%; + background:#fff; + border:solid 1px #e1e4e5; + font-size:75%; + padding:0 5px; + font-family:Consolas,"Andale Mono WT","Andale Mono","Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono","Bitstream Vera Sans Mono","Liberation Mono","Nimbus Mono L",Monaco,"Courier New",Courier,monospace; + color:#E74C3C; + overflow-x:auto} + +code.code-large,.rst-content tt.code-large{font-size:90%} + +.wy-plain-list-disc,.rst-content .section ul,.rst-content .toctree-wrapper ul,article ul{list-style:disc; + line-height:24px; + margin-bottom:24px} + +.wy-plain-list-disc li,.rst-content .section ul li,.rst-content .toctree-wrapper ul li,article ul li{list-style:disc; + margin-left:24px} + +.wy-plain-list-disc li p:last-child,.rst-content .section ul li p:last-child,.rst-content .toctree-wrapper ul li p:last-child,article ul li p:last-child{margin-bottom:0} + +.wy-plain-list-disc li ul,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li ul,article ul li ul{margin-bottom:0} + +.wy-plain-list-disc li li,.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,article ul li li{list-style:circle} + +.wy-plain-list-disc li li li,.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,article ul li li li{list-style:square} + +.wy-plain-list-disc li ol li,.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,article ul li ol li{list-style:decimal} + +.wy-plain-list-decimal,.rst-content .section ol,.rst-content ol.arabic,article ol{list-style:decimal; + line-height:24px; + margin-bottom:24px} + +.wy-plain-list-decimal li,.rst-content .section ol li,.rst-content ol.arabic li,article ol li{list-style:decimal; + margin-left:24px} + +.wy-plain-list-decimal li p:last-child,.rst-content .section ol li p:last-child,.rst-content ol.arabic li p:last-child,article ol li p:last-child{margin-bottom:0} + +.wy-plain-list-decimal li ul,.rst-content .section ol li ul,.rst-content ol.arabic li ul,article ol li ul{margin-bottom:0} + +.wy-plain-list-decimal li ul li,.rst-content .section ol li ul li,.rst-content ol.arabic li ul li,article ol li ul li{list-style:disc} + +.codeblock-example{border:1px solid #e1e4e5; + border-bottom:none; + padding:24px; + padding-top:48px; + font-weight:500; + background:#fff; + position:relative} + +.codeblock-example:after{content:"Example"; + position:absolute; + top:0px; + left:0px; + background:#9B59B6; + color:#fff; + padding:6px 12px} + +.codeblock-example.prettyprint-example-only{border:1px solid #e1e4e5; + margin-bottom:24px} + +.codeblock,pre.literal-block,.rst-content .literal-block,.rst-content pre.literal-block,div[class^='highlight']{border:1px solid #e1e4e5; + padding:0px; + overflow-x:auto; + background:#fff; + margin:1px 0 24px 0} + +.codeblock div[class^='highlight'],pre.literal-block div[class^='highlight'],.rst-content .literal-block div[class^='highlight'],div[class^='highlight'] div[class^='highlight']{border:none; + background:none; + margin:0} + +div[class^='highlight'] td.code{width:100%} + +.linenodiv pre{border-right:solid 1px #e6e9ea; + margin:0; + padding:12px 12px; + font-family:Consolas,"Andale Mono WT","Andale Mono","Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono","Bitstream Vera Sans Mono","Liberation Mono","Nimbus Mono L",Monaco,"Courier New",Courier,monospace; + font-size:12px; + line-height:1.5; + color:#d9d9d9} + +div[class^='highlight'] pre{white-space:pre; + margin:0; + padding:12px 12px; + font-family:Consolas,"Andale Mono WT","Andale Mono","Lucida Console","Lucida Sans Typewriter","DejaVu Sans Mono","Bitstream Vera Sans Mono","Liberation Mono","Nimbus Mono L",Monaco,"Courier New",Courier,monospace; + font-size:12px; + line-height:1.5; + display:block; + overflow:auto; + color:#404040} + +@media print{.codeblock,pre.literal-block,.rst-content .literal-block,.rst-content pre.literal-block,div[class^='highlight'],div[class^='highlight'] pre{white-space:pre-wrap} + +} + +.hll{background-color:#ffc; + margin:0 -12px; + padding:0 12px; + display:block} + +.c{color:#998; + font-style:italic} + +.err{color:#a61717; + background-color:#e3d2d2} + +.k{font-weight:bold} + +.o{font-weight:bold} + +.cm{color:#998; + font-style:italic} + +.cp{color:#999; + font-weight:bold} + +.c1{color:#998; + font-style:italic} + +.cs{color:#999; + font-weight:bold; + font-style:italic} + +.gd{color:#000; + background-color:#fdd} + +.gd .x{color:#000; + background-color:#faa} + +.ge{font-style:italic} + +.gr{color:#a00} + +.gh{color:#999} + +.gi{color:#000; + background-color:#dfd} + +.gi .x{color:#000; + background-color:#afa} + +.go{color:#888} + +.gp{color:#555} + +.gs{font-weight:bold} + +.gu{color:purple; + font-weight:bold} + +.gt{color:#a00} + +.kc{font-weight:bold} + +.kd{font-weight:bold} + +.kn{font-weight:bold} + +.kp{font-weight:bold} + +.kr{font-weight:bold} + +.kt{color:#458; + font-weight:bold} + +.m{color:#099} + +.s{color:#d14} + +.n{color:#333} + +.na{color:teal} + +.nb{color:#0086b3} + +.nc{color:#458; + font-weight:bold} + +.no{color:teal} + +.ni{color:purple} + +.ne{color:#900; + font-weight:bold} + +.nf{color:#900; + font-weight:bold} + +.nn{color:#555} + +.nt{color:navy} + +.nv{color:teal} + +.ow{font-weight:bold} + +.w{color:#bbb} + +.mf{color:#099} + +.mh{color:#099} + +.mi{color:#099} + +.mo{color:#099} + +.sb{color:#d14} +*/ + +/*.sc{color:#d14}*/ + +/* +.sd{color:#d14} + +.s2{color:#d14} + +.se{color:#d14} + +.sh{color:#d14} + +.si{color:#d14} + +.sx{color:#d14} + +.sr{color:#009926} + +.s1{color:#d14} + +.ss{color:#990073} + +.bp{color:#999} + +.vc{color:teal} + +.vg{color:teal} + +.vi{color:teal} + +.il{color:#099} + +.gc{color:#999; + background-color:#EAF2F5} +*/ + +ul.wy-breadcrumbs { + padding: 0pt; + margin: 0pt; + font-size: 90%; +} + +.wy-breadcrumbs li { display: inline-block; } +.wy-breadcrumbs li.wy-breadcrumbs-aside { float: right; } + +.wy-breadcrumbs li a { + display: inline-block; + padding: 5px; + border-bottom: none; +} + +.wy-breadcrumbs li a:first-child { padding-left: 0; } + +.wy-breadcrumbs-extra { + margin-bottom: 0; + color: #b3b3b3; + font-size: 80%; + display: inline-block; +} + +@media screen and (max-width: 480px) { + .wy-breadcrumbs-extra { display: none; } + .wy-breadcrumbs li.wy-breadcrumbs-aside { display: none; } +} + +@media print { + .wy-breadcrumbs li.wy-breadcrumbs-aside { display: none; } +} + +/* +.wy-affix{position:fixed; + top:1.618em} +*/ + +.wy-menu a:hover { text-decoration: none; } + +/* +.wy-menu-horiz{*zoom:1} + +.wy-menu-horiz:before,.wy-menu-horiz:after{display:table; + content:""} + +.wy-menu-horiz:after{clear:both} + +.wy-menu-horiz ul,.wy-menu-horiz li{display:inline-block} + +.wy-menu-horiz li:hover{background:rgba(255,255,255,0.1)} + +.wy-menu-horiz li.divide-left{border-left:solid 1px #404040} + +.wy-menu-horiz li.divide-right{border-right:solid 1px #404040} + +.wy-menu-horiz a{height:32px; + display:inline-block; + line-height:32px; + padding:0 16px} +*/ + +.wy-menu-vertical header, +.wy-menu-vertical p.caption +{ + height: 32px; + display: inline-block; + line-height: 32px; + padding: 0 1.618em; + margin-bottom: 0; + display: block; + font-weight: bold; + text-transform: uppercase; + font-size: 80%; + color: #555; + white-space: nowrap; +} + +div.wy-menu-vertical ul { margin-bottom: 0; } +div.wy-menu-vertical li.divide-top { border-top: solid 1px #404040; } +div.wy-menu-vertical li.divide-bottom { border-bottom: solid 1px #404040; } +div.wy-menu-vertical li.current { background: #e3e3e3; } + +div.wy-menu-vertical li.current a { + color: black; + border-right: solid 1px #c9c9c9; + padding: 0.4045em 2.427em; +} + +div.wy-menu-vertical li.current a:hover { background:#d6d6d6; } + +div.wy-menu-vertical li code, +div.wy-menu-vertical li .rst-content tt, +.rst-content div.wy-menu-vertical li tt +{ + border: none; + background: inherit; + color: inherit; + padding-left: 0; + padding-right: 0 +} + +div.wy-menu-vertical li span.toctree-expand { + display: block; + float: left; + margin-left: -1.2em; + font-size: 0.8em; + line-height: 1.6em; + color: #4d4d4d; +} + +div.wy-menu-vertical li.on a, +div.wy-menu-vertical li.current>a +{ +/* + color: #404040; + */ + color: black; + background: #fcfcfc; + padding: 0.4045em 1.618em; + font-weight: bold; + position: relative; + border: none; + border-bottom: solid 1px #c9c9c9; + border-top: solid 1px #c9c9c9; + padding-left: 1.618em -4px; +} + +div.wy-menu-vertical li.on a:hover, +div.wy-menu-vertical li.current>a:hover +{ background: #fcfcfc; } + +div.wy-menu-vertical li.on a:hover span.toctree-expand, +div.wy-menu-vertical li.current>a:hover span.toctree-expand +{ color: gray; } + +div.wy-menu-vertical li.on a span.toctree-expand, +div.wy-menu-vertical li.current>a span.toctree-expand +{ + display: block; + font-size: 0.8em; + line-height: 1.6em; + color: #333; +} + +div.wy-menu-vertical li.toctree-l1.current li.toctree-l2>ul, +div.wy-menu-vertical li.toctree-l2.current li.toctree-l3>ul +{ display:none; } + +div.wy-menu-vertical li.toctree-l1.current li.toctree-l2.current>ul, +div.wy-menu-vertical li.toctree-l2.current li.toctree-l3.current>ul +{ display:block; } + +div.wy-menu-vertical li.toctree-l2.current>a { + background: #c9c9c9; + padding: 0.4045em 2.427em; +} + +div.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a { + display: block; + background: #c9c9c9; + padding: 0.4045em 4.045em +} + +div.wy-menu-vertical li.toctree-l2 a:hover span.toctree-expand { color: gray; } +div.wy-menu-vertical li.toctree-l2 span.toctree-expand { color: #a3a3a3; } + +div.wy-menu-vertical li.toctree-l3 {font-size: 0.9em; } + +div.wy-menu-vertical li.toctree-l3.current>a { + background: #bdbdbd; + padding: 0.4045em 4.045em; +} + +div.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a { + display: block; + background: #bdbdbd; + padding: 0.4045em 5.663em; + border-top: none; + border-bottom: none; +} + +div.wy-menu-vertical li.toctree-l3 a:hover span.toctree-expand { color: gray; } +div.wy-menu-vertical li.toctree-l3 span.toctree-expand { color: #969696; } +div.wy-menu-vertical li.toctree-l4 { font-size: 0.9em; } +div.wy-menu-vertical li.current ul { display: block; } + +div.wy-menu-vertical li ul { + margin-bottom: 0; + display: none; +} + +div.wy-menu-vertical .local-toc li ul { display: block; } + +div.wy-menu-vertical li ul li a { + margin-bottom: 0; + color: #b3b3b3; + font-weight: normal; +} + +div.wy-menu-vertical a { + display: inline-block; + line-height: 18px; + padding: 0.4045em 1.618em; + border-bottom: none; + display: block; + position: relative; + font-size: 90%; + color: #b3b3b3; +} + +div.wy-menu-vertical a:hover { + background-color: #4e4a4a; + cursor: pointer; + border-bottom: none; +} + +div.wy-menu-vertical a:hover span.toctree-expand { color: #b3b3b3; } + +div.wy-menu-vertical a:active { + background-color: #2980B9; + cursor: pointer; + color: #fff; +} + +div.wy-menu-vertical a:active span.toctree-expand { color: #fff; } + +.wy-side-nav-search { + z-index: 200; +/*background-color: #2980B9;*/ + background-color: #7aa2f3; + text-align: center; + padding: 0.809em; + display: block; + color: #fcfcfc; + margin-bottom: 0.809em; +} + +.wy-side-nav-search input[type=text] { + width: 80%; + border-radius: 50px; + padding: 6px 12px; + border-color: #2472a4; + font-size: 90%; +} + +.wy-side-nav-search img { + display: block; + margin: auto auto 0.809em auto; + height: 45px; + width: 45px; + background-color: #2980B9; + padding: 5px; + border-radius: 100%; +} + +div.wy-side-nav-search>a, +div.wy-side-nav-search .wy-dropdown>a +{ + color: #fcfcfc; + font-size: 120%; + font-weight: bold; + display: inline-block; + padding: 4px 6px; + margin-bottom: 0.809em; + border-bottom: none; + outline: 0; +} + +/* +.wy-side-nav-search>a:hover, +.wy-side-nav-search .wy-dropdown>a:hover { + background: rgba(255,255,255,0.1); +} +*/ + +.wy-side-nav-search>a img.logo, +.wy-side-nav-search .wy-dropdown>a img.logo +{ + display: block; + margin: 0 auto; + height: auto; + width: auto; + border-radius: 0; + max-width: 100%; + background: transparent; +} + +.wy-side-nav-search>a.icon img.logo, +.wy-side-nav-search .wy-dropdown>a.icon img.logo +{ + margin-top: 0.85em; +} + +.wy-nav .wy-menu-vertical header { color: #2980B9; } +.wy-nav .wy-menu-vertical a { color: #b3b3b3; } + +.wy-nav .wy-menu-vertical a:hover { + background-color: #2980B9; + color: #fff; +} + +/* +[data-menu-wrap]{-webkit-transition:all 0.2s ease-in; + -moz-transition:all 0.2s ease-in; + transition:all 0.2s ease-in; + position:absolute; + opacity:1; + width:100%; + opacity:0} + +[data-menu-wrap].move-center{left:0; + right:auto; + opacity:1} + +[data-menu-wrap].move-left{right:auto; + left:-100%; + opacity:0} + +[data-menu-wrap].move-right{right:-100%; + left:auto; + opacity:0} +*/ + +.wy-body-for-nav { + background: left repeat-y #dddddd; +/* + background: left repeat-y #fcfcfc; + background-image: url(data:image/png; + base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxOERBMTRGRDBFMUUxMUUzODUwMkJCOThDMEVFNURFMCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxOERBMTRGRTBFMUUxMUUzODUwMkJCOThDMEVFNURFMCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE4REExNEZCMEUxRTExRTM4NTAyQkI5OEMwRUU1REUwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE4REExNEZDMEUxRTExRTM4NTAyQkI5OEMwRUU1REUwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+EwrlwAAAAA5JREFUeNpiMDU0BAgwAAE2AJgB9BnaAAAAAElFTkSuQmCC); + background-size: 300px 1px; + */ +} + +.wy-grid-for-nav { + position: absolute; + width: 80%; + height: 100%; +} + +.wy-nav-side { + position: fixed; + top: 0; + bottom: 0; + left: 0; + padding-bottom: 2em; + width: 300px; + overflow-x: hidden; + overflow-y: auto; + min-height: 100%; + background: #343131; + z-index: 200; +} + +.wy-nav-top{display:none; + background:#2980B9; + color:#fff; + padding:0.4045em 0.809em; + position:relative; + line-height:50px; + text-align:center; + font-size:100%; + *zoom:1} + +/* +.wy-nav-top:before,.wy-nav-top:after{display:table; + content:""} + +.wy-nav-top:after{clear:both} +*/ + +.wy-nav-top a { + color: #fff; + font-weight: bold; +} + +/* +.wy-nav-top img{margin-right:12px; + height:45px; + width:45px; + background-color:#2980B9; + padding:5px; + border-radius:100%} + +.wy-nav-top i{font-size:30px; + float:left; + cursor:pointer} + +.wy-nav-content-wrap { + margin-left: 300px; + background: #fcfcfc; + min-height: 100%; +} +*/ + +.wy-nav-content { + padding: 1.618em 3.236em; + height: 100%; + max-width: 900px; +/*margin: auto;*/ +} + +/* +.wy-body-mask{position:fixed; + width:100%; + height:100%; + background:rgba(0,0,0,0.2); + display:none; + z-index:499} + +.wy-body-mask.on{display:block} + +footer{color:#999} +*/ + +footer { font-size: 90%; } + +/* + +footer p{margin-bottom:12px} + +.rst-footer-buttons{*zoom:1} + +.rst-footer-buttons:before,.rst-footer-buttons:after{display:table; + content:""} + +.rst-footer-buttons:after{clear:both} + +#search-results .search li{margin-bottom:24px; + border-bottom:solid 1px #e1e4e5; + padding-bottom:24px} + +#search-results .search li:first-child{border-top:solid 1px #e1e4e5; + padding-top:24px} + +#search-results .search li a{font-size:120%; + margin-bottom:12px; + display:inline-block} + +#search-results .context{color:gray; + font-size:90%} + +@media screen and (max-width: 768px){.wy-body-for-nav{background:#fcfcfc} + +.wy-nav-top{display:block} + +.wy-nav-side{left:-300px} + +.wy-nav-side.shift{width:85%; + left:0} + +.wy-nav-content-wrap { + margin-left: 0pt; + margin-bottom: 0pt; +} + +.wy-nav-content-wrap .wy-nav-content{padding:1.618em} + +.wy-nav-content-wrap.shift{position:fixed; + min-width:100%; + left:85%; + top:0; + height:100%; + overflow:hidden} + +} + +@media screen and (min-width: 1400px){.wy-nav-content-wrap{background:rgba(0,0,0,0.05)} + +*/ +.wy-nav-content { + margin: 0px 0px 0px 300px; + background: white; +} + +.wy-nav-content-wrap { + font-size: 95%; + margin: 0px; + padding: 0px; +} +/* + +} + +@media print{.rst-versions,footer,.wy-nav-side{display:none} + +.wy-nav-content-wrap{margin-left:0} + +} + +.rst-versions{position:fixed; + bottom:0; + left:0; + width:300px; + color:#fcfcfc; + background:#1f1d1d; + border-top:solid 10px #343131; + font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif; + z-index:400} + +.rst-versions a{color:#2980B9; + text-decoration:none} + +.rst-versions .rst-badge-small{display:none} + +.rst-versions .rst-current-version{padding:12px; + background-color:#272525; + display:block; + text-align:right; + font-size:90%; + cursor:pointer; + color:#27AE60; + *zoom:1} + +.rst-versions .rst-current-version:before,.rst-versions .rst-current-version:after{display:table; + content:""} + +.rst-versions .rst-current-version:after{clear:both} +*/ + +.rst-versions .rst-current-version .fa, +.rst-versions .rst-current-version .wy-menu-vertical li span.toctree-expand, +.wy-menu-vertical li .rst-versions .rst-current-version span.toctree-expand, +.rst-versions .rst-current-version .rst-content .admonition-title, +.rst-content .rst-versions .rst-current-version .admonition-title, +.rst-versions .rst-current-version .rst-content h1 .headerlink, +.rst-content h1 .rst-versions .rst-current-version .headerlink, +.rst-versions .rst-current-version .rst-content h2 .headerlink, +.rst-content h2 .rst-versions .rst-current-version .headerlink, +.rst-versions .rst-current-version .rst-content p.caption .headerlink, +.rst-content p.caption .rst-versions .rst-current-version .headerlink, +.rst-versions .rst-current-version .rst-content h3 .headerlink, +.rst-content h3 .rst-versions .rst-current-version .headerlink, +.rst-versions .rst-current-version .rst-content h4 .headerlink, +.rst-content h4 .rst-versions .rst-current-version .headerlink, +.rst-versions .rst-current-version .rst-content h5 .headerlink, +.rst-content h5 .rst-versions .rst-current-version .headerlink, +.rst-versions .rst-current-version .rst-content h6 .headerlink, +.rst-content h6 .rst-versions .rst-current-version .headerlink, +.rst-versions .rst-current-version .rst-content dl dt .headerlink, +.rst-content dl dt .rst-versions .rst-current-version .headerlink, +.rst-versions .rst-current-version .rst-content tt.download span:first-child, +.rst-content tt.download .rst-versions .rst-current-version span:first-child, +.rst-versions .rst-current-version .rst-content code.download span:first-child, +.rst-content code.download .rst-versions .rst-current-version span:first-child, +.rst-versions .rst-current-version .icon +{ + color: #fcfcfc +} + +/* +.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left} + +.rst-versions .rst-current-version .icon-book{float:left} + +.rst-versions .rst-current-version.rst-out-of-date{background-color:#E74C3C; + color:#fff} + +.rst-versions .rst-current-version.rst-active-old-version{background-color:#F1C40F; + color:#000} + +.rst-versions.shift-up .rst-other-versions{display:block} + +.rst-versions .rst-other-versions{font-size:90%; + padding:12px; + color:gray; + display:none} + +.rst-versions .rst-other-versions hr{display:block; + height:1px; + border:0; + margin:20px 0; + padding:0; + border-top:solid 1px #413d3d} + +.rst-versions .rst-other-versions dd{display:inline-block; + margin:0} + +.rst-versions .rst-other-versions dd a{display:inline-block; + padding:6px; + color:#fcfcfc} + +.rst-versions.rst-badge{width:auto; + bottom:20px; + right:20px; + left:auto; + border:none; + max-width:300px} + +.rst-versions.rst-badge .icon-book{float:none} + +.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none} + +.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right} + +.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left} + +.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left} + +.rst-versions.rst-badge .rst-current-version{width:auto; + height:30px; + line-height:30px; + padding:0 6px; + display:block; + text-align:center} + +@media screen and (max-width: 768px){.rst-versions{width:85%; + display:none} + +.rst-versions.shift{display:block} + +img{width:100%; + height:auto} + +} +*/ + +/* +.rst-content img{max-width:100%; + height:auto !important} + +.rst-content div.figure{margin-bottom:24px} + +.rst-content div.figure.align-center{text-align:center} + +.rst-content .section>img,.rst-content .section>a>img{margin-bottom:24px} + +.rst-content blockquote{margin-left:24px; + line-height:24px; + margin-bottom:24px} + +.rst-content .note .last,.rst-content .attention .last,.rst-content .caution .last,.rst-content .danger .last,.rst-content .error .last,.rst-content .hint .last,.rst-content .important .last,.rst-content .tip .last,.rst-content .warning .last,.rst-content .seealso .last,.rst-content .admonition-todo .last{margin-bottom:0} + +.rst-content .admonition-title:before{margin-right:4px} + +.rst-content .admonition table{border-color:rgba(0,0,0,0.1)} + +.rst-content .admonition table td,.rst-content .admonition table th{background:transparent !important; + border-color:rgba(0,0,0,0.1) !important} + +.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha li{list-style:lower-alpha} + +.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha li{list-style:upper-alpha} + +.rst-content .section ol p,.rst-content .section ul p{margin-bottom:12px} + +.rst-content .line-block{margin-left:24px} + +.rst-content .topic-title{font-weight:bold; + margin-bottom:12px} + +.rst-content .toc-backref{color:#404040} + +.rst-content .align-right{float:right; + margin:0px 0px 24px 24px} + +.rst-content .align-left{float:left; + margin:0px 24px 24px 0px} + +.rst-content .align-center{margin:auto; + display:block} + +.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content p.caption .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content dl dt .headerlink,.rst-content p.caption .headerlink{display:none; + visibility:hidden; + font-size:14px} + +.rst-content h1 .headerlink:after,.rst-content h2 .headerlink:after,.rst-content p.caption .headerlink:after,.rst-content h3 .headerlink:after,.rst-content h4 .headerlink:after,.rst-content h5 .headerlink:after,.rst-content h6 .headerlink:after,.rst-content dl dt .headerlink:after,.rst-content p.caption .headerlink:after{visibility:visible; + content:"ïƒ"; + font-family:FontAwesome; + display:inline-block} + +.rst-content h1:hover .headerlink,.rst-content h2:hover .headerlink,.rst-content p.caption:hover .headerlink,.rst-content h3:hover .headerlink,.rst-content h4:hover .headerlink,.rst-content h5:hover .headerlink,.rst-content h6:hover .headerlink,.rst-content dl dt:hover .headerlink,.rst-content p.caption:hover .headerlink{display:inline-block} + +.rst-content .sidebar{float:right; + width:40%; + display:block; + margin:0 0 24px 24px; + padding:24px; + background:#f3f6f6; + border:solid 1px #e1e4e5} + +.rst-content .sidebar p,.rst-content .sidebar ul,.rst-content .sidebar dl{font-size:90%} + +.rst-content .sidebar .last{margin-bottom:0} + +.rst-content .sidebar .sidebar-title{display:block; + font-family:"Roboto Slab","ff-tisa-web-pro","Georgia",Arial,sans-serif; + font-weight:bold; + background:#e1e4e5; + padding:6px 12px; + margin:-24px; + margin-bottom:24px; + font-size:100%} + +.rst-content .highlighted{background:#F1C40F; + display:inline-block; + font-weight:bold; + padding:0 6px} + +.rst-content .footnote-reference,.rst-content .citation-reference{vertical-align:super; + font-size:90%} + +.rst-content table.docutils.citation,.rst-content table.docutils.footnote{background:none; + border:none; + color:#999} + +.rst-content table.docutils.citation td,.rst-content table.docutils.citation tr,.rst-content table.docutils.footnote td,.rst-content table.docutils.footnote tr{border:none; + background-color:transparent !important; + white-space:normal} + +.rst-content table.docutils.citation td.label,.rst-content table.docutils.footnote td.label{padding-left:0; + padding-right:0; + vertical-align:top} + +.rst-content table.field-list{border:none} + +.rst-content table.field-list td{border:none; + padding-top:5px} + +.rst-content table.field-list td>strong{display:inline-block; + margin-top:3px} + +.rst-content table.field-list .field-name{padding-right:10px; + text-align:left; + white-space:nowrap} + +.rst-content table.field-list .field-body{text-align:left; + padding-left:0} + +.rst-content tt,.rst-content tt,.rst-content code{color:#000} + +.rst-content tt big,.rst-content tt em,.rst-content tt big,.rst-content code big,.rst-content tt em,.rst-content code em{font-size:100% !important; + line-height:normal} + +.rst-content tt .xref,a .rst-content tt,.rst-content tt .xref,.rst-content code .xref,a .rst-content tt,a .rst-content code{font-weight:bold} + +.rst-content a tt,.rst-content a tt,.rst-content a code{color:#2980B9} + +.rst-content dl{margin-bottom:24px} + +.rst-content dl dt{font-weight:bold} + +.rst-content dl p,.rst-content dl table,.rst-content dl ul,.rst-content dl ol{margin-bottom:12px !important} + +.rst-content dl dd{margin:0 0 12px 24px} + +.rst-content dl:not(.docutils){margin-bottom:24px} + +.rst-content dl:not(.docutils) dt{display:inline-block; + margin:6px 0; + font-size:90%; + line-height:normal; + background:#e7f2fa; + color:#2980B9; + border-top:solid 3px #6ab0de; + padding:6px; + position:relative} + +.rst-content dl:not(.docutils) dt:before{color:#6ab0de} + +.rst-content dl:not(.docutils) dt .headerlink{color:#404040; + font-size:100% !important} + +.rst-content dl:not(.docutils) dl dt{margin-bottom:6px; + border:none; + border-left:solid 3px #ccc; + background:#f0f0f0; + color:gray} + +.rst-content dl:not(.docutils) dl dt .headerlink{color:#404040; + font-size:100% !important} + +.rst-content dl:not(.docutils) dt:first-child{margin-top:0} + +.rst-content dl:not(.docutils) tt,.rst-content dl:not(.docutils) tt,.rst-content dl:not(.docutils) code{font-weight:bold} + +.rst-content dl:not(.docutils) tt.descname,.rst-content dl:not(.docutils) tt.descclassname,.rst-content dl:not(.docutils) tt.descname,.rst-content dl:not(.docutils) code.descname,.rst-content dl:not(.docutils) tt.descclassname,.rst-content dl:not(.docutils) code.descclassname{background-color:transparent; + border:none; + padding:0; + font-size:100% !important} + +.rst-content dl:not(.docutils) tt.descname,.rst-content dl:not(.docutils) tt.descname,.rst-content dl:not(.docutils) code.descname{font-weight:bold} + +.rst-content dl:not(.docutils) .optional{display:inline-block; + padding:0 4px; + color:#000; + font-weight:bold} + +.rst-content dl:not(.docutils) .property{display:inline-block; + padding-right:8px} + +.rst-content .viewcode-link,.rst-content .viewcode-back{display:inline-block; + color:#27AE60; + font-size:80%; + padding-left:24px} + +.rst-content .viewcode-back{display:block; + float:right} + +.rst-content p.rubric{margin-bottom:12px; + font-weight:bold} + +.rst-content tt.download,.rst-content code.download{background:inherit; + padding:inherit; + font-family:inherit; + font-size:inherit; + color:inherit; + border:inherit; + white-space:inherit} + +.rst-content tt.download span:first-child:before,.rst-content code.download span:first-child:before{margin-right:4px} + +@media screen and (max-width: 480px){.rst-content .sidebar{width:100%} +*/ + +} + +/* +span[id*='MathJax-Span']{color:#404040} + +.math{text-align:center} + +@font-face{font-family:"Inconsolata"; + font-style:normal; + font-weight:400; + src:local("Inconsolata"),url(../fonts/Inconsolata.ttf) format("truetype")} + +@font-face{font-family:"Inconsolata"; + font-style:normal; + font-weight:700; + src:local("Inconsolata Bold"),local("Inconsolata-Bold"),url(../fonts/Inconsolata-Bold.ttf) format("truetype")} + +@font-face{font-family:"Lato"; + font-style:normal; + font-weight:400; + src:local("Lato Regular"),local("Lato-Regular"),url(../fonts/Lato-Regular.ttf) format("truetype")} + +@font-face{font-family:"Lato"; + font-style:normal; + font-weight:700; + src:local("Lato Bold"),local("Lato-Bold"),url(../fonts/Lato-Bold.ttf) format("truetype")} + +@font-face{font-family:"Roboto Slab"; + font-style:normal; + font-weight:400; + src:local("Roboto Slab Regular"),local("RobotoSlab-Regular"),url(../fonts/RobotoSlab-Regular.ttf) format("truetype")} + +@font-face{font-family:"Roboto Slab"; + font-style:normal; + font-weight:700; + src:local("Roboto Slab Bold"),local("RobotoSlab-Bold"),url(../fonts/RobotoSlab-Bold.ttf) format("truetype")} +*/ + + +/*# sourceMappingURL=theme.css.map */ diff --git a/documentation/_build/html/_static/doctools.js b/documentation/_build/html/_static/doctools.js new file mode 100644 index 00000000..d4619fdf --- /dev/null +++ b/documentation/_build/html/_static/doctools.js @@ -0,0 +1,247 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for all documentation. + * + * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + +/** + * make the code below compatible with browsers without + * an installed firebug like debugger +if (!window.console || !console.firebug) { + var names = ["log", "debug", "info", "warn", "error", "assert", "dir", + "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", + "profile", "profileEnd"]; + window.console = {}; + for (var i = 0; i < names.length; ++i) + window.console[names[i]] = function() {}; +} + */ + +/** + * small helper function to urldecode strings + */ +jQuery.urldecode = function(x) { + return decodeURIComponent(x).replace(/\+/g, ' '); +} + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s == 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * small function to check if an array contains + * a given item. + */ +jQuery.contains = function(arr, item) { + for (var i = 0; i < arr.length; i++) { + if (arr[i] == item) + return true; + } + return false; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node) { + if (node.nodeType == 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) { + var span = document.createElement("span"); + span.className = className; + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this); + }); + } + } + return this.each(function() { + highlight(this); + }); +}; + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initIndexTable(); + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated == 'undefined') + return string; + return (typeof translated == 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated == 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[id] > :header:first').each(function() { + $('
    \u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[id]').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash && $.browser.mozilla) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlighted'); + }); + }, 10); + $('') + .appendTo($('#searchbox')); + } + }, + + /** + * init the domain index toggle buttons + */ + initIndexTable : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + $('tr.cg-' + idnum).toggle(); + if (src.substr(-9) == 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('#searchbox .highlight-link').fadeOut(300); + $('span.highlighted').removeClass('highlighted'); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this == '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); diff --git a/documentation/_build/html/_static/down-pressed.png b/documentation/_build/html/_static/down-pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..6f7ad782782e4f8e39b0c6e15c7344700cdd2527 GIT binary patch literal 368 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6U4S$Y z{B+)352QE?JR*yM+OLB!qm#z$3ZNi+iKnkC`z>}Z23@f-Ava~9&<9T!#}JFtXD=!G zGdl{fK6ro2OGiOl+hKvH6i=D3%%Y^j`yIkRn!8O>@bG)IQR0{Kf+mxNd=_WScA8u_ z3;8(7x2){m9`nt+U(Nab&1G)!{`SPVpDX$w8McLTzAJ39wprG3p4XLq$06M`%}2Yk zRPPsbES*dnYm1wkGL;iioAUB*Or2kz6(-M_r_#Me-`{mj$Z%( literal 0 HcmV?d00001 diff --git a/documentation/_build/html/_static/down.png b/documentation/_build/html/_static/down.png new file mode 100644 index 0000000000000000000000000000000000000000..3003a88770de3977d47a2ba69893436a2860f9e7 GIT binary patch literal 363 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6U4S$Y z{B+)352QE?JR*yM+OLB!qm#z$3ZNi+iKnkC`z>}xaV3tUZ$qnrLa#kt978NlpS`ru z&)HFc^}^>{UOEce+71h5nn>6&w6A!ieNbu1wh)UGh{8~et^#oZ1# z>T7oM=FZ~xXWnTo{qnXm$ZLOlqGswI_m2{XwVK)IJmBjW{J3-B3x@C=M{ShWt#fYS9M?R;8K$~YwlIqwf>VA7q=YKcwf2DS4Zj5inDKXXB1zl=(YO3ST6~rDq)&z z*o>z)=hxrfG-cDBW0G$!?6{M<$@{_4{m1o%Ub!naEtn|@^frU1tDnm{r-UW|!^@B8 literal 0 HcmV?d00001 diff --git a/documentation/_build/html/_static/file.png b/documentation/_build/html/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..d18082e397e7e54f20721af768c4c2983258f1b4 GIT binary patch literal 392 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP$HyOL$D9)yc9|lc|nKf<9@eUiWd>3GuTC!a5vdfWYEazjncPj5ZQX%+1 zt8B*4=d)!cdDz4wr^#OMYfqGz$1LDFF>|#>*O?AGil(WEs?wLLy{Gj2J_@opDm%`dlax3yA*@*N$G&*ukFv>P8+2CBWO(qz zD0k1@kN>hhb1_6`&wrCswzINE(evt-5C1B^STi2@PmdKI;Vst0PQB6!2kdN literal 0 HcmV?d00001 diff --git a/documentation/_build/html/_static/fonts/Inconsolata-Bold.ttf b/documentation/_build/html/_static/fonts/Inconsolata-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..360a232dd09e43114a50814b999f67351cdf9a24 GIT binary patch literal 47064 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 literal 0 HcmV?d00001 diff --git a/documentation/_build/html/_static/fonts/Inconsolata.ttf b/documentation/_build/html/_static/fonts/Inconsolata.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4b8a36d249a05a0fe1575dc3d96ef7079dba6b07 GIT binary patch literal 63184 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 literal 0 HcmV?d00001 diff --git a/documentation/_build/html/_static/fonts/Lato-Bold.ttf b/documentation/_build/html/_static/fonts/Lato-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..59c48434ce941ff0f3a38773105b91a5e15e3ae0 GIT binary patch literal 633240 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�>_#S*8 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

    d-J^`=pvyesqYN?+ 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℘kfx#vP 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 JoZ<2*`445*q+|d9 literal 0 HcmV?d00001 diff --git a/documentation/_build/html/_static/fonts/RobotoSlab-Regular.ttf b/documentation/_build/html/_static/fonts/RobotoSlab-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..141d6c08c8ec7248a98ac72c921fc54f823dc75c GIT binary patch literal 36276 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 RSg!Ve%a_?+M=YcCe*u#^n}GlT literal 0 HcmV?d00001 diff --git a/documentation/_build/html/_static/fonts/fontawesome-webfont.eot b/documentation/_build/html/_static/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..7c79c6a6bc9a128a2a8eaffbe49a4338625fdbc2 GIT binary patch literal 38205 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 E0QL`y%>V!Z literal 0 HcmV?d00001 diff --git a/documentation/_build/html/_static/fonts/fontawesome-webfont.svg b/documentation/_build/html/_static/fonts/fontawesome-webfont.svg new file mode 100644 index 00000000..a9f84695 --- /dev/null +++ b/documentation/_build/html/_static/fonts/fontawesome-webfont.svg @@ -0,0 +1,504 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/documentation/_build/html/_static/fonts/fontawesome-webfont.ttf b/documentation/_build/html/_static/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..5ec37c4f20d52dd38f4b9651e6d65e2ec3cc91a9 GIT binary patch literal 141564 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�>MxC-gwqE|NG)~ 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 Hb9VM0x{sSY literal 0 HcmV?d00001 diff --git a/documentation/_build/html/_static/fonts/fontawesome-webfont.woff b/documentation/_build/html/_static/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..9eaecb37996e205f1027fce2df59fbaa500657a8 GIT binary patch literal 83760 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%0D%8GQ!Ai?6y^fVUY%4hi>cI9O zLX=J3DHSY+vee$io`(?dV`*K5jVlu_M*&6KZ#y5kO}G!!fRarfSG-kCqKT7RdUmx` zZ8*MxM={=r#u?V6GvR+MqvVYIIco1mREhWS7GL|mIh|HktQE{?y$URGPr_;N&F|@# z>KmbE{WV639zj~Ypo|N8EgGRE<90{>z*!=1GQQnUc=yKJ=lOL(E&8GA@k&#nb3S78 z2~$l}Ed}zBUd3T(0LT^stYB&&oa|IV-&AJVaw8~mHWMPKd0-V_G+It&RLaVzd{!xE z=yijDt{oYE0WCuuZ~bU-@qR1KE2CPy$(S>9%a#99{>W%}eNJS*K`a62duWuWt@{^0 ze}`;-N4aloctp8TFucy{fuPBXs+J>tPNtul^b?~f&G(5d?9-~WcgkRtWIJr|+2RG! znoQ zFK427bm31w^XkXgv)c;o9rd(XUh#b$c?r}~H_D`#p<^4g8I5><)S}M7Db*?z>DVBpqjI$=GS&UzqSv`Zy9z=?FM>M z$rt4Jf=YvoU(gwzQai(pj#J5Rj$jJ0c+`G|AbMl5r;GGM~TrwS&{ZW6G z8y%ha^2FCZ6sNb^Uw+B_v>okc(T>E#br$*&0k4glA9;kmYU205PN#2Ie!mrMp?#;H z20h1gE~ohiu}SO%G@raC35YiO1Yo5bk`Op+#$^}c#1{Z2r}4k^ z=YFaD&)L`JqpkOR@{?#Os{0D6d-vPQf0H&72(IG-YB}{VRh$P>YH;gSMPXNvva1C?5I(-A| z!4}MJJZtv1<`;?i>efPRDZcU&k*yD}NS1lfku$Riz~OSN!xi1W;Z{{WBeI;sZb4q; zsF<6u6g0)0ZJXRQ5W7&8?1QV)pK5c{;NcKeccdnfnt3#0*Xb-R7X3{UPOYC8b<`XuY0ibyg-v7H;xb7PhWEY^84^_Nq?> zt{8y8?SU%-pCUIVuC^XtyH${_STs6m*U|d*cRv33o$K|qj+<2uRzYff4Us2DsG`4Y zopUDeq6ff*HWCG3vw#2`A|^U#spuq9v9lVCbIwWQ92OWQ+{KI~kQ)mUxR~p8AOqQ0 zQAMFE2V{7N;V!f3_drn1t^_5j9SI!l|)k42sVQLJOw44W#@a%8_r_2(z6t1l^{S$vO0aptCqXoM!BSd`kzvfHk zI`0zoR2gh-6RxupKlmGc_-?;5CnY95KO^p^?}kiPXy z^^SIy3IaHk;StxaDx%;H-40>y)=-LoeD^?{zr8L-rm>lhUzLd{Y6bBT{{saL&ri{a z22iyec2-hv0&^A}L!oFyJ2MhXl6ll@MP}uTzvZox`Bk*;`&x3(V5GV2 zh2JT^e1O**rn4@Qx4&YRknyz#%ve+YEt+daRx_gTE$#P}M_)Bd20i}(s`*`EJBJJg z^9=dKU6xNEe$hk5uL=!W9--ABpP2Bp&gc#7h4M+5nAFPhA1>NV(J$c>1kpnKAOy3< z@0&T8{uY*XdX$sqNhl{va+r*l%(=AY+uXNE#ATdvQKWx`fir^y@maz%V}CWc6|#jt!kHkz3foKzXlp{Fxp=C<&j@ZpwyCtHq$!)LF+7f0aY@Ov`aEoCHnHANt((*ORU{Znv}XNK{shy!OwFAUr-Z@)~&4RGhjaN9J-q|jupE{vTdwXMc| z*0x?4iF;wt^RmSedkj>aR`#A36IRE2Fr}gMR|a&$&^YAHdaa zqClIaOGO7wOr|{K##2$DUGlFeBih!C+L2G_EqD(s71l&mZ4*VB%4)}alivk~Ia zgzH(4vgLA3A4bSW`;^xwULQ%_pK6KmA_|ITUQ~W2qHV~x&f~e?GwhjK!j-fS;mK^I z1*aeRycyE-W=IcTvkoV|-{YCd2VHl*O@iuZtDn*)UUjrJT(nK7vVvXS+fav^R#Stf zH4Ji*2BGbDNp6!l8gVH;Ai23~;`h@Qi)PX$IF-za_2_k1BwAOE(@e{2n(8HawU&xj zGxTO_wTe2;s>sTd4HQ)yC<_LHm=$;LKvZ=Ms=p|yp;~|_4K#MP>8nOH3h>A5ah*0ivsQ}XDpll!5s+|x7VX+fv zXjwd^7g$^MWPtWFAhJ4L9`6SRY0DxKxhC`hvD$aglroB_bJPb0ZJ+%W?M2kYe>M}| zL}uFB(?oU5Sbbs_&hzogJl_-niN_;DW7b_v-U-i~@l~a+JdI6n!b&***_>IvNvx$u zYemVSjLWlSW!y2f`3{{A{Z}S}!C;M&bGy-a&Hq_h{I!#12{rsnWjVhz;Oh@4i{!w< z%4`|s9FkZ&FTglY~ga2n`@kRfaWdZNyOxc??I-^~ty3`^nI3<(Q z3Ia*W316Syc9KX{aJ87f2g5Dp&Afyi8T)O6x=@uHyGOu(>$Ik zHTb4B7@(r~i)8a`n(2iiZ0<#yUf;gXsMjzJjNQz#7HgHehClL+1p1MHHBTq!R-6oj zzHKq+87D0nmBX{XeN+n7cx(d8naw69$e4^AYnGjEe;_LVUU{T@qgkfu%gu7@EQ#OG zOFuxA1E(=RY&Nq9F)YK-qx(!Ie!nZ+XEIs#87)`b!mu32BAU}``G-w5e8y-ve1}Hd z&*bxUdKTAdH*lqNmUXRoqR4g`^NK4fKOJ2FoRmn5qpA#xG07a#W=Al#362) zi%(h=;_4<6Y z8+hp#PyYO{uF7!Kh-f|M32hkqiNxPvmX#Y%llMMCq(MZb&QZ({G!(TN*Av8Y7)#*w z1(?-a2xhe!#<2$M4T=0x0ui=UDDe1tQK_&MA_ySlm21tf5rG+NsZ=y}&Vk)oUd+#J z%`cJ)%`H$T#+A5EmaJ_Bw(3)?HkSX5GSQ}m@!55;D)FUG?$+;lPnl(j&uaqydO;&u@3tVuz(~Pr$BI5zW7Hj# zu`C#mboH!CeC%hgr+G;>Kdoh{B~ZtTsGebsqks%Qu1-v zDQi)AK#(L8+WV?rB|*hvJ;ByrTlNb`#`Cqwd|N5+OF$R%CV_n0o*)*4<}oF7`1 zh?L1XOZzK>lGW)9(${3ePvo$nPWu&|?JJ@|uT#GM6EaeMjsohZY<>!l9|CfUeCp>J zZdecmNm&_L>0BkEM`eK*C%z<`ck2%s$j#Az5Q8K z3v~%qtRq-R@qCa>`EKHgSVbnM<^)8R!sOH%&o`baaFzsK1WE;0b0Sd;Hxg=0AD*BZ z!*JTD`Xqw2FiimR!T+2pw7`r6lhdT9`Q(f=iL^eowkC%ZP&WC&G86Pm{Ogm@knV3x zOngIm3cW-2xV5tRaTUY!zff-Xv17ZHaYT*s(v=c_AD-K<;H7^kNB(i;)R;*0&UN3o z4q~1l7Lp=-8_THm)Fx^hbs4>ZDh`&hau&v)xvZ~$!SeOnJ7L?CEj_a}wPfjrjaxVf zZPdn}*_K?qY-H1B4Ls#bV-}~s9zQAaTBr>kxJf*r1ny*eFe_%d!}sUpLMbHW}aH^8@40eXXzZWCTCy#ZNZFlU?|ox879L zui7Kz1LK7*(>wXPaSng+7$*$L4PzQ|w7@a%5XPL275HS2Fy`MAz$ab8SbbL=PLL$W z6ghUnF+U=V^^Nr6lL29@e_#_n!QZ){@;!^;d&ZWKZ(ApfEnT-vy}!J2XFa)t-`zmo z#oxA(eA{MWY|G|dY96*i9>%tjoZ$Q0;r?@9OTM`Qm&iD_11`sQlAGmX8sV)=$Xl1f zksG@VK8iT0?^fTfK@IL?t@)j;MVw~JjZ0gpoFF&?bzQv!Lo3$pxOC^PJ(t90{D*Rl zoW>$Joc=&veKOVA)!WxUFtlLtlBLU*uUNN!!$#c3Tefc7zT?u%F82Bd{Rey0RAJ#D z9s#R&pC19y$q~R*CK10p?bEJhCZ|yCza=psbE$RI=Ttw0LTy8m_?@N_MT*2vQE_0YO@Nc>e1eO+4%ncJvdx*m)0Ei+ zY0M%{0~7vw0->x+hJY!Uz>?Yr z7G1NmQzPAX#X+++x$xl8B@YbOKOoJOkwMoM>1*zZHG5@mMxegF%@I^Ize^Z1i~he3l-g>M9=QNW_Dpr)%pre%ygh>mcy)H1%7TH2=) zB(Rj7NB8qQ;X42pxc6W~i~R=rH=b8^@^;n6RQX;%L1~B9hkZ~R@xllbOH-Q2iuzJf zPlRec3)Z?pqJBxGLIB!TB9^j3T`N8}mJ0Lmd6fik2HfmkXhI`MiByFcVp`5;*lg4P z31H{GZ1MRF>P5JSQoFU)&>cY}a0N2-Hf@xnz&7qdywow@x2gs)X0P$__ zP5^^*ODW$XfU}z`p7#R=^_Zt77=`6563@>q73UI!rny=?SgP@0SsKqXm8}Gb+^Hwg z7|}#AOTyN&U{cAbJb5AfL#5(CFWeshy6k1@ir4XzKN1&$e02<9kvwL+dQ}UBCFXZH zd_5M4E`h!E{E`?N^HfKclqb!CiNWK_25h%^p|#MP5v6Cmf!exQ*W5v9x&g7!MmBb` zeYins6LC@nB`DSgvuswCEmUnr<@c&Y=%kY}{@>ucEWcof?ag*W2E{dg6=UF3dI2ETd&Fv2r8OgzugNo;l^KdOgYs^y9nf z6BE04@4oA<-DlU(qNLX|h&k|^)f0c#Nk*Ec5B-kY`R{RowW5HDx>%c2?@+}swE0{> zM=IESc#d?H#@t@8wgPAapj_k<5bKbMgCo9{xZbyvrZ;kn+Q?Z@0E#VHXv~&6i27C` z8iII|EfweV!TmYD3mciwM}+(mETp)hnLSt0dbqU4lWV_;8P3{NJc=GM91R zA@$ut&8JpS;{-v_22e6ETP-RTXj6iCKUJ52ARz|R5Xb5pTIa(Y(<2olabi*G5Km>= zsuwMXyGx`(G6C~aCayxNEfNa?zL8%p6L zeiy615XB@}Rhv{K7S@RVu9iBVc$Df_pzkffQBcUqi&gMS94 z+>N0jarVboF1R-6isa6tj71)BhsjqyKwn=Krs@5;m42xsTpw-hu*$ZYL~V!H85wE} zXq;Al|H2jBjlQAImd@7jzWyP)#_eiAC_IVnkR!O(P=B*1@U=C8jj<>brBj|?t~bln zdec?vO`Ngc<0$tm!c`9S29?&%;0~rGe_E(3vROhqNPIH~k!>{mi>OTJ?^9_JSMb^e zD?dJ4917ithhx+tiZRBLMVBvB{=n*ZMv|;ZZ}G3XCm*nqj-s!9gA>xFo zR^4d1)|4vxdRG|h>@If=J=DK1+=^>w$k*7pYTePg57et)ij@m?xO}2J4M(e{J zl7D4xKTSimQKl(-X!TTr>ZX=b+o(&aqtq?bL(~h@*U*bp(NQJ?9*&=yHFVi^&w`0< zPN{J0NvzS&87A^)0Z#{?iRZsm%HI^vk0Wc{oB&`N9e5UcvC^+wNfQBL-mFq_7O@1+is9*}nSgOLHvmS58V`hJ zX#)DXtd#E+AapE0m;hL$?L!N64f#E#{E$#shwt868asOHI(+N0QvR}d{%EPNZxmKT23~?3Dw&p)A=062yj$!;@;Sv13 zpAid#qd37$U&7y3E!+Y#?Ex`=d28Vzz(sEFy6dACb?1;(GIL*<${hM@#P8GMi9iFU zk)Rk9Wx{rDOQz+ZHY$rrQFSm7fqsX049jKz1FUyPNno$dkxl_JS^%fEk#He=LA;A? zX`B+L!>P(|+3?p8ATB^Kk<%%Ha#D?gHYH1*Umw{kzrB({KwN zxuv1UV3iHC8*WzqsQl^XMtrs8x5M)!olhGy&Ra7-neLm75O1~j_C~{gy=I@yooueQ z*{Yk9Zd-3I*Wc?4)tR(fQ(e$6h}G4ikkAg2wc4WW#O;r2hi|;*! z0?OZl+9C!FX{pRBF7rSDGJ>gz&th31D6 z0{U@SayQkY{mO4@1loy&v&*k-B~R&8BE4?pF3?WzkLMpQ&f(|R5Y6K6mgj|ur&H5LuffotJL zp&J3+aXv*<-3UAllMvcSX>4|Dw~oLvw+g^3pI=uRTe&WSZw;05>x9Bp2tWqM4qkgz zW$+f(@4*wtK>|E@BYt{)0*~3T+mGLf6KpL3Gu!QW2n&VJ8XNMTAn1elCjfHr1WtQ0 z0RcmW@)khm%_XX?91!x24wE)y<)%a>)d`7S$Tu8Lz z;kOPzeCEIazxFCT5Oj0eB-w zzN-`A@j7iraJ%?b?a$C}e6ek{*@e&BzBu6`=X-Z;-J^VCboZRT?N@K*eXJi#Gut5^+bC6!yZq#zc=Dpvtq@D)lIW9qFyg%5)G?Y+a1xUBeoVXlH0p>Z8{M% z>z=NT_RkGT480ahGqEvuw6`znS-l3azdzVMthHLT!|nV24Cfk~O@q(Te@%RyZr#8< z264{H<;q`?W!|kj-aXpv40mSGpOp{Q+ZZ3ZgkJLWa5$L^4?n#ae?+w47imOJt$`iDfLs_0+sdZTgTFKF0kFxcO$ccQ%k8I2>{O)Qos2g{kLU^sLjeL zi1{O4bv8y5wj;ahv5nFwqdu8BpZ`iHJX<4w{fMpRi;_;OJN%L!J&F)#^?gy&>h#K4 z^f8@ID?aa)r_H=u%po*_eiksA#D7D|r}^Eq;t!h47W5jTe<+wt!O8tqEts*vQ#V8v ztDt0|DO5ScAJPXn301l>kQ*LdlLO346ZyC@#9}yG)BUq)i$&Ny=jY6^pU>GN@D{p! zefCKC`iNh!Sh4c$^(s_Nz)$YTX z@K$QZxm$5dX^E#@4dtPT*R%0V(eCtsG-ZKM>I#;NUL&U+DDBAF5dLS2YSW@#lS4~z zr~a&BN54la6p6bBtw0E^ya(Sv=+9`0;!vJIE79+i&(kqvQNFAEidl!cm0u~}o7i>9 z2=dSf(aNt!E>Zpir$_W{s9E`|@>S*ts#dZp?*NTLIf-2ZV@bPiu`8y~Q7&6$yNQ!>^r?vT`*>o5;0;g5~ z5c!j{vi54`3r`y0h#&8%)% zy4+H}3fDyytdH(Mlz_CS#6qO;VpGJVlY0;}cdV&XcsUA&h@uL5YPbT|T#m{=xR||i z@xg8S* zaH8rDiZ-BTz{XAU8kDZfUw2&|eUW@jbNGH5?v(#g)BI13ltkHZ4q>Q3p6qdG8LGhA zNHlSolVYlOtenjH9ZAHvXFA31*szl}?A)NFzlmkjnQ^#@lPBphr3odJ@09(_hq>#y zPvNoLK@DT=dI$Jgrio;?J)Yl$bFwp@-*Tp~3o=ui#seab<)Zv{@tKf4QrEO}**549 zo1}u5SmeYm7E25vjs%En2%|_CE6r>)#>m|Wt0i8fu@S&9e3!vO1_053!2&DSA&#f9 zZh|LhJQw2>b}V{$krsvL3p)F{O(W+0k&d#jxSG6Pi!mmJSH^~{U5>{Ur#Iyhk3`)2Ox1Pnls@r| zYo9v%u%N&9UQM7y@7mToXq^>jM4dH|4vw%#Jwd&;+N0A2tKC7pF5av)1STF{JF3&& zzi!X|M$gr)OGL@k9_b$PiD3Mm?4L0#$uFlys9nJ8xh$SvL^x39V&QvtJip>hesd|m zS%764dgUHaM>mVo>CUd9_1m^X8|cMCsGYEyEW=}X=wg25V9;Q&?#DunOAuxijc^(* zu6BTTBJGgMM51^-)XHE)!b_wBnlKupWtBn!F#X{p6HP^?#|E%Edq{(H8p*tC3^Avj zH8t!kpI&U(_ixHyk8g-HB(HW^;t#zu7Vug)BWL-fvhxvB%p41NU-^MQl;Ews(Z&a# zXpHopptDT_cN%o7j_<|_e{`8RWVMm+I&KQ5{&14rWyi&RDugaA-hr*7Up})-% zWp`B~naS*--P81=S{JNZ zkqlQGj7U=c{HU?Ix_MULwE6Ta$|VaM>O*0xl{be@w>U(PcMFQ1M!_|$t@X7I5_goN zC-5+Hkk~k9*%D417Ra8EOhTS!SfML6Xhv@>^CjB^v+{_+%o~)4%zu(u;w1N;FCr+T z1_K%u$}v~xD0+e$KmS{{Gr*7ozs1{#2Q5VqSjuRa<)|vvWieKvsye9x7f*Hi!{y3Bp5^Jq zpbz7p-puQ!78z%V_^%>HGhX>ETZMm5{ViCZ2(F5{^@R@vsgt1%#{ z_g!9ZAkY)a^(Hr5e%&kX!-rq;`TPN#hNFLV-z9tM7=d9;Z0G#>-5JSv9%BiQQP2fI z&aR~ZK>ei4abQ7(VdpPg7ie|A1|+u19a+uU^1 z#1-@}==6q(OD7!keP{p7Y^NVOeD)23M-OuSD0hT1Q30xx>c@4y7FYoSgjc#pU4Pb* zJm~N|r&1!B6R<%WNQ|{cf`lG!tbv@&B6La(rF=wX<62QFtjBE<35wD)Qgw~cHG5zl z*glf2Wlz;Y1K3fWRWOY>d+=%|*sE&#hKQ(BRo(znv0zgff^kp-K_>t&56B2MB&sgI z1kkq=OpJuS47~oN8S)ttC%+9p?P#d)XkXFs*U?MnXiaAA+>JllI9F>nY3J-2J-dTB zk!zaYv7+NvNQLIbazC*991b74)8Vt*eP~ukeM1L%v>1K9zN4dFS%Rd2ypo8cuq@HWFo6UPzk(&uUMo} zL%8ujjn+%sGFU{w?_wE(p#Q_LA@154^21%o?np(um`Dn?QBc&brXb%$zB*IhSOFOW zznRUX()hNpwL6O&_ zs>$HGghD1V*%VZJkcU}a)(`;+ipm-d0fg`pVc=JYUZ*YXO9u32i8gU83NTE-dVSEj zwa3xWz(`iZ)wBAVj4Yl*B(GK%wnwa&@g|l|4M%&@yF;!09F}0VWLI0Th-Eam-I;*o zmh?Prk4S=5Hngm%ZSNdR&oV}Rem}z_-r^G6jMYwSosO_8qKjFcT(6!5sKX`~mm1`TV}iU?Vqq7~sE(nXP(Gw^nU+aAx-^===hH*$>LWF6Eu zx~eh;goLVkF%s~*?Pi+RXpCAj<5`rk+v@EM@>ZKA$08k#G&-A)r8O)UXGIp#G~h_G z9K&d}f1()!!x-^DjlM?aIHR8BRyuWzhPCXZX`a>51{1?OadI86Ljq58X2zn|b9iky z#MeuDBTef?4X5Wc^a008qcAHR(wkU=6bKCZtsG;v)N7n3yV26ei+W9!PUGVlO=GGj zDt$9XQ-Ghx0cFtE8~6%4nQ7$5fN_x{VgvROPVSMXOn2<#}#FE9tB4xFT^E^7yI{ z>M-MqHHq}4J=;t^)^U^G602n_?aeV~pH9%xoL-v}EOR3|O{}WdQH|t-KHILpl#r0U1qg*KXR~^W}B{wMLTLF6Y5&x4cToy0Ud+0nMfgKc9m?=vN_IM zYtu8jBNjcwYFlR`)LLU{tf3jB9#zYBFRBl*7T)AQyo=L0EJj3&$fOtbyoNEF8BGl< zvsjg5S&IW9lOS94te)mLR>No!-{CSDyK3}|wyJwpU$y2ltTC5*jK^3EAq!$mM1_Ajht43B$qC+fI zLt!D3YN@G$-{SQ8!gZ-kORjI-CL*kOqIj9qQcg?5(#;z{q4SDku7SaY1l3h~MuP&W zOk3ab3+w=RkUP4VZiFYINR;(!vOcVF^GF6kC&C250b0%^14*2U&EiR1CeuFd!-;!ty*3hNCD!IszNwr*JYF1TU3J~925gCf6bf@3-|2XLqDyOX+0BKFwobLZtxlm%-u+D?VW$PdS%_-d+k5CAV4>9 z-7ikZmbs$(OI)Vgs00@Tr;<#Cg zTH62CMk5Y)|hanJ(^2AASD237c10XJ)@SW8sFS|B4H!A(2pspvtc z7}=rCLA#lxJP)wx4%PdtPaLBJkBJx=K^>Syke(7iFv{8`m0lEtQT!K*(CJi`ct|Gz zXg9{hQH)Kek_j)PM$e&O01$f#`H`cH(aYd9`j-zM+qq!yPQ-m_uP|J`P~L+Jbk#qe z82r%Q+0nLD3z~O&J@u01u7rxzR|tCk$EdR?p|Z}4fiA$H`gbs6G@hO z_?N@N-Y+Td-8r~m=P~sHad4rC>uv}STrrqfnrU@Ny7V8 zuz!>xL^L&M5)f8ZE>W7EpFWXBdS(9$^{wr7SJl^}6W*}K(-Ecj(CPHV>C{K@;T`^J zb0dG2?y}TduHyNLh-hVL$)xO}@yqxd(#l)Pz=-E1Y4}+ggoKEBC zN9*~kES9r$x5aW5{)UN&1<@vS|BTq>IM^Ib(DTaS%MHnkB8d2KpHr3YNiZPW1zY#ILIt!&lqkB1;lphQ!v}#E2}B9tZ$1f@{A>xZf(q^cR?AZ9mR1!MM@*@h+eB4_ zHe-S|U?85R5CcqCR!#>Qkk~8akpiLycc9T7gNPDZYLnH!YI;i_agEQ8os7*McSZDX zHT|kOS=)k6-tgQFH#~=4uXdu*J$sZ&j>nV3)NCZp0-%r38L zM~*@zG!T0-_#~+|X8wG{dX*O|K($Sv3PoWr*@MqSJAk(~UVtJ)YUQGzmD<@iOpgxl zYZ-3I&0aT~{NZ!tQ|sa+I!QR)M*#i_jhx*_>fn3IEcj&ZQh*4SX;5onD&~<3+;+4Vu${2`U_+@cfDASFD!=c+|-0Po2_ptbjsh3y(sl^a1@T6yhyr z6cX6VL*+I6P%(pvRd?g(O(F0Pr@B7ayTc1dd`Dby6lo)EJ=a03-mSF=;g{S#Gkp zDw2s%78V~^d$4r-GLk;lC`$enYwv#d-YYMwtKqe}4a$wLe_Z+Xcdi-T{^XyI-G!L7 znU*go-#WGPo9F1!k0Hmahc$FvUCqMp9=P}2yOUB4Un_n4@7H_>c|LyZPfu>Y_A*?f znJ;bM0~MjlSZP)PB8APWEY%o?f>DL~YFv^a*tKTPj2G_CB+C)4 zfn3C;Aqdy+0^i2eIg-vzp}Aml=NT^|?>)c}f4s9meZizEc*DMPCp9D7I5is>MW|vN z+MzL7^ucFOJnv3|k;ayQc>s$CCPFS|GTcMdZ(^j3B+=lVvF*y~0^@vp3HgO>P@(=Pl1zJx*C> z#Ba5|?n2K!j||V#fK?w+UsS(F`FDKl$wS|lQ?e|-%n5Zq7c+Wx)E$kQ`S02UDQ*4L z{*(0Rjn6-SBSoQe=P0B-%+8@cM66>s#q*vsfR}gxR~Ydm^x*0&+zd#GAdX!F(-Tej zhp<8gf)X6POd{LG60!nf0)R2$@G@4yVgq|52sS^mUAW*~v?H7Ws0`H<2qYLav>hxX zD9C9dSSDkz0PV190Jb2gfl7-pbQCeHr5;HpJI4t+Ysw;2XBuifW?CcZ4IIsDHB}vE zNwlS(TavcAc`c3g7LCa3q(FUFxFgP*IIOu^4agTwXf%$`IqMdh#2PUNd-ESoU=3DR zA2~-kb5^T&xV6X07@V>NX<1eZ9+-3D^7YOtL-3NFAMRj&Y3DRDR#sWYXiMzzRClau z_HalSYTG$jJKJmu=xMubbkWGfi8cPV)ar<_D-f^I)2ypuZP(7L4Hkw$_#e$#^oHCU zzVz0bx>{Q&&cqFCI7`G^#d21Y$+n_Du0xzN*xz8O(r_}v*7fu{orc;wP9n{R%f17j z)x5>c$Lnd5>ZayV%c(uoQECgZGS(AzYb*yHjsx-R?s$GR9wwvl{MIx1jiti%xFt7& zx79YFrmhFpDw~JuYMH%o8E8#;LHvTwIBV;+E3btCvG*`ed0lIMw^-ozsWx9Jn+d_} z?}d;ga7DzEAF-5yB?zxqF_iTp7AL~pA%v$wDgtIKLJ=N~c)=h=j89qI^yPD^LME;S zbtp?rSGZ@uT`#RtUE`ZtP2{%GC(!D7Jx#2Jw`erCoryIy(Hw6uwXW-%ch^^y3FQst zA3r{JT7MFuyMKYgy#Aze?(SbG|AA^2$K&7My?0|%(|_)rFZC_Pl2I_Q(Dt(E<-J;+ z-pp5{Z<}g7*Zytg%4AfZ$hdT#P*>MeD?J?Na&}y~tV-53IB-d=tGb=_=%xdR9ev_M z^Ku{IO}L}c?Va5R%)AkIm$qHGzB_N&+0}dKnefQH1H9u;cdH-D7oXj@ex1Ae^w#Yo zp%?mn?m%F`!n^!~H9Rmfx;f6s%x;NmT=O@LOdN2#q=b9PslNWSr1^}qjx&chT-$~rs@^puP>=mZ|SUb1cxM+L%OT2(64;MV5ABi7KGw~7TbOkY(Hc|c@F zDU=nhv^D~oE^b0RHzCo^N;W|op&v(~v58ktqdRVWF%W$5)+b+n2@Q^+(Br3HouH3A zkNVGe757euDjk|xq&sK-+0d`&p)sH_9t7=!zyMc05(HDS1MczkSKUv%rC{Aa;+XhU6-%lK@@WOg$!|oe(2rl>C7ro(-jStoYjELE z;|(VfLo;G^%e(^v9#O7q@9u842-gg1to`%$UH;*|s=?tktCkLAEEaC9OY7)Px7E;& zg-4fkdL=wvF!$W7b+pGKbaQ(6V5g7ay;TOoua$RH$Y08aW$Qn1;GHf|RxHs(39gui zM4FokGnW{L9Y|Z8P^8wx!7B*1=+Y`+1wjA7<{=pWZD=yw%Eq2Ku((w@JMre?1MHdi z>f!IeVrJpu13#TTd-);d@5p@U=hV4#Xf8SQE<1E+S?_fJ3kR024pdOi;@~-3jC&@r zfjk5o$OEJlUh@0>ly-1WS_)hoov-ALec^u=H>SF-{l4pAlG4@9pe69E9XY*mv;d zSim2V8^*$LWT=8Y6N{l!{y;dAsi2b->{{I33=5P-VnG6Aqe2qobuDG7=fSBCPYfcE z9RYnTgGYmu_mu@02gs#VGSP*i4x+2k2!s?hhAArhZGHfFld}$vm{Nei?E9Y;uelp( zpFQ&9EA-pjl!K zG^+2qA@hqHpH<#D_Om0ej{W>Wq-ReGu4MOy+5MZe$}dJogG%d`{iE6-`kCK3-M3^u zUfT&R6tUzL1%ewQVBH3ScP`>aM?z6Rn4(n|5h7$|GsHCs4A+^m+)XwKi61;{?@b*5 zqk?R*^)`z}yc&t2kgdM6VOijYLpyKbg>dR7aaM0vt1#TF<>C#V#s){V-pDwNrntLx zAoJKXEJAuh7or&lT`kpR&9M*Po!sIw*=!3=-iDHc%i}#(My}5;Z`Q_!Qfn95d@<+Z zo*mZfgW;SGD=hbVCUL%4*uU=slmKAdMEU-BzVpl&%L!c&fYDGItMUg3cu@m^(`bki z1c+j116*|?;?j_BPzkEjrNV&P1EtS=?dxhR10&>vAeP+ylJde=@Q0d`9vOA$=B%HM zGzJ0A-UTb>>4TgVuC88RIZ>+2$oge?_7&xYFG)PT1>Ts6``k*)ZJHxf1*0?>x?oZmNP&WDJYZ~|aJni9np5}(_W#BX)Cz-hM+ztu9iGW3(7 z@vq@UPkJd`6!h$aFr+~&0Q4Xd(F%(nzEDp76GZ6?Qj_l~`y%Ur!yDMZ=2FAdT8a=a zsnaRp0x>7@HDLWTl*SmHUq^!a2jclYTvdzX`Jpp;TM1%}se%Eo5rugRT3ZVYo&t-= zY6HLH0kKFAEh3&fLMlTjs{lSC;qXs&-S^|dr&UvN#F0#7{Tgimcs_a5fEXD#-jJ6~ za{fpVIWnoJ)^1(Urj^aP(NA2)uCBjcSba@X(>1Gw>+9cp{IXAs;w4nu_CM7R9c146 z>6@+l+#cn1*XpK`_3KAst6a#(^6|uA2z}$M{@_F0p2dBAi_>(|7d+8Il- zG1Qo}Fm`P&7xz1>=pW`H^|PE#h!bV<=z9<`%9{OEw&9#|$~)`cS>DjT^85*07)z)X z6op$DjF~DaV+{(QKP_`>;^N8WQwu6@{9qk|JAbMrZZPmYgtRLXmcvZ8@u9SCSx0=x zl0lh_Zh3orfhGNj&EB!Rqw%3#k2>vLOV>ZuqFn~}v&y%!YTE3_s%@Q%vyC6$^>LTI zV+no9E|l5Dc<__-!%j!X@=VjoT_>H6_7&O2Pi8fX+M5O~8RexG-Qvzo{`SXhuJ#p~ zrpIK41~A_C=f*jftGxC{dk50;;b`G+pK)&?LIJY*-~N#v^UIc-2zNT>EDs<@LxS`c`q z_3=VvFbO1#72NXuWX)Cg7xv)F*;~r*Ri!jsM+dNMwnr4DoS8G3S)0cfj5LmH-AN?0 zo#0>|9N7v!#DzLDu&g7UP!*WHVELv?D-v4z!Kr^ca@z%s;JDPmFg1HkqsPu{}q;zo8* zBe0vZ=-lj(^7~l5%*%3V{!x>tVJxQMt3IRrwtP?PLl3|4C&V7PejobVAKEn=zlXjx z<45rs{WSTho2UJ}{Zl8-${W!^`lgf5?;cs4H92Ls#cK+2dv?ju4$m6%If`jxIND#0 z3`mbmlFTEW@Ih}5j>AicPGx}ORn&Z=4$F@g+@dUZ9tbj(31w{>)@EfLVp!xNp$JN| zj;tKcM!t#G|MaKI?@;>pNKpRrYvuMc>}AOI>h0l)zu$8Ref{>g9(6qxdHv4&-|%w7 zH@-`aS|6RDqfhy-TcljGf9XIuE?*1tmY%Xxv#6`f(d5;oqCZ>*kZ|PET^g$iLfA+G zP)`}$Rhx;?wx(3{5JygrgFwc?_5}n01xxv$02G(yNEO&`ZzvTTYKgowi&)bO30&S# zka(WLMrp+g;1|<+WD8CKYXPc&a>!2k57O0nH2>qNdwY}_XU0eCJntGHSfm|Mqm_T{ zo;o!YpTk$9%Bad6LFMo?PEAl#|01qjrS0@Eht*o!Ktc+?+k!CIf!N7 zNBCiVV5n{ZrO+ozr$ou_kCO4&1n75Gf6xv(u^H#6G2*Q65#!JjMJjrb8nLDJOL?opKVP?*ty)78>l2D2sR_ z{*On6NdI8uyVvfVco=n@)@n~HFZEy9-+v{Ri7!1j%H4zeh@bMRyNF&wBm-NBPA^{V zwK{jJ3iAs7DqbWxx|l4S0^uYhgIlf~q3BE75)FObAO326_#G?K z&n#+)+C<$;0TFzb`1db`X_W-4;U?Qmz$6xw#+nycu;@aS@)U4518$0Ll9y=}38EV7 zaIexqZ!K)Wh0-m+g)%j+SEGJUbB1jHoTbo|tE7BQYu+su9nKK(n>S@~yHh%Uln{We zUy28Obfq?QRm}>;9Wm1^n&v|- z>zT)6J9aEd`Q0r$+HX9(BmHE-VkN$1C4;)N$&==o$*(Ci?NJ7SC@j z6}Rq%t@y2*@N}>VZ~vJqFE$S(p1pL`X;SRN(F4;I|EcaW(x zQv&@RP$*RRYjDz9Rm!gt3j6Wdp;G>kDrFog<&O|xF9>Qs1_G@_h`Mf3;c@O%HMCCp zkDn!~m^Q}eb>m#2N_dCQJI9~<>)fwC0}t4|BUY$#>hL|jU=rTR8^@_rI-|+qRQ0LT zT72QGnnJmmYsT|iOKX0qIL2@tZE7DH>sz#8Go0=hiw*q?p_d(!iaU1ifw1&rNB+O! z-UPml>f9TiGo#VIjYgZbTD!bSwj^7YS9wXi#7<%-P8=srLUt0ela(YmBtXMbb`l_k zKv>FlE6E`c3e-R;xAcnA($d?$ltN3nr7dlNUTz`w;K^lPZ{k_-PJch69bpI78KMg@XShg;g<8brvp{Kcyo8{wInUL;i=*ps_yDT zaKUg{7O%vtY!?1jTPk~S1mDFOQfGaX0(=v)ute`b_{>m%kyr{WDREp94ap%gaU&>c zwA6sRnbb^DI~Du!Bu?N7i#Z0Flr5yO15fP)SY=2IaSSYwK*P}4>d8Pm-fR(}ZVoP< z)AA2Ac#XuaLkrErwY}@t_x7wu!Yh}fjt|rG7awd&u!r{V6~6bKjPSiZ`wy{|b-nSb z1O77jIbsQN%OHNUBf{^{a_$$O>f5v`8tk2S5od&6bD-NLQfBXtKCH?47b z9J~I{-2VCV`{({@w=>{gS>INEU`^5dU%mEh*Nnct8C}o5c1k=MP4)MuYG=PSb^`~q({$t$-|UDQ%)4Rtw^5RSQs4p%VyWRsm+8N{C+T!uy}e>E;P`JU6QMh8p2CVi*mV)HeXFyle}m zoMn|&HKkAy=kO}|Dj*chTbhh!Nj&BU_EO~Uy|Q44w}9^hiAR;nz_`aqWpFMjXdulZ zW=TCgH6>|p$X}@B&jAm5?jSP)xzfk+@t%-Jb~|LH9ca$1HjGTmDqM6ZI#$6Nzq}TxOD0U4hWV8t{bd{F6 zoTV=^`>uZOxvR&o!bkd0pix)kT=vK%mprn}Zr3)4;$4;N3mD62I@G``Ra(uLPx^5b!I$;ilbAm zPwCf+W610M|CC3S#F zftZ)LlL|doRP6B;$I)!06uyA475cKrKl%F;->7Tc4v{buN5Aur)Bl3hjdj8&rSXJz^K~WM4ksJVJ0FJ;y0wtAJw5d>FI#R0eW=$)=2~U$MjB%U` z#5o@V1ebWV4^=~irH6y-^Ugc}O*nPM73i)!{(~j*PT?8aBs_yl?nWKLDcVTRb@VCZ z8ZUVeZJziOeX9T8PA87{)2GJ!(Oqcs_-AL&&(Brnpn_QbNmI`dpVu;iB3YLoHP!(N zPz|xT6c>zS06kKfCq~|ub2O*0zi?#Y*ASWlHkfcM)0odRidu1TLSRYC63w=P%}I}^ zzdehM-#sE80ti&5mPin*NG0atQOopHmD53d>Z@dD^4Eo5{w#+3eo#wrAgTlveljRF_@)X1sN8 zCbQSbTaxqlOqQOfGg?^kI{yMvzu*@Jk%=1`SvdavLJ2doZi)15T)1##h*DA|XB4tL zW(lsM4pBE!uTnpveo6fY^(X2h>aP?9A#;IX0!vebWt-&GbhNaPeFc2{La;LutUwDE zxZJ45#S~(`Bdkvc?ou*0GULmjh%b~#Hqpce;}h`%K?VuH^DQz<(jsG;*rbbYMkdVq zHOZUBU@Uw$2rjaSEEJ(j@tu6!A~V5F_{-q2d=p)dM12uzMzUnJDOtj4(FbysiMO*7 zi&STm9anHgobDt-51FGkN0U)ydl}o`RGus~nv_;`j0sox5Snpl`RbN3&%%ajmAj7m z%Ny*W$nq|wRHBfU%iOGiks^d-a*pvGEDm{ShOSRydhS2mShRAJLuwLSZoQR$Q(2+r z^-B|#>${@*aC@_}L#{3^HmlA5wZ~CjQsmY8RAq7*T{3I@gtoSvW6EqSC(}xmGKEB@ zvl*h=eH-1%lF+Fdh23c>qIX@8fl8T zfSJ>onXumW^sy?xmoZxP2EM$@R;*{V8oxX3C<=#ZmCnROr|-C=vvzH=(Uol02aZ1Z z+#Q$D5>~+mWKOlKC}8&3noD|g$fVS}yUm(Zqlvav5AVCnD6wrae}vRZ<3e?|lIC0< zTf{y`p{Q^m)Pt5RG5JH53NFR>=oHoS9{NEUqfjdN8kve`O>&)7$+9#fLF3fg#Z^MLn7Wf%7o$C}J$?nI(yXw?o_uw~0Iom;pK?`-?HY+Ow6 zkic_|Ozvbsi)%6#)RU}~FnCQO*Z~O7q9hDaeBiE!C}=>CGHVKxnS}q6KtLIumf-&- zf+L8_J5=94qd&@PyM2u=f4O{rs{DyElYgLXPBOIT4dGA18^Q-aA3?ozkF#xh>dx)E zi)}MoI*h((vBRmfRJc4NSNZK-vj#UMw?2rLAh~zlvRKLdGMSoXdDoWi{b^RN(%q-v zER0U7Rp_<6%I;Iim8{aD;Ek5*sMT3zqvZ=8*|T{@+NqQWjA5%|LEk+==S;iCI<0g2 zzQ-3mDE!CwF5CJla;({uFmf%uX@nZPnh@iSlXIz*|9HMqogA{nY55z$t zZj0pt#8Wlk#ca)V%p2~CX12YRnG=H%?uq4=ZG+lnDRs{lqH38S*`wt&G>}q*( zK){{I6C~qeZfL9^96fwU8@H5M)?bIFA5$YIq9ObEL+8W zo(YXTYyIREJxMYXt_tyG&+@;0xs0Tjsnd@()HU*D0A)a$zd3w7n?NRqTb;e4@J)3M zB1qrl8BvMY0EL1zV>)n{OY>3{Z+8Wgy>nJ<*m?b(cYW)=`;QZsP(xO8FHEiLuEMQv zxRC&7rd7PnzC7J^*FE<>Kw7OcjJ8Z`zmM?8CQgLl;MiC>oTMXi>484vsevE36cg>b6i5mj!^jUdtTPFVqo;rPne=XD-pv68b7k zvm{zI&FM52of?yd)BjLl!fBubRZhQ*GfBHN$6DtUsb@ymTc1IDPJim&&~mMtzQrxv zb?SEoJlsjUS_n&KX=*mLl-fj%P&eaMk)g(@*G1&a?26mtgtn<;xdh3$m5?aPPBgYB zB$~49#OqF zmOd;*;1*Sc%guHU;>%0&+0FamQ=eUf%XWSPpWl+t-k*g}ef9`0`}Q;V+>;+I@f?wZ zwI%x!EuU)o2dJ!?@-^PeoXxabNy$K4oh@V@KH2<*$DnW>imlirs@3TJly~GdH+A(f8lk| z#*%=b)A$H;WGcV{%3dnzuofeVN6O4nV*x;&)xrR>Z7kZJ3TU$Py)sN z$$Q5C>4%T~kKYIMO6fCt$r!toXl&L|pkVM|Y8#AZ>~Cev`JCNMqEkWTX4i}UNWOf= zEPAbK^EoX~atNw0KNA8)i<>iyvIR8)miG;#da1`xv@V_inClq1iY7dR;hZQc8M+`U z6HRK1)3vi5@1srcJ7(89gtrSpnZnzsorGjE|G>rXzwf|}gty24mBeF?2qPpOvljU~ z#8^yGzXHB#8p=n-sWz&QT1AkN_6CQqUZ_k10t=4fryGt(ZQb{5ow=@|>nJ`73%b9xamVcLqZ_x2zMAPX z6b*Jp6aEWmi<8d3c>=o#&{=?x06$&Eo5}W>J0hDsKUdn~0Wb5^-IfZvptEW)fHu-2Oy+zPKTaf$b5* zvlWO(92*JJW9D)*Jr<1k-4kg?t79VV_FqFkOFug?Jxz~Hj3E3?;Z`iw%H?M$ZEJXf z@-=Y6h+dCIxCSO52*MY~(J;N|!$}-hIqV~)RD_CAHB=qdM75H5oVIADmMCAFNlLf0 zm|C-bUV6TxGW8;LxxVFQ$hzhFF&VzDLNKR z>z_q8jnU9DjEV)ji1MpMU=O3DrYL z`Jk|Os+20&+5|bp(v*Q9ttY8^s)c%(%2k8d6wT+N)g(G3hSy%TK10EZU_o}Lf(Qc1$4mWB&ka|gw<2!C73X^LAW(! zU{>G-S`NxzwVC8y$(DFisjRJtRAmAjpig)V85z-IdSVdcCKG)Id;w3aI^pwFgQgsR zq68(bQkjQXQIc`m5zmlHVuyuX&cJ9|Jgi~)#{3|*mpg1~WI61V*EcvseZQsJD`imdlHRFo8b+)%2 zIq^bQ@68jrHxU1gcMfr`jl0rGA&=xt*`A5pUcQtn%*{zXvI|r5a@^a~s2S9wlh%St z;u2V#&(uJNr2tbNu*YT;yKyIX<$>sj2>wbN$zKRwgFWYHmcgVFB%0+?qFDyzdqqA| zq0csmUUI#FALj$#DJ$;Qh6+6CTid74Ak;qvIPgXvE-wae)rtmu)-^+fa}04=Yx7s4 z;ga4CiH;Z^z8Z^`Mjs=7u+Z;?Y&O-NLKYVYazaF%dY+3r+PCf4P3uD4bCbf2Pd>kA zwJ-Xn5fQ!UU9Y10BK-U&MqpM13Wly39wro9qe5>$Z@*T5q>G;R-4%@#wWvdQ#fkp0<^BggIR4V?b&EPsz3Ywi0*OuA=#O>CkvmYnVB!=$>>H9G zEu)p{RR)7q6YEeY4D`ag*RQ{O{j*K;2Y1h(f4MmlTDar%n&5C^H z(r9J~?D+*_TojMtx=5E%Bu2YPZIw-&*peTb&uhd^1Ak_-79ZiwX)+L#N(@;#h3-O@G6_bS*u2R z`u8-aE^<0kYCWBtokU$r+uN76ZwuAbgo4Q=jHUj}Jn3KAGn5|F$O^o7_fm`SXU+!t zydL6j83))#F$FJ4fRt_N!HdbNa5T4){^eOdq-Au7fx!Nnq#@WuC(SGaeHpSN2!3WQ zQYL^{68CONGJ#}-!8N!;n-QZ$5b18=14+yl$+WC2s7Kiow>4i<>1HG^aI{SBo3&l0 zQ+Vl_=sP-EScErU#e2rtVQZDI(po8x{z`Zm{T$ulu2HK(UEh3L7(VRnpVq+L{if`( z-==DxQ&;hZj@#uvl;VG8P?|{~_W&*8nJ0!HxTwYWoZx(L&E;@=ByH3}*e~xgyao&Qvhubt?yo1(0sW+R= z!d*@uBayKWGM~S!67C4h^clTov(mtH7Hk-48Q@Zs;5Ac^dF~%jnNT!qcE!OXca+t} z;(kkPv_cZX6t5``yNZn@aaV|uAOS-CVzJS(;s9=e@)-p7(9tNlY$SvcOr6&JXp7Y; zC)9A7s8DS({cW?TP>ty`^QBO>;cQAj^P6a?Z~EMo5q*o!&0r`*y4kW7av4Y=9vYwRWXrPSZQWCDLaNn zh7X|Qi?6(Lu`qmKSQyb7MgWm!L_8YMCTO+z7+NXkdHKY*$W;LsmG}h4@kjtd>F=mq z73k@T!-dhXHZ;O$Bqde2Cp+V?t@~rZ325`MW$}11%p}yTI*(a3;+i6QIL#n%8`)Xs z_k4zpK!>y02I${u=k|Ofu4%$GR;aN+&s&;#Oe>-F&Vy?;b|8U@nCkKvT zNWFV@_|hc`bI;j_|(zo5rtTf=uPYK7W3%V z-`j%t_zE0H_yin+wpY-t`1pHr6kN4VLTpRjfAg&a&`6A(#2LV-|P9S0r=o-j6Ilv1)N2ekA?Pj+4 z;KtuR&TDyx>qX(}yGt+h$zsCpQhA`gQC;GWTDoRLWdY&CBA?u|N8>9Bn{F)C2p<@o za{FqP-BiqP^(xNyRdM5SnMtrnakQaR0Gvb4N|M9ZPa$^AayI2@gAd|r+$JP6X-68(P~DCI63uss{y|!X0phP zz6;BNsdE+)=Cxb5(BN5DNQD&Oiy>~X@gwF^D4Q4o~hT!6>4NK z&_ek*Pwc< znpP@Qa+#LaY7I66k}h!!EPWZdxa!olhacWH{uhk_-7%t2jO>@&2-fQSCzXEK%H@91avJ%#eW;}`x6eWB23 z6oT{l^V;(v`VSfDkmf#BSEFrss#G4N}X2q7xZVfUauC6e^%-Bs*lj0kW!{n z$TZeB@lThttXwZ0|H+@|J&aBvW95d4{r{mc7&KcpGY2e6ukiVp`Qh!`9-m=bF6(#< z!KH-zZ?6(0Iu4?7;d%#VI)875Bh*3uxj1W%z=DnKS}LuiDq_#v+pE% zJ5<2Y&lvUDwV1rs<{?HI@&)5&yT!~nntb*;O!C$mAxv<7xOCRw(C~^~+knp1a=E$< zm&3+lGh|~+@aJwW+tiCcO@^n^ZQWPwznYN8?mjGyc>MTIxa$Cy?HI;w_8T(2pj*r~ z!JQVvXt<8VC*p^UR&Ut0lYplfG9#(8u$Y!}OqfYe0TzY_qrAmz0%JSiFxAtd$sG@m z6tcTo$byC3^Cr0NVfZ}8jZ?rLKd|_0T9&c;ez8VAx}=7rv0Gkwj^=6oP1e z``5=s$)}09k`&XQXFQnu-uuaPu{fm9l#XQ^w4Y~c$DVCk|MB}`aa^B?jb+RE&odRc zb=9XQiKj_OKN=2|@@1nXaD4V9)n7j&sFUaIZM{p1@VL#}sFzI^+Wf6vjtnb|0SA46Z@qB>wuz zd+GEC?;DXZw1hz{GjiX9(}kZ6EoW)CmeMzGxtV5>L_*W-@*&}8jAe3Ge%*AOFiosO zzc2c(#_9cnass+%OeI|U(h}|wDeT~UU6p?G5@m;jXQ3WcRv6@w~cwtItR>rLBLB95} zm)nF7yH`up3?>{BscLPH@J{>lFSXNiF4pH?jI6z1#>*vAiA*86f9+btA=|oj_sMt( zgP)_m50Aj#gx@oF7P^}~udk~xZ`MX#HQC#qXeLGig~UY9xbqwH=L24x?R;EQ3!3>5 z@zpL2!nCPDa20zhqM$ZOWleaa%`|~gmGnFoQL^zE@xabH8u4e_KQjW=m<*Gk9xQ8k zAO|YX0d0rS$bX{Gi&4k$p`OyVS>4T*{ld+Q7X5K&!d=_sj#6j-iT-^=XBp}5+iB<5 zP5c~Lk=o$tU*Oi!`zB}b`F-l6%BUE1J(Y8w-HFSHvBE;cze0b;&*@J{edvs3O7gi9 z;(=5Gxo=9uel90w-9rB+aQ~JBI6w=^mO~~c51!qSqKV3uIf395dsAZ8CJ*jh0IiE% zl%P~6EegaFGt2k&LV%_gZ@kA3td+-E$KzOl%Xap}Vjxr7@ zzf2U5hKeLI?wJ~mxp*`nNnS2iQxDxfjmuRf>mb6w)WZRbLuKoexY`%>Ky_GD0A*dx z5TXg2galGI^79sHULp!E~NPfbfM+_P-y&kr9DHl-#s@ zWR}@0T_?Zgom)m`tet`XjZFT*<9m@o9T_>DF0wbH-jNZTNjPpVnzMfWdIFqF!vh2g zj#C6)dfxhoQSF##T}(YUNp&g-!dxXmn5!(uBa7F`;M6)PZ~$ybCu3KlnoC7hilyfi{nDrW{G790g^Sq>vO1vb1Xnsy)DA zL5W_>fM_x6W&A~#pFw-zVLfj&$|Y*m!w0km^f}ENt#;%5`G%Sx%_kDyV@(FLo8P}* zUt=_}+=>#V`EywBRaX~DJF{DsvC35J0t>T9l z?b(sDxAwd`gp>*zck&o?GPC1r)(7~i&ZQQDm+BM`G%(d`i!RuPam~O~Uk!_#b+hk3 z4~o2U72%cZB%fzeW7KF>ELA7^Sx=sce%7!pyC9NqfXlW{Ck#`redfF=F7<>r($Ed+ zF5DoKAfnmAi*|bu^eW(d3a~{0m>djQ3MDekqef8#`3aCaAoT)K6H70;0QPCMzm?lm zaTOy!c~Z{c6Px_#b+lR2tkKbhPgH+S;VP3HLBdr^XXep)-fsU*hqsq1I4<-0mlqbnO)IAXtb*I2RFH z!Y*bD2*!wSut$X_wv@m}Xd#z%DuXu>vtLZW=r6&eB@Yp3!KaXlqf9~3(C0DRFpG+1 zSh~6pwTx*B1a1}F4NOKc)uc~K6O28H5`~c6Hn?l|tVg$h^MN-`hw<^XsTa%Ny`r(h|cbJv|PGk>(cqG^jE@R;jcef`shcUD12({Ki?d??@A<5hl*GC z%^zC6@Y!Eze_;8B@X7tQib}3}%T4bg8QM_Drz84e^OTvgQ7+0$1*uZ1g6g9t^C*Zj z+A1~5HcKJF>0PR|xY#A~M9FzWG_l!^9%A~b0ffCWz6 zt6-M#hzlS#z%j(pD!_7VK!GeA-aJj^CMNFnj_2{oc;0*Wi!V0O3xynD$fB7qBR#<7 z^x~3Fg&dlRG!qY@e}55eq`f5;+N;q_ykjYuc&EfN@s37Ado8E-?-w=*8_??CpbaN} zgH}%rpFDYT{1J5PiQmvWe{%xeIx)N-(Np=%+6i`YajF2e* ziTeaSr3CdxSUlM_EK)zXZAtG86dHXPS&yTQhyMJCM8}-&Ks5W+g zx%-7bAD3FCkym#=_#smM2cmX=bGflg+tOB3-Co+>-``$((~e!=yhQIWSEpO!scB-_ zjTc~T0q$vtic(4HG2(ILB_2g~;&fC-3=jF<+Y01I#TL22ywsNcwPt z1u(3+EDtVQPQ%jxz*X!ES3rL!xol-MguNTGRS6iCpcn9AeUNnB7^osDqnrWnBq`YN<5j&yjAD}qAK zq$ndeLYy3gNEdVkr7(84F91Ybi-e(`JJ*Q*}?2uVJA ze3kI)U;hFvdF||vqDS6A`#*OJ;}ycO4hgY` zcYBRd&w{=Vv#FuWDk(0lD$#1RGG(}8R#kghrGrPzJHm!Dr-T!Kx|+W8muNSpW%Br{ z9Y^kXxFZ(QyE%RQz?Ky*XHk{MCY5gGrrYe58;jjfKNZ>R^#nRNZmYJ_>8!oyRJy`# z^lJv;VnT0N(c<1~!Z+ZvnQy=u)>9m0gL;)C1&f%--Ha0(kQg5|?bY7@1Wx{kVw z`YTlc$4f;sd*h(K-WZ z9>%42L^V zwXLUmV8NoLm#*KmdF$nS_g(o70=RP{zH#2*@RIGj4qS8nO;B=&;i;>3-+bGhcM)DT zUCSBLW?1~3wMZX{R(cycXRp|``>F%C-T6*N)1&e79}c&Qm5M7f6!`?wzdV@ zmpkj$3irP86SQ<~$`^zu*3u@wub+3NmMu%!&0mZ3_kDP=v#&VOjqX0-sjYRa*tCAN zqaoo5dNGIm?eckQ)GGZk^TiWCmbTKWd8Lomme#&E-19)Y;crUi-wf>!^bF4~omV=0 zQSSq7hL4rXj}2`P^e%#;@mG*~Uir6Eu_`aVS*pd4dBTJ5ezbI+YP@sx`b{ewwY8oT z!m1OVM8k#tu(g<~bWwAtCDZ}bN<8=G<}({&c(#w$&sEFIV1{>s<7;;1c06g@^qJN9 z-0C(UJgc{2!m}_s8Y;WuD!&E7)IclGigDMXJv$Q1=?Rh2Cvn><0yvRmh7|puKa4mbx3^# zszd@_1zN=rNmX9pk}W1!MJA~wL40?;e1fnxJ};VbCFJ8+#z`c7@JwQOj+=ZYg2YBr zo;QN?PQ2O&Eu6@AKE`Ocy{GKmr8DhSRlP&XfO=*s)-Z2-eR;5C^S))PhSzC&{lV^D zv?eyaso&}?Iuw$p7$K4#bs0+OZXjle(pd{@RI|GskPC}%6w*P zbd;aFcsoqIdHI~yun2T$^YoyhnFdx!l-U{0sNTv@G2m{?^O=M`6L|G+kUdG zxpT=2H!SU6w$opxzjaSIRM9bSUPpy+$F$uWTK?^c!w=nS+Owmfeh)o;R(&0Q&AQn( ziR2xLWbsnz@1&3GQrdy}jg=j%n}%XeIW4nFO|pj?Bqamu9TMxKeb=9gMqg7a%Sx^s zwa9}ZcZtR1s+f}!-Y80~8(4Yi3i`%t4>k6qpVtpAxP1Qn(~njxpf6eM^(>sYXF&!1 z=nFkHzLGsJNQB!Cc)lMBH!K~jM@uC11$aSTEDyoX4zNIYe;3my`l0|4N@ev1g8uU5 zC9ObQoI^e>BlAThq4U<;Ce(Hfnt!KhAl`0cOwp9TQ*-X3kxZW$6?)MLx+iqsvg_+B zmu>F2&PLuTb%v6>O6GePwS!P$a~|*pYl(~iB(8 z??<(40DrSYQ@9;}T(V`2F>KWGSBziv>Gz(xs$pn`uXOfi{2X7~Ea67MYWC1}Bj%e8 z1-|)GisJR;eUrhOB&2P^tHULAlMIoNt!`5IgoNcj86+LIh#3Zn!9F6QMBs@}&@z+Y ztV0rffy)~C(Luww+^j*I_SD|%PhEX=RewXw>o%%U(!fZ1=ZE|X6K7KC5tc^lyNq*^ za$3Ts|5ClRFRhbn)AEuh`+e=(=e8K#s(PbDNz;`(HLOH#=qf=H31dNW#D9&uD!s&D=2=>T zP(_&0*=hpekdrnenx+}m^G%Ggq)nngHIwm3O>&BTiLz5c%n`Ivv#5ojGp~t)U42dr zoCz1iL00ugGc6=zrJumI`3(R`CF%(wrL71j)}9|twTCh9K=yJ7@Mst5>Fj)Fwx~Ui z5(Q$`>nH@pWK!IyL~qilP?=do2b+4~g}ox(e4Pit98ELKw1icTCyjz{lDj>ive zOTKz%J8rrV*Hu+PoxZ{zj>p6H3UpJ2J(Ng<>=n$=qsVdm;Df4X{|Lpa`eX6&$B^rj8*lvdo7;Xq|EcwX8zseJ`NXds73EGxd4;|3NfqQ^=@~q% zE{fuUNl^(cLsFuI4lrWwy=qQ@0zuj<9no<{y+?Y6V(nT^r4i~sF}O7f-oh+B{id)j zfX2f-Gp0~k!(UKNy_`KI{L&(kd5maS;u~N7fOaw;${8$o+o9eBQKfr~8RMgy9v7|cP1AuExJNNI^=4VIzF zq$0u-pq3J)bKG1&4k{q$g6j~8ofna$&%!A{VL0TvY8~QlJBl2y@812o@cz*!gxA)~ zko=HRrP`xnKT+J()|bA`e|;n}k}8Q>A;Zep@bu`!7xjr6`V=gV%(7Oeg!@($^{T+>G6)~b4ex~6FsugW@ZlAhv)f6;k)0G2?A#;@CH*4AUTr>C+fUMP zG~@EhSgxOB;^?1&ul%v>wYXD;cY+__T0Cp|xlu)^b2ag5Gh|Dr0k^koH86fqJIG~r zq_PLC_&TvG1<1KMslSx4ccPCeCPHG!GcA*vcyJx{z;?tZLXmPHot4++;vPc3vRp=Tbezwk5E|ZnpTy|QjG+i%@nN$p;GNJVK_{0({R5}o=v|Kmdx5K2A z(M}hXmK3>N5~b3#16^xUN+e2?aN{@4N-1)>p|;fOa&tJ|&5I`Gh&@;MVh-84ane*{=Y zDFhE{$!Gz7PYEhyQXx=ZrnC8{r_KQDCukiU+_e$K&~J+T0c%WRlQRCI%ZmIr`D~Zj ze77yz*P3STeR${gl7PRc%b7;fB31S2ks`mpNb=I@Cip~uQ%CD|ZKH?|Ym&DuA`$(K zSazCET|%v+j#A*3YF-=%Wq&SFN5E$|n9qp?Aew{6gP0XJGY|#WgJsdos(jYf8p9&a zDk9?8p!KpQ*zqrmX7nW5oX0yni8yY=UD6Z-XvOI`+%-o{5O$~(IXS-YnKQ6{tQP9~oL-*k~Q@)xwRh*|q^H-3Gav(MqCk_FX;~sEbMDiIM+{8v0#Q4u|nS(8nf#fJ!2Wq_Yv0P83ho?j%KYF+)Dbm(pjePXB>9 zHV!wk5mI@K?BC)z2BiwpQ6*aa^4BES}eq8R`ZE@aQfY=)%ff@S*w~_JDGh& zG<@LcmY78AtiZpghA@$$@)V37r6dPS669#`T=4>ggdMm=2N*B7QO@M_!0!qhvfcoJ zn;6vxOJiRd3_%fl5&>;41l)#d5}~BX>v@SDGk5{OCbf5PPSeNqzRcdegL4}{rsSd(1Zl_+W-&sd)lj(P+L|g=-S9VfSs)uq5 zxh;MiOck@ZjL4$e_&j27I(dJZujbo7jr_fx=hF)|J};aWek+`QzRFmnQI#6J`{x!J zjg>{0JzOq1sZiRKLrSGmtx+yKY;YLxziCQ^U9nJsxl0wU8Nv+|iiOaCGiV7nvQ&$z zkPETTZ(NY(`S!m@K5fU}m%jhxP54VTZhW4eQ>kRbbN72yl`*5T{Nc+OJ9!3vEPh@| z;TZlD}A2W6HgelRY!Vq#<3Io*-oJJ)fYt7eL|pVG=Q(NtRbriPy(_43FJkRyl4HZ zhhBd5>~HpX&2X%X<2~RO`X6fJ)rXQjbZ@-;!}nNiroet}I=f@LM*fGp^Es^BavGF z_J}5r#ARo5_5}~-erlrOA=hNc+e(eq<^3aY^39vtINKL#UE7$SMWh|c+ZDB6ioAio z5}UT{C186Lcci_byl4F?NZ&B(NL?+wsje+z#roZ7?qZ6e?3rNlcZO5TiOX}9>l1T~ zIBN|oP=hZF#I^>8f4!rXc`>Q4?asuk4718M zv*JBw%z$~azs4Cq!~MAaUTpgRKXh2mlfN!3}Sr3B*PTJw1SzB z#e!uU>n64YwjQ=~?2|a8IHqtKafxvK;V$C7!jr&rkGF!4iLZz64!;-w4uKFsGrNSsGYwvvRUpWF2Mw&eq5FhrN)+N5H4U*Ti>~-wOY20h<~5;0~m4`OTL#Nv$N+TxWGq7sdg5|Yc3FQv>& z^-KMdb}Ri!MpnjzjBOcrGMO?1GMh42WS+~?%UY8ym%S?|CFfo4g*>jjJ^6J70tL4U zLkjN|6%?nHXp~GSb2wqNa1rM$O+^l3Lloa93MVyGZ+@j(45wx>j_3>5l1s)ML;S z)$^@)U*Dttr2Z2VL?-N;m^N|Vq>{;OlebObnzCSO$kc7qOr~{BdobN%`h*!mGqPqH z&73jIZq}Sx-)48rzBb2VPTibGbG7Cc%sn*EYTktTO!Ld;-&x?aVAaBqg)bJZSS+%5 z$r6pFKbD}T2EaDeGR(18;N%?|b)@;j_? zMC(Y+QN5#O$5@U{I`->$$_a@Rb52&B5<0cxw8iNIXZD;GIXml|+PS>*b{EcF{Bmi* zWv$Bxo>m---8zq&pm2-?D0h7$)cxu z&orLLJiql)=#|r}AFmg^v3qOuPU+pD_p3e_ec1D{?32N#S)cvB9Qh{l-RXPJ53?U< zes1~s=9kW|YrpmWc>LM$cgo)%|Em7`kp}_G@62ETc-muNWME+Yz$D2a!TwxW@n;T%(B=y3i=W!w!6+GD7-mh=?y4mCzsIj#lFoG3xYom~Zx~_(FDL z@^1O*3D!hT5p6`WQfR-2&?I+AzYe~ZP{DmnKf6FQzsf#ZOGilISpIU+?aWW zGHavvhIeMZUE!;-k1odJscM)j*xd9GCY ze`JvpO4Y>DaS;{nwTbT1Nmt|zXq=H{Ah*8kd#vHp2K*EI+pElwPi_&HN7xB=hFxG+*bR1vJz!7R3-*S6U|-k|_J;%DKsX2vhC|>`I1Cgx98}Oi zhZYEELkA2nVIg$Ef*#o5fD4Nf1Bq`EW$?g<074jpahQNfSPVzNk#H0o4adN-a2y;D zC%}nt5}XXDz^QN=oDOHenQ#`I4d=kQa2}iw7r=#Z5nK$Hz@=~*Tn<;jm2eeY4cEZ6 za2;F^H^7Z>6Wk29z^!l_+zxlZop2Z24fnvka39BUM05`;qaAVvAH^m{WU=?dPjCE{a z6Gw0qH^a?w3)~X7!mV)|oQvDyJe-f);R4(qcfcKSC)^o#!Ci4T+#UD8J#jDG8~4F| zaX;K255NQQAUqfk!9(#dRPbr1a@eaHb@4~zB9=sRt!~5|8 zd=MYPhw%}76d%LK@d!{_k@d=X#5m+=*R6<@>G@eO=?9eg)& zA-;$2;|KU5euN+6C-^CThM(gX_$7XYUuQ$x92%NC#C>&WsNYxOz8d$nxF3%DdfYeS zz8Uu;aX%XObECexAnNN;UtcgU-LX{PPxnIK)HA+NJ>AF&drVl4E7AsygOnerUV$4$ z^xR-F75c(UwN0y+3k=0ly^g@Z$g*tu0Xp4`Cwk79$S!uAo?_ZL**js7blUBVZ+2|e zO6pE09eAp5qztDga2I%M{Si_&bV!nz|*<@AQQUWrA=FNCW@}5PAa6V~9U7-e9PqaPZ8##7GE@(M=H`TV(PJs^7at+58eqqe9!k$pbpJFWX2KiVH-OM6S zcUmH=sj^Q7Y9~ei{gmc7-5fVP)$68R&$NS#uJ(kdrrM4j(08kqF$2{y^uz! z#|R2i9yeQoQJ`-fTd_ntC`F_B+MXyCDWIg%HKeqgpIQ+$@9X}3r(vWsP@JJ42j z!BJDj%$9JnuBiv1Co-csyT{>ivOSDITQ7LZJsG+GosjqLY{V z19^nJYlXhTz$o-gI~I!(h@_l#y0R}X3I&CP?0A$n?Y0w{`MM{B?Hf)|j?E%eEcX^zbL}I8`yC~Tu;*>0}OB7MIOuI|qj6#`pL*Jldl_`6KN3@~vXGtNZouSQL zW3t#WX$LLBLBtNcP1+(HP;fclixT3|Mg#rijfMrO5N#G8IM+XGCR#ZY+RPzEf*2(Y z2e_5=d_QTlC@BaH6g)en3Ck+#9M(1kHV_4at}#Zp6d7$kKj^~7K zies53jD)R>CRAdGq#g!zl`cg^btQgGH|48iqQLP{Gy-au5a)P=Ck!ogEMg4L?25pk z1v^GQBwq4pSwTK%mPiwLO`T{y)Vq1QM)HT!cVJ4AVV~V`oDQ94iUW$%Cen0=VzNLn z7lAx!E)pq8BS9u{B+6J(-VlY`e#&<|f*LhZo=Az3r(fA*QR!nXMSeR3m=58;MI}jd z=#GmqoLRHfhqkOJ#PI>)H4wzDIl{I_cdrs766X~xc0wUoXgT5qy627h6ya~i zn9o&MVqctQnCn{Ny&pOJ-v!#<#>E{F-2voN|{x0cCkx5i6Wd5dfVzE4% zaJlR<*$^sIO0_v!oK{(ien=Tf>1(rjg%QX8q2+;H(?j-4rVK?Rf-bhaB8k!v{FiKsFs&cKVCmWljQHf zl9z)l*AeB*$($u9=^2KRAQ2mVm(K`E>oO&jTBTZuO1`WJl=hU?T-hRkEI|rEm$jQo z5qimv<|aeGl{9THxzL?VdZCu=dgDng(D|7x@>4lGTk?>`z;F#!ql{E))zLXqvjNem z76!s!_J61NSmpk-Bgsultv1X}y);SHG}PjQ#DmlXU2}e-|MZyB;b3N41QvQ! z6Q$EjuTNg|#-ee@Q+t^DRp5pW>l|IqT$WS?|Y;rLqFAdHni*xI(HalgXq1gc*=UrFM%id|G^Gp=NehjoDmOK5hNIQCt?;11 zO_Q4uZrG?Y#0`I~uu+ALD#P5=xnYY6TU6Mh68ko9DDK&=%63(@tFm2{?W$~7WxFcd zRe7fx?^I)p8e7!Zq87V1KVEQtCGMpLo7Unj=hx%D5%;|KFt0JpyAJcN!@TRT{J^He zvFUcaah*4=^Rjg|sqD}4E zmRFV=ZcoLYebA*hAJn@K`U7&%u}2=-;{q)9R3Jcz09^#NP4;^;9E$qkAIWxais;d3 zIGi`%`{uoQe3=`Mmml0#?`VpwDg~v!`lWpLuAF~tt=l_F5iKin{^>W{wvu16n$|{r zUA}iuwzsO(k#36zcpvtdoc~>|x}!W(O7yt$g`8ii?`|~}HT5Xn8h(`IHf(f_1+UmU z_1#7VGod+|pRImrSDL6R`G=bYMQ6ifI{C+qdgY1TROXYGM|QPl-LJdKvjW;Q9T&}` zQQsbJtZy|Tb4StWX`pp>H&+#vw6T(!G2In2{=L1m-gK0*=(5vn*w&`}wG2VAJo>6^ z%50*`b@_9dlot1k)klxhh{Z*rP?|rrJX7*uMae(4-6mlL8B5S({ML4w8f zI2W zwRNY-s!R2adgIBqRk0P7FhXJXYt5aG}?jKRc+jsrw*WG=`HFA!TJF~<{VHBF7^qclU zx4qxRK)G3Z%r$h!q|!aL0??3fUq%tF*nJ(RwWZVrRP(6NGqj_~tMbhCZX0Wg%_3y%aIbRZ2Nz#!v>MAA1j8V0^EO@2q1mE#w*;;LB(_AuBkFE<&G>Y8;!F9K&%;(|OBk*2!sl7K;fo54u4V z7<0re!wOV-XiT=}a=2baatzqaML`%n4Zu!zHv9j&TCM=CWm{}PhZ1Z_hv;D6jrQD7 zdL2!3a!~^N)gX#md(dLbF&*^Gfi(9XegX?heht@o%g7RRLF-%tEn<7dFdRtd8lVZR zG6Nu^ji4*`0nM)C>aYz%GH_`I$iqloR`U8=m0>Ug;vpX^9r9uMQU)_1dz{S<=pX|f zg#P;=p*5Qg+?;Q=^f^6rCxR#pGML}nl|K4kCRAJp%>E~tNtj&xt0=ZV=pn`*M9@Ge zePp`X>|PEE&?Vj7bCbJ5PeJtG-~wy?S1_q-Sq5zqCTEy5IMzMZ_5i;D`~YZ`u*|%i zWMp9n{yCsY(NPS3BJz&|DLM=${UC@Xl7+_-L-%ELjr%kxJDD>4M0>9tN)y@HV<~he zIfNq&^aK9BB6i;OP)#nDDjF32sUZ>Jo->wX#bz7>GPq8T8u1ld*>j8OFwI}Vtoy$ z9D0Yk0E1Nq=N?Lv5XdYnlR$vGjd!v@EE&>x7~JDZe#bJUvQV1hVpHBtpyfXAB(!7~ zL{^#*2?!@RM+Eg~gj#1Hjx5R1Tc!d1CRnEvtWgkT;7I=y+`>BI5cxjH%LH_?KN3^X zWFK*GS@4-Agy@4L5-d2&0XJ|eSp;P?9JWe=8L}j7QbV9-0E&5T9R$7(ipks)WT&(M zUq7;0{0#i~b1FVlKNmeG0F_+$IZW9Up<_PzRm|9RnlrQi0mg=~TuEc`gV3K2 z&OjuVTE86$2;zI#uCDi>knZAZBwY*;3v6Bow}?{)<&<(HtfW7|%0ONM&KR&Vta%D6 zpu<7K5pb?16Xq3QNiFqD0$S)#CD20uGF+Swfbilb!j+Vf0U${OZ*SOwzKBs_YCcRE zx;YB2@^#5s90?9FqxgjW&q)wPr-)Sd+PS$bgkqmgTii4g7ef@N#P{jw-WTWs3RD9> z^sXUtM4X5~#c^Cr6?;5{a)~+N_Y;hI2#f;R^^@ovLP<+sP-yCgi8vPVU=AUKc@@E^ zj`tYN$j(Z@N^GRIhz|%W`2am;?I<9zCtVJ>>A9^e2BQesqlmw?-*VlS={O|t(3mid zV@GxoQDqV7y8VvxGURb36EjD_O~H>(%qDF40gbEaE!RPb-I78%jlWFj6d)P&nwEt+ zHGnqoR^g!MUaNi3#s&@BY?}rgTpDk}tpTyhAWRY+UmXOX2EfuHqXDo)oD9%~rlcPk z83gR1dD#JCgsA&%1l`@xyMmP!_?ThKG1^YwR#D`u7@$+=Xp!I}n4=g3b-WOI2OX55 zGzSW?NPrNrJ*}MC9DV{h0P7ktjsD&-f+_FFr(JOv@UO6E^${!pGT9t#=)V`Zt`ka^ zu{0q7u;>-!(3}8X_ac}je8=8|4_O(kYw{6P!fH>zdxbMB@RHpztW>5s4y6wfM7HTI zib8!voJ^su&VC0Jdfp*n`@xrhkN#+j1jcqhsUHfAMnYeVj%0@ZFBnWeh+pWuE>-vi z3mrnmu|ci?%bn9GT6-{=K;b)=2<8B-oZR!5J;Wnem4TRV-Gq-jQgS$A0%?-YQ~xFN zip*t^d!*|OYDs(_X1;6iQVNdPF7l?IJ;9>*9?j;@QrNf~eH&CM+U5kP7!d;{>Laam z3!un^U|HlTX>T~QG?`E3J%{V8CCl5>b+`xaAz;Zo_TNfib7HAq~!o@L+O-p(lW{U zrz$+3Eb?H(D{h>$6facxUuD=d-Xh0I%buegva)f~a-6grCoPfn87D18?y#3x9w#kD zqLMPPqCQSqj+2&jgzVI$B})trWi7?I*7&HVDo%~|r8dREPde0kuCtnttRH(;GtQ!Z z(y+c6ePC0hJJ}IhI#(K>(fl?#`}1m4Qdbp+Sxd?BRyB2UHUG5M+_05gWuvyeTDKb2 zTXa0vwwks2*0R;ao#l^<1+`qz3gu#{P%4$s;ZePM;ys)JuI^TFm^H_axjwSiYn88* z`8x}D^xKOHhSF{q%C`$e<#Wu;X*Rb%&gY*$e}1P%r)%+t-goMa^;@YkwQj>+lM9Nf z%Z22hGG8v2%F3FOv{9y-{wZ6%wlY%M18u5`Bf0}^#YHG-pslnp+^;mEpH{-!8hBPK zV`=rbl^5o*CI{Q};Wm8;2eR?=gEG*j56V!{h?IPv473%IIUi^%l}EHKq@HaytlEa% zU`NoO)c%Y!#yCs-aBHouu(gB3#w+zYPLlJ3#}Aj4XLof=EmzeAtE_8l<;r|{zNA&G z)k<|?u~ID*?8>}aT`R8^t+mCqf?BXGRnt{VvkE1vx>hV&_C4jt5Ag*z7^~4_OGZ`8 O+Jb!J#&17+ApZ{pTMDHB literal 0 HcmV?d00001 diff --git a/documentation/RDS/images/clipboard.png b/documentation/_build/html/_static/images/clipboard.png similarity index 100% rename from documentation/RDS/images/clipboard.png rename to documentation/_build/html/_static/images/clipboard.png diff --git a/documentation/_build/html/_static/images/i-core.bb b/documentation/_build/html/_static/images/i-core.bb new file mode 100644 index 00000000..3bd31e10 --- /dev/null +++ b/documentation/_build/html/_static/images/i-core.bb @@ -0,0 +1 @@ +%%BoundingBox: 0 0 48 48 diff --git a/documentation/RDS/images/i-core.eps b/documentation/_build/html/_static/images/i-core.eps similarity index 100% rename from documentation/RDS/images/i-core.eps rename to documentation/_build/html/_static/images/i-core.eps diff --git a/documentation/_build/html/_static/images/i-core.pdf b/documentation/_build/html/_static/images/i-core.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2bb22c3bb31f218ae5c98d4bc16638576be5b014 GIT binary patch literal 8043 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[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, +Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&& +(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this, +a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b=== +"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this, +function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b
    a"; +var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected, +parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= +false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n= +s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true, +applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando]; +else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this, +a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b=== +w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i, +cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= +c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); +a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g, +function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split("."); +k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a), +C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B=0){a.type= +e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&& +f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive; +if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data", +e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a, +"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a, +d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, +e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift(); +t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D|| +g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()}, +CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m, +g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)}, +text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}}, +setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return hl[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h= +h[3];l=0;for(m=h.length;l=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m=== +"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g, +h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&& +q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML=""; +if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="

    ";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}(); +(function(){var g=s.createElement("div");g.innerHTML="
    ";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}: +function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f0)for(var j=d;j0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= +{},i;if(f&&a.length){e=0;for(var o=a.length;e-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a=== +"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", +d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? +a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType=== +1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/"},F={option:[1,""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div
    ","
    "];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= +c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, +wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, +prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, +this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja, +""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]); +return this}else{e=0;for(var j=d.length;e0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["", +""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]===""&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e= +c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]? +c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja= +function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter= +Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a, +"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f= +a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b= +a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=//gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!== +"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("
    ").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, +serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), +function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href, +global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&& +e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)? +"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache=== +false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B= +false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since", +c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E|| +d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x); +g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status=== +1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b=== +"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional; +if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration=== +"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]|| +c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start; +this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= +this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem, +e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b
    "; +a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b); +c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a, +d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top- +f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset": +"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in +e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window); diff --git a/documentation/_build/html/_static/js/modernizr.min.js b/documentation/_build/html/_static/js/modernizr.min.js new file mode 100644 index 00000000..f65d4797 --- /dev/null +++ b/documentation/_build/html/_static/js/modernizr.min.js @@ -0,0 +1,4 @@ +/* Modernizr 2.6.2 (Custom Build) | MIT & BSD + * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-mq-cssclasses-addtest-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load + */ +;window.Modernizr=function(a,b,c){function D(a){j.cssText=a}function E(a,b){return D(n.join(a+";")+(b||""))}function F(a,b){return typeof a===b}function G(a,b){return!!~(""+a).indexOf(b)}function H(a,b){for(var d in a){var e=a[d];if(!G(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function I(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:F(f,"function")?f.bind(d||b):f}return!1}function J(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+p.join(d+" ")+d).split(" ");return F(b,"string")||F(b,"undefined")?H(e,b):(e=(a+" "+q.join(d+" ")+d).split(" "),I(e,b,c))}function K(){e.input=function(c){for(var d=0,e=c.length;d',a,""].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},z=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return y("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},A=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=F(e[d],"function"),F(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),B={}.hasOwnProperty,C;!F(B,"undefined")&&!F(B.call,"undefined")?C=function(a,b){return B.call(a,b)}:C=function(a,b){return b in a&&F(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=w.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(w.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(w.call(arguments)))};return e}),s.flexbox=function(){return J("flexWrap")},s.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},s.canvastext=function(){return!!e.canvas&&!!F(b.createElement("canvas").getContext("2d").fillText,"function")},s.webgl=function(){return!!a.WebGLRenderingContext},s.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:y(["@media (",n.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},s.geolocation=function(){return"geolocation"in navigator},s.postmessage=function(){return!!a.postMessage},s.websqldatabase=function(){return!!a.openDatabase},s.indexedDB=function(){return!!J("indexedDB",a)},s.hashchange=function(){return A("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},s.history=function(){return!!a.history&&!!history.pushState},s.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},s.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},s.rgba=function(){return D("background-color:rgba(150,255,150,.5)"),G(j.backgroundColor,"rgba")},s.hsla=function(){return D("background-color:hsla(120,40%,100%,.5)"),G(j.backgroundColor,"rgba")||G(j.backgroundColor,"hsla")},s.multiplebgs=function(){return D("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(j.background)},s.backgroundsize=function(){return J("backgroundSize")},s.borderimage=function(){return J("borderImage")},s.borderradius=function(){return J("borderRadius")},s.boxshadow=function(){return J("boxShadow")},s.textshadow=function(){return b.createElement("div").style.textShadow===""},s.opacity=function(){return E("opacity:.55"),/^0.55$/.test(j.opacity)},s.cssanimations=function(){return J("animationName")},s.csscolumns=function(){return J("columnCount")},s.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return D((a+"-webkit- ".split(" ").join(b+a)+n.join(c+a)).slice(0,-a.length)),G(j.backgroundImage,"gradient")},s.cssreflections=function(){return J("boxReflect")},s.csstransforms=function(){return!!J("transform")},s.csstransforms3d=function(){var a=!!J("perspective");return a&&"webkitPerspective"in g.style&&y("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},s.csstransitions=function(){return J("transition")},s.fontface=function(){var a;return y('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&g.indexOf(d.split(" ")[0])===0}),a},s.generatedcontent=function(){var a;return y(["#",h,"{font:0/0 a}#",h,':after{content:"',l,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a},s.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c},s.audio=function(){var a=b.createElement("audio"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,"")}catch(d){}return c},s.localstorage=function(){try{return localStorage.setItem(h,h),localStorage.removeItem(h),!0}catch(a){return!1}},s.sessionstorage=function(){try{return sessionStorage.setItem(h,h),sessionStorage.removeItem(h),!0}catch(a){return!1}},s.webworkers=function(){return!!a.Worker},s.applicationcache=function(){return!!a.applicationCache},s.svg=function(){return!!b.createElementNS&&!!b.createElementNS(r.svg,"svg").createSVGRect},s.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="",(a.firstChild&&a.firstChild.namespaceURI)==r.svg},s.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(m.call(b.createElementNS(r.svg,"animate")))},s.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(m.call(b.createElementNS(r.svg,"clipPath")))};for(var L in s)C(s,L)&&(x=L.toLowerCase(),e[x]=s[L](),v.push((e[x]?"":"no-")+x));return e.input||K(),e.addTest=function(a,b){if(typeof a=="object")for(var d in a)C(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},D(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.mq=z,e.hasEvent=A,e.testProp=function(a){return H([a])},e.testAllProps=J,e.testStyles=y,e.prefixed=function(a,b,c){return b?J(a,b,c):J(a,"pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+v.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f ul li.current').removeClass('current'); + parent_li.toggleClass('current'); +} + +$(document).ready(function() { + // Shift nav in mobile when clicking the menu. + $(document).on('click', "[data-toggle='wy-nav-top']", function() { + $("[data-toggle='wy-nav-shift']").toggleClass("shift"); + $("[data-toggle='rst-versions']").toggleClass("shift"); + }); + // Nav menu link click operations + $(document).on('click', ".wy-menu-vertical .current ul li a", function() { + var target = $(this); + // Close menu when you click a link. + $("[data-toggle='wy-nav-shift']").removeClass("shift"); + $("[data-toggle='rst-versions']").toggleClass("shift"); + // Handle dynamic display of l3 and l4 nav lists + toggleCurrent(target); + if (typeof(window.SphinxRtdTheme) != 'undefined') { + window.SphinxRtdTheme.StickyNav.hashChange(); + } + }); + $(document).on('click', "[data-toggle='rst-current-version']", function() { + $("[data-toggle='rst-versions']").toggleClass("shift-up"); + }); + // Make tables responsive + $("table.docutils:not(.field-list)").wrap("
    "); + + // Add expand links to all parents of nested ul + $('.wy-menu-vertical ul').siblings('a').each(function () { + var link = $(this); + expand = $(''); + expand.on('click', function (ev) { + toggleCurrent(link); + ev.stopPropagation(); + return false; + }); + link.prepend(expand); + }); +}); + +// Sphinx theme state +window.SphinxRtdTheme = (function (jquery) { + var stickyNav = (function () { + var navBar, + win, + winScroll = false, + linkScroll = false, + winPosition = 0, + enable = function () { + init(); + reset(); + win.on('hashchange', reset); + + // Set scrolling + win.on('scroll', function () { + if (!linkScroll) { + winScroll = true; + } + }); + setInterval(function () { + if (winScroll) { + winScroll = false; + var newWinPosition = win.scrollTop(), + navPosition = navBar.scrollTop(), + newNavPosition = navPosition + (newWinPosition - winPosition); + navBar.scrollTop(newNavPosition); + winPosition = newWinPosition; + } + }, 25); + }, + init = function () { + navBar = jquery('nav.wy-nav-side:first'); + win = jquery(window); + }, + reset = function () { + // Get anchor from URL and open up nested nav + var anchor = encodeURI(window.location.hash); + if (anchor) { + try { + var link = $('.wy-menu-vertical') + .find('[href="' + anchor + '"]'); + $('.wy-menu-vertical li.toctree-l1 li.current') + .removeClass('current'); + link.closest('li.toctree-l2').addClass('current'); + link.closest('li.toctree-l3').addClass('current'); + link.closest('li.toctree-l4').addClass('current'); + } + catch (err) { + console.log("Error expanding nav for anchor", err); + } + } + }, + hashChange = function () { + linkScroll = true; + win.one('hashchange', function () { + linkScroll = false; + }); + }; + jquery(init); + return { + enable: enable, + hashChange: hashChange + }; + }()); + return { + StickyNav: stickyNav + }; +}($)); diff --git a/documentation/_build/html/_static/minus.png b/documentation/_build/html/_static/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..da1c5620d10c047525a467a425abe9ff5269cfc2 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1SHkYJtzcHoCO|{#XvD(5N2eUHAey{$X?>< z>&kweokM_|(Po{+Q=kw>iEBiObAE1aYF-J$w=>iB1I2R$WLpMkF=>bh=@O1TaS?83{1OVknK< z>&kweokM`jkU7Va11Q8%;u=xnoS&PUnpeW`?aZ|OK(QcC7sn8Z%gHvy&v=;Q4jejg zV8NnAO`-4Z@2~&zopr02WF_WB>pF literal 0 HcmV?d00001 diff --git a/documentation/_build/html/_static/pygments.css b/documentation/_build/html/_static/pygments.css new file mode 100644 index 00000000..68e7c8c8 --- /dev/null +++ b/documentation/_build/html/_static/pygments.css @@ -0,0 +1,46 @@ +div.codeblock, div[class^="highlight"] { + font-family: "courrier", "andale mono", monospace; + font-size: 90%; + white-space: pre; +/* + margin: 10pt; +*/ + padding: 1px 10pt 1px 10pt; + margin: 0pt; + border: none; + background-color: #fcfce1; + } +.codeblock * .hll, [class^="highlight"] * .hll { background-color: #fcfce1 } +.codeblock * .c , [class^="highlight"] * .c { color: black } /* Comment */ +.codeblock * .err, [class^="highlight"] * .err { border: 1px solid #FF0000 } /* Error */ +.codeblock * .k , [class^="highlight"] * .k { color: black; font-weight: bold } /* Keyword */ +.codeblock * .cm , [class^="highlight"] * .cm { color: black; font-style: italic } /* Comment.Multiline */ +.codeblock * .cp , [class^="highlight"] * .cp { color: black; font-style: italic } /* Comment.Preproc */ +.codeblock * .c1 , [class^="highlight"] * .c1 { color: black; font-style: italic } /* Comment.Single */ +.codeblock * .cs , [class^="highlight"] * .cs { color: black; font-style: italic } /* Comment.Special */ +.codeblock * .ge , [class^="highlight"] * .ge { font-style: italic } /* Generic.Emph */ +.codeblock * .gh , [class^="highlight"] * .gh { font-weight: bold } /* Generic.Heading */ +.codeblock * .gp , [class^="highlight"] * .gp { font-weight: bold } /* Generic.Prompt */ +.codeblock * .gs , [class^="highlight"] * .gs { font-weight: bold } /* Generic.Strong */ +.codeblock * .gu , [class^="highlight"] * .gu { font-weight: bold } /* Generic.Subheading */ +.codeblock * .kc , [class^="highlight"] * .kc { color: black } /* Keyword.Constant */ +.codeblock * .kd , [class^="highlight"] * .kd { color: black } /* Keyword.Declaration */ +.codeblock * .kn , [class^="highlight"] * .kn { color: black } /* Keyword.Namespace */ +.codeblock * .kp , [class^="highlight"] * .kp { color: black } /* Keyword.Pseudo */ +.codeblock * .kr , [class^="highlight"] * .kr { color: black } /* Keyword.Reserved */ +.codeblock * .kt , [class^="highlight"] * .kt { color: black } /* Keyword.Type */ +.codeblock * .s , [class^="highlight"] * .s { color: black } /* Literal.String */ +.codeblock * .n , [class^="highlight"] * .n { font-weight: bold; font-style: italic } /* Name.Class */ +.codeblock * .nc , [class^="highlight"] * .nc { color: black } /* Name.Class */ +.codeblock * .ow , [class^="highlight"] * .ow { color: black } /* Operator.Word */ +.codeblock * .sb , [class^="highlight"] * .sb { color: black } /* Literal.String.Backtick */ +.codeblock * .sc , [class^="highlight"] * .sc { color: black } /* Literal.String.Char */ +.codeblock * .sd , [class^="highlight"] * .sd { color: black } /* Literal.String.Doc */ +.codeblock * .s2 , [class^="highlight"] * .s2 { color: black } /* Literal.String.Double */ +.codeblock * .se , [class^="highlight"] * .se { color: black } /* Literal.String.Escape */ +.codeblock * .sh , [class^="highlight"] * .sh { color: black } /* Literal.String.Heredoc */ +.codeblock * .si , [class^="highlight"] * .si { color: black } /* Literal.String.Interpol */ +.codeblock * .sx , [class^="highlight"] * .sx { color: black } /* Literal.String.Other */ +.codeblock * .sr , [class^="highlight"] * .sr { color: black } /* Literal.String.Regex */ +.codeblock * .s1 , [class^="highlight"] * .s1 { color: black } /* Literal.String.Single */ +.codeblock * .ss , [class^="highlight"] * .ss { color: black } /* Literal.String.Symbol */ diff --git a/documentation/_build/html/_static/searchtools.js b/documentation/_build/html/_static/searchtools.js new file mode 100644 index 00000000..663be4c9 --- /dev/null +++ b/documentation/_build/html/_static/searchtools.js @@ -0,0 +1,560 @@ +/* + * searchtools.js_t + * ~~~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilties for the full-text search. + * + * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words, hlwords is the list of normal, unstemmed + * words. the first one is used to find the occurance, the + * latter for highlighting it. + */ + +jQuery.makeSearchSummary = function(text, keywords, hlwords) { + var textLower = text.toLowerCase(); + var start = 0; + $.each(keywords, function() { + var i = textLower.indexOf(this.toLowerCase()); + if (i > -1) + start = i; + }); + start = Math.max(start - 120, 0); + var excerpt = ((start > 0) ? '...' : '') + + $.trim(text.substr(start, 240)) + + ((start + 240 - text.length) ? '...' : ''); + var rv = $('
    ').text(excerpt); + $.each(hlwords, function() { + rv = rv.highlightText(this, 'highlighted'); + }); + return rv; +} + + +/** + * Porter Stemmer + */ +var Stemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + + +/** + * Search Module + */ +var Search = { + + _index : null, + _queued_query : null, + _pulse_status : -1, + + init : function() { + var params = $.getQueryParameters(); + if (params.q) { + var query = params.q[0]; + $('input[name="q"]')[0].value = query; + this.performSearch(query); + } + }, + + loadIndex : function(url) { + $.ajax({type: "GET", url: url, data: null, success: null, + dataType: "script", cache: true}); + }, + + setIndex : function(index) { + var q; + this._index = index; + if ((q = this._queued_query) !== null) { + this._queued_query = null; + Search.query(q); + } + }, + + hasIndex : function() { + return this._index !== null; + }, + + deferQuery : function(query) { + this._queued_query = query; + }, + + stopPulse : function() { + this._pulse_status = 0; + }, + + startPulse : function() { + if (this._pulse_status >= 0) + return; + function pulse() { + Search._pulse_status = (Search._pulse_status + 1) % 4; + var dotString = ''; + for (var i = 0; i < Search._pulse_status; i++) + dotString += '.'; + Search.dots.text(dotString); + if (Search._pulse_status > -1) + window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something + */ + performSearch : function(query) { + // create the required interface elements + this.out = $('#search-results'); + this.title = $('

    ' + _('Searching') + '

    ').appendTo(this.out); + this.dots = $('').appendTo(this.title); + this.status = $('

    ').appendTo(this.out); + this.output = $('

    T83Vv8}Psu&O1ts^D+!y?)1r>1RrJ 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%0AZ?`j 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 literal 0 HcmV?d00001 diff --git a/documentation/_build/html/_static/fonts/RobotoSlab-Bold.ttf b/documentation/_build/html/_static/fonts/RobotoSlab-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..e6ed0de530e99cc8c0ef6e4a20012ed1533b62d1 GIT binary patch literal 36596 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

    QE8i)q^WHr7IcmY^k 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 PxE>gq8PweS^Y8xv{2+Fz literal 0 HcmV?d00001 diff --git a/documentation/_build/html/_images/Controller-Netlist-1.png b/documentation/_build/html/_images/Controller-Netlist-1.png new file mode 100644 index 0000000000000000000000000000000000000000..b541b1476fbaa012e332d4790df235c95b6abb44 GIT binary patch literal 35309 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 literal 0 HcmV?d00001 diff --git a/documentation/_build/html/_images/Controller-Selection-1.png b/documentation/_build/html/_images/Controller-Selection-1.png new file mode 100644 index 0000000000000000000000000000000000000000..326ab8d79323a8339202b1be4d8be87528e62feb GIT binary patch literal 66677 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

    + + + + +
    + + + + + + +
    +
    +
    +
      +
    • Docs »
    • + +
    • Comprenhensive Table of Contents
    • +
    • + + + +
    • +
    +
    +
    +
    + +
    +

    Comprenhensive Table of Contents¶

    +
    + +
    +
    + + +
    +
    + + +
    + +
    + + + + + +
    + Generated by Sphinx + using a RTD theme on Jul 15, 2017. +
    + + + + + +
    Coriolis 2 Documentation + © Copyright 2000-2017, UPMC. +
    +
    + +
    + +
    +
    + +
    + +

    FbdO4ApiTEtiRYtFVaI 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 TdEmh~%1Mf`^7AWesj&VJMURzt literal 0 HcmV?d00001 diff --git a/documentation/UsersGuide/images/Controller-Filter-1-eps-converted-to.pdf b/documentation/UsersGuide/images/Controller-Filter-1-eps-converted-to.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3298d8fad0baa14302653f18549cee240e9c1b01 GIT binary patch literal 62372 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 arFO?!yJ3G2UQ$FxN}8I7M^#si`u_m)%Ip&W literal 0 HcmV?d00001 diff --git a/documentation/UsersGuide/images/Controller-Inspector-1-eps-converted-to.pdf b/documentation/UsersGuide/images/Controller-Inspector-1-eps-converted-to.pdf new file mode 100644 index 0000000000000000000000000000000000000000..817a0120b578d2ea2626aa6a5e3960e2710abfe0 GIT binary patch literal 64026 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 z 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 Jp@r4v{U2P&5M}@X literal 0 HcmV?d00001 diff --git a/documentation/UsersGuide/images/Controller-Inspector-3-eps-converted-to.pdf b/documentation/UsersGuide/images/Controller-Inspector-3-eps-converted-to.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9fa8ec117a9c0caa23c94d262b0fcac74af46e1d GIT binary patch literal 67106 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%0DSYzoy&p^$>JQWS<+j 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 KAfN@)X8u1S;9-OS literal 0 HcmV?d00001 diff --git a/documentation/UsersGuide/images/Controller-LayersGos-1-eps-converted-to.pdf b/documentation/UsersGuide/images/Controller-LayersGos-1-eps-converted-to.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e58dfa22a0a0a9ae0b947649927547b444bcec2c GIT binary patch literal 131861 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 literal 0 HcmV?d00001 diff --git a/documentation/UsersGuide/images/Controller-Look-1-eps-converted-to.pdf b/documentation/UsersGuide/images/Controller-Look-1-eps-converted-to.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1cbaae91566d931ae28af20e684f2231aecba249 GIT binary patch literal 85802 zcmeFZ2UJtrw=WzO3m_sWARtAGbWnOnRJ!yggmMrNLJX1K;fNyAB?u^0N+?2zln{Cj z(gXw~K#&9oMS2Z2wD97&=k`19{onV0-#6YjzPm>TJM6XRT=O^QYICl+B53kZTjH*y zES+H2YEnL(9Pb@o=o1e*RaL1+uAXkb?!5BUCuUOGpl80W-n>%U&zyW+AG$h2U0l`G z>3n>>U7a9wfmvb}cfQM5+yQ6`XJ_@od0Z;qI()M%`R$2^d%oL~v#bhtU@m!l$om!)X&@5)rX47#2e~t z?&=GaqN3)N(t}XBJfIS21^Vik`%;ndD*Xe^W8)_tuFk%^cYiT9qoYEVdI0tGrE>M* z{iUKmAN?iTuWJ55WxP_qWaIr)I3Hdq1CWakFOcq+=w@{Gyi^W;RH^R%;`SHm-G3te zi}Hb!uhTQA+ds1S3xT1luagV4g!k?*f`3`J!oOzl&p_y;j7Y=MY$l29Q z=RTd3HOS>xv$-QpC#CBOa&!0Pl~Yinle!P`^)YevegK6$hkE`pk0RY)txD?Q1B-uX zQvcZI6lLz-q00VOqd5I>x(>LaNo^Uf02cuDI&(?@JOG^ir|aCgv*&0o(9oPaM|1J~ z1)2-AmuP8eFI~DsM}Orq9UTMRrAwEuUS_z$$as~J_A(PQ6C*SAJL4}VXUkL)I^A|2& zqNSs!zJR(4I7_YjEX}#|=V@rDrD4=^01eZ5=393)FI+Qqy2$5sUHV0G-X;F~m8~ph zgPQ^}PrM^(=~&rruyY9B77`W_m6elMP*hTW@K8%zM^{hZ+``hz`mv3zvy1CfH+PVS zkFTG9Kwwbt%U4maqu<2D!cyL)rlr6Ckda?d2rnuwDg9JcU4yDc*VQ+CX>0H3?E2c> zgB=Zz209VE>E@54e2p4Apq&m;f4pgY>5M@kS#qlj{SdUB!i%M1xnm0pgrkW z6vabPxp(nc7QM!K3eY+Q%;->9Y?Dp_Tp!Qj)n(uvjZ(1_tM zOoYq6{n2p+Q);j0HJ7FGR`R;&1;u{70S}0v>qw0K#Ey1YbVmf9__(Tm#Mdz);+m9i z$)r}|w5m<$>nR~|=Y--ba_Y$+(%znkV%!k@rS~gsNmQ)2`t-TyR&kY+t}^QaeJOXoZPw z_3Vn1@?>S_O4a=>{pKBp?0C(Y6p+f5{!wvo?)3-Hv=a&RM(M_p8?!>~@6z^`RfJPRUH!?~ z{mcr4=b^RgNoWjQ$i>XC>^+5-OgOS2+s=va5)&hs5Ebt~Z$-yL1)OT8ehMsbk1Z>) z-^4a}e&qn!XPpB6gYH+v`#-(@e+H)ijp1D|ZZGi!E@YFzlcaG?;Ia9)x5cr3x0x#L zjsHl00lQ%AEqqmBjq6BX;I18}D>o(%Dkfc6+@bu|S}frY9tE0&HuVqOHD?%)Ws(14 zMhO0MMxdQLDbN79Gt&x@H%Rh|3-%-xa)FsC-_Q6`=`HC?Uw1xUqE0~(|1<@a{W%3a z>mm{M3e#qK@EVB`%ozrCuQros2qy{L(!hx9nlmr!VDeKh<2f!m^H4af|K*(6{O6p= zf0%ZXE2m~)OTM`Izy>ErpLyayodr4M`bKtF5wfE)YVX9ibXN^js+kR#^#oGPY>sOv zSmKr!hUXNp>OZQn(-K^0plb9!@^?CbFyQ0azxl@aV5kXFgnqqq3ZN$!v_;@?%FnQd z&f*FQAVJJ~??qj!%Tcere)pM-c5@p!i(M&DW@HSto4S z>C^1;h)024@!&-%sLq=Rv^@nNk<&lTKzfa!5W)@x#kaZ8;XF;+9FK4cn*EZC=h@n= zUd#2EptO#m1CDI=ikHvaNi-GiW|;h}_-Mp_5` zQROh5nPF=M+ec~KH-H9@RqwS3G{zt~tQs00j=M(NL6Hi)FKF!xo?pD^uN`*YY;gR8M}{(k@ zS@?NhwqAIV;*o*qN62~`Rd!w0<$sL_SSeohwP08EQxbsbQ9mE)rks`++SQ&)HTuz;t9cO%hJ6g*n?3{6#DejES8<8p(E*EUmjdqs6O3r-0jY zo98I)*^H+EUEUJcf^El{i^ta{sS7lXc8xbJDkyG_$8tm_kMxiB%hsgs^rrXOJ;|vT zm8Nc5ch5Y}(i0s@z5M7pXJ{$h7nvW?7^X@rJ(RyFJr(E#(qVg1Ci>~_0;o~R#z*dG zt{?!cwU}s3;fg9dBpaLpF5uHo0UYJw@D7a~7RLIBt?IHP^R`pKA=}6);E&u>fFvW? zpB1?>Ep^Q4;dtzkRO)4Xa{j@(<8iqLN>$?&kQe57OnVC0nmPqUJ9$uAm`?$%weV9w zXUSpu^;5ui3-!5EKu_EM9@E(|3Nz&oO!Z_ceC1H8V*t=mL2el^=^1y&C)SeS)vff} z#XTt=m>q37sbdBb)d1W`qlFj0QRic(lemb*cn?Q1=L`=;P3ueR zDc~~y5i51Qeq$K3snD)*92^(*l5#_5PlCF%zgrqH1$`4i-esd_>OP_m@3>PE6n@3y z5EiL7q*dT4;Gwe_)fmL9)P?`DBr7A?iRTBJ z@}`rj)XvK)0MHoq6Zl=NkBy%B z|8!IPdkxm;d<39$+QvTG!(4Jb={@ik$Kz1+{1ApnP(|If}59Z2cQ-O<(9nxc-02co}vJ=g3Jcf=s?DWLbI^(o-zr(eA?AZay-+E-sv z$4mytQvmGG4){OZ{vXp@QdN`G^aRfrZuZTMSH~)Dd&Z25Y4V4D3CQ*d&b(=HF-TCoTF~2jMwh!lCZ@gn& zF4Kl{z`k^cA4sg>jgsJEdM|hB-gNdpY_IrpK(;hfPi$3s_xi2~)cM!RMR$>?r` zcL3Tt?+Yk`UDaH0KH5d@2CA`C)l4?7l`Z<`VCdJx=-VGlX%yI`b<6FvwjX`f6fXpv z<0uonw5{vezD<^B-XSO0-nM=uWqs5*gI+f^m$SBcxSNBw-+OE4BJBBK+=g#@pd7 zg{I9m7D-z@;5l|ZsqA$45g+DNi+Z3;Cu{KewO0zDE5!)I>AlpasQTCady2NtVa7CA z?Owh!l?84zRi*f@Gh3kyi*R;5hvj3K7i<(*rnl$ysxZ^4sea55Q#F%&g7LIo3b?Uv z2D6$Rvqi4mnrhZC+8o(!`A{;^hlH>7MU~k-wvpXS!@kM*spsQ$Jsg-8->I zHzym*Y$g}|9r#l$(TNihtE-;2t_g)i(XTESCbl{F6^ep7Mr*m{icODdHUgSYCS6?{ z8wkcgd-g95L&-WbnI04ME(K!EshJx{gRJ3GK+W0ZQ^2KA8QVhT)ym$ns zra-l6$na=p=}Z0!jg zv&KH1v>Jy9vD!qx*+B@_&?jA6s-En47Evp^=+6ebnsQhBtUJ(U(uN?K5-&e$CSB0S z5jzwY=@l$He_%=cf{+l{a9>|7@8bvch+ZLi>ghT3b=Z%E+7^!c?w7BXE{9(vfk+jv zGnNk7%Y!<CB}zzDu|m}B2S&*(|xHx$A0DT)xH!k@Fbu*RIG&WKetot2U6_%_M5xmT)|nt*Dq zxxZkV<9?1lrr5$#>IRKorHQc0k6Jd{813Tf#C3hKqLzVd3N4|`Kh_ZCJz%xxFf^cR zs1*+G^~dXO0B4AA9J@3aj^&`63l_=&F}`Id_k+&kvIWu{9`03&Z5R}A>eNm(K9g*h z4bfB?(fzV3bg@`84pSDa-T=%ee*MrhTwta=X$ZthEDbq2B<^7;=o#n%>#^o3z(M8| zuvl9nO!&z7UR973&`#YCxhltXu`@?#P*p*|`ta3NvX1%Y$r@^6r2K-hC^+oCUc18i zS*@%C(>s^+r&uIxhRV)I`7JkFC>7Q|uidw;EvODr00})!`BdqFtd1P4Ntw`J@*BK8 z+3N>Zsg^$4gKy5Gr%nN!j$~y#ILwpq1)ub0M-MqyU6**M64-Xp{bTmexDR|#N!Nr} z^rP4Gh0}^16Sk($8F@pqm1FJ)OJg@Ux6&-&v?v@K#DVp3(@th21AnA0etT@ty>XDLOh4ZW^C#Fs} zN*EbHJf>G?tDEbpCt<=5ysO{0C)Z8P#lInVdc!}PdA<|H_k<<{bwX^8XAV*igBJb1 z&{>`&Y&;!8Yp3{+4oqP8QdTp~`bd?saVHk!XieOj14%+>4)AM;!}Ma!JH)b8fJIYLE+ zo*=k(x6<1&iNoa%-WDCH`e;%t(@~u>f}yka>HOsWYEob$agE#f-FIOxzOOp{GLf7f z2D#~DE8hx_fXR5hNj$Q{cC?`x-QBk)J2$u8kWyod+7AYUWjDZfI}zu|oxNQS+|li< zR%~e+OKkE1tQ^0`8-l!`GOe=Ex#~PI0Z-}j9`l^jHZXGe|oPp_jiHBc}r(HMa>yaKjZb@N- ztY^nkoq9jHrh%k6OX+*IKg6fYX-QS(k2LmpXq3#cj!4?isoRHm8#!iK_sl!w9o=8F zy`4M5iDU}YXjj%+PiuHq=2U`u1@&P#?mJ(Tuj&0H;ZbrORQaI@I{9l~w_?woBO@c$ z)#0H1v7!`IW>dOoBS`Vp@N9nz8@J0^LxZv5dIi$AJbMD>KRO&PtrkzYf}J9J&45n< zOytC#eUn;j&4KUOBNKd+=$Zi0z z6iXEv=NvrycE)Vf>|2f;lW`Fq$k%v7MAVK6anh!{psiw}%E0Z}VOSyjOL}b3Y>)uA zMSUzwa#vbl_q{&hhD1?=RK*IT=@qWlvh{);{i0Lh9y8^Wzrc6PDOkA(Zsp~&x+45O^bIM}@s=ZV7_Xt)* z@eKV#t=%dY^AxnT5X<~fz)o$tXV04L0yrk*hDNnvP{lHJm1ox*?Pd1DV^u?<|dT)xeP%r71W3J!D)48P8{cuaOvxVtY@MyOSMes%)5dW@CgA- zzEZsx+U*;yPy{>LLp2_F_ys$5g)y4q5H$x)A~T!}tP9q|HNvWz!D;z8AVI2z{jF#} zHcAYnBKH1EcAWsXm=yTZpx?6k<1OWkQ-COHuQ{W6bmtlftO%WH`yswR>kg}8xK`H2=W8xVYMPzHC* zI5RYB&mcE4C@D(_vU_6{(koW^{5_2>%(hS5HHd%XT&k)w&G1r#zi~uPZp7}k%&QSY ztImplGgi^dFaAwiCJe%qnXvOT)dMw*c@;B!viDFE(cVy1YM`zoBSo@7)o%iFM4 zTVG<#&^Ps a!41PJIR=cQrAq9Qe`WX(9FZ(P2kijB8;G7at^>Ugca@U zi6OXBAReeeG}J6DWm9LmD2Wvgfqpdbat$i(F61=Sr!4Prg4wS);3t&|T_agg!Mq0Rf>z5uxpb4c-mK$OojfPEl-CkkG__5JQ&;V zEhdK@uU#w{^C#wwl6}53Fup=;JUdo#+7sg}`yh$ODY>{8B=t`xw z94{{Ah_q~m=am@y-JIkcxq$GfUHw$`h&O|w%GJpH+4}Q4-WL_W3aItO=1<(lYzjUV zL4pjiAqv#R&hOoN;UbP-=UvHq)Adb;La{m9W|Z$?VWAJ7Fzd{nzWS&xU&)}9pM>0))`poW@A|YaIL3e1i=`IvbUTA;r5a^A! z*Dz>KemAoq#huC9u|kCBAkb08P9_77chP^F2m4@-4Fy{mrjmBuAr6fn!_~KFj+gc zO2%HV(Vh0onq_OBPpF=lhzf<)Z_D0O3)vg6NhENXIiklDJER6`})Hw2MU8=2wK>Ql2^GCUb%PzG@fGun0} z%S@k`Qt%*gUhy3_hjyC(hy%hc3oWs9s&)}{8% z9>7eE7-nheXmj~Y_g~ z{vYZCF`WBXE0)@epXp!m?)X%=U}Zy*LdQ$%$`K4G_k<^mdcZ@x%$g8aIoJR@eNOV8v1T?%_(5an(++U{bS-|2aW3YaZ>4gE$2ev{uR`yq_Fub z$3Nhl>*KDy>lndq`e!F2Ww`YMOAn*+wCXubxm~U_W!pO?ZE0IgPQ__6p9dAFV4*HM zYHh!HXn#-c#;u`z@KHz%Kg|918`}d-+Q?h)VG3syLtzFmGw(IwEfjH}d4CLEf%}Y_ zn_KDomTR#(3NJq_a$RyfR};YqigB98uz(wUmp(4FZ~>cZt;HeY8BYznq1c7t^LwW1$)| z_THUGZCGMmJsK#;HaOXz&UUAl34K?W6rU&?owbmBajyWbM^t`2Z8T&8Tx|ff z#pw%jyLYRN*CWTa>XwEe>)De?AbL56>Qf{`+j(|pH7Ic&kqHd|(#pmwv5LTG{gGqK z*#RbShIVSiZMgGCN5M!S@Y`VbjoyxDDa!eVyp}V_z7c(caKT?URYIxb~h z-#IX+&9&Z>@fDBT{tpi+xlx!mb*3Avbe1Y7$}d^O(%Im&C$+Jh(cU zLYzVB)(xXN*N2)nn)|r;r*P3lL{M)MxQv7ITI^Ay@)BJHH^wJY*0*q*(h|pe}C>kxUsMaS+-1omW~G+e+dqF zS+lYx^C)Bfu_TIf!Vtfd`rg3LOR)WSh>3i3YGk|%Kw9r-5B6%bZkbfF*?zG|^BlBQ z@PKdrU#|s)&&88pZ05FMm<6R*(i`G0`x=^ScEl%tJW@MsuU7b$aP-G5`{Iw?Up?=@ z=2Ftb9goxW4M?^JEZQDvFu$lXlZIV zJi^3nq2F~JsZA_q?6*x%ZLlxnC6n_&hs(yFY~pVD3HF`zmH)iNF-~|BljwtTHhFb> z5cg?+J`Ssz9O5c#eueV47Id?pZ1+^ zY}8oWYnGLDPgOqtB3-; z!??Hz<9mZYu$?yi@plrnXg>0u1^Q}>nESextF1_muhrY)2_Nb`h)qPD-(ZdLDK+V$ z4J*BH2iA1>NeKBbu0c9Ml9fU4e9yKURDxR}#C zt60WHYT&NwikdE%nFpB1#y9u~6H^;)`+W3-I6*=`N9seyyMdG5_W6^0ElW$j8&#_T z;aA8`(@AHE@Qvt}5oVpdB??a>&gMZE7b4SWkSV#Y{>WhcNtdF-nQj%Mg3Qba5OL^X zc~g0O0ljb;G3{`F9#nfwus-T9Zs#FQLr(#YILAYCmZvtAeC+(bSH3=GYF0+p?U!Z+ z&CFyYM?9M^WM{ZVIUJwI9_x5{DYWx&1}1e3W{Ym?prfr=;_cekyyRPN!=@D3OLoE0ogX&#+} zATS0iEjZKISTEGf%&gm38MOHbyy8`Te04~2eK#bN$Pt(}!)3K^IJ~iD_d`4&0B7tm zI9>_-t!Gs{&)UK@K7nAWclnaW(;)+plHeE$nVoY;w6FPoyMD-UgN^m5xNoar9*Y}u zm~ZE~q$Qs6H2=4qLR@&H$yX6 zQ_xNE!;UhQgY^CbxWMYqnUkA#wrI-PB;HM)R%0$uxEKmE+@ww_RsuV&>&my+e{so56Ub0P7|G_B7esVSP_u5tq%tAB)+Nh&6E*4G4n(zp;GHpn zhGrp(#<3x_v2>pT3cp*tgM2@8?>yi-z~n!_ahRU8AJWmf<+}5bmLg68PHNN)82$N= zg@4hX>FLM^vnt~n%a(#sSQ{ z0eDDO)a)f^YUIAv1#_HCO`EsG?A*X=Y}!bj0t8IXoB~*&Cl_Rsj#;T0H{I9Im~9Po zD10xJUa>W?OcQxwC~Xp;y*x{CP+O2`_Z}opSgEOY$$7bnhwpm+j(^7sS z>%~Xu?iP~T8dzltse0%787M`Rcz7AaLl&pzi@}5er+`>AgE9$fG-P~9|da+(w6hg$QK4#iG!zC~B zGw-YdSI|fLi2t7E|8D62o`D6rnq*irI;4XDX;sW!Q-ny{UAPp}b*S@*_t@ti)mi`V zfc<+_HJ2L;&C_+o)qE@yH$R)<@^L+3r0clJw~+4NqId z4RZf%2S;?|)Sw?H51ac{{NiYf{lvGssHUk0;-XV}c=4+BrMK3hoQV=x|7y!w!#&tL zmkr1csxZZN$q!-~sH&#L4KBrIYfVZ@r4iMJLO{(shpb0?xx=ypiA=|Q!>U}xpkND~Op{#6$8?EPPEb~sIR=)lMvee!&R6w_d2h^e-0hm~+TGWK6%DKTeS6=7;G>>HwHklos39^Cz3cwuHp+spSTbh?wKh?< zwp6jVa4d188(96Ng@uePTN%ZB)|Y9KbSyV<$!-;nhHh1OIfk1i2vqr2kM)g9l_}fI zkDpW*t3Q*x(z9JktG6Fo72v;vnvCJFOp@fo=yt&-kOB=YrvUjQ&XyY|b+QQtI-9vM zp_Wr1Sswc31jOS>4`_*OT=BB4H@jiIRTRB=rI@tLGsqvMkK%{Q1nI)D%G+jppKTrd zQ{oHYSkOvH%@7}Le|Xl>VMRo(pJzpa0BiM)RHhfw^`x5be!+h&Cua^R)vp%0Sl%J2!q z%QIFve5P3=c>&vcjcUqjJGg;*Qb1(5^0D1us1(Vpt(_u5dPhx!u7O@OMkHM#Z?`ps zC)1c|-%H!-nV*!urpZ20t8g(KFgt&1rr1c)wz_S(KzNxVTpTuAO?7sOW}k=W#4Uxb zhcZ71w6M#4(pzsLW*>5AP7UDE9g|#}#$OmBX44~AeJ9vD8m{jTlB?RRuN4kyK1JU% z@RXQ+?BL6sdT;HuVS&Flx3p=V8A`U9{2=Ep@k3EcY#0_aQBk|-`q~U(l(k;(YO0AY zmXh(1oTw;2f`&cwvC=>>#;#I$2WFEvKxkagC@E)|E=gjYqfw{_lh zUb#o#cym^E1^xmaXTA@o9gJN98OeL?nE69{_7?4V_PV0?g0&q6(UW&Z4CYg@7&Bb* zk@re)QgoSisc(8#H^_mON+m;)T^|4f2EGuRcNN>lZ8zB|A(n(zNu6i+*{`DSEg#Wvrp4=tNw;~4_y1X!jgZhNo%ZjRzV)`}jZqW*n#3&N(Ljm|xfQs*J zmYZl)LU}++5_iyq3~J8;7nEUtg@$&S3}jR$PrMsDAd?Y!|*g)x^~FHlec=D2EH!a z1aJwzv@`OF53&a4iysl<<*sNvIwJX zo9dQm^T^3r;4pWmSlv5uA4GEIS7zaJG&-X>O~X{--9o<;Cy78G`<~HeWI*kN__f$l z#;1E#wjf`G%UVls*kO+Ol+@V8KWrIejtysd*xOrpN0F+|K{L%tul7xVV@>58w*)_@ z_hjfMu2o4hD|p40%N!y&?nHN7sw0jx*5vf}i6MOLQ{(R+_UR`^Tt*bRh}8>Id@0eCN2=%oreL~ey*LP zuem+Idelds%ciAQJZ0t@@0EDn-&iP?T30T=cH>lf)x_beg{KwUIU`1~5n zkRwCSjcud-qg^@?r(tJ98$s74RLg94=&d8UW6n)2944$F&^BnpFI%Z5t~bHWqIvjd z2pOXrLn=MyAw$Z^FHK15Wz)bA#FHaU^&53T zg{k@Jk0k8~?*oED0Jj}Me#)!V7si;w}p_9>SlcBLC9)ZIk z6L6 z;Z*)jL&1OPn*Pb<+%Y@#7;VHW>LE3DYH~$>TBOa(j}cwe0~{x>b{S8^G9r`Fe~X{{ ze^8`ym!I4=+WEE$h=2AgN3o*3V#0)dh<8t!rwox0a%(GXA-1Z)mcb9 z@pAQ{&HP%G8I-xBH#7GaxXCxTcVFMejFjqAWA?pZbiSj4>$ZFwb=$o&!@rS;_CJP= z^o-@*9dwPDJxo)r_t6qglo84 z8EB_mfeP(s2HKj!;?sMUh=#sPJ~w3^#~XiM#KOX6Hr&V_sM_rI+LO{jBP7|1z zzO6Ym?v=fFfSDqi9$Vu05}#xdZ=@bss_w? zWQ5=aiK#`CeGH!)ECaa~bmN~WT**~mD|k-x($pyH)38N;^MVkA?|xdM^6F7Qb!~rJ zDT|?H^UUlw1Y&kVu*`8&rJw{u-rj69CLJE%g#^#9bZSl|h8QY5YHCXCF7AR!3dP=z z<3#h3y}3(2;g1 z7lu@_c^(-TM}C32h-Ie!eo3vjyFOv?uq+X4z+A=~wQW!9RhzgF2wX zMBfIKAH<&vx)~; zGM!J$rE9c?fAX6i9(_C4DIm~~>56KHR_yKHrap7txG<3%A9>!0x!7_LJgKKYY5cUYqQQ3*a-Z4q z*4njwD8zTP7BdtqG1x~A*~{PLBm+Afq)3U4#bZlW>LPWUBe5W>!>GQFpFP*R*v9Y^ zuHeWU>$-!(&aV{}1?q2UskxadxFWycA;A1v1c79IOVG666w7295DXH?Xg*w_wx<}L z7z~JdbS7yZ3C3P_p9Qn#K!%MEP;Ta6Nt@_peTzQE}_}WPLrrKR=?Ud3t zaIIsxTS`SJLoIvY$kNY8^99-nW0Yax(2y1O#K6{iO=gNQ*Kw@s5OSd^%~SB!*!38hK+UG zQtg+@Ywas0yY2SF&UGkT$A&6^XA&-tw|wxq*3CwM+^$Za6VwfSs+D}nmH+a`!PxmP zU(AB>s)WgjHCg6q68k=Vbc$EK+HJWl+?#_zgU|WH;;Pj`b1KJF{g%b57=(H!!uVUmhh7 zYeW%c3|nFZ-9q-8lk`c9Yo^mmvIDOVyV{Ua4pk(^gtbu4@bu*I$Hs62UhkvnG`VCK z`?9U7_}43@_cP1h!1a!0;(umTlUdgG7rzt^i&&=Pi+hWR*Q&y^KP;A!P65-;NeImE zlDlF0ZS4vQ<~FvqrTLCywv%=b>bh?#cz^l)^`6yHg=QBG&IFcamx7nHT|BVbs>byO zjDagHHT*mwnFb9_wbu5I#%c;m^aJ>$>He}QVvM=~IUvLfIZn3LZW&1?8aCHfwj4=k z_p;2k^Syj?a#med{}&tlQEv^a{eN^%KBon^BvfDD z49CGWg0qzr(WteMt$h%FZ_qE`d;H~av{@=`NOdV#%G!nKa_AVIu7;epj$a_hZ4Uhr zu3BGdAeM9$B#%$QKb*r|NR#uHZ0F_$Y@XL^RB(S4+>&?l-w_Tz`7q+{Ojt0Ss8;T?@v$`d(>)X4FxE)$6I zG8R;IXx9z$ldXhZ{6^|^ALPF1LtudiaCnFJZELpnOMyFkO#N}=-Nip22GtApBZRxP z5W5RMgLn0ob1mJf#mGFf;@kq?cTRjPs+nXb*|Det-#$Lvwn^igN!cDiqN35xx5ww{ z6?*1UEzWv)nRu@}O($O8r64@>n(9LrsNq?CB6f05e}0w75zYf#;_$Cl&nqbpz-KOg zAB%7%$}JFZ3hxN0k~iOwbDiJL@qTTkd2QEgJTW)=K^}n^wuhsiW`tz~px)bujN`q> zRF;|%E&B~9bi-!^so;-`M&D7K;58!>>ZP}YxaH_fRMc zSs>sI6tU}lD0utyqdUf4a|b3p6qmq6ZL4o@E}b9dcxCrsI8+FBo&B#Eo(V(x^$g%Z|3U$e~CS#njvii0rQsj0(1|-or zfiG5D(DcU?pfICPLHSd>LUjs8x3e45VyfroZ438D;IB{UJu9!7sNHeQgytIuxGZ6k zHjc##+x$om^lPxY24#b;PHxks6{yW9iUGszz4;)m zrWme20%3fEvc`O6@`1Qb?h)#xGhW%v!85H^{K6y} zgVmS`_OXte4XT30Hsbh^?ST*pN-2b)IC_V0qHWHS+V(&^;res->pD?ajzT}Lo~=F$ zuiQ(XGxO|C)oY1SlO$^4_r`XN@ZK$MEE8Iih`Lf6$%+Xi99a>?@L*Oj798N8;evN* zVBCv{-laEmuzBjfK5E{QHg^9_@__DeUMCjI&|$&KDe7&>rBtS8oJQPRJJEQcWTf6_ zk=QSjUMzuL8FeVDq#jqB;dy-wEcM{UT=tF22zV9!GkY8(?9atBLwX)Q8G#_eI?=~KX- zC-Jj8E(1e2UOmVO9c2m%cbJqv$yGt$T<^RfZLbk7lfG5c?3sB&TXG<1q|sk^qGZQ5 z+qZ@OkX?Lix5-*OBSqGhkORLgk?ZIvv}XQc*8%eJ^1Lx{Spjn6wGIEJqtu(pm8XEZ zA8&eOik5})?eI(MMd{Klq()nWobl5SK1R%QArlgE)gDVK&+v;U3g3VFMI=!!t22=* zFw>v~%&;%y?6zZdEvB-eGR_kHf_57+mnLVEC-Iq`PaNQ<#;ynbpp!B2TSl;4|7s?% zYz2%M0v1_3$<{J#CRp2+b@}LCFVQd#QXN!Ph%PHbn^Hs{C1Ng@#&)I zpzW3q0ZgDKxaO=mBHf-?MOk0iF%;YIbjiSgi3SG&)|r}Q;`Bk&wJApya?yat|QM0ml11@zlJeFv&TvU>L!(x3OxX&>&sh zO`*oFb_6dmF$S)}5XZ9PbD34|Qgc$|h_56Z&6;oscISF9m+1NozF#|Dw^Xf1+bJfN z<(W$4IT6M2`UPr8FF-k&x*k}}jBV6wUaQUaCElO-I0MHKJXR-CKpv?_JEJaR37eRi zq9hWh=H|$^XUXKmBdzL@jhZ7%nETEtKwZu+VV+QFx8755buRq3y7>kndL{4Wd@Lp# z=}HaE;g|OsntW`wdj0315Ahh7KlZ3*EkxxBFw}c<0+Y}Lo*K9c?~DImw7vIJlil0) zi?@oRA~ry}1*C(8UTyR{AiabT5h)>tNDp06dJ_;(s+3R-2qXj&ic$rnB@{^@k={w@ z0Rp~x_B*qmJ$t@0`+a`c|G-M-x@Mi%TIYEjp97~<3n^*~5=t8${pBGGLq-q0uKx7J zHT_R#{>01DV|r;pj#~$coU-OGu$VPD?$8UuSKw+avYLCOOmF~vwBtJem%K=R!%JD#mDk+>TSVNnfoVhy%;W(r1VICrs@`C z0>)Qfk^tMd=H+#xBwuA~uz1 ziCC{hQ+Mk6$;#RST7u**R~a?T&bB}N^*14DgQljf!Z)RvKAQ!w!JEG9j-NIkUNGUl z=xI8iT7!K6e_B}MaVQS$+{Nvs&6L?!u4|glVXb9X@t6_W+{A&$fCn?$ZIjSv^y7>| zcPw@e{0&TdO7WqFn02OL+b+|>b!B(_|@oYw@K#@XZIOo-dvzUd8k0!@~%+$z75q0})g z0*QVZJV+C{FPvC}2LA_$lciDrHI-T)0Sk%{Y zY^N9tQ#yY>F3rd&CRQ&<9Z0@(`FeGLX~y}Kdns%;2&2q0(3aOYlxDYk*wX7|ZY*woV5m}1uem~`bpa78-qmJ^Uifof07N3a~a+d zxNZ?;wm}BCmO70^-?ipvGSC;G|{yGmZZogx4rq>gN;pJMf7S!|KJI&G-q$2&WdtsG|_Z;&K4PY z#rEd8*w{C@HW8-jGvcCbDqpx17#sA0g&Ehj3KnRDW4cU1=z)0yRxRNdPm5d1G(q)L z(m%mV-GmoJTJx4ODM`j8Mwq_AJCI&sS;-mv*4;;vD zC1l`Y-BH4;ZB3JD3(9pyVO3@F4E${GRDv$C-39Ohe78(r&dNW{_*VSt<;(Fe+3j$R zBc&sS${RfonlNT@c-YQ7a1E6+`PCJmn_$R&1GP#_zMz?*ZN?EKE^o9MLnIqt-JV-o2t5FPb7W~GkD|cNeOvQP z)Rv08$Z?y0u1f8YLYbCit3t2H89Ri9UfJTEz15nBc%8}2Bc#=tV9xJRDnBo9oYK90 zRM32@mPj&w0GfdYVUMk$80U%|03oy|M?(HvQDdI6RmhR*1b3z(je-0Qc$BQP5E&kaXy(9p9KAnH# znL1i{`nXFsM`VBR%vnrfE#S@`-gswoo$!$GH)BETbXf|^(vkB$$H6v$! z-80^OrCST(V>D?B*@2K)XYom#ZSLu#RP?|JaOi-)oqv3BebiKZVDolE^=V81=Csz! ztoLsoa*s!Ys(zf*c)4BP!|iHzk6kbKw>H7!z07ofsxS`+Oq?^pO9y(IC9Ha3{`?@_V?S)WdF7rD&8(mu*^mR+4z zsw(4@(BmoexzA6Lc-m6`_}o;SzAnd)e)eH;L4`#%=p>S(3q)0`O%2h!@|W#_RJrAd zhd;^~RA;CzuMJFIrq*a+L$7Y+Mcvxaj>52yH9|vX*eJK?vl*r&fe6ygq#k^%j?eNP zgKNnj%-I`4vMlJs#N%sX=XZh$O~fTw=7^@ixIn{}MTPnPzR%Kn1(b5M?Y2jIpLY>{ z%*&J;)Dos5YPQ<3q*qtkNu6K#9K6=o*)FVGUc0Mv`cuTS`%wGfT&e6r?usP2Ca`Sf zHt^v3)Xb{uuU)UE^j=WiXjhnO8*0#9J7i`tMmWF5 zV9ve^cT=QK>#SJwLW>YL)Z4l+_8mI^qLB~d_IYY;EiuR!7*h%VYMQbqrA|3mxw8hB zRoo&2f;iQ8pER8>anIaqN3xtQ!B4P^x8?4a+@{aUi^lNrj7n&1%~lfkdQ}IUY^RWd z(uJ#|A1u{qQWe%g5SRjXLT%aRvsIbt;mB=ct>hAVg>Mi`kd@x}`6yDfY2&CQ9@7$2 z?S2V}$eeNbb#PlL-}lsyx9H66iM-^Kj^{eRJfAbxrMyy<7%Jp{FcKv7F$e9no9wv| zL@_+_-yA&{E0e-FTk$Ka0DR|I9*Zuh4jJC{grFgGsLY_YiJS|zrfbor`*K(suq@QY zLmk2;20|yGBrbvcGS|_wE=)$9E&ujpcFH~Ai#ZuzVLPfweI?o|0_P7AYffMBdd;l2 zo7m342dHa;<|>aW$z-}J_+sdJ6SP z>JvZEFVFg;8DNd}ue+5P)%OeWg&LYorC4F; z$=cz`T@fWx7W>Xk=Oqb-nK2NdE z-R{$$Uwd7@lU-I0FLFJ#nx5hh43n$qv-QEJXDG}z6W;|jJs)jO(3P6xhXcpG!|46W ze#d-Kk83x+>bm)Go_TU-0pJq80YjmvxfAobds0z+4Od<}5{Hmrb7qHoSWz^v%XTl%I6=+>oE?v%&(qYN&~`cD>Odm!EY{g!v?KGrU+T9=(5u z@6;XIOW%yu2i=JZ&uS>q|^nPq9gZe~RnZ8?k5Six*&o@k$79eZle~7X#{@k|( zVPifeBn>zHDU?SJ=ziYAS?zDqJ4KIhlUFrhGX^&ciK#Cp-VC$y!EGq)Z*BbJt z|$3Ybd@ECvfC|7wf-Qx%Pteasp3qglBcy>T|f-uBLj zf*=0v8b+E{$9);q{?g#;`xARpZ(f!DB*&JxdliQHy?*aZomiNI`k>1cT{1_s(gS-8 z&36;rk-zZJ>m4N&X4#}I3isj3q58PZ@1+Bmoaq>+>KdYkVsX1T`id&(*8cil?U`r) zl6Nn$al|vJemKz66}2*3Z%MIniB065@7>oPdA9@WhXMP;5G>pwHz?=KyW^|Nq5O=9 za>fV-b%)ftu8vIAqpxRa<#BJ<8m4fpCs#Tr%s-6RXiwmaPc-;Jx}SfTsnxeqz~V6C zV@JnUb5bY=ioPvDrT~a*m=fw`7GVjFSx@^~nbQ>ZU04+!jcvK4!94>w|8LNwFxjA? zdX%ZHRdhBIGH0!qxJ!j-yWI#ESWk3ABD_16i-=o8z_2{WVZ)Nz3>!&#`Jl98!KQ=k z(a&^cGi>va!jXB$?wG@=AzzT5-8bS5qMbks+ClcGbNcMBo}m)5hf+k0&7AT*lE1Um zrHZHn77Q1;YHi}x!_mC?EH+`=#MW*XquOnftKJ~lvLW7A@^XO&^=lUR-62xjk10iX zfG;4Ty6Uh>O2U_#=^in%#fi^@fY6VzN|_4}zU4kkr^kzbEV=kvnX^f;+~}%QS_Ras zFfMgGsAk>|q?&txw-p=R0!ZBtFQGrG%K)MYV`y_I4DMgO(sHqpjmo(y$5chG+zDgX z{efXP`1PZjlWL`!{~nEr@?KK;vvLmTWtp-aBdVw!li*v0QaMP}#ppBN!#H<$U=)x;+D(@#Tw>Si*msAE3~ zMwuRklQag4S2<16{-J$o+&%r$vV%%(BRwQ31|z}^T-tzeo*ryyNSW7(S=ZRLihbbI z72S5v^rxUjr&7svBgBs%+8g35DCc@ziq)iY`EVIcEe2-#qdV+vtAQ*k;IS;_$ZEj& zB>3oKADuP{4Lj&>Eh+pSBhzR#0m~Mkk#>WVPkWY$ze~ z5qSXcIYcbO-TJ_JH$!yn-oP&6PuQ&~R~-w-3$Un!pXv=a-qd?}KSMx*rSmdy3m=PV z6ynD`fQY%?&$As%x)v@u-KSEUCGP*u{82f6n9~d~H4z2&e+%%q>AFEXSq>Q^I-| z2}4bpMo-r%4p=&{U9Gug#vd#&-t}jI2Wl5uT?zpdJpk$L+Mu54a1P{NtiHxrDa!>ON*RHFF8IUez2kz74kw(iC!DyKSmx9O#j?vW^jx4yf-&t)l&i_OcIl zJ=3XOf&OtjCYK?+p5yLn$faD(^Dbp!LaW|gvlCSGs_hG4LMb=5UuPlw@x6rWjSBP; zMf0L1bx2UXvU1b>zGBEMsjf4%Ox)5U$)JqYsk_r)?Y4r!i49@Pw7*Y!0~xMoTDf=_ zc*Ehwt1o@(VNdN8KG^p{UA-?fTeck)Rn&H{Mc0TTM4Pq4ardqwdUDB^zmoBFF?E@t z?rW3KV#;S?vk>MHNeKeBs;a}?Nynpn#`J=@t}sq^QP_nAhnYeZ?t$xN#WpOEQIG-@ ziUlZ{pYOUbZ$y6Wq8IVlK4kLCestG@inXtFd39h9+AM1b)G?4owd8eAncuSq`kPvr zDj?7K4BPv}iy=^;REJHP#9?&}E@cR`+}}2(+`CfV4;6am@Jnjs?l6xNpC(hZp zxIN;yV+sO2n*FD;QSi^Kb9Mb2b-Pgo8kgHaWlO~bsyVHgY~b&$z8xzuTzl_;4dCp6 ze!Y#f0_uPPN4!~!5Z#Xz!wC}bI~kPVl|R}fENh<7p7cKNQm7omTW`#f7<`kneGI3I zI%TyNUrmmSkgB*{Iez=OX`FW-G=`;G%jc(Aio?_t<*f2DaWH5h$mc=6J0mK}&cODd zBuH^~^>_*v#+tKpQYgsx!h+4V)Tx8uM^+8EI&8dM_4l_$$s<=xtY2L6l{pQGE~e8i z-rL}h-EJ^wuS3UoTGO7x40iO2Tie%JQyz1$dw3ui)sd8N%*QbDoB|2&>5cBNpxKDb zfExr2#VNdVePh$TQi$N0mpV^R@whx^)1k5T zAy-z8{B^Rx30fCx=s9_DTDN}wWxMEDUmx_yX=Z#4J>EE?d2Rn|;@R12PRRp;qp5Ro z@fN9G)<%`PBR(vAbDp`1s!7f!x?q(GFbmYqX)*_0jIw2v(YxB})Qn52m^$?StP=Nc znj;Y-yD0bt|G|Pt$W52mqR;pYq(7VxMi*s^PRWX*Sl`5PP(Ty!=VwQ=7Ww5NfnjzJ z(&@A=`IGJxp$*qKUld$#F!)|R^y(5WN=N#WW6+Q9w9WFlB%b`C< zb$F=%Kx+x(G2oHGy#DCW*1&u(#b6TVlG>6o=4Z9x-&J)A;r%ZIf?85G{V!i4HX0VJ z?o_&{{A}W3O<&6uzLU?(KmELEpjuI4Y~HSSVI-U7c;Ag}nHkJbDSz-aXILh$?{^-6 z!P+gWNjy-B?3e=l{NjOdljj%3c@*mRr;}{gShlJl|o{3QRk2%WMyAL;$G;y2bMp=YDFcx@e0Rm85 z?2JuOZKZ@AG+0 z!h*;l%?|(ea)~*Z#tn6Y#GCNsP-@_PbQLLTN{p5eEJ>%CZU`lQo<0iF!HnL-HVn&9 zxRpp87)|x@TBCysRysS`|JC((^qOTe5w%uN^=ZN= z_6aEhp`(W|{{JMC+%Fx%Ii_H) z9hqq52jfc{@I%>@Gr3FM=LPRc-cU$fE&Y<5{`|g_xR#L{877+HM*!zGr6YAU#$e;3 zWcbU1Eck5luOA!0hfM^n>nrIzSZ^ByWeT>scUrH`38Fc4RnGV<&w9io6{o~bbY;`~ zx$~0}4WL&9gW|?aNY!l>EjLw+OJ zWc`?0Wj;(~dK4<)C>@Ods4N$?RmfiAhrDUofu@Vni7|eCs zRLj`2q7~H5aWqRX#0?287?#ikcJ(0|_Lyc83ox?6SY+ypA;{1uY5bmZtgDxoprqL; zoiZ=6#LE;*>v zjq#{uVg8|DP$88O$;z@olhuDCbE!_JLpCa|C{>^HQV~5F4tcWoVK;eH^B~MlyWVS$ zMT8Jx{Rdf{cO3_?t^|zsi6Y+HEKa5Dj_n<1uvkH+ZGojZ-tW(#>W$Ltw^M(f(q!}- zt)lb#z}wfTqWQeLA6aHBti3tQ0g=}1=sHt%YFYSJBRwH1ZX24%ZO8s#kq&;k_bj4w zZHRs1UW0dX=TvS%bm*qs>k(NhU~PYC<;%ihU7@A`dBEt{?!eufAKNLyX3OyI3cWED z3_z|B5QeSOf7zZ9x1kIV@dQV`7f8!Q!oRNyRRrD&B}h{)mkGTfSufEPVWIw8I;Ej| zzk6B0Au8Z_y(GY~62hO>HxiMHgvue^k~K#@n&0kq7X@|C-%tg$iN3rr6N?paAQh2X zGA9F<(ObHAGqYdp&Kr=scbH>8N6KX8^%67$?M?~H3}FGM`+hmC4bJPs$gei#`+Ay(ncrT`(7N&7$gP9Lg6KY2;eFsK_&4hNP)_AxFC5*YFjvhMy2^zGIQ)P^r;I zA^8{|yrvi7SU|uCTEXDnF&F#FYq-0FmqU8|6MxY#+ba2e2?9wIm#(ZxL$5aj4#a;) zsT7rj`4$lu_v>m8n|CH6wG$jpN44YR-zz4#w;7M^1Sp!M|)QHMH5$ zmSL8Z%qlVF@W5Uz@Ci4OKsobZJ z6t+0O)z$s#__c)+g-1a~n^0C+0OLymhYHzf6S(?f^Im~!3wN+1ohxEB*o{h0fn-KD zP35R9m^BW{ROLgze|YNbyNPuMdZ@ik_@2vYn4u7mUyif$Y5W+*zRKL5s011-%oV1O zt+4d@qSS&{l;P%^4Bn?$eEnFkW5H5|>+E@Cb4%oHcjATi8g@ra_DQrbP|&5)Dvre$ zWD@WWW$uTv4v{|OveOD!L$EmVNFI5()L;dU1z-5XIyrEJ-bBD&`6?yLlpK#>#}PyI ziH|N*qoh{Le|SgU5WEU_Z0w%mu!YG0`4NAqro3a3QaldiiX*C$G%klspQmz+BieN8 zH*_*fZX1PE|tA7 z;X^zYkcJtG$F{Vqs}#-rcOofs2OHa1Ge$ns;DRRxEX z?@cSf3hV&3?6d2}gQ@<)Vrb?_R8p{}cj00ef5J9@HWz0S-_cfNt0&QuFaPkHrAX^! z>iYIj0BbLS2F3c60l@|i6uXtB!m;k%8?5jQ_{HESSsi)wcu-qV$zotQWZ@YmS2Z8+ zQWrks^Xh##TlP&_1Aj$|;W?Py9#g1lanIrDmYjzLtspF9n|bk|=*$09jBtTd8Pq_h zWE3xYBcPUzN|(gG;l9~8sHR<$aK!06*Jt~ncjg8U+dVeWEz(q#Z=c8f$yWzoyQN5~ zr}LjCIDuw8>mw!}{ya4!&i92&>ZmYO1Ti*^ZB6i>8hg7FqHWkXHXBJ`m8W6RWR0wU z{!9coUdI0Xc`icTB2v}SX1JhYxTrjg(?Hc9;*KIPM+0{iOKb-d3?4ZIqjV2JOI6M; zEa>ZM@OW`(ci1%zY2S?u6GG^%B|BOqGvrU|7ef-Nd?|$tZsWkB9l5{W(H3)5=VJ*8 zYG2f~8`@-Rx<8zOiA2h{a>ef^ z<<;5^b`#8u4SkOmdZDVVIx8+w@g}SGo2-Y;P>-rwjyoWUne9j3smEZ8_ag@qv@osF zmQu$s&m9l=zW+ejVGuMFFKFFfHLg9=6~|O8K**bH_`Nw6z|v)tq5wsiO>6I!aPK*y zKBowHc}%~!TVRIwGH#1ka1!WvagRIDxX4vtI~FqotE4oNnsXsjc_T|hv4{6k(r^t9 z{fFbSf_`E5!Iwijh1JG_Sy~GMkj7y&4d#VVc+mu3fzPfkwION}X0zSmA8b#4iZRQI z^TfkF$}v+?l+jG=;Zs%_BBLnMOhXy~GxW)^>`=;QN;AOiP&)^^O&$OwIn!xBz%jyS z7}S{o0SLc;IP=kzJU?Y=EF%NAO6)3gqq-)T64-9~roC3yJ>M1C8TfK*>SdW(x^SRg zZqaZ$Ezcsakgyl1OzE(Eml|QiG`#!{q&X?q`WWeYiqp&9oB$b3v^Hh2%8rl``6<&UCe0hH9VHx?5cG2h0G4o=Y_i54p#=8mNVI z@-jSSdk#I+Qw>{y2z0NqyF}1OkXHPMhMw=ovcdN~H|J?MraM;FO${)v8$1|lWk>*# z*0BA{C5gwEg8eq~Vvesft(%FVLJkaaTlxVqqALRKK@%{#3zD!%Q6;f^-+#O1a^w2z zd-0!qhQ)xXU>M*LcGoU7jj){Q=e|UvbbA}V4$sZ)FVTRFcohxj`4By8AP}-W*U96b z{0ot@N9m~GN2Q1``=MjOJJ>r_rwRJK3S%uAk4NvsSBRPkS3aA1bW-Euh}HSaW|gQQ z31VCjMc(T0P9<)sHn40W4TtP z5m4fmvDvS1NH(yL0#4k0|7q?S$7$0M6YuOq_p9kbQ{o;Fvl6pxmI%j0Ah>(a&Ld;0 za-{HFPm|($r$?3*xO=E-E(A7+DG2QmxrFi&;W(N1o|XRMH}Vu-#Utf8|ne3m%A9AZL;w>qfOU0dN? z4C`rOJOqX4Cvc>%A9pBqNh>7wocNs;ZDlEEYIMmaK9hXUy-8Ba$ic`DZ(0|--g7A5 z>m+#pba`aY+ zNXy@{$&d6C@d<9b-ld4x+4($(GPJVK?FaYuEJ=AAjgUy&tS(y-WZ<%~C+=fI!2vig zQ`;A_nG9{yt`?6EzNg*3az5M@H5{B9_+h-WXtsPe@m=#Grb2ry(VJ~mhG!c4f!!S3wOvO;T=H1HX zklmc4^|u3j`t}5QYkqBOgwolUx7s~(B+!}1p2afJ*j@g|GKsDz?wKjwyv)HU~j*ia}XIx*h1b}J?6fg`jmsSZ4bC$BQ;}22E0!{V zvf=E4;f1rUy`XG=56W_F5a_Cul(}hq6}Pf_lWfqoHGZkNYe>6>D?$VCXW(rhd(`yW zxfQ)J-e<$>qD0!`m=^|cmt)^rz1!5>N;OkAl>?limJwc zA9&RMCnD@7I5zae*zqmx@a+n&D@Fxw{Gp||%6xyP*(P%LKk0S)DQ?aYZ?cQxL5R%^ zw$!v|_LwxQV{YlNSOeYlBUQn%pnA-=S(>f|VH6;Kd~H7mHTGEt=*la-8yfZ{n0LeP zt#;&g=Y|YFOTaFF9fXJ^&`h0;uyqa9I0Gl2$WzfOjrin`H!L>?UMPJWS?uI7=)78t z3IeXe!y=X9mfVW5H5sAqiF*sL)0>7<(ZA=XKm}>Zd~VV&4GBkQ zNW0HqcI>n%wxnI}%#@-1J9#eaRZdTSw44eCAt`SDq>0RDiNr2%L>cNLDyST7HGnj5 zE0vQo|CR3eAX4nxy_B;mb~tZ~8C~Vk%N4vY(`(BlD}YF(3k5|DN;cCPBSALQg78d1 z{9m>|YI2!!8FEYD^BQ3+Au&WtZcw&S`zsh|&q!2a!QeT*78-@bQ8N4=j48=pL{dnzVhLNBW-vg(<)Q#{g4Mq1c@lm6z!~_lvHY3J@zR#KQcZLE(PJ_lY4E z`MmR$l~ul8=p{86*@C#06m}=e!MeGwc8>XEiWci2mij|jx`EXdg->grU%3wkF5b4O zPp2$%$cojeuP2mB-v2y4cBzJm_ulfjsEtFdIiaQ`w9@B4ie^%16Sd^Yj~M`qmH+@T zJ+q?{>)Avk^#V~l2KzEpwqTL5M&)VklPn-ymO+5RZw&+4k)|yDUZ{6D_>oUFndcEs zWmMHk&hP36zl3&KBIf#`3La^Esd;Q}WC@i%QNG?SHW(W-nwp(n>0w2oti+DtC->`K z*fH-gBBo#t)OHdlHgYFN@7IP5SBZNDk<|LZ-7dN@Rwo%Yt3G0CroYR2ncirRga#p!1TlK&@gUz3`-C09hiuBXyW%AS}Amv29F=Mll(pxEh&*k zvpl&IlcqTDny4EI=#z{K_N+P4w_#QZZ{lAvCzOV^tY4LvMEm+;S>Zb4PcpztJFXAj z`7}7JEApmzLy8*HDd~gj8YljMg%IE_J0vM2L!aS)w<&E~#kT=tQIF5`O>>PAt4l!X zJ$TSrbDt;UMCh}w3)&5j%*zP(Oo5xF6}CpY(`g^gfvi^VfFb3`0pSb7VrX+Uuw_!n zUegH5yDjgk!ayu3FG)inpW$Rh*b!nMFi7Eq+BXoz!u93koMj5srQa;;v?dy6mldSG zw!A4@G)-H~Bri-zbpQw{fj4tA@mo>baU z0Afc=O~CIr-TsxTPE+o~nJ8idBqIb8e~CY`Y(3;K>@(e!tiGRLU?O=*%6;Dn_AFfGuv<@cd`A_Ug}Rp<%Yyl zz_>Th&Hs_8)BW8HnY{gn`3386t7O#OvT{tOTt%6?W-c|gb_Gh}mzLfmNQ&tY!~NsM zB*7Iph;#sD(|@EWD5Ev(pB3$kK9lBcyw*zA2e&2!Dm1OVLzv3WwXnY4X}0aoK?{W#IgMbn-;tUIm@-eC?xbB^X_g(t zkacDLbU|Mz3@*-!a~(%$eZSwLHd_hgH3p~|n@nZ1*!pWL$4Y)K9;_V4>(b(YN5KuK zO>6M1%M$Br49{oD@v5BU61=X^+BaBDFM!7&$sPCJ-$3Ty8zEb|$!tzHEoub~-lq1M zCDpYVU6}k>R;q*rfGu#eNxRN`#$XS@kPeF@7Bix!lE_d z{&Y(Gfo6IwZ%h?jWAS(EMKa$Fi?{X<Cd<3 zcN}oOxwGH&MU!BJJbAD5m&;#V8o0FreI)>-2OmMBOJXoI3z{4vQkkQ$e8@lSdC$-| zPbtaOpBK9Au!bzeg<1vgHn7a_k!904LPevns$lJ+6_Qq=bBO=+dBz1Et8lLST&s&S zo5C)Lc}Io#_Wd`(^``@uELjXro6Ok$ovb?SZgSam(cI)Y^H{%;O|1W~p)P){UJgMS z(Arr&kYZdMjBE=|Up`bm8VM<8IBi_k5@bGO7;)xBf%V3okA?o279TD#pcw7tKIP?U z{r$$WM5@20?lJrMRJ2#Ax8ouqJuw^7W!#uuek3!S@qkK&7vh%9XWMZ@)@G@xOHdS! z(%%hRKd{|Ah-#xvUkxjM>(dYG*^ z!P%tCMRL%V0aChFhgV8GvQe$>5ZU4hSuu1&5z*MbLgJZMiCEZN)?cx%j2h z=ydt(gRk5yS7C3t=MvE>C(DrJmQ`zo$8?y1ZL&+?`-nM~0keKmU3z7-XT_noID#J6 zSr<4Ep@4em2AR_4WW-r*oZ=tB3|EDehJ1549jSlerqk^;R1m0sQ9DJ9^0`3~8>=G{%R2@h1c!KinIc5G<>O2J&(TosTC z;LSa_?4CVc_|=I;Eqz6E_EoJ!Tuf zw4Ny$+eyCVo5pQ_MoQPv@!_rP!svre8c7w1OH(z6GmWx72XwgOoX#0IPDKUUUDS@} zUn{{8$-1k4)bkqR(@9)lrqL+V8p7hBGD<)oD`{5G!ssJ5-j+mO3lNsr)3=-a^r2oo z;@{i+7ET80Z?SnrIfm^Bz7^b#Msg$|Fqv^%9d*q z0=yf+(3=U1(voDLrntDn+!^9+6|YGVvr7J#HME|-usxG@OFHFJ_}zNd8AW8!R9Pp= zBoY|HY>^Gr3|s}sQ!RZQH{@3ioM2koOtoS87ew@7f-&t`Rx4yi9|iN-N2b8;C2}WQ zTp^@>j}NAd_(FQ(z81Aai17hI&e*D|$B=Fd3sRWS+UCR#=(b(Ws1NG4b%YD{omseg z^z-Hz)clFzyVf!EoB^5c$2E;oK0x%?B8LKE6)(fHAdVOzLPah=)e}g*o$cS@RYa4)fb@?$Rs>9Ry#{ z(5XOhJtZgtmlQ>Ko3`yZWWbD-F|9uck0c+tI;8(WRGc*{uZlS)i{A= zCH$i6=7kALaP&uTg`p80LWP;Q7`#X>vYFF;sq*|QhxuZNv{r_~=4J6neUi<*ZnUf1 z*R$7G`UIq-fP!Pujo@O08zQ6<A9rO^e<6Q9(O6pt}@L34QdQG&P~ z5LS%BJ9PU7@;k6I(x$Yd-?jf`qsKcK-5XSl%Q?4ga`mazI%l(cDZH`p^?nq4G)ptT zQWfdGLRbrR^V(xYB2biC`aq%oAjGG^@0)KtnQmaJ28n)Pc-u4#?wqNQ$-g}L-9o?6 z-%=p*`fIn?`9fnH!=Va>oSsB>(;B8S*_&2zs>O2%Gj^*dL8#s?42lhfJ} zS<_FL61?VNtuHfG#sDoT6!7?kW@Fle^@T8jz`YWHT6LMk8hh$a3XXZnWG^`5&>Gw8 zeV;f@eZPJz;ShXdb4OppnLU?OfEvw{vD#DW`B|**;#l*L|6z-yMz}hEraZaRD`}i^ zph+^G%t41(nY|)zAr)RnU~1T(7J& zRLHe=zprn3`qP0_xWRX}R8zI&;?xYQj6QVAeqHjjcUkCQYPU3Y)9zE-G*^UZHC?L= zR{D9H#;c#aqx;{wNXsLqD7ioR)^BTk`U`ED-9p)zhWtQ zsJ~WlIGLVBYw;+e@N85j%m{F5TMn7+pexpt$d=fq+>z;6eV2)6XB-p$+_8O-cA@BK z>S@7Ls7GFTJq?xN*X-#RmN?n})qwAjMDo8+U#e(aUdhZTp0QiKZFJ>ETG1oEPQec+ z28`WSo^J`Vup-XG`rkhkZ9ZJ-VDk=@*fUQ@0|o zrxm5^{%F0G`a|WrLUz;KX%>K?%BZE`4tZSGX4oUU&d7fV3hzL(ru=rbCrud0DS-Z> zXTkC)R;{wg=aVc3bZfoU(Mxu=p-oT2?MHBFc2p;E@QVAe2LWUr=3BM613XxLl48Iz zdh9=_*%@134!qJWka2do^f)L!`3qw`}3{rVXnfqGGAud%|hw^P@Fvp#z=>gxXA5#Q&O5ni*46=kmU?(2fIC#rPy~^gT#`n%6co zW8-g14SuH=y~jR$)DU;F*#vocFFWN>Qh5sp{-Eu9=KvqPN}WwOVEeHl9^+GW4l?A9 z`&A{Bospg{HI(l?KVc%&_~c}Dip8njGn%D#J$HfK;~{;=Z?@x+LwBeJ0u_iny&(^# zqI1aW){wyMrCkTRj4S`%O!wjtV*e?ss`*`LF{w#TrzvY+p7A<#)t=JROY;NA;8OH% zzE1pVu?8zqH_88ULCCs;UnwDEs!412Ph5`QKAL=wKZ8^4hs>N!68^CM|6a(FwU9J; zizBGoD@aA&t>hV+ z0DA0JUjP|d`nV0bk|`B&m(f=;FbrR+Bk4xYy#7y*_vzS-#NWbb`2d5;#DUQ<=3Bg1 zV$pUSs>q#vb-FZ%X@+-Hw%ji2RcNeDOchu)T45F+SQC7fHG?DA{4Vhy=71 z0roA|*(;XU3wP7XJU-Do`~=%9+o>Vbbw&BhE6{7nznA?lcfU%N)RRaS4T{aRxcB&> z2J2LT_`)T6RHC3ABP_#Ep3Y+rmLZ-Vi`CG*O|Wxqh&@$}{v1AG+^K6H5r=4X?sj|w z&BgFW=coZl7mYse8iCR)*F?u$`W8oReAT*Hf~GmpTutq`Vo)*3TJLA>^`l%Z4aPqM zGYjE`be88ABf`O$`Ci=L&6Jg>t;3GM)&NEKu2&Y{Ka(!Qo4U@!meM$;D+j+CfifIT zEiKoB1`&)Qewb8)#S{qKDUXw@V*2h*l~2Kx_~?*ze9^)B%=#YQz#W|T=S)Y}p$C=2 z^%vt@^Lg<0p|Njr-Zp%vW&i3C_|US_NesMlJOGARWfv}7UuUAm$9FG?tT&epl!$99 zr|s_S3qv>F?fNj*rm0*A<+k*&^D^)|giv7!4wPQvdK5oqmHGAj;ZGNQL)d*$^PB|O z-lzC_zFVGYV%B^yRe*6^@<)CGov^kh2c>k60}BI{qfAR4CrBXR5k%MmY>WT_>IzmE{&b6JBNWO5tr$(>(M{p~uWf|c8+^&$LZ7NUG z*84A;!pl6Fpv5M#A}mO>r(M#*VsUR+)3IXA77zf zawE+iWIHHk*qQJxc`ZGbZc?NQTWodT#cwhTo{`VS#s@cJRDlPWbEdf|396meBrnKH zN&B3%omp+%m=V8=z&J6iz1 z%1{GX4VW_m6;}*g4mCSpB+gS7*CO&>L`msu-*xyheRp8FK4#Q?870xN_x@uxnijNK zhhyD|rz;3P=Ep+DZdmk4%2+L7Neg$d#z<|;yRLOB*!n0hR9w4_oxbfL7}ahN;#{^o z>d*dbz`dIEIk@a1?OvBO&rxC7HI<%^o@Vci%?o?5SZ&RHa8F+oPhI`TG@DlLtELGy z%^99^tmA533e{*w>j~Xtb!eksHV|NB!vF_;St6B0_@V^bd760|2GRN68s)+7>n?SF zKB4Z{>t%~QiFe=ZfA+rAx@dhyf-q+X&Q-iMSJIjin;tvCg68_aWEr5g%a{82`mm@5 zd(reN3JedY_w>o~Q4l7(!HlH8Z0F!JXWlBdL}Uc|#j%tn&8a*w(0mB4x%dW*fSI^F zq4=@1NdDq7q3qSBt~|H0)%5_)87s4zQAw3?W!~b--gJ3ASD0ddJhy89OF5@tDS|8}JTXNxS^JqzXpeVY^x)60!k3G$cH)yI*+rf3fzSQBAdLxGr`qh=q=V zO7BXSY6AqM_k<7?DIq4I*8qxwN>%DdS9%MP5+a16Q~~KFl0ZTckP<>bl0bm(l=$CU2uYQCj&!wd_o$~~; zLr-36*}(nY!8C^9gkAMRVsq`N_slfWzwC)FGn0&l@2e5FLDdN?)5E@q>#Yqfhn*Oq zgL+2#q@T0+B@4tkpHo{C4I6>Sq>hz~bC|ifjCMYK%*d54UOFfUq|`po0a~?pBRmH* zeitgh8n^y{>%d(#3lx*Ru{jmUp;!|Wtr08VdLzMWh)+u?yK&)`e7Dt-Vr1aurJ3!Q zFRjws9)HfEW=wT$qjpo;8cW0W6vig)Rd^|LvGHmFV!WsJlkFMnEa1d`VMJl4=+Q%! z(pSyU0;LW)uBROUW?gx3Oqgl(DCX>|;z!v}8yjL*E$TvEC#&~wOW!7F#X}5O^1OnS zGk(^DRk&Ffco($egQNT;RHfue7Kzk)W2o-QjE2=FsX|twaC=)_P&bO(hza8EL_}X^ zlE1nLO{$G)bc|K5EI-pYVOHFCJx$@4ou0==uXU!T<@uAFsgXglHA~r_1i-tpvdOTu z%B45*At|8>pwU~YKzc>WqB&Z(VJS)6uBzTX8BUNSd-ydoi7aj8V_Iov?y)YtlbeqM zBTkI%pDl%8TQB6>M{(}FikEqQ*<6_(9J>RJpet9N2JWKx z8h1vvddcbbt#sIpqQ>7grN*q=(gWaK1WfhN&3`(;VMe5Ju6%yH?YZcgt4i$|1c}6V zn*@+L)jUl1{fbR?nK;l&KICOzcgKNEE$!Rv$UWzsTWKMUsg0LHE5GzPjI13%{LP?7 zXI~Ze_e&2JLc^pui`h6deZ3Wx4cQ<6+gQrKhE|Vt9V!QdyGiP=zU2vSX8$BW1}eMC zR-5ul5p-PeQ;eSfE#0P}bIBnYXSvVJo-mvaIg)yrPAen5w}zq?i=MWcSZ9Sxa5An? z)}_vZ2HA%kT*|hYq9N8R^f`N}aUs>2X@yEJks6f%0C=U9msU(FL{$8g4}7ne?NdtP zoq})oibHw3$WxtenGF>m(t6LBX2oA}`2!iut7c#dPlYMWCI?Nf%&ZgAc2{xaJj=Yv ziGkZ_V5vGCISH6iRP31Z=o}FK=KZrR3Pml^JGWW=F39!f7}c=_HPi1>WM#f|DoeB2 z{=U>kzw3$51`w-qTl}1#83A8g`fTD4bJPN@Krs91wX$s#Ng^YBE+^