diff options
author | Ondřej Surý <ondrej@debian.org> | 2019-03-03 08:11:36 +0000 |
---|---|---|
committer | Ondřej Surý <ondrej@debian.org> | 2019-03-03 08:11:36 +0000 |
commit | b990b5177804a582e9a2c906856256683079591e (patch) | |
tree | 4ebe87b575c3cba15d8703df3dcf6e72ac079b92 | |
parent | f6e0751e15d1d96700aabffd9c18ee5e7952ffca (diff) | |
parent | 9335f1c457f6ce3602d9dc8c254ab4410f0691a9 (diff) | |
download | bird-b990b5177804a582e9a2c906856256683079591e.tar.gz |
Update upstream source from tag 'upstream/2.0.4'
Update to upstream version '2.0.4'
with Debian dir 17420a5193627732a9def139a8bc2432c95564dd
64 files changed, 736 insertions, 8423 deletions
@@ -1,5 +1,4 @@ /autom4te.cache/ -/doc/*.html /obj/ /Makefile /bird @@ -1,3 +1,244 @@ +commit b9deced219cfda2afe8604b24351ae10ac56f98b +Author: Ondrej Zajicek (work) <santiago@crfreenet.org> +Date: Tue Feb 26 18:19:35 2019 +0100 + + NEWS and version update + +commit 7c36eb3e8bd7d06f65dc7319d42b6abe782c5b89 +Author: Maria Matejka <mq@ucw.cz> +Date: Fri Feb 22 12:41:51 2019 +0100 + + Conf: Switch for faster (and slightly bigger) lexer + +commit 93af78d2d29ce11e20d46f60cfe1d3ef68052e5c +Author: Ondrej Zajicek (work) <santiago@crfreenet.org> +Date: Fri Feb 22 02:16:39 2019 +0100 + + Nest: Do not compare rte.flags during rte_update() + + Route flags are mosty internal state of rtable, they are not significant + to whether a route has changed. With the old code, all routes received as + a part of enhanced route refresh are always re-announced to other peers + due to change in REF_STALE. + +commit ae294cc2d02ec02cbea11c275b64e7637ba0ea68 +Author: Ondrej Zajicek (work) <santiago@crfreenet.org> +Date: Tue Feb 19 18:30:28 2019 +0100 + + HTML are no longer generated in srcdir + +commit 900fda4411a5346f808a575101b1260b5f73fa93 +Author: Ondrej Zajicek (work) <santiago@crfreenet.org> +Date: Tue Feb 19 18:20:07 2019 +0100 + + Doc: Detect SP/OpenSP automatically + +commit 3a8ca7abbcf6452fa56d0c1c6ddcf7d5bd6876ed +Author: Ondrej Zajicek (work) <santiago@crfreenet.org> +Date: Tue Feb 19 16:26:09 2019 +0100 + + Nest: Prevent withdraws from propagation back to source protocol (for accepted mode) + + Update for one of previous patches, handles the the issue for + first-accepted mode of route propagation. + +commit bf8d7bba9ef3c6d95661f97dc71fa7a6b2cf0b87 +Author: Ondrej Zajicek (work) <santiago@crfreenet.org> +Date: Sun Feb 17 01:54:01 2019 +0100 + + OSPF: Reset LSAs during area type change + + When area is reconfigured to a different type, we need to flush LSAs as + they may not be valid (e.g. NSSA-LSA for non-NSSA area). Also, when we + have have just one OSPF area and that changes type, we could restart OSPF + as there is no state to keep anyway. That solves issue with different + handling of external routes exported to OSPF based of main area type. + +commit 4a3f5b36173299d44e26dc18db4e5d103875f8c4 +Author: Ondrej Zajicek (work) <santiago@crfreenet.org> +Date: Wed Feb 13 15:40:22 2019 +0100 + + OSPF: Basic support for DN-bit handling (RFC 4576) + + External LSAs originated by OSPF routers with VPN-PE behavior enabled are + marked by DN flag and they are ignored by other OSPF routers with VPN-PE + enabled. + +commit 1e958e52d3ef0c38e5fb5e673bcce95d1c28ac0e +Author: Ondrej Zajicek (work) <santiago@crfreenet.org> +Date: Sat Feb 9 16:15:01 2019 +0100 + + OSPF: Do not originate Router-Information LSA + + As we do not have much usage for it yet. + +commit cd16538fc91778e31f8241f62ee47056f099c051 +Merge: 6e8fb668 f9b97f1c +Author: Ondrej Zajicek (work) <santiago@crfreenet.org> +Date: Sat Feb 9 15:53:16 2019 +0100 + + Merge remote-tracking branch 'origin/mq-opt' + +commit 6e8fb66859a17b295cd9246264221a75cdbe6c55 +Author: Ondrej Zajicek (work) <santiago@crfreenet.org> +Date: Tue Feb 5 19:00:43 2019 +0100 + + Nest: Improve export counter handling + + One of previous workarounds for phantom route avoidance breaks export + counters by expanding sending of spurious withdraws, which are send when + we are not sure whether we have advertised that routes in the past. + If not, then export counter is decreased, but it was not increased + before, so it overflows under zero. + + The patch fixes that by sendung spurious withdraws, but not counting them + on export counter. That may lead to error in the other direction, but that + happens only as a race condition (i.e., in normal operation filters + return proper values about old route export state). + +commit 52fdd1cb76be1e278799001fa57f56888062dd86 +Author: Ondrej Zajicek (work) <santiago@crfreenet.org> +Date: Tue Feb 5 15:59:26 2019 +0100 + + Nest: Report preferred counters also when 'import keep filtered' is enabled + + Thanks to Michal Nowak for reporting the issue. + +commit a9b97cbcb74d918f3f606eb87a506712dccd2832 +Author: Ondrej Zajicek (work) <santiago@crfreenet.org> +Date: Sun Feb 3 20:22:40 2019 +0100 + + OSPF: Send direct acknowledgements as unicast + + Direct acknowledgements should be send as unicast to a corresponding + neighbor. Only delayed acks should be send as multicast to all/designated + routers. + +commit 16605f2fdad730b8bb570e17192dc5f45cf15d3f +Author: Ondrej Zajicek (work) <santiago@crfreenet.org> +Date: Sun Feb 3 17:31:27 2019 +0100 + + OSPF: Reject duplicate DBDES packets after dead interval + + Master may free last DBDES packet immediately. Slave must wait dead + interval before freeing last DBDES packet and then reject duplicate + DBDES packets with SeqNumberMismatch. + +commit 9c94583a3ded3b2792bd08d88beb10100a82d7b4 +Author: Ondrej Zajicek (work) <santiago@crfreenet.org> +Date: Sun Feb 3 16:20:37 2019 +0100 + + OSPF: DD seqnum should be initialized only for first attempts + + After SeqNumberMismatch/BadLSReq, we should continue with the old + seqnum++. The old code tries to do that by n->adj, but it was set + nowhere. + +commit 267da8138d7f429941f2d829b44cf9bdd94a14d6 +Author: Ondrej Zajicek (work) <santiago@crfreenet.org> +Date: Sun Feb 3 15:45:43 2019 +0100 + + OSPF: Reject DBDES packets with non-matching MTU + + As it is specified in RFC 2328. The old code just provided warning. + +commit e1c275d87b26f35c29ec8bfab0a3265810463574 +Author: Ondrej Zajicek (work) <santiago@crfreenet.org> +Date: Sat Feb 2 13:28:16 2019 +0100 + + Nest: Reestablish preferred counters + +commit f9b97f1c6282be398d2c2bb896dbb453f638f720 +Author: Maria Matejka <mq@ucw.cz> +Date: Fri Feb 1 14:09:01 2019 +0100 + + Perf: Added forgotten all-protocol options + +commit a8d0f2516c1ee0372edfc607832ae78632e404ca +Author: Maria Matejka <mq@ucw.cz> +Date: Tue Jan 29 15:19:06 2019 +0100 + + Nest: FIB rehash values tweaked for better performance + +commit e85e37d91d0c5fca6cb7a3ea80fac582074c389d +Author: Maria Matejka <mq@ucw.cz> +Date: Tue Jan 29 14:22:55 2019 +0100 + + Perf: Prune the table after every loop to have clean state. + +commit 7411b694c3ca9db4947f577f826b622ff23e570d +Author: Maria Matejka <mq@ucw.cz> +Date: Thu Jan 31 15:03:43 2019 +0100 + + Perf: Write also BIRD version to have all the needed data in the logfile + +commit c65a9a05f9005d8b7369d07a3f0e99b2f205955b +Author: Maria Matejka <mq@ucw.cz> +Date: Thu Jan 31 15:02:15 2019 +0100 + + Nest: Don't lookup net in table before filters are run. + + Using dummy net instead. This should help with performance on rejected + routes. + +commit e84c81b76ff6af88041b55c4ed25c208f78d4826 +Author: Ondrej Zajicek (work) <santiago@crfreenet.org> +Date: Wed Jan 30 17:25:21 2019 +0100 + + Nest: Prevent withdraws from propagation back to source protocol + + The earlier fix loosen conditions for not running filters on old + route when deciding about route propagation to a protocol to avoid + issues with ghost routes in some race conditions. + + Unfortunately, the fix also caused back-propagation of withdraws. For + regular updates, back-propagation is prevented in import_control hooks, + but these are not called on withdraws. For them, import_control hooks + are called on old routes instead, changing (old, NULL) notification + to (NULL, NULL), which is ignored. By not calling export processing + in some cases, the withdraw is not ignored and is back-propagated. + + This patch fixes that by contract conditions so the earlier fix is not + applied to back-propagated updates. + +commit ee95f281f038684a4a2613a0c54af7389afe64da +Author: Ondrej Zajicek (work) <santiago@crfreenet.org> +Date: Sat Jan 26 21:02:35 2019 +0100 + + Doc: Add documentation for OSPF retransmit delay option + + Thanks to Igor Podlesny for notification. + +commit 1c730ee761b3c9b7ff12a0ad11c5b1768d1e4ada +Author: Ondrej Zajicek (work) <santiago@crfreenet.org> +Date: Sat Jan 26 20:44:37 2019 +0100 + + Doc: Remove doc for already removed option + +commit b8a3608aa59a67364f05dbd0d0332371a200f226 +Author: Ondrej Zajicek (work) <santiago@crfreenet.org> +Date: Sat Jan 26 19:48:16 2019 +0100 + + BGP: Cleanup channels when going down + + When going up, uncleaned old channel state may trigger unexpected + conditions crashing bird. + +commit 5a50a98980a3554b66cedda6992ece4063a0e85a +Author: Ondrej Zajicek (work) <santiago@crfreenet.org> +Date: Thu Jan 24 22:34:33 2019 +0100 + + OSPF: Opaque LSAs and Router Information LSA + + Add support for OSPFv2 Opaque LSAs (RFC 5250) and for Router Information + LSA (RFC 7770). The second part is here mainly for testing opaque LSAs. + +commit 954888859969587a288501b6801ab0ddb1f94133 +Author: Jan Maria Matejka <mq@ucw.cz> +Date: Fri Dec 14 16:10:19 2018 +0100 + + Nest: Don't make tmp_attr before preexport is called + commit 3e60932a289e55e212dec1cbaf3bca44b2bbaeb8 Author: Ondrej Zajicek (work) <santiago@crfreenet.org> Date: Sat Jan 5 00:38:37 2019 +0100 @@ -41,8 +41,3 @@ For compiling BIRD documentation you also need: - Linuxdoc-Tools - LaTeX - -Note that build scripts for BIRD documentation expects 'nsgmls' from -James Clark's SP suite, while modern distributions use 'onsgmls' from -OpenSP suite. It is possible to build BIRD documentation with OpenSP -tools, but it requires manually tweaking paths in doc/sgml2* scripts. @@ -1,3 +1,11 @@ +Version 2.0.4 (2019-02-27) + o OSPF: Opaque LSAs (RFC 5250) + o OSPF: DN-bit handling (RFC 4576) + o Preferred route counters are back + o Important BGP bugfix + o Several bugfixes related to route propagation + o some minor bugfixes + Version 2.0.3 (2019-01-05) o MRT table dumps (RFC 6396) o BGP Long-lived graceful restart diff --git a/conf/Makefile b/conf/Makefile index 39628bff..984624b4 100644 --- a/conf/Makefile +++ b/conf/Makefile @@ -23,7 +23,7 @@ $(o)cf-parse.tab.c: $(o)cf-parse.y $(BISON) $(BISON_DEBUG) $(BISONFLAGS) -dv -pcf_ -b $(@:.tab.c=) $< $(o)cf-lex.c: $(s)cf-lex.l - $(FLEX) $(FLEX_DEBUG) -s -B -8 -Pcf_ -o$@ $< + $(FLEX) $(FLEX_DEBUG) -f -s -B -8 -Pcf_ -o$@ $< $(o)cf-lex.o: $(o)cf-parse.tab.h $(o)keywords.h $(o)cf-lex.o: CFLAGS+=-Wno-sign-compare -Wno-unused-function @@ -654,6 +654,7 @@ CFLAGS CC CONTROL_SOCKET CONFIG_FILE +runstatedir srcdir exedir objdir @@ -679,7 +680,6 @@ infodir docdir oldincludedir includedir -runstatedir localstatedir sharedstatedir sysconfdir @@ -763,7 +763,6 @@ datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' -runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE}' @@ -1016,15 +1015,6 @@ do | -silent | --silent | --silen | --sile | --sil) silent=yes ;; - -runstatedir | --runstatedir | --runstatedi | --runstated \ - | --runstate | --runstat | --runsta | --runst | --runs \ - | --run | --ru | --r) - ac_prev=runstatedir ;; - -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ - | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ - | --run=* | --ru=* | --r=*) - runstatedir=$ac_optarg ;; - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ @@ -1162,7 +1152,7 @@ fi for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir runstatedir + libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. @@ -1315,7 +1305,6 @@ Fine tuning of the installation directories: --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] diff --git a/doc/bird.sgml b/doc/bird.sgml index b3ac38b0..e531da40 100644 --- a/doc/bird.sgml +++ b/doc/bird.sgml @@ -3491,6 +3491,11 @@ protocol ospf [v2|v3] <name> { Specifies interval in seconds between retransmissions of unacknowledged updates. Default value is 5. + <tag><label id="ospf-transmit-delay">transmit delay <M>num</M></tag> + Specifies estimated transmission delay of link state updates send over + the interface. The value is added to LSA age of LSAs propagated through + it. Default value is 1. + <tag><label id="ospf-priority">priority <M>num</M></tag> On every multiple access network (e.g., the Ethernet) Designated Router and Backup Designated router are elected. These routers have some special @@ -3511,16 +3516,6 @@ protocol ospf [v2|v3] <name> { <m/dead/ seconds, it will consider the neighbor down. If both directives <cf/dead count/ and <cf/dead/ are used, <cf/dead/ has precedence. - <tag><label id="ospf-secondary">secondary <M>switch</M></tag> - On BSD systems, older versions of BIRD supported OSPFv2 only for the - primary IP address of an interface, other IP ranges on the interface - were handled as stub networks. Since v1.4.1, regular operation on - secondary IP addresses is supported, but disabled by default for - compatibility. This option allows to enable it. The option is a - transitional measure, will be removed in the next major release as the - behavior will be changed. On Linux systems, the option is irrelevant, as - operation on non-primary addresses is already the regular behavior. - <tag><label id="ospf-rx-buffer">rx buffer <M>num</M></tag> This option allows to specify the size of buffers used for packet processing. The buffer size should be bigger than maximal size of any diff --git a/doc/old/banner.tex b/doc/old/banner.tex deleted file mode 100644 index e1170562..00000000 --- a/doc/old/banner.tex +++ /dev/null @@ -1,44 +0,0 @@ -\input mjmac - -\language=\czech -\chyph -\nopagenumbers - -\centerline{\Big Projekt BIRD} -\bigskip -\centerline{\Big\ss (Basic Internet Routing Daemon)} - -\vskip 1in - -\large\fixfont - -\parindent=0pt - -\halign{\quad \hfil # & \quad # \hfil \cr -Vedoucí projektu: & RNDr. Libor Forst \cr -\noalign{\medskip} -Úèastníci: & Leo¹ Bitto \cr - & Ondøej Filip \cr - & Pavel Machek \cr - & Martin Mare¹ \cr - & {\I (tímto je projekt obsazen)} \cr -\noalign{\medskip} -Cíl projektu: & \vtop{\hsize=0.6\hsize - Cílem projektu je vyvinout kompletní podporu dynamického routingu -Internetovských protokolù (IP a IPv6) pro operaèní systémy kompatibilní -s~UNIXem, zejména pak pro Linux. Základní rysy programu: -\itemize\ibull -\:Podpora pou¾ití obou verzí IP souèasnì na~té¾e síti. -\:Komunikace s~okolními routery prostøednictvím protokolù RIPv2, OSPFv2 a BGP4. -\:Filtrace routovacích tabulek. -\:Mo¾nost re-exportu informací získaných jedním protokolem do~protokolù - jiných. -\:Vyu¾ití vymo¾eností Linuxového jádra (vícenásobné routovací tabulky, - netlink apod.). -\:Dynamická rekonfigurovatelnost za bìhu. -\:TOS-based routing. -\endlist -}\cr -} - -\bye diff --git a/doc/old/status.tex b/doc/old/status.tex deleted file mode 100644 index cd7ce897..00000000 --- a/doc/old/status.tex +++ /dev/null @@ -1,90 +0,0 @@ -\input mjmac - -\hsize=7truein -\vsize=9.5truein -\language=\czech -\chyph - -\centerline{\Big Projekt BIRD} -\bigskip -\centerline{\Big\ss (Basic Internet Routing Daemon)} -\bigskip -\centerline{\large\it zpráva o~stavu projektu ke~dni 10. 11. 1999} - -\vskip 0.5in - -\leftline{\Large Obsazení} - -\noindent\halign{\quad \hfil # & \quad # \hfil \cr -Vedoucí projektu: & RNDr. Libor Forst \cr -\noalign{\medskip} -Úèastníci: & Ondøej Filip \cr - & Pavel Machek \cr - & Martin Mare¹ \cr -} - -\bigskip -\leftline{\Large Specifikace} - - Cílem projektu je vyvinout program umo¾òující dynamický routing -internetovských protokolù (IPv4 a IPv6) pro operaèní systémy kompatibilní -s~UNIXem (zejména pak pro Linux). Tento program komunikuje s~ostatními -routery v~síti (respektive její èásti, na ní¾ se dynamický routing vztahuje) -prostøednictvím standardních protokolù (RIPv2, OSPFv2, BGP4), vymìòuje si -s~nimi informace o~topologii sítì a jejích dynamických zmìnách a podle takto -zji¹tìné topologie nastavuje routovací tabulky jádra OS. - - Program dále zaji¹»uje distribuci routovacích informací mezi jednotlivými -(jinak na sobì nazávislými) protokoly, pøièem¾ tyto informace umo¾òuje -filtrovat podle pravidel specifikovaných v~jednoduchém programovacím -jazyku, èím¾ lze mimo jiné realizovat policy-based routing, který -je jinak dostupný pouze v~drahých komerèních routerech. - - Projekt si rovnì¾ klade za cíl vyu¾ít nejnovìj¹ích vymo¾eností -moderních UNIXových OS, jako jsou vícenásobné routovací tabulky, netlink -apod. - - Router bude mo¾no za bìhu ovládat prostøednictvím øídících pøíkazù -pøedávaných po lokálním socketu. To zahrnuje výpis stavových informací -celého systému (routovacích tabulek, topologických map protokolu OSPF, -atributových tabulek BGP a jiných údajù nezbytných pro správce sítì) -a zejména zmìnu konfigurace bez nutnosti restartu protokolù zmìnami -nedotèených. - -\medskip - -\leftline{\Large Stav projektu} - - Po ztrátì jednoho z~èlenù týmu pokraèuje vývoj ponìkud pomalej¹ím -tempem ne¾ se pùvodnì oèekávalo, nicménì zadání projektu hodláme splnit -v~celém rozsahu a projekt bìhem tohoto ¹kolního roku dokonèit. V~souèasné -dobì chybí zejména dokumentace (její nynìj¹í podoba se omezuje výhradnì -na~bohaté komentáøe ve~zdrojových textech) a podpora protokolu BGP. - -\medskip - -\noindent Stav jednotlivých èástí projektu: - -\medskip - -\halign{# \hfil & \qquad \hfil#\cr -Building system & 100\% \cr -Jádro routeru & 90\% \cr -Správa datových struktur & 80\% \cr -Podpora IPv4 & 100\% \cr -Podpora IPv6 & 70\% \cr -Interface na Linux 2.0 & 100\% \cr -Interface na Linux 2.2 & 100\% \cr -Interface na FreeBSD & 20\% \cr -Protokol RIP & 90\% \cr -Protokol OSPF pro IPv4 & 40\% \cr -Protokol OSPF pro IPv6 & 10\% \cr -Protokol BGP & 0\% \cr -Interpreter filtrù & 70\% \cr -Parser konfigurace & 70\% \cr -Dálkové ovládání & 20\% \cr -Dokumentace & 0\% \cr -Online help & 0\% \cr -} - -\bye diff --git a/doc/sgml2html b/doc/sgml2html index 170fcb46..ea8e8c92 100755 --- a/doc/sgml2html +++ b/doc/sgml2html @@ -28,12 +28,16 @@ use lib "/usr/perl5"; use lib "/usr/lib/perl5"; use lib "/usr/share/perl5"; $progs = { - "NSGMLS" => "/usr/bin/onsgmls", + "NSGMLS" => "/usr/bin/nsgmls", "SGMLSASP" => "/usr/bin/sgmlsasp", "GROFF" => "/usr/bin/groff", "GROFFMACRO" => "-ms", "AWK" => "/usr/share/linuxdoc-tools/awkwhich" }; + +if (! -x $progs->{"NSGMLS"}) + { $progs->{"NSGMLS"} = "/usr/bin/onsgmls"; } + $ENV{"SGML_CATALOG_FILES"} = "$DataDir/dtd/catalog" . (defined $ENV{SGML_CATALOG_FILES} ? ":$ENV{SGML_CATALOG_FILES}" : ""); diff --git a/doc/sgml2latex b/doc/sgml2latex index ba10208d..79c6df03 100755 --- a/doc/sgml2latex +++ b/doc/sgml2latex @@ -28,12 +28,16 @@ use lib "/usr/perl5"; use lib "/usr/lib/perl5"; use lib "/usr/share/perl5"; $progs = { - "NSGMLS" => "/usr/bin/onsgmls", + "NSGMLS" => "/usr/bin/nsgmls", "SGMLSASP" => "/usr/bin/sgmlsasp", "GROFF" => "/usr/bin/groff", "GROFFMACRO" => "-ms", "AWK" => "/usr/share/linuxdoc-tools/awkwhich" }; + +if (! -x $progs->{"NSGMLS"}) + { $progs->{"NSGMLS"} = "/usr/bin/onsgmls"; } + $ENV{"SGML_CATALOG_FILES"} = "$DataDir/dtd/catalog" . (defined $ENV{SGML_CATALOG_FILES} ? ":$ENV{SGML_CATALOG_FILES}" : ""); diff --git a/doc/sgml2txt b/doc/sgml2txt index b43bd81a..013479fe 100755 --- a/doc/sgml2txt +++ b/doc/sgml2txt @@ -28,12 +28,16 @@ use lib "/usr/perl5"; use lib "/usr/lib/perl5"; use lib "/usr/share/perl5"; $progs = { - "NSGMLS" => "/usr/bin/onsgmls", + "NSGMLS" => "/usr/bin/nsgmls", "SGMLSASP" => "/usr/bin/sgmlsasp", "GROFF" => "/usr/bin/groff", "GROFFMACRO" => "-ms", "AWK" => "/usr/share/linuxdoc-tools/awkwhich" }; + +if (! -x $progs->{"NSGMLS"}) + { $progs->{"NSGMLS"} = "/usr/bin/onsgmls"; } + $ENV{"SGML_CATALOG_FILES"} = "$DataDir/dtd/catalog" . (defined $ENV{SGML_CATALOG_FILES} ? ":$ENV{SGML_CATALOG_FILES}" : ""); diff --git a/doc/slides/Makefile b/doc/slides/Makefile deleted file mode 100644 index 52bb360c..00000000 --- a/doc/slides/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -all: slides.dvi - -slides.dvi: slides.tex - csplain slides.tex - -slides.ps: slides.dvi - dvips -o slides.ps -D600 -ta4 slides.dvi - -view: slides.dvi - xdvi -expert -geometry 1100x700 -l -s 4 -paper a4 -margins 1in slides.dvi - -viewlarge: slides.dvi - xdvi -expert -geometry 1024x700 -l -s 1 -paper a4 -margins 1in slides.dvi - -viewreal: slides.dvi - xdvi -expert -geometry 1024x700 -l -s 6 -paper a4 -margins 1in slides.dvi - -clean: - rm -f *~ *.log *.tfm *.*pk *.*gf *.ps *.dvi diff --git a/doc/slides/logo.eps b/doc/slides/logo.eps deleted file mode 100644 index 587a4145..00000000 --- a/doc/slides/logo.eps +++ /dev/null @@ -1,454 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0
-%%BoundingBox: 16 477 580 811
-%%Creator: CorelDRAW 8
-%%Title: C:\Dokumenty\bird\333333.eps
-%%CreationDate: Sun Jun 25 11:14:25 2000
-%%DocumentProcessColors: Black
-%%DocumentSuppliedResources: (atend)
-%%EndComments
-%%BeginProlog
-/AutoFlatness false def
-/AutoSteps 0 def
-/CMYKMarks true def
-/UseLevel 1 def
-%Color profile: PROFILES.CCM - Obecný profil tiskárny CMYK
-%%BeginResource: procset wCorel8Dict 8.0 0
-/wCorel8Dict 300 dict def wCorel8Dict begin -% Copyright (c)1992-97 Corel Corporation
-% All rights reserved. v8.0 r0.7
-/bd{bind def}bind def/ld{load def}bd/xd{exch def}bd/_ null def/rp{{pop}repeat}
-bd/@cp/closepath ld/@gs/gsave ld/@gr/grestore ld/@np/newpath ld/Tl/translate ld
-/$sv 0 def/@sv{/$sv save def}bd/@rs{$sv restore}bd/spg/showpage ld/showpage{}
-bd currentscreen/@dsp xd/$dsp/@dsp def/$dsa xd/$dsf xd/$sdf false def/$SDF
-false def/$Scra 0 def/SetScr/setscreen ld/setscreen{pop pop pop}bd/@ss{2 index
-0 eq{$dsf 3 1 roll 4 -1 roll pop}if exch $Scra add exch load SetScr}bd
-/SepMode_5 where{pop}{/SepMode_5 0 def}ifelse/CurrentInkName_5 where{pop}
-{/CurrentInkName_5(Composite)def}ifelse/$ink_5 where{pop}{/$ink_5 -1 def}
-ifelse/$c 0 def/$m 0 def/$y 0 def/$k 0 def/$t 1 def/$n _ def/$o 0 def/$fil 0
-def/$C 0 def/$M 0 def/$Y 0 def/$K 0 def/$T 1 def/$N _ def/$O 0 def/$PF false
-def/s1c 0 def/s1m 0 def/s1y 0 def/s1k 0 def/s1t 0 def/s1n _ def/$bkg false def
-/SK 0 def/SM 0 def/SY 0 def/SC 0 def/$op false def matrix currentmatrix/$ctm xd
-/$ptm matrix def/$ttm matrix def/$stm matrix def/$ffpnt true def
-/CorelDrawReencodeVect[16#0/grave 16#5/breve 16#6/dotaccent 16#8/ring
-16#A/hungarumlaut 16#B/ogonek 16#C/caron 16#D/dotlessi 16#27/quotesingle
-16#60/grave 16#7C/bar
-16#82/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl
-16#88/circumflex/perthousand/Scaron/guilsinglleft/OE
-16#91/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash/emdash
-16#98/tilde/trademark/scaron/guilsinglright/oe 16#9F/Ydieresis
-16#A1/exclamdown/cent/sterling/currency/yen/brokenbar/section
-16#a8/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/minus/registered/macron
-16#b0/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered
-16#b8/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown
-16#c0/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
-16#c8/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis
-16#d0/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply
-16#d8/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls
-16#e0/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
-16#e8/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
-16#f0/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide
-16#f8/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
-/L2?/languagelevel where{pop languagelevel 2 ge}{false}ifelse def
-/@BeginSysCorelDict{systemdict/Corel30Dict known{systemdict/Corel30Dict get
-exec}if systemdict/CorelLexDict known{1 systemdict/CorelLexDict get exec}if}bd
-/@EndSysCorelDict{systemdict/Corel30Dict known{end}if/EndCorelLexDict where
-{pop EndCorelLexDict}if}bd AutoFlatness{/@ifl{dup currentflat exch sub 10 gt{
-([Error: PathTooComplex; OffendingCommand: AnyPaintingOperator]\n)print flush
-@np exit}{currentflat 2 add setflat}ifelse}bd/@fill/fill ld/fill{currentflat{
-{@fill}stopped{@ifl}{exit}ifelse}bind loop setflat}bd/@eofill/eofill ld/eofill
-{currentflat{{@eofill}stopped{@ifl}{exit}ifelse}bind loop setflat}bd/@clip
-/clip ld/clip{currentflat{{@clip}stopped{@ifl}{exit}ifelse}bind loop setflat}
-bd/@eoclip/eoclip ld/eoclip{currentflat{{@eoclip}stopped{@ifl}{exit}ifelse}
-bind loop setflat}bd/@stroke/stroke ld/stroke{currentflat{{@stroke}stopped
-{@ifl}{exit}ifelse}bind loop setflat}bd}if L2?{/@ssa{true setstrokeadjust}bd}{
-/@ssa{}bd}ifelse/d/setdash ld/j/setlinejoin ld/J/setlinecap ld/M/setmiterlimit
-ld/w/setlinewidth ld/O{/$o xd}bd/R{/$O xd}bd/W/eoclip ld/c/curveto ld/C/c ld/l
-/lineto ld/L/l ld/rl/rlineto ld/m/moveto ld/n/newpath ld/N/newpath ld/P{11 rp}
-bd/u{}bd/U{}bd/A{pop}bd/q/@gs ld/Q/@gr ld/&{}bd/@j{@sv @np}bd/@J{@rs}bd/g{1
-exch sub/$k xd/$c 0 def/$m 0 def/$y 0 def/$t 1 def/$n _ def/$fil 0 def}bd/G{1
-sub neg/$K xd _ 1 0 0 0/$C xd/$M xd/$Y xd/$T xd/$N xd}bd/k{1 index type
-/stringtype eq{/$t xd/$n xd}{/$t 0 def/$n _ def}ifelse/$k xd/$y xd/$m xd/$c xd
-/$fil 0 def}bd/K{1 index type/stringtype eq{/$T xd/$N xd}{/$T 0 def/$N _ def}
-ifelse/$K xd/$Y xd/$M xd/$C xd}bd/x/k ld/X/K ld/sf{1 index type/stringtype eq{
-/s1t xd/s1n xd}{/s1t 0 def/s1n _ def}ifelse/s1k xd/s1y xd/s1m xd/s1c xd}bd/i{
-dup 0 ne{setflat}{pop}ifelse}bd/v{4 -2 roll 2 copy 6 -2 roll c}bd/V/v ld/y{2
-copy c}bd/Y/y ld/@w{matrix rotate/$ptm xd matrix scale $ptm dup concatmatrix
-/$ptm xd 1 eq{$ptm exch dup concatmatrix/$ptm xd}if 1 w}bd/@g{1 eq dup/$sdf xd
-{/$scp xd/$sca xd/$scf xd}if}bd/@G{1 eq dup/$SDF xd{/$SCP xd/$SCA xd/$SCF xd}
-if}bd/@D{2 index 0 eq{$dsf 3 1 roll 4 -1 roll pop}if 3 copy exch $Scra add exch
-load SetScr/$dsp xd/$dsa xd/$dsf xd}bd/$ngx{$SDF{$SCF SepMode_5 0 eq{$SCA}
-{$dsa}ifelse $SCP @ss}if}bd/p{/$pm xd 7 rp/$pyf xd/$pxf xd/$pn xd/$fil 1 def}
-bd/@MN{2 copy le{pop}{exch pop}ifelse}bd/@MX{2 copy ge{pop}{exch pop}ifelse}bd
-/InRange{3 -1 roll @MN @MX}bd/@sqr{dup 0 rl dup 0 exch rl neg 0 rl @cp}bd
-/currentscale{1 0 dtransform matrix defaultmatrix idtransform dup mul exch dup
-mul add sqrt 0 1 dtransform matrix defaultmatrix idtransform dup mul exch dup
-mul add sqrt}bd/@unscale{}bd/wDstChck{2 1 roll dup 3 -1 roll eq{1 add}if}bd
-/@dot{dup mul exch dup mul add 1 exch sub}bd/@lin{exch pop abs 1 exch sub}bd
-/cmyk2rgb{3{dup 5 -1 roll add 1 exch sub dup 0 lt{pop 0}if exch}repeat pop}bd
-/rgb2cmyk{3{1 exch sub 3 1 roll}repeat 3 copy @MN @MN 3{dup 5 -1 roll sub neg
-exch}repeat}bd/rgb2g{2 index .299 mul 2 index .587 mul add 1 index .114 mul add
-4 1 roll pop pop pop}bd/WaldoColor_5 where{pop}{/SetRgb/setrgbcolor ld/GetRgb
-/currentrgbcolor ld/SetGry/setgray ld/GetGry/currentgray ld/SetRgb2 systemdict
-/setrgbcolor get def/GetRgb2 systemdict/currentrgbcolor get def/SetHsb
-systemdict/sethsbcolor get def/GetHsb systemdict/currenthsbcolor get def
-/rgb2hsb{SetRgb2 GetHsb}bd/hsb2rgb{3 -1 roll dup floor sub 3 1 roll SetHsb
-GetRgb2}bd/setcmykcolor where{pop/SetCmyk_5/setcmykcolor ld}{/SetCmyk_5{
-cmyk2rgb SetRgb}bd}ifelse/currentcmykcolor where{pop/GetCmyk/currentcmykcolor
-ld}{/GetCmyk{GetRgb rgb2cmyk}bd}ifelse/setoverprint where{pop}{/setoverprint{
-/$op xd}bd}ifelse/currentoverprint where{pop}{/currentoverprint{$op}bd}ifelse
-/@tc_5{5 -1 roll dup 1 ge{pop}{4{dup 6 -1 roll mul exch}repeat pop}ifelse}bd
-/@trp{exch pop 5 1 roll @tc_5}bd/setprocesscolor_5{SepMode_5 0 eq{SetCmyk_5}{0
-4 $ink_5 sub index exch pop 5 1 roll pop pop pop pop SepsColor true eq{$ink_5 3
-gt{1 sub neg SetGry}{0 0 0 4 $ink_5 roll SetCmyk_5}ifelse}{1 sub neg SetGry}
-ifelse}ifelse}bd/findcmykcustomcolor where{pop}{/findcmykcustomcolor{5 array
-astore}bd}ifelse/setcustomcolor where{pop}{/setcustomcolor{exch aload pop
-SepMode_5 0 eq{pop @tc_5 setprocesscolor_5}{CurrentInkName_5 eq{4 index}{0}
-ifelse 6 1 roll 5 rp 1 sub neg SetGry}ifelse}bd}ifelse/@scc_5{dup type
-/booleantype eq{setoverprint}{1 eq setoverprint}ifelse dup _ eq{pop
-setprocesscolor_5 pop}{findcmykcustomcolor exch setcustomcolor}ifelse SepMode_5
-0 eq{true}{GetGry 1 eq currentoverprint and not}ifelse}bd/colorimage where{pop
-/ColorImage{colorimage}def}{/ColorImage{/ncolors xd pop/dataaq xd{dataaq
-ncolors dup 3 eq{/$dat xd 0 1 $dat length 3 div 1 sub{dup 3 mul $dat 1 index
-get 255 div $dat 2 index 1 add get 255 div $dat 3 index 2 add get 255 div rgb2g
-255 mul cvi exch pop $dat 3 1 roll put}for $dat 0 $dat length 3 idiv
-getinterval pop}{4 eq{/$dat xd 0 1 $dat length 4 div 1 sub{dup 4 mul $dat 1
-index get 255 div $dat 2 index 1 add get 255 div $dat 3 index 2 add get 255 div
-$dat 4 index 3 add get 255 div cmyk2rgb rgb2g 255 mul cvi exch pop $dat 3 1
-roll put}for $dat 0 $dat length ncolors idiv getinterval}if}ifelse}image}bd
-}ifelse/setcmykcolor{1 5 1 roll _ currentoverprint @scc_5/$ffpnt xd}bd
-/currentcmykcolor{0 0 0 0}bd/setrgbcolor{rgb2cmyk setcmykcolor}bd
-/currentrgbcolor{currentcmykcolor cmyk2rgb}bd/sethsbcolor{hsb2rgb setrgbcolor}
-bd/currenthsbcolor{currentrgbcolor rgb2hsb}bd/setgray{dup dup setrgbcolor}bd
-/currentgray{currentrgbcolor rgb2g}bd/InsideDCS false def/IMAGE systemdict
-/image get def/image{InsideDCS{IMAGE}{/EPSDict where{pop SepMode_5 0 eq{IMAGE}
-{dup type/dicttype eq{dup/ImageType get 1 ne{IMAGE}{dup dup/BitsPerComponent
-get 8 eq exch/BitsPerComponent get 1 eq or currentcolorspace 0 get/DeviceGray
-eq and{CurrentInkName_5(Black)eq{IMAGE}{dup/DataSource get/TCC xd/Height get
-abs{TCC pop}repeat}ifelse}{IMAGE}ifelse}ifelse}{2 index 1 ne{CurrentInkName_5
-(Black)eq{IMAGE}{/TCC xd pop pop exch pop abs{TCC pop}repeat}ifelse}{IMAGE}
-ifelse}ifelse}ifelse}{IMAGE}ifelse}ifelse}bd}ifelse/WaldoColor_5 true def/@sft
-{$tllx $pxf add dup $tllx gt{$pwid sub}if/$tx xd $tury $pyf sub dup $tury lt
-{$phei add}if/$ty xd}bd/@stb{pathbbox/$ury xd/$urx xd/$lly xd/$llx xd}bd/@ep{{
-cvx exec}forall}bd/@tp{@sv/$in true def 2 copy dup $lly le{/$in false def}if
-$phei sub $ury ge{/$in false def}if dup $urx ge{/$in false def}if $pwid add
-$llx le{/$in false def}if $in{@np 2 copy m $pwid 0 rl 0 $phei neg rl $pwid neg
-0 rl 0 $phei rl clip @np $pn cvlit load aload pop 7 -1 roll 5 index sub 7 -1
-roll 3 index sub Tl matrix currentmatrix/$ctm xd @ep pop pop pop pop}{pop pop
-}ifelse @rs}bd/@th{@sft 0 1 $tly 1 sub{dup $psx mul $tx add{dup $llx gt{$pwid
-sub}{exit}ifelse}loop exch $phei mul $ty exch sub 0 1 $tlx 1 sub{$pwid mul 3
-copy 3 -1 roll add exch @tp pop}for pop pop}for}bd/@tv{@sft 0 1 $tlx 1 sub{dup
-$pwid mul $tx add exch $psy mul $ty exch sub{dup $ury lt{$phei add}{exit}
-ifelse}loop 0 1 $tly 1 sub{$phei mul 3 copy sub @tp pop}for pop pop}for}bd/$fm
-0 def/wfill{1 $fm eq{fill}{eofill}ifelse}bd/wclip{1 $fm eq{clip}{eoclip}ifelse
-}bd/@pf{@gs $ctm setmatrix $pm concat @stb wclip @sv Bburx Bbury $pm itransform
-/$tury xd/$turx xd Bbllx Bblly $pm itransform/$tlly xd/$tllx xd newpath $tllx
-$tlly m $tllx $tury l $turx $tury l $turx $tlly l $tllx $tlly m @cp pathbbox
-@rs/$tury xd/$turx xd/$tlly xd/$tllx xd/$wid $turx $tllx sub def/$hei $tury
-$tlly sub def @gs $vectpat{1 0 0 0 0 _ $o @scc_5{wfill}if}{$t $c $m $y $k $n $o
-@scc_5{SepMode_5 0 eq $pfrg or{$tllx $tlly Tl $wid $hei scale <00> 8 1 false[8
-0 0 1 0 0]{}imagemask}{/$bkg true def}ifelse}if}ifelse @gr $wid 0 gt $hei 0 gt
-and{$pn cvlit load aload pop/$pd xd 3 -1 roll sub/$phei xd exch sub/$pwid xd
-$wid $pwid div ceiling 1 add/$tlx xd $hei $phei div ceiling 1 add/$tly xd $psx
-0 eq{@tv}{@th}ifelse}if @gr @np/$bkg false def}bd/@Pf{@sv SepMode_5 0 eq $Psc 0
-ne or $ink_5 3 eq or{0 J 0 j[]0 d $t $c $m $y $k $n $o @scc_5 pop $ctm
-setmatrix 72 1000 div dup matrix scale dup concat dup Bburx exch Bbury exch
-itransform ceiling cvi/Bbury xd ceiling cvi/Bburx xd Bbllx exch Bblly exch
-itransform floor cvi/Bblly xd floor cvi/Bbllx xd $Prm aload pop $Psn load exec
-}{1 SetGry wfill}ifelse @rs @np}bd/F{matrix currentmatrix $sdf{$scf $sca $scp
-@ss}if $fil 1 eq{@pf}{$fil 2 eq{@ff}{$fil 3 eq{@Pf}{$t $c $m $y $k $n $o @scc_5
-{wfill}{@np}ifelse}ifelse}ifelse}ifelse $sdf{$dsf $dsa $dsp @ss}if setmatrix}
-bd/f{@cp F}bd/S{matrix currentmatrix $ctm setmatrix $SDF{$SCF $SCA $SCP @ss}if
-$T $C $M $Y $K $N $O @scc_5{matrix currentmatrix $ptm concat stroke setmatrix}
-{@np}ifelse $SDF{$dsf $dsa $dsp @ss}if setmatrix}bd/s{@cp S}bd/B{@gs F @gr S}
-bd/b{@cp B}bd/_E{5 array astore exch cvlit xd}bd/@cc{currentfile $dat
-readhexstring pop}bd/@sm{/$ctm $ctm currentmatrix def}bd/@E{/Bbury xd/Bburx xd
-/Bblly xd/Bbllx xd}bd/@c{@cp}bd/@p{/$fil 1 def 1 eq dup/$vectpat xd{/$pfrg true
-def}{@gs $t $c $m $y $k $n $o @scc_5/$pfrg xd @gr}ifelse/$pm xd/$psy xd/$psx xd
-/$pyf xd/$pxf xd/$pn xd}bd/@P{/$fil 3 def/$Psn xd/$Psc xd array astore/$Prm xd
-}bd/@ii{concat 3 index 3 index m 3 index 1 index l 2 copy l 1 index 3 index l 3
-index 3 index l clip pop pop pop pop}bd/tcc{@cc}def/@i{@sm @gs @ii 6 index 1 ne
-{/$frg true def pop pop}{1 eq{s1t s1c s1m s1y s1k s1n $O @scc_5/$frg xd}{/$frg
-false def}ifelse 1 eq{@gs $ctm setmatrix F @gr}if}ifelse @np/$ury xd/$urx xd
-/$lly xd/$llx xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul 8 div ceiling cvi
-string def $bkg $frg or{$SDF{$SCF $SCA $SCP @ss}if $llx $lly Tl $urx $llx sub
-$ury $lly sub scale $bkg{$t $c $m $y $k $n $o @scc_5 pop}if $wid $hei abs $bts
-1 eq{$bkg}{$bts}ifelse[$wid 0 0 $hei neg 0 $hei 0 gt{$hei}{0}ifelse]/tcc load
-$bts 1 eq{imagemask}{image}ifelse $SDF{$dsf $dsa $dsp @ss}if}{$hei abs{tcc pop}
-repeat}ifelse @gr $ctm setmatrix}bd/@I{@sm @gs @ii @np/$ury xd/$urx xd/$lly xd
-/$llx xd/$ncl xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul $ncl mul 8 div
-ceiling cvi string def $ngx $llx $lly Tl $urx $llx sub $ury $lly sub scale $wid
-$hei abs $bts[$wid 0 0 $hei neg 0 $hei 0 gt{$hei}{0}ifelse]/@cc load false $ncl
-ColorImage $SDF{$dsf $dsa $dsp @ss}if @gr $ctm setmatrix}bd/COMP 0 def
-/MaskedImage false def L2?{/@I_2{@sm @gs @ii @np/$ury xd/$urx xd/$lly xd/$llx
-xd/$ncl xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul $ncl mul 8 div ceiling
-cvi string def $ngx $ncl 1 eq{/DeviceGray}{$ncl 3 eq{/DeviceRGB}{/DeviceCMYK}
-ifelse}ifelse setcolorspace $llx $lly Tl $urx $llx sub $ury $lly sub scale 8
-dict begin/ImageType 1 def/Width $wid def/Height $hei abs def/BitsPerComponent
-$bts def/Decode $ncl 1 eq{[0 1]}{$ncl 3 eq{[0 1 0 1 0 1]}{[0 1 0 1 0 1 0 1]}
-ifelse}ifelse def/ImageMatrix[$wid 0 0 $hei neg 0 $hei 0 gt{$hei}{0}ifelse]def
-/DataSource currentfile/ASCII85Decode filter COMP 1 eq{/DCTDecode filter}{COMP
-2 eq{/RunLengthDecode filter}if}ifelse def currentdict end image $SDF{$dsf $dsa
-$dsp @ss}if @gr $ctm setmatrix}bd}{/@I_2{}bd}ifelse/@I_3{@sm @gs @ii @np/$ury
-xd/$urx xd/$lly xd/$llx xd/$ncl xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul
-$ncl mul 8 div ceiling cvi string def $ngx $ncl 1 eq{/DeviceGray}{$ncl 3 eq
-{/DeviceRGB}{/DeviceCMYK}ifelse}ifelse setcolorspace $llx $lly Tl $urx $llx sub
-$ury $lly sub scale/ImageDataDict 8 dict def ImageDataDict begin/ImageType 1
-def/Width $wid def/Height $hei abs def/BitsPerComponent $bts def/Decode $ncl 1
-eq{[0 1]}{$ncl 3 eq{[0 1 0 1 0 1]}{[0 1 0 1 0 1 0 1]}ifelse}ifelse def
-/ImageMatrix[$wid 0 0 $hei neg 0 $hei 0 gt{$hei}{0}ifelse]def/DataSource
-currentfile/ASCII85Decode filter COMP 1 eq{/DCTDecode filter}{COMP 2 eq{
-/RunLengthDecode filter}if}ifelse def end/MaskedImageDict 7 dict def
-MaskedImageDict begin/ImageType 3 def/InterleaveType 3 def/MaskDict
-ImageMaskDict def/DataDict ImageDataDict def end MaskedImageDict image $SDF
-{$dsf $dsa $dsp @ss}if @gr $ctm setmatrix}bd/@SetMask{/$mbts xd/$mhei xd/$mwid
-xd/ImageMaskDict 8 dict def ImageMaskDict begin/ImageType 1 def/Width $mwid def
-/Height $mhei abs def/BitsPerComponent $mbts def/DataSource maskstream def
-/ImageMatrix[$mwid 0 0 $mhei neg 0 $mhei 0 gt{$mhei}{0}ifelse]def/Decode[1 0]
-def end}bd/@B{@gs S @gr F}bd/@b{@cp @B}bd/@sep{CurrentInkName_5(Composite)eq
-{/$ink_5 -1 def}{CurrentInkName_5(Cyan)eq{/$ink_5 0 def}{CurrentInkName_5
-(Magenta)eq{/$ink_5 1 def}{CurrentInkName_5(Yellow)eq{/$ink_5 2 def}{
-CurrentInkName_5(Black)eq{/$ink_5 3 def}{/$ink_5 4 def}ifelse}ifelse}ifelse}
-ifelse}ifelse}bd/@whi{@gs -72000 dup m -72000 72000 l 72000 dup l 72000 -72000
-l @cp 1 SetGry fill @gr}bd/@neg{[{1 exch sub}/exec cvx currenttransfer/exec
-cvx]cvx settransfer @whi}bd/deflevel 0 def/@sax{/deflevel deflevel 1 add def}
-bd/@eax{/deflevel deflevel dup 0 gt{1 sub}if def deflevel 0 gt{/eax load}{eax}
-ifelse}bd/eax{{exec}forall}bd/@rax{deflevel 0 eq{@rs @sv}if}bd/@daq{dup type
-/arraytype eq{{}forall}if}bd/@BMP{/@cc xd UseLevel 3 eq MaskedImage true eq and
-{7 -2 roll pop pop @I_3}{12 index 1 gt UseLevel 2 eq UseLevel 3 eq or and{7 -2
-roll pop pop @I_2}{11 index 1 eq{12 -1 roll pop @i}{7 -2 roll pop pop @I}
-ifelse}ifelse}ifelse}bd systemdict/pdfmark known not{/pdfmark/cleartomark ld}
-if
-/z{exch findfont exch scalefont setfont}bd/ZB{9 dict dup begin 4 1 roll
-/FontType 3 def/FontMatrix xd/FontBBox xd/Encoding 256 array def 0 1 255{
-Encoding exch/.notdef put}for/CharStrings 256 dict def CharStrings/.notdef{}
-put/Metrics 256 dict def Metrics/.notdef 3 -1 roll put/BuildChar{exch dup
-/$char exch/Encoding get 3 index get def dup/Metrics get $char get aload pop
-setcachedevice begin Encoding exch get CharStrings exch get end exec}def end
-definefont pop}bd/ZBAddChar{findfont begin dup 4 1 roll dup 6 1 roll Encoding 3
-1 roll put CharStrings 3 1 roll put Metrics 3 1 roll put end}bd/Z{findfont dup
-maxlength 2 add dict exch dup{1 index/FID ne{3 index 3 1 roll put}{pop pop}
-ifelse}forall pop dup dup/Encoding get 256 array copy dup/$fe xd/Encoding exch
-put dup/Fontname 3 index put 3 -1 roll dup length 0 ne{0 exch{dup type 0 type
-eq{exch pop}{$fe exch 2 index exch put 1 add}ifelse}forall pop}if dup 256 dict
-dup/$met xd/Metrics exch put dup/FontMatrix get 0 get 1000 mul 1 exch div 3
-index length 256 eq{0 1 255{dup $fe exch get dup/.notdef eq{pop pop}{5 index 3
--1 roll get 2 index mul $met 3 1 roll put}ifelse}for}if pop definefont pop pop
-}bd/@ftx{{currentpoint 3 -1 roll(0)dup 3 -1 roll 0 exch put dup @gs true
-charpath $ctm setmatrix @@txt @gr @np stringwidth pop 3 -1 roll add exch m}
-forall}bd/@ft{matrix currentmatrix exch $sdf{$scf $sca $scp @ss}if $fil 1 eq
-{/@@txt/@pf ld @ftx}{$fil 2 eq{/@@txt/@ff ld @ftx}{$fil 3 eq{/@@txt/@Pf ld
-@ftx}{$t $c $m $y $k $n $o @scc_5{show}{pop}ifelse}ifelse}ifelse}ifelse $sdf
-{$dsf $dsa $dsp @ss}if setmatrix}bd/@st{matrix currentmatrix exch $SDF{$SCF
-$SCA $SCP @ss}if $T $C $M $Y $K $N $O @scc_5{{currentpoint 3 -1 roll(0)dup 3 -1
-roll 0 exch put dup @gs true charpath $ctm setmatrix $ptm concat stroke @gr @np
-stringwidth pop 3 -1 roll add exch m}forall}{pop}ifelse $SDF{$dsf $dsa $dsp
-@ss}if setmatrix}bd/@te{@ft}bd/@tr{@st}bd/@ta{dup @gs @ft @gr @st}bd/@t@a{dup
-@gs @st @gr @ft}bd/@tm{@sm concat}bd/e{/t{@te}def}bd/r{/t{@tr}def}bd/o{/t{pop}
-def}bd/a{/t{@ta}def}bd/@a{/t{@t@a}def}bd/t{@te}def/T{@np $ctm setmatrix/$ttm
-matrix def}bd/ddt{t}def/@t{/$stm $stm currentmatrix def 3 1 roll m $ttm concat
-ddt $stm setmatrix}bd/@n{/$ttm exch matrix rotate def}bd/@s{}bd/@l{}bd
-end -%%EndResource
-%%EndProlog
-%%BeginSetup
-wCorel8Dict begin
-@BeginSysCorelDict
-2.6131 setmiterlimit
-1.00 setflat
-/$fst 256 def
-%%EndSetup
-
-%%Page: 1 1
-%LogicalPage: 1
-%%BeginPageSetup
-@sv
-@sm
-@sv
-%%EndPageSetup
-@rax %Note: Object
-29.85335 518.65002 561.80353 728.45660 @E
- 0 O 0 @g
-0.00 0.00 0.00 0.00 k
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 5.66929 5.66929 0.00000 @w
-/$fm 0 def
-295.82872 728.45660 m
-442.32265 728.45660 561.80353 681.33146 561.80353 623.55345 c
-561.80353 565.77458 442.32265 518.65002 295.82872 518.65002 c
-149.33424 518.65002 29.85335 565.77458 29.85335 623.55345 c
-29.85335 681.33146 149.33424 728.45660 295.82872 728.45660 c
-@c
-B
-
-@rax 82.51002 578.66967 509.14658 668.43666 @E
-[0.00028346 0.00000000 0.00000000 0.00028346 82.51001273 578.66964812] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Swis721BlkExBT 437905.00000 z
-%CHAR: 0 0 (B) @t
-157208 78896 m
-243986 78896 l
-263911 78896 276829 80720 282741 84443 c
-288652 88165 291645 94879 291645 104586 c
-291645 114512 288579 121446 282449 125168 c
-276318 128963 263473 130861 243986 130861 c
-157208 130861 L
-157208 78896 L
-@c
-157208 242234 m
-157208 197568 L
-239461 197568 l
-257269 197568 268801 199174 274129 202385 c
-279383 205596 282011 211362 282011 219828 c
-282011 228367 279602 234206 274712 237417 c
-269895 240629 258145 242234 239461 242234 c
-157208 242234 L
-@c
-289090 316240 m
-333246 316240 364556 310183 382875 297994 c
-401194 285806 410317 265589 410317 237345 c
-410317 221799 406741 208224 399661 196473 c
-392509 184796 381999 175308 368205 168083 C
-386451 162244 400172 152683 409441 139546 c
-418710 126336 423381 109914 423381 90208 c
-423381 60139 413528 37587 393896 22552 c
-374190 7517 344631 0 305147 0 c
-34667 0 L
-34667 316240 L
-289090 316240 l
-@c
-F
-%CHAR: 440970 0 (I) @t
-475637 0 m
-475637 316240 L
-598178 316240 L
-598178 0 L
-475637 0 L
-@c
-F
-%CHAR: 632334 0 (R) @t
-907703 316240 m
-935218 316240 957260 314927 973827 312299 c
-990321 309672 1003240 305585 1012509 299965 c
-1024332 293031 1033382 283616 1039586 271866 c
-1045789 260116 1048855 246541 1048855 231141 c
-1048855 212457 1044257 196035 1034988 181877 c
-1025719 167645 1012946 157427 996671 151150 C
-1010611 145311 1020464 138086 1026084 129474 c
-1031703 120862 1034988 105608 1036009 83786 c
-1036155 81377 1036301 78020 1036447 73787 c
-1038418 32405 1043965 9488 1053161 4890 C
-1053161 0 L
-916972 0 L
-912812 6715 910550 19633 910112 38901 c
-909820 50140 909309 58825 908579 64956 c
-907265 76560 903397 84662 896902 89333 c
-890479 94077 879604 96412 864351 96412 c
-791221 96412 L
-791221 0 L
-667001 0 L
-667001 316240 L
-907703 316240 l
-@c
-791221 179614 m
-862599 179614 l
-881283 179614 894493 181804 902083 186256 c
-909747 190635 913542 198079 913542 208443 c
-913542 218734 909966 225886 902740 229973 c
-895515 233987 881137 236031 859607 236031 c
-791221 236031 L
-791221 179614 L
-@c
-F
-%CHAR: 1066298 0 (D) @t
-1223506 238220 m
-1223506 84005 L
-1284448 84005 l
-1316196 84005 1338967 90062 1352688 102105 c
-1366482 114147 1373342 133853 1373342 161222 c
-1373342 188445 1366409 208078 1352469 220120 c
-1338602 232163 1315904 238220 1284448 238220 c
-1223506 238220 L
-@c
-1100965 316678 m
-1303643 316678 l
-1369255 316678 1419176 303176 1453552 276172 c
-1487928 249168 1505079 209756 1505079 158011 c
-1505079 106411 1488001 67145 1453771 40287 c
-1419541 13429 1369547 0 1303643 0 c
-1100965 0 L
-1100965 316678 L
-@c
-F
-T
-@rax %Note: Object
-202.57002 663.60898 462.94894 788.24381 @E
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.21543 0.21543 0.00000 @w
-/$fm 0 def
-260.91354 727.66403 m
-284.90258 722.60872 308.89162 717.55398 332.88066 712.49783 C
-372.47783 785.04321 371.74762 810.24123 462.94894 768.46677 C
-412.01121 767.74422 394.34910 800.57197 337.90961 694.42894 c
-336.72728 692.20375 216.16299 742.15219 202.57002 663.60898 C
-200.58690 726.36633 231.68494 734.82888 260.91354 727.66403 C
-@c
-B
-
-@rax %Note: Object
-17.18787 478.84422 579.89707 569.31194 @E
- 0 O 0 @g
-0.00 0.00 0.00 0.00 k
-/$fm 0 def
-17.18787 569.31194 m
-579.89707 569.31194 L
-579.89707 478.84422 L
-17.18787 478.84422 L
-17.18787 569.31194 L
-@c
-F
-
-@rax %Note: Object
-86.84816 567.50202 504.80901 567.50315 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 5.66929 5.66929 0.00000 @w
-/$fm 0 def
-86.84816 567.50258 m
-504.80901 567.50258 L
-S
-
-@rax %Note: Object
-86.84816 554.44139 504.80901 554.44252 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 5.66929 5.66929 0.00000 @w
-/$fm 0 def
-86.84816 554.44195 m
-504.80901 554.44195 L
-S
-
-@rax %Note: Object
-86.84816 541.70674 504.80901 541.70787 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 5.66929 5.66929 0.00000 @w
-/$fm 0 def
-86.84816 541.70731 m
-504.80901 541.70731 L
-S
-
-%%PageTrailer
-@rs
-@rs
-%%Trailer
-@EndSysCorelDict
-end
-%%DocumentSuppliedResources: procset wCorel8Dict
-%%EOF
diff --git a/doc/slides/obr1.eps b/doc/slides/obr1.eps deleted file mode 100644 index eb467cda..00000000 --- a/doc/slides/obr1.eps +++ /dev/null @@ -1,2539 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0
-%%BoundingBox: 16 42 558 453
-%%Creator: CorelDRAW
-%%Title:
-%%CreationDate: Mon Jun 26 13:55:02 2000
-%%DocumentProcessColors: Black
-%%DocumentSuppliedResources: (atend)
-%%EndComments
-%%BeginProlog
-/AutoFlatness true def
-/AutoSteps 0 def
-/CMYKMarks true def
-/UseLevel2 false def
-%Color profile: Disabled
-%%BeginResource: procset wCorel6Dict 6.0 0
-% Copyright (c)1992-96 Corel Corporation
-% All rights reserved. v6.0 r1.1
-/wCorel6Dict 300 dict def wCorel6Dict begin/bd{bind def}bind def/ld{load def}
-bd/xd{exch def}bd/_ null def/rp{{pop}repeat}bd/@cp/closepath ld/@gs/gsave ld
-/@gr/grestore ld/@np/newpath ld/Tl/translate ld/$sv 0 def/@sv{/$sv save def}bd
-/@rs{$sv restore}bd/spg/showpage ld/showpage{}bd currentscreen/@dsp xd/$dsp
-/@dsp def/$dsa xd/$dsf xd/$sdf false def/$SDF false def/$Scra 0 def/SetScr
-/setscreen ld/setscreen{pop pop pop}bd/@ss{2 index 0 eq{$dsf 3 1 roll 4 -1 roll
-pop}if exch $Scra add exch load SetScr}bd/SepMode_5 where{pop}{/SepMode_5 0
-def}ifelse/CurrentInkName_5 where{pop}{/CurrentInkName_5(Composite)def}ifelse
-/$ink_5 where{pop}{/$ink_5 -1 def}ifelse/$c 0 def/$m 0 def/$y 0 def/$k 0 def
-/$t 1 def/$n _ def/$o 0 def/$fil 0 def/$C 0 def/$M 0 def/$Y 0 def/$K 0 def/$T 1
-def/$N _ def/$O 0 def/$PF false def/s1c 0 def/s1m 0 def/s1y 0 def/s1k 0 def
-/s1t 0 def/s1n _ def/$bkg false def/SK 0 def/SM 0 def/SY 0 def/SC 0 def/$op
-false def matrix currentmatrix/$ctm xd/$ptm matrix def/$ttm matrix def/$stm
-matrix def/$fst 128 def/$pad 0 def/$rox 0 def/$roy 0 def/$fmp 50 def/$ffpnt
-true def/CorelDrawReencodeVect[16#0/grave 16#5/breve 16#6/dotaccent 16#8/ring
-16#A/hungarumlaut 16#B/ogonek 16#C/caron 16#D/dotlessi 16#27/quotesingle
-16#60/grave 16#7C/bar
-16#82/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl
-16#88/circumflex/perthousand/Scaron/guilsinglleft/OE
-16#91/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash/emdash
-16#98/tilde/trademark/scaron/guilsinglright/oe 16#9F/Ydieresis
-16#A1/exclamdown/cent/sterling/currency/yen/brokenbar/section
-16#a8/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/minus/registered/macron
-16#b0/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered
-16#b8/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown
-16#c0/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
-16#c8/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis
-16#d0/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply
-16#d8/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls
-16#e0/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
-16#e8/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
-16#f0/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide
-16#f8/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
-/L2?/languagelevel where{pop languagelevel 2 ge}{false}ifelse def
-/@BeginSysCorelDict{systemdict/Corel30Dict known{systemdict/Corel30Dict get
-exec}if}bd/@EndSysCorelDict{systemdict/Corel30Dict known{end}if}bd AutoFlatness
-{/@ifl{dup currentflat exch sub 10 gt{
-([Error: PathTooComplex; OffendingCommand: AnyPaintingOperator]\n)print flush
-@np exit}{currentflat 2 add setflat}ifelse}bd/@fill/fill ld/fill{currentflat{
-{@fill}stopped{@ifl}{exit}ifelse}bind loop setflat}bd/@eofill/eofill ld/eofill
-{currentflat{{@eofill}stopped{@ifl}{exit}ifelse}bind loop setflat}bd/@clip
-/clip ld/clip{currentflat{{@clip}stopped{@ifl}{exit}ifelse}bind loop setflat}
-bd/@eoclip/eoclip ld/eoclip{currentflat{{@eoclip}stopped{@ifl}{exit}ifelse}
-bind loop setflat}bd/@stroke/stroke ld/stroke{currentflat{{@stroke}stopped
-{@ifl}{exit}ifelse}bind loop setflat}bd}if L2?{/@ssa{true setstrokeadjust}bd}{
-/@ssa{}bd}ifelse/d/setdash ld/j/setlinejoin ld/J/setlinecap ld/M/setmiterlimit
-ld/w/setlinewidth ld/O{/$o xd}bd/R{/$O xd}bd/W/eoclip ld/c/curveto ld/C/c ld/l
-/lineto ld/L/l ld/rl/rlineto ld/m/moveto ld/n/newpath ld/N/newpath ld/P{11 rp}
-bd/u{}bd/U{}bd/A{pop}bd/q/@gs ld/Q/@gr ld/&{}bd/@j{@sv @np}bd/@J{@rs}bd/g{1
-exch sub/$k xd/$c 0 def/$m 0 def/$y 0 def/$t 1 def/$n _ def/$fil 0 def}bd/G{1
-sub neg/$K xd _ 1 0 0 0/$C xd/$M xd/$Y xd/$T xd/$N xd}bd/k{1 index type
-/stringtype eq{/$t xd/$n xd}{/$t 0 def/$n _ def}ifelse/$k xd/$y xd/$m xd/$c xd
-/$fil 0 def}bd/K{1 index type/stringtype eq{/$T xd/$N xd}{/$T 0 def/$N _ def}
-ifelse/$K xd/$Y xd/$M xd/$C xd}bd/x/k ld/X/K ld/sf{1 index type/stringtype eq{
-/s1t xd/s1n xd}{/s1t 0 def/s1n _ def}ifelse/s1k xd/s1y xd/s1m xd/s1c xd}bd/i{
-dup 0 ne{setflat}{pop}ifelse}bd/v{4 -2 roll 2 copy 6 -2 roll c}bd/V/v ld/y{2
-copy c}bd/Y/y ld/@w{matrix rotate/$ptm xd matrix scale $ptm dup concatmatrix
-/$ptm xd 1 eq{$ptm exch dup concatmatrix/$ptm xd}if 1 w}bd/@g{1 eq dup/$sdf xd
-{/$scp xd/$sca xd/$scf xd}if}bd/@G{1 eq dup/$SDF xd{/$SCP xd/$SCA xd/$SCF xd}
-if}bd/@D{2 index 0 eq{$dsf 3 1 roll 4 -1 roll pop}if 3 copy exch $Scra add exch
-load SetScr/$dsp xd/$dsa xd/$dsf xd}bd/$ngx{$SDF{$SCF SepMode_5 0 eq{$SCA}
-{$dsa}ifelse $SCP @ss}if}bd/p{/$pm xd 7 rp/$pyf xd/$pxf xd/$pn xd/$fil 1 def}
-bd/@MN{2 copy le{pop}{exch pop}ifelse}bd/@MX{2 copy ge{pop}{exch pop}ifelse}bd
-/InRange{3 -1 roll @MN @MX}bd/wDstChck{2 1 roll dup 3 -1 roll eq{1 add}if}bd
-/@dot{dup mul exch dup mul add 1 exch sub}bd/@lin{exch pop abs 1 exch sub}bd
-/cmyk2rgb{3{dup 5 -1 roll add 1 exch sub dup 0 lt{pop 0}if exch}repeat pop}bd
-/rgb2cmyk{3{1 exch sub 3 1 roll}repeat 3 copy @MN @MN 3{dup 5 -1 roll sub neg
-exch}repeat}bd/rgb2g{2 index .299 mul 2 index .587 mul add 1 index .114 mul add
-4 1 roll pop pop pop}bd/WaldoColor_5 where{pop}{/SetRgb/setrgbcolor ld/GetRgb
-/currentrgbcolor ld/SetGry/setgray ld/GetGry/currentgray ld/SetRgb2 systemdict
-/setrgbcolor get def/GetRgb2 systemdict/currentrgbcolor get def/SetHsb
-systemdict/sethsbcolor get def/GetHsb systemdict/currenthsbcolor get def
-/rgb2hsb{SetRgb2 GetHsb}bd/hsb2rgb{3 -1 roll dup floor sub 3 1 roll SetHsb
-GetRgb2}bd/setcmykcolor where{pop/SetCmyk_5/setcmykcolor ld}{/SetCmyk_5{
-cmyk2rgb SetRgb}bd}ifelse/currentcmykcolor where{pop/GetCmyk/currentcmykcolor
-ld}{/GetCmyk{GetRgb rgb2cmyk}bd}ifelse/setoverprint where{pop}{/setoverprint{
-/$op xd}bd}ifelse/currentoverprint where{pop}{/currentoverprint{$op}bd}ifelse
-/@tc_5{5 -1 roll dup 1 ge{pop}{4{dup 6 -1 roll mul exch}repeat pop}ifelse}bd
-/@trp{exch pop 5 1 roll @tc_5}bd/setprocesscolor_5{SepMode_5 0 eq{SetCmyk_5}{0
-4 $ink_5 sub index exch pop 5 1 roll pop pop pop pop SepsColor true eq{$ink_5 3
-gt{1 sub neg SetGry}{0 0 0 4 $ink_5 roll SetCmyk_5}ifelse}{1 sub neg SetGry}
-ifelse}ifelse}bd/findcmykcustomcolor where{pop}{/findcmykcustomcolor{5 array
-astore}bd}ifelse/setcustomcolor where{pop}{/setcustomcolor{exch aload pop
-SepMode_5 0 eq{pop @tc_5 setprocesscolor_5}{CurrentInkName_5 eq{4 index}{0}
-ifelse 6 1 roll 5 rp 1 sub neg SetGry}ifelse}bd}ifelse/@scc_5{dup type
-/booleantype eq{setoverprint}{1 eq setoverprint}ifelse dup _ eq{pop
-setprocesscolor_5 pop}{findcmykcustomcolor exch setcustomcolor}ifelse SepMode_5
-0 eq{true}{GetGry 1 eq currentoverprint and not}ifelse}bd/colorimage where{pop
-/ColorImage{colorimage}def}{/ColorImage{/ncolors xd pop/dataaq xd{dataaq
-ncolors dup 3 eq{/$dat xd 0 1 $dat length 3 div 1 sub{dup 3 mul $dat 1 index
-get 255 div $dat 2 index 1 add get 255 div $dat 3 index 2 add get 255 div rgb2g
-255 mul cvi exch pop $dat 3 1 roll put}for $dat 0 $dat length 3 idiv
-getinterval pop}{4 eq{/$dat xd 0 1 $dat length 4 div 1 sub{dup 4 mul $dat 1
-index get 255 div $dat 2 index 1 add get 255 div $dat 3 index 2 add get 255 div
-$dat 4 index 3 add get 255 div cmyk2rgb rgb2g 255 mul cvi exch pop $dat 3 1
-roll put}for $dat 0 $dat length ncolors idiv getinterval}if}ifelse}image}bd
-}ifelse/setcmykcolor{1 5 1 roll _ currentoverprint @scc_5/$ffpnt xd}bd
-/currentcmykcolor{0 0 0 0}bd/setrgbcolor{rgb2cmyk setcmykcolor}bd
-/currentrgbcolor{currentcmykcolor cmyk2rgb}bd/sethsbcolor{hsb2rgb setrgbcolor}
-bd/currenthsbcolor{currentrgbcolor rgb2hsb}bd/setgray{dup dup setrgbcolor}bd
-/currentgray{currentrgbcolor rgb2g}bd}ifelse/WaldoColor_5 true def/@sft{$tllx
-$pxf add dup $tllx gt{$pwid sub}if/$tx xd $tury $pyf sub dup $tury lt{$phei
-add}if/$ty xd}bd/@stb{pathbbox/$ury xd/$urx xd/$lly xd/$llx xd}bd/@ep{{cvx exec
-}forall}bd/@tp{@sv/$in true def 2 copy dup $lly le{/$in false def}if $phei sub
-$ury ge{/$in false def}if dup $urx ge{/$in false def}if $pwid add $llx le{/$in
-false def}if $in{@np 2 copy m $pwid 0 rl 0 $phei neg rl $pwid neg 0 rl 0 $phei
-rl clip @np $pn cvlit load aload pop 7 -1 roll 5 index sub 7 -1 roll 3 index
-sub Tl matrix currentmatrix/$ctm xd @ep pop pop pop pop}{pop pop}ifelse @rs}bd
-/@th{@sft 0 1 $tly 1 sub{dup $psx mul $tx add{dup $llx gt{$pwid sub}{exit}
-ifelse}loop exch $phei mul $ty exch sub 0 1 $tlx 1 sub{$pwid mul 3 copy 3 -1
-roll add exch @tp pop}for pop pop}for}bd/@tv{@sft 0 1 $tlx 1 sub{dup $pwid mul
-$tx add exch $psy mul $ty exch sub{dup $ury lt{$phei add}{exit}ifelse}loop 0 1
-$tly 1 sub{$phei mul 3 copy sub @tp pop}for pop pop}for}bd/@pf{@gs $ctm
-setmatrix $pm concat @stb eoclip Bburx Bbury $pm itransform/$tury xd/$turx xd
-Bbllx Bblly $pm itransform/$tlly xd/$tllx xd/$wid $turx $tllx sub def/$hei
-$tury $tlly sub def @gs $vectpat{1 0 0 0 0 _ $o @scc_5{eofill}if}{$t $c $m $y
-$k $n $o @scc_5{SepMode_5 0 eq $pfrg or{$tllx $tlly Tl $wid $hei scale <00> 8 1
-false[8 0 0 1 0 0]{}imagemask}{/$bkg true def}ifelse}if}ifelse @gr $wid 0 gt
-$hei 0 gt and{$pn cvlit load aload pop/$pd xd 3 -1 roll sub/$phei xd exch sub
-/$pwid xd $wid $pwid div ceiling 1 add/$tlx xd $hei $phei div ceiling 1 add
-/$tly xd $psx 0 eq{@tv}{@th}ifelse}if @gr @np/$bkg false def}bd/@dlt_hsb{$fco
-nff ge{/$fco nff 1 sub def}if sub neg 2 div dup $fco div/kdb xd nff $fco sub
-div/kdb2 xd sub neg 2 div dup $fco div/kds xd nff $fco sub div/kds2 xd sub neg
-dup 0 eq{pop $frb 2 eq{.99}{-.99}ifelse}if dup $frb 2 eq exch 0 lt and{1 add}
-if dup $frb 1 eq exch 0 gt and{1 sub}if 2 div dup $fco div/kdh xd nff $fco sub
-div/kdh2 xd}bd/@dlt_cmyk{$fmp 50 eq{sub neg nff dup 1 gt{1 sub}if div/$dk xd
-sub neg nff dup 1 gt{1 sub}if div/$dy xd sub neg nff dup 1 gt{1 sub}if div/$dm
-xd sub neg nff dup 1 gt{1 sub}if div/$dc xd sub neg nff dup 1 gt{1 sub}if div
-/$dt xd}{$fco nff ge{/$fco nff 1 sub def}if sub neg 2 div dup $fco div/$dk xd
-nff $fco sub div/$dk2 xd sub neg 2 div dup $fco div/$dy xd nff $fco sub div
-/$dy2 xd sub neg 2 div dup $fco div/$dm xd nff $fco sub div/$dm2 xd sub neg 2
-div dup $fco div/$dc xd nff $fco sub div/$dc2 xd sub neg 2 div dup $fco div
-/$dt xd nff $fco sub div/$dt2 xd}ifelse}bd/@dlt{$fse $fss sub dup/nff xd $fmp
-mul $fmp add 100 div round cvi dup 0 le{pop 1}if/$fco xd/$fi 0 def $frb dup 1
-eq exch 2 eq or{$frt dup $frc $frm $fry $frk @tc_5 4 copy cmyk2rgb rgb2hsb 3
-copy/myb xd/mys xd/myh xd $tot $toc $tom $toy $tok @tc_5 cmyk2rgb rgb2hsb 3 1
-roll 4 1 roll 5 1 roll @dlt_hsb}{$frt dup $frc $frm $fry $frk @tc_5 5 copy $tot
-dup $toc $tom $toy $tok @tc_5 5 1 roll 6 1 roll 7 1 roll 8 1 roll 9 1 roll
-@dlt_cmyk}ifelse}bd/@ffnxt{/$fi $fi 1 add def $frb dup 1 eq exch 2 eq or{pop
-pop pop pop myh mys myb $fi $fco lt{kdb add 3 1 roll kds add 3 1 roll kdh add 3
-1 roll}{kdb2 add 3 1 roll kds2 add 3 1 roll kdh2 add 3 1 roll}ifelse 3 copy
-/myb xd/mys xd/myh xd hsb2rgb rgb2cmyk}{$fi $fco lt $fmp 50 eq or{$dk add 5 1
-roll $dy add 5 1 roll $dm add 5 1 roll $dc add 5 1 roll $dt add 5 1 roll}{$dk2
-add 5 1 roll $dy2 add 5 1 roll $dm2 add 5 1 roll $dc2 add 5 1 roll $dt2 add 5 1
-roll}ifelse}ifelse}bd/ffcol{5 copy $fsit 0 eq{setcmykcolor pop}{SepMode_5 0 ne
-{$frn findcmykcustomcolor exch setcustomcolor}{pop pop pop pop $frc $frm $fry
-$frk $frn findcmykcustomcolor exch setcustomcolor}ifelse}ifelse}bd/@ftl{1 index
-4 index sub dup $pad mul dup/$pdw xd 2 mul sub $fst div/$wid xd 2 index sub
-/$hei xd pop Tl @dlt $fss 0 eq{ffcol n 0 0 m 0 $hei l $pdw $hei l $pdw 0 l @cp
-$ffpnt{fill}{@np}ifelse}if $fss $wid mul $pdw add 0 Tl nff{ffcol n 0 0 m 0 $hei
-l $wid $hei l $wid 0 l @cp $ffpnt{fill}{@np}ifelse $wid 0 Tl @ffnxt}repeat 5 rp
-$tot dup $toc $tom $toy $tok @tc_5 ffcol n 0 0 m 0 $hei l $pdw $hei l $pdw 0 l
-@cp $ffpnt{fill}{@np}ifelse 5 rp}bd/@ftrs{1 index 4 index sub dup $rox mul
-/$row xd 2 div 1 index 4 index sub dup $roy mul/$roh xd 2 div 2 copy dup mul
-exch dup mul add sqrt $row dup mul $roh dup mul add sqrt add dup/$hei xd $fst
-div/$wid xd 4 index add $roh add exch 5 index add $row add exch Tl $fan rotate
-pop pop pop pop @dlt $fss 0 eq{ffcol $fty 3 eq{$hei dup neg dup m 2 mul @sqr}{
-0 0 m 0 0 $hei 0 360 arc}ifelse $ffpnt{fill}{@np}ifelse}if 1.0 $pad 2 mul sub
-dup scale $hei $fss $wid mul sub/$hei xd nff{ffcol $fty 3 eq{n $hei dup neg dup
-m 2 mul @sqr}{n 0 0 m 0 0 $hei 0 360 arc}ifelse $ffpnt{fill}{@np}ifelse/$hei
-$hei $wid sub def @ffnxt}repeat 5 rp}bd/@ftc{1 index 4 index sub dup $rox mul
-/$row xd 2 div 1 index 4 index sub dup $roy mul/$roh xd 2 div 2 copy dup mul
-exch dup mul add sqrt $row dup mul $roh dup mul add sqrt add dup/$hei xd $fst
-div/$wid xd 4 index add $roh add exch 5 index add $row add exch Tl pop pop pop
-pop @dlt $fss 0 eq{ffcol $ffpnt{fill}{@np}ifelse}{n}ifelse/$dang 180 $fst 1 sub
-div def/$sang $dang -2 div 180 add def/$eang $dang 2 div 180 add def/$sang
-$sang $dang $fss mul add def/$eang $eang $dang $fss mul add def/$sang $eang
-$dang sub def nff{ffcol n 0 0 m 0 0 $hei $sang $fan add $eang $fan add arc
-$ffpnt{fill}{@np}ifelse 0 0 m 0 0 $hei $eang neg $fan add $sang neg $fan add
-arc $ffpnt{fill}{@np}ifelse/$sang $eang def/$eang $eang $dang add def @ffnxt}
-repeat 5 rp}bd/@fstAdjust{72 0 matrix defaultmatrix dtransform exch dup mul
-exch dup mul add sqrt currentscreen pop pop div dup mul 1 add cvi 2 256 InRange
-$fsc 1 sub dup 0 le{pop 1}if mul/opt$fst xd AutoSteps dup 1 eq exch 3 eq or{
-opt$fst dup dup $fst dup 3 1 roll div exch 3 -1 roll gt{/$adj xd/$fst xd}{pop
-pop}ifelse}if AutoSteps dup 2 eq exch 3 eq or{opt$fst dup dup $fst dup 3 1 roll
-div exch 3 -1 roll lt{/$adj xd/$fst xd}{pop pop}ifelse}if}bd/@ff{/old$fst $fst
-def/$adj 1 def/$fss 0 def $o 1 eq setoverprint AutoSteps 0 gt{@fstAdjust}if 1 1
-$fsc 1 sub{dup 1 sub $fsit 0 eq{$fsa exch 5 mul 5 getinterval aload pop pop
-/$frk xd/$fry xd/$frm xd/$frc xd/$frn _ def/$frt 1 def $fsa exch 5 mul 5
-getinterval aload pop $adj mul cvi $fss add/$fse xd/$tok xd/$toy xd/$tom xd
-/$toc xd/$ton _ def/$tot 1 def}{$fsa exch 7 mul 7 getinterval aload pop pop
-/$frt xd/$frn xd/$frk xd/$fry xd/$frm xd/$frc xd $fsa exch 7 mul 7 getinterval
-aload pop $adj mul cvi $fss add/$fse xd/$tot xd/$ton xd/$tok xd/$toy xd/$tom xd
-/$toc xd}ifelse $fsit 0 eq SepMode_5 0 eq or dup not CurrentInkName_5 $frn eq
-and or{@sv $ctm setmatrix eoclip Bbllx Bblly Bburx Bbury $fty 2 eq{@ftc}{1
-index 3 index m 2 copy l 3 index 1 index l 3 index 3 index l @cp $fty dup 1 eq
-exch 3 eq or{@ftrs}{pop pop pop pop $fan rotate pathbbox @ftl}ifelse}ifelse @rs
-/$fss $fse def}{1 0 0 0 0 _ $o @scc_5{fill}if}ifelse}for @np/$fst old$fst def}
-bd/@Pf{@sv SepMode_5 0 eq $Psc 0 ne or $ink_5 3 eq or{0 J 0 j[]0 d $t $c $m $y
-$k $n $o @scc_5 pop $ctm setmatrix 72 1000 div dup matrix scale dup concat dup
-Bburx exch Bbury exch itransform ceiling cvi/Bbury xd ceiling cvi/Bburx xd
-Bbllx exch Bblly exch itransform floor cvi/Bblly xd floor cvi/Bbllx xd $Prm
-aload pop $Psn load exec}{1 SetGry eofill}ifelse @rs @np}bd/F{matrix
-currentmatrix $sdf{$scf $sca $scp @ss}if $fil 1 eq{@pf}{$fil 2 eq{@ff}{$fil 3
-eq{@Pf}{$t $c $m $y $k $n $o @scc_5{eofill}{@np}ifelse}ifelse}ifelse}ifelse
-$sdf{$dsf $dsa $dsp @ss}if setmatrix}bd/f{@cp F}bd/S{matrix currentmatrix $ctm
-setmatrix $SDF{$SCF $SCA $SCP @ss}if $T $C $M $Y $K $N $O @scc_5{matrix
-currentmatrix $ptm concat stroke setmatrix}{@np}ifelse $SDF{$dsf $dsa $dsp
-@ss}if setmatrix}bd/s{@cp S}bd/B{@gs F @gr S}bd/b{@cp B}bd/_E{5 array astore
-exch cvlit xd}bd/@cc{currentfile $dat readhexstring pop}bd/@sm{/$ctm $ctm
-currentmatrix def}bd/@E{/Bbury xd/Bburx xd/Bblly xd/Bbllx xd}bd/@c{@cp}bd/@p{
-/$fil 1 def 1 eq dup/$vectpat xd{/$pfrg true def}{@gs $t $c $m $y $k $n $o
-@scc_5/$pfrg xd @gr}ifelse/$pm xd/$psy xd/$psx xd/$pyf xd/$pxf xd/$pn xd}bd/@P
-{/$fil 3 def/$Psn xd/$Psc xd array astore/$Prm xd}bd/@k{/$fil 2 def/$fmp xd
-/$roy xd/$rox xd/$pad xd/$fty xd/$fan xd $fty 1 eq{/$fan 0 def}if/$frb xd/$fst
-xd/$fsc xd/$fsa xd/$fsit 0 def}bd/@x{/$fil 2 def/$fmp xd/$roy xd/$rox xd/$pad
-xd/$fty xd/$fan xd $fty 1 eq{/$fan 0 def}if/$frb xd/$fst xd/$fsc xd/$fsa xd
-/$fsit 1 def}bd/@ii{concat 3 index 3 index m 3 index 1 index l 2 copy l 1 index
-3 index l 3 index 3 index l clip pop pop pop pop}bd/tcc{@cc}def/@i{@sm @gs @ii
-6 index 1 ne{/$frg true def pop pop}{1 eq{s1t s1c s1m s1y s1k s1n $O @scc_5
-/$frg xd}{/$frg false def}ifelse 1 eq{@gs $ctm setmatrix F @gr}if}ifelse @np
-/$ury xd/$urx xd/$lly xd/$llx xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul 8
-div ceiling cvi string def $bkg $frg or{$SDF{$SCF $SCA $SCP @ss}if $llx $lly Tl
-$urx $llx sub $ury $lly sub scale $bkg{$t $c $m $y $k $n $o @scc_5 pop}if $wid
-$hei abs $bts 1 eq{$bkg}{$bts}ifelse[$wid 0 0 $hei neg 0 $hei 0
-gt{$hei}{0}ifelse]/tcc load $bts 1 eq{imagemask}{image}ifelse $SDF{$dsf $dsa
-$dsp @ss}if}{$hei abs{tcc pop}repeat}ifelse @gr $ctm setmatrix}bd/@I{@sm @gs
-@ii @np/$ury xd/$urx xd/$lly xd/$llx xd/$ncl xd/$bts xd/$hei xd/$wid xd/$dat
-$wid $bts mul $ncl mul 8 div ceiling cvi string def $ngx $llx $lly Tl $urx $llx
-sub $ury $lly sub scale $wid $hei abs $bts[$wid 0 0 $hei neg 0 $hei 0
-gt{$hei}{0}ifelse]/@cc load false $ncl ColorImage $SDF{$dsf $dsa $dsp @ss}if
-@gr $ctm setmatrix}bd L2?{/@I_2{@sm @gs @ii @np/$ury xd/$urx xd/$lly xd/$llx xd
-/$ncl xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul $ncl mul 8 div ceiling cvi
-string def $ngx $ncl 1 eq{/DeviceGray}{$ncl 3 eq{/DeviceRGB}{/DeviceCMYK}
-ifelse}ifelse setcolorspace $llx $lly Tl $urx $llx sub $ury $lly sub scale 8
-dict begin/ImageType 1 def/Width $wid def/Height $hei abs def/BitsPerComponent
-$bts def/Decode $ncl 1 eq{[0 1]}{$ncl 3 eq{[0 1 0 1 0 1]}{[0 1 0 1 0 1 0 1]}
-ifelse}ifelse def/ImageMatrix[$wid 0 0 $hei neg 0 $hei 0 gt{$hei}{0}ifelse]def
-/DataSource currentfile/ASCII85Decode filter def currentdict end image $SDF
-{$dsf $dsa $dsp @ss}if @gr $ctm setmatrix}bd}{/@I_2{}bd}ifelse/z{exch findfont
-exch scalefont setfont}bd/ZB{9 dict dup begin 4 1 roll/FontType 3 def
-/FontMatrix xd/FontBBox xd/Encoding 256 array def 0 1 255{Encoding exch
-/.notdef put}for/CharStrings 256 dict def CharStrings/.notdef{}put/Metrics 256
-dict def Metrics/.notdef 3 -1 roll put/BuildChar{exch dup/$char exch/Encoding
-get 3 index get def dup/Metrics get $char get aload pop setcachedevice begin
-Encoding exch get CharStrings exch get end exec}def end definefont pop}bd
-/ZBAddChar{findfont begin dup 4 1 roll dup 6 1 roll Encoding 3 1 roll put
-CharStrings 3 1 roll put Metrics 3 1 roll put end}bd/Z{findfont dup maxlength 2
-add dict exch dup{1 index/FID ne{3 index 3 1 roll put}{pop pop}ifelse}forall
-pop dup dup/Encoding get 256 array copy dup/$fe xd/Encoding exch put dup
-/Fontname 3 index put 3 -1 roll dup length 0 ne{0 exch{dup type 0 type eq{exch
-pop}{$fe exch 2 index exch put 1 add}ifelse}forall pop}if dup 256 dict dup
-/$met xd/Metrics exch put dup/FontMatrix get 0 get 1000 mul 1 exch div 3 index
-length 256 eq{0 1 255{dup $fe exch get dup/.notdef eq{pop pop}{5 index 3 -1
-roll get 2 index mul $met 3 1 roll put}ifelse}for}if pop definefont pop pop}bd
-/@ftx{{currentpoint 3 -1 roll(0)dup 3 -1 roll 0 exch put dup @gs true charpath
-$ctm setmatrix @@txt @gr @np stringwidth pop 3 -1 roll add exch m}forall}bd
-/@ft{matrix currentmatrix exch $sdf{$scf $sca $scp @ss}if $fil 1 eq{/@@txt/@pf
-ld @ftx}{$fil 2 eq{/@@txt/@ff ld @ftx}{$fil 3 eq{/@@txt/@Pf ld @ftx}{$t $c $m
-$y $k $n $o @scc_5{show}{pop}ifelse}ifelse}ifelse}ifelse $sdf{$dsf $dsa $dsp
-@ss}if setmatrix}bd/@st{matrix currentmatrix exch $SDF{$SCF $SCA $SCP @ss}if $T
-$C $M $Y $K $N $O @scc_5{{currentpoint 3 -1 roll(0)dup 3 -1 roll 0 exch put dup
-@gs true charpath $ctm setmatrix $ptm concat stroke @gr @np stringwidth pop 3
--1 roll add exch m}forall}{pop}ifelse $SDF{$dsf $dsa $dsp @ss}if setmatrix}bd
-/@te{@ft}bd/@tr{@st}bd/@ta{dup @gs @ft @gr @st}bd/@t@a{dup @gs @st @gr @ft}bd
-/@tm{@sm concat}bd/e{/t{@te}def}bd/r{/t{@tr}def}bd/o{/t{pop}def}bd/a{/t{@ta}
-def}bd/@a{/t{@t@a}def}bd/t{@te}def/T{@np $ctm setmatrix/$ttm matrix def}bd/ddt
-{t}def/@t{/$stm $stm currentmatrix def 3 1 roll m $ttm concat ddt $stm
-setmatrix}bd/@n{/$ttm exch matrix rotate def}bd/@s{}bd/@l{}bd/@B{@gs S @gr F}
-bd/@b{@cp @B}bd/@sep{CurrentInkName_5(Composite)eq{/$ink_5 -1 def}{
-CurrentInkName_5(Cyan)eq{/$ink_5 0 def}{CurrentInkName_5(Magenta)eq{/$ink_5 1
-def}{CurrentInkName_5(Yellow)eq{/$ink_5 2 def}{CurrentInkName_5(Black)eq
-{/$ink_5 3 def}{/$ink_5 4 def}ifelse}ifelse}ifelse}ifelse}ifelse}bd/@whi{@gs
--72000 dup m -72000 72000 l 72000 dup l 72000 -72000 l @cp 1 SetGry fill @gr}
-bd/@neg{[{1 exch sub}/exec cvx currenttransfer/exec cvx]cvx settransfer @whi}
-bd/currentscale{1 0 dtransform matrix defaultmatrix idtransform dup mul exch
-dup mul add sqrt 0 1 dtransform matrix defaultmatrix idtransform dup mul exch
-dup mul add sqrt}bd/@unscale{}bd/@smc{CMYKMarks{0 exch eq{1 1 1 1 1 _ 0 @scc_5
-pop}{1 0 0 0 0 _ 0 @scc_5 pop}ifelse}{SetGry}ifelse}bd/@gmc{CMYKMarks{GetCmyk
-pop pop pop 1 eq{0}{1}ifelse}{GetGry}ifelse}bd/@sqr{dup 0 rl dup 0 exch rl neg
-0 rl @cp}bd/corelsym{@gs @np Tl -90 rotate 7{45 rotate -.75 2 m 1.5 @sqr fill}
-repeat @gr}bd/@reg_cor{@gs @np Tl -6 -6 m 12 @sqr @gs 1 @gmc sub @smc fill @gr
-4{90 rotate 0 4 m 0 4 rl}repeat stroke 0 0 corelsym @gr}bd/@reg_std{@gs @np Tl
-.3 w 0 0 5 0 360 arc @cp @gs 1 @gmc sub @smc fill @gr 4{90 rotate 0 0 m 0 8 rl
-}repeat stroke @gr}bd/@reg_inv{@gs @np Tl .3 w 0 0 5 0 360 arc @cp @gs 1 @gmc
-sub @smc fill @gr 4{90 rotate 0 0 m 0 8 rl}repeat stroke 0 0 m 0 0 5 90 180 arc
-@cp 0 0 5 270 360 arc @cp fill @gr}bd/@reg_sqr{@gs @np Tl .3 w -7 -7 m 14 @sqr
-fill @gs 1 @gmc sub @smc 0 0 5 0 360 arc @cp save fill restore 4{90 rotate 0 0
-m 0 8 rl}repeat stroke @gr 4{90 rotate 0 0 m 0 5 rl}repeat stroke @gr}bd
-/@reg_lng{@gs @np 0 eq{/$Xlen 16 def/$Ylen 8 def}{/$Xlen 8 def/$Ylen 16 def}
-ifelse Tl .3 w 0 0 5 0 360 arc @cp @gs 1 @gmc sub @smc fill @gr 90 rotate 0 0 m
-0 $Xlen rl 90 rotate 0 0 m 0 $Ylen rl 90 rotate 0 0 m 0 $Xlen rl 90 rotate 0 0
-m 0 $Ylen rl stroke @gr}bd/@setdcol{0 $dcol eq{0 exch 1 exch sub 0 0 0 _ 0
-@scc_5 pop}{1 $dcol eq{0 exch 0 exch 1 exch sub 0 0 _ 0 @scc_5 pop}{2 $dcol eq
-{0 exch 0 exch 0 exch 1 exch sub 0 _ 0 @scc_5 pop}{SetGry}ifelse}ifelse}ifelse
-}bd/$corelmeter[1 .95 .75 .50 .25 .05 0]def/@colormeter{@gs @np 0 @setdcol 0.3
-w/Courier findfont 5 scalefont setfont/yy xd/xx xd 0 1 6{dup xx 20 sub yy m 20
-@sqr @gs $corelmeter exch get dup @setdcol fill @gr stroke xx 18 sub yy 2 add m
-exch dup 3 ge{1 SetGry}{0 @setdcol}ifelse 3 eq{pop}{100 mul 100 exch sub cvi 20
-string cvs show}ifelse/yy yy 20 add def}for @gr}bd/@calbar{@gs Tl @gs @np 0 0 m
-@gs 20 @sqr 1 1 0 0 0 _ 0 @scc_5 pop fill @gr 20 0 Tl 0 0 m @gs 20 @sqr 1 1 0 1
-0 _ 0 @scc_5 pop fill @gr 20 0 Tl 0 0 m @gs 20 @sqr 1 0 0 1 0 _ 0 @scc_5 pop
-fill @gr 20 0 Tl 0 0 m @gs 20 @sqr 1 0 1 1 0 _ 0 @scc_5 pop fill @gr 20 0 Tl 0
-0 m @gs 20 @sqr 1 0 1 0 0 _ 0 @scc_5 pop fill @gr 20 0 Tl 0 0 m @gs 20 @sqr 1 1
-1 0 0 _ 0 @scc_5 pop fill @gr 20 0 Tl 0 0 m @gs 20 @sqr 1 1 1 1 0 _ 0 @scc_5
-pop fill @gr @gr @np -84 0 Tl @gs 0 0 m 20 @sqr clip 1 1 0 0 0 _ 0 @scc_5 pop
-@gain @gr 20 0 Tl @gs 0 0 m 20 @sqr clip 1 0 1 0 0 _ 0 @scc_5 pop @gain @gr 20
-0 Tl @gs 0 0 m 20 @sqr clip 1 0 0 1 0 _ 0 @scc_5 pop @gain @gr 20 0 Tl @gs 0 0
-m 20 @sqr clip 1 0 0 0 1 _ 0 @scc_5 pop @gain @gr @gr}bd/@gain{10 10 Tl @np 0 0
-m 0 10 360{0 0 15 4 -1 roll dup 5 add arc @cp}for fill}bd/@crop{@gs 10 div
-/$croplen xd .3 w 0 @smc Tl rotate 0 0 m 0 $croplen neg rl stroke @gr}bd
-/deflevel 0 def/@sax{/deflevel deflevel 1 add def}bd/@eax{/deflevel deflevel
-dup 0 gt{1 sub}if def deflevel 0 gt{/eax load}{eax}ifelse}bd/eax{{exec}forall}
-bd/@rax{deflevel 0 eq{@rs @sv}if}bd/@daq{dup type/arraytype eq{{}forall}if}bd
-/@BMP{/@cc xd 12 index 1 gt UseLevel2 true eq and{7 -2 roll pop pop @I_2}{11
-index 1 eq{12 -1 roll pop @i}{7 -2 roll pop pop @I}ifelse}ifelse}bd systemdict
-/pdfmark known not{/pdfmark/cleartomark ld}if/@BeginEPS{$ngx 0 SetGry 0 J 0 j 1
-w[]0 d 10 M false setoverprint @np/EPSDict 200 dict def EPSDict begin @sv
-SepMode_5 0 ne{/colorimage{@gs/sepdict 50 dict def sepdict begin[{1 exch sub}
-/exec cvx currenttransfer/exec cvx]cvx settransfer 3 eq/$rgb xd{$rgb{/daq0 xd
-/daq1 xd/daq2 xd/daq_rgb load}{/daq0 xd/daq1 xd/daq2 xd/daq3 xd/daq_cmyk load}
-ifelse}{/daq0 xd/daq_one load}ifelse 2 index 8 eq/8bit xd $ink_5 dup 0 lt exch
-3 gt or{}{image}ifelse end @gr}bd/2cmyk{3{255 exch sub 3 1 roll}repeat 3 copy
-@MN @MN 3{dup 5 -1 roll sub neg exch}repeat}bd/daq_rgb{/i 0 def/daq2 load exec
-/daq1 load exec/daq0 load exec dup dup length 0 exch getinterval/$data xd{8bit
-{1 index i get 3 index i get 2cmyk 4 $ink_5 neg roll pop pop pop}{pop 0}ifelse
-$data i 3 -1 roll put/i i 1 add def}forall pop pop $data}bd/daq_cmyk{/daq3 load
-exec/daq2 load exec/daq1 load exec/daq0 load exec 4 $ink_5 neg roll pop pop pop
-}bd/daq_one{/$in 0 def/$out 0 def/daq0 load exec dup dup length $rgb{3}{4}
-ifelse idiv 0 exch getinterval/$data xd $data{pop 8bit{$rgb{0 index $in 2 add
-get 1 index $in 1 add get 2 index $in get 2cmyk}{0 index $in get 1 index $in 1
-add get 2 index $in 2 add get 3 index $in 3 add get}ifelse 4 $ink_5 neg roll
-pop pop pop}{0}ifelse $data $out 3 -1 roll put/$in $in $rgb{3}{4}ifelse add def
-/$out $out 1 add def}forall pop $data}bd}if}bd/@EndEPS{@rs end}bd end
-%%EndResource
-%%EndProlog
-%%BeginSetup
-wCorel6Dict begin
-@BeginSysCorelDict
-2.6131 setmiterlimit
-1.00 setflat
-/$fst 128 def
-%%EndSetup
-
-%%Page: 1 1
-%LogicalPage: 1
-%%BeginPageSetup
-@sv
-@sm
-@sv
-%%EndPageSetup
-@rax %Note: Object
-83.97014 259.95969 114.68438 290.67392 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-99.32712 290.67392 m
-107.78542 290.67392 114.68438 283.77496 114.68438 275.31666 c
-114.68438 266.85836 107.78542 259.95969 99.32712 259.95969 c
-90.86882 259.95969 83.97014 266.85836 83.97014 275.31666 c
-83.97014 283.77496 90.86882 290.67392 99.32712 290.67392 c
-@c
-S
-
-@rax %Note: Object
-279.32825 232.53874 310.04277 263.25326 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-294.68551 263.25326 m
-303.14381 263.25326 310.04277 256.35430 310.04277 247.89600 c
-310.04277 239.43770 303.14381 232.53874 294.68551 232.53874 c
-286.22721 232.53874 279.32825 239.43770 279.32825 247.89600 c
-279.32825 256.35430 286.22721 263.25326 294.68551 263.25326 c
-@c
-S
-
-@rax %Note: Object
-230.18513 281.09282 260.89937 311.80706 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-245.54239 311.80706 m
-254.00069 311.80706 260.89937 304.90838 260.89937 296.45008 c
-260.89937 287.99178 254.00069 281.09282 245.54239 281.09282 c
-237.08409 281.09282 230.18513 287.99178 230.18513 296.45008 c
-230.18513 304.90838 237.08409 311.80706 245.54239 311.80706 c
-@c
-S
-
-@rax %Note: Object
-65.86441 334.92841 196.39956 420.47603 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-131.13213 420.47603 m
-167.07997 420.47603 196.39956 401.26110 196.39956 377.70208 c
-196.39956 354.14334 167.07997 334.92841 131.13213 334.92841 c
-95.18372 334.92841 65.86441 354.14334 65.86441 377.70208 c
-65.86441 401.26110 95.18372 420.47603 131.13213 420.47603 c
-@c
-S
-
-@rax %Note: Object
-18.25739 132.23424 148.79254 217.78186 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-83.52510 217.78186 m
-119.47323 217.78186 148.79254 198.56693 148.79254 175.00791 c
-148.79254 151.44917 119.47323 132.23424 83.52510 132.23424 c
-47.57698 132.23424 18.25739 151.44917 18.25739 175.00791 c
-18.25739 198.56693 47.57698 217.78186 83.52510 217.78186 c
-@c
-S
-
-@rax %Note: Object
-358.41742 313.34910 488.95257 398.89672 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-423.68513 398.89672 m
-459.63298 398.89672 488.95257 379.68180 488.95257 356.12277 c
-488.95257 332.56375 459.63298 313.34910 423.68513 313.34910 c
-387.73672 313.34910 358.41742 332.56375 358.41742 356.12277 c
-358.41742 379.68180 387.73672 398.89672 423.68513 398.89672 c
-@c
-S
-
-@rax %Note: Object
-42.92561 103.02831 63.38098 123.48369 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-46.98283 123.48369 m
-63.38098 119.42646 L
-59.32375 103.02831 L
-42.92561 107.08554 L
-46.98283 123.48369 L
-@c
-S
-
-@rax %Note: Object
-54.59528 121.55641 58.20066 136.12791 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-54.59528 121.55641 m
-58.20066 136.12791 L
-S
-
-@rax %Note: Object
-62.18079 416.13307 85.60488 439.55717 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-85.60488 425.49761 m
-71.54532 416.13307 L
-62.18079 430.19263 L
-76.24035 439.55717 L
-85.60488 425.49761 L
-@c
-S
-
-@rax %Note: Object
-79.04551 408.68646 87.36690 421.17987 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-79.04551 421.17987 m
-87.36690 408.68646 L
-S
-
-@rax %Note: Object
-111.04526 103.96715 132.91540 125.83729 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-111.04526 119.70907 m
-126.78718 125.83729 L
-132.91540 110.09537 L
-117.17348 103.96715 L
-111.04526 119.70907 L
-@c
-S
-
-@rax %Note: Object
-112.93285 122.51820 118.37849 136.50661 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-118.37849 122.51820 m
-112.93285 136.50661 L
-S
-
-@rax %Note: Object
-77.10151 100.53014 93.99402 117.42293 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-77.10151 117.42293 m
-93.99402 117.42293 L
-93.99402 100.53014 L
-77.10151 100.53014 L
-77.10151 117.42293 L
-@c
-S
-
-@rax %Note: Object
-84.95348 117.38041 84.95461 132.39128 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-84.95405 117.38041 m
-84.95405 132.39128 L
-S
-
-@rax %Note: Object
-100.99531 431.86224 121.27776 452.14441 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-121.27776 435.69156 m
-104.82463 431.86224 L
-100.99531 448.31509 L
-117.44844 452.14441 L
-121.27776 435.69156 L
-@c
-S
-
-@rax %Note: Object
-113.61997 419.33254 117.02268 433.95307 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-113.61997 433.95307 m
-117.02268 419.33254 L
-S
-
-@rax %Note: Object
-144.97342 431.85288 165.03959 451.91906 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-161.48863 431.85288 m
-144.97342 435.40384 L
-148.52438 451.91906 L
-165.03959 448.36809 L
-161.48863 431.85288 L
-@c
-S
-
-@rax %Note: Object
-150.66510 418.86964 153.82063 433.54517 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-153.82063 433.54517 m
-150.66510 418.86964 L
-S
-
-@rax %Note: Object
-180.05528 414.07427 203.45272 437.47172 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-194.16699 414.07427 m
-180.05528 423.36028 L
-189.34101 437.47172 L
-203.45272 428.18598 L
-194.16699 414.07427 L
-@c
-S
-
-@rax %Note: Object
-179.37921 405.88668 187.63058 418.42658 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-187.63058 418.42658 m
-179.37921 405.88668 L
-S
-
-@rax %Note: Object
-459.08447 400.93455 481.57483 423.42491 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-474.35811 400.93455 m
-459.08447 408.15156 L
-466.30148 423.42491 L
-481.57483 416.20791 L
-474.35811 400.93455 L
-@c
-S
-
-@rax %Note: Object
-460.86321 390.75562 467.27631 404.32791 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-467.27631 404.32791 m
-460.86321 390.75562 L
-S
-
-@rax %Note: Object
-407.76208 412.44350 426.30180 430.98293 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-426.30180 414.17972 m
-409.49830 412.44350 L
-407.76208 429.24671 L
-424.56557 430.98293 L
-426.30180 414.17972 L
-@c
-S
-
-@rax %Note: Object
-418.48639 398.48343 420.02901 413.41493 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-418.48639 413.41493 m
-420.02901 398.48343 L
-S
-
-@rax %Note: Object
-499.01301 362.19969 520.42876 383.61543 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-504.42718 362.19969 m
-499.01301 378.20098 L
-515.01430 383.61543 L
-520.42876 367.61386 L
-504.42718 362.19969 L
-@c
-S
-
-@rax %Note: Object
-487.73169 364.84044 501.95083 369.65169 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-501.95083 369.65169 m
-487.73169 364.84044 L
-S
-
-@rax %Note: Object
-184.11392 307.48762 233.84268 353.20224 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-184.11392 353.20224 m
-233.84268 307.48762 L
-S
-
-@rax %Note: Object
-255.22157 256.54649 281.77880 284.62989 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-255.22157 284.62989 m
-281.77880 256.54649 L
-S
-
-@rax %Note: Object
-259.40409 303.75553 363.04441 339.20787 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-259.40409 303.75553 m
-363.04441 339.20787 L
-S
-
-@rax %Note: Object
-304.48517 259.90696 373.26898 328.01244 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-304.48517 259.90696 m
-373.26898 328.01244 L
-S
-
-@rax %Note: Object
-97.20510 216.99099 97.66998 260.37326 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-97.66998 260.37326 m
-97.20510 216.99099 L
-S
-
-@rax %Note: Object
-99.52894 291.16063 111.61247 336.87553 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-99.52894 291.16063 m
-111.61247 336.87553 L
-S
-
-@rax 298.00573 52.50643 381.29613 176.63839 @E
-[0.00028346 0.00000000 0.00000000 0.00028346 304.50528020 174.93193061] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 63499.00000 z
-%CHAR: 0 -57480 (1) @t
-23657 -57480 m
-18073 -57480 L
-18073 -21918 L
-16729 -23198 14961 -24486 12785 -25767 c
-10609 -27047 8640 -28007 6912 -28647 C
-6912 -23254 L
-10032 -21790 12761 -20006 15097 -17926 c
-17433 -15838 19089 -13806 20057 -11846 C
-23657 -11846 L
-23657 -57480 L
-@c
-F
-%CHAR: 133264 -57480 (c) @t
-158937 -45415 m
-164417 -46135 L
-163825 -49912 162281 -52880 159817 -55016 c
-157353 -57160 154313 -58232 150713 -58232 c
-146217 -58232 142592 -56760 139856 -53816 c
-137120 -50872 135744 -46639 135744 -41143 c
-135744 -37591 136336 -34479 137504 -31815 c
-138680 -29151 140480 -27143 142880 -25815 c
-145289 -24486 147913 -23814 150745 -23814 c
-154321 -23814 157249 -24718 159521 -26527 c
-161793 -28335 163249 -30903 163889 -34231 C
-158465 -35071 L
-157953 -32863 157033 -31191 155721 -30079 c
-154409 -28959 152817 -28399 150961 -28399 c
-148153 -28399 145865 -29407 144113 -31423 c
-142360 -33439 141480 -36631 141480 -40991 c
-141480 -45407 142328 -48632 144017 -50632 c
-145713 -52632 147929 -53640 150657 -53640 c
-152841 -53640 154673 -52968 156137 -51624 c
-157609 -50280 158545 -48208 158929 -45423 C
-158937 -45415 L
-@c
-F
-%CHAR: 0 -128552 (2) @t
-31970 -123192 m
-31962 -128552 L
-1920 -128552 L
-1880 -127216 2096 -125920 2568 -124680 c
-3336 -122632 4560 -120616 6240 -118632 c
-7920 -116647 10360 -114351 13545 -111751 c
-18481 -107703 21825 -104487 23553 -102127 c
-25289 -99759 26161 -97519 26161 -95414 c
-26161 -93206 25369 -91334 23793 -89814 c
-22209 -88294 20145 -87534 17609 -87534 c
-14921 -87534 12769 -88342 11161 -89950 c
-9544 -91566 8728 -93806 8712 -96654 C
-2976 -96062 L
-3360 -91790 4840 -88526 7400 -86286 c
-9960 -84046 13409 -82918 17729 -82918 c
-22089 -82918 25545 -84126 28081 -86542 c
-30625 -88958 31898 -91966 31898 -95534 c
-31898 -97351 31521 -99143 30785 -100895 c
-30041 -102655 28801 -104511 27081 -106447 c
-25353 -108391 22481 -111063 18473 -114447 c
-15129 -117255 12969 -119168 12025 -120168 c
-11081 -121168 10288 -122184 9672 -123192 C
-31970 -123192 L
-@c
-F
-%CHAR: 133264 -128552 (l) @t
-137328 -128552 m
-137320 -83102 L
-142904 -83102 L
-142904 -128552 L
-137328 -128552 L
-@c
-F
-%CHAR: 147368 -128552 (o) @t
-149480 -112087 m
-149480 -105991 151168 -101471 154560 -98543 c
-157392 -96110 160849 -94886 164913 -94886 c
-169441 -94886 173145 -96374 176009 -99335 c
-178881 -102295 180322 -106399 180322 -111623 c
-180322 -115863 179682 -119200 178417 -121624 c
-177145 -124056 175289 -125944 172865 -127288 c
-170441 -128632 167785 -129304 164913 -129304 c
-160305 -129304 156576 -127824 153736 -124872 c
-150896 -121912 149472 -117647 149472 -112095 C
-149480 -112087 L
-@c
-155208 -112087 m
-155208 -116303 156128 -119464 157969 -121560 c
-159809 -123656 162129 -124712 164913 -124712 c
-167681 -124712 169985 -123656 171825 -121552 c
-173665 -119440 174585 -116223 174585 -111903 c
-174585 -107839 173657 -104751 171809 -102655 c
-169961 -100559 167657 -99503 164913 -99503 c
-162129 -99503 159809 -100551 157969 -102631 c
-156128 -104719 155208 -107879 155208 -112095 C
-155208 -112087 L
-@c
-F
-%CHAR: 182680 -128552 (c) @t
-208353 -116487 m
-213833 -117207 L
-213241 -120984 211697 -123952 209233 -126088 c
-206769 -128232 203729 -129304 200129 -129304 c
-195633 -129304 192008 -127832 189272 -124888 c
-186536 -121944 185160 -117711 185160 -112215 c
-185160 -108663 185752 -105551 186920 -102887 c
-188096 -100223 189896 -98215 192296 -96887 c
-194705 -95558 197329 -94886 200161 -94886 c
-203737 -94886 206665 -95790 208937 -97599 c
-211209 -99407 212665 -101975 213305 -105303 C
-207881 -106143 L
-207369 -103935 206449 -102263 205137 -101151 c
-203825 -100031 202233 -99471 200377 -99471 c
-197569 -99471 195281 -100479 193529 -102495 c
-191776 -104511 190896 -107703 190896 -112063 c
-190896 -116479 191744 -119704 193433 -121704 c
-195129 -123704 197345 -124712 200073 -124712 c
-202257 -124712 204089 -124040 205553 -122696 c
-207025 -121352 207961 -119280 208345 -116495 C
-208353 -116487 L
-@c
-F
-%CHAR: 214432 -128552 (a) @t
-240105 -124488 m
-238041 -126248 236041 -127496 234137 -128216 c
-232225 -128936 230169 -129304 227977 -129304 c
-224360 -129304 221576 -128416 219640 -126656 c
-217696 -124888 216720 -122624 216720 -119872 c
-216720 -118264 217088 -116783 217816 -115455 c
-218552 -114127 219520 -113047 220704 -112247 c
-221888 -111447 223232 -110831 224720 -110415 c
-225817 -110127 227473 -109847 229681 -109583 c
-234185 -109047 237505 -108399 239633 -107655 C
-239649 -106895 239665 -106407 239665 -106199 c
-239665 -103927 239137 -102327 238089 -101399 c
-236665 -100135 234537 -99503 231729 -99503 c
-229105 -99503 227169 -99967 225921 -100879 c
-224672 -101799 223736 -103431 223144 -105767 C
-217680 -105023 L
-218176 -102687 218992 -100799 220128 -99367 c
-221264 -97927 222920 -96815 225065 -96046 c
-227209 -95278 229705 -94886 232537 -94886 c
-235345 -94886 237633 -95222 239385 -95878 c
-241145 -96534 242441 -97375 243265 -98375 c
-244089 -99375 244673 -100647 245001 -102167 c
-245185 -103119 245281 -104839 245281 -107319 c
-245281 -114759 l
-245281 -119944 245401 -123232 245633 -124600 c
-245873 -125976 246346 -127296 247050 -128552 C
-241217 -128552 L
-240641 -127400 240257 -126040 240097 -124496 C
-240105 -124488 L
-@c
-239641 -112023 m
-237609 -112855 234569 -113559 230521 -114135 c
-228233 -114463 226601 -114839 225657 -115247 c
-224704 -115663 223960 -116271 223448 -117063 c
-222936 -117863 222672 -118752 222672 -119720 c
-222672 -121208 223240 -122448 224360 -123440 c
-225489 -124432 227145 -124928 229313 -124928 c
-231457 -124928 233377 -124456 235049 -123520 c
-236721 -122576 237953 -121288 238737 -119656 c
-239329 -118400 239633 -116535 239633 -114079 c
-239641 -112023 L
-@c
-F
-%CHAR: 249744 -128552 (l) @t
-253808 -128552 m
-253800 -83102 L
-259384 -83102 L
-259384 -128552 L
-253808 -128552 L
-@c
-F
-%CHAR: 0 -199624 (3) @t
-2664 -187623 m
-8240 -186887 L
-8880 -190048 9976 -192328 11513 -193720 c
-13049 -195112 14937 -195816 17145 -195816 c
-19769 -195816 21985 -194904 23793 -193088 c
-25601 -191272 26505 -189015 26505 -186327 c
-26505 -183767 25665 -181647 23993 -179983 c
-22321 -178319 20185 -177487 17609 -177487 c
-16553 -177487 15241 -177695 13673 -178111 C
-14289 -173215 L
-14657 -173247 14961 -173271 15185 -173271 c
-17561 -173271 19705 -172647 21601 -171415 c
-23505 -170175 24457 -168255 24457 -165678 c
-24457 -163630 23761 -161934 22385 -160590 c
-21001 -159246 19209 -158574 17017 -158574 c
-14849 -158574 13033 -159262 11593 -160622 c
-10152 -161982 9216 -164038 8800 -166758 C
-3224 -165766 L
-3896 -162030 5448 -159126 7864 -157078 c
-10280 -155022 13297 -153990 16897 -153990 c
-19377 -153990 21665 -154526 23745 -155582 c
-25833 -156646 27433 -158102 28537 -159942 c
-29641 -161782 30193 -163734 30193 -165798 c
-30193 -167766 29665 -169559 28617 -171167 c
-27561 -172775 25993 -174063 23929 -175007 C
-26617 -175631 28705 -176919 30193 -178871 c
-31681 -180823 32426 -183271 32426 -186199 c
-32426 -190168 30977 -193536 28089 -196288 c
-25193 -199048 21529 -200432 17113 -200432 c
-13129 -200432 9808 -199240 7176 -196872 c
-4544 -194496 3032 -191408 2664 -187631 c
-2664 -187623 L
-@c
-F
-%CHAR: 133264 -199624 (b) @t
-142600 -199624 m
-137416 -199624 L
-137416 -154174 L
-142992 -154174 L
-142992 -170391 L
-145345 -167438 148361 -165958 152017 -165958 c
-154041 -165958 155961 -166366 157769 -167182 c
-159577 -167999 161065 -169151 162233 -170623 c
-163401 -172095 164321 -173887 164977 -175967 c
-165634 -178055 165970 -180295 165970 -182671 c
-165970 -188311 164569 -192680 161785 -195752 c
-159001 -198832 155641 -200376 151737 -200376 c
-147857 -200376 144801 -198752 142592 -195504 C
-142600 -199624 L
-@c
-142536 -182911 m
-142536 -186863 143072 -189720 144145 -191472 c
-145897 -194344 148281 -195784 151273 -195784 c
-153705 -195784 155817 -194720 157593 -192608 c
-159369 -190488 160265 -187327 160265 -183135 c
-160265 -178839 159409 -175663 157713 -173615 c
-156009 -171567 153937 -170543 151521 -170543 c
-149089 -170543 146977 -171607 145201 -173719 c
-143424 -175839 142528 -178911 142528 -182919 C
-142536 -182911 L
-@c
-F
-%CHAR: 0 -270696 (A) @t
--104 -270696 m
-17361 -225246 L
-23841 -225246 L
-42442 -270696 L
-35594 -270696 L
-30289 -256935 L
-11281 -256935 L
-6288 -270696 L
--104 -270696 L
-@c
-13025 -252031 m
-28425 -252031 L
-23681 -239447 l
-22241 -235622 21161 -232478 20457 -230022 C
-19881 -232934 19065 -235830 18009 -238702 c
-13025 -252031 L
-@c
-F
-%CHAR: 136800 -270696 (3) @t
-139464 -258695 m
-145040 -257959 L
-145680 -261120 146776 -263400 148313 -264792 c
-149849 -266184 151737 -266888 153945 -266888 c
-156569 -266888 158785 -265976 160593 -264160 c
-162401 -262344 163305 -260087 163305 -257399 c
-163305 -254839 162465 -252719 160793 -251055 c
-159121 -249391 156985 -248559 154409 -248559 c
-153353 -248559 152041 -248767 150473 -249183 C
-151089 -244287 L
-151457 -244319 151761 -244343 151985 -244343 c
-154361 -244343 156505 -243719 158401 -242487 c
-160305 -241247 161257 -239327 161257 -236750 c
-161257 -234702 160561 -233006 159185 -231662 c
-157801 -230318 156009 -229646 153817 -229646 c
-151649 -229646 149833 -230334 148393 -231694 c
-146952 -233054 146016 -235110 145600 -237830 C
-140024 -236838 L
-140696 -233102 142248 -230198 144664 -228150 c
-147080 -226094 150097 -225062 153697 -225062 c
-156177 -225062 158465 -225598 160545 -226654 c
-162633 -227718 164233 -229174 165337 -231014 c
-166441 -232854 166993 -234806 166993 -236870 c
-166993 -238838 166465 -240631 165417 -242239 c
-164361 -243847 162793 -245135 160729 -246079 C
-163417 -246703 165505 -247991 166993 -249943 c
-168481 -251895 169226 -254343 169226 -257271 c
-169226 -261240 167777 -264608 164889 -267360 c
-161993 -270120 158329 -271504 153913 -271504 c
-149929 -271504 146608 -270312 143976 -267944 c
-141344 -265568 139832 -262480 139464 -258703 c
-139464 -258695 L
-@c
-F
-%CHAR: 0 -341768 (B) @t
-4648 -341768 m
-4648 -296318 L
-21697 -296318 l
-25169 -296318 27953 -296782 30049 -297694 c
-32146 -298614 33802 -300038 34986 -301942 c
-36170 -303854 36770 -305862 36770 -307942 c
-36770 -309886 36242 -311719 35194 -313431 c
-34138 -315143 32538 -316535 30409 -317591 C
-33162 -318391 35282 -319775 36754 -321711 c
-38226 -323647 38970 -325951 38970 -328591 c
-38970 -330719 38522 -332712 37626 -334536 c
-36730 -336360 35610 -337776 34290 -338768 c
-32970 -339760 31305 -340512 29313 -341008 c
-27321 -341512 24873 -341768 21977 -341768 c
-4648 -341768 L
-@c
-10665 -315415 m
-20489 -315415 l
-23153 -315415 25073 -315239 26225 -314887 c
-27753 -314439 28913 -313679 29681 -312631 c
-30457 -311575 30849 -310247 30849 -308654 c
-30849 -307150 30481 -305822 29761 -304678 c
-29041 -303526 28001 -302734 26665 -302318 c
-25321 -301894 23009 -301678 19745 -301678 c
-10665 -301678 L
-10665 -315415 L
-@c
-10665 -336408 m
-21977 -336408 l
-23921 -336408 25289 -336336 26073 -336192 c
-27449 -335944 28609 -335528 29537 -334952 c
-30465 -334376 31241 -333528 31834 -332424 c
-32434 -331320 32738 -330039 32738 -328591 c
-32738 -326903 32298 -325431 31433 -324183 c
-30569 -322935 29361 -322047 27825 -321543 c
-26289 -321039 24065 -320783 21169 -320783 c
-10665 -320783 L
-10665 -336408 L
-@c
-F
-%CHAR: 140304 -341768 (a) @t
-165977 -337704 m
-163913 -339464 161913 -340712 160009 -341432 c
-158097 -342152 156041 -342520 153849 -342520 c
-150232 -342520 147448 -341632 145512 -339872 c
-143568 -338104 142592 -335840 142592 -333088 c
-142592 -331480 142960 -329999 143688 -328671 c
-144424 -327343 145392 -326263 146576 -325463 c
-147760 -324663 149104 -324047 150592 -323631 c
-151689 -323343 153345 -323063 155553 -322799 c
-160057 -322263 163377 -321615 165505 -320871 C
-165521 -320111 165537 -319623 165537 -319415 c
-165537 -317143 165009 -315543 163961 -314615 c
-162537 -313351 160409 -312719 157601 -312719 c
-154977 -312719 153041 -313183 151793 -314095 c
-150544 -315015 149608 -316647 149016 -318983 C
-143552 -318239 L
-144048 -315903 144864 -314015 146000 -312583 c
-147136 -311143 148792 -310031 150937 -309262 c
-153081 -308494 155577 -308102 158409 -308102 c
-161217 -308102 163505 -308438 165257 -309094 c
-167017 -309750 168313 -310591 169137 -311591 c
-169961 -312591 170545 -313863 170873 -315383 c
-171057 -316335 171153 -318055 171153 -320535 c
-171153 -327975 l
-171153 -333160 171273 -336448 171505 -337816 c
-171745 -339192 172218 -340512 172922 -341768 C
-167089 -341768 L
-166513 -340616 166129 -339256 165969 -337712 C
-165977 -337704 L
-@c
-165513 -325239 m
-163481 -326071 160441 -326775 156393 -327351 c
-154105 -327679 152473 -328055 151529 -328463 c
-150576 -328879 149832 -329487 149320 -330279 c
-148808 -331079 148544 -331968 148544 -332936 c
-148544 -334424 149112 -335664 150232 -336656 c
-151361 -337648 153017 -338144 155185 -338144 c
-157329 -338144 159249 -337672 160921 -336736 c
-162593 -335792 163825 -334504 164609 -332872 c
-165201 -331616 165505 -329751 165505 -327295 c
-165513 -325239 L
-@c
-F
-%CHAR: 0 -412840 (C) @t
-37330 -396903 m
-43338 -398423 L
-42082 -403368 39810 -407136 36538 -409728 c
-33266 -412320 29257 -413616 24521 -413616 c
-19625 -413616 15641 -412616 12577 -410624 c
-9504 -408632 7168 -405736 5568 -401959 c
-3968 -398183 3160 -394111 3160 -389775 c
-3160 -385047 4064 -380910 5872 -377390 c
-7680 -373870 10256 -371182 13593 -369358 c
-16929 -367534 20609 -366614 24617 -366614 c
-29161 -366614 32986 -367774 36082 -370086 c
-39186 -372398 41354 -375662 42570 -379854 C
-36642 -381247 L
-35594 -377942 34058 -375526 32058 -374022 c
-30057 -372518 27529 -371758 24489 -371758 c
-21001 -371758 18073 -372598 15729 -374270 c
-13385 -375942 11729 -378198 10785 -381014 c
-9840 -383831 9360 -386751 9360 -389743 c
-9360 -393607 9928 -396983 11049 -399863 c
-12169 -402744 13929 -404904 16305 -406328 c
-18681 -407752 21257 -408472 24025 -408472 c
-27393 -408472 30249 -407496 32586 -405560 c
-34922 -403616 36506 -400727 37330 -396903 C
-@c
-F
-%CHAR: 143808 -412840 (1) @t
-167465 -412840 m
-161881 -412840 L
-161881 -377278 L
-160537 -378558 158769 -379846 156593 -381127 c
-154417 -382407 152448 -383367 150720 -384007 C
-150720 -378614 L
-153840 -377150 156569 -375366 158905 -373286 c
-161241 -371198 162897 -369166 163865 -367206 C
-167465 -367206 L
-167465 -412840 L
-@c
-F
-T
-@rax 298.00573 52.50643 381.29613 176.63839 @E
-[0.00028346 0.00000000 0.00000000 0.00028346 304.50528020 174.93193061] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/MTExtra 63499.00000 z
-%CHAR: 52952 -57480 (a) @t
-57712 -43511 m
-57712 -57736 L
-54536 -57736 L
-54536 -25726 L
-57712 -25726 L
-57712 -39951 L
-106539 -39951 L
-105314 -38727 103586 -36783 101362 -34143 c
-99138 -31503 97242 -29199 95682 -27255 C
-97906 -25030 L
-102130 -30071 107451 -35639 113843 -41735 C
-107451 -47832 102130 -53400 97906 -58432 C
-95682 -56216 L
-100802 -49824 104426 -45583 106539 -43511 C
-57712 -43511 L
-@c
-F
-%CHAR: 52952 -128552 (a) @t
-57712 -114583 m
-57712 -128808 L
-54536 -128808 L
-54536 -96798 L
-57712 -96798 L
-57712 -111023 L
-106539 -111023 L
-105314 -109799 103586 -107855 101362 -105215 c
-99138 -102575 97242 -100271 95682 -98327 C
-97906 -96102 L
-102130 -101143 107451 -106711 113843 -112807 C
-107451 -118904 102130 -124472 97906 -129504 C
-95682 -127288 L
-100802 -120896 104426 -116655 106539 -114583 C
-57712 -114583 L
-@c
-F
-%CHAR: 52952 -199624 (a) @t
-57712 -185655 m
-57712 -199880 L
-54536 -199880 L
-54536 -167870 L
-57712 -167870 L
-57712 -182095 L
-106539 -182095 L
-105314 -180871 103586 -178927 101362 -176287 c
-99138 -173647 97242 -171343 95682 -169399 C
-97906 -167174 L
-102130 -172215 107451 -177783 113843 -183879 C
-107451 -189976 102130 -195544 97906 -200576 C
-95682 -198360 L
-100802 -191968 104426 -187727 106539 -185655 C
-57712 -185655 L
-@c
-F
-%CHAR: 56488 -270696 (a) @t
-61248 -256727 m
-61248 -270952 L
-58072 -270952 L
-58072 -238942 L
-61248 -238942 L
-61248 -253167 L
-110075 -253167 L
-108850 -251943 107122 -249999 104898 -247359 c
-102674 -244719 100778 -242415 99218 -240471 C
-101442 -238246 L
-105666 -243287 110987 -248855 117379 -254951 C
-110987 -261048 105666 -266616 101442 -271648 C
-99218 -269432 L
-104338 -263040 107962 -258799 110075 -256727 C
-61248 -256727 L
-@c
-F
-%CHAR: 59992 -341768 (a) @t
-64752 -327799 m
-64752 -342024 L
-61576 -342024 L
-61576 -310014 L
-64752 -310014 L
-64752 -324239 L
-113579 -324239 L
-112354 -323015 110626 -321071 108402 -318431 c
-106178 -315791 104282 -313487 102722 -311543 C
-104946 -309318 L
-109170 -314359 114491 -319927 120883 -326023 C
-114491 -332120 109170 -337688 104946 -342720 C
-102722 -340504 L
-107842 -334112 111466 -329871 113579 -327799 C
-64752 -327799 L
-@c
-F
-%CHAR: 63496 -412840 (a) @t
-68256 -398871 m
-68256 -413096 L
-65080 -413096 L
-65080 -381086 L
-68256 -381086 L
-68256 -395311 L
-117083 -395311 L
-115858 -394087 114130 -392143 111906 -389503 c
-109682 -386863 107786 -384559 106226 -382615 C
-108450 -380390 L
-112674 -385431 117995 -390999 124387 -397095 C
-117995 -403192 112674 -408760 108450 -413792 C
-106226 -411576 L
-111346 -405184 114970 -400943 117083 -398871 C
-68256 -398871 L
-@c
-F
-T
-@rax 413.35115 55.92019 553.73272 208.51654 @E
-[0.00028346 0.00000000 0.00000000 0.00028346 419.85069330 205.98632317] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_LucidaConsole 42333.00000 z
-%CHAR: 0 -33408 (P) @t
-4716 -33408 m
-4716 -6890 L
-13331 -6890 l
-16403 -6890 18599 -7166 19907 -7718 c
-22582 -8876 23920 -11114 23920 -14413 c
-23920 -17197 22840 -19381 20687 -20965 c
-18527 -22549 15551 -23341 11765 -23341 c
-8789 -23341 L
-8789 -33408 L
-4716 -33408 L
-@c
-8789 -20281 m
-11327 -20281 l
-16841 -20281 19601 -18349 19601 -14497 c
-19601 -12877 19079 -11708 18041 -11006 c
-16997 -10304 15263 -9950 12839 -9950 c
-8789 -9950 L
-8789 -20281 L
-@c
-F
-%CHAR: 25530 -33408 (o) @t
-38285 -33930 m
-34991 -33930 32400 -32880 30522 -30798 c
-28644 -28710 27702 -25837 27702 -22189 c
-27702 -18553 28650 -15685 30534 -13597 c
-32418 -11510 35009 -10466 38285 -10466 c
-41573 -10466 44165 -11510 46043 -13597 c
-47926 -15685 48868 -18553 48868 -22189 c
-48868 -25837 47926 -28710 46049 -30792 c
-44165 -32880 41573 -33924 38285 -33924 C
-38285 -33930 L
-@c
-38285 -30864 m
-40241 -30864 41771 -30096 42869 -28572 c
-43973 -27048 44525 -24913 44525 -22189 c
-44525 -19477 43973 -17347 42875 -15823 c
-41771 -14293 40241 -13525 38285 -13525 c
-36329 -13525 34799 -14293 33701 -15817 c
-32597 -17347 32046 -19477 32046 -22189 c
-32046 -24913 32597 -27048 33695 -28572 c
-34799 -30096 36329 -30864 38285 -30864 c
-@c
-F
-%CHAR: 51060 -33408 (k) @t
-55464 -33408 m
-55464 -770 L
-59537 -770 L
-59537 -21667 L
-68957 -10958 L
-73366 -10958 L
-64481 -21055 L
-75616 -33408 L
-70115 -33408 L
-59537 -21667 L
-59537 -33408 L
-55464 -33408 L
-@c
-F
-%CHAR: 76590 -33408 (u) @t
-98332 -10958 m
-98332 -33408 L
-94259 -33408 L
-94259 -29196 L
-92387 -32346 89825 -33924 86585 -33924 c
-82350 -33924 80226 -31386 80226 -26323 c
-80226 -10958 L
-84299 -10958 L
-84299 -25207 l
-84299 -26970 84569 -28224 85103 -28956 c
-85637 -29688 86555 -30060 87851 -30060 c
-89891 -30060 92027 -28584 94259 -25639 C
-94259 -10958 L
-98332 -10958 L
-@c
-F
-%CHAR: 102120 -33408 (d) @t
-120311 -33408 m
-120311 -29196 L
-118325 -32346 115865 -33924 112949 -33924 c
-110417 -33924 108414 -32940 106950 -30972 c
-105486 -29004 104748 -26317 104748 -22933 c
-104748 -19213 105618 -16201 107352 -13909 c
-109086 -11618 111359 -10466 114167 -10466 c
-116579 -10466 118631 -11486 120311 -13525 C
-120311 -770 L
-124384 -770 L
-124384 -33408 L
-120311 -33408 L
-@c
-120311 -16585 m
-118409 -14545 116543 -13525 114731 -13525 c
-112943 -13525 111551 -14311 110567 -15883 c
-109583 -17455 109092 -19669 109092 -22519 c
-109092 -27792 110669 -30432 113819 -30432 c
-116117 -30432 118283 -28998 120311 -26137 C
-120311 -16585 L
-@c
-F
-%CHAR: 153180 -33408 (c) @t
-175984 -32682 m
-173573 -33510 171167 -33924 168767 -33924 c
-164855 -33924 161837 -32904 159726 -30870 c
-157614 -28830 156552 -25933 156552 -22189 c
-156552 -18511 157596 -15631 159684 -13567 c
-161771 -11504 164675 -10466 168395 -10466 c
-170765 -10466 173159 -10826 175570 -11546 C
-175570 -14953 L
-172913 -14005 170639 -13525 168767 -13525 c
-166319 -13525 164387 -14299 162995 -15841 c
-161597 -17383 160895 -19501 160895 -22189 c
-160895 -24901 161645 -27024 163133 -28560 c
-164627 -30096 166697 -30864 169325 -30864 c
-171293 -30864 173519 -30402 175984 -29484 C
-175984 -32682 L
-@c
-F
-%CHAR: 204240 -33408 (n) @t
-208002 -33408 m
-208002 -10958 L
-212075 -10958 L
-212075 -15181 L
-213947 -12038 216497 -10466 219725 -10466 c
-223985 -10466 226114 -12997 226114 -18055 c
-226114 -33408 L
-222041 -33408 L
-222041 -19171 l
-222041 -17419 221765 -16171 221225 -15439 c
-220679 -14701 219761 -14329 218483 -14329 c
-216443 -14329 214307 -15799 212075 -18739 C
-212075 -33408 L
-208002 -33408 L
-@c
-F
-%CHAR: 229770 -33408 (e) @t
-252472 -32520 m
-249647 -33456 247049 -33924 244697 -33924 c
-240839 -33924 237869 -32928 235800 -30948 c
-233724 -28968 232686 -26125 232686 -22435 c
-232686 -18955 233682 -16081 235668 -13837 c
-237659 -11594 240197 -10466 243269 -10466 c
-246365 -10466 248657 -11396 250121 -13255 c
-251590 -15115 252328 -18013 252328 -21937 c
-252328 -23239 L
-237029 -23239 L
-237329 -28320 240071 -30864 245255 -30864 c
-247445 -30864 249857 -30342 252472 -29298 C
-252472 -32520 L
-@c
-237155 -20179 m
-247985 -20179 L
-247985 -19603 l
-247985 -15553 246293 -13525 242915 -13525 c
-241295 -13525 239969 -14113 238961 -15283 c
-237947 -16453 237341 -18091 237149 -20179 C
-237155 -20179 L
-@c
-F
-%CHAR: 255300 -33408 (f) @t
-264479 -33408 m
-264479 -14539 L
-258360 -14539 L
-258360 -11480 L
-264479 -11480 L
-264479 -9104 l
-264479 -5966 265211 -3704 266669 -2324 c
-268127 -944 270527 -254 273863 -254 c
-276065 -254 278158 -554 280126 -1148 C
-280126 -4370 L
-278116 -3668 276125 -3314 274169 -3314 c
-272093 -3314 270629 -3710 269801 -4502 c
-268973 -5294 268553 -6692 268553 -8672 c
-268553 -11480 L
-279280 -11480 L
-279280 -14539 L
-268553 -14539 L
-268553 -33408 L
-264479 -33408 L
-@c
-F
-%CHAR: 280830 -33408 (u) @t
-302572 -10958 m
-302572 -33408 L
-298499 -33408 L
-298499 -29196 L
-296627 -32346 294065 -33924 290825 -33924 c
-286590 -33924 284466 -31386 284466 -26323 c
-284466 -10958 L
-288539 -10958 L
-288539 -25207 l
-288539 -26970 288809 -28224 289343 -28956 c
-289877 -29688 290795 -30060 292091 -30060 c
-294131 -30060 296267 -28584 298499 -25639 C
-298499 -10958 L
-302572 -10958 L
-@c
-F
-%CHAR: 306360 -33408 (n) @t
-310122 -33408 m
-310122 -10958 L
-314195 -10958 L
-314195 -15181 L
-316067 -12038 318617 -10466 321845 -10466 c
-326105 -10466 328234 -12997 328234 -18055 c
-328234 -33408 L
-324161 -33408 L
-324161 -19171 l
-324161 -17419 323885 -16171 323345 -15439 c
-322799 -14701 321881 -14329 320603 -14329 c
-318563 -14329 316427 -15799 314195 -18739 C
-314195 -33408 L
-310122 -33408 L
-@c
-F
-%CHAR: 331890 -33408 (g) @t
-336276 -40919 m
-336708 -37482 L
-339143 -38514 341417 -39030 343505 -39030 c
-347861 -39030 350039 -36954 350039 -32814 c
-350231 -28758 L
-348521 -31854 346043 -33408 342803 -33408 c
-340241 -33408 338202 -32430 336696 -30486 c
-335190 -28536 334434 -25903 334434 -22597 c
-334434 -19003 335310 -16075 337056 -13825 c
-338808 -11570 341081 -10442 343877 -10442 c
-346067 -10442 348227 -11474 350351 -13525 C
-350351 -10958 L
-354178 -10958 L
-354178 -28926 l
-354178 -31830 353986 -34026 353602 -35490 c
-353218 -36954 352487 -38256 351425 -39384 c
-349733 -41183 347075 -42089 343469 -42089 c
-341345 -42089 338946 -41693 336276 -40913 C
-336276 -40919 L
-@c
-350105 -25447 m
-350105 -16621 L
-348269 -14557 346373 -13519 344417 -13519 c
-342641 -13519 341255 -14293 340265 -15835 c
-339275 -17377 338778 -19543 338778 -22327 c
-338778 -24679 339215 -26526 340079 -27852 c
-340943 -29184 342161 -29850 343715 -29850 c
-346127 -29850 348257 -28380 350105 -25453 C
-350105 -25447 L
-@c
-F
-%CHAR: 357420 -33408 (u) @t
-379162 -10958 m
-379162 -33408 L
-375089 -33408 L
-375089 -29196 L
-373217 -32346 370655 -33924 367415 -33924 c
-363180 -33924 361056 -31386 361056 -26323 c
-361056 -10958 L
-365129 -10958 L
-365129 -25207 l
-365129 -26970 365399 -28224 365933 -28956 c
-366467 -29688 367385 -30060 368681 -30060 c
-370721 -30060 372857 -28584 375089 -25639 C
-375089 -10958 L
-379162 -10958 L
-@c
-F
-%CHAR: 382950 -33408 (j) @t
-386010 -41003 m
-386010 -37590 L
-388128 -38550 390233 -39036 392309 -39036 c
-394043 -39036 395237 -38598 395873 -37728 c
-396515 -36852 396839 -35226 396839 -32856 c
-396839 -14017 L
-387660 -14017 L
-387660 -10958 L
-400913 -10958 L
-400913 -32028 l
-400913 -35514 400223 -38064 398855 -39666 c
-397487 -41267 395297 -42071 392309 -42071 c
-390353 -42071 388254 -41711 386010 -40997 C
-386010 -41003 L
-@c
-396323 -5876 m
-396323 -770 L
-401429 -770 L
-401429 -5876 L
-396323 -5876 L
-@c
-F
-%CHAR: 408480 -33408 (e) @t
-431182 -32520 m
-428357 -33456 425759 -33924 423407 -33924 c
-419549 -33924 416579 -32928 414510 -30948 c
-412434 -28968 411396 -26125 411396 -22435 c
-411396 -18955 412392 -16081 414378 -13837 c
-416369 -11594 418907 -10466 421979 -10466 c
-425075 -10466 427367 -11396 428831 -13255 c
-430300 -15115 431038 -18013 431038 -21937 c
-431038 -23239 L
-415739 -23239 L
-416039 -28320 418781 -30864 423965 -30864 c
-426155 -30864 428567 -30342 431182 -29298 C
-431182 -32520 L
-@c
-415865 -20179 m
-426695 -20179 L
-426695 -19603 l
-426695 -15553 425003 -13525 421625 -13525 c
-420005 -13525 418679 -14113 417671 -15283 c
-416657 -16453 416051 -18091 415859 -20179 C
-415865 -20179 L
-@c
-F
-%CHAR: 434010 -33408 (:) @t
-443705 -17077 m
-443705 -10958 L
-449825 -10958 L
-449825 -17077 L
-443705 -17077 L
-@c
-443705 -33408 m
-443705 -27288 L
-449825 -27288 L
-449825 -33408 L
-443705 -33408 L
-@c
-F
-T
-@rax 413.35115 55.92019 553.73272 208.51654 @E
-[0.00028346 0.00000000 0.00000000 0.00028346 419.85069330 205.98632317] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 63499.00000 z
-%CHAR: 0 -154990 (1) @t
-23657 -154990 m
-18073 -154990 L
-18073 -119428 L
-16729 -120708 14961 -121996 12785 -123277 c
-10609 -124557 8640 -125517 6912 -126157 C
-6912 -120764 L
-10032 -119300 12761 -117516 15097 -115436 c
-17433 -113348 19089 -111316 20057 -109356 C
-23657 -109356 L
-23657 -154990 L
-@c
-F
-%CHAR: 133264 -154990 (3) @t
-135928 -142989 m
-141504 -142253 L
-142144 -145414 143240 -147694 144777 -149086 c
-146313 -150478 148201 -151182 150409 -151182 c
-153033 -151182 155249 -150270 157057 -148454 c
-158865 -146638 159769 -144381 159769 -141693 c
-159769 -139133 158929 -137013 157257 -135349 c
-155585 -133685 153449 -132853 150873 -132853 c
-149817 -132853 148505 -133061 146937 -133477 C
-147553 -128581 L
-147921 -128613 148225 -128637 148449 -128637 c
-150825 -128637 152969 -128013 154865 -126781 c
-156769 -125541 157721 -123621 157721 -121044 c
-157721 -118996 157025 -117300 155649 -115956 c
-154265 -114612 152473 -113940 150281 -113940 c
-148113 -113940 146297 -114628 144857 -115988 c
-143416 -117348 142480 -119404 142064 -122124 C
-136488 -121132 L
-137160 -117396 138712 -114492 141128 -112444 c
-143544 -110388 146561 -109356 150161 -109356 c
-152641 -109356 154929 -109892 157009 -110948 c
-159097 -112012 160697 -113468 161801 -115308 c
-162905 -117148 163457 -119100 163457 -121164 c
-163457 -123132 162929 -124925 161881 -126533 c
-160825 -128141 159257 -129429 157193 -130373 C
-159881 -130997 161969 -132285 163457 -134237 c
-164945 -136189 165690 -138637 165690 -141565 c
-165690 -145534 164241 -148902 161353 -151654 c
-158457 -154414 154793 -155798 150377 -155798 c
-146393 -155798 143072 -154606 140440 -152238 c
-137808 -149862 136296 -146774 135928 -142997 c
-135928 -142989 L
-@c
-F
-%CHAR: 0 -226062 (2) @t
-31970 -220702 m
-31962 -226062 L
-1920 -226062 L
-1880 -224726 2096 -223430 2568 -222190 c
-3336 -220142 4560 -218126 6240 -216142 c
-7920 -214157 10360 -211861 13545 -209261 c
-18481 -205213 21825 -201997 23553 -199637 c
-25289 -197269 26161 -195029 26161 -192924 c
-26161 -190716 25369 -188844 23793 -187324 c
-22209 -185804 20145 -185044 17609 -185044 c
-14921 -185044 12769 -185852 11161 -187460 c
-9544 -189076 8728 -191316 8712 -194164 C
-2976 -193572 L
-3360 -189300 4840 -186036 7400 -183796 c
-9960 -181556 13409 -180428 17729 -180428 c
-22089 -180428 25545 -181636 28081 -184052 c
-30625 -186468 31898 -189476 31898 -193044 c
-31898 -194861 31521 -196653 30785 -198405 c
-30041 -200165 28801 -202021 27081 -203957 c
-25353 -205901 22481 -208573 18473 -211957 c
-15129 -214765 12969 -216678 12025 -217678 c
-11081 -218678 10288 -219694 9672 -220702 C
-31970 -220702 L
-@c
-F
-%CHAR: 133264 -226062 (l) @t
-137328 -226062 m
-137320 -180612 L
-142904 -180612 L
-142904 -226062 L
-137328 -226062 L
-@c
-F
-%CHAR: 147368 -226062 (o) @t
-149480 -209597 m
-149480 -203501 151168 -198981 154560 -196053 c
-157392 -193620 160849 -192396 164913 -192396 c
-169441 -192396 173145 -193884 176009 -196845 c
-178881 -199805 180322 -203909 180322 -209133 c
-180322 -213373 179682 -216710 178417 -219134 c
-177145 -221566 175289 -223454 172865 -224798 c
-170441 -226142 167785 -226814 164913 -226814 c
-160305 -226814 156576 -225334 153736 -222382 c
-150896 -219422 149472 -215157 149472 -209605 C
-149480 -209597 L
-@c
-155208 -209597 m
-155208 -213813 156128 -216974 157969 -219070 c
-159809 -221166 162129 -222222 164913 -222222 c
-167681 -222222 169985 -221166 171825 -219062 c
-173665 -216950 174585 -213733 174585 -209413 c
-174585 -205349 173657 -202261 171809 -200165 c
-169961 -198069 167657 -197013 164913 -197013 c
-162129 -197013 159809 -198061 157969 -200141 c
-156128 -202229 155208 -205389 155208 -209605 C
-155208 -209597 L
-@c
-F
-%CHAR: 182680 -226062 (c) @t
-208353 -213997 m
-213833 -214717 L
-213241 -218494 211697 -221462 209233 -223598 c
-206769 -225742 203729 -226814 200129 -226814 c
-195633 -226814 192008 -225342 189272 -222398 c
-186536 -219454 185160 -215221 185160 -209725 c
-185160 -206173 185752 -203061 186920 -200397 c
-188096 -197733 189896 -195725 192296 -194397 c
-194705 -193068 197329 -192396 200161 -192396 c
-203737 -192396 206665 -193300 208937 -195109 c
-211209 -196917 212665 -199485 213305 -202813 C
-207881 -203653 L
-207369 -201445 206449 -199773 205137 -198661 c
-203825 -197541 202233 -196981 200377 -196981 c
-197569 -196981 195281 -197989 193529 -200005 c
-191776 -202021 190896 -205213 190896 -209573 c
-190896 -213989 191744 -217214 193433 -219214 c
-195129 -221214 197345 -222222 200073 -222222 c
-202257 -222222 204089 -221550 205553 -220206 c
-207025 -218862 207961 -216790 208345 -214005 C
-208353 -213997 L
-@c
-F
-%CHAR: 214432 -226062 (a) @t
-240105 -221998 m
-238041 -223758 236041 -225006 234137 -225726 c
-232225 -226446 230169 -226814 227977 -226814 c
-224360 -226814 221576 -225926 219640 -224166 c
-217696 -222398 216720 -220134 216720 -217382 c
-216720 -215774 217088 -214293 217816 -212965 c
-218552 -211637 219520 -210557 220704 -209757 c
-221888 -208957 223232 -208341 224720 -207925 c
-225817 -207637 227473 -207357 229681 -207093 c
-234185 -206557 237505 -205909 239633 -205165 C
-239649 -204405 239665 -203917 239665 -203709 c
-239665 -201437 239137 -199837 238089 -198909 c
-236665 -197645 234537 -197013 231729 -197013 c
-229105 -197013 227169 -197477 225921 -198389 c
-224672 -199309 223736 -200941 223144 -203277 C
-217680 -202533 L
-218176 -200197 218992 -198309 220128 -196877 c
-221264 -195437 222920 -194325 225065 -193556 c
-227209 -192788 229705 -192396 232537 -192396 c
-235345 -192396 237633 -192732 239385 -193388 c
-241145 -194044 242441 -194885 243265 -195885 c
-244089 -196885 244673 -198157 245001 -199677 c
-245185 -200629 245281 -202349 245281 -204829 c
-245281 -212269 l
-245281 -217454 245401 -220742 245633 -222110 c
-245873 -223486 246346 -224806 247050 -226062 C
-241217 -226062 L
-240641 -224910 240257 -223550 240097 -222006 C
-240105 -221998 L
-@c
-239641 -209533 m
-237609 -210365 234569 -211069 230521 -211645 c
-228233 -211973 226601 -212349 225657 -212757 c
-224704 -213173 223960 -213781 223448 -214573 c
-222936 -215373 222672 -216262 222672 -217230 c
-222672 -218718 223240 -219958 224360 -220950 c
-225489 -221942 227145 -222438 229313 -222438 c
-231457 -222438 233377 -221966 235049 -221030 c
-236721 -220086 237953 -218798 238737 -217166 c
-239329 -215910 239633 -214045 239633 -211589 c
-239641 -209533 L
-@c
-F
-%CHAR: 249744 -226062 (l) @t
-253808 -226062 m
-253800 -180612 L
-259384 -180612 L
-259384 -226062 L
-253808 -226062 L
-@c
-F
-%CHAR: 0 -297134 (3) @t
-2664 -285133 m
-8240 -284397 L
-8880 -287558 9976 -289838 11513 -291230 c
-13049 -292622 14937 -293326 17145 -293326 c
-19769 -293326 21985 -292414 23793 -290598 c
-25601 -288782 26505 -286525 26505 -283837 c
-26505 -281277 25665 -279157 23993 -277493 c
-22321 -275829 20185 -274997 17609 -274997 c
-16553 -274997 15241 -275205 13673 -275621 C
-14289 -270725 L
-14657 -270757 14961 -270781 15185 -270781 c
-17561 -270781 19705 -270157 21601 -268925 c
-23505 -267685 24457 -265765 24457 -263188 c
-24457 -261140 23761 -259444 22385 -258100 c
-21001 -256756 19209 -256084 17017 -256084 c
-14849 -256084 13033 -256772 11593 -258132 c
-10152 -259492 9216 -261548 8800 -264268 C
-3224 -263276 L
-3896 -259540 5448 -256636 7864 -254588 c
-10280 -252532 13297 -251500 16897 -251500 c
-19377 -251500 21665 -252036 23745 -253092 c
-25833 -254156 27433 -255612 28537 -257452 c
-29641 -259292 30193 -261244 30193 -263308 c
-30193 -265276 29665 -267069 28617 -268677 c
-27561 -270285 25993 -271573 23929 -272517 C
-26617 -273141 28705 -274429 30193 -276381 c
-31681 -278333 32426 -280781 32426 -283709 c
-32426 -287678 30977 -291046 28089 -293798 c
-25193 -296558 21529 -297942 17113 -297942 c
-13129 -297942 9808 -296750 7176 -294382 c
-4544 -292006 3032 -288918 2664 -285141 c
-2664 -285133 L
-@c
-F
-%CHAR: 133264 -297134 (b) @t
-142600 -297134 m
-137416 -297134 L
-137416 -251684 L
-142992 -251684 L
-142992 -267901 L
-145345 -264948 148361 -263468 152017 -263468 c
-154041 -263468 155961 -263876 157769 -264692 c
-159577 -265509 161065 -266661 162233 -268133 c
-163401 -269605 164321 -271397 164977 -273477 c
-165634 -275565 165970 -277805 165970 -280181 c
-165970 -285821 164569 -290190 161785 -293262 c
-159001 -296342 155641 -297886 151737 -297886 c
-147857 -297886 144801 -296262 142592 -293014 C
-142600 -297134 L
-@c
-142536 -280421 m
-142536 -284373 143072 -287230 144145 -288982 c
-145897 -291854 148281 -293294 151273 -293294 c
-153705 -293294 155817 -292230 157593 -290118 c
-159369 -287998 160265 -284837 160265 -280645 c
-160265 -276349 159409 -273173 157713 -271125 c
-156009 -269077 153937 -268053 151521 -268053 c
-149089 -268053 146977 -269117 145201 -271229 c
-143424 -273349 142528 -276421 142528 -280429 C
-142536 -280421 L
-@c
-F
-%CHAR: 0 -368206 (A) @t
--104 -368206 m
-17361 -322756 L
-23841 -322756 L
-42442 -368206 L
-35594 -368206 L
-30289 -354445 L
-11281 -354445 L
-6288 -368206 L
--104 -368206 L
-@c
-13025 -349541 m
-28425 -349541 L
-23681 -336957 l
-22241 -333132 21161 -329988 20457 -327532 C
-19881 -330444 19065 -333340 18009 -336212 c
-13025 -349541 L
-@c
-F
-%CHAR: 136800 -368206 (3) @t
-139464 -356205 m
-145040 -355469 L
-145680 -358630 146776 -360910 148313 -362302 c
-149849 -363694 151737 -364398 153945 -364398 c
-156569 -364398 158785 -363486 160593 -361670 c
-162401 -359854 163305 -357597 163305 -354909 c
-163305 -352349 162465 -350229 160793 -348565 c
-159121 -346901 156985 -346069 154409 -346069 c
-153353 -346069 152041 -346277 150473 -346693 C
-151089 -341797 L
-151457 -341829 151761 -341853 151985 -341853 c
-154361 -341853 156505 -341229 158401 -339997 c
-160305 -338757 161257 -336837 161257 -334260 c
-161257 -332212 160561 -330516 159185 -329172 c
-157801 -327828 156009 -327156 153817 -327156 c
-151649 -327156 149833 -327844 148393 -329204 c
-146952 -330564 146016 -332620 145600 -335340 C
-140024 -334348 L
-140696 -330612 142248 -327708 144664 -325660 c
-147080 -323604 150097 -322572 153697 -322572 c
-156177 -322572 158465 -323108 160545 -324164 c
-162633 -325228 164233 -326684 165337 -328524 c
-166441 -330364 166993 -332316 166993 -334380 c
-166993 -336348 166465 -338141 165417 -339749 c
-164361 -341357 162793 -342645 160729 -343589 C
-163417 -344213 165505 -345501 166993 -347453 c
-168481 -349405 169226 -351853 169226 -354781 c
-169226 -358750 167777 -362118 164889 -364870 c
-161993 -367630 158329 -369014 153913 -369014 c
-149929 -369014 146608 -367822 143976 -365454 c
-141344 -363078 139832 -359990 139464 -356213 c
-139464 -356205 L
-@c
-F
-%CHAR: 0 -439278 (B) @t
-4648 -439278 m
-4648 -393828 L
-21697 -393828 l
-25169 -393828 27953 -394292 30049 -395204 c
-32146 -396124 33802 -397548 34986 -399452 c
-36170 -401364 36770 -403372 36770 -405452 c
-36770 -407396 36242 -409229 35194 -410941 c
-34138 -412653 32538 -414045 30409 -415101 C
-33162 -415901 35282 -417285 36754 -419221 c
-38226 -421157 38970 -423461 38970 -426101 c
-38970 -428229 38522 -430222 37626 -432046 c
-36730 -433870 35610 -435286 34290 -436278 c
-32970 -437270 31305 -438022 29313 -438518 c
-27321 -439022 24873 -439278 21977 -439278 c
-4648 -439278 L
-@c
-10665 -412925 m
-20489 -412925 l
-23153 -412925 25073 -412749 26225 -412397 c
-27753 -411949 28913 -411189 29681 -410141 c
-30457 -409085 30849 -407757 30849 -406164 c
-30849 -404660 30481 -403332 29761 -402188 c
-29041 -401036 28001 -400244 26665 -399828 c
-25321 -399404 23009 -399188 19745 -399188 c
-10665 -399188 L
-10665 -412925 L
-@c
-10665 -433918 m
-21977 -433918 l
-23921 -433918 25289 -433846 26073 -433702 c
-27449 -433454 28609 -433038 29537 -432462 c
-30465 -431886 31241 -431038 31834 -429934 c
-32434 -428830 32738 -427549 32738 -426101 c
-32738 -424413 32298 -422941 31433 -421693 c
-30569 -420445 29361 -419557 27825 -419053 c
-26289 -418549 24065 -418293 21169 -418293 c
-10665 -418293 L
-10665 -433918 L
-@c
-F
-%CHAR: 140304 -439278 (a) @t
-165977 -435214 m
-163913 -436974 161913 -438222 160009 -438942 c
-158097 -439662 156041 -440030 153849 -440030 c
-150232 -440030 147448 -439142 145512 -437382 c
-143568 -435614 142592 -433350 142592 -430598 c
-142592 -428990 142960 -427509 143688 -426181 c
-144424 -424853 145392 -423773 146576 -422973 c
-147760 -422173 149104 -421557 150592 -421141 c
-151689 -420853 153345 -420573 155553 -420309 c
-160057 -419773 163377 -419125 165505 -418381 C
-165521 -417621 165537 -417133 165537 -416925 c
-165537 -414653 165009 -413053 163961 -412125 c
-162537 -410861 160409 -410229 157601 -410229 c
-154977 -410229 153041 -410693 151793 -411605 c
-150544 -412525 149608 -414157 149016 -416493 C
-143552 -415749 L
-144048 -413413 144864 -411525 146000 -410093 c
-147136 -408653 148792 -407541 150937 -406772 c
-153081 -406004 155577 -405612 158409 -405612 c
-161217 -405612 163505 -405948 165257 -406604 c
-167017 -407260 168313 -408101 169137 -409101 c
-169961 -410101 170545 -411373 170873 -412893 c
-171057 -413845 171153 -415565 171153 -418045 c
-171153 -425485 l
-171153 -430670 171273 -433958 171505 -435326 c
-171745 -436702 172218 -438022 172922 -439278 C
-167089 -439278 L
-166513 -438126 166129 -436766 165969 -435222 C
-165977 -435214 L
-@c
-165513 -422749 m
-163481 -423581 160441 -424285 156393 -424861 c
-154105 -425189 152473 -425565 151529 -425973 c
-150576 -426389 149832 -426997 149320 -427789 c
-148808 -428589 148544 -429478 148544 -430446 c
-148544 -431934 149112 -433174 150232 -434166 c
-151361 -435158 153017 -435654 155185 -435654 c
-157329 -435654 159249 -435182 160921 -434246 c
-162593 -433302 163825 -432014 164609 -430382 c
-165201 -429126 165505 -427261 165505 -424805 c
-165513 -422749 L
-@c
-F
-%CHAR: 0 -510350 (C) @t
-37330 -494413 m
-43338 -495933 L
-42082 -500878 39810 -504646 36538 -507238 c
-33266 -509830 29257 -511126 24521 -511126 c
-19625 -511126 15641 -510126 12577 -508134 c
-9504 -506142 7168 -503246 5568 -499469 c
-3968 -495693 3160 -491621 3160 -487285 c
-3160 -482557 4064 -478420 5872 -474900 c
-7680 -471380 10256 -468692 13593 -466868 c
-16929 -465044 20609 -464124 24617 -464124 c
-29161 -464124 32986 -465284 36082 -467596 c
-39186 -469908 41354 -473172 42570 -477364 C
-36642 -478757 L
-35594 -475452 34058 -473036 32058 -471532 c
-30057 -470028 27529 -469268 24489 -469268 c
-21001 -469268 18073 -470108 15729 -471780 c
-13385 -473452 11729 -475708 10785 -478524 c
-9840 -481341 9360 -484261 9360 -487253 c
-9360 -491117 9928 -494493 11049 -497373 c
-12169 -500254 13929 -502414 16305 -503838 c
-18681 -505262 21257 -505982 24025 -505982 c
-27393 -505982 30249 -505006 32586 -503070 c
-34922 -501126 36506 -498237 37330 -494413 C
-@c
-F
-%CHAR: 143808 -510350 (3) @t
-146472 -498349 m
-152048 -497613 L
-152688 -500774 153784 -503054 155321 -504446 c
-156857 -505838 158745 -506542 160953 -506542 c
-163577 -506542 165793 -505630 167601 -503814 c
-169409 -501998 170313 -499741 170313 -497053 c
-170313 -494493 169473 -492373 167801 -490709 c
-166129 -489045 163993 -488213 161417 -488213 c
-160361 -488213 159049 -488421 157481 -488837 C
-158097 -483941 L
-158465 -483973 158769 -483997 158993 -483997 c
-161369 -483997 163513 -483373 165409 -482141 c
-167313 -480901 168265 -478981 168265 -476404 c
-168265 -474356 167569 -472660 166193 -471316 c
-164809 -469972 163017 -469300 160825 -469300 c
-158657 -469300 156841 -469988 155401 -471348 c
-153960 -472708 153024 -474764 152608 -477484 C
-147032 -476492 L
-147704 -472756 149256 -469852 151672 -467804 c
-154088 -465748 157105 -464716 160705 -464716 c
-163185 -464716 165473 -465252 167553 -466308 c
-169641 -467372 171241 -468828 172345 -470668 c
-173449 -472508 174001 -474460 174001 -476524 c
-174001 -478492 173473 -480285 172425 -481893 c
-171369 -483501 169801 -484789 167737 -485733 C
-170425 -486357 172513 -487645 174001 -489597 c
-175489 -491549 176234 -493997 176234 -496925 c
-176234 -500894 174785 -504262 171897 -507014 c
-169001 -509774 165337 -511158 160921 -511158 c
-156937 -511158 153616 -509966 150984 -507598 c
-148352 -505222 146840 -502134 146472 -498357 c
-146472 -498349 L
-@c
-F
-T
-@rax 413.35115 55.92019 553.73272 208.51654 @E
-[0.00028346 0.00000000 0.00000000 0.00028346 419.85069330 205.98632317] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/MTExtra 63499.00000 z
-%CHAR: 52952 -154990 (a) @t
-57712 -141021 m
-57712 -155246 L
-54536 -155246 L
-54536 -123236 L
-57712 -123236 L
-57712 -137461 L
-106539 -137461 L
-105314 -136237 103586 -134293 101362 -131653 c
-99138 -129013 97242 -126709 95682 -124765 C
-97906 -122540 L
-102130 -127581 107451 -133149 113843 -139245 C
-107451 -145342 102130 -150910 97906 -155942 C
-95682 -153726 L
-100802 -147334 104426 -143093 106539 -141021 C
-57712 -141021 L
-@c
-F
-%CHAR: 52952 -226062 (a) @t
-57712 -212093 m
-57712 -226318 L
-54536 -226318 L
-54536 -194308 L
-57712 -194308 L
-57712 -208533 L
-106539 -208533 L
-105314 -207309 103586 -205365 101362 -202725 c
-99138 -200085 97242 -197781 95682 -195837 C
-97906 -193612 L
-102130 -198653 107451 -204221 113843 -210317 C
-107451 -216414 102130 -221982 97906 -227014 C
-95682 -224798 L
-100802 -218406 104426 -214165 106539 -212093 C
-57712 -212093 L
-@c
-F
-%CHAR: 52952 -297134 (a) @t
-57712 -283165 m
-57712 -297390 L
-54536 -297390 L
-54536 -265380 L
-57712 -265380 L
-57712 -279605 L
-106539 -279605 L
-105314 -278381 103586 -276437 101362 -273797 c
-99138 -271157 97242 -268853 95682 -266909 C
-97906 -264684 L
-102130 -269725 107451 -275293 113843 -281389 C
-107451 -287486 102130 -293054 97906 -298086 C
-95682 -295870 L
-100802 -289478 104426 -285237 106539 -283165 C
-57712 -283165 L
-@c
-F
-%CHAR: 56488 -368206 (a) @t
-61248 -354237 m
-61248 -368462 L
-58072 -368462 L
-58072 -336452 L
-61248 -336452 L
-61248 -350677 L
-110075 -350677 L
-108850 -349453 107122 -347509 104898 -344869 c
-102674 -342229 100778 -339925 99218 -337981 C
-101442 -335756 L
-105666 -340797 110987 -346365 117379 -352461 C
-110987 -358558 105666 -364126 101442 -369158 C
-99218 -366942 L
-104338 -360550 107962 -356309 110075 -354237 C
-61248 -354237 L
-@c
-F
-%CHAR: 59992 -439278 (a) @t
-64752 -425309 m
-64752 -439534 L
-61576 -439534 L
-61576 -407524 L
-64752 -407524 L
-64752 -421749 L
-113579 -421749 L
-112354 -420525 110626 -418581 108402 -415941 c
-106178 -413301 104282 -410997 102722 -409053 C
-104946 -406828 L
-109170 -411869 114491 -417437 120883 -423533 C
-114491 -429630 109170 -435198 104946 -440230 C
-102722 -438014 L
-107842 -431622 111466 -427381 113579 -425309 C
-64752 -425309 L
-@c
-F
-%CHAR: 63496 -510350 (a) @t
-68256 -496381 m
-68256 -510606 L
-65080 -510606 L
-65080 -478596 L
-68256 -478596 L
-68256 -492821 L
-117083 -492821 L
-115858 -491597 114130 -489653 111906 -487013 c
-109682 -484373 107786 -482069 106226 -480125 C
-108450 -477900 L
-112674 -482941 117995 -488509 124387 -494605 C
-117995 -500702 112674 -506270 108450 -511302 C
-106226 -509086 L
-111346 -502694 114970 -498453 117083 -496381 C
-68256 -496381 L
-@c
-F
-T
-@rax %Note: Object
-289.47175 44.08809 557.67969 214.78422 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.21600 0.21600 0.00000 @w
-289.47175 214.78422 m
-557.67969 214.78422 L
-557.67969 44.08809 L
-289.47175 44.08809 L
-289.47175 214.78422 L
-@c
-S
-
-@rax %Note: Object
-394.90328 44.73156 394.90441 215.42258 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.21600 0.21600 0.00000 @w
-394.90384 215.42258 m
-394.90384 44.73156 L
-S
-
-@rax 289.96469 241.90838 299.24220 255.15298 @E
-[0.00021766 0.00000000 0.00000000 0.00021766 289.96477394 241.90829453] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 84666.00000 z
-%CHAR: 0 0 (2) @t
-42621 7150 m
-42621 0 L
-2555 0 L
-2508 1782 2790 3516 3423 5157 c
-4442 7888 6083 10584 8322 13221 c
-10573 15872 13819 18931 18064 22400 c
-24651 27792 29105 32082 31414 35235 c
-33723 38388 34884 41377 34884 44191 c
-34884 47133 33829 49630 31731 51646 c
-29621 53674 26866 54694 23479 54694 c
-19892 54694 17020 53615 14875 51470 c
-12729 49314 11639 46336 11616 42539 C
-3962 43324 L
-4477 49021 6458 53381 9869 56358 c
-13292 59347 17888 60847 23643 60847 c
-29457 60847 34063 59230 37450 56018 c
-40838 52795 42539 48786 42539 44027 c
-42539 41600 42033 39209 41049 36876 c
-40064 34532 38412 32059 36114 29480 c
-33817 26890 29984 23326 24639 18802 c
-20173 15063 17302 12518 16036 11182 c
-14770 9846 13714 8486 12893 7150 C
-42621 7150 L
-@c
-F
-T
-@rax 240.85474 290.96646 250.26605 304.44576 @E
-[0.00021766 0.00000000 0.00000000 0.00021766 240.85469059 291.20120864] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 84666.00000 z
-%CHAR: 0 0 (3) @t
-3552 16001 m
-10994 16985 L
-11838 12764 13304 9717 15344 7865 c
-17396 6013 19904 5075 22858 5075 c
-26351 5075 29316 6294 31719 8709 c
-34133 11135 35341 14149 35341 17735 c
-35341 21146 34227 23971 32000 26186 c
-29773 28402 26925 29515 23479 29515 c
-22072 29515 20314 29234 18228 28683 C
-19048 35212 L
-19541 35165 19951 35130 20255 35130 c
-23420 35130 26268 35962 28800 37615 c
-31332 39267 32610 41822 32610 45258 c
-32610 47989 31684 50263 29843 52045 c
-28003 53826 25612 54729 22694 54729 c
-19798 54729 17384 53815 15462 52009 c
-13538 50193 12284 47450 11733 43816 C
-4290 45141 L
-5204 50122 7279 53990 10490 56733 c
-13714 59476 17735 60847 22529 60847 c
-25835 60847 28882 60132 31660 58726 c
-34438 57307 36571 55362 38048 52912 c
-39525 50462 40264 47848 40264 45094 c
-40264 42480 39560 40088 38154 37943 c
-36747 35798 34661 34086 31906 32821 C
-35493 32000 38283 30277 40264 27675 c
-42244 25073 43242 21803 43242 17900 c
-43242 12600 41307 8111 37450 4442 c
-33594 762 28706 -1078 22811 -1078 c
-17501 -1078 13081 504 9564 3669 c
-6048 6833 4044 10948 3552 15989 c
-3552 16001 L
-@c
-F
-T
-@rax 94.27493 268.81852 101.14157 282.06283 @E
-[0.00021766 0.00000000 0.00000000 0.00021766 94.27491729 268.81837052] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 84666.00000 z
-%CHAR: 0 0 (1) @t
-31543 0 m
-24100 0 L
-24100 47415 L
-22307 45703 19951 43992 17044 42291 c
-14137 40580 11522 39291 9213 38435 C
-9213 45633 L
-13374 47591 17020 49970 20127 52748 c
-23244 55526 25448 58233 26737 60847 C
-31531 60847 L
-31543 0 L
-@c
-F
-T
-@rax 324.79313 264.82791 334.25717 274.81635 @E
-[0.00021766 0.00000000 0.00000000 0.00021766 324.79316307 265.04574485] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 84666.00000 z
-%CHAR: 0 0 (a) @t
-34227 5415 m
-31473 3071 28812 1418 26268 457 c
-23725 -504 20982 -996 18064 -996 c
-13245 -996 9529 188 6939 2532 c
-4349 4888 3048 7912 3048 11569 c
-3048 13714 3540 15684 4513 17454 c
-5497 19236 6787 20666 8357 21732 c
-9940 22811 11733 23631 13714 24182 c
-15169 24557 17384 24944 20338 25296 c
-26339 26011 30769 26878 33606 27863 C
-33629 28871 33641 29527 33641 29797 c
-33641 32821 32938 34966 31531 36208 c
-29632 37884 26808 38728 23057 38728 c
-19564 38728 16985 38107 15321 36888 c
-13655 35669 12413 33489 11616 30383 C
-4337 31367 L
-4993 34485 6083 37005 7595 38916 c
-9107 40826 11311 42303 14172 43336 c
-17032 44367 20361 44895 24135 44895 c
-27886 44895 30933 44449 33266 43570 c
-35610 42691 37333 41576 38435 40240 c
-39537 38904 40322 37216 40756 35177 c
-41002 33911 41131 31613 41131 28308 c
-41131 18392 l
-41131 11475 41295 7103 41600 5275 c
-41916 3446 42550 1676 43488 0 C
-35716 0 L
-34942 1535 34438 3352 34227 5415 C
-@c
-33606 22037 m
-30910 20935 26843 19986 21451 19212 c
-18392 18779 16223 18275 14958 17735 c
-13690 17185 12706 16364 12026 15309 c
-11346 14254 10994 13069 10994 11780 c
-10994 9799 11745 8134 13245 6822 c
-14747 5497 16950 4829 19834 4829 c
-22694 4829 25260 5462 27487 6705 c
-29714 7959 31367 9682 32410 11862 c
-33207 13538 33606 16024 33606 19306 c
-33606 22037 L
-@c
-F
-T
-@rax 270.42094 268.60054 279.91361 282.00784 @E
-[0.00021766 0.00000000 0.00000000 0.00021766 270.42081867 268.81837052] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 84666.00000 z
-%CHAR: 0 0 (b) @t
-12448 0 m
-5532 0 L
-5532 60601 L
-12975 60601 L
-12975 38974 L
-16118 42914 20127 44895 25003 44895 c
-27698 44895 30265 44344 32668 43265 c
-35083 42174 37075 40639 38623 38669 c
-40182 36700 41412 34321 42280 31543 c
-43160 28753 43605 25776 43605 22611 c
-43605 15086 41740 9271 38025 5169 c
-34309 1067 29843 -996 24639 -996 c
-19458 -996 15379 1172 12436 5497 C
-12448 0 L
-@c
-12366 22283 m
-12366 17020 13069 13210 14500 10866 c
-16845 7044 20021 5122 24018 5122 c
-27265 5122 30078 6540 32446 9354 c
-34813 12178 35997 16399 35997 21990 c
-35997 27710 34860 31953 32586 34673 c
-30312 37404 27558 38775 24346 38775 c
-21099 38775 18286 37357 15919 34544 c
-13550 31719 12354 27616 12354 22272 C
-12366 22283 L
-@c
-F
-T
-@rax 243.29140 233.52123 252.33420 243.50967 @E
-[0.00021766 0.00000000 0.00000000 0.00021766 243.29134578 233.73902440] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 84666.00000 z
-%CHAR: 0 0 (c) @t
-34227 16083 m
-41541 15122 L
-40744 10080 38693 6130 35411 3282 c
-32117 434 28062 -996 23268 -996 c
-17267 -996 12424 973 8779 4888 c
-5134 8814 3305 14454 3305 21779 c
-3305 26515 4091 30676 5661 34227 c
-7232 37779 9623 40451 12823 42221 c
-16036 44004 19541 44895 23315 44895 c
-28074 44895 31988 43687 35012 41272 c
-38037 38857 39994 35434 40838 31004 C
-33606 29879 L
-32926 32832 31695 35059 29949 36536 c
-28202 38025 26081 38775 23596 38775 c
-19857 38775 16809 37427 14465 34743 c
-12120 32059 10948 27804 10948 21990 c
-10948 16094 12085 11803 14336 9131 c
-16598 6458 19552 5122 23186 5122 c
-26104 5122 28554 6025 30500 7806 c
-32457 9588 33711 12354 34227 16071 c
-34227 16083 L
-@c
-F
-T
-@rax 77.74583 165.48973 90.32485 179.12920 @E
-[0.00021766 0.00000000 0.00000000 0.00021766 77.74592832 165.71466363] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 84666.00000 z
-%CHAR: 0 0 (C) @t
-49771 21252 m
-57788 19212 L
-56112 12635 53076 7607 48716 4149 c
-44356 692 38998 -1043 32692 -1043 c
-26163 -1043 20842 293 16763 2942 c
-12671 5603 9553 9459 7420 14500 c
-5286 19541 4208 24967 4208 30746 c
-4208 37052 5415 42574 7818 47262 c
-10233 51963 13667 55538 18122 57976 c
-22576 60414 27476 61633 32821 61633 c
-38880 61633 43992 60085 48118 57003 c
-52244 53920 55139 49571 56757 43980 C
-48856 42115 L
-47450 46524 45410 49747 42738 51752 c
-40064 53768 36700 54776 32657 54776 c
-28003 54776 24100 53650 20982 51423 c
-17853 49196 15649 46184 14383 42433 c
-13116 38669 12483 34778 12483 30793 c
-12483 25636 13233 21135 14735 17302 c
-16235 13456 18568 10584 21732 8685 c
-24897 6787 28343 5825 32035 5825 c
-36524 5825 40334 7126 43441 9705 c
-46559 12296 48669 16153 49771 21240 c
-49771 21252 L
-@c
-F
-T
-@rax 121.59014 368.92828 133.93672 382.11761 @E
-[0.00021766 0.00000000 0.00000000 0.00021766 121.61878102 368.92822371] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 84666.00000 z
-%CHAR: 0 0 (A) @t
--141 0 m
-23151 60601 L
-31789 60601 L
-56592 0 L
-47450 0 L
-40381 18345 L
-15040 18345 L
-8381 0 L
--141 0 L
-@c
-17360 24885 m
-37908 24885 L
-31578 41670 l
-29656 46758 28214 50955 27276 54236 C
-26503 50345 25413 46477 24018 42656 c
-17360 24885 L
-@c
-F
-T
-@rax 419.27187 344.77682 430.58183 357.96643 @E
-[0.00021766 0.00000000 0.00000000 0.00021766 419.27182886 344.77693330] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 84666.00000 z
-%CHAR: 0 0 (B) @t
-6201 0 m
-6201 60601 L
-28929 60601 l
-33559 60601 37286 59980 40076 58761 c
-42867 57542 45071 55643 46641 53100 c
-48224 50556 49021 47884 49021 45094 c
-49021 42515 48317 40064 46922 37779 c
-45516 35493 43383 33641 40545 32235 C
-44203 31168 47028 29328 48997 26749 c
-50966 24159 51963 21088 51963 17560 c
-51963 14723 51365 12085 50169 9647 c
-48974 7209 47473 5321 45715 4009 c
-43957 2684 41729 1676 39080 1008 c
-36431 340 33161 0 29304 0 c
-6201 0 L
-@c
-14219 35141 m
-27323 35130 l
-30875 35130 33430 35364 34966 35833 c
-37005 36442 38541 37450 39572 38857 c
-40603 40264 41131 42033 41131 44145 c
-41131 46161 40650 47931 39689 49454 c
-38728 50978 37333 52033 35552 52596 c
-33758 53158 30676 53451 26327 53451 c
-14219 53451 L
-14219 35141 L
-@c
-14219 7150 m
-29304 7150 l
-31895 7150 33723 7244 34766 7431 c
-36607 7759 38154 8322 39384 9084 c
-40627 9858 41647 10983 42445 12460 c
-43242 13936 43652 15637 43652 17560 c
-43652 19822 43066 21791 41916 23455 c
-40768 25120 39150 26292 37099 26960 c
-35048 27640 32082 27980 28226 27980 c
-14219 27980 L
-14219 7150 L
-@c
-F
-T
-@rax %Note: Object
-261.56608 194.14970 300.50872 234.18142 @E
-0 J 0 j [2 5 ] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.21600 0.21600 0.00000 @w
-300.50872 234.18142 m
-276.19228 224.62866 261.56608 197.55694 287.02261 194.14970 C
-S
-@j
-0.00 0.00 0.00 1.00 K
-0.00 0.00 0.00 1.00 k
-0 @g
-0 @G
-[] 0 d 0 J 0 j
-0 R 0 O
-0 1.00800 1.00800 0 @w
-290.53729 193.67943 m
-283.94476 197.61279 L
-284.67638 195.48085 284.40907 193.48271 283.14255 191.61836 C
-290.53729 193.67943 L
-f
-@J
-
-@rax %Note: Object
-114.16252 248.54570 280.20444 271.78214 @E
-0 J 0 j [2 5 ] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-114.16252 271.78214 m
-280.20444 248.54570 L
-S
-
-%%PageTrailer
-@rs
-@rs
-%%Trailer
-@EndSysCorelDict
-end
-%%DocumentSuppliedResources: procset wCorel6Dict
-%%EOF
diff --git a/doc/slides/obr2.eps b/doc/slides/obr2.eps deleted file mode 100644 index 62ae8517..00000000 --- a/doc/slides/obr2.eps +++ /dev/null @@ -1,1134 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0
-%%BoundingBox: 38 83 565 445
-%%Creator: CorelDRAW
-%%Title:
-%%CreationDate: Mon Jun 26 02:36:57 2000
-%%DocumentProcessColors: Black
-%%DocumentSuppliedResources: (atend)
-%%EndComments
-%%BeginProlog
-/AutoFlatness true def
-/AutoSteps 0 def
-/CMYKMarks true def
-/UseLevel2 false def
-%Color profile: _DEFAULT.CCM - Generic CMYK
-%%BeginResource: procset wCorel6Dict 6.0 0
-% Copyright (c)1992-96 Corel Corporation
-% All rights reserved. v6.0 r1.1
-/wCorel6Dict 300 dict def wCorel6Dict begin/bd{bind def}bind def/ld{load def}
-bd/xd{exch def}bd/_ null def/rp{{pop}repeat}bd/@cp/closepath ld/@gs/gsave ld
-/@gr/grestore ld/@np/newpath ld/Tl/translate ld/$sv 0 def/@sv{/$sv save def}bd
-/@rs{$sv restore}bd/spg/showpage ld/showpage{}bd currentscreen/@dsp xd/$dsp
-/@dsp def/$dsa xd/$dsf xd/$sdf false def/$SDF false def/$Scra 0 def/SetScr
-/setscreen ld/setscreen{pop pop pop}bd/@ss{2 index 0 eq{$dsf 3 1 roll 4 -1 roll
-pop}if exch $Scra add exch load SetScr}bd/SepMode_5 where{pop}{/SepMode_5 0
-def}ifelse/CurrentInkName_5 where{pop}{/CurrentInkName_5(Composite)def}ifelse
-/$ink_5 where{pop}{/$ink_5 -1 def}ifelse/$c 0 def/$m 0 def/$y 0 def/$k 0 def
-/$t 1 def/$n _ def/$o 0 def/$fil 0 def/$C 0 def/$M 0 def/$Y 0 def/$K 0 def/$T 1
-def/$N _ def/$O 0 def/$PF false def/s1c 0 def/s1m 0 def/s1y 0 def/s1k 0 def
-/s1t 0 def/s1n _ def/$bkg false def/SK 0 def/SM 0 def/SY 0 def/SC 0 def/$op
-false def matrix currentmatrix/$ctm xd/$ptm matrix def/$ttm matrix def/$stm
-matrix def/$fst 128 def/$pad 0 def/$rox 0 def/$roy 0 def/$fmp 50 def/$ffpnt
-true def/CorelDrawReencodeVect[16#0/grave 16#5/breve 16#6/dotaccent 16#8/ring
-16#A/hungarumlaut 16#B/ogonek 16#C/caron 16#D/dotlessi 16#27/quotesingle
-16#60/grave 16#7C/bar
-16#82/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl
-16#88/circumflex/perthousand/Scaron/guilsinglleft/OE
-16#91/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash/emdash
-16#98/tilde/trademark/scaron/guilsinglright/oe 16#9F/Ydieresis
-16#A1/exclamdown/cent/sterling/currency/yen/brokenbar/section
-16#a8/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/minus/registered/macron
-16#b0/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered
-16#b8/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown
-16#c0/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
-16#c8/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis
-16#d0/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply
-16#d8/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls
-16#e0/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
-16#e8/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
-16#f0/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide
-16#f8/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
-/L2?/languagelevel where{pop languagelevel 2 ge}{false}ifelse def
-/@BeginSysCorelDict{systemdict/Corel30Dict known{systemdict/Corel30Dict get
-exec}if}bd/@EndSysCorelDict{systemdict/Corel30Dict known{end}if}bd AutoFlatness
-{/@ifl{dup currentflat exch sub 10 gt{
-([Error: PathTooComplex; OffendingCommand: AnyPaintingOperator]\n)print flush
-@np exit}{currentflat 2 add setflat}ifelse}bd/@fill/fill ld/fill{currentflat{
-{@fill}stopped{@ifl}{exit}ifelse}bind loop setflat}bd/@eofill/eofill ld/eofill
-{currentflat{{@eofill}stopped{@ifl}{exit}ifelse}bind loop setflat}bd/@clip
-/clip ld/clip{currentflat{{@clip}stopped{@ifl}{exit}ifelse}bind loop setflat}
-bd/@eoclip/eoclip ld/eoclip{currentflat{{@eoclip}stopped{@ifl}{exit}ifelse}
-bind loop setflat}bd/@stroke/stroke ld/stroke{currentflat{{@stroke}stopped
-{@ifl}{exit}ifelse}bind loop setflat}bd}if L2?{/@ssa{true setstrokeadjust}bd}{
-/@ssa{}bd}ifelse/d/setdash ld/j/setlinejoin ld/J/setlinecap ld/M/setmiterlimit
-ld/w/setlinewidth ld/O{/$o xd}bd/R{/$O xd}bd/W/eoclip ld/c/curveto ld/C/c ld/l
-/lineto ld/L/l ld/rl/rlineto ld/m/moveto ld/n/newpath ld/N/newpath ld/P{11 rp}
-bd/u{}bd/U{}bd/A{pop}bd/q/@gs ld/Q/@gr ld/&{}bd/@j{@sv @np}bd/@J{@rs}bd/g{1
-exch sub/$k xd/$c 0 def/$m 0 def/$y 0 def/$t 1 def/$n _ def/$fil 0 def}bd/G{1
-sub neg/$K xd _ 1 0 0 0/$C xd/$M xd/$Y xd/$T xd/$N xd}bd/k{1 index type
-/stringtype eq{/$t xd/$n xd}{/$t 0 def/$n _ def}ifelse/$k xd/$y xd/$m xd/$c xd
-/$fil 0 def}bd/K{1 index type/stringtype eq{/$T xd/$N xd}{/$T 0 def/$N _ def}
-ifelse/$K xd/$Y xd/$M xd/$C xd}bd/x/k ld/X/K ld/sf{1 index type/stringtype eq{
-/s1t xd/s1n xd}{/s1t 0 def/s1n _ def}ifelse/s1k xd/s1y xd/s1m xd/s1c xd}bd/i{
-dup 0 ne{setflat}{pop}ifelse}bd/v{4 -2 roll 2 copy 6 -2 roll c}bd/V/v ld/y{2
-copy c}bd/Y/y ld/@w{matrix rotate/$ptm xd matrix scale $ptm dup concatmatrix
-/$ptm xd 1 eq{$ptm exch dup concatmatrix/$ptm xd}if 1 w}bd/@g{1 eq dup/$sdf xd
-{/$scp xd/$sca xd/$scf xd}if}bd/@G{1 eq dup/$SDF xd{/$SCP xd/$SCA xd/$SCF xd}
-if}bd/@D{2 index 0 eq{$dsf 3 1 roll 4 -1 roll pop}if 3 copy exch $Scra add exch
-load SetScr/$dsp xd/$dsa xd/$dsf xd}bd/$ngx{$SDF{$SCF SepMode_5 0 eq{$SCA}
-{$dsa}ifelse $SCP @ss}if}bd/p{/$pm xd 7 rp/$pyf xd/$pxf xd/$pn xd/$fil 1 def}
-bd/@MN{2 copy le{pop}{exch pop}ifelse}bd/@MX{2 copy ge{pop}{exch pop}ifelse}bd
-/InRange{3 -1 roll @MN @MX}bd/wDstChck{2 1 roll dup 3 -1 roll eq{1 add}if}bd
-/@dot{dup mul exch dup mul add 1 exch sub}bd/@lin{exch pop abs 1 exch sub}bd
-/cmyk2rgb{3{dup 5 -1 roll add 1 exch sub dup 0 lt{pop 0}if exch}repeat pop}bd
-/rgb2cmyk{3{1 exch sub 3 1 roll}repeat 3 copy @MN @MN 3{dup 5 -1 roll sub neg
-exch}repeat}bd/rgb2g{2 index .299 mul 2 index .587 mul add 1 index .114 mul add
-4 1 roll pop pop pop}bd/WaldoColor_5 where{pop}{/SetRgb/setrgbcolor ld/GetRgb
-/currentrgbcolor ld/SetGry/setgray ld/GetGry/currentgray ld/SetRgb2 systemdict
-/setrgbcolor get def/GetRgb2 systemdict/currentrgbcolor get def/SetHsb
-systemdict/sethsbcolor get def/GetHsb systemdict/currenthsbcolor get def
-/rgb2hsb{SetRgb2 GetHsb}bd/hsb2rgb{3 -1 roll dup floor sub 3 1 roll SetHsb
-GetRgb2}bd/setcmykcolor where{pop/SetCmyk_5/setcmykcolor ld}{/SetCmyk_5{
-cmyk2rgb SetRgb}bd}ifelse/currentcmykcolor where{pop/GetCmyk/currentcmykcolor
-ld}{/GetCmyk{GetRgb rgb2cmyk}bd}ifelse/setoverprint where{pop}{/setoverprint{
-/$op xd}bd}ifelse/currentoverprint where{pop}{/currentoverprint{$op}bd}ifelse
-/@tc_5{5 -1 roll dup 1 ge{pop}{4{dup 6 -1 roll mul exch}repeat pop}ifelse}bd
-/@trp{exch pop 5 1 roll @tc_5}bd/setprocesscolor_5{SepMode_5 0 eq{SetCmyk_5}{0
-4 $ink_5 sub index exch pop 5 1 roll pop pop pop pop SepsColor true eq{$ink_5 3
-gt{1 sub neg SetGry}{0 0 0 4 $ink_5 roll SetCmyk_5}ifelse}{1 sub neg SetGry}
-ifelse}ifelse}bd/findcmykcustomcolor where{pop}{/findcmykcustomcolor{5 array
-astore}bd}ifelse/setcustomcolor where{pop}{/setcustomcolor{exch aload pop
-SepMode_5 0 eq{pop @tc_5 setprocesscolor_5}{CurrentInkName_5 eq{4 index}{0}
-ifelse 6 1 roll 5 rp 1 sub neg SetGry}ifelse}bd}ifelse/@scc_5{dup type
-/booleantype eq{setoverprint}{1 eq setoverprint}ifelse dup _ eq{pop
-setprocesscolor_5 pop}{findcmykcustomcolor exch setcustomcolor}ifelse SepMode_5
-0 eq{true}{GetGry 1 eq currentoverprint and not}ifelse}bd/colorimage where{pop
-/ColorImage{colorimage}def}{/ColorImage{/ncolors xd pop/dataaq xd{dataaq
-ncolors dup 3 eq{/$dat xd 0 1 $dat length 3 div 1 sub{dup 3 mul $dat 1 index
-get 255 div $dat 2 index 1 add get 255 div $dat 3 index 2 add get 255 div rgb2g
-255 mul cvi exch pop $dat 3 1 roll put}for $dat 0 $dat length 3 idiv
-getinterval pop}{4 eq{/$dat xd 0 1 $dat length 4 div 1 sub{dup 4 mul $dat 1
-index get 255 div $dat 2 index 1 add get 255 div $dat 3 index 2 add get 255 div
-$dat 4 index 3 add get 255 div cmyk2rgb rgb2g 255 mul cvi exch pop $dat 3 1
-roll put}for $dat 0 $dat length ncolors idiv getinterval}if}ifelse}image}bd
-}ifelse/setcmykcolor{1 5 1 roll _ currentoverprint @scc_5/$ffpnt xd}bd
-/currentcmykcolor{0 0 0 0}bd/setrgbcolor{rgb2cmyk setcmykcolor}bd
-/currentrgbcolor{currentcmykcolor cmyk2rgb}bd/sethsbcolor{hsb2rgb setrgbcolor}
-bd/currenthsbcolor{currentrgbcolor rgb2hsb}bd/setgray{dup dup setrgbcolor}bd
-/currentgray{currentrgbcolor rgb2g}bd}ifelse/WaldoColor_5 true def/@sft{$tllx
-$pxf add dup $tllx gt{$pwid sub}if/$tx xd $tury $pyf sub dup $tury lt{$phei
-add}if/$ty xd}bd/@stb{pathbbox/$ury xd/$urx xd/$lly xd/$llx xd}bd/@ep{{cvx exec
-}forall}bd/@tp{@sv/$in true def 2 copy dup $lly le{/$in false def}if $phei sub
-$ury ge{/$in false def}if dup $urx ge{/$in false def}if $pwid add $llx le{/$in
-false def}if $in{@np 2 copy m $pwid 0 rl 0 $phei neg rl $pwid neg 0 rl 0 $phei
-rl clip @np $pn cvlit load aload pop 7 -1 roll 5 index sub 7 -1 roll 3 index
-sub Tl matrix currentmatrix/$ctm xd @ep pop pop pop pop}{pop pop}ifelse @rs}bd
-/@th{@sft 0 1 $tly 1 sub{dup $psx mul $tx add{dup $llx gt{$pwid sub}{exit}
-ifelse}loop exch $phei mul $ty exch sub 0 1 $tlx 1 sub{$pwid mul 3 copy 3 -1
-roll add exch @tp pop}for pop pop}for}bd/@tv{@sft 0 1 $tlx 1 sub{dup $pwid mul
-$tx add exch $psy mul $ty exch sub{dup $ury lt{$phei add}{exit}ifelse}loop 0 1
-$tly 1 sub{$phei mul 3 copy sub @tp pop}for pop pop}for}bd/@pf{@gs $ctm
-setmatrix $pm concat @stb eoclip Bburx Bbury $pm itransform/$tury xd/$turx xd
-Bbllx Bblly $pm itransform/$tlly xd/$tllx xd/$wid $turx $tllx sub def/$hei
-$tury $tlly sub def @gs $vectpat{1 0 0 0 0 _ $o @scc_5{eofill}if}{$t $c $m $y
-$k $n $o @scc_5{SepMode_5 0 eq $pfrg or{$tllx $tlly Tl $wid $hei scale <00> 8 1
-false[8 0 0 1 0 0]{}imagemask}{/$bkg true def}ifelse}if}ifelse @gr $wid 0 gt
-$hei 0 gt and{$pn cvlit load aload pop/$pd xd 3 -1 roll sub/$phei xd exch sub
-/$pwid xd $wid $pwid div ceiling 1 add/$tlx xd $hei $phei div ceiling 1 add
-/$tly xd $psx 0 eq{@tv}{@th}ifelse}if @gr @np/$bkg false def}bd/@dlt_hsb{$fco
-nff ge{/$fco nff 1 sub def}if sub neg 2 div dup $fco div/kdb xd nff $fco sub
-div/kdb2 xd sub neg 2 div dup $fco div/kds xd nff $fco sub div/kds2 xd sub neg
-dup 0 eq{pop $frb 2 eq{.99}{-.99}ifelse}if dup $frb 2 eq exch 0 lt and{1 add}
-if dup $frb 1 eq exch 0 gt and{1 sub}if 2 div dup $fco div/kdh xd nff $fco sub
-div/kdh2 xd}bd/@dlt_cmyk{$fmp 50 eq{sub neg nff dup 1 gt{1 sub}if div/$dk xd
-sub neg nff dup 1 gt{1 sub}if div/$dy xd sub neg nff dup 1 gt{1 sub}if div/$dm
-xd sub neg nff dup 1 gt{1 sub}if div/$dc xd sub neg nff dup 1 gt{1 sub}if div
-/$dt xd}{$fco nff ge{/$fco nff 1 sub def}if sub neg 2 div dup $fco div/$dk xd
-nff $fco sub div/$dk2 xd sub neg 2 div dup $fco div/$dy xd nff $fco sub div
-/$dy2 xd sub neg 2 div dup $fco div/$dm xd nff $fco sub div/$dm2 xd sub neg 2
-div dup $fco div/$dc xd nff $fco sub div/$dc2 xd sub neg 2 div dup $fco div
-/$dt xd nff $fco sub div/$dt2 xd}ifelse}bd/@dlt{$fse $fss sub dup/nff xd $fmp
-mul $fmp add 100 div round cvi dup 0 le{pop 1}if/$fco xd/$fi 0 def $frb dup 1
-eq exch 2 eq or{$frt dup $frc $frm $fry $frk @tc_5 4 copy cmyk2rgb rgb2hsb 3
-copy/myb xd/mys xd/myh xd $tot $toc $tom $toy $tok @tc_5 cmyk2rgb rgb2hsb 3 1
-roll 4 1 roll 5 1 roll @dlt_hsb}{$frt dup $frc $frm $fry $frk @tc_5 5 copy $tot
-dup $toc $tom $toy $tok @tc_5 5 1 roll 6 1 roll 7 1 roll 8 1 roll 9 1 roll
-@dlt_cmyk}ifelse}bd/@ffnxt{/$fi $fi 1 add def $frb dup 1 eq exch 2 eq or{pop
-pop pop pop myh mys myb $fi $fco lt{kdb add 3 1 roll kds add 3 1 roll kdh add 3
-1 roll}{kdb2 add 3 1 roll kds2 add 3 1 roll kdh2 add 3 1 roll}ifelse 3 copy
-/myb xd/mys xd/myh xd hsb2rgb rgb2cmyk}{$fi $fco lt $fmp 50 eq or{$dk add 5 1
-roll $dy add 5 1 roll $dm add 5 1 roll $dc add 5 1 roll $dt add 5 1 roll}{$dk2
-add 5 1 roll $dy2 add 5 1 roll $dm2 add 5 1 roll $dc2 add 5 1 roll $dt2 add 5 1
-roll}ifelse}ifelse}bd/ffcol{5 copy $fsit 0 eq{setcmykcolor pop}{SepMode_5 0 ne
-{$frn findcmykcustomcolor exch setcustomcolor}{pop pop pop pop $frc $frm $fry
-$frk $frn findcmykcustomcolor exch setcustomcolor}ifelse}ifelse}bd/@ftl{1 index
-4 index sub dup $pad mul dup/$pdw xd 2 mul sub $fst div/$wid xd 2 index sub
-/$hei xd pop Tl @dlt $fss 0 eq{ffcol n 0 0 m 0 $hei l $pdw $hei l $pdw 0 l @cp
-$ffpnt{fill}{@np}ifelse}if $fss $wid mul $pdw add 0 Tl nff{ffcol n 0 0 m 0 $hei
-l $wid $hei l $wid 0 l @cp $ffpnt{fill}{@np}ifelse $wid 0 Tl @ffnxt}repeat 5 rp
-$tot dup $toc $tom $toy $tok @tc_5 ffcol n 0 0 m 0 $hei l $pdw $hei l $pdw 0 l
-@cp $ffpnt{fill}{@np}ifelse 5 rp}bd/@ftrs{1 index 4 index sub dup $rox mul
-/$row xd 2 div 1 index 4 index sub dup $roy mul/$roh xd 2 div 2 copy dup mul
-exch dup mul add sqrt $row dup mul $roh dup mul add sqrt add dup/$hei xd $fst
-div/$wid xd 4 index add $roh add exch 5 index add $row add exch Tl $fan rotate
-pop pop pop pop @dlt $fss 0 eq{ffcol $fty 3 eq{$hei dup neg dup m 2 mul @sqr}{
-0 0 m 0 0 $hei 0 360 arc}ifelse $ffpnt{fill}{@np}ifelse}if 1.0 $pad 2 mul sub
-dup scale $hei $fss $wid mul sub/$hei xd nff{ffcol $fty 3 eq{n $hei dup neg dup
-m 2 mul @sqr}{n 0 0 m 0 0 $hei 0 360 arc}ifelse $ffpnt{fill}{@np}ifelse/$hei
-$hei $wid sub def @ffnxt}repeat 5 rp}bd/@ftc{1 index 4 index sub dup $rox mul
-/$row xd 2 div 1 index 4 index sub dup $roy mul/$roh xd 2 div 2 copy dup mul
-exch dup mul add sqrt $row dup mul $roh dup mul add sqrt add dup/$hei xd $fst
-div/$wid xd 4 index add $roh add exch 5 index add $row add exch Tl pop pop pop
-pop @dlt $fss 0 eq{ffcol $ffpnt{fill}{@np}ifelse}{n}ifelse/$dang 180 $fst 1 sub
-div def/$sang $dang -2 div 180 add def/$eang $dang 2 div 180 add def/$sang
-$sang $dang $fss mul add def/$eang $eang $dang $fss mul add def/$sang $eang
-$dang sub def nff{ffcol n 0 0 m 0 0 $hei $sang $fan add $eang $fan add arc
-$ffpnt{fill}{@np}ifelse 0 0 m 0 0 $hei $eang neg $fan add $sang neg $fan add
-arc $ffpnt{fill}{@np}ifelse/$sang $eang def/$eang $eang $dang add def @ffnxt}
-repeat 5 rp}bd/@fstAdjust{72 0 matrix defaultmatrix dtransform exch dup mul
-exch dup mul add sqrt currentscreen pop pop div dup mul 1 add cvi 2 256 InRange
-$fsc 1 sub dup 0 le{pop 1}if mul/opt$fst xd AutoSteps dup 1 eq exch 3 eq or{
-opt$fst dup dup $fst dup 3 1 roll div exch 3 -1 roll gt{/$adj xd/$fst xd}{pop
-pop}ifelse}if AutoSteps dup 2 eq exch 3 eq or{opt$fst dup dup $fst dup 3 1 roll
-div exch 3 -1 roll lt{/$adj xd/$fst xd}{pop pop}ifelse}if}bd/@ff{/old$fst $fst
-def/$adj 1 def/$fss 0 def $o 1 eq setoverprint AutoSteps 0 gt{@fstAdjust}if 1 1
-$fsc 1 sub{dup 1 sub $fsit 0 eq{$fsa exch 5 mul 5 getinterval aload pop pop
-/$frk xd/$fry xd/$frm xd/$frc xd/$frn _ def/$frt 1 def $fsa exch 5 mul 5
-getinterval aload pop $adj mul cvi $fss add/$fse xd/$tok xd/$toy xd/$tom xd
-/$toc xd/$ton _ def/$tot 1 def}{$fsa exch 7 mul 7 getinterval aload pop pop
-/$frt xd/$frn xd/$frk xd/$fry xd/$frm xd/$frc xd $fsa exch 7 mul 7 getinterval
-aload pop $adj mul cvi $fss add/$fse xd/$tot xd/$ton xd/$tok xd/$toy xd/$tom xd
-/$toc xd}ifelse $fsit 0 eq SepMode_5 0 eq or dup not CurrentInkName_5 $frn eq
-and or{@sv $ctm setmatrix eoclip Bbllx Bblly Bburx Bbury $fty 2 eq{@ftc}{1
-index 3 index m 2 copy l 3 index 1 index l 3 index 3 index l @cp $fty dup 1 eq
-exch 3 eq or{@ftrs}{pop pop pop pop $fan rotate pathbbox @ftl}ifelse}ifelse @rs
-/$fss $fse def}{1 0 0 0 0 _ $o @scc_5{fill}if}ifelse}for @np/$fst old$fst def}
-bd/@Pf{@sv SepMode_5 0 eq $Psc 0 ne or $ink_5 3 eq or{0 J 0 j[]0 d $t $c $m $y
-$k $n $o @scc_5 pop $ctm setmatrix 72 1000 div dup matrix scale dup concat dup
-Bburx exch Bbury exch itransform ceiling cvi/Bbury xd ceiling cvi/Bburx xd
-Bbllx exch Bblly exch itransform floor cvi/Bblly xd floor cvi/Bbllx xd $Prm
-aload pop $Psn load exec}{1 SetGry eofill}ifelse @rs @np}bd/F{matrix
-currentmatrix $sdf{$scf $sca $scp @ss}if $fil 1 eq{@pf}{$fil 2 eq{@ff}{$fil 3
-eq{@Pf}{$t $c $m $y $k $n $o @scc_5{eofill}{@np}ifelse}ifelse}ifelse}ifelse
-$sdf{$dsf $dsa $dsp @ss}if setmatrix}bd/f{@cp F}bd/S{matrix currentmatrix $ctm
-setmatrix $SDF{$SCF $SCA $SCP @ss}if $T $C $M $Y $K $N $O @scc_5{matrix
-currentmatrix $ptm concat stroke setmatrix}{@np}ifelse $SDF{$dsf $dsa $dsp
-@ss}if setmatrix}bd/s{@cp S}bd/B{@gs F @gr S}bd/b{@cp B}bd/_E{5 array astore
-exch cvlit xd}bd/@cc{currentfile $dat readhexstring pop}bd/@sm{/$ctm $ctm
-currentmatrix def}bd/@E{/Bbury xd/Bburx xd/Bblly xd/Bbllx xd}bd/@c{@cp}bd/@p{
-/$fil 1 def 1 eq dup/$vectpat xd{/$pfrg true def}{@gs $t $c $m $y $k $n $o
-@scc_5/$pfrg xd @gr}ifelse/$pm xd/$psy xd/$psx xd/$pyf xd/$pxf xd/$pn xd}bd/@P
-{/$fil 3 def/$Psn xd/$Psc xd array astore/$Prm xd}bd/@k{/$fil 2 def/$fmp xd
-/$roy xd/$rox xd/$pad xd/$fty xd/$fan xd $fty 1 eq{/$fan 0 def}if/$frb xd/$fst
-xd/$fsc xd/$fsa xd/$fsit 0 def}bd/@x{/$fil 2 def/$fmp xd/$roy xd/$rox xd/$pad
-xd/$fty xd/$fan xd $fty 1 eq{/$fan 0 def}if/$frb xd/$fst xd/$fsc xd/$fsa xd
-/$fsit 1 def}bd/@ii{concat 3 index 3 index m 3 index 1 index l 2 copy l 1 index
-3 index l 3 index 3 index l clip pop pop pop pop}bd/tcc{@cc}def/@i{@sm @gs @ii
-6 index 1 ne{/$frg true def pop pop}{1 eq{s1t s1c s1m s1y s1k s1n $O @scc_5
-/$frg xd}{/$frg false def}ifelse 1 eq{@gs $ctm setmatrix F @gr}if}ifelse @np
-/$ury xd/$urx xd/$lly xd/$llx xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul 8
-div ceiling cvi string def $bkg $frg or{$SDF{$SCF $SCA $SCP @ss}if $llx $lly Tl
-$urx $llx sub $ury $lly sub scale $bkg{$t $c $m $y $k $n $o @scc_5 pop}if $wid
-$hei abs $bts 1 eq{$bkg}{$bts}ifelse[$wid 0 0 $hei neg 0 $hei 0
-gt{$hei}{0}ifelse]/tcc load $bts 1 eq{imagemask}{image}ifelse $SDF{$dsf $dsa
-$dsp @ss}if}{$hei abs{tcc pop}repeat}ifelse @gr $ctm setmatrix}bd/@I{@sm @gs
-@ii @np/$ury xd/$urx xd/$lly xd/$llx xd/$ncl xd/$bts xd/$hei xd/$wid xd/$dat
-$wid $bts mul $ncl mul 8 div ceiling cvi string def $ngx $llx $lly Tl $urx $llx
-sub $ury $lly sub scale $wid $hei abs $bts[$wid 0 0 $hei neg 0 $hei 0
-gt{$hei}{0}ifelse]/@cc load false $ncl ColorImage $SDF{$dsf $dsa $dsp @ss}if
-@gr $ctm setmatrix}bd L2?{/@I_2{@sm @gs @ii @np/$ury xd/$urx xd/$lly xd/$llx xd
-/$ncl xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul $ncl mul 8 div ceiling cvi
-string def $ngx $ncl 1 eq{/DeviceGray}{$ncl 3 eq{/DeviceRGB}{/DeviceCMYK}
-ifelse}ifelse setcolorspace $llx $lly Tl $urx $llx sub $ury $lly sub scale 8
-dict begin/ImageType 1 def/Width $wid def/Height $hei abs def/BitsPerComponent
-$bts def/Decode $ncl 1 eq{[0 1]}{$ncl 3 eq{[0 1 0 1 0 1]}{[0 1 0 1 0 1 0 1]}
-ifelse}ifelse def/ImageMatrix[$wid 0 0 $hei neg 0 $hei 0 gt{$hei}{0}ifelse]def
-/DataSource currentfile/ASCII85Decode filter def currentdict end image $SDF
-{$dsf $dsa $dsp @ss}if @gr $ctm setmatrix}bd}{/@I_2{}bd}ifelse/z{exch findfont
-exch scalefont setfont}bd/ZB{9 dict dup begin 4 1 roll/FontType 3 def
-/FontMatrix xd/FontBBox xd/Encoding 256 array def 0 1 255{Encoding exch
-/.notdef put}for/CharStrings 256 dict def CharStrings/.notdef{}put/Metrics 256
-dict def Metrics/.notdef 3 -1 roll put/BuildChar{exch dup/$char exch/Encoding
-get 3 index get def dup/Metrics get $char get aload pop setcachedevice begin
-Encoding exch get CharStrings exch get end exec}def end definefont pop}bd
-/ZBAddChar{findfont begin dup 4 1 roll dup 6 1 roll Encoding 3 1 roll put
-CharStrings 3 1 roll put Metrics 3 1 roll put end}bd/Z{findfont dup maxlength 2
-add dict exch dup{1 index/FID ne{3 index 3 1 roll put}{pop pop}ifelse}forall
-pop dup dup/Encoding get 256 array copy dup/$fe xd/Encoding exch put dup
-/Fontname 3 index put 3 -1 roll dup length 0 ne{0 exch{dup type 0 type eq{exch
-pop}{$fe exch 2 index exch put 1 add}ifelse}forall pop}if dup 256 dict dup
-/$met xd/Metrics exch put dup/FontMatrix get 0 get 1000 mul 1 exch div 3 index
-length 256 eq{0 1 255{dup $fe exch get dup/.notdef eq{pop pop}{5 index 3 -1
-roll get 2 index mul $met 3 1 roll put}ifelse}for}if pop definefont pop pop}bd
-/@ftx{{currentpoint 3 -1 roll(0)dup 3 -1 roll 0 exch put dup @gs true charpath
-$ctm setmatrix @@txt @gr @np stringwidth pop 3 -1 roll add exch m}forall}bd
-/@ft{matrix currentmatrix exch $sdf{$scf $sca $scp @ss}if $fil 1 eq{/@@txt/@pf
-ld @ftx}{$fil 2 eq{/@@txt/@ff ld @ftx}{$fil 3 eq{/@@txt/@Pf ld @ftx}{$t $c $m
-$y $k $n $o @scc_5{show}{pop}ifelse}ifelse}ifelse}ifelse $sdf{$dsf $dsa $dsp
-@ss}if setmatrix}bd/@st{matrix currentmatrix exch $SDF{$SCF $SCA $SCP @ss}if $T
-$C $M $Y $K $N $O @scc_5{{currentpoint 3 -1 roll(0)dup 3 -1 roll 0 exch put dup
-@gs true charpath $ctm setmatrix $ptm concat stroke @gr @np stringwidth pop 3
--1 roll add exch m}forall}{pop}ifelse $SDF{$dsf $dsa $dsp @ss}if setmatrix}bd
-/@te{@ft}bd/@tr{@st}bd/@ta{dup @gs @ft @gr @st}bd/@t@a{dup @gs @st @gr @ft}bd
-/@tm{@sm concat}bd/e{/t{@te}def}bd/r{/t{@tr}def}bd/o{/t{pop}def}bd/a{/t{@ta}
-def}bd/@a{/t{@t@a}def}bd/t{@te}def/T{@np $ctm setmatrix/$ttm matrix def}bd/ddt
-{t}def/@t{/$stm $stm currentmatrix def 3 1 roll m $ttm concat ddt $stm
-setmatrix}bd/@n{/$ttm exch matrix rotate def}bd/@s{}bd/@l{}bd/@B{@gs S @gr F}
-bd/@b{@cp @B}bd/@sep{CurrentInkName_5(Composite)eq{/$ink_5 -1 def}{
-CurrentInkName_5(Cyan)eq{/$ink_5 0 def}{CurrentInkName_5(Magenta)eq{/$ink_5 1
-def}{CurrentInkName_5(Yellow)eq{/$ink_5 2 def}{CurrentInkName_5(Black)eq
-{/$ink_5 3 def}{/$ink_5 4 def}ifelse}ifelse}ifelse}ifelse}ifelse}bd/@whi{@gs
--72000 dup m -72000 72000 l 72000 dup l 72000 -72000 l @cp 1 SetGry fill @gr}
-bd/@neg{[{1 exch sub}/exec cvx currenttransfer/exec cvx]cvx settransfer @whi}
-bd/currentscale{1 0 dtransform matrix defaultmatrix idtransform dup mul exch
-dup mul add sqrt 0 1 dtransform matrix defaultmatrix idtransform dup mul exch
-dup mul add sqrt}bd/@unscale{}bd/@smc{CMYKMarks{0 exch eq{1 1 1 1 1 _ 0 @scc_5
-pop}{1 0 0 0 0 _ 0 @scc_5 pop}ifelse}{SetGry}ifelse}bd/@gmc{CMYKMarks{GetCmyk
-pop pop pop 1 eq{0}{1}ifelse}{GetGry}ifelse}bd/@sqr{dup 0 rl dup 0 exch rl neg
-0 rl @cp}bd/corelsym{@gs @np Tl -90 rotate 7{45 rotate -.75 2 m 1.5 @sqr fill}
-repeat @gr}bd/@reg_cor{@gs @np Tl -6 -6 m 12 @sqr @gs 1 @gmc sub @smc fill @gr
-4{90 rotate 0 4 m 0 4 rl}repeat stroke 0 0 corelsym @gr}bd/@reg_std{@gs @np Tl
-.3 w 0 0 5 0 360 arc @cp @gs 1 @gmc sub @smc fill @gr 4{90 rotate 0 0 m 0 8 rl
-}repeat stroke @gr}bd/@reg_inv{@gs @np Tl .3 w 0 0 5 0 360 arc @cp @gs 1 @gmc
-sub @smc fill @gr 4{90 rotate 0 0 m 0 8 rl}repeat stroke 0 0 m 0 0 5 90 180 arc
-@cp 0 0 5 270 360 arc @cp fill @gr}bd/@reg_sqr{@gs @np Tl .3 w -7 -7 m 14 @sqr
-fill @gs 1 @gmc sub @smc 0 0 5 0 360 arc @cp save fill restore 4{90 rotate 0 0
-m 0 8 rl}repeat stroke @gr 4{90 rotate 0 0 m 0 5 rl}repeat stroke @gr}bd
-/@reg_lng{@gs @np 0 eq{/$Xlen 16 def/$Ylen 8 def}{/$Xlen 8 def/$Ylen 16 def}
-ifelse Tl .3 w 0 0 5 0 360 arc @cp @gs 1 @gmc sub @smc fill @gr 90 rotate 0 0 m
-0 $Xlen rl 90 rotate 0 0 m 0 $Ylen rl 90 rotate 0 0 m 0 $Xlen rl 90 rotate 0 0
-m 0 $Ylen rl stroke @gr}bd/@setdcol{0 $dcol eq{0 exch 1 exch sub 0 0 0 _ 0
-@scc_5 pop}{1 $dcol eq{0 exch 0 exch 1 exch sub 0 0 _ 0 @scc_5 pop}{2 $dcol eq
-{0 exch 0 exch 0 exch 1 exch sub 0 _ 0 @scc_5 pop}{SetGry}ifelse}ifelse}ifelse
-}bd/$corelmeter[1 .95 .75 .50 .25 .05 0]def/@colormeter{@gs @np 0 @setdcol 0.3
-w/Courier findfont 5 scalefont setfont/yy xd/xx xd 0 1 6{dup xx 20 sub yy m 20
-@sqr @gs $corelmeter exch get dup @setdcol fill @gr stroke xx 18 sub yy 2 add m
-exch dup 3 ge{1 SetGry}{0 @setdcol}ifelse 3 eq{pop}{100 mul 100 exch sub cvi 20
-string cvs show}ifelse/yy yy 20 add def}for @gr}bd/@calbar{@gs Tl @gs @np 0 0 m
-@gs 20 @sqr 1 1 0 0 0 _ 0 @scc_5 pop fill @gr 20 0 Tl 0 0 m @gs 20 @sqr 1 1 0 1
-0 _ 0 @scc_5 pop fill @gr 20 0 Tl 0 0 m @gs 20 @sqr 1 0 0 1 0 _ 0 @scc_5 pop
-fill @gr 20 0 Tl 0 0 m @gs 20 @sqr 1 0 1 1 0 _ 0 @scc_5 pop fill @gr 20 0 Tl 0
-0 m @gs 20 @sqr 1 0 1 0 0 _ 0 @scc_5 pop fill @gr 20 0 Tl 0 0 m @gs 20 @sqr 1 1
-1 0 0 _ 0 @scc_5 pop fill @gr 20 0 Tl 0 0 m @gs 20 @sqr 1 1 1 1 0 _ 0 @scc_5
-pop fill @gr @gr @np -84 0 Tl @gs 0 0 m 20 @sqr clip 1 1 0 0 0 _ 0 @scc_5 pop
-@gain @gr 20 0 Tl @gs 0 0 m 20 @sqr clip 1 0 1 0 0 _ 0 @scc_5 pop @gain @gr 20
-0 Tl @gs 0 0 m 20 @sqr clip 1 0 0 1 0 _ 0 @scc_5 pop @gain @gr 20 0 Tl @gs 0 0
-m 20 @sqr clip 1 0 0 0 1 _ 0 @scc_5 pop @gain @gr @gr}bd/@gain{10 10 Tl @np 0 0
-m 0 10 360{0 0 15 4 -1 roll dup 5 add arc @cp}for fill}bd/@crop{@gs 10 div
-/$croplen xd .3 w 0 @smc Tl rotate 0 0 m 0 $croplen neg rl stroke @gr}bd
-/deflevel 0 def/@sax{/deflevel deflevel 1 add def}bd/@eax{/deflevel deflevel
-dup 0 gt{1 sub}if def deflevel 0 gt{/eax load}{eax}ifelse}bd/eax{{exec}forall}
-bd/@rax{deflevel 0 eq{@rs @sv}if}bd/@daq{dup type/arraytype eq{{}forall}if}bd
-/@BMP{/@cc xd 12 index 1 gt UseLevel2 true eq and{7 -2 roll pop pop @I_2}{11
-index 1 eq{12 -1 roll pop @i}{7 -2 roll pop pop @I}ifelse}ifelse}bd systemdict
-/pdfmark known not{/pdfmark/cleartomark ld}if/@BeginEPS{$ngx 0 SetGry 0 J 0 j 1
-w[]0 d 10 M false setoverprint @np/EPSDict 200 dict def EPSDict begin @sv
-SepMode_5 0 ne{/colorimage{@gs/sepdict 50 dict def sepdict begin[{1 exch sub}
-/exec cvx currenttransfer/exec cvx]cvx settransfer 3 eq/$rgb xd{$rgb{/daq0 xd
-/daq1 xd/daq2 xd/daq_rgb load}{/daq0 xd/daq1 xd/daq2 xd/daq3 xd/daq_cmyk load}
-ifelse}{/daq0 xd/daq_one load}ifelse 2 index 8 eq/8bit xd $ink_5 dup 0 lt exch
-3 gt or{}{image}ifelse end @gr}bd/2cmyk{3{255 exch sub 3 1 roll}repeat 3 copy
-@MN @MN 3{dup 5 -1 roll sub neg exch}repeat}bd/daq_rgb{/i 0 def/daq2 load exec
-/daq1 load exec/daq0 load exec dup dup length 0 exch getinterval/$data xd{8bit
-{1 index i get 3 index i get 2cmyk 4 $ink_5 neg roll pop pop pop}{pop 0}ifelse
-$data i 3 -1 roll put/i i 1 add def}forall pop pop $data}bd/daq_cmyk{/daq3 load
-exec/daq2 load exec/daq1 load exec/daq0 load exec 4 $ink_5 neg roll pop pop pop
-}bd/daq_one{/$in 0 def/$out 0 def/daq0 load exec dup dup length $rgb{3}{4}
-ifelse idiv 0 exch getinterval/$data xd $data{pop 8bit{$rgb{0 index $in 2 add
-get 1 index $in 1 add get 2 index $in get 2cmyk}{0 index $in get 1 index $in 1
-add get 2 index $in 2 add get 3 index $in 3 add get}ifelse 4 $ink_5 neg roll
-pop pop pop}{0}ifelse $data $out 3 -1 roll put/$in $in $rgb{3}{4}ifelse add def
-/$out $out 1 add def}forall pop $data}bd}if}bd/@EndEPS{@rs end}bd end
-%%EndResource
-%%EndProlog
-%%BeginSetup
-wCorel6Dict begin
-@BeginSysCorelDict
-2.6131 setmiterlimit
-1.00 setflat
-/$fst 128 def
-%%EndSetup
-
-%%Page: 1 1
-%LogicalPage: 1
-%%BeginPageSetup
-@sv
-@sm
-@sv
-%%EndPageSetup
-@rax %Note: Object
-376.90583 229.84243 512.32734 329.07657 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 2.01600 2.01600 0.00000 @w
-394.94948 251.19383 m
-398.84967 256.36677 406.62539 257.12220 412.25896 252.87477 c
-417.89225 248.62706 419.30589 240.94403 415.40570 235.77080 c
-411.50580 230.59757 403.72951 229.84243 398.09594 234.08986 c
-392.46293 238.33701 391.04929 246.02060 394.94948 251.19383 c
-@c
-471.13569 236.30598 m
-466.84403 241.15918 467.65474 248.92951 472.93994 253.60271 c
-478.22542 258.27619 486.03657 258.12907 490.32765 253.27559 c
-494.61959 248.42211 493.80888 240.65206 488.52340 235.97858 c
-483.23792 231.30539 475.42706 231.45222 471.13569 236.30598 c
-@c
-501.95225 286.09342 m
-495.60406 284.79798 489.27657 289.37962 487.86605 296.29247 c
-486.45581 303.20532 490.48299 309.89934 496.83090 311.19506 c
-503.17852 312.49020 509.50630 307.90828 510.91682 300.99572 c
-512.32734 294.08258 508.30016 287.38857 501.95225 286.09342 c
-@c
-446.57121 300.99203 m
-452.66457 298.79121 455.67978 291.58384 453.28309 284.94822 c
-450.88583 278.31288 443.96135 274.69559 437.86800 276.89698 c
-431.77465 279.09751 428.75915 286.30488 431.15641 292.94050 c
-433.55310 299.57584 440.47786 303.19313 446.57121 300.99203 c
-@c
-396.46006 326.10983 m
-402.21978 323.14252 404.28142 315.60718 401.05020 309.33581 c
-397.81899 303.06387 390.48633 300.36841 384.72718 303.33572 c
-378.96746 306.30302 376.90583 313.83836 380.13704 320.11030 c
-383.36825 326.38167 390.70120 329.07657 396.46006 326.10983 c
-@c
-S
-
-@rax %Note: Object
-485.05805 257.45272 495.08362 286.43839 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 2.01600 2.01600 0.00000 @w
-485.05805 257.45272 m
-495.08362 286.43839 L
-S
-
-@rax %Note: Object
-450.41386 253.97235 473.10066 279.63014 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 2.01600 2.01600 0.00000 @w
-473.10066 253.97235 m
-450.41386 279.63014 L
-S
-
-@rax %Note: Object
-401.03461 293.24721 431.48098 308.93329 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 2.01600 2.01600 0.00000 @w
-401.03461 308.93329 m
-431.48098 293.24721 L
-S
-
-@rax %Note: Object
-444.29074 301.80926 447.88762 335.86894 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 2.01600 2.01600 0.00000 @w
-447.88762 335.86894 m
-444.29074 301.80926 L
-S
-
-@rax %Note: Object
-454.06828 289.76910 487.62624 296.61591 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 2.01600 2.01600 0.00000 @w
-487.62624 296.61591 m
-454.06828 289.76910 L
-S
-
-@rax %Note: Object
-412.65269 252.79115 433.27106 280.13868 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 2.01600 2.01600 0.00000 @w
-412.65269 252.79115 m
-433.27106 280.13868 L
-S
-
-@rax %Note: Object
-390.01663 255.03732 398.83918 302.13950 @E
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 2.01600 2.01600 0.00000 @w
-390.01663 302.13950 m
-398.83918 255.03732 L
-S
-
-@rax %Note: Object
-416.88510 240.94687 468.21515 242.55723 @E
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 2.01600 2.01600 0.00000 @w
-416.88510 240.94687 m
-468.21515 242.55723 L
-S
-
-@rax %Note: Object
-459.79398 310.19102 491.87537 340.78734 @E
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 2.01600 2.01600 0.00000 @w
-491.87537 310.19102 m
-459.79398 340.78734 L
-S
-
-@rax %Note: Object
-399.24028 323.47616 437.73789 341.99518 @E
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 2.01600 2.01600 0.00000 @w
-399.24028 323.47616 m
-437.73789 341.99518 L
-S
-
-@rax %Note: Object
-356.97061 91.75266 400.17175 193.59439 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 2.01600 2.01600 0.00000 @w
-392.60494 168.00406 m
-386.91865 164.89928 379.52306 167.41757 376.14217 173.60986 c
-372.76129 179.80243 374.64180 187.38482 380.32809 190.48989 c
-386.01468 193.59439 393.40998 191.07581 396.79087 184.88409 c
-400.17175 178.69153 398.29124 171.10857 392.60494 168.00406 c
-@c
-361.14746 97.03644 m
-356.97061 101.98942 357.96387 109.73820 363.35764 114.28639 c
-368.75140 118.83430 376.55660 118.50378 380.73288 113.55052 c
-384.90945 108.59754 383.91619 100.84847 378.52243 96.30085 c
-373.12866 91.75266 365.32318 92.08318 361.14746 97.03644 c
-@c
-S
-
-@rax %Note: Object
-345.75704 157.43594 375.81789 173.84854 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 2.01600 2.01600 0.00000 @w
-375.81789 173.84854 m
-345.75704 157.43594 L
-S
-
-@rax %Note: Object
-341.44894 114.65178 363.52658 140.83540 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 2.01600 2.01600 0.00000 @w
-363.52658 114.65178 m
-341.44894 140.83540 L
-S
-
-@rax %Note: Object
-120.82932 137.80828 462.92258 372.19436 @E
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.21600 0.21600 0.00000 @w
-146.89304 284.49354 m
-149.49524 278.56035 146.34822 271.40995 139.88693 268.57616 c
-133.42592 265.74265 126.03373 268.27058 123.43153 274.20378 c
-120.82932 280.13669 123.97663 287.28709 130.43764 290.12088 c
-136.89893 292.95468 144.29083 290.42674 146.89304 284.49354 c
-@c
-184.86085 321.68268 m
-187.46306 315.74948 184.31575 308.59909 177.85474 305.76529 c
-171.39373 302.93178 164.00154 305.45972 161.39934 311.39291 c
-158.79713 317.32583 161.94444 324.47622 168.40545 327.31002 c
-174.86674 330.14381 182.25865 327.61587 184.86085 321.68268 c
-@c
-347.25600 363.73323 m
-349.85820 357.80003 346.71090 350.64964 340.24961 347.81584 c
-333.78860 344.98205 326.39669 347.50998 323.79449 353.44318 c
-321.19200 359.37638 324.33959 366.52677 330.80060 369.36057 c
-337.26161 372.19436 344.65351 369.66643 347.25600 363.73323 c
-@c
-324.07569 158.43997 m
-327.57676 163.89128 335.27367 165.22838 341.21027 161.41578 c
-347.14658 157.60318 349.13310 150.04772 345.63203 144.59641 c
-342.13096 139.14482 334.43376 137.80828 328.49745 141.62060 c
-322.56113 145.43291 320.57461 152.98866 324.07569 158.43997 c
-@c
-462.24227 346.35260 m
-461.56195 339.90973 455.28463 335.25921 448.26831 336.00019 c
-441.25228 336.74088 436.08472 342.60038 436.76532 349.04324 c
-437.44564 355.48611 443.72296 360.13663 450.73899 359.39565 c
-457.75531 358.65468 462.92258 352.79546 462.24227 346.35260 c
-@c
-B
-
-@rax %Note: Object
-74.70142 309.85909 142.37150 375.25380 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 2.01600 2.01600 0.00000 @w
-100.76542 328.61027 m
-103.36734 322.67679 100.22031 315.52639 93.75931 312.69288 c
-87.29830 309.85909 79.90583 312.38674 77.30391 318.31994 c
-74.70142 324.25313 77.84901 331.40353 84.31002 334.23732 c
-90.77102 337.07112 98.16321 334.54318 100.76542 328.61027 c
-@c
-139.76957 366.79238 m
-142.37150 360.85946 139.22447 353.70907 132.76318 350.87556 c
-126.30217 348.04148 118.90998 350.56942 116.30778 356.50261 c
-113.70557 362.43609 116.85288 369.58620 123.31389 372.42000 c
-129.77490 375.25380 137.16709 372.72614 139.76957 366.79238 c
-@c
-S
-
-@rax %Note: Object
-97.27398 333.21855 117.72567 353.34794 @E
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 2.01600 2.01600 0.00000 @w
-97.27398 333.21855 m
-117.72567 353.34794 L
-S
-
-@rax %Note: Object
-135.69902 322.64532 164.71729 353.44658 @E
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 2.01600 2.01600 0.00000 @w
-135.69902 353.44658 m
-164.71729 322.64532 L
-S
-
-@rax %Note: Object
-143.76217 287.34208 164.27339 307.12224 @E
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 2.01600 2.01600 0.00000 @w
-164.27339 307.12224 m
-143.76217 287.34208 L
-S
-
-@rax %Note: Object
-94.68567 282.22469 124.32416 313.83156 @E
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 2.01600 2.01600 0.00000 @w
-124.32416 282.22469 m
-94.68567 313.83156 L
-S
-
-@rax %Note: Object
-225.42888 175.73641 254.09480 202.94844 @E
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.21600 0.21600 0.00000 @w
-251.49260 194.48731 m
-254.09480 188.55411 250.94750 181.40372 244.48649 178.57020 c
-238.02548 175.73641 230.63329 178.26435 228.03109 184.19726 c
-225.42888 190.13046 228.57619 197.28085 235.03720 200.11465 c
-241.49849 202.94844 248.89039 200.42050 251.49260 194.48731 c
-@c
-B
-
-@rax %Note: Object
-145.13641 280.15824 168.97578 307.33483 @E
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 7.20000 7.20000 0.00000 @w
-168.18094 307.33483 m
-168.97578 288.41811 161.29417 280.15824 145.13641 282.55635 C
-S
-
-@rax %Note: Object
-184.13433 320.73874 327.42255 355.52183 @E
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 7.20000 7.20000 0.00000 @w
-184.13433 320.73874 m
-327.42255 355.52183 L
-S
-
-@rax %Note: Object
-142.54923 193.37839 229.16920 273.16261 @E
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 7.20000 7.20000 0.00000 @w
-229.16920 193.37839 m
-142.54923 273.16261 L
-S
-
-@rax %Note: Object
-245.88935 193.72450 332.21083 349.59231 @E
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 7.20000 7.20000 0.00000 @w
-332.21083 349.59231 m
-245.88935 193.72450 L
-S
-
-@rax %Note: Object
-248.37732 155.51858 327.31002 183.05546 @E
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 7.20000 7.20000 0.00000 @w
-248.37732 183.05546 m
-327.31002 155.51858 L
-S
-
-@rax %Note: Object
-345.32419 348.85219 441.55786 358.37291 @E
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 7.20000 7.20000 0.00000 @w
-345.32419 358.37291 m
-441.55786 348.85219 L
-S
-
-@rax %Note: Object
-41.17096 247.83364 217.89666 389.56791 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 3.67200 3.67200 0.00000 @w
-129.53395 389.56791 m
-178.20227 389.56791 217.89666 357.73285 217.89666 318.70091 c
-217.89666 279.66869 178.20227 247.83364 129.53395 247.83364 c
-80.86535 247.83364 41.17096 279.66869 41.17096 318.70091 c
-41.17096 357.73285 80.86535 389.56791 129.53395 389.56791 c
-@c
-S
-
-@rax %Note: Object
-274.17231 204.22346 562.46202 416.32866 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 3.67200 3.67200 0.00000 @w
-418.31717 416.32866 m
-497.70964 416.32866 562.46202 368.68791 562.46202 310.27606 c
-562.46202 251.86422 497.70964 204.22346 418.31717 204.22346 c
-338.92498 204.22346 274.17231 251.86422 274.17231 310.27606 c
-274.17231 368.68791 338.92498 416.32866 418.31717 416.32866 c
-@c
-S
-
-@rax %Note: Object
-199.13783 144.75458 275.15962 232.96649 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 3.67200 3.67200 0.00000 @w
-237.14901 232.96649 m
-258.08457 232.96649 275.15962 213.15345 275.15962 188.86054 c
-275.15962 164.56791 258.08457 144.75458 237.14901 144.75458 c
-216.21317 144.75458 199.13783 164.56791 199.13783 188.86054 c
-199.13783 213.15345 216.21317 232.96649 237.14901 232.96649 c
-@c
-S
-
-@rax %Note: Object
-299.84202 86.27698 442.01225 203.23219 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 3.67200 3.67200 0.00000 @w
-370.92728 203.23219 m
-410.07940 203.23219 442.01225 176.96296 442.01225 144.75458 c
-442.01225 112.54620 410.07940 86.27698 370.92728 86.27698 c
-331.77487 86.27698 299.84202 112.54620 299.84202 144.75458 c
-299.84202 176.96296 331.77487 203.23219 370.92728 203.23219 c
-@c
-S
-
-@rax 163.36998 398.81480 204.38646 416.58746 @E
-[0.00010238 0.00000000 0.00000000 0.00010238 163.40693983 399.10958467] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 234532.00000 z
-%CHAR: 0 0 (A) @t
--365 0 m
-64116 167857 L
-88056 167857 L
-156771 0 L
-131460 0 L
-111873 50836 L
-41669 50836 L
-23239 0 L
--365 0 L
-@c
-48095 68928 m
-104990 68928 L
-87477 115407 l
-82147 129542 78157 141146 75568 150222 C
-73436 139471 70421 128780 66522 118181 c
-48095 68928 L
-@c
-F
-%CHAR: 156450 0 (S) @t
-166988 53943 m
-187913 55771 L
-188887 47364 191233 40450 194827 35087 c
-198454 29727 204119 25341 211733 22051 c
-219348 18731 227967 17056 237500 17056 c
-245968 17056 253491 18335 259948 20833 c
-266435 23330 271278 26803 274448 31189 c
-277616 35574 279200 40390 279200 45567 c
-279200 50806 277677 55436 274631 59365 c
-271582 63294 266496 66613 259491 69263 c
-254983 71030 245023 73771 229612 77456 c
-214200 81142 203388 84644 197205 87934 c
-189192 92137 183192 97345 179293 103559 c
-175364 109772 173384 116777 173384 124455 c
-173384 132922 175791 140872 180603 148212 c
-185415 155583 192451 161187 201682 164994 c
-210911 168801 221206 170720 232475 170720 c
-244902 170720 255897 168710 265399 164720 c
-274905 160730 282215 154821 287332 147055 c
-292449 139258 295220 130425 295586 120587 C
-274265 118973 L
-273136 129572 269237 137613 262658 143004 c
-256049 148425 246272 151136 233389 151136 c
-219957 151136 210149 148669 204027 143765 c
-197875 138831 194796 132892 194796 125948 c
-194796 119917 196992 114950 201317 111051 c
-205581 107183 216789 103193 234820 99112 c
-252851 95030 265278 91436 271978 88391 c
-281728 83883 288976 78157 293606 71273 c
-298266 64390 300611 56410 300611 47395 c
-300611 38468 298053 30031 292936 22143 c
-287819 14254 280479 8102 270912 3716 c
-261349 -670 250536 -2863 238536 -2863 c
-223368 -2863 210606 -640 200373 3777 c
-190106 8193 182034 14863 176187 23757 c
-170339 32651 167262 42704 166958 53913 C
-166988 53943 L
-@c
-F
-%CHAR: 312900 0 (1) @t
-400286 0 m
-379635 0 L
-379635 131339 L
-374701 126618 368183 121866 360142 117143 c
-352102 112422 344820 108858 338423 106482 C
-338423 126404 L
-349936 131826 360051 138405 368640 146111 c
-377260 153816 383382 161309 386976 168558 C
-400255 168558 L
-400286 0 L
-@c
-F
-T
-@rax 473.57546 426.65244 517.60828 444.37720 @E
-[0.00010238 0.00000000 0.00000000 0.00010238 473.61228790 426.94733572] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 233884.00000 z
-%CHAR: 0 0 (A) @t
--365 0 m
-63930 167395 L
-87809 167395 L
-156339 0 L
-131089 0 L
-111566 50681 L
-41544 50681 L
-23178 0 L
--365 0 L
-@c
-47971 68743 m
-104713 68743 L
-87230 115099 l
-81931 129171 77941 140775 75352 149821 C
-73220 139100 70205 128409 66337 117840 c
-47971 68743 L
-@c
-F
-%CHAR: 156000 0 (S) @t
-166508 53788 m
-187402 55616 L
-188376 47240 190691 40356 194285 34996 c
-197910 29635 203544 25249 211128 21960 c
-218743 18670 227332 16995 236834 16995 c
-245271 16995 252764 18275 259221 20772 c
-265678 23270 270520 26742 273658 31097 c
-276825 35483 278409 40265 278409 45443 c
-278409 50681 276886 55311 273840 59210 c
-270795 63108 265769 66428 258764 69078 c
-254287 70814 244327 73555 228976 77240 c
-213595 80926 202783 84428 196630 87687 c
-188651 91860 182681 97068 178782 103282 c
-174853 109495 172873 116439 172873 124115 c
-172873 132551 175280 140470 180061 147811 c
-184874 155151 191879 160755 201077 164532 c
-210275 168339 220540 170258 231809 170258 c
-244205 170258 255170 168248 264642 164258 c
-274114 160268 281424 154359 286511 146623 c
-291597 138856 294369 130054 294734 120246 C
-273505 118632 L
-272378 129201 268510 137211 261931 142602 c
-255353 148024 245576 150735 232723 150735 c
-219321 150735 209544 148267 203453 143364 c
-197331 138460 194255 132521 194255 125607 c
-194255 119607 196417 114642 200742 110774 c
-205006 106876 216154 102886 234154 98835 c
-252155 94754 264520 91190 271221 88144 c
-280967 83667 288155 77971 292785 71088 c
-297414 64205 299760 56225 299760 47270 c
-299760 38377 297201 29940 292115 22082 c
-287028 14224 279688 8071 270155 3716 c
-260591 -670 249809 -2863 237870 -2863 c
-222733 -2863 210032 -640 199798 3746 c
-189564 8163 181493 14833 175676 23666 c
-169858 32529 166782 42580 166477 53788 C
-166508 53788 L
-@c
-F
-%CHAR: 312000 0 (2) @t
-429749 19767 m
-429719 0 L
-319066 0 L
-318914 4934 319706 9686 321472 14254 c
-324274 21777 328782 29209 334995 36519 c
-341209 43828 350194 52296 361889 61890 c
-380073 76814 392378 88632 398774 97342 c
-405170 106053 408368 114307 408368 122074 c
-408368 130206 405444 137090 399626 142663 c
-393809 148267 386195 151070 376844 151070 c
-366976 151070 359026 148085 353118 142176 c
-347178 136237 344133 127983 344072 117505 C
-322934 119668 L
-324396 135414 329848 147445 339290 155699 c
-348732 163953 361402 168095 377301 168095 c
-393352 168095 406083 163618 415434 154724 c
-424815 145831 429505 134775 429505 121617 c
-429505 114916 428135 108307 425394 101850 c
-422652 95393 418084 88540 411749 81413 c
-405413 74256 394814 64418 380042 51961 c
-367737 41605 359788 34569 356316 30884 c
-352813 27199 349889 23452 347605 19737 C
-429749 19767 L
-@c
-F
-T
-@rax 152.16265 141.66057 196.49282 159.44570 @E
-[0.00010238 0.00000000 0.00000000 0.00010238 152.19946733 141.96769757] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 234532.00000 z
-%CHAR: 0 0 (A) @t
--365 0 m
-64116 167857 L
-88056 167857 L
-156771 0 L
-131460 0 L
-111873 50836 L
-41669 50836 L
-23239 0 L
--365 0 L
-@c
-48095 68928 m
-104990 68928 L
-87477 115407 l
-82147 129542 78157 141146 75568 150222 C
-73436 139471 70421 128780 66522 118181 c
-48095 68928 L
-@c
-F
-%CHAR: 156450 0 (S) @t
-166988 53943 m
-187913 55771 L
-188887 47364 191233 40450 194827 35087 c
-198454 29727 204119 25341 211733 22051 c
-219348 18731 227967 17056 237500 17056 c
-245968 17056 253491 18335 259948 20833 c
-266435 23330 271278 26803 274448 31189 c
-277616 35574 279200 40390 279200 45567 c
-279200 50806 277677 55436 274631 59365 c
-271582 63294 266496 66613 259491 69263 c
-254983 71030 245023 73771 229612 77456 c
-214200 81142 203388 84644 197205 87934 c
-189192 92137 183192 97345 179293 103559 c
-175364 109772 173384 116777 173384 124455 c
-173384 132922 175791 140872 180603 148212 c
-185415 155583 192451 161187 201682 164994 c
-210911 168801 221206 170720 232475 170720 c
-244902 170720 255897 168710 265399 164720 c
-274905 160730 282215 154821 287332 147055 c
-292449 139258 295220 130425 295586 120587 C
-274265 118973 L
-273136 129572 269237 137613 262658 143004 c
-256049 148425 246272 151136 233389 151136 c
-219957 151136 210149 148669 204027 143765 c
-197875 138831 194796 132892 194796 125948 c
-194796 119917 196992 114950 201317 111051 c
-205581 107183 216789 103193 234820 99112 c
-252851 95030 265278 91436 271978 88391 c
-281728 83883 288976 78157 293606 71273 c
-298266 64390 300611 56410 300611 47395 c
-300611 38468 298053 30031 292936 22143 c
-287819 14254 280479 8102 270912 3716 c
-261349 -670 250536 -2863 238536 -2863 c
-223368 -2863 210606 -640 200373 3777 c
-190106 8193 182034 14863 176187 23757 c
-170339 32651 167262 42704 166958 53913 C
-166988 53943 L
-@c
-F
-%CHAR: 312900 0 (3) @t
-322738 44319 m
-343358 47060 L
-345703 35392 349754 26955 355422 21808 c
-361087 16660 368061 14071 376224 14071 c
-385910 14071 394103 17452 400773 24153 c
-407443 30854 410793 39202 410793 49100 c
-410793 58573 407687 66400 401534 72522 c
-395351 78675 387463 81751 377930 81751 c
-374031 81751 369188 80989 363401 79467 C
-365686 97558 L
-367026 97406 368153 97315 369006 97315 c
-377777 97315 385696 99599 392702 104168 c
-399707 108736 403240 115833 403240 125369 c
-403240 132922 400681 139227 395565 144161 c
-390448 149095 383838 151593 375767 151593 c
-367757 151593 361056 149065 355726 144039 c
-350363 139014 346921 131430 345398 121379 C
-324809 125034 L
-327306 138862 333063 149583 341957 157167 c
-350881 164751 362031 168558 375310 168558 c
-384448 168558 392915 166578 400590 162679 c
-408296 158750 414205 153359 418286 146567 c
-422367 139775 424438 132526 424438 124912 c
-424438 117663 422489 111051 418591 105112 c
-414692 99173 408905 94421 401291 90919 C
-411220 88634 418926 83852 424408 76664 c
-429890 69446 432665 60400 432665 49557 c
-432665 34935 427301 22478 416641 12305 c
-405951 2132 392427 -2985 376102 -2985 c
-361361 -2985 349114 1401 339398 10173 c
-329682 18945 324108 30366 322738 44319 C
-@c
-F
-T
-@rax 452.24504 153.16923 496.50775 170.94217 @E
-[0.00010238 0.00000000 0.00000000 0.00010238 452.28183306 153.46419486] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 234532.00000 z
-%CHAR: 0 0 (A) @t
--365 0 m
-64116 167857 L
-88056 167857 L
-156771 0 L
-131460 0 L
-111873 50836 L
-41669 50836 L
-23239 0 L
--365 0 L
-@c
-48095 68928 m
-104990 68928 L
-87477 115407 l
-82147 129542 78157 141146 75568 150222 C
-73436 139471 70421 128780 66522 118181 c
-48095 68928 L
-@c
-F
-%CHAR: 156450 0 (S) @t
-166988 53943 m
-187913 55771 L
-188887 47364 191233 40450 194827 35087 c
-198454 29727 204119 25341 211733 22051 c
-219348 18731 227967 17056 237500 17056 c
-245968 17056 253491 18335 259948 20833 c
-266435 23330 271278 26803 274448 31189 c
-277616 35574 279200 40390 279200 45567 c
-279200 50806 277677 55436 274631 59365 c
-271582 63294 266496 66613 259491 69263 c
-254983 71030 245023 73771 229612 77456 c
-214200 81142 203388 84644 197205 87934 c
-189192 92137 183192 97345 179293 103559 c
-175364 109772 173384 116777 173384 124455 c
-173384 132922 175791 140872 180603 148212 c
-185415 155583 192451 161187 201682 164994 c
-210911 168801 221206 170720 232475 170720 c
-244902 170720 255897 168710 265399 164720 c
-274905 160730 282215 154821 287332 147055 c
-292449 139258 295220 130425 295586 120587 C
-274265 118973 L
-273136 129572 269237 137613 262658 143004 c
-256049 148425 246272 151136 233389 151136 c
-219957 151136 210149 148669 204027 143765 c
-197875 138831 194796 132892 194796 125948 c
-194796 119917 196992 114950 201317 111051 c
-205581 107183 216789 103193 234820 99112 c
-252851 95030 265278 91436 271978 88391 c
-281728 83883 288976 78157 293606 71273 c
-298266 64390 300611 56410 300611 47395 c
-300611 38468 298053 30031 292936 22143 c
-287819 14254 280479 8102 270912 3716 c
-261349 -670 250536 -2863 238536 -2863 c
-223368 -2863 210606 -640 200373 3777 c
-190106 8193 182034 14863 176187 23757 c
-170339 32651 167262 42704 166958 53913 C
-166988 53943 L
-@c
-F
-%CHAR: 312900 0 (4) @t
-388712 0 m
-388681 40176 L
-315854 40176 L
-315854 59090 L
-392488 167857 L
-409301 167857 L
-409301 59090 L
-431995 59090 L
-431995 40176 L
-409301 40176 L
-409301 0 L
-388712 0 L
-@c
-388712 59090 m
-388681 134780 L
-336139 59090 L
-388712 59090 L
-@c
-F
-T
-%%PageTrailer
-@rs
-@rs
-%%Trailer
-@EndSysCorelDict
-end
-%%DocumentSuppliedResources: procset wCorel6Dict
-%%EOF
diff --git a/doc/slides/obr5.eps b/doc/slides/obr5.eps deleted file mode 100644 index e0e7ca69..00000000 --- a/doc/slides/obr5.eps +++ /dev/null @@ -1,3072 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0
-%%BoundingBox: 12 86 583 414
-%%Creator: CorelDRAW
-%%Title:
-%%CreationDate: Mon Jun 26 15:00:02 2000
-%%DocumentProcessColors: Black
-%%DocumentSuppliedResources: (atend)
-%%EndComments
-%%BeginProlog
-/AutoFlatness true def
-/AutoSteps 0 def
-/CMYKMarks true def
-/UseLevel2 false def
-%Color profile: Disabled
-%%BeginResource: procset wCorel6Dict 6.0 0
-% Copyright (c)1992-96 Corel Corporation
-% All rights reserved. v6.0 r1.1
-/wCorel6Dict 300 dict def wCorel6Dict begin/bd{bind def}bind def/ld{load def}
-bd/xd{exch def}bd/_ null def/rp{{pop}repeat}bd/@cp/closepath ld/@gs/gsave ld
-/@gr/grestore ld/@np/newpath ld/Tl/translate ld/$sv 0 def/@sv{/$sv save def}bd
-/@rs{$sv restore}bd/spg/showpage ld/showpage{}bd currentscreen/@dsp xd/$dsp
-/@dsp def/$dsa xd/$dsf xd/$sdf false def/$SDF false def/$Scra 0 def/SetScr
-/setscreen ld/setscreen{pop pop pop}bd/@ss{2 index 0 eq{$dsf 3 1 roll 4 -1 roll
-pop}if exch $Scra add exch load SetScr}bd/SepMode_5 where{pop}{/SepMode_5 0
-def}ifelse/CurrentInkName_5 where{pop}{/CurrentInkName_5(Composite)def}ifelse
-/$ink_5 where{pop}{/$ink_5 -1 def}ifelse/$c 0 def/$m 0 def/$y 0 def/$k 0 def
-/$t 1 def/$n _ def/$o 0 def/$fil 0 def/$C 0 def/$M 0 def/$Y 0 def/$K 0 def/$T 1
-def/$N _ def/$O 0 def/$PF false def/s1c 0 def/s1m 0 def/s1y 0 def/s1k 0 def
-/s1t 0 def/s1n _ def/$bkg false def/SK 0 def/SM 0 def/SY 0 def/SC 0 def/$op
-false def matrix currentmatrix/$ctm xd/$ptm matrix def/$ttm matrix def/$stm
-matrix def/$fst 128 def/$pad 0 def/$rox 0 def/$roy 0 def/$fmp 50 def/$ffpnt
-true def/CorelDrawReencodeVect[16#0/grave 16#5/breve 16#6/dotaccent 16#8/ring
-16#A/hungarumlaut 16#B/ogonek 16#C/caron 16#D/dotlessi 16#27/quotesingle
-16#60/grave 16#7C/bar
-16#82/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl
-16#88/circumflex/perthousand/Scaron/guilsinglleft/OE
-16#91/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash/emdash
-16#98/tilde/trademark/scaron/guilsinglright/oe 16#9F/Ydieresis
-16#A1/exclamdown/cent/sterling/currency/yen/brokenbar/section
-16#a8/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/minus/registered/macron
-16#b0/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered
-16#b8/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf/threequarters/questiondown
-16#c0/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
-16#c8/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis
-16#d0/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply
-16#d8/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls
-16#e0/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
-16#e8/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
-16#f0/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide
-16#f8/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
-/L2?/languagelevel where{pop languagelevel 2 ge}{false}ifelse def
-/@BeginSysCorelDict{systemdict/Corel30Dict known{systemdict/Corel30Dict get
-exec}if}bd/@EndSysCorelDict{systemdict/Corel30Dict known{end}if}bd AutoFlatness
-{/@ifl{dup currentflat exch sub 10 gt{
-([Error: PathTooComplex; OffendingCommand: AnyPaintingOperator]\n)print flush
-@np exit}{currentflat 2 add setflat}ifelse}bd/@fill/fill ld/fill{currentflat{
-{@fill}stopped{@ifl}{exit}ifelse}bind loop setflat}bd/@eofill/eofill ld/eofill
-{currentflat{{@eofill}stopped{@ifl}{exit}ifelse}bind loop setflat}bd/@clip
-/clip ld/clip{currentflat{{@clip}stopped{@ifl}{exit}ifelse}bind loop setflat}
-bd/@eoclip/eoclip ld/eoclip{currentflat{{@eoclip}stopped{@ifl}{exit}ifelse}
-bind loop setflat}bd/@stroke/stroke ld/stroke{currentflat{{@stroke}stopped
-{@ifl}{exit}ifelse}bind loop setflat}bd}if L2?{/@ssa{true setstrokeadjust}bd}{
-/@ssa{}bd}ifelse/d/setdash ld/j/setlinejoin ld/J/setlinecap ld/M/setmiterlimit
-ld/w/setlinewidth ld/O{/$o xd}bd/R{/$O xd}bd/W/eoclip ld/c/curveto ld/C/c ld/l
-/lineto ld/L/l ld/rl/rlineto ld/m/moveto ld/n/newpath ld/N/newpath ld/P{11 rp}
-bd/u{}bd/U{}bd/A{pop}bd/q/@gs ld/Q/@gr ld/&{}bd/@j{@sv @np}bd/@J{@rs}bd/g{1
-exch sub/$k xd/$c 0 def/$m 0 def/$y 0 def/$t 1 def/$n _ def/$fil 0 def}bd/G{1
-sub neg/$K xd _ 1 0 0 0/$C xd/$M xd/$Y xd/$T xd/$N xd}bd/k{1 index type
-/stringtype eq{/$t xd/$n xd}{/$t 0 def/$n _ def}ifelse/$k xd/$y xd/$m xd/$c xd
-/$fil 0 def}bd/K{1 index type/stringtype eq{/$T xd/$N xd}{/$T 0 def/$N _ def}
-ifelse/$K xd/$Y xd/$M xd/$C xd}bd/x/k ld/X/K ld/sf{1 index type/stringtype eq{
-/s1t xd/s1n xd}{/s1t 0 def/s1n _ def}ifelse/s1k xd/s1y xd/s1m xd/s1c xd}bd/i{
-dup 0 ne{setflat}{pop}ifelse}bd/v{4 -2 roll 2 copy 6 -2 roll c}bd/V/v ld/y{2
-copy c}bd/Y/y ld/@w{matrix rotate/$ptm xd matrix scale $ptm dup concatmatrix
-/$ptm xd 1 eq{$ptm exch dup concatmatrix/$ptm xd}if 1 w}bd/@g{1 eq dup/$sdf xd
-{/$scp xd/$sca xd/$scf xd}if}bd/@G{1 eq dup/$SDF xd{/$SCP xd/$SCA xd/$SCF xd}
-if}bd/@D{2 index 0 eq{$dsf 3 1 roll 4 -1 roll pop}if 3 copy exch $Scra add exch
-load SetScr/$dsp xd/$dsa xd/$dsf xd}bd/$ngx{$SDF{$SCF SepMode_5 0 eq{$SCA}
-{$dsa}ifelse $SCP @ss}if}bd/p{/$pm xd 7 rp/$pyf xd/$pxf xd/$pn xd/$fil 1 def}
-bd/@MN{2 copy le{pop}{exch pop}ifelse}bd/@MX{2 copy ge{pop}{exch pop}ifelse}bd
-/InRange{3 -1 roll @MN @MX}bd/wDstChck{2 1 roll dup 3 -1 roll eq{1 add}if}bd
-/@dot{dup mul exch dup mul add 1 exch sub}bd/@lin{exch pop abs 1 exch sub}bd
-/cmyk2rgb{3{dup 5 -1 roll add 1 exch sub dup 0 lt{pop 0}if exch}repeat pop}bd
-/rgb2cmyk{3{1 exch sub 3 1 roll}repeat 3 copy @MN @MN 3{dup 5 -1 roll sub neg
-exch}repeat}bd/rgb2g{2 index .299 mul 2 index .587 mul add 1 index .114 mul add
-4 1 roll pop pop pop}bd/WaldoColor_5 where{pop}{/SetRgb/setrgbcolor ld/GetRgb
-/currentrgbcolor ld/SetGry/setgray ld/GetGry/currentgray ld/SetRgb2 systemdict
-/setrgbcolor get def/GetRgb2 systemdict/currentrgbcolor get def/SetHsb
-systemdict/sethsbcolor get def/GetHsb systemdict/currenthsbcolor get def
-/rgb2hsb{SetRgb2 GetHsb}bd/hsb2rgb{3 -1 roll dup floor sub 3 1 roll SetHsb
-GetRgb2}bd/setcmykcolor where{pop/SetCmyk_5/setcmykcolor ld}{/SetCmyk_5{
-cmyk2rgb SetRgb}bd}ifelse/currentcmykcolor where{pop/GetCmyk/currentcmykcolor
-ld}{/GetCmyk{GetRgb rgb2cmyk}bd}ifelse/setoverprint where{pop}{/setoverprint{
-/$op xd}bd}ifelse/currentoverprint where{pop}{/currentoverprint{$op}bd}ifelse
-/@tc_5{5 -1 roll dup 1 ge{pop}{4{dup 6 -1 roll mul exch}repeat pop}ifelse}bd
-/@trp{exch pop 5 1 roll @tc_5}bd/setprocesscolor_5{SepMode_5 0 eq{SetCmyk_5}{0
-4 $ink_5 sub index exch pop 5 1 roll pop pop pop pop SepsColor true eq{$ink_5 3
-gt{1 sub neg SetGry}{0 0 0 4 $ink_5 roll SetCmyk_5}ifelse}{1 sub neg SetGry}
-ifelse}ifelse}bd/findcmykcustomcolor where{pop}{/findcmykcustomcolor{5 array
-astore}bd}ifelse/setcustomcolor where{pop}{/setcustomcolor{exch aload pop
-SepMode_5 0 eq{pop @tc_5 setprocesscolor_5}{CurrentInkName_5 eq{4 index}{0}
-ifelse 6 1 roll 5 rp 1 sub neg SetGry}ifelse}bd}ifelse/@scc_5{dup type
-/booleantype eq{setoverprint}{1 eq setoverprint}ifelse dup _ eq{pop
-setprocesscolor_5 pop}{findcmykcustomcolor exch setcustomcolor}ifelse SepMode_5
-0 eq{true}{GetGry 1 eq currentoverprint and not}ifelse}bd/colorimage where{pop
-/ColorImage{colorimage}def}{/ColorImage{/ncolors xd pop/dataaq xd{dataaq
-ncolors dup 3 eq{/$dat xd 0 1 $dat length 3 div 1 sub{dup 3 mul $dat 1 index
-get 255 div $dat 2 index 1 add get 255 div $dat 3 index 2 add get 255 div rgb2g
-255 mul cvi exch pop $dat 3 1 roll put}for $dat 0 $dat length 3 idiv
-getinterval pop}{4 eq{/$dat xd 0 1 $dat length 4 div 1 sub{dup 4 mul $dat 1
-index get 255 div $dat 2 index 1 add get 255 div $dat 3 index 2 add get 255 div
-$dat 4 index 3 add get 255 div cmyk2rgb rgb2g 255 mul cvi exch pop $dat 3 1
-roll put}for $dat 0 $dat length ncolors idiv getinterval}if}ifelse}image}bd
-}ifelse/setcmykcolor{1 5 1 roll _ currentoverprint @scc_5/$ffpnt xd}bd
-/currentcmykcolor{0 0 0 0}bd/setrgbcolor{rgb2cmyk setcmykcolor}bd
-/currentrgbcolor{currentcmykcolor cmyk2rgb}bd/sethsbcolor{hsb2rgb setrgbcolor}
-bd/currenthsbcolor{currentrgbcolor rgb2hsb}bd/setgray{dup dup setrgbcolor}bd
-/currentgray{currentrgbcolor rgb2g}bd}ifelse/WaldoColor_5 true def/@sft{$tllx
-$pxf add dup $tllx gt{$pwid sub}if/$tx xd $tury $pyf sub dup $tury lt{$phei
-add}if/$ty xd}bd/@stb{pathbbox/$ury xd/$urx xd/$lly xd/$llx xd}bd/@ep{{cvx exec
-}forall}bd/@tp{@sv/$in true def 2 copy dup $lly le{/$in false def}if $phei sub
-$ury ge{/$in false def}if dup $urx ge{/$in false def}if $pwid add $llx le{/$in
-false def}if $in{@np 2 copy m $pwid 0 rl 0 $phei neg rl $pwid neg 0 rl 0 $phei
-rl clip @np $pn cvlit load aload pop 7 -1 roll 5 index sub 7 -1 roll 3 index
-sub Tl matrix currentmatrix/$ctm xd @ep pop pop pop pop}{pop pop}ifelse @rs}bd
-/@th{@sft 0 1 $tly 1 sub{dup $psx mul $tx add{dup $llx gt{$pwid sub}{exit}
-ifelse}loop exch $phei mul $ty exch sub 0 1 $tlx 1 sub{$pwid mul 3 copy 3 -1
-roll add exch @tp pop}for pop pop}for}bd/@tv{@sft 0 1 $tlx 1 sub{dup $pwid mul
-$tx add exch $psy mul $ty exch sub{dup $ury lt{$phei add}{exit}ifelse}loop 0 1
-$tly 1 sub{$phei mul 3 copy sub @tp pop}for pop pop}for}bd/@pf{@gs $ctm
-setmatrix $pm concat @stb eoclip Bburx Bbury $pm itransform/$tury xd/$turx xd
-Bbllx Bblly $pm itransform/$tlly xd/$tllx xd/$wid $turx $tllx sub def/$hei
-$tury $tlly sub def @gs $vectpat{1 0 0 0 0 _ $o @scc_5{eofill}if}{$t $c $m $y
-$k $n $o @scc_5{SepMode_5 0 eq $pfrg or{$tllx $tlly Tl $wid $hei scale <00> 8 1
-false[8 0 0 1 0 0]{}imagemask}{/$bkg true def}ifelse}if}ifelse @gr $wid 0 gt
-$hei 0 gt and{$pn cvlit load aload pop/$pd xd 3 -1 roll sub/$phei xd exch sub
-/$pwid xd $wid $pwid div ceiling 1 add/$tlx xd $hei $phei div ceiling 1 add
-/$tly xd $psx 0 eq{@tv}{@th}ifelse}if @gr @np/$bkg false def}bd/@dlt_hsb{$fco
-nff ge{/$fco nff 1 sub def}if sub neg 2 div dup $fco div/kdb xd nff $fco sub
-div/kdb2 xd sub neg 2 div dup $fco div/kds xd nff $fco sub div/kds2 xd sub neg
-dup 0 eq{pop $frb 2 eq{.99}{-.99}ifelse}if dup $frb 2 eq exch 0 lt and{1 add}
-if dup $frb 1 eq exch 0 gt and{1 sub}if 2 div dup $fco div/kdh xd nff $fco sub
-div/kdh2 xd}bd/@dlt_cmyk{$fmp 50 eq{sub neg nff dup 1 gt{1 sub}if div/$dk xd
-sub neg nff dup 1 gt{1 sub}if div/$dy xd sub neg nff dup 1 gt{1 sub}if div/$dm
-xd sub neg nff dup 1 gt{1 sub}if div/$dc xd sub neg nff dup 1 gt{1 sub}if div
-/$dt xd}{$fco nff ge{/$fco nff 1 sub def}if sub neg 2 div dup $fco div/$dk xd
-nff $fco sub div/$dk2 xd sub neg 2 div dup $fco div/$dy xd nff $fco sub div
-/$dy2 xd sub neg 2 div dup $fco div/$dm xd nff $fco sub div/$dm2 xd sub neg 2
-div dup $fco div/$dc xd nff $fco sub div/$dc2 xd sub neg 2 div dup $fco div
-/$dt xd nff $fco sub div/$dt2 xd}ifelse}bd/@dlt{$fse $fss sub dup/nff xd $fmp
-mul $fmp add 100 div round cvi dup 0 le{pop 1}if/$fco xd/$fi 0 def $frb dup 1
-eq exch 2 eq or{$frt dup $frc $frm $fry $frk @tc_5 4 copy cmyk2rgb rgb2hsb 3
-copy/myb xd/mys xd/myh xd $tot $toc $tom $toy $tok @tc_5 cmyk2rgb rgb2hsb 3 1
-roll 4 1 roll 5 1 roll @dlt_hsb}{$frt dup $frc $frm $fry $frk @tc_5 5 copy $tot
-dup $toc $tom $toy $tok @tc_5 5 1 roll 6 1 roll 7 1 roll 8 1 roll 9 1 roll
-@dlt_cmyk}ifelse}bd/@ffnxt{/$fi $fi 1 add def $frb dup 1 eq exch 2 eq or{pop
-pop pop pop myh mys myb $fi $fco lt{kdb add 3 1 roll kds add 3 1 roll kdh add 3
-1 roll}{kdb2 add 3 1 roll kds2 add 3 1 roll kdh2 add 3 1 roll}ifelse 3 copy
-/myb xd/mys xd/myh xd hsb2rgb rgb2cmyk}{$fi $fco lt $fmp 50 eq or{$dk add 5 1
-roll $dy add 5 1 roll $dm add 5 1 roll $dc add 5 1 roll $dt add 5 1 roll}{$dk2
-add 5 1 roll $dy2 add 5 1 roll $dm2 add 5 1 roll $dc2 add 5 1 roll $dt2 add 5 1
-roll}ifelse}ifelse}bd/ffcol{5 copy $fsit 0 eq{setcmykcolor pop}{SepMode_5 0 ne
-{$frn findcmykcustomcolor exch setcustomcolor}{pop pop pop pop $frc $frm $fry
-$frk $frn findcmykcustomcolor exch setcustomcolor}ifelse}ifelse}bd/@ftl{1 index
-4 index sub dup $pad mul dup/$pdw xd 2 mul sub $fst div/$wid xd 2 index sub
-/$hei xd pop Tl @dlt $fss 0 eq{ffcol n 0 0 m 0 $hei l $pdw $hei l $pdw 0 l @cp
-$ffpnt{fill}{@np}ifelse}if $fss $wid mul $pdw add 0 Tl nff{ffcol n 0 0 m 0 $hei
-l $wid $hei l $wid 0 l @cp $ffpnt{fill}{@np}ifelse $wid 0 Tl @ffnxt}repeat 5 rp
-$tot dup $toc $tom $toy $tok @tc_5 ffcol n 0 0 m 0 $hei l $pdw $hei l $pdw 0 l
-@cp $ffpnt{fill}{@np}ifelse 5 rp}bd/@ftrs{1 index 4 index sub dup $rox mul
-/$row xd 2 div 1 index 4 index sub dup $roy mul/$roh xd 2 div 2 copy dup mul
-exch dup mul add sqrt $row dup mul $roh dup mul add sqrt add dup/$hei xd $fst
-div/$wid xd 4 index add $roh add exch 5 index add $row add exch Tl $fan rotate
-pop pop pop pop @dlt $fss 0 eq{ffcol $fty 3 eq{$hei dup neg dup m 2 mul @sqr}{
-0 0 m 0 0 $hei 0 360 arc}ifelse $ffpnt{fill}{@np}ifelse}if 1.0 $pad 2 mul sub
-dup scale $hei $fss $wid mul sub/$hei xd nff{ffcol $fty 3 eq{n $hei dup neg dup
-m 2 mul @sqr}{n 0 0 m 0 0 $hei 0 360 arc}ifelse $ffpnt{fill}{@np}ifelse/$hei
-$hei $wid sub def @ffnxt}repeat 5 rp}bd/@ftc{1 index 4 index sub dup $rox mul
-/$row xd 2 div 1 index 4 index sub dup $roy mul/$roh xd 2 div 2 copy dup mul
-exch dup mul add sqrt $row dup mul $roh dup mul add sqrt add dup/$hei xd $fst
-div/$wid xd 4 index add $roh add exch 5 index add $row add exch Tl pop pop pop
-pop @dlt $fss 0 eq{ffcol $ffpnt{fill}{@np}ifelse}{n}ifelse/$dang 180 $fst 1 sub
-div def/$sang $dang -2 div 180 add def/$eang $dang 2 div 180 add def/$sang
-$sang $dang $fss mul add def/$eang $eang $dang $fss mul add def/$sang $eang
-$dang sub def nff{ffcol n 0 0 m 0 0 $hei $sang $fan add $eang $fan add arc
-$ffpnt{fill}{@np}ifelse 0 0 m 0 0 $hei $eang neg $fan add $sang neg $fan add
-arc $ffpnt{fill}{@np}ifelse/$sang $eang def/$eang $eang $dang add def @ffnxt}
-repeat 5 rp}bd/@fstAdjust{72 0 matrix defaultmatrix dtransform exch dup mul
-exch dup mul add sqrt currentscreen pop pop div dup mul 1 add cvi 2 256 InRange
-$fsc 1 sub dup 0 le{pop 1}if mul/opt$fst xd AutoSteps dup 1 eq exch 3 eq or{
-opt$fst dup dup $fst dup 3 1 roll div exch 3 -1 roll gt{/$adj xd/$fst xd}{pop
-pop}ifelse}if AutoSteps dup 2 eq exch 3 eq or{opt$fst dup dup $fst dup 3 1 roll
-div exch 3 -1 roll lt{/$adj xd/$fst xd}{pop pop}ifelse}if}bd/@ff{/old$fst $fst
-def/$adj 1 def/$fss 0 def $o 1 eq setoverprint AutoSteps 0 gt{@fstAdjust}if 1 1
-$fsc 1 sub{dup 1 sub $fsit 0 eq{$fsa exch 5 mul 5 getinterval aload pop pop
-/$frk xd/$fry xd/$frm xd/$frc xd/$frn _ def/$frt 1 def $fsa exch 5 mul 5
-getinterval aload pop $adj mul cvi $fss add/$fse xd/$tok xd/$toy xd/$tom xd
-/$toc xd/$ton _ def/$tot 1 def}{$fsa exch 7 mul 7 getinterval aload pop pop
-/$frt xd/$frn xd/$frk xd/$fry xd/$frm xd/$frc xd $fsa exch 7 mul 7 getinterval
-aload pop $adj mul cvi $fss add/$fse xd/$tot xd/$ton xd/$tok xd/$toy xd/$tom xd
-/$toc xd}ifelse $fsit 0 eq SepMode_5 0 eq or dup not CurrentInkName_5 $frn eq
-and or{@sv $ctm setmatrix eoclip Bbllx Bblly Bburx Bbury $fty 2 eq{@ftc}{1
-index 3 index m 2 copy l 3 index 1 index l 3 index 3 index l @cp $fty dup 1 eq
-exch 3 eq or{@ftrs}{pop pop pop pop $fan rotate pathbbox @ftl}ifelse}ifelse @rs
-/$fss $fse def}{1 0 0 0 0 _ $o @scc_5{fill}if}ifelse}for @np/$fst old$fst def}
-bd/@Pf{@sv SepMode_5 0 eq $Psc 0 ne or $ink_5 3 eq or{0 J 0 j[]0 d $t $c $m $y
-$k $n $o @scc_5 pop $ctm setmatrix 72 1000 div dup matrix scale dup concat dup
-Bburx exch Bbury exch itransform ceiling cvi/Bbury xd ceiling cvi/Bburx xd
-Bbllx exch Bblly exch itransform floor cvi/Bblly xd floor cvi/Bbllx xd $Prm
-aload pop $Psn load exec}{1 SetGry eofill}ifelse @rs @np}bd/F{matrix
-currentmatrix $sdf{$scf $sca $scp @ss}if $fil 1 eq{@pf}{$fil 2 eq{@ff}{$fil 3
-eq{@Pf}{$t $c $m $y $k $n $o @scc_5{eofill}{@np}ifelse}ifelse}ifelse}ifelse
-$sdf{$dsf $dsa $dsp @ss}if setmatrix}bd/f{@cp F}bd/S{matrix currentmatrix $ctm
-setmatrix $SDF{$SCF $SCA $SCP @ss}if $T $C $M $Y $K $N $O @scc_5{matrix
-currentmatrix $ptm concat stroke setmatrix}{@np}ifelse $SDF{$dsf $dsa $dsp
-@ss}if setmatrix}bd/s{@cp S}bd/B{@gs F @gr S}bd/b{@cp B}bd/_E{5 array astore
-exch cvlit xd}bd/@cc{currentfile $dat readhexstring pop}bd/@sm{/$ctm $ctm
-currentmatrix def}bd/@E{/Bbury xd/Bburx xd/Bblly xd/Bbllx xd}bd/@c{@cp}bd/@p{
-/$fil 1 def 1 eq dup/$vectpat xd{/$pfrg true def}{@gs $t $c $m $y $k $n $o
-@scc_5/$pfrg xd @gr}ifelse/$pm xd/$psy xd/$psx xd/$pyf xd/$pxf xd/$pn xd}bd/@P
-{/$fil 3 def/$Psn xd/$Psc xd array astore/$Prm xd}bd/@k{/$fil 2 def/$fmp xd
-/$roy xd/$rox xd/$pad xd/$fty xd/$fan xd $fty 1 eq{/$fan 0 def}if/$frb xd/$fst
-xd/$fsc xd/$fsa xd/$fsit 0 def}bd/@x{/$fil 2 def/$fmp xd/$roy xd/$rox xd/$pad
-xd/$fty xd/$fan xd $fty 1 eq{/$fan 0 def}if/$frb xd/$fst xd/$fsc xd/$fsa xd
-/$fsit 1 def}bd/@ii{concat 3 index 3 index m 3 index 1 index l 2 copy l 1 index
-3 index l 3 index 3 index l clip pop pop pop pop}bd/tcc{@cc}def/@i{@sm @gs @ii
-6 index 1 ne{/$frg true def pop pop}{1 eq{s1t s1c s1m s1y s1k s1n $O @scc_5
-/$frg xd}{/$frg false def}ifelse 1 eq{@gs $ctm setmatrix F @gr}if}ifelse @np
-/$ury xd/$urx xd/$lly xd/$llx xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul 8
-div ceiling cvi string def $bkg $frg or{$SDF{$SCF $SCA $SCP @ss}if $llx $lly Tl
-$urx $llx sub $ury $lly sub scale $bkg{$t $c $m $y $k $n $o @scc_5 pop}if $wid
-$hei abs $bts 1 eq{$bkg}{$bts}ifelse[$wid 0 0 $hei neg 0 $hei 0
-gt{$hei}{0}ifelse]/tcc load $bts 1 eq{imagemask}{image}ifelse $SDF{$dsf $dsa
-$dsp @ss}if}{$hei abs{tcc pop}repeat}ifelse @gr $ctm setmatrix}bd/@I{@sm @gs
-@ii @np/$ury xd/$urx xd/$lly xd/$llx xd/$ncl xd/$bts xd/$hei xd/$wid xd/$dat
-$wid $bts mul $ncl mul 8 div ceiling cvi string def $ngx $llx $lly Tl $urx $llx
-sub $ury $lly sub scale $wid $hei abs $bts[$wid 0 0 $hei neg 0 $hei 0
-gt{$hei}{0}ifelse]/@cc load false $ncl ColorImage $SDF{$dsf $dsa $dsp @ss}if
-@gr $ctm setmatrix}bd L2?{/@I_2{@sm @gs @ii @np/$ury xd/$urx xd/$lly xd/$llx xd
-/$ncl xd/$bts xd/$hei xd/$wid xd/$dat $wid $bts mul $ncl mul 8 div ceiling cvi
-string def $ngx $ncl 1 eq{/DeviceGray}{$ncl 3 eq{/DeviceRGB}{/DeviceCMYK}
-ifelse}ifelse setcolorspace $llx $lly Tl $urx $llx sub $ury $lly sub scale 8
-dict begin/ImageType 1 def/Width $wid def/Height $hei abs def/BitsPerComponent
-$bts def/Decode $ncl 1 eq{[0 1]}{$ncl 3 eq{[0 1 0 1 0 1]}{[0 1 0 1 0 1 0 1]}
-ifelse}ifelse def/ImageMatrix[$wid 0 0 $hei neg 0 $hei 0 gt{$hei}{0}ifelse]def
-/DataSource currentfile/ASCII85Decode filter def currentdict end image $SDF
-{$dsf $dsa $dsp @ss}if @gr $ctm setmatrix}bd}{/@I_2{}bd}ifelse/z{exch findfont
-exch scalefont setfont}bd/ZB{9 dict dup begin 4 1 roll/FontType 3 def
-/FontMatrix xd/FontBBox xd/Encoding 256 array def 0 1 255{Encoding exch
-/.notdef put}for/CharStrings 256 dict def CharStrings/.notdef{}put/Metrics 256
-dict def Metrics/.notdef 3 -1 roll put/BuildChar{exch dup/$char exch/Encoding
-get 3 index get def dup/Metrics get $char get aload pop setcachedevice begin
-Encoding exch get CharStrings exch get end exec}def end definefont pop}bd
-/ZBAddChar{findfont begin dup 4 1 roll dup 6 1 roll Encoding 3 1 roll put
-CharStrings 3 1 roll put Metrics 3 1 roll put end}bd/Z{findfont dup maxlength 2
-add dict exch dup{1 index/FID ne{3 index 3 1 roll put}{pop pop}ifelse}forall
-pop dup dup/Encoding get 256 array copy dup/$fe xd/Encoding exch put dup
-/Fontname 3 index put 3 -1 roll dup length 0 ne{0 exch{dup type 0 type eq{exch
-pop}{$fe exch 2 index exch put 1 add}ifelse}forall pop}if dup 256 dict dup
-/$met xd/Metrics exch put dup/FontMatrix get 0 get 1000 mul 1 exch div 3 index
-length 256 eq{0 1 255{dup $fe exch get dup/.notdef eq{pop pop}{5 index 3 -1
-roll get 2 index mul $met 3 1 roll put}ifelse}for}if pop definefont pop pop}bd
-/@ftx{{currentpoint 3 -1 roll(0)dup 3 -1 roll 0 exch put dup @gs true charpath
-$ctm setmatrix @@txt @gr @np stringwidth pop 3 -1 roll add exch m}forall}bd
-/@ft{matrix currentmatrix exch $sdf{$scf $sca $scp @ss}if $fil 1 eq{/@@txt/@pf
-ld @ftx}{$fil 2 eq{/@@txt/@ff ld @ftx}{$fil 3 eq{/@@txt/@Pf ld @ftx}{$t $c $m
-$y $k $n $o @scc_5{show}{pop}ifelse}ifelse}ifelse}ifelse $sdf{$dsf $dsa $dsp
-@ss}if setmatrix}bd/@st{matrix currentmatrix exch $SDF{$SCF $SCA $SCP @ss}if $T
-$C $M $Y $K $N $O @scc_5{{currentpoint 3 -1 roll(0)dup 3 -1 roll 0 exch put dup
-@gs true charpath $ctm setmatrix $ptm concat stroke @gr @np stringwidth pop 3
--1 roll add exch m}forall}{pop}ifelse $SDF{$dsf $dsa $dsp @ss}if setmatrix}bd
-/@te{@ft}bd/@tr{@st}bd/@ta{dup @gs @ft @gr @st}bd/@t@a{dup @gs @st @gr @ft}bd
-/@tm{@sm concat}bd/e{/t{@te}def}bd/r{/t{@tr}def}bd/o{/t{pop}def}bd/a{/t{@ta}
-def}bd/@a{/t{@t@a}def}bd/t{@te}def/T{@np $ctm setmatrix/$ttm matrix def}bd/ddt
-{t}def/@t{/$stm $stm currentmatrix def 3 1 roll m $ttm concat ddt $stm
-setmatrix}bd/@n{/$ttm exch matrix rotate def}bd/@s{}bd/@l{}bd/@B{@gs S @gr F}
-bd/@b{@cp @B}bd/@sep{CurrentInkName_5(Composite)eq{/$ink_5 -1 def}{
-CurrentInkName_5(Cyan)eq{/$ink_5 0 def}{CurrentInkName_5(Magenta)eq{/$ink_5 1
-def}{CurrentInkName_5(Yellow)eq{/$ink_5 2 def}{CurrentInkName_5(Black)eq
-{/$ink_5 3 def}{/$ink_5 4 def}ifelse}ifelse}ifelse}ifelse}ifelse}bd/@whi{@gs
--72000 dup m -72000 72000 l 72000 dup l 72000 -72000 l @cp 1 SetGry fill @gr}
-bd/@neg{[{1 exch sub}/exec cvx currenttransfer/exec cvx]cvx settransfer @whi}
-bd/currentscale{1 0 dtransform matrix defaultmatrix idtransform dup mul exch
-dup mul add sqrt 0 1 dtransform matrix defaultmatrix idtransform dup mul exch
-dup mul add sqrt}bd/@unscale{}bd/@smc{CMYKMarks{0 exch eq{1 1 1 1 1 _ 0 @scc_5
-pop}{1 0 0 0 0 _ 0 @scc_5 pop}ifelse}{SetGry}ifelse}bd/@gmc{CMYKMarks{GetCmyk
-pop pop pop 1 eq{0}{1}ifelse}{GetGry}ifelse}bd/@sqr{dup 0 rl dup 0 exch rl neg
-0 rl @cp}bd/corelsym{@gs @np Tl -90 rotate 7{45 rotate -.75 2 m 1.5 @sqr fill}
-repeat @gr}bd/@reg_cor{@gs @np Tl -6 -6 m 12 @sqr @gs 1 @gmc sub @smc fill @gr
-4{90 rotate 0 4 m 0 4 rl}repeat stroke 0 0 corelsym @gr}bd/@reg_std{@gs @np Tl
-.3 w 0 0 5 0 360 arc @cp @gs 1 @gmc sub @smc fill @gr 4{90 rotate 0 0 m 0 8 rl
-}repeat stroke @gr}bd/@reg_inv{@gs @np Tl .3 w 0 0 5 0 360 arc @cp @gs 1 @gmc
-sub @smc fill @gr 4{90 rotate 0 0 m 0 8 rl}repeat stroke 0 0 m 0 0 5 90 180 arc
-@cp 0 0 5 270 360 arc @cp fill @gr}bd/@reg_sqr{@gs @np Tl .3 w -7 -7 m 14 @sqr
-fill @gs 1 @gmc sub @smc 0 0 5 0 360 arc @cp save fill restore 4{90 rotate 0 0
-m 0 8 rl}repeat stroke @gr 4{90 rotate 0 0 m 0 5 rl}repeat stroke @gr}bd
-/@reg_lng{@gs @np 0 eq{/$Xlen 16 def/$Ylen 8 def}{/$Xlen 8 def/$Ylen 16 def}
-ifelse Tl .3 w 0 0 5 0 360 arc @cp @gs 1 @gmc sub @smc fill @gr 90 rotate 0 0 m
-0 $Xlen rl 90 rotate 0 0 m 0 $Ylen rl 90 rotate 0 0 m 0 $Xlen rl 90 rotate 0 0
-m 0 $Ylen rl stroke @gr}bd/@setdcol{0 $dcol eq{0 exch 1 exch sub 0 0 0 _ 0
-@scc_5 pop}{1 $dcol eq{0 exch 0 exch 1 exch sub 0 0 _ 0 @scc_5 pop}{2 $dcol eq
-{0 exch 0 exch 0 exch 1 exch sub 0 _ 0 @scc_5 pop}{SetGry}ifelse}ifelse}ifelse
-}bd/$corelmeter[1 .95 .75 .50 .25 .05 0]def/@colormeter{@gs @np 0 @setdcol 0.3
-w/Courier findfont 5 scalefont setfont/yy xd/xx xd 0 1 6{dup xx 20 sub yy m 20
-@sqr @gs $corelmeter exch get dup @setdcol fill @gr stroke xx 18 sub yy 2 add m
-exch dup 3 ge{1 SetGry}{0 @setdcol}ifelse 3 eq{pop}{100 mul 100 exch sub cvi 20
-string cvs show}ifelse/yy yy 20 add def}for @gr}bd/@calbar{@gs Tl @gs @np 0 0 m
-@gs 20 @sqr 1 1 0 0 0 _ 0 @scc_5 pop fill @gr 20 0 Tl 0 0 m @gs 20 @sqr 1 1 0 1
-0 _ 0 @scc_5 pop fill @gr 20 0 Tl 0 0 m @gs 20 @sqr 1 0 0 1 0 _ 0 @scc_5 pop
-fill @gr 20 0 Tl 0 0 m @gs 20 @sqr 1 0 1 1 0 _ 0 @scc_5 pop fill @gr 20 0 Tl 0
-0 m @gs 20 @sqr 1 0 1 0 0 _ 0 @scc_5 pop fill @gr 20 0 Tl 0 0 m @gs 20 @sqr 1 1
-1 0 0 _ 0 @scc_5 pop fill @gr 20 0 Tl 0 0 m @gs 20 @sqr 1 1 1 1 0 _ 0 @scc_5
-pop fill @gr @gr @np -84 0 Tl @gs 0 0 m 20 @sqr clip 1 1 0 0 0 _ 0 @scc_5 pop
-@gain @gr 20 0 Tl @gs 0 0 m 20 @sqr clip 1 0 1 0 0 _ 0 @scc_5 pop @gain @gr 20
-0 Tl @gs 0 0 m 20 @sqr clip 1 0 0 1 0 _ 0 @scc_5 pop @gain @gr 20 0 Tl @gs 0 0
-m 20 @sqr clip 1 0 0 0 1 _ 0 @scc_5 pop @gain @gr @gr}bd/@gain{10 10 Tl @np 0 0
-m 0 10 360{0 0 15 4 -1 roll dup 5 add arc @cp}for fill}bd/@crop{@gs 10 div
-/$croplen xd .3 w 0 @smc Tl rotate 0 0 m 0 $croplen neg rl stroke @gr}bd
-/deflevel 0 def/@sax{/deflevel deflevel 1 add def}bd/@eax{/deflevel deflevel
-dup 0 gt{1 sub}if def deflevel 0 gt{/eax load}{eax}ifelse}bd/eax{{exec}forall}
-bd/@rax{deflevel 0 eq{@rs @sv}if}bd/@daq{dup type/arraytype eq{{}forall}if}bd
-/@BMP{/@cc xd 12 index 1 gt UseLevel2 true eq and{7 -2 roll pop pop @I_2}{11
-index 1 eq{12 -1 roll pop @i}{7 -2 roll pop pop @I}ifelse}ifelse}bd systemdict
-/pdfmark known not{/pdfmark/cleartomark ld}if/@BeginEPS{$ngx 0 SetGry 0 J 0 j 1
-w[]0 d 10 M false setoverprint @np/EPSDict 200 dict def EPSDict begin @sv
-SepMode_5 0 ne{/colorimage{@gs/sepdict 50 dict def sepdict begin[{1 exch sub}
-/exec cvx currenttransfer/exec cvx]cvx settransfer 3 eq/$rgb xd{$rgb{/daq0 xd
-/daq1 xd/daq2 xd/daq_rgb load}{/daq0 xd/daq1 xd/daq2 xd/daq3 xd/daq_cmyk load}
-ifelse}{/daq0 xd/daq_one load}ifelse 2 index 8 eq/8bit xd $ink_5 dup 0 lt exch
-3 gt or{}{image}ifelse end @gr}bd/2cmyk{3{255 exch sub 3 1 roll}repeat 3 copy
-@MN @MN 3{dup 5 -1 roll sub neg exch}repeat}bd/daq_rgb{/i 0 def/daq2 load exec
-/daq1 load exec/daq0 load exec dup dup length 0 exch getinterval/$data xd{8bit
-{1 index i get 3 index i get 2cmyk 4 $ink_5 neg roll pop pop pop}{pop 0}ifelse
-$data i 3 -1 roll put/i i 1 add def}forall pop pop $data}bd/daq_cmyk{/daq3 load
-exec/daq2 load exec/daq1 load exec/daq0 load exec 4 $ink_5 neg roll pop pop pop
-}bd/daq_one{/$in 0 def/$out 0 def/daq0 load exec dup dup length $rgb{3}{4}
-ifelse idiv 0 exch getinterval/$data xd $data{pop 8bit{$rgb{0 index $in 2 add
-get 1 index $in 1 add get 2 index $in get 2cmyk}{0 index $in get 1 index $in 1
-add get 2 index $in 2 add get 3 index $in 3 add get}ifelse 4 $ink_5 neg roll
-pop pop pop}{0}ifelse $data $out 3 -1 roll put/$in $in $rgb{3}{4}ifelse add def
-/$out $out 1 add def}forall pop $data}bd}if}bd/@EndEPS{@rs end}bd end
-%%EndResource
-%%EndProlog
-%%BeginSetup
-wCorel6Dict begin
-@BeginSysCorelDict
-2.6131 setmiterlimit
-1.00 setflat
-/$fst 128 def
-%%EndSetup
-
-%%Page: 1 1
-%LogicalPage: 1
-%%BeginPageSetup
-@sv
-@sm
-@sv
-%%EndPageSetup
-@rax %Note: Object
-148.15559 236.18041 202.52778 314.02828 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-148.15559 314.02828 m
-202.52778 314.02828 L
-202.52778 236.18041 L
-148.15559 236.18041 L
-148.15559 314.02828 L
-@c
-S
-
-@rax %Note: Object
-127.74643 87.86835 225.97002 110.77342 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-127.74643 110.77342 m
-225.97002 110.77342 L
-225.97002 87.86835 L
-127.74643 87.86835 L
-127.74643 110.77342 L
-@c
-S
-
-@rax %Note: Object
-404.84353 218.57187 449.83956 283.44501 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-404.84353 283.44501 m
-449.83956 283.44501 L
-449.83956 218.57187 L
-404.84353 218.57187 L
-404.84353 283.44501 L
-@c
-S
-
-@rax %Note: Object
-254.33943 339.97748 318.04980 378.90142 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-286.19461 378.90142 m
-303.73965 378.90142 318.04980 370.15852 318.04980 359.43931 c
-318.04980 348.72009 303.73965 339.97748 286.19461 339.97748 c
-268.64929 339.97748 254.33943 348.72009 254.33943 359.43931 c
-254.33943 370.15852 268.64929 378.90142 286.19461 378.90142 c
-@c
-S
-
-@rax %Note: Object
-283.88636 227.83946 347.59672 266.76340 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-315.74154 266.76340 m
-333.28658 266.76340 347.59672 258.02079 347.59672 247.30129 c
-347.59672 236.58208 333.28658 227.83946 315.74154 227.83946 c
-298.19622 227.83946 283.88636 236.58208 283.88636 247.30129 c
-283.88636 258.02079 298.19622 266.76340 315.74154 266.76340 c
-@c
-S
-
-@rax %Note: Object
-363.46677 264.98721 378.50910 280.74189 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-363.46677 280.74189 m
-378.50910 280.74189 L
-378.50910 264.98721 L
-363.46677 264.98721 L
-363.46677 280.74189 L
-@c
-S
-
-@rax 369.60293 270.39317 372.73408 277.68898 @E
-[0.00009574 0.00000000 0.00000000 0.00009574 369.60280442 270.39307508] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 104680.00000 z
-%CHAR: 0 0 (f) @t
-9104 0 m
-9089 47122 L
-962 47122 L
-962 54272 L
-9089 54272 L
-9089 60045 l
-9089 63687 9415 66410 10066 68172 c
-10940 70555 12509 72495 14729 73975 c
-16965 75455 20103 76195 24115 76195 c
-26708 76195 29580 75885 32703 75278 C
-31327 67254 L
-29432 67595 27611 67772 25906 67772 c
-23123 67772 21139 67165 19984 65981 c
-18830 64797 18238 62547 18238 59290 c
-18238 54272 L
-28825 54272 L
-28825 47122 L
-18238 47122 L
-18238 0 L
-9104 0 L
-@c
-F
-T
-@rax %Note: Object
-233.27575 220.22504 248.31808 235.97943 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-233.27575 235.97943 m
-248.31808 235.97943 L
-248.31808 220.22504 L
-233.27575 220.22504 L
-233.27575 235.97943 L
-@c
-S
-
-@rax 239.41162 225.63071 242.53342 232.90526 @E
-[0.00009574 0.00000000 0.00000000 0.00009574 239.41169297 225.63077961] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 104370.00000 z
-%CHAR: 0 0 (f) @t
-9074 0 m
-9060 46974 L
-962 46974 L
-962 54109 L
-9060 54109 L
-9060 59867 l
-9060 63509 9385 66218 10037 67980 c
-10910 70348 12464 72287 14685 73753 c
-16905 75233 20044 75973 24041 75973 c
-26619 75973 29491 75663 32615 75056 C
-31238 67062 L
-29343 67387 27522 67565 25832 67565 c
-23049 67565 21080 66973 19925 65789 c
-18771 64604 18178 62369 18178 59112 c
-18178 54109 L
-28736 54109 L
-28736 46974 L
-18178 46974 L
-18178 0 L
-9074 0 L
-@c
-F
-T
-@rax %Note: Object
-245.27934 310.39852 260.32195 326.15291 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-245.27934 326.15291 m
-260.32195 326.15291 L
-260.32195 310.39852 L
-245.27934 310.39852 L
-245.27934 326.15291 L
-@c
-S
-
-@rax 251.41550 315.80419 254.53729 323.07874 @E
-[0.00009574 0.00000000 0.00000000 0.00009574 251.41547591 315.80427630] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 104370.00000 z
-%CHAR: 0 0 (f) @t
-9074 0 m
-9060 46974 L
-962 46974 L
-962 54109 L
-9060 54109 L
-9060 59867 l
-9060 63509 9385 66218 10037 67980 c
-10910 70348 12464 72287 14685 73753 c
-16905 75233 20044 75973 24041 75973 c
-26619 75973 29491 75663 32615 75056 C
-31238 67062 L
-29343 67387 27522 67565 25832 67565 c
-23049 67565 21080 66973 19925 65789 c
-18771 64604 18178 62369 18178 59112 c
-18178 54109 L
-28736 54109 L
-28736 46974 L
-18178 46974 L
-18178 0 L
-9074 0 L
-@c
-F
-T
-@rax %Note: Object
-219.42595 326.15320 234.46828 341.90787 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-219.42595 341.90787 m
-234.46828 341.90787 L
-234.46828 326.15320 L
-219.42595 326.15320 L
-219.42595 341.90787 L
-@c
-S
-
-@rax 225.56211 331.55915 228.68391 338.83370 @E
-[0.00009574 0.00000000 0.00000000 0.00009574 225.56196189 331.55921021] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 104370.00000 z
-%CHAR: 0 0 (f) @t
-9074 0 m
-9060 46974 L
-962 46974 L
-962 54109 L
-9060 54109 L
-9060 59867 l
-9060 63509 9385 66218 10037 67980 c
-10910 70348 12464 72287 14685 73753 c
-16905 75233 20044 75973 24041 75973 c
-26619 75973 29491 75663 32615 75056 C
-31238 67062 L
-29343 67387 27522 67565 25832 67565 c
-23049 67565 21080 66973 19925 65789 c
-18771 64604 18178 62369 18178 59112 c
-18178 54109 L
-28736 54109 L
-28736 46974 L
-18178 46974 L
-18178 0 L
-9074 0 L
-@c
-F
-T
-@rax 265.98557 353.55515 307.54658 366.64101 @E
-[0.00009574 0.00000000 0.00000000 0.00009574 265.98552164 353.76659884] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 187867.00000 z
-%CHAR: 0 0 (s) @t
-5779 29085 m
-22098 31643 L
-22998 25106 25580 20061 29749 16603 c
-33941 13122 39815 11369 47323 11369 c
-54902 11369 60539 12908 64187 15988 c
-67858 19067 69706 22714 69706 26859 c
-69706 30601 68071 33538 64850 35670 c
-62576 37138 56939 39010 47963 41260 c
-35859 44315 27451 46968 22785 49194 c
-18119 51421 14566 54523 12151 58455 c
-9735 62387 8527 66769 8527 71529 c
-8527 75864 9521 79890 11487 83585 c
-13477 87280 16201 90383 19611 92822 c
-22169 94714 25698 96325 30128 97628 c
-34557 98954 39318 99617 44386 99617 c
-52013 99617 58739 98504 64519 96325 c
-70298 94122 74561 91117 77309 87375 c
-80056 83609 81975 78564 83017 72264 C
-66863 70085 L
-66129 75082 63998 79014 60492 81809 c
-56987 84604 51989 86025 45570 86025 c
-37991 86025 32567 84770 29346 82283 c
-26125 79772 24491 76835 24491 73472 c
-24491 71340 25177 69398 26504 67692 c
-27830 65916 29962 64424 32828 63287 c
-34486 62671 39365 61250 47418 59071 c
-59095 55945 67266 53387 71861 51397 c
-76456 49407 80104 46518 82733 42728 c
-85362 38939 86688 34225 86688 28612 c
-86688 23117 85077 17906 81880 13074 c
-78659 8219 74016 4453 67977 1800 c
-61913 -853 55045 -2203 47418 -2203 c
-34770 -2203 25106 426 18474 5684 c
-11843 10943 7603 18735 5779 29062 c
-5779 29085 L
-@c
-F
-%CHAR: 93936 0 (t) @t
-142372 14780 m
-144741 166 L
-140099 -805 135930 -1303 132259 -1303 c
-126290 -1303 121624 -355 118332 1540 c
-115040 3434 112695 5945 111368 9024 c
-110018 12103 109331 18617 109331 28517 c
-109331 84556 L
-97228 84556 L
-97228 97414 L
-109331 97414 L
-109331 121526 L
-125745 131450 L
-125745 97414 L
-142349 97414 L
-142349 84556 L
-125745 84556 L
-125745 27593 l
-125745 22904 126053 19848 126622 18522 c
-127190 17195 128161 16106 129464 15324 c
-130790 14519 132685 14116 135125 14116 c
-136948 14116 139364 14330 142349 14756 C
-142372 14780 L
-@c
-F
-%CHAR: 143472 0 (a) @t
-219431 12008 m
-213320 6821 207398 3150 201761 1018 c
-196124 -1113 190037 -2203 183547 -2203 c
-172842 -2203 164599 426 158867 5637 c
-153136 10848 150246 17551 150246 25675 c
-150246 30436 151336 34817 153491 38749 c
-155670 42681 158536 45878 162041 48247 c
-165547 50615 169526 52439 173908 53647 c
-177152 54500 182055 55329 188592 56134 c
-201904 57721 211733 59639 218033 61819 C
-218081 64069 218128 65513 218128 66129 c
-218128 72856 216565 77593 213462 80340 c
-209246 84083 202946 85954 194656 85954 c
-186887 85954 181155 84580 177460 81880 c
-173765 79156 170994 74324 169242 67408 C
-153088 69611 L
-154557 76527 156973 82117 160336 86356 c
-163699 90596 168578 93888 174926 96159 c
-181274 98457 188663 99617 197024 99617 c
-205338 99617 212112 98622 217299 96680 c
-222510 94738 226347 92254 228763 89293 c
-231202 86333 232931 82567 233902 78043 c
-234447 75248 234731 70156 234731 62837 c
-234731 40810 l
-234731 25462 235087 15751 235773 11701 c
-236484 7627 237878 3719 239963 0 C
-222723 0 L
-221018 3411 219881 7413 219407 12008 C
-219431 12008 L
-@c
-218057 48886 m
-212064 46447 203064 44339 191079 42633 c
-184305 41686 179474 40573 176679 39365 c
-173860 38133 171681 36333 170165 33988 c
-168649 31620 167868 28991 167868 26125 c
-167868 21719 169549 18048 172865 15135 c
-176181 12198 181084 10729 187503 10729 c
-193851 10729 199511 12127 204462 14898 c
-209412 17669 213059 21483 215380 26314 c
-217133 30033 218033 35552 218033 42823 c
-218057 48886 L
-@c
-F
-%CHAR: 247968 0 (t) @t
-296404 14780 m
-298773 166 L
-294131 -805 289962 -1303 286291 -1303 c
-280322 -1303 275656 -355 272364 1540 c
-269072 3434 266727 5945 265400 9024 c
-264050 12103 263363 18617 263363 28517 c
-263363 84556 L
-251260 84556 L
-251260 97414 L
-263363 97414 L
-263363 121526 L
-279777 131450 L
-279777 97414 L
-296381 97414 L
-296381 84556 L
-279777 84556 L
-279777 27593 l
-279777 22904 280085 19848 280654 18522 c
-281222 17195 282193 16106 283496 15324 c
-284822 14519 286717 14116 289157 14116 c
-290980 14116 293396 14330 296381 14756 C
-296404 14780 L
-@c
-F
-%CHAR: 300168 0 (i) @t
-312650 115486 m
-312626 134458 L
-329135 134458 L
-329135 115486 L
-312650 115486 L
-@c
-312650 0 m
-312626 97414 L
-329135 97414 L
-329135 0 L
-312650 0 L
-@c
-F
-%CHAR: 341904 0 (c) @t
-417863 35694 m
-434087 33562 L
-432334 22383 427763 13595 420468 7295 c
-413173 971 404173 -2203 393538 -2203 c
-380227 -2203 369497 2155 361397 10848 c
-353297 19564 349223 32070 349223 48342 c
-349223 58858 350975 68071 354457 75935 c
-357939 83822 363268 89767 370374 93699 c
-377479 97628 385248 99617 393633 99617 c
-404196 99617 412865 96941 419592 91591 c
-426318 86238 430629 78635 432524 68782 C
-416465 66319 L
-414949 72856 412226 77782 408365 81075 c
-404480 84367 399767 86025 394272 86025 c
-385959 86025 379185 83040 373998 77095 c
-368810 71127 366205 61676 366205 48792 c
-366205 35717 368716 26196 373713 20275 c
-378735 14353 385295 11369 393348 11369 c
-399838 11369 405262 13358 409596 17314 c
-413931 21293 416702 27428 417839 35670 C
-417863 35694 L
-@c
-F
-T
-@rax 533.81083 244.73735 571.01499 258.05310 @E
-[0.00009574 0.00000000 0.00000000 0.00009574 533.81074996 244.95794069] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 187867.00000 z
-%CHAR: 0 0 (B) @t
-13761 0 m
-13737 134458 L
-64211 134458 l
-74466 134458 82709 133084 88914 130384 c
-95117 127684 99996 123468 103502 117831 c
-107007 112170 108783 106225 108783 100067 c
-108783 94335 107220 88914 104117 83846 c
-100991 78777 96278 74656 89980 71529 C
-98101 69161 104378 65063 108736 59332 c
-113094 53600 115297 46802 115297 38986 c
-115297 32686 113970 26812 111318 21411 c
-108665 16011 105349 11819 101441 8882 c
-97533 5945 92609 3719 86735 2250 c
-80838 758 73590 0 65016 0 c
-13761 0 L
-@c
-31549 77972 m
-60634 77972 l
-68498 77972 74182 78493 77593 79511 c
-82117 80861 85551 83112 87825 86214 c
-90099 89341 91259 93273 91259 97959 c
-91259 102412 90193 106367 88062 109754 c
-85930 113141 82851 115486 78896 116718 c
-74916 117950 68095 118589 58432 118589 c
-31549 118589 L
-31549 77972 L
-@c
-31549 15869 m
-65016 15869 l
-70772 15869 74822 16082 77143 16509 c
-81217 17219 84651 18451 87399 20156 c
-90146 21861 92444 24372 94193 27641 c
-95946 30909 96846 34699 96846 38986 c
-96846 43984 95567 48342 93012 52036 c
-90454 55731 86877 58360 82330 59853 c
-77782 61345 71198 62103 62647 62103 c
-31549 62103 L
-31549 15869 L
-@c
-F
-%CHAR: 125304 0 (G) @t
-202731 52747 m
-202707 68521 L
-259691 68616 L
-259691 18711 L
-250951 11748 241904 6490 232619 2984 c
-223334 -521 213768 -2297 204010 -2297 c
-190794 -2297 178785 545 168009 6182 c
-157208 11819 149060 20014 143565 30720 c
-138070 41426 135299 53387 135299 66579 c
-135299 79653 138047 91899 143494 103217 c
-148966 114563 156853 122995 167108 128490 c
-177388 133984 189230 136756 202613 136756 c
-212324 136756 221132 135169 228995 132042 c
-236859 128892 243017 124487 247470 118873 c
-251922 113260 255333 105894 257654 96846 C
-241619 92467 L
-239606 99286 237072 104686 234087 108594 c
-231103 112502 226792 115652 221250 117997 c
-215687 120342 209481 121526 202707 121526 c
-194583 121526 187549 120294 181628 117831 c
-175706 115368 170898 112076 167274 108049 c
-163627 104023 160785 99570 158771 94738 c
-155361 86451 153632 77403 153632 67692 c
-153632 55708 155692 45665 159813 37612 c
-163935 29536 169974 23519 177838 19611 c
-185725 15703 194133 13737 202992 13737 c
-210689 13737 218221 15230 225561 18190 c
-232903 21151 238469 24325 242259 27688 C
-242259 52747 L
-202731 52747 L
-@c
-F
-%CHAR: 271440 0 (P) @t
-285935 0 m
-285912 134458 L
-336645 134458 l
-345575 134458 352420 134032 357110 133179 c
-363694 132090 369257 129982 373710 126903 c
-378163 123824 381787 119465 384487 113923 c
-387187 108357 388561 102223 388561 95567 c
-388561 84154 384913 74466 377665 66556 c
-370394 58645 357228 54666 338209 54666 c
-303723 54666 L
-303723 0 L
-285935 0 L
-@c
-303723 70535 m
-338493 70535 l
-349980 70535 358152 72690 362983 76953 c
-367812 81217 370228 87256 370228 95022 c
-370228 100636 368807 105467 365965 109470 c
-363126 113473 359360 116126 354717 117405 c
-351733 118186 346167 118589 338114 118589 c
-303723 118589 L
-303723 70535 L
-@c
-F
-T
-@rax 408.45628 264.29074 446.56838 277.41373 @E
-[0.00009574 0.00000000 0.00000000 0.00009574 408.45620689 264.50210637] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 188424.00000 z
-%CHAR: 0 0 (t) @t
-48581 14803 m
-50950 166 L
-46308 -805 42115 -1303 38444 -1303 c
-32428 -1303 27759 -355 24467 1540 c
-21151 3434 18806 5969 17480 9048 c
-16130 12127 15443 18664 15443 28612 c
-15443 84820 L
-3292 84820 L
-3292 97708 L
-15443 97708 L
-15443 121890 L
-31907 131838 L
-31907 97708 L
-48558 97708 L
-48558 84820 L
-31907 84820 L
-31907 27688 l
-31907 22975 32215 19919 32783 18593 c
-33352 17243 34323 16153 35626 15372 c
-36952 14566 38847 14164 41310 14164 c
-43134 14164 45573 14377 48558 14803 c
-48581 14803 L
-@c
-F
-%CHAR: 49680 0 (a) @t
-125855 12056 m
-119720 6845 113799 3126 108138 995 c
-102477 -1137 96367 -2226 89877 -2226 c
-79144 -2226 70878 403 65123 5637 c
-59367 10872 56478 17598 56478 25746 c
-56478 30530 57567 34915 59746 38847 c
-61925 42802 64791 46000 68297 48368 c
-71802 50760 75805 52584 80210 53816 c
-83458 54669 88385 55498 94945 56303 c
-108304 57890 118157 59808 124457 62011 C
-124505 64261 124552 65706 124552 66322 c
-124552 73048 122989 77833 119862 80580 c
-115646 84322 109346 86194 101009 86194 c
-93240 86194 87461 84820 83766 82096 c
-80068 79372 77297 74517 75521 67601 C
-59320 69827 L
-60788 76743 63228 82357 66591 86620 c
-69955 90883 74857 94176 81232 96452 c
-87603 98750 95017 99910 103401 99910 c
-111738 99910 118512 98916 123723 96973 c
-128934 95007 132795 92518 135234 89557 c
-137674 86573 139403 82807 140374 78283 c
-140919 75464 141203 70348 141203 63006 c
-141203 40931 l
-141203 25533 141558 15798 142269 11724 c
-142979 7650 144380 3719 146464 0 C
-129171 0 L
-127465 3411 126328 7437 125855 12032 c
-125855 12056 L
-@c
-124481 49031 m
-118465 46568 109441 44484 97409 42779 c
-90611 41807 85779 40694 82984 39463 c
-80163 38231 77960 36431 76444 34086 c
-74928 31718 74147 29085 74147 26220 c
-74147 21814 75829 18119 79144 15182 c
-82487 12245 87390 10753 93832 10753 c
-100204 10753 105888 12151 110838 14922 c
-115812 17717 119483 21554 121805 26385 c
-123557 30128 124457 35649 124457 42944 c
-124481 49031 L
-@c
-F
-%CHAR: 154464 0 (b) @t
-182152 0 m
-166780 0 L
-166780 134870 L
-183336 134870 L
-183336 86738 L
-190326 95505 199256 99910 210104 99910 c
-216120 99910 221828 98702 227181 96286 c
-232534 93868 236963 90433 240421 86075 c
-243879 81693 246626 76388 248568 70206 c
-250514 64001 251508 57369 251508 50310 c
-251508 33589 247361 20630 239094 11487 c
-230828 2345 220880 -2226 209298 -2226 c
-197764 -2226 188692 2605 182152 12222 C
-182152 0 L
-@c
-181963 49600 m
-181963 37876 183573 29393 186750 24183 c
-191961 15656 199019 11393 207901 11393 c
-215149 11393 221425 14543 226683 20819 c
-231941 27096 234594 36478 234594 48937 c
-234594 61679 232060 71106 227015 77170 c
-221946 83233 215812 86288 208635 86288 c
-201411 86288 195135 83138 189876 76862 c
-184615 70585 181963 61466 181963 49576 C
-181963 49600 L
-@c
-F
-%CHAR: 259248 0 (l) @t
-271304 0 m
-271280 134870 L
-287860 134870 L
-287860 0 L
-271304 0 L
-@c
-F
-%CHAR: 301104 0 (e) @t
-380405 31457 m
-397509 29346 L
-394806 19351 389808 11558 382513 6063 c
-375218 545 365886 -2226 354541 -2226 c
-340259 -2226 328910 2179 320550 10966 c
-312189 19777 307996 32144 307996 48013 c
-307996 64451 312236 77217 320692 86288 c
-329147 95363 340140 99910 353617 99910 c
-366691 99910 377373 95457 385640 86573 c
-393929 77667 398077 65137 398077 49031 c
-398077 48060 398030 46568 397983 44602 C
-325097 44602 L
-325713 33897 328768 25651 334219 19967 c
-339667 14259 346488 11393 354636 11393 c
-360699 11393 365910 13003 370173 16177 c
-374460 19351 377895 24467 380405 31457 C
-@c
-326045 58245 m
-380595 58221 L
-379860 66440 377752 72622 374318 76719 c
-369060 83091 362191 86288 353807 86288 c
-346227 86288 339809 83730 334645 78662 c
-329455 73569 326566 66748 326021 58221 C
-326045 58245 L
-@c
-F
-T
-@rax 423.75231 241.71732 432.80759 254.64472 @E
-[0.00009574 0.00000000 0.00000000 0.00009574 423.75216172 241.71732029] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 187867.00000 z
-%CHAR: 0 0 (2) @t
-94572 15869 m
-94572 0 L
-5684 0 L
-5566 3955 6206 7792 7603 11464 c
-9853 17503 13501 23472 18474 29346 c
-23448 35220 30672 42018 40075 49715 c
-54689 61700 64590 71198 69706 78185 c
-74822 85196 77403 91828 77403 98054 c
-77403 104591 75059 110110 70393 114610 c
-65727 119110 59616 121360 52084 121360 c
-44149 121360 37778 118968 33017 114207 c
-28257 109423 25817 102815 25770 94383 C
-8787 96112 L
-9948 108760 14330 118423 21909 125055 c
-29488 131687 39673 135027 52463 135027 c
-65348 135027 75580 131450 83088 124297 c
-90620 117144 94383 108239 94383 97675 c
-94383 92301 93273 86996 91093 81809 c
-88891 76622 85220 71127 80127 65395 c
-75011 59663 66508 51752 54666 41733 c
-44765 33420 38370 27759 35575 24798 c
-32780 21838 30436 18853 28612 15869 C
-94572 15869 L
-@c
-F
-T
-@rax 298.38246 239.60665 331.64362 256.05865 @E
-[0.00009574 0.00000000 0.00000000 0.00009574 298.38255753 243.18428450] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 187867.00000 z
-%CHAR: 0 0 (p) @t
-12387 -37352 m
-12364 97414 L
-27428 97414 L
-27428 84746 L
-30957 89696 34983 93438 39436 95899 c
-43889 98362 49313 99617 55660 99617 c
-63974 99617 71340 97462 77688 93201 c
-84035 88914 88867 82851 92088 75082 c
-95306 67290 96941 58716 96941 49431 c
-96941 39483 95141 30483 91591 22525 c
-88014 14543 82804 8408 75982 4169 c
-69161 -71 61984 -2203 54476 -2203 c
-48981 -2203 44031 -1042 39673 1279 c
-35315 3600 31691 6537 28896 10090 C
-28896 -37352 L
-12387 -37352 L
-@c
-27333 48152 m
-27333 35623 29867 26338 34936 20369 c
-40004 14377 46186 11369 53387 11369 c
-60705 11369 67006 14472 72216 20677 c
-77451 26883 80080 36499 80080 49526 c
-80080 61937 77522 71245 72429 77403 c
-67313 83585 61203 86688 54121 86688 c
-47086 86688 40857 83396 35457 76835 c
-30057 70250 27333 60682 27333 48152 c
-@c
-F
-%CHAR: 104496 0 (i) @t
-116978 115486 m
-116954 134458 L
-133463 134458 L
-133463 115486 L
-116978 115486 L
-@c
-116978 0 m
-116954 97414 L
-133463 97414 L
-133463 0 L
-116978 0 L
-@c
-F
-%CHAR: 146232 0 (p) @t
-158619 -37352 m
-158596 97414 L
-173660 97414 L
-173660 84746 L
-177189 89696 181215 93438 185668 95899 c
-190121 98362 195545 99617 201892 99617 c
-210206 99617 217572 97462 223920 93201 c
-230267 88914 235099 82851 238320 75082 c
-241538 67290 243173 58716 243173 49431 c
-243173 39483 241373 30483 237823 22525 c
-234246 14543 229036 8408 222214 4169 c
-215393 -71 208216 -2203 200708 -2203 c
-195213 -2203 190263 -1042 185905 1279 c
-181547 3600 177923 6537 175128 10090 C
-175128 -37352 L
-158619 -37352 L
-@c
-173565 48152 m
-173565 35623 176099 26338 181168 20369 c
-186236 14377 192418 11369 199619 11369 c
-206937 11369 213238 14472 218448 20677 c
-223683 26883 226312 36499 226312 49526 c
-226312 61937 223754 71245 218661 77403 c
-213545 83585 207435 86688 200353 86688 c
-193318 86688 187089 83396 181689 76835 c
-176289 70250 173565 60682 173565 48152 c
-@c
-F
-%CHAR: 250728 0 (e) @t
-329813 31383 m
-346840 29251 L
-344166 19303 339169 11558 331897 6063 c
-324626 568 315318 -2203 304020 -2203 c
-289761 -2203 278463 2179 270126 10943 c
-261789 19706 257597 32046 257597 47868 c
-257597 64258 261813 76977 270245 86025 c
-278677 95070 289643 99617 303096 99617 c
-316123 99617 326781 95164 335024 86309 c
-343266 77451 347408 64945 347408 48886 c
-347408 47915 347361 46423 347313 44481 C
-274650 44481 L
-275266 33775 278298 25580 283745 19896 c
-289193 14211 295991 11369 304115 11369 c
-310154 11369 315341 12956 319605 16130 c
-323868 19303 327279 24396 329789 31359 C
-329813 31383 L
-@c
-275598 58076 m
-329979 58053 L
-329245 66248 327137 72406 323726 76503 c
-318468 82851 311646 86025 303286 86025 c
-295706 86025 289335 83491 284172 78422 c
-279008 73353 276119 66556 275574 58053 C
-275598 58076 L
-@c
-F
-T
-@rax 130.51502 92.83266 222.77140 105.95565 @E
-[0.00009574 0.00000000 0.00000000 0.00009574 130.51500994 93.04400499] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 188424.00000 z
-%CHAR: 0 0 (k) @t
-12506 0 m
-12506 134870 L
-29062 134870 L
-29062 57961 L
-68264 97708 L
-89699 97708 L
-52347 61442 L
-93465 0 L
-73048 0 L
-40742 49955 L
-29062 38728 L
-29062 0 L
-12506 0 L
-@c
-F
-%CHAR: 94224 0 (e) @t
-173525 31457 m
-190629 29346 L
-187926 19351 182928 11558 175633 6063 c
-168338 545 159006 -2226 147661 -2226 c
-133379 -2226 122030 2179 113670 10966 c
-105309 19777 101116 32144 101116 48013 c
-101116 64451 105356 77217 113812 86288 c
-122267 95363 133260 99910 146737 99910 c
-159811 99910 170493 95457 178760 86573 c
-187049 77667 191197 65137 191197 49031 c
-191197 48060 191150 46568 191103 44602 C
-118217 44602 L
-118833 33897 121888 25651 127339 19967 c
-132787 14259 139608 11393 147756 11393 c
-153819 11393 159030 13003 163293 16177 c
-167580 19351 171015 24467 173525 31457 C
-@c
-119165 58245 m
-173715 58221 L
-172980 66440 170872 72622 167438 76719 c
-162180 83091 155311 86288 146927 86288 c
-139347 86288 132929 83730 127765 78662 c
-122575 73569 119686 66748 119141 58221 C
-119165 58245 L
-@c
-F
-%CHAR: 199008 0 (r) @t
-211253 0 m
-211230 97708 L
-226128 97708 L
-226128 82878 L
-229917 89794 233449 94392 236671 96594 c
-239892 98797 243444 99910 247305 99910 c
-252871 99910 258556 98134 264311 94581 C
-258627 79206 L
-254577 81575 250503 82783 246476 82783 c
-242876 82783 239607 81693 236742 79538 c
-233852 77359 231791 74327 230560 70467 c
-228709 64593 227786 58127 227786 51139 c
-227786 0 L
-211253 0 L
-@c
-F
-%CHAR: 261744 0 (n) @t
-274155 0 m
-274155 97708 L
-289053 97708 L
-289053 83801 L
-296233 94534 306607 99910 320155 99910 c
-326029 99910 331453 98844 336379 96736 c
-341306 94628 345024 91831 347464 88420 c
-349927 84986 351656 80888 352627 76175 c
-353243 73096 353551 67719 353551 60069 c
-353551 0 L
-336995 0 L
-336995 59429 l
-336995 66156 336355 71225 335076 74540 c
-333797 77880 331476 80556 328208 82546 c
-324939 84536 321055 85554 316649 85554 c
-309615 85554 303528 83304 298412 78851 c
-293296 74375 290711 65848 290711 53342 c
-290711 0 L
-274155 0 L
-@c
-F
-%CHAR: 366528 0 (e) @t
-445829 31457 m
-462933 29346 L
-460230 19351 455232 11558 447937 6063 c
-440642 545 431310 -2226 419965 -2226 c
-405683 -2226 394334 2179 385974 10966 c
-377613 19777 373420 32144 373420 48013 c
-373420 64451 377660 77217 386116 86288 c
-394571 95363 405564 99910 419041 99910 c
-432115 99910 442797 95457 451064 86573 c
-459353 77667 463501 65137 463501 49031 c
-463501 48060 463454 46568 463407 44602 C
-390521 44602 L
-391137 33897 394192 25651 399643 19967 c
-405091 14259 411912 11393 420060 11393 c
-426123 11393 431334 13003 435597 16177 c
-439884 19351 443319 24467 445829 31457 C
-@c
-391469 58245 m
-446019 58221 L
-445284 66440 443176 72622 439742 76719 c
-434484 83091 427615 86288 419231 86288 c
-411651 86288 405233 83730 400069 78662 c
-394879 73569 391990 66748 391445 58221 C
-391469 58245 L
-@c
-F
-%CHAR: 471312 0 (l) @t
-483368 0 m
-483344 134870 L
-499924 134870 L
-499924 0 L
-483368 0 L
-@c
-F
-%CHAR: 565512 0 (t) @t
-614093 14803 m
-616462 166 L
-611820 -805 607627 -1303 603956 -1303 c
-597940 -1303 593271 -355 589979 1540 c
-586663 3434 584318 5969 582992 9048 c
-581642 12127 580955 18664 580955 28612 c
-580955 84820 L
-568804 84820 L
-568804 97708 L
-580955 97708 L
-580955 121890 L
-597419 131838 L
-597419 97708 L
-614070 97708 L
-614070 84820 L
-597419 84820 L
-597419 27688 l
-597419 22975 597727 19919 598295 18593 c
-598864 17243 599835 16153 601138 15372 c
-602464 14566 604359 14164 606822 14164 c
-608646 14164 611085 14377 614070 14803 c
-614093 14803 L
-@c
-F
-%CHAR: 615192 0 (a) @t
-691367 12056 m
-685232 6845 679311 3126 673650 995 c
-667989 -1137 661879 -2226 655389 -2226 c
-644656 -2226 636390 403 630635 5637 c
-624879 10872 621990 17598 621990 25746 c
-621990 30530 623079 34915 625258 38847 c
-627437 42802 630303 46000 633809 48368 c
-637314 50760 641317 52584 645722 53816 c
-648970 54669 653897 55498 660457 56303 c
-673816 57890 683669 59808 689969 62011 C
-690017 64261 690064 65706 690064 66322 c
-690064 73048 688501 77833 685374 80580 c
-681158 84322 674858 86194 666521 86194 c
-658752 86194 652973 84820 649278 82096 c
-645580 79372 642809 74517 641033 67601 C
-624832 69827 L
-626300 76743 628740 82357 632103 86620 c
-635467 90883 640369 94176 646744 96452 c
-653115 98750 660529 99910 668913 99910 c
-677250 99910 684024 98916 689235 96973 c
-694446 95007 698307 92518 700746 89557 c
-703186 86573 704915 82807 705886 78283 c
-706431 75464 706715 70348 706715 63006 c
-706715 40931 l
-706715 25533 707070 15798 707781 11724 c
-708491 7650 709892 3719 711976 0 C
-694683 0 L
-692977 3411 691840 7437 691367 12032 c
-691367 12056 L
-@c
-689993 49031 m
-683977 46568 674953 44484 662921 42779 c
-656123 41807 651291 40694 648496 39463 c
-645675 38231 643472 36431 641956 34086 c
-640440 31718 639659 29085 639659 26220 c
-639659 21814 641341 18119 644656 15182 c
-647999 12245 652902 10753 659344 10753 c
-665716 10753 671400 12151 676350 14922 c
-681324 17717 684995 21554 687317 26385 c
-689069 30128 689969 35649 689969 42944 c
-689993 49031 L
-@c
-F
-%CHAR: 719976 0 (b) @t
-747664 0 m
-732292 0 L
-732292 134870 L
-748848 134870 L
-748848 86738 L
-755838 95505 764768 99910 775616 99910 c
-781632 99910 787340 98702 792693 96286 c
-798046 93868 802475 90433 805933 86075 c
-809391 81693 812138 76388 814080 70206 c
-816026 64001 817020 57369 817020 50310 c
-817020 33589 812873 20630 804606 11487 c
-796340 2345 786392 -2226 774810 -2226 c
-763276 -2226 754204 2605 747664 12222 C
-747664 0 L
-@c
-747475 49600 m
-747475 37876 749085 29393 752262 24183 c
-757473 15656 764531 11393 773413 11393 c
-780661 11393 786937 14543 792195 20819 c
-797453 27096 800106 36478 800106 48937 c
-800106 61679 797572 71106 792527 77170 c
-787458 83233 781324 86288 774147 86288 c
-766923 86288 760647 83138 755388 76862 c
-750127 70585 747475 61466 747475 49576 C
-747475 49600 L
-@c
-F
-%CHAR: 824760 0 (l) @t
-836816 0 m
-836792 134870 L
-853372 134870 L
-853372 0 L
-836816 0 L
-@c
-F
-%CHAR: 866616 0 (e) @t
-945917 31457 m
-963021 29346 L
-960318 19351 955320 11558 948025 6063 c
-940730 545 931398 -2226 920053 -2226 c
-905771 -2226 894422 2179 886062 10966 c
-877701 19777 873508 32144 873508 48013 c
-873508 64451 877748 77217 886204 86288 c
-894659 95363 905652 99910 919129 99910 c
-932203 99910 942885 95457 951152 86573 c
-959441 77667 963589 65137 963589 49031 c
-963589 48060 963542 46568 963495 44602 C
-890609 44602 L
-891225 33897 894280 25651 899731 19967 c
-905179 14259 912000 11393 920148 11393 c
-926211 11393 931422 13003 935685 16177 c
-939972 19351 943407 24467 945917 31457 C
-@c
-891557 58245 m
-946107 58221 L
-945372 66440 943264 72622 939830 76719 c
-934572 83091 927703 86288 919319 86288 c
-911739 86288 905321 83730 900157 78662 c
-894967 73569 892078 66748 891533 58221 C
-891557 58245 L
-@c
-F
-T
-@rax 157.43339 289.66932 195.43748 302.75518 @E
-[0.00009574 0.00000000 0.00000000 0.00009574 157.43351915 289.88077355] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 187867.00000 z
-%CHAR: 0 0 (t) @t
-48436 14780 m
-50805 166 L
-46163 -805 41994 -1303 38323 -1303 c
-32354 -1303 27688 -355 24396 1540 c
-21104 3434 18759 5945 17432 9024 c
-16082 12103 15395 18617 15395 28517 c
-15395 84556 L
-3292 84556 L
-3292 97414 L
-15395 97414 L
-15395 121526 L
-31809 131450 L
-31809 97414 L
-48413 97414 L
-48413 84556 L
-31809 84556 L
-31809 27593 l
-31809 22904 32117 19848 32686 18522 c
-33254 17195 34225 16106 35528 15324 c
-36854 14519 38749 14116 41189 14116 c
-43012 14116 45428 14330 48413 14756 C
-48436 14780 L
-@c
-F
-%CHAR: 49536 0 (a) @t
-125495 12008 m
-119384 6821 113462 3150 107825 1018 c
-102188 -1113 96101 -2203 89611 -2203 c
-78906 -2203 70663 426 64931 5637 c
-59200 10848 56310 17551 56310 25675 c
-56310 30436 57400 34817 59555 38749 c
-61734 42681 64600 45878 68105 48247 c
-71611 50615 75590 52439 79972 53647 c
-83216 54500 88119 55329 94656 56134 c
-107968 57721 117797 59639 124097 61819 C
-124145 64069 124192 65513 124192 66129 c
-124192 72856 122629 77593 119526 80340 c
-115310 84083 109010 85954 100720 85954 c
-92951 85954 87219 84580 83524 81880 c
-79829 79156 77058 74324 75306 67408 C
-59152 69611 L
-60621 76527 63037 82117 66400 86356 c
-69763 90596 74642 93888 80990 96159 c
-87338 98457 94727 99617 103088 99617 c
-111402 99617 118176 98622 123363 96680 c
-128574 94738 132411 92254 134827 89293 c
-137266 86333 138995 82567 139966 78043 c
-140511 75248 140795 70156 140795 62837 c
-140795 40810 l
-140795 25462 141151 15751 141837 11701 c
-142548 7627 143942 3719 146027 0 C
-128787 0 L
-127082 3411 125945 7413 125471 12008 C
-125495 12008 L
-@c
-124121 48886 m
-118128 46447 109128 44339 97143 42633 c
-90369 41686 85538 40573 82743 39365 c
-79924 38133 77745 36333 76229 33988 c
-74713 31620 73932 28991 73932 26125 c
-73932 21719 75613 18048 78929 15135 c
-82245 12198 87148 10729 93567 10729 c
-99915 10729 105575 12127 110526 14898 c
-115476 17669 119123 21483 121444 26314 c
-123197 30033 124097 35552 124097 42823 c
-124121 48886 L
-@c
-F
-%CHAR: 154032 0 (b) @t
-181649 0 m
-166301 0 L
-166301 134458 L
-182833 134458 L
-182833 86499 L
-189797 95235 198702 99617 209527 99617 c
-215495 99617 221180 98409 226533 95993 c
-231885 93580 236291 90170 239749 85812 c
-243207 81454 245931 76148 247873 69990 c
-249812 63808 250807 57176 250807 50165 c
-250807 33491 246665 20559 238423 11464 c
-230180 2369 220256 -2203 208698 -2203 c
-197210 -2203 188162 2605 181625 12198 C
-181649 0 L
-@c
-181460 49455 m
-181460 37754 183046 29299 186220 24112 c
-191407 15632 198466 11369 207324 11369 c
-214524 11369 220777 14519 226035 20772 c
-231293 27025 233922 36381 233922 48792 c
-233922 61511 231388 70914 226367 76953 c
-221322 82993 215211 86025 208058 86025 c
-200858 86025 194605 82875 189347 76622 c
-184089 70369 181460 61274 181460 49431 C
-181460 49455 L
-@c
-F
-%CHAR: 258528 0 (l) @t
-270536 0 m
-270536 134458 L
-287045 134458 L
-287045 0 L
-270536 0 L
-@c
-F
-%CHAR: 300264 0 (e) @t
-379349 31383 m
-396376 29251 L
-393702 19303 388705 11558 381433 6063 c
-374162 568 364854 -2203 353556 -2203 c
-339297 -2203 327999 2179 319662 10943 c
-311325 19706 307133 32046 307133 47868 c
-307133 64258 311349 76977 319781 86025 c
-328213 95070 339179 99617 352632 99617 c
-365659 99617 376317 95164 384560 86309 c
-392802 77451 396944 64945 396944 48886 c
-396944 47915 396897 46423 396849 44481 C
-324186 44481 L
-324802 33775 327834 25580 333281 19896 c
-338729 14211 345527 11369 353651 11369 c
-359690 11369 364877 12956 369141 16130 c
-373404 19303 376815 24396 379325 31359 C
-379349 31383 L
-@c
-325134 58076 m
-379515 58053 L
-378781 66248 376673 72406 373262 76503 c
-368004 82851 361182 86025 352822 86025 c
-345242 86025 338871 83491 333708 78422 c
-328544 73353 325655 66556 325110 58053 C
-325134 58076 L
-@c
-F
-T
-@rax 171.73219 261.55389 178.43244 274.48129 @E
-[0.00009574 0.00000000 0.00000000 0.00009574 171.73210693 261.55399179] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 187867.00000 z
-%CHAR: 0 0 (1) @t
-69990 0 m
-53458 0 L
-53458 105207 L
-49502 101417 44291 97628 37849 93841 c
-31407 90051 25580 87185 20440 85291 C
-20440 101251 L
-29678 105586 37754 110868 44647 117026 c
-51563 123208 56466 129224 59332 135027 C
-69990 135027 L
-69990 0 L
-@c
-F
-T
-@rax %Note: Object
-176.16189 109.68406 176.16302 135.58394 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-176.16246 135.58394 m
-176.16246 126.95074 176.16246 118.31754 176.16246 109.68406 C
-S
-@j
-0.00 0.00 0.00 1.00 K
-0.00 0.00 0.00 1.00 k
-0 @g
-0 @G
-[] 0 d 0 J 0 j
-0 R 0 O
-0 1.00800 1.00800 0 @w
-176.16246 139.13008 m
-179.18646 132.07408 L
-177.17046 133.08208 175.15446 133.08208 173.13846 132.07408 C
-176.16246 139.13008 L
-f
-@J
-@j
-0.00 0.00 0.00 1.00 K
-0.00 0.00 0.00 1.00 k
-0 @g
-0 @G
-[] 0 d 0 J 0 j
-0 R 0 O
-0 1.00800 1.00800 0 @w
-176.16246 106.13792 m
-179.18646 113.19392 L
-177.17046 112.18592 175.15446 112.18592 173.13846 113.19392 C
-176.16246 106.13792 L
-f
-@J
-
-@rax %Note: Object
-14.27131 255.64224 77.98167 294.56617 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-46.12649 294.56617 m
-63.67181 294.56617 77.98167 285.82356 77.98167 275.10406 c
-77.98167 264.38485 63.67181 255.64224 46.12649 255.64224 c
-28.58117 255.64224 14.27131 264.38485 14.27131 275.10406 c
-14.27131 285.82356 28.58117 294.56617 46.12649 294.56617 c
-@c
-S
-
-@rax %Note: Object
-101.23852 287.22954 116.28085 302.98422 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-101.23852 302.98422 m
-116.28085 302.98422 L
-116.28085 287.22954 L
-101.23852 287.22954 L
-101.23852 302.98422 L
-@c
-S
-
-@rax 107.37468 292.63521 110.49647 299.90976 @E
-[0.00009574 0.00000000 0.00000000 0.00009574 107.37463338 292.63532344] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 104370.00000 z
-%CHAR: 0 0 (f) @t
-9074 0 m
-9060 46974 L
-962 46974 L
-962 54109 L
-9060 54109 L
-9060 59867 l
-9060 63509 9385 66218 10037 67980 c
-10910 70348 12464 72287 14685 73753 c
-16905 75233 20044 75973 24041 75973 c
-26619 75973 29491 75663 32615 75056 C
-31238 67062 L
-29343 67387 27522 67565 25832 67565 c
-23049 67565 21080 66973 19925 65789 c
-18771 64604 18178 62369 18178 59112 c
-18178 54109 L
-28736 54109 L
-28736 46974 L
-18178 46974 L
-18178 0 L
-9074 0 L
-@c
-F
-T
-@rax 107.37468 292.63521 110.49647 299.90976 @E
-[0.00009574 0.00000000 0.00000000 0.00009574 107.37463338 292.63532344] @tm
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.21600 0.21600 0.00000 @w
-r
-
-% FontChange:/_Arial 104370.00000 z
-%CHAR: 0 0 (f) @t
-9074 0 m
-9060 46974 L
-962 46974 L
-962 54109 L
-9060 54109 L
-9060 59867 l
-9060 63509 9385 66218 10037 67980 c
-10910 70348 12464 72287 14685 73753 c
-16905 75233 20044 75973 24041 75973 c
-26619 75973 29491 75663 32615 75056 C
-31238 67062 L
-29343 67387 27522 67565 25832 67565 c
-23049 67565 21080 66973 19925 65789 c
-18771 64604 18178 62369 18178 59112 c
-18178 54109 L
-28736 54109 L
-28736 46974 L
-18178 46974 L
-18178 0 L
-9074 0 L
-@c
-S
-T
-@rax %Note: Object
-101.23852 248.30561 116.28085 264.06028 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-101.23852 264.06028 m
-116.28085 264.06028 L
-116.28085 248.30561 L
-101.23852 248.30561 L
-101.23852 264.06028 L
-@c
-S
-
-@rax 107.66806 252.82857 110.79921 260.12438 @E
-[0.00009574 0.00000000 0.00000000 0.00009574 107.66801920 252.82844459] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 104680.00000 z
-%CHAR: 0 0 (f) @t
-9104 0 m
-9089 47122 L
-962 47122 L
-962 54272 L
-9089 54272 L
-9089 60045 l
-9089 63687 9415 66410 10066 68172 c
-10940 70555 12509 72495 14729 73975 c
-16965 75455 20103 76195 24115 76195 c
-26708 76195 29580 75885 32703 75278 C
-31327 67254 L
-29432 67595 27611 67772 25906 67772 c
-23123 67772 21139 67165 19984 65981 c
-18830 64797 18238 62547 18238 59290 c
-18238 54272 L
-28825 54272 L
-28825 47122 L
-18238 47122 L
-18238 0 L
-9104 0 L
-@c
-F
-T
-@rax 23.04680 269.16321 71.19326 282.48576 @E
-[0.00009574 0.00000000 0.00000000 0.00009574 23.04673119 269.38384725] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 187867.00000 z
-%CHAR: 0 0 (O) @t
-9071 65490 m
-9071 87801 15064 105302 27049 117902 c
-39033 130526 54523 136850 73472 136850 c
-85883 136850 97083 133890 107031 127968 c
-117002 122047 124629 113757 129840 103146 c
-135050 92538 137679 80506 137679 67053 c
-137679 53410 134932 41212 129437 30459 c
-123942 19706 116126 11535 106036 6016 c
-95946 474 85054 -2297 73377 -2297 c
-60729 -2297 49384 758 39436 6869 c
-29488 12980 21909 21340 16793 31904 c
-11653 42468 9071 53694 9071 65490 c
-@c
-27428 65229 m
-27428 49028 31786 36238 40478 26930 c
-49194 17598 60137 12932 73282 12932 c
-86664 12932 97699 17646 106344 27049 c
-114989 36475 119323 49857 119323 67148 c
-119323 78090 117476 87659 113781 95804 c
-110086 103952 104662 110299 97557 114776 c
-90430 119276 82425 121526 73566 121526 c
-60966 121526 50118 117192 41047 108547 c
-31975 99901 27428 85433 27428 65205 C
-27428 65229 L
-@c
-F
-%CHAR: 146136 0 (S) @t
-154568 43202 m
-171361 44670 L
-172142 37944 174014 32425 176903 28114 c
-179793 23804 184317 20322 190427 17669 c
-196538 15016 203431 13666 211081 13666 c
-217855 13666 223871 14685 229058 16674 c
-234245 18688 238130 21483 240637 24988 c
-243172 28493 244451 32354 244451 36499 c
-244451 40715 243219 44410 240803 47536 c
-238366 50686 234316 53363 228679 55495 c
-225079 56892 217097 59095 204757 62032 c
-192393 64992 183724 67811 178774 70440 c
-172379 73803 167571 77972 164445 82946 c
-161295 87920 159708 93533 159708 99712 c
-159708 106486 161650 112834 165487 118731 c
-169324 124629 174961 129129 182351 132161 c
-189741 135216 197983 136756 207031 136756 c
-217002 136756 225813 135145 233416 131948 c
-241016 128750 246890 124013 250964 117784 c
-255062 111531 257288 104449 257572 96585 C
-240519 95306 L
-239622 103786 236495 110228 231213 114563 c
-225932 118897 218092 121076 207765 121076 c
-197012 121076 189172 119086 184246 115155 c
-179319 111223 176856 106439 176856 100896 c
-176856 96064 178608 92088 182090 88962 c
-185501 85859 194478 82662 208926 79393 c
-223374 76124 233321 73235 238674 70819 c
-246487 67219 252290 62624 256009 57105 c
-259751 51563 261622 45168 261622 37967 c
-261622 30815 259562 24064 255488 17740 c
-251390 11416 245493 6490 237822 2984 c
-230148 -521 221502 -2297 211886 -2297 c
-199736 -2297 189527 -521 181309 3008 c
-173090 6561 166624 11914 161958 19019 c
-157268 26125 154805 34202 154568 43202 C
-@c
-F
-%CHAR: 271440 0 (P) @t
-285935 0 m
-285912 134458 L
-336645 134458 l
-345575 134458 352420 134032 357110 133179 c
-363694 132090 369257 129982 373710 126903 c
-378163 123824 381787 119465 384487 113923 c
-387187 108357 388561 102223 388561 95567 c
-388561 84154 384913 74466 377665 66556 c
-370394 58645 357228 54666 338209 54666 c
-303723 54666 L
-303723 0 L
-285935 0 L
-@c
-303723 70535 m
-338493 70535 l
-349980 70535 358152 72690 362983 76953 c
-367812 81217 370228 87256 370228 95022 c
-370228 100636 368807 105467 365965 109470 c
-363126 113473 359360 116126 354717 117405 c
-351733 118186 346167 118589 338114 118589 c
-303723 118589 L
-303723 70535 L
-@c
-F
-%CHAR: 396744 0 (F) @t
-412163 0 m
-412139 134458 L
-502875 134458 L
-502875 118589 L
-429951 118589 L
-429951 76953 L
-493045 76953 L
-493045 61084 L
-429951 61084 L
-429951 0 L
-412163 0 L
-@c
-F
-T
-@rax %Note: Object
-143.10198 137.01685 206.81235 175.94079 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-174.95717 175.94079 m
-192.50249 175.94079 206.81235 167.19817 206.81235 156.47896 c
-206.81235 145.75975 192.50249 137.01685 174.95717 137.01685 c
-157.41184 137.01685 143.10198 145.75975 143.10198 156.47896 c
-143.10198 167.19817 157.41184 175.94079 174.95717 175.94079 c
-@c
-S
-
-@rax %Note: Object
-149.25203 193.62671 164.29436 209.38139 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-149.25203 209.38139 m
-164.29436 209.38139 L
-164.29436 193.62671 L
-149.25203 193.62671 L
-149.25203 209.38139 L
-@c
-S
-
-@rax 155.38819 199.03266 158.50998 206.30693 @E
-[0.00009574 0.00000000 0.00000000 0.00009574 155.38815181 199.03261601] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 104370.00000 z
-%CHAR: 0 0 (f) @t
-9074 0 m
-9060 46974 L
-962 46974 L
-962 54109 L
-9060 54109 L
-9060 59867 l
-9060 63509 9385 66218 10037 67980 c
-10910 70348 12464 72287 14685 73753 c
-16905 75233 20044 75973 24041 75973 c
-26619 75973 29491 75663 32615 75056 C
-31238 67062 L
-29343 67387 27522 67565 25832 67565 c
-23049 67565 21080 66973 19925 65789 c
-18771 64604 18178 62369 18178 59112 c
-18178 54109 L
-28736 54109 L
-28736 46974 L
-18178 46974 L
-18178 0 L
-9074 0 L
-@c
-F
-T
-@rax %Note: Object
-184.33899 192.70006 199.38132 208.45474 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-184.33899 208.45474 m
-199.38132 208.45474 L
-199.38132 192.70006 L
-184.33899 192.70006 L
-184.33899 208.45474 L
-@c
-S
-
-@rax 190.47515 198.10602 193.60630 205.40183 @E
-[0.00009574 0.00000000 0.00000000 0.00009574 190.47510473 198.10591152] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 104680.00000 z
-%CHAR: 0 0 (f) @t
-9104 0 m
-9089 47122 L
-962 47122 L
-962 54272 L
-9089 54272 L
-9089 60045 l
-9089 63687 9415 66410 10066 68172 c
-10940 70555 12509 72495 14729 73975 c
-16965 75455 20103 76195 24115 76195 c
-26708 76195 29580 75885 32703 75278 C
-31327 67254 L
-29432 67595 27611 67772 25906 67772 c
-23123 67772 21139 67165 19984 65981 c
-18830 64797 18238 62547 18238 59290 c
-18238 54272 L
-28825 54272 L
-28825 47122 L
-18238 47122 L
-18238 0 L
-9104 0 L
-@c
-F
-T
-@rax 151.10872 150.36265 198.97285 163.48564 @E
-[0.00009574 0.00000000 0.00000000 0.00009574 151.10863718 150.57399333] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 188424.00000 z
-%CHAR: 0 0 (k) @t
-12506 0 m
-12506 134870 L
-29062 134870 L
-29062 57961 L
-68264 97708 L
-89699 97708 L
-52347 61442 L
-93465 0 L
-73048 0 L
-40742 49955 L
-29062 38728 L
-29062 0 L
-12506 0 L
-@c
-F
-%CHAR: 94224 0 (e) @t
-173525 31457 m
-190629 29346 L
-187926 19351 182928 11558 175633 6063 c
-168338 545 159006 -2226 147661 -2226 c
-133379 -2226 122030 2179 113670 10966 c
-105309 19777 101116 32144 101116 48013 c
-101116 64451 105356 77217 113812 86288 c
-122267 95363 133260 99910 146737 99910 c
-159811 99910 170493 95457 178760 86573 c
-187049 77667 191197 65137 191197 49031 c
-191197 48060 191150 46568 191103 44602 C
-118217 44602 L
-118833 33897 121888 25651 127339 19967 c
-132787 14259 139608 11393 147756 11393 c
-153819 11393 159030 13003 163293 16177 c
-167580 19351 171015 24467 173525 31457 C
-@c
-119165 58245 m
-173715 58221 L
-172980 66440 170872 72622 167438 76719 c
-162180 83091 155311 86288 146927 86288 c
-139347 86288 132929 83730 127765 78662 c
-122575 73569 119686 66748 119141 58221 C
-119165 58245 L
-@c
-F
-%CHAR: 199008 0 (r) @t
-211253 0 m
-211230 97708 L
-226128 97708 L
-226128 82878 L
-229917 89794 233449 94392 236671 96594 c
-239892 98797 243444 99910 247305 99910 c
-252871 99910 258556 98134 264311 94581 C
-258627 79206 L
-254577 81575 250503 82783 246476 82783 c
-242876 82783 239607 81693 236742 79538 c
-233852 77359 231791 74327 230560 70467 c
-228709 64593 227786 58127 227786 51139 c
-227786 0 L
-211253 0 L
-@c
-F
-%CHAR: 261744 0 (n) @t
-274155 0 m
-274155 97708 L
-289053 97708 L
-289053 83801 L
-296233 94534 306607 99910 320155 99910 c
-326029 99910 331453 98844 336379 96736 c
-341306 94628 345024 91831 347464 88420 c
-349927 84986 351656 80888 352627 76175 c
-353243 73096 353551 67719 353551 60069 c
-353551 0 L
-336995 0 L
-336995 59429 l
-336995 66156 336355 71225 335076 74540 c
-333797 77880 331476 80556 328208 82546 c
-324939 84536 321055 85554 316649 85554 c
-309615 85554 303528 83304 298412 78851 c
-293296 74375 290711 65848 290711 53342 c
-290711 0 L
-274155 0 L
-@c
-F
-%CHAR: 366528 0 (e) @t
-445829 31457 m
-462933 29346 L
-460230 19351 455232 11558 447937 6063 c
-440642 545 431310 -2226 419965 -2226 c
-405683 -2226 394334 2179 385974 10966 c
-377613 19777 373420 32144 373420 48013 c
-373420 64451 377660 77217 386116 86288 c
-394571 95363 405564 99910 419041 99910 c
-432115 99910 442797 95457 451064 86573 c
-459353 77667 463501 65137 463501 49031 c
-463501 48060 463454 46568 463407 44602 C
-390521 44602 L
-391137 33897 394192 25651 399643 19967 c
-405091 14259 411912 11393 420060 11393 c
-426123 11393 431334 13003 435597 16177 c
-439884 19351 443319 24467 445829 31457 C
-@c
-391469 58245 m
-446019 58221 L
-445284 66440 443176 72622 439742 76719 c
-434484 83091 427615 86288 419231 86288 c
-411651 86288 405233 83730 400069 78662 c
-394879 73569 391990 66748 391445 58221 C
-391469 58245 L
-@c
-F
-%CHAR: 471312 0 (l) @t
-483368 0 m
-483344 134870 L
-499924 134870 L
-499924 0 L
-483368 0 L
-@c
-F
-T
-@rax %Note: Object
-156.33184 175.77836 160.21587 193.70778 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-160.21587 175.77836 m
-157.05383 181.43631 156.33184 187.48346 156.83357 193.70778 C
-S
-@j
-0.00 0.00 0.00 1.00 K
-0.00 0.00 0.00 1.00 k
-0 @g
-0 @G
-[] 0 d 0 J 0 j
-0 R 0 O
-0 1.00800 1.00800 0 @w
-161.94586 172.68293 m
-155.86384 177.36718 L
-158.11540 177.47065 159.87515 178.45427 161.14337 180.31748 C
-161.94586 172.68293 L
-f
-@J
-
-@rax %Note: Object
-186.77820 174.80296 192.64479 192.07956 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-192.64479 192.07956 m
-192.61757 185.59814 190.27446 179.97676 186.77820 174.80296 C
-S
-@j
-0.00 0.00 0.00 1.00 K
-0.00 0.00 0.00 1.00 k
-0 @g
-0 @G
-[] 0 d 0 J 0 j
-0 R 0 O
-0 1.00800 1.00800 0 @w
-192.65953 195.62570 m
-195.65376 188.55694 L
-193.64202 189.57345 191.62602 189.58195 189.60605 188.58246 C
-192.65953 195.62570 L
-f
-@J
-
-@rax %Note: Object
-186.16592 209.22151 192.40214 235.74387 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-192.40214 209.22151 m
-191.88510 218.80375 190.64098 227.74337 186.16592 235.74387 C
-S
-@j
-0.00 0.00 0.00 1.00 K
-0.00 0.00 0.00 1.00 k
-0 @g
-0 @G
-[] 0 d 0 J 0 j
-0 R 0 O
-0 1.00800 1.00800 0 @w
-192.59320 205.68076 m
-189.19332 212.56356 L
-191.26091 211.66554 193.27380 211.77439 195.23254 212.88954 C
-192.59320 205.68076 L
-f
-@J
-
-@rax %Note: Object
-155.67080 209.51518 161.90702 236.03754 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-155.67080 209.51518 m
-156.18784 219.09742 157.43197 228.03704 161.90702 236.03754 C
-S
-@j
-0.00 0.00 0.00 1.00 K
-0.00 0.00 0.00 1.00 k
-0 @g
-0 @G
-[] 0 d 0 J 0 j
-0 R 0 O
-0 1.00800 1.00800 0 @w
-155.47975 205.97443 m
-152.84041 213.18321 L
-154.79915 212.06806 156.81203 211.95921 158.87962 212.85723 C
-155.47975 205.97443 L
-f
-@J
-
-@rax %Note: Object
-144.15562 373.91301 207.86598 412.83694 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-176.01080 373.91301 m
-193.55613 373.91301 207.86598 382.65562 207.86598 393.37483 c
-207.86598 404.09405 193.55613 412.83694 176.01080 412.83694 c
-158.46548 412.83694 144.15562 404.09405 144.15562 393.37483 c
-144.15562 382.65562 158.46548 373.91301 176.01080 373.91301 c
-@c
-S
-
-@rax %Note: Object
-150.30567 340.47241 165.34800 356.22709 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-150.30567 340.47241 m
-165.34800 340.47241 L
-165.34800 356.22709 L
-150.30567 356.22709 L
-150.30567 340.47241 L
-@c
-S
-
-@rax 156.44183 343.54687 159.56362 350.82113 @E
-[0.00009574 0.00000000 0.00000000 0.00009574 156.44178957 343.54681545] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 104370.00000 z
-%CHAR: 0 0 (f) @t
-9074 0 m
-9060 46974 L
-962 46974 L
-962 54109 L
-9060 54109 L
-9060 59867 l
-9060 63509 9385 66218 10037 67980 c
-10910 70348 12464 72287 14685 73753 c
-16905 75233 20044 75973 24041 75973 c
-26619 75973 29491 75663 32615 75056 C
-31238 67062 L
-29343 67387 27522 67565 25832 67565 c
-23049 67565 21080 66973 19925 65789 c
-18771 64604 18178 62369 18178 59112 c
-18178 54109 L
-28736 54109 L
-28736 46974 L
-18178 46974 L
-18178 0 L
-9074 0 L
-@c
-F
-T
-@rax %Note: Object
-185.39263 341.39906 200.43496 357.15373 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-185.39263 341.39906 m
-200.43496 341.39906 L
-200.43496 357.15373 L
-185.39263 357.15373 L
-185.39263 341.39906 L
-@c
-S
-
-@rax 191.52879 344.45197 194.65994 351.74778 @E
-[0.00009574 0.00000000 0.00000000 0.00009574 191.52874248 344.45185892] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 104680.00000 z
-%CHAR: 0 0 (f) @t
-9104 0 m
-9089 47122 L
-962 47122 L
-962 54272 L
-9089 54272 L
-9089 60045 l
-9089 63687 9415 66410 10066 68172 c
-10940 70555 12509 72495 14729 73975 c
-16965 75455 20103 76195 24115 76195 c
-26708 76195 29580 75885 32703 75278 C
-31327 67254 L
-29432 67595 27611 67772 25906 67772 c
-23123 67772 21139 67165 19984 65981 c
-18830 64797 18238 62547 18238 59290 c
-18238 54272 L
-28825 54272 L
-28825 47122 L
-18238 47122 L
-18238 0 L
-9104 0 L
-@c
-F
-T
-@rax 158.32602 387.61228 195.64072 400.96517 @E
-[0.00009574 0.00000000 0.00000000 0.00009574 158.32592826 387.83297677] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 188424.00000 z
-%CHAR: 0 0 (B) @t
-13809 0 m
-13785 134870 L
-64403 134870 l
-74683 134870 82972 133496 89178 130772 c
-95410 128048 100313 123832 103818 118172 c
-107324 112511 109100 106566 109100 100360 c
-109100 94605 107537 89154 104411 84086 c
-101284 78993 96547 74872 90244 71746 C
-98394 69377 104695 65280 109053 59524 c
-113435 53768 115637 46947 115637 39084 c
-115637 32783 114287 26883 111635 21483 c
-108982 16059 105666 11866 101758 8929 c
-97826 5992 92897 3742 86975 2250 c
-81054 758 73783 0 65208 0 c
-13809 0 L
-@c
-31646 78212 m
-60803 78188 l
-68714 78188 74398 78709 77833 79751 c
-82357 81101 85791 83351 88065 86478 c
-90362 89604 91523 93536 91523 98252 c
-91523 102705 90433 106661 88302 110071 c
-86170 113482 83091 115827 79112 117058 c
-75133 118314 68288 118953 58600 118953 c
-31646 118953 L
-31646 78212 L
-@c
-31646 15916 m
-65208 15893 l
-70988 15893 75038 16130 77359 16556 c
-81457 17267 84915 18522 87662 20227 c
-90410 21933 92707 24443 94463 27712 c
-96239 30980 97139 34797 97139 39084 c
-97139 44105 95836 48510 93275 52205 c
-90717 55900 87117 58529 82570 60021 c
-77998 61514 71390 62271 62816 62271 c
-31646 62271 L
-31646 15916 L
-@c
-F
-%CHAR: 125688 0 (G) @t
-203331 52892 m
-203331 68714 L
-260463 68809 L
-260463 18759 L
-251699 11772 242652 6490 233343 2984 c
-224011 -545 214416 -2321 204610 -2321 c
-191370 -2321 179314 521 168514 6182 c
-157690 11866 149492 20085 143997 30791 c
-138478 41523 135707 53532 135707 66772 c
-135707 79893 138454 92162 143926 103534 c
-149421 114903 157334 123382 167614 128877 c
-177917 134396 189807 137167 203236 137167 c
-212995 137167 221832 135580 229696 132430 c
-237559 129280 243765 124875 248218 119237 c
-252694 113600 256129 106211 258450 97139 C
-242344 92731 L
-240331 99602 237796 105003 234812 108911 c
-231804 112842 227493 115993 221927 118337 c
-216334 120706 210129 121890 203331 121890 c
-195183 121890 188102 120635 182180 118172 c
-176235 115708 171427 112416 167780 108390 c
-164132 104339 161266 99863 159253 95031 c
-155839 86691 154110 77643 154110 67885 c
-154110 55876 156195 45810 160319 37710 c
-164440 29607 170480 23591 178391 19682 c
-186302 15751 194710 13785 203592 13785 c
-211313 13785 218892 15277 226238 18238 c
-233580 21222 239194 24419 242983 27783 C
-242983 52892 L
-203331 52892 L
-@c
-F
-%CHAR: 272256 0 (P) @t
-286799 0 m
-286775 134870 L
-337654 134870 l
-346607 134870 353452 134420 358165 133567 c
-364797 132478 370366 130370 374819 127290 c
-379296 124188 382919 119830 385643 114264 c
-388367 108674 389741 102539 389741 95860 c
-389741 84394 386093 74683 378798 66748 c
-371503 58813 358284 54834 339217 54834 c
-304637 54834 L
-304637 0 L
-286799 0 L
-@c
-304637 70751 m
-339501 70751 l
-351012 70751 359231 72906 364063 77170 c
-368898 81457 371337 87520 371337 95315 c
-371337 100952 369916 105784 367074 109787 c
-364229 113814 360439 116466 355773 117745 c
-352789 118551 347223 118953 339122 118953 c
-304637 118953 L
-304637 70751 L
-@c
-F
-T
-@rax %Note: Object
-157.38548 356.14602 161.26951 374.07543 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-161.26951 374.07543 m
-158.10746 368.41748 157.38548 362.37033 157.88721 356.14602 C
-S
-@j
-0.00 0.00 0.00 1.00 K
-0.00 0.00 0.00 1.00 k
-0 @g
-0 @G
-[] 0 d 0 J 0 j
-0 R 0 O
-0 1.00800 1.00800 0 @w
-162.99950 377.17087 m
-162.19701 369.53631 L
-160.92879 371.39953 159.16904 372.38315 156.91748 372.48661 C
-162.99950 377.17087 L
-f
-@J
-
-@rax %Note: Object
-187.83184 357.77424 193.69843 375.05083 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-193.69843 357.77424 m
-193.67121 364.25565 191.32809 369.87704 187.83184 375.05083 C
-S
-@j
-0.00 0.00 0.00 1.00 K
-0.00 0.00 0.00 1.00 k
-0 @g
-0 @G
-[] 0 d 0 J 0 j
-0 R 0 O
-0 1.00800 1.00800 0 @w
-193.71317 354.22809 m
-190.65969 361.27134 L
-192.67965 360.27184 194.69565 360.28035 196.70740 361.29685 C
-193.71317 354.22809 L
-f
-@J
-
-@rax %Note: Object
-187.21956 314.10992 193.45578 340.63228 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-193.45578 340.63228 m
-192.93874 331.05005 191.69461 322.11043 187.21956 314.10992 C
-S
-@j
-0.00 0.00 0.00 1.00 K
-0.00 0.00 0.00 1.00 k
-0 @g
-0 @G
-[] 0 d 0 J 0 j
-0 R 0 O
-0 1.00800 1.00800 0 @w
-193.64683 344.17304 m
-196.28617 336.96425 L
-194.32743 338.07940 192.31455 338.18825 190.24696 337.29024 C
-193.64683 344.17304 L
-f
-@J
-
-@rax %Note: Object
-156.72444 313.81625 162.96066 340.33861 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-156.72444 340.33861 m
-157.24148 330.75638 158.48561 321.81676 162.96066 313.81625 C
-S
-@j
-0.00 0.00 0.00 1.00 K
-0.00 0.00 0.00 1.00 k
-0 @g
-0 @G
-[] 0 d 0 J 0 j
-0 R 0 O
-0 1.00800 1.00800 0 @w
-156.53339 343.87937 m
-159.93326 336.99657 L
-157.86567 337.89458 155.85279 337.78573 153.89405 336.67058 C
-156.53339 343.87937 L
-f
-@J
-
-@rax %Note: Object
-116.11531 294.66454 147.83074 294.66567 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-116.11531 294.66510 m
-126.68712 294.66510 137.25893 294.66510 147.83074 294.66510 C
-S
-@j
-0.00 0.00 0.00 1.00 K
-0.00 0.00 0.00 1.00 k
-0 @g
-0 @G
-[] 0 d 0 J 0 j
-0 R 0 O
-0 1.00800 1.00800 0 @w
-112.56917 294.66510 m
-119.62517 297.68910 L
-118.61717 295.67310 118.61717 293.65710 119.62517 291.64110 C
-112.56917 294.66510 L
-f
-@J
-
-@rax %Note: Object
-116.11531 255.80353 147.97049 255.80466 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-116.11531 255.80409 m
-126.73389 255.80409 137.35219 255.80409 147.97049 255.80409 C
-S
-@j
-0.00 0.00 0.00 1.00 K
-0.00 0.00 0.00 1.00 k
-0 @g
-0 @G
-[] 0 d 0 J 0 j
-0 R 0 O
-0 1.00800 1.00800 0 @w
-151.51663 255.80409 m
-144.46063 258.82809 L
-145.46863 256.81209 145.46863 254.79609 144.46063 252.78009 C
-151.51663 255.80409 L
-f
-@J
-
-@rax %Note: Object
-72.73020 255.29386 101.01288 264.48576 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-101.01288 255.66633 m
-90.53603 255.29386 81.64772 256.94901 72.73020 264.48576 C
-S
-@j
-0.00 0.00 0.00 1.00 K
-0.00 0.00 0.00 1.00 k
-0 @g
-0 @G
-[] 0 d 0 J 0 j
-0 R 0 O
-0 1.00800 1.00800 0 @w
-104.55676 255.79219 m
-97.61272 252.51931 L
-98.54844 254.56989 98.47672 256.58476 97.39786 258.56362 C
-104.55676 255.79219 L
-f
-@J
-
-@rax %Note: Object
-72.83934 286.43357 101.03329 296.55014 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-72.83934 286.43357 m
-81.18510 292.77808 89.40161 296.55014 101.03329 295.53307 C
-S
-@j
-0.00 0.00 0.00 1.00 K
-0.00 0.00 0.00 1.00 k
-0 @g
-0 @G
-[] 0 d 0 J 0 j
-0 R 0 O
-0 1.00800 1.00800 0 @w
-70.01631 284.28746 m
-73.80340 290.96504 L
-74.22094 288.75005 75.44098 287.14507 77.46350 286.15039 C
-70.01631 284.28746 L
-f
-@J
-
-@rax %Note: Object
-518.84844 231.84850 582.55880 270.77244 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-550.70362 270.77244 m
-533.15830 270.77244 518.84844 262.02983 518.84844 251.31033 c
-518.84844 240.59112 533.15830 231.84850 550.70362 231.84850 c
-568.24894 231.84850 582.55880 240.59112 582.55880 251.31033 c
-582.55880 262.02983 568.24894 270.77244 550.70362 270.77244 c
-@c
-S
-
-@rax %Note: Object
-480.54926 263.43581 495.59159 279.19049 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-495.59159 279.19049 m
-480.54926 279.19049 L
-480.54926 263.43581 L
-495.59159 263.43581 L
-495.59159 279.19049 L
-@c
-S
-
-@rax 486.33335 268.84148 489.45515 276.11603 @E
-[0.00009574 0.00000000 0.00000000 0.00009574 486.33329669 268.84159203] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 104370.00000 z
-%CHAR: 0 0 (f) @t
-9074 0 m
-9060 46974 L
-962 46974 L
-962 54109 L
-9060 54109 L
-9060 59867 l
-9060 63509 9385 66218 10037 67980 c
-10910 70348 12464 72287 14685 73753 c
-16905 75233 20044 75973 24041 75973 c
-26619 75973 29491 75663 32615 75056 C
-31238 67062 L
-29343 67387 27522 67565 25832 67565 c
-23049 67565 21080 66973 19925 65789 c
-18771 64604 18178 62369 18178 59112 c
-18178 54109 L
-28736 54109 L
-28736 46974 L
-18178 46974 L
-18178 0 L
-9074 0 L
-@c
-F
-T
-@rax 486.33335 268.84148 489.45515 276.11603 @E
-[0.00009574 0.00000000 0.00000000 0.00009574 486.33329669 268.84159203] @tm
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.21600 0.21600 0.00000 @w
-r
-
-% FontChange:/_Arial 104370.00000 z
-%CHAR: 0 0 (f) @t
-9074 0 m
-9060 46974 L
-962 46974 L
-962 54109 L
-9060 54109 L
-9060 59867 l
-9060 63509 9385 66218 10037 67980 c
-10910 70348 12464 72287 14685 73753 c
-16905 75233 20044 75973 24041 75973 c
-26619 75973 29491 75663 32615 75056 C
-31238 67062 L
-29343 67387 27522 67565 25832 67565 c
-23049 67565 21080 66973 19925 65789 c
-18771 64604 18178 62369 18178 59112 c
-18178 54109 L
-28736 54109 L
-28736 46974 L
-18178 46974 L
-18178 0 L
-9074 0 L
-@c
-S
-T
-@rax %Note: Object
-480.54926 224.51187 495.59159 240.26655 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-495.59159 240.26655 m
-480.54926 240.26655 L
-480.54926 224.51187 L
-495.59159 224.51187 L
-495.59159 240.26655 L
-@c
-S
-
-@rax 486.03090 229.03483 489.16205 236.33065 @E
-[-0.00009574 0.00000000 0.00000000 0.00009574 489.16206920 229.03471317] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 104680.00000 z
-%CHAR: 0 0 (f) @t
-9104 0 m
-9089 47122 L
-962 47122 L
-962 54272 L
-9089 54272 L
-9089 60045 l
-9089 63687 9415 66410 10066 68172 c
-10940 70555 12509 72495 14729 73975 c
-16965 75455 20103 76195 24115 76195 c
-26708 76195 29580 75885 32703 75278 C
-31327 67254 L
-29432 67595 27611 67772 25906 67772 c
-23123 67772 21139 67165 19984 65981 c
-18830 64797 18238 62547 18238 59290 c
-18238 54272 L
-28825 54272 L
-28825 47122 L
-18238 47122 L
-18238 0 L
-9104 0 L
-@c
-F
-T
-@rax 486.03090 229.03483 489.16205 236.33065 @E
-[0.00009574 0.00000000 0.00000000 0.00009574 486.03084000 229.03471317] @tm
- 0 O 0 @g
-0.00 0.00 0.00 1.00 k
-e
-
-% FontChange:/_Arial 104680.00000 z
-%CHAR: 0 0 (f) @t
-9104 0 m
-9089 47122 L
-962 47122 L
-962 54272 L
-9089 54272 L
-9089 60045 l
-9089 63687 9415 66410 10066 68172 c
-10940 70555 12509 72495 14729 73975 c
-16965 75455 20103 76195 24115 76195 c
-26708 76195 29580 75885 32703 75278 C
-31327 67254 L
-29432 67595 27611 67772 25906 67772 c
-23123 67772 21139 67165 19984 65981 c
-18830 64797 18238 62547 18238 59290 c
-18238 54272 L
-28825 54272 L
-28825 47122 L
-18238 47122 L
-18238 0 L
-9104 0 L
-@c
-F
-T
-@rax %Note: Object
-450.37474 270.87080 480.71480 270.87194 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-480.71480 270.87137 m
-470.60135 270.87137 460.48819 270.87137 450.37474 270.87137 C
-S
-@j
-0.00 0.00 0.00 1.00 K
-0.00 0.00 0.00 1.00 k
-0 @g
-0 @G
-[] 0 d 0 J 0 j
-0 R 0 O
-0 1.00800 1.00800 0 @w
-446.82860 270.87137 m
-453.88460 267.84737 L
-452.87660 269.86337 452.87660 271.87937 453.88460 273.89537 C
-446.82860 270.87137 L
-f
-@J
-
-@rax %Note: Object
-378.82743 272.41370 404.45915 272.41398 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-404.45915 272.41398 m
-395.91524 272.41370 387.37134 272.41370 378.82743 272.41370 C
-S
-@j
-0.00 0.00 0.00 1.00 K
-0.00 0.00 0.00 1.00 k
-0 @g
-0 @G
-[] 0 d 0 J 0 j
-0 R 0 O
-0 1.00800 1.00800 0 @w
-375.28129 272.41370 m
-382.33729 269.38970 L
-381.32929 271.40570 381.32929 273.42170 382.33729 275.43770 C
-375.28129 272.41370 L
-f
-@J
-
-@rax %Note: Object
-202.21795 251.00362 284.23559 269.60060 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-284.23559 251.00362 m
-270.50513 269.60060 234.56976 264.83471 202.21795 265.88239 C
-S
-@j
-0.00 0.00 0.00 1.00 K
-0.00 0.00 0.00 1.00 k
-0 @g
-0 @G
-[] 0 d 0 J 0 j
-0 R 0 O
-0 1.00800 1.00800 0 @w
-198.67380 265.99691 m
-205.62831 262.74614 L
-204.68608 264.79361 204.75128 266.80876 205.82391 268.79102 C
-198.67380 265.99691 L
-f
-@J
-
-@rax %Note: Object
-449.83956 232.00980 480.71480 232.01093 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-480.71480 232.01036 m
-470.42277 232.01036 460.13131 232.01036 449.83956 232.01036 C
-S
-@j
-0.00 0.00 0.00 1.00 K
-0.00 0.00 0.00 1.00 k
-0 @g
-0 @G
-[] 0 d 0 J 0 j
-0 R 0 O
-0 1.00800 1.00800 0 @w
-484.26094 232.01036 m
-477.20494 228.98636 L
-478.21294 231.00236 478.21294 233.01836 477.20494 235.03436 C
-484.26094 232.01036 L
-f
-@J
-
-@rax %Note: Object
-495.81723 231.50013 524.09991 240.69203 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-495.81723 231.87260 m
-506.29408 231.50013 515.18239 233.15528 524.09991 240.69203 C
-S
-@j
-0.00 0.00 0.00 1.00 K
-0.00 0.00 0.00 1.00 k
-0 @g
-0 @G
-[] 0 d 0 J 0 j
-0 R 0 O
-0 1.00800 1.00800 0 @w
-526.80813 242.98101 m
-519.46696 240.73597 L
-521.53824 239.84702 522.83962 238.30724 523.37112 236.11663 C
-526.80813 242.98101 L
-f
-@J
-
-@rax %Note: Object
-495.79682 262.63984 523.99077 272.75641 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-523.99077 262.63984 m
-515.64501 268.98435 507.42850 272.75641 495.79682 271.73934 C
-S
-@j
-0.00 0.00 0.00 1.00 K
-0.00 0.00 0.00 1.00 k
-0 @g
-0 @G
-[] 0 d 0 J 0 j
-0 R 0 O
-0 1.00800 1.00800 0 @w
-492.26428 271.43065 m
-499.55698 269.03282 L
-498.37720 270.95329 498.20145 272.96164 499.03002 275.05786 C
-492.26428 271.43065 L
-f
-@J
-
-@rax %Note: Object
-202.30639 308.22151 221.73250 326.40208 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-202.30639 308.22151 m
-206.36674 313.24309 208.30932 321.67701 221.73250 326.40208 C
-S
-@j
-0.00 0.00 0.00 1.00 K
-0.00 0.00 0.00 1.00 k
-0 @g
-0 @G
-[] 0 d 0 J 0 j
-0 R 0 O
-0 1.00800 1.00800 0 @w
-200.07694 305.46397 m
-202.16183 312.85219 L
-203.09584 310.80076 204.66340 309.53310 206.86479 309.04951 C
-200.07694 305.46397 L
-f
-@J
-
-@rax %Note: Object
-202.30639 283.71713 251.65899 310.32935 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-202.30639 283.71713 m
-223.93077 288.26050 239.49468 297.87307 251.65899 310.32935 C
-S
-@j
-0.00 0.00 0.00 1.00 K
-0.00 0.00 0.00 1.00 k
-0 @g
-0 @G
-[] 0 d 0 J 0 j
-0 R 0 O
-0 1.00800 1.00800 0 @w
-254.13647 312.86636 m
-247.04306 309.93109 L
-249.18973 309.24369 250.63200 307.83515 251.37014 305.70548 C
-254.13647 312.86636 L
-f
-@J
-
-@rax %Note: Object
-234.59556 337.20520 256.90932 351.69704 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-234.59556 337.20520 m
-239.96381 345.49795 246.81005 351.31776 256.90932 351.69704 C
-S
-@j
-0.00 0.00 0.00 1.00 K
-0.00 0.00 0.00 1.00 k
-0 @g
-0 @G
-[] 0 d 0 J 0 j
-0 R 0 O
-0 1.00800 1.00800 0 @w
-232.66857 334.22854 m
-233.96428 341.79506 L
-235.10891 339.85332 236.80148 338.75773 239.04142 338.50857 C
-232.66857 334.22854 L
-f
-@J
-
-@rax %Note: Object
-260.05946 317.97071 282.37323 340.63058 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-260.05946 317.97071 m
-269.71455 323.29843 277.44775 330.55512 282.37323 340.63058 C
-S
-@j
-0.00 0.00 0.00 1.00 K
-0.00 0.00 0.00 1.00 k
-0 @g
-0 @G
-[] 0 d 0 J 0 j
-0 R 0 O
-0 1.00800 1.00800 0 @w
-283.93058 343.81644 m
-278.11502 338.80535 L
-280.36885 338.82576 282.17991 337.94022 283.54847 336.14929 C
-283.93058 343.81644 L
-f
-@J
-
-@rax %Note: Object
-248.68148 226.69200 287.32762 239.99924 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-287.32762 239.99924 m
-279.29424 232.91178 269.32167 228.01946 248.68148 226.69200 C
-S
-@j
-0.00 0.00 0.00 1.00 K
-0.00 0.00 0.00 1.00 k
-0 @g
-0 @G
-[] 0 d 0 J 0 j
-0 R 0 O
-0 1.00800 1.00800 0 @w
-289.98680 242.34520 m
-286.69635 235.40939 L
-286.11836 237.58809 284.78466 239.09981 282.69496 239.94482 C
-289.98680 242.34520 L
-f
-@J
-
-@rax %Note: Object
-202.30639 226.69200 233.44753 244.72120 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-233.44753 226.69200 m
-221.54258 228.51865 210.95915 233.97080 202.30639 244.72120 C
-S
-@j
-0.00 0.00 0.00 1.00 K
-0.00 0.00 0.00 1.00 k
-0 @g
-0 @G
-[] 0 d 0 J 0 j
-0 R 0 O
-0 1.00800 1.00800 0 @w
-236.95257 226.15427 m
-229.51956 224.23550 L
-230.82151 226.07518 231.12737 228.06794 230.43685 230.21348 C
-236.95257 226.15427 L
-f
-@J
-
-@rax %Note: Object
-340.91376 259.21304 363.22753 272.12372 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-340.91376 259.21304 m
-346.87361 266.48391 354.11471 271.18290 363.22753 272.12372 C
-S
-@j
-0.00 0.00 0.00 1.00 K
-0.00 0.00 0.00 1.00 k
-0 @g
-0 @G
-[] 0 d 0 J 0 j
-0 R 0 O
-0 1.00800 1.00800 0 @w
-338.66589 256.47052 m
-340.80009 263.84457 L
-341.72022 261.78690 343.27956 260.50904 345.47754 260.01043 C
-338.66589 256.47052 L
-f
-@J
-
-@rax %Note: Object
-346.74633 225.84472 403.75928 242.78428 @E
-0 J 0 j [] 0 d 0 R 0 @G
-0.00 0.00 0.00 1.00 K
-0 0.72000 0.72000 0.00000 @w
-346.74633 242.78428 m
-360.65537 232.21843 381.47924 225.84472 403.75928 228.17792 C
-S
-@j
-0.00 0.00 0.00 1.00 K
-0.00 0.00 0.00 1.00 k
-0 @g
-0 @G
-[] 0 d 0 J 0 j
-0 R 0 O
-0 1.00800 1.00800 0 @w
-407.28614 228.54699 m
-399.95348 230.81953 L
-401.16614 228.91946 401.37591 226.91452 400.58334 224.80441 C
-407.28614 228.54699 L
-f
-@J
-
-%%PageTrailer
-@rs
-@rs
-%%Trailer
-@EndSysCorelDict
-end
-%%DocumentSuppliedResources: procset wCorel6Dict
-%%EOF
diff --git a/doc/slides/slides.tex b/doc/slides/slides.tex deleted file mode 100644 index 9b9f212b..00000000 --- a/doc/slides/slides.tex +++ /dev/null @@ -1,190 +0,0 @@ -\input epsf.tex - -\language=\czech -\chyph - -\hsize=170mm -\vsize=250mm -\nopagenumbers - -\font\srm=csss12 scaled \magstep3 -\font\stit=csb12 scaled \magstep3 -\font\sem=csssbx12 scaled \magstep3 -\font\sit=csssi12 scaled \magstep3 -\font\stt=cstt12 scaled \magstep3 -\font\stitle=cscsc12 scaled \magstep4 - -\baselineskip=25pt -\lineskip=2.1pt -\parindent=0pt -\parskip=4pt -\def\em#1{{\emfont #1}} -\srm - -\font\rmfont=cmr10 scaled \magstep4 -\font\ttfont=cmtt10 scaled \magstep4 -\font\ifont=cmmi10 scaled \magstep4 -\font\symfont=cmsy10 scaled \magstep4 -\font\exfont=cmex10 scaled \magstep4 -\font\rmfonts=cmr7 scaled \magstep4 -\font\ifonts=cmmi7 scaled \magstep4 -\font\symfonts=cmsy7 scaled \magstep4 -\font\exfonts=cmex7 scaled \magstep4 -\textfont0=\rmfont -\textfont1=\ifont -\textfont2=\symfont -\textfont3=\exfont -\scriptfont0=\rmfonts -\scriptfont1=\ifonts -\scriptfont2=\symfonts -\scriptfont3=\exfonts - -\newbox\birdbox -{\epsfxsize=2em\global\setbox\birdbox=\hbox{\epsfbox{logo.eps}}} - -\def\slide#1{\begingroup -\ifx:#1:\else -\line{\vrule width 0pt height 25pt depth 4pt \stit #1\hfill\smash{\lower1ex\copy\birdbox}} -\medskip -\hrule height 2pt -\bigskip -\fi -} -\def\endslide{\vfill\eject\endgroup} - -\def\\{\hfil\break} -\def\itemize#1{\par{\advance\leftskip by 35pt{\parskip=5pt #1}\par}} -\def\:{\par\leavevmode\llap{$\bullet$\hskip 7pt}} -\def\>{\par\leavevmode\llap{$\circ$\hskip 7pt}} - -\slide{} -\vglue 1in -\centerline{\epsfxsize=0.6\hsize\epsfbox{logo.eps}} -\centerline{\vbox{\offinterlineskip\halign{#\cr -\stitle Bird Internet Routing Daemon\cr -\noalign{\medskip}% -\leaders\hrule height 2pt\hfil\cr}}} -\vskip 0.5in -\centerline{\vbox{\sit\halign{\hfil # & # \hfil \cr -Vedoucí: & RNDr. Libor Forst \cr -Tým: & Ondøej Filip, Pavel Machek, Martin Mare¹ \cr -Home: & http:/\kern-0.2em/bird.network.cz/ \cr -E-mail: & bird@bird.network.cz \cr}}} -\endslide - -\slide{Propojování sítí a routing} -\medskip -\centerline{\epsfxsize=0.9\hsize\epsfbox{obr1.eps}} -\endslide - -\slide{Sítì jsou pøíli¹ velké $\Rightarrow$ Autonomní systémy} -\medskip -\centerline{\epsfxsize=0.9\hsize\epsfbox{obr2.eps}} -\endslide - -\slide{Cíle projektu} -\itemize{ -\:podpora v¹ech bì¾ných routovacích protokolù\\a snadné pøidávání nových -\:IPv4 i IPv6 -\:výmìna dat mezi rùznými protokoly -\:policy routing -\:snadná konfigurace a údr¾ba -\:kvalitní dokumentace -\:minimální závislost na pou¾itém OS -} -\endslide - -\slide{Implementované protokoly} -\itemize{ -\:RIP v2 (Routing Information Protocol) -\itemize{ -\>interní protokol -\>distance vector (Bellman-Ford) -\>pomalá konvergence, omezení prùmìru sítì -\>IPv4 i IPv6 -} -\:OSPF v2 (Open Shortest Path First) -\itemize{ -\>interní protokol -\>link state algorithm (Dijkstra) -\>rychlá konvergence, ale velmi slo¾itý -\>zatím pouze IPv4 -} -\:BGP v4 (Border Gateway Protocol) -\itemize{ -\>externí protokol (jediný dnes pou¾ívaný) -\>path vector -\>rychlá konvergence, neomezená filtrace -\>IPv4 i IPv6 -} -} -\endslide - -\slide{Propojení protokolù} -\medskip -\centerline{\epsfxsize=0.9\hsize\epsfbox{obr5.eps}} -\endslide - -\slide{Správa routeru} -\itemize{ -\:konfiguraèní soubory a on-line rekonfigurace: -\medskip -{\stt\advance\leftskip by 1cm -protocol ospf \char123 \\ -\hbox{}~~~area 0 \char123\ interface "eth*"; \char125; \\ -\hbox{}~~~export where source=RTS\char95STATIC; \\ -\hbox{}~~~import all; \\ -\char125 -\medskip -} -\:filtry: jednoduchý procedurální jazyk -\:logování událostí a tracing protokolù -\:dálkové ovládání -\:jednoduchý client -} -\endslide - -\slide{Architektura} -\itemize{ -\:modulární architektura se striktním rozdìlením\\kompetencí: -\itemize{ -\>jádro -\>protokoly -\>filtry -\>knihovny -} -\:oddìlení platformnì závislého kódu -\:vlastní datové typy: pøesné integery, IP adresy, \dots -\:øízení událostmi -\:``chytré'' datové struktury -} -\bigskip -Platformy: -\itemize{ -\:Zatím pouze Linux 2.0, Linux 2.1--2.4 -\:Èásteèný port na FreeBSD -} -\endslide - -\slide{Testování} -``Laboratorní'' testy: -\itemize{ -\:testovací sí» na~MFF: 3 poèítaèe a router Cisco 7000 -\:test zátì¾e (BGP, páteøní tabulka s~$72\,000$ polo¾kami) -\:test spolupráce (Cisco, GateD, Cyclades) -\:test portability: Linux 2.0--2.4; i386, Sparc, M680x0 -} -\bigskip -``Real world'' testy -- praktické pou¾ití: -\itemize{ -\:nasazen ve~firmì Ipex (sí» s~cca 1000 poèítaèi) -\:distribuováno veøejnì pod GPL: -\itemize{ -\>236 downloadù, 2244 shlédnutí stránek (k~26. 6.) -\>kladné ohlasy (zejména na konfiguraci) -\>5 bug reportù, vyøe¹eny -} -} -\endslide - -\end diff --git a/doc/slt2001/Makefile b/doc/slt2001/Makefile deleted file mode 100644 index 5979e1a0..00000000 --- a/doc/slt2001/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -all: slt.dvi - -slt.dvi: slt.tex - csplain slt.tex - -slt.ps: slt.dvi - dvips -o slt.ps -D600 -ta4 slt.dvi - -clean: - rm -f *~ *.log *.tfm *.*pk *.*gf *.ps *.dvi diff --git a/doc/slt2001/slt.tex b/doc/slt2001/slt.tex deleted file mode 100644 index fb948586..00000000 --- a/doc/slt2001/slt.tex +++ /dev/null @@ -1,275 +0,0 @@ -\magnification=\magstep1 -\input epsf.tex -\input mjmac.tex - -\language=\czech -\chyph - -\hsize=160truemm % A4 with 25mm margins -\vsize=247truemm -\parindent=2em -\nopagenumbers - -\def\hdr#1{\medskip\leftline{\bf #1}\smallskip} -\def\\{\hfil\break} -\def\BIRD{{\sc Bird}} - -\def\inititemize{\vskip 1pt\begingroup -\parskip=1pt plus 0.3pt minus 0.1pt -\advance\leftskip by 3em -\advance\rightskip by 3em -\parindent=0pt -} - -%%% Úvod a historie projektu -\hdr{Na poèátku bylo vejce aneb Úvodem} - -\noindent Internet i UNIX jsou na svìtì ji¾ pìkných pár pátkù. Poèítaèe pracující -pod nepøeberným mno¾stvím unixovských systémù od nepamìti fungují jako -internetové po¹tovní servery, name-servery a men¹í routery. Skoro by se zdálo, ¾e -si tyto dva svìty u¾ nemají co nového øíci. V~posledních letech ov¹em -výraznì vzrostl výkon bì¾ných PC-èek a objevily se pro nì karty podporující -nejrùznìj¹í sí»ové technologie, a~tak se tyto poèítaèe staly vhodnými -kandidáty i~pro funkci routerù. Na~mnoha místech tak star¹í PC-èko -s~volnì ¹iøitelným softwarem pøedstihlo svého star¹ího a dra¾¹ího -komerèního sourozence. Aèkoliv podpora routingu, firewallingu a inteligentní -queue management v~jádrech tìchto~OS (a~zejména Linuxu) je ji¾ velice -vyspìlá, je¹tì nedávno byly notnì zanedbávány protokoly pro dynamický -routing, tradièní unixovskou koncepcí umístìné do~u¾ivatelského prostoru -v~podobì routovacích daemonù. - -Tento nedostatek se pokou¹ela mezi jinými napravit také skupina nad¹encù -na~pra¾ské Matematicko-fyzikální fakultì UK, která se rozhodla jako svùj -studijní projekt vytvoøit nového routovacího daemona, který by se stal -nìèím víc ne¾ jen dùstojným konkurentem komerèních routerù -- nejen -kopíroval u¾ známá øe¹ení, ale také pøispìl nìèím novým; na~jedné stranì -být stabilním a efektivním programem pro praxi, na~stranì druhé ov¹em -i~laboratoøí pro snadné experimentování s~novými my¹lenkami. A~tak se -narodil projekt {\it BIRD Internet Routing Daemon} (zkrácenì \BIRD\footnote{$^0$}{Projekt -si samozøejmì vyslou¾il nejrùznìj¹í pøezdívky -- od Ptáèete a¾ po~Ptákovinu.}). - -Pùvodní plány byly smìlé a rozhodné: Vytvoøit nejlep¹ího routovacího -daemona na svìtì, který by fungoval na~v¹ech platformách, vy¾adoval -minimum strojového èasu a pamìti, podporoval v¹echny routovací protokoly -atd., zkrátka sen, jaký má být. Pøeskoème nyní dva roky vývoje\footnote{$^1$}{bìhem nich¾ -z~nìkterých po¾adavkù samozøejmì se¹lo -- napøíklad logem projektu -se nakonec nestal ptáèek nesoucí v~zobáèku snítku byliny øeèené routa \dots} -a podívejme se, co z~toho vze¹lo. - -%%% Svìt routingu -%% v~ti¹tìné verzi pøeskoèíme - -%%% Co BIRD doká¾e -\hdr{Kdy¾ ptáèka lapají, pìknì mu zpívají aneb Feature list} - -\noindent \BIRD\ dostal od svých sudièek do~vínku mnohé dary: - -\def\icirc{\raise0.2ex\hbox{$\circ$}} % Signs frequently used for \itemize - -\itemize\ibull -\:Schopnost komunikovat protokoly IPv4 i IPv6. -\:Podporu v¹ech základních routovacích protokolù: - \itemize\icirc - \:RIPv2 (Routing Information Protocol, viz RFC 1723 a 2080)\\ - Urèen pro interní routing, dnes významu spí¹e historického.\\ - Algoritmus: distance vector (Bellman-Ford).\\ - Velmi pomalá konvergence, pou¾itelý pouze pro malièké sítì. - \:OSPFv2 (Open Shortest Path First, viz RFC 2328)\\ - Urèen pro interní routing, v~souèasné dobì asi nejbì¾nìj¹í.\\ - Algoritmus: link state (Dijkstra).\\ - Rychlá konvergence, ale velice komplikovaný.\\ - Zatím podporujeme pouze pro IPv4. - \:BGP4 (Border Gateway Protocol, viz RFC 1771 a 2283)\\ - Standardní protokol pro externí routing mezi AS.\\ - Rychlá konvergence, mo¾nost administrativní filtrace.\\ - Algoritmus: path vector (upravený Bellman-Ford). - \endlist -\:Propojování protokolù a výmìnu dat mezi nimi. -\:Schopnost uplatòovat routing policy -- urèovat, které routovací informace - budou od~kterých protokolù pøijímány a do~kterých protokolù vysílány. -\:Snadnou konfiguraci a údr¾bu, ale o~tom a¾ pozdìji. -\:Modulární architekturu umo¾òující snadné doplòování nových protokolù, - filtrù i jednoduché portování na~dal¹í systémy. (Interface k~routovacím - slu¾bám jádra je bohu¾el i mezi jednotlivými unixovskými systémy natolik - rùznorodý, ¾e dokonce i~Linux 2.0 a Linux 2.2 jsou naprogramovány jako dva - odli¹né porty.) -\:A v~neposlední øadì kvalitní dokumentaci jak u¾ivatelskou, tak - programátorskou (to je vítaný dùsledek bytí ¹kolním projektem). -\endlist - -%%% A jak to v¹echno propojit -\hdr{Svìt z~ptaèí perspektivy aneb Jak to v¹echno dát dohromady?} - -\noindent Hlavním problémem ov¹em není ani tak v¹echny tyto vymo¾enosti naprogramovat -a popropojovat, nýbr¾ udìlat to tak, aby z~toho nevznikl neudr¾ovatelný -a neefektivní zmatek\footnote{$^2$}{Nádherným pøíkladem je Mendelùv pes, -jak ho kdysi nakreslil pan Kantorek.}. Z~toho se zrodil modulární pohled -na~svìt routingu a následnì i celá modulární architektura programu: - -\bigskip - -\centerline{\epsfxsize=0.9\hsize\epsfbox{../slides/obr5.eps}} - -\medskip - -Základem pohledu na~Internet z~na¹í \uv{ptaèí perspektivy} je routovací -tabulka. Na~ní jsou pøipojeny jednotlivé routovací protokoly -- jak -protokoly reálné, tak i nìkolik virtuálních, jako je napøíklad protokol -Kernel zaji¹»ující synchronizaci tabulky s~tabulkou jádra nebo protokol -Static generující podle své konfigurace statické smìrování. Ka¾dý z~protokolù -posílá do~tabulky polo¾ky pro v¹echny routy, které se na~základì svých informací -o~topologii sítì dozvídá. Tabulka pro ka¾dou sí» vybírá na základì preferencí -jednotlivých protokolù a jejich metrik optimální smìr a ten oznamuje -zpìt protokolùm. V~cestì ov¹em v~obou smìrech stojí filtry, které mohou -tok dat regulovat -- nìkteré polo¾ky odmítat, jiné upravovat (napøíklad -jim pøenastavovat metriky èi tagy; to se dokonce vztahuje i~na -atributy doplòované cílovým protokolem, proto¾e nejprve cílový protokol -nastaví implicitní hodnoty svých atributù, pokud je ji¾ polo¾ka neobsahovala, -a teprve pak dojde k~filtrování). - -Routovacích tabulek mù¾e dokonce existovat vícero a pomocí protokolu Pipe -si mohou pøeposílat vybrané polo¾ky. Tím mù¾eme zajistit napøíklad -routing závislý na~zdrojové adrese èi vstupním interfacu: u~Linuxu 2.2 -èi novìj¹ího nakonfigurujeme jádru více routovacích tabulek a ka¾dou -z~nich pøipojíme na~jednu tabulku na¹i. - -\hdr{Ptaèí zpìv aneb User interface} -%%% User interface: konfigurace, logging a filtry. Remote control. - -\noindent Sí» se mìní a s~ní se musí mìnit i konfigurace sí»ových -komponent. Ta se pozvolna stala tradièním kamenem úrazu vìt¹iny routerù. -U~tohoto kamene se toti¾ scházejí dva odvìcí nepøátelé: -snaha o~snadnost a flexibilitu konfigurace a snaha o~nepøetr¾itý -provoz sítì. A~jednou sleví ten, podruhé onen -- autoøi nìkterých -routerù vsadili na~sílu textových konfiguraèních souborù za~cenu -toho, ¾e se po~ka¾dé zmìnì konfigurace musí router restartovat -a po~nìjakou dobu neroutuje, jiní zase podøídili non-stop provozu -v¹e ostatní a stvoøili konfigurování nepøeberným mno¾stvím online -pøíkazù, pomocí nich¾ se nìkteré vìci provádìjí snadno, jiné, -na~které autoøi speciální pøíkaz nevymysleli, u¾ obtí¾nìji a je¹tì jiné -vy¾adují do~výsledného stavu dospìt postupným provedením mnoha zmìn, -co¾ má obvykle za~dùsledek daleko del¹í výpadek ne¾ jaký by byl vznikl -reloadem celého routeru. - -\BIRD\ se sna¾í dosáhnout obojího: pou¾ívá textové konfiguraèní soubory, -u¾ivateli tak dává mo¾nost vytváøet konfiguraci víceménì libovolným -zpùsobem -- a» ji¾ ruèním editováním, interaktivními programy èi -automatickým generováním pomocí scriptù. Po~zmìnì konfigurace je -ov¹em schopen si novou verzi souboru pøeèíst, porovnat s~právì -pou¾ívanou konfigurací a zmìnám se za bìhu pøízpùsobit (pokud -jsou zmìny pøíli¹ velké, mù¾e to zpùsobit restart -nìkterého z~protokolù, ale provoz tìch, kterých se zmìna -netýkala, to nijak neohrozí). - -Konfigurace ka¾dého protokolu (lépe øeèeno ka¾dé jeho instance -- -protokoly mohou být spu¹tìny nìkolikrát na~rùzných rozhraních -èi nad rùznými tabulkami) vypadá pøibli¾nì takto: - -\verbatim{ protocol bgp TestBGP { # instanci si mù¾eme nazvat - local as 65000; # ná¹ AS - neighbor 195.39.3.64 as 5588; # sousední AS - export all; # posílat budeme v¹echno - import filter { # na vstupu nìkteré odmítneme - if !(bgp_path ~ / ? 5588 ? /) then reject; - if net ~ [ 10.0.0.0/8+, 192.168.0.0/16+ ] then reject; - preference = 101; # zbylým nastavíme preferenci - accept; # a pøijmeme je - }; - }} -\noindent V¾dy popisuje protokol, jeho parametry, pøipojení k~tabulkám -(v~na¹em pøípadì pou¾íváme tabulku implicitní) a nastavení vstupních -i~výstupních filtrù. - -Filtry jsou popisovány jednoduchým procedurálním programovacím jazykem, -který má k~dispozici v¹echny informace o~právì zpracovávané polo¾ce, mù¾e -se podle nich rozhodovat a libovolnì je mìnit. Díky tomu je mo¾né jednodu¹e -zadávat i velice slo¾itá pravidla, definovat si podprogramy sdílené -filtry patøícími k~více protokolùm, i~poèítat metriky pro jeden protokol -na základì metrik protokolù ostatních. - -Vítaným pomocníkem pøi odhalování problémù v~sítích je rovnì¾ volitelné -logování dùle¾itých událostí a trasování èinnosti protokolù: zde si je -mo¾no pro ka¾dý protokol vy¾ádat prakticky cokoliv poèínaje základními informacemi o~bìhu -protokolu (pøipojování a odpojování sousedù apod.), pøes výmìnu polo¾ek -mezi protokolem, filtry a jeho tabulkou, a konèe detailním výpisem v¹ech -pøijatých i odeslaných paketù. - -Mimo to \BIRD\ disponuje \uv{dálkovým ovládáním} -- jednoduchým pøíkazovým -rozhraním, pøes které se mohou pøipojovat rùzní klienti a vydávat jak -nìkteré øídící pøíkazy (restarty protokolù, reload konfigurace, pøepínání -trasování, \dots), tak po¾adavky na~vypisování stavu routovacích tabulek -a protokolù. U~tìchto pøíkazù je mo¾no vyu¾ívat plné síly filtrovacího -jazyka, tak¾e chceme-li napøíklad znát v¹echny routy smìrované pomocí -BGP na jednoho konkrétního souseda, staèí polo¾it dotaz typu - -\verbatim{ bird> show route where source=RTS_BGP && gw=62.168.0.1} - -\noindent a dozvíme se ihned v¹e, co jsme potøebovali. Ladìní filtrù -navíc usnadní i~to, ¾e se mù¾eme zeptat na~obsah routovací tabulky -z~pohledu nìkterého z~bì¾ících protokolù. - -%%% BIRD uvnitø -%\hdr{Ptaèí anatomie} -%% existuje progdoc - -%%% Netradicni pouziti -\hdr{Cesty ta¾ných ptákù aneb Za hranicemi v¹edních dnù} - -\noindent Hotová modulární implementace routovacího daemona samozøejmì -svádí i k~ménì tradiènímu vyu¾ití. Zde se fantazii meze nekladou, autory -samé bìhem vývoje napadly napøíklad tyto triky: - -\itemize\ibull -\:{\I multirouter} -- \uv{schizofrenní} zaøízení pracující na rùzných - skupinách interfacù jako rùzné routery øídící se rùznými pravidly, - le¾ící tøeba i v~rùzných autonomních systémech. To je mo¾no zaøídit - patøièným nastavením jádra a buïto více bì¾ícími \BIRD{}y nebo dokonce - jedním pracujícím s~nìkolika rùznými routovacími tabulkami. Tak by - mohl napøíklad celý pra¾ský NIX bì¾et na jediném routeru (pravda, - bì¾né PC by na to nestaèílo), a pøesto by si ka¾dý provider mohl sám - urèovat a konfigurovat svou vlastní routovací politiku. -\:{\I ¹edá eminence} -- \BIRD\ by ani nemusel bì¾et pøímo na~stroji, který - pakety routuje, mohl by také hotové routovací tabulky diktovat - nìjakému dedikovanému routeru disponujícím výkonnìj¹ím hardwarem, - a tak skloubit ¹pièkovou propustnost \uv{velkého ¾eleza} - s~flexibilitou routeru be¾ícího pod unixovským systémem. -\:{\I inteligentní mirror} -- aplikace se nemusí zastavovat u~routingu - jako takového, mnohdy je mo¾no informace získané z~provozu routeru - vyu¾ívat k~dal¹ím úèelùm, napøíklad k~inteligentnímu pøesmìrovávání - klientù na~nejbli¾¹í mirror va¹eho archivu. -\endlist - -%%% A co dal? -\hdr{Èas ptáèat aneb Co dál?} - -Pøesto¾e po~úspì¹ném obhájení projektu a prvních nìkolika desítkách -spokojených u¾ivatelù (a samozøejmì i~pár opravených chybách) nyní vývoj -spí¹e stagnuje, autoøi ji¾ spøádají plány do~budoucnosti, které -by mìly \BIRD{}ovi pøinést mimo jiné také routování multicastù, agregaci -sí»ových prefixù, OSPFv3 pro IPv6, on-demand linky a porty na~dal¹í systémy. - -%%% Reference na nás a ostatní routery -\hdr{Snù¹ka odkazù na závìr} - -\noindent {\sc Bird Team} pod vedením RNDr. Libora Forsta ({\I forst@cuni.cz}) tvoøili: -$$\vbox{\halign{#\hfil & \quad \it # \hfil & \quad \it # \hfil\cr -Ondøej Filip&feela@ipex.cz&http:/$\!$/feela.ipex.cz/\cr -Martin Mare¹&mj@ucw.cz&http:/$\!$/atrey.karlin.mff.cuni.cz/\char126mj/\cr -Pavel Machek&pavel@ucw.cz&http:/$\!$/atrey.karlin.mff.cuni.cz/\char126pavel/\cr}}$$ -Domácí stránku projektu najdete na {\it http:/$\!$/bird.network.cz/,} odtamtud ji¾ -vedou odkazy na~aktuální verzi, online dokumentaci i mailing list -u¾ivatelù. -V¹echna zmiòovaná RFC i mnoho dal¹ích naleznete na {\it http:/$\!$/www.rfc-editor.org/}, -první my¹lenky o~vyu¾ívání ptactva v~Internetu sahají a¾ k~RFC~1149. -\BIRD\ není na~svìtì sám, má i~pøíbuzné; mezi nimi za zmínku stojí -daemoni {\sc GateD} ({\I http:/$\!$/www.gated.org/}), \hbox{\sc Zebra} ({\I http:/$\!$/www.zebra.org/}) -a {\sc Mrtd} ({\I http:/$\!$/www.mrtd.net/}). -O~IPv6 se bohu¾el zatím jen pí¹e, na~jeho celointernetové nasazení se stále -èeká a mezitím pøibývá address-translatorù a dal¹ích zvìrstev. Snad jediná -vìt¹í sí» pou¾ívající tento protokol je experimentální virtuální sí» 6-bone -(viz {\it http:/$\!$/www.6bone.net/} a odkazy odtamtud). - -Dotazy a pøipomínky posílejte buïto autorovi nebo celému {\sc Bird Team}u na~adresu -{\I bird@bird.network.cz}. - -\bye diff --git a/lib/birdlib.h b/lib/birdlib.h index 428b3209..7cd78032 100644 --- a/lib/birdlib.h +++ b/lib/birdlib.h @@ -56,6 +56,13 @@ static inline int u64_cmp(u64 i1, u64 i2) #define BIT32_CLR(b,p) ((b)[(p)/32] &= ~BIT32_VAL(p)) #define BIT32_ZERO(b,l) memset((b), 0, (l)/8) +/* The same, but counting bits from MSB */ +#define BIT32R_VAL(p) ((((u32) 1) << 31) >> ((p) % 32)) +#define BIT32R_TEST(b,p) ((b)[(p)/32] & BIT32R_VAL(p)) +#define BIT32R_SET(b,p) ((b)[(p)/32] |= BIT32R_VAL(p)) +#define BIT32R_CLR(b,p) ((b)[(p)/32] &= ~BIT32R_VAL(p)) +#define BIT32R_ZERO(b,l) memset((b), 0, (l)/8) + #ifndef NULL #define NULL ((void *) 0) #endif diff --git a/misc/Makefile b/misc/Makefile deleted file mode 100644 index fe0307d5..00000000 --- a/misc/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -all: ips - -ips: ips.c - gcc ips.c -o ips -lm -O2 -Wall - -clean: - rm -f ips diff --git a/misc/bird.init b/misc/bird.init deleted file mode 100755 index 93aa83d6..00000000 --- a/misc/bird.init +++ /dev/null @@ -1,97 +0,0 @@ -#! /bin/sh -# -# bird Starts the Internet Routing Daemon. -# -# Author: Ondrej Feela Filip, <feela@network.cz> -# -# chkconfig: - 32 75 -# description: Internet routing daemon supporting IPv4 routing protocols: -# BGP4, RIPv2 and OSPFv2. -# -# processname: bird -# config: /etc/bird.conf - - -# Source function library. -. /etc/rc.d/init.d/functions - -[ -f /etc/sysconfig/network ] || exit 0 - -. /etc/sysconfig/network - -BIRD4="yes" -BIRD6="yes" - -BIRD4ARGS= -BIRD6ARGS= - -[ -f /etc/bird.conf ] || BIRD4="no" -[ -f /usr/sbin/bird ] || BIRD4="no" -[ "${NETWORKING}" = "yes" ] || BIRD4="no" - -[ -f /etc/bird6.conf ] || BIRD6="no" -[ -f /usr/sbin/bird6 ] || BIRD6="no" -[ "${NETWORKING_IPV6}" = "yes" ] || BIRD6="no" - -[ -e /etc/sysconfig/bird ] && . /etc/sysconfig/bird - -RETVAL=0 - -# See how we were called. -case "$1" in - start) - if [ "$BIRD4" = "yes" ] - then - echo -n "Starting BIRD for IPv4: " - daemon bird ${BIRD4ARGS} - RETVAL=$? - echo - [ $RETVAL -eq 0 ] && touch /var/lock/subsys/bird - fi - if [ "$BIRD6" = "yes" ] - then - echo -n "Starting BIRD for IPv6: " - daemon bird6 ${BIRD6ARGS} - RETVAL=$? - echo - [ $RETVAL -eq 0 ] && touch /var/lock/subsys/bird6 - fi - ;; - stop) - echo -n "Stopping BIRD for IPv4: " - killproc bird - RETVAL=$? - echo - [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/bird - - echo -n "Stopping BIRD for IPv6: " - killproc bird6 - RETVAL=$? - echo - [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/bird6 - ;; - status) - status bird - status bird6 - RETVAL=$? - ;; - restart) - $0 stop - $0 start - RETVAL=$? - ;; - reload) - killproc bird -HUP - RETVAL=$? - echo - echo -n "Reloading BIRD for IPv6: " - killproc bird6 -HUP - RETVAL=$? - echo - ;; - *) - echo "Usage: bird.init {start|stop|status|restart|reload}" - exit 1 -esac - -exit $RETVAL diff --git a/misc/bird.spec b/misc/bird.spec deleted file mode 100644 index acd4fe2c..00000000 --- a/misc/bird.spec +++ /dev/null @@ -1,55 +0,0 @@ -Summary: BIRD Internet Routing Daemon -Name: bird -Version: 2.0.3 -Release: 1 -Copyright: GPL -Group: Networking/Daemons -Source: ftp://bird.network.cz/pub/bird/bird-%{version}.tar.gz -Source1: bird.init -Source2: birdc6 -Buildroot: /var/tmp/bird-root -Url: http://bird.network.cz -Prereq: /sbin/chkconfig -BuildRequires: flex bison readline-devel ncurses-devel - -%description -BIRD is dynamic routing daemon supporting IPv4 and IPv6 versions of routing -protocols BGP, RIP and OSPF. - -%prep -%setup -n bird-%{version} - -%build -./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-ipv6 -make -mv bird bird6 -make clean -./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var -make - - -%install -rm -rf $RPM_BUILD_ROOT/* -make install prefix=$RPM_BUILD_ROOT/usr sysconfdir=$RPM_BUILD_ROOT/etc localstatedir=$RPM_BUILD_ROOT/var -install bird6 $RPM_BUILD_ROOT/usr/sbin - -cd $RPM_BUILD_ROOT -install -d etc/rc.d/init.d -install $RPM_SOURCE_DIR/bird.init etc/rc.d/init.d/bird -install $RPM_SOURCE_DIR/birdc6 usr/sbin/birdc6 - -%post -/sbin/ldconfig -/sbin/chkconfig --add bird - -%preun -if [ $1 = 0 ] ; then - /sbin/chkconfig --del bird -fi - -%files -%attr(755,root,root) /usr/sbin/bird -%attr(755,root,root) /usr/sbin/bird6 -%attr(755,root,root) /usr/sbin/birdc -%attr(755,root,root) /usr/sbin/birdc6 -%attr(755,root,root) /etc/rc.d/init.d/bird diff --git a/misc/cisco2list b/misc/cisco2list deleted file mode 100755 index 6f5466fe..00000000 --- a/misc/cisco2list +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/perl -# -# Convert Cisco routing table listing to list of prefixes -# - -$loc = ($ARGV[0] eq "-l"); # Print only local prefixes - -while (<STDIN>) { - ($loc ? /^[OR]\s/ : /^B\s/) || next; - /^[ORB]( E[12])?\s+(\d+\.\d+\.\d+\.\d+)(\s|\/\d+\s)/ || die "Cannot parse $_"; - $net = $2; - $len = $3; - if ($len =~ /^\s*$/) { - # Magic rule :) - $len = ($net =~ /\.0$/) ? 24 : 32; - } - $len =~ s/^\///; - $net =~ /(\d+)\.(\d+)\.(\d+)\.(\d+)/; - printf "%02x%02x%02x%02x/%d\n", $1, $2, $3, $4, $len; -} diff --git a/misc/docker/centos-6-amd64/Dockerfile b/misc/docker/centos-6-amd64/Dockerfile deleted file mode 100644 index d92f64f9..00000000 --- a/misc/docker/centos-6-amd64/Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -FROM centos:6 -RUN yum -y upgrade -RUN yum -y install \ - autoconf \ - flex \ - bison \ - pkgconfig \ - 'readline-devel' \ - 'pkgconfig(ncurses)' \ - gcc \ - make diff --git a/misc/docker/centos-7-amd64/Dockerfile b/misc/docker/centos-7-amd64/Dockerfile deleted file mode 100644 index c01731b2..00000000 --- a/misc/docker/centos-7-amd64/Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -FROM centos:7 -RUN yum -y upgrade -RUN yum -y install \ - autoconf \ - flex \ - bison \ - pkgconfig \ - 'readline-devel' \ - 'pkgconfig(ncurses)' \ - gcc \ - make diff --git a/misc/docker/debian-7-amd64/Dockerfile b/misc/docker/debian-7-amd64/Dockerfile deleted file mode 100644 index dd5e9236..00000000 --- a/misc/docker/debian-7-amd64/Dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -FROM debian:wheezy-slim -ENV DEBIAN_FRONTEND noninteractive -RUN sed -i 's/deb.debian.org/ftp.cz.debian.org/' /etc/apt/sources.list -RUN apt-get -y update -RUN apt-get -y upgrade -RUN apt-get -y install \ - autoconf \ - build-essential \ - flex \ - bison \ - ncurses-dev \ - libreadline-dev diff --git a/misc/docker/debian-7-i386/Dockerfile b/misc/docker/debian-7-i386/Dockerfile deleted file mode 100644 index 753ff1cb..00000000 --- a/misc/docker/debian-7-i386/Dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -FROM i386/debian:wheezy-slim -ENV DEBIAN_FRONTEND noninteractive -RUN sed -i 's/deb.debian.org/ftp.cz.debian.org/' /etc/apt/sources.list -RUN apt-get -y update -RUN apt-get -y upgrade -RUN apt-get -y install \ - autoconf \ - build-essential \ - flex \ - bison \ - ncurses-dev \ - libreadline-dev diff --git a/misc/docker/debian-8-amd64/Dockerfile b/misc/docker/debian-8-amd64/Dockerfile deleted file mode 100644 index d0e8ed0a..00000000 --- a/misc/docker/debian-8-amd64/Dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -FROM debian:jessie-slim -ENV DEBIAN_FRONTEND noninteractive -RUN sed -i 's/deb.debian.org/ftp.cz.debian.org/' /etc/apt/sources.list -RUN apt-get -y update -RUN apt-get -y upgrade -RUN apt-get -y install \ - autoconf \ - build-essential \ - flex \ - bison \ - ncurses-dev \ - libreadline-dev diff --git a/misc/docker/debian-8-i386/Dockerfile b/misc/docker/debian-8-i386/Dockerfile deleted file mode 100644 index 9dd6f022..00000000 --- a/misc/docker/debian-8-i386/Dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -FROM i386/debian:jessie-slim -ENV DEBIAN_FRONTEND noninteractive -RUN sed -i 's/deb.debian.org/ftp.cz.debian.org/' /etc/apt/sources.list -RUN apt-get -y update -RUN apt-get -y upgrade -RUN apt-get -y install \ - autoconf \ - build-essential \ - flex \ - bison \ - ncurses-dev \ - libreadline-dev diff --git a/misc/docker/debian-9-amd64/Dockerfile b/misc/docker/debian-9-amd64/Dockerfile deleted file mode 100644 index e8a17efc..00000000 --- a/misc/docker/debian-9-amd64/Dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -FROM debian:stretch-slim -ENV DEBIAN_FRONTEND noninteractive -RUN sed -i 's/deb.debian.org/ftp.cz.debian.org/' /etc/apt/sources.list -RUN apt-get -y update -RUN apt-get -y upgrade -RUN apt-get -y install \ - autoconf \ - build-essential \ - flex \ - bison \ - ncurses-dev \ - libreadline-dev diff --git a/misc/docker/debian-9-i386/Dockerfile b/misc/docker/debian-9-i386/Dockerfile deleted file mode 100644 index 73e70750..00000000 --- a/misc/docker/debian-9-i386/Dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -FROM i386/debian:stretch-slim -ENV DEBIAN_FRONTEND noninteractive -RUN sed -i 's/deb.debian.org/ftp.cz.debian.org/' /etc/apt/sources.list -RUN apt-get -y update -RUN apt-get -y upgrade -RUN apt-get -y install \ - autoconf \ - build-essential \ - flex \ - bison \ - ncurses-dev \ - libreadline-dev diff --git a/misc/docker/debian-testing-amd64/Dockerfile b/misc/docker/debian-testing-amd64/Dockerfile deleted file mode 100644 index 3b66e3fa..00000000 --- a/misc/docker/debian-testing-amd64/Dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -FROM debian:testing-slim -ENV DEBIAN_FRONTEND noninteractive -RUN sed -i 's/deb.debian.org/ftp.cz.debian.org/' /etc/apt/sources.list -RUN apt-get -y update -RUN apt-get -y upgrade -RUN apt-get -y install \ - autoconf \ - build-essential \ - flex \ - bison \ - ncurses-dev \ - libreadline-dev diff --git a/misc/docker/debian-testing-i386/Dockerfile b/misc/docker/debian-testing-i386/Dockerfile deleted file mode 100644 index 998ce969..00000000 --- a/misc/docker/debian-testing-i386/Dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -FROM i386/debian:testing-slim -ENV DEBIAN_FRONTEND noninteractive -RUN sed -i 's/deb.debian.org/ftp.cz.debian.org/' /etc/apt/sources.list -RUN apt-get -y update -RUN apt-get -y upgrade -RUN apt-get -y install \ - autoconf \ - build-essential \ - flex \ - bison \ - ncurses-dev \ - libreadline-dev diff --git a/misc/docker/fedora-25-amd64/Dockerfile b/misc/docker/fedora-25-amd64/Dockerfile deleted file mode 100644 index 9cc4c3f6..00000000 --- a/misc/docker/fedora-25-amd64/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM fedora:25 -RUN dnf -y upgrade -RUN dnf -y install \ - autoconf \ - flex \ - bison \ - pkgconfig \ - 'readline-devel' \ - 'pkgconfig(ncurses)' \ - gcc diff --git a/misc/docker/fedora-26-amd64/Dockerfile b/misc/docker/fedora-26-amd64/Dockerfile deleted file mode 100644 index d1e84439..00000000 --- a/misc/docker/fedora-26-amd64/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM fedora:26 -RUN dnf -y upgrade -RUN dnf -y install \ - autoconf \ - flex \ - bison \ - pkgconfig \ - 'readline-devel' \ - 'pkgconfig(ncurses)' \ - gcc diff --git a/misc/docker/opensuse-42.3-amd64/Dockerfile b/misc/docker/opensuse-42.3-amd64/Dockerfile deleted file mode 100644 index c9f7127d..00000000 --- a/misc/docker/opensuse-42.3-amd64/Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -FROM opensuse:42.3 -RUN zypper -n up -RUN zypper -n install \ - autoconf \ - flex \ - bison \ - pkgconfig \ - readline-devel \ - ncurses-devel \ - gcc \ - gmake diff --git a/misc/docker/ubuntu-14.04-amd64/Dockerfile b/misc/docker/ubuntu-14.04-amd64/Dockerfile deleted file mode 100644 index ccac3eb4..00000000 --- a/misc/docker/ubuntu-14.04-amd64/Dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -FROM ubuntu:14.04 -ENV DEBIAN_FRONTEND noninteractive -RUN sed -i 's/deb.debian.org/ftp.cz.debian.org/' /etc/apt/sources.list -RUN apt-get -y update -RUN apt-get -y upgrade -RUN apt-get -y install \ - autoconf \ - build-essential \ - flex \ - bison \ - ncurses-dev \ - libreadline-dev diff --git a/misc/docker/ubuntu-16.04-amd64/Dockerfile b/misc/docker/ubuntu-16.04-amd64/Dockerfile deleted file mode 100644 index 50a4918c..00000000 --- a/misc/docker/ubuntu-16.04-amd64/Dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -FROM ubuntu:16.04 -ENV DEBIAN_FRONTEND noninteractive -RUN sed -i 's/deb.debian.org/ftp.cz.debian.org/' /etc/apt/sources.list -RUN apt-get -y update -RUN apt-get -y upgrade -RUN apt-get -y install \ - autoconf \ - build-essential \ - flex \ - bison \ - ncurses-dev \ - libreadline-dev diff --git a/misc/ips.c b/misc/ips.c deleted file mode 100644 index 467cc25d..00000000 --- a/misc/ips.c +++ /dev/null @@ -1,94 +0,0 @@ -#include <stdio.h> -#include <math.h> -#include <unistd.h> -#include <stdlib.h> - -int h[65536]; - -/* - * Probability analysis of hashing function: - * - * Let n be number of items and k number of boxes. For uniform distribution - * we get: - * - * Expected value of "item i is in given box": Xi = 1/k - * Expected number of items in given box: a = EX = E(sum Xi) = sum E(Xi) = n/k - * Expected square value: E(X^2) = E((sum Xi)^2) = E((sum_i Xi^2) + (sum_i,j i<>j XiXj)) = - * = sum_i E(Xi^2) + sum_i,j i<>j E(XiXj) = - * = sum_i E(Xi) [Xi is binary] + sum_i,j i<>j E(XiXj) [those are independent] = - * = n/k + n*(n-1)/k^2 - * Variance: var X = E(X^2) - (EX)^2 = n/k + n*(n-1)/k^2 - n^2/k^2 = - * = n/k - n/k^2 = a * (1-1/k) - * Probability of fixed box being zero: Pz = ((k-1)/k)^n = (1-1/k)^n = (1-1/k)^(ak) = - * = ((1-1/k)^k)^a which we can approximate by e^-a. - */ - -uint hf(uint n) -{ -#if 0 - n = (n ^ (n >> 16)) & 0xffff; - n = (n ^ (n << 8)) & 0xffff; -#elif 1 - n = (n >> 16) ^ n; - n = (n ^ (n << 10)) & 0xffff; -#elif 0 - n = (n >> 16) ^ n; - n *= 259309; -#elif 0 - n ^= (n >> 20); - n ^= (n >> 10); - n ^= (n >> 5); -#elif 0 - n = (n * 259309) + ((n >> 16) * 123479); -#else - return random(); -#endif - return n; -} - -int -main(int argc, char **argv) -{ - int cnt=0; - int i; - - int bits = atol(argv[1]); - int z = 1 << bits; - int max = atol(argv[2]); - - while (max--) - { - uint i, e; - if (scanf("%x/%d", &i, &e) != 2) - if (feof(stdin)) - break; - else - fprintf(stderr, "BUGGG\n"); -// i >>= (32-e); -// i |= (i >> e); - cnt++; - h[(hf(i) >> 1*(16 - bits)) & (z-1)]++; - } -// printf(">>> %d addresses\n", cnt); -#if 0 - for(i=0; i<z; i++) - printf("%d\t%d\n", i, h[i]); -#else -{ - int min=cnt, max=0, zer=0; - double delta=0; - double avg = (double) cnt / z; - double exdelta = avg*(1-1/(double)z); - double exzer = exp(-avg); - for(i=0; i<z; i++) { - if (h[i] < min) min=h[i]; - if (h[i] > max) max=h[i]; - delta += (h[i] - avg) * (h[i] - avg); - if (!h[i]) zer++; - } - printf("size=%5d, min=%d, max=%2d, delta=%-7.6g (%-7.6g), avg=%-5.3g, zero=%g%% (%g%%)\n", z, min, max, delta/z, exdelta, avg, zer/(double)z*100, exzer*100); -} -#endif - - return 0; -} diff --git a/misc/stats b/misc/stats deleted file mode 100755 index 57920ce4..00000000 --- a/misc/stats +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -make ips -echo "Global tables:" -for a in 4 5 6 7 8 9 10 11 12 13 14 15 ; do - ./ips <global $a $((1<<($a+2))) - done -echo "Local tables:" -./ips <local 6 1000 diff --git a/nest/proto.c b/nest/proto.c index fadce6c7..d4a333d0 100644 --- a/nest/proto.c +++ b/nest/proto.c @@ -1693,11 +1693,11 @@ channel_show_stats(struct channel *c) struct proto_stats *s = &c->stats; if (c->in_keep_filtered) - cli_msg(-1006, " Routes: %u imported, %u filtered, %u exported", - s->imp_routes, s->filt_routes, s->exp_routes); + cli_msg(-1006, " Routes: %u imported, %u filtered, %u exported, %u preferred", + s->imp_routes, s->filt_routes, s->exp_routes, s->pref_routes); else - cli_msg(-1006, " Routes: %u imported, %u exported", - s->imp_routes, s->exp_routes); + cli_msg(-1006, " Routes: %u imported, %u exported, %u preferred", + s->imp_routes, s->exp_routes, s->pref_routes); cli_msg(-1006, " Route change stats: received rejected filtered ignored accepted"); cli_msg(-1006, " Import updates: %10u %10u %10u %10u %10u", diff --git a/nest/protocol.h b/nest/protocol.h index 7f539aef..6c04071b 100644 --- a/nest/protocol.h +++ b/nest/protocol.h @@ -134,6 +134,7 @@ struct proto_stats { /* Import - from protocol to core */ u32 imp_routes; /* Number of routes successfully imported to the (adjacent) routing table */ u32 filt_routes; /* Number of routes rejected in import filter but kept in the routing table */ + u32 pref_routes; /* Number of routes selected as best in the (adjacent) routing table */ u32 imp_updates_received; /* Number of route updates received */ u32 imp_updates_invalid; /* Number of route updates rejected as invalid */ u32 imp_updates_filtered; /* Number of route updates rejected by filters */ diff --git a/nest/rt-fib.c b/nest/rt-fib.c index 48091d43..a8800b65 100644 --- a/nest/rt-fib.c +++ b/nest/rt-fib.c @@ -58,11 +58,52 @@ #include "nest/route.h" #include "lib/string.h" +/* + * The FIB rehash values are maintaining FIB count between N/5 and 2N. What + * does it mean? + * + * +------------+--------+---------+-----------+----------+-----------+ + * | Table size | Memory | Min cnt | net + rte | Max cnt | net + rte | + * +------------+--------+---------+-----------+----------+-----------+ + * | 1k | 8k | 0 | 0 | 2k | 192 k | + * | 2k | 16k | 409 | 38.3k | 4k | 384 k | + * | 4k | 32k | 819 | 76.8k | 8k | 768 k | + * | 8k | 64k | 1.6k | 153.6k | 16k | 1.5M | + * | 16k | 128k | 3.2k | 307.1k | 32k | 3 M | + * | 32k | 256k | 6.4k | 614.3k | 64k | 6 M | + * | 64k | 512k | 12.8k | 1.2M | 128k | 12 M | + * | 128k | 1024k | 25.6k | 2.4M | 256k | 24 M | + * | 256k | 2M | 51.2k | 4.8M | 512k | 48 M | + * | 512k | 4M | 102.4k | 9.6M | 1M | 96 M | + * | 1M | 8M | 204.8k | 19.2M | 2M | 192 M | + * | 2M | 16M | 409.6k | 38.4M | 4M | 384 M | + * | 4M | 32M | 819.2k | 76.8M | 8M | 768 M | + * | 8M | 64M | 1.6M | 153.6M | infinity | infinity | + * +------------+--------+---------+-----------+----------+-----------+ + * + * Table size shows how many slots are in FIB table. + * Memory shows how much memory is eaten by FIB table. + * Min cnt minimal number of nets in table of given size + * Max cnt maximal number of nets in table of given size + * net + rte memory eaten by 1 net and one route in it for min cnt and max cnt + * + * Example: If we have 750,000 network entries in a table: + * * the table size may be 512k if we have never had more + * * the table size may be 1M or 2M if we at least happened to have more + * * 256k is too small, 8M is too big + * + * When growing, rehash is done on demand so we do it on every power of 2. + * When shrinking, rehash is done on delete which is done (in global tables) + * in a scheduled event. Rehashing down 2 steps. + * + */ + + #define HASH_DEF_ORDER 10 -#define HASH_HI_MARK *4 -#define HASH_HI_STEP 2 +#define HASH_HI_MARK * 2 +#define HASH_HI_STEP 1 #define HASH_HI_MAX 24 -#define HASH_LO_MARK /5 +#define HASH_LO_MARK / 5 #define HASH_LO_STEP 2 #define HASH_LO_MIN 10 diff --git a/nest/rt-table.c b/nest/rt-table.c index ae4bb74d..6bf07a09 100644 --- a/nest/rt-table.c +++ b/nest/rt-table.c @@ -405,8 +405,6 @@ export_filter_(struct channel *c, rte *rt0, rte **rt_free, linpool *pool, int si rt = rt0; *rt_free = NULL; - rte_make_tmp_attrs(&rt, pool); - v = p->preexport ? p->preexport(p, &rt, pool) : 0; if (v < 0) { @@ -425,6 +423,8 @@ export_filter_(struct channel *c, rte *rt0, rte **rt_free, linpool *pool, int si goto accept; } + rte_make_tmp_attrs(&rt, pool); + v = filter && ((filter == FILTER_REJECT) || (f_run(filter, &rt, pool, (silent ? FF_SILENT : 0)) > F_ACCEPT)); @@ -564,33 +564,47 @@ rt_notify_basic(struct channel *c, net *net, rte *new0, rte *old0, int refeed) * and the end of refeed - if a newly filtered route disappears during this * period, proper withdraw is not sent (because old would be also filtered) * and the route is not refeeded (because it disappeared before that). - * Therefore, we also do not try to run the filter on old routes that are - * older than the last filter change. + * This is handled below as a special case. */ if (new) new = export_filter(c, new, &new_free, 0); - if (old && !(refeed || (old->lastmod <= c->last_tx_filter_change))) + if (old && !refeed) old = export_filter(c, old, &old_free, 1); if (!new && !old) { /* * As mentioned above, 'old' value may be incorrect in some race conditions. - * We generally ignore it with the exception of withdraw to pipe protocol. - * In that case we rather propagate unfiltered withdraws regardless of - * export filters to ensure that when a protocol is flushed, its routes are - * removed from all tables. Possible spurious unfiltered withdraws are not - * problem here as they are ignored if there is no corresponding route at - * the other end of the pipe. We directly call rt_notify() hook instead of + * We generally ignore it with two exceptions: + * + * First, withdraw to pipe protocol. In that case we rather propagate + * unfiltered withdraws regardless of export filters to ensure that when a + * protocol is flushed, its routes are removed from all tables. Possible + * spurious unfiltered withdraws are not problem here as they are ignored if + * there is no corresponding route at the other end of the pipe. + * + * Second, recent filter change. If old route is older than filter change, + * then it was previously evaluated by a different filter and we do not know + * whether it was really propagated. In that case we rather send spurious + * withdraw than do nothing and possibly cause phantom routes. + * + * In both cases wqe directly call rt_notify() hook instead of * do_rt_notify() to avoid logging and stat counters. */ + int pipe_withdraw = 0, filter_change = 0; #ifdef CONFIG_PIPE - if ((p->proto == &proto_pipe) && !new0 && (p != old0->sender->proto)) - p->rt_notify(p, c, net, NULL, old0); + pipe_withdraw = (p->proto == &proto_pipe) && !new0; #endif + filter_change = old0 && (old0->lastmod <= c->last_tx_filter_change); + + if ((pipe_withdraw || filter_change) && (p != old0->sender->proto)) + { + c->stats.exp_withdraws_accepted++; + p->rt_notify(p, c, net, NULL, old0); + } return; } @@ -607,7 +621,7 @@ rt_notify_basic(struct channel *c, net *net, rte *new0, rte *old0, int refeed) static void rt_notify_accepted(struct channel *c, net *net, rte *new_changed, rte *old_changed, rte *before_old, int feed) { - // struct proto *p = c->proto; + struct proto *p = c->proto; rte *r; rte *new_best = NULL; @@ -684,7 +698,9 @@ rt_notify_accepted(struct channel *c, net *net, rte *new_changed, rte *old_chang */ /* Hack for changed filters */ - if (old_changed && (old_changed->lastmod <= c->last_tx_filter_change)) + if (old_changed && + (p != old_changed->sender->proto) && + (old_changed->lastmod <= c->last_tx_filter_change)) { old_best = old_changed; goto found; @@ -900,8 +916,16 @@ rte_announce(rtable *tab, unsigned type, net *net, rte *new, rte *old, if (!old && !new) return; - if ((type == RA_OPTIMAL) && tab->hostcache) - rt_notify_hostcache(tab, net); + if (type == RA_OPTIMAL) + { + if (new) + new->sender->stats.pref_routes++; + if (old) + old->sender->stats.pref_routes--; + + if (tab->hostcache) + rt_notify_hostcache(tab, net); + } struct channel *c; node *n; WALK_LIST2(c, n, tab->channels, table_node) @@ -983,12 +1007,13 @@ rte_free_quick(rte *e) static int rte_same(rte *x, rte *y) { + /* rte.flags are not checked, as they are mostly internal to rtable */ return x->attrs == y->attrs && - x->flags == y->flags && x->pflags == y->pflags && x->pref == y->pref && - (!x->attrs->src->proto->rte_same || x->attrs->src->proto->rte_same(x, y)); + (!x->attrs->src->proto->rte_same || x->attrs->src->proto->rte_same(x, y)) && + rte_is_filtered(x) == rte_is_filtered(y); } static inline int rte_is_ok(rte *e) { return e && !rte_is_filtered(e); } @@ -1032,7 +1057,9 @@ rte_recalculate(struct channel *c, net *net, rte *new, struct rte_src *src) if (new && rte_same(old, new)) { - /* No changes, ignore the new route */ + /* No changes, ignore the new route and refresh the old one */ + + old->flags &= ~(REF_STALE | REF_DISCARD | REF_MODIFY); if (!rte_is_filtered(new)) { @@ -1346,7 +1373,10 @@ rte_update2(struct channel *c, const net_addr *n, rte *new, struct rte_src *src) rte_update_lock(); if (new) { - nn = net_get(c->table, n); + /* Create a temporary table node */ + nn = alloca(sizeof(net) + n->length); + memset(nn, 0, sizeof(net) + n->length); + net_copy(nn->n.addr, n); new->net = nn; new->sender = c; @@ -1397,6 +1427,10 @@ rte_update2(struct channel *c, const net_addr *n, rte *new, struct rte_src *src) if (!rta_is_cached(new->attrs)) /* Need to copy attributes */ new->attrs = rta_lookup(new->attrs); new->flags |= REF_COW; + + /* Use the actual struct network, not the dummy one */ + nn = net_get(c->table, n); + new->net = nn; } else { @@ -1411,16 +1445,21 @@ rte_update2(struct channel *c, const net_addr *n, rte *new, struct rte_src *src) } recalc: + /* And recalculate the best route */ rte_hide_dummy_routes(nn, &dummy); rte_recalculate(c, nn, new, src); rte_unhide_dummy_routes(nn, &dummy); + rte_update_unlock(); return; drop: rte_free(new); new = NULL; - goto recalc; + if (nn = net_find(c->table, n)) + goto recalc; + + rte_update_unlock(); } /* Independent call to rte_announce(), used from next hop @@ -1477,12 +1516,14 @@ rt_examine(rtable *t, net_addr *a, struct proto *p, struct filter *filter) rte_update_lock(); /* Rest is stripped down export_filter() */ - rte_make_tmp_attrs(&rt, rte_update_pool); int v = p->preexport ? p->preexport(p, &rt, rte_update_pool) : 0; if (v == RIC_PROCESS) + { + rte_make_tmp_attrs(&rt, rte_update_pool); v = (f_run(filter, &rt, rte_update_pool, FF_SILENT) <= F_ACCEPT); + } - /* Discard temporary rte */ + /* Discard temporary rte */ if (rt != n->routes) rte_free(rt); @@ -2324,7 +2365,16 @@ rte_update_in(struct channel *c, const net_addr *n, rte *new, struct rte_src *sr if (old->attrs->src == src) { if (new && rte_same(old, new)) + { + /* Refresh the old rte, continue with update to main rtable */ + if (old->flags & (REF_STALE | REF_DISCARD | REF_MODIFY)) + { + old->flags &= ~(REF_STALE | REF_DISCARD | REF_MODIFY); + return 1; + } + goto drop_update; + } /* Remove the old rte */ *pos = old->next; diff --git a/proto/bgp/bgp.c b/proto/bgp/bgp.c index 43f9f134..8dedde9f 100644 --- a/proto/bgp/bgp.c +++ b/proto/bgp/bgp.c @@ -1692,6 +1692,11 @@ bgp_channel_cleanup(struct channel *C) if (c->igp_table_ip6) rt_unlock_table(c->igp_table_ip6); + + c->index = 0; + + /* Cleanup rest of bgp_channel starting at pool field */ + memset(&(c->pool), 0, sizeof(struct bgp_channel) - OFFSETOF(struct bgp_channel, pool)); } static inline struct bgp_channel_config * diff --git a/proto/bgp/bgp.h b/proto/bgp/bgp.h index 2b60f90f..cfc88d8e 100644 --- a/proto/bgp/bgp.h +++ b/proto/bgp/bgp.h @@ -299,12 +299,16 @@ struct bgp_channel { /* Rest are BGP specific data */ struct bgp_channel_config *cf; - pool *pool; /* XXXX */ u32 afi; u32 index; const struct bgp_af_desc *desc; + rtable *igp_table_ip4; /* Table for recursive IPv4 next hop lookups */ + rtable *igp_table_ip6; /* Table for recursive IPv6 next hop lookups */ + + /* Rest are zeroed when down */ + pool *pool; HASH(struct bgp_bucket) bucket_hash; /* Hash table of route buckets */ struct bgp_bucket *withdraw_bucket; /* Withdrawn routes */ list bucket_queue; /* Queue of buckets to send (struct bgp_bucket) */ @@ -312,8 +316,6 @@ struct bgp_channel { HASH(struct bgp_prefix) prefix_hash; /* Prefixes to be sent */ slab *prefix_slab; /* Slab holding prefix nodes */ - rtable *igp_table_ip4; /* Table for recursive IPv4 next hop lookups */ - rtable *igp_table_ip6; /* Table for recursive IPv6 next hop lookups */ ip_addr next_hop_addr; /* Local address for NEXT_HOP attribute */ ip_addr link_addr; /* Link-local version of next_hop_addr */ diff --git a/proto/ospf/config.Y b/proto/ospf/config.Y index b89584e1..36fbd5f1 100644 --- a/proto/ospf/config.Y +++ b/proto/ospf/config.Y @@ -199,7 +199,7 @@ CF_KEYWORDS(ELIGIBLE, POLL, NETWORKS, HIDDEN, VIRTUAL, CHECK, LINK, ONLY, BFD) CF_KEYWORDS(RX, BUFFER, LARGE, NORMAL, STUBNET, HIDDEN, SUMMARY, TAG, EXTERNAL) CF_KEYWORDS(WAIT, DELAY, LSADB, ECMP, LIMIT, WEIGHT, NSSA, TRANSLATOR, STABILITY) CF_KEYWORDS(GLOBAL, LSID, ROUTER, SELF, INSTANCE, REAL, NETMASK, TX, PRIORITY, LENGTH) -CF_KEYWORDS(SECONDARY, MERGE, LSA, SUPPRESSION, MULTICAST, RFC5838) +CF_KEYWORDS(MERGE, LSA, SUPPRESSION, MULTICAST, RFC5838, VPN, PE) %type <ld> lsadb_args %type <i> ospf_variant ospf_af_mc nbma_eligible @@ -256,6 +256,7 @@ ospf_proto_item: | ospf_channel { this_proto->net_type = $1->net_type; } | RFC1583COMPAT bool { OSPF_CFG->rfc1583 = $2; } | RFC5838 bool { OSPF_CFG->af_ext = $2; if (!ospf_cfg_is_v3()) cf_error("RFC5838 option requires OSPFv3"); } + | VPN PE bool { OSPF_CFG->vpn_pe = $3; } | STUB ROUTER bool { OSPF_CFG->stub_router = $3; } | ECMP bool { OSPF_CFG->ecmp = $2 ? OSPF_DEFAULT_ECMP_LIMIT : 0; } | ECMP bool LIMIT expr { OSPF_CFG->ecmp = $2 ? $4 : 0; } diff --git a/proto/ospf/dbdes.c b/proto/ospf/dbdes.c index 019aff04..a1559782 100644 --- a/proto/ospf/dbdes.c +++ b/proto/ospf/dbdes.c @@ -127,7 +127,7 @@ ospf_prepare_dbdes(struct ospf_proto *p, struct ospf_neighbor *n) { struct ospf_dbdes2_packet *ps = (void *) pkt; ps->iface_mtu = htons(iface_mtu); - ps->options = ifa->oa->options; + ps->options = ifa->oa->options | OPT_O; ps->imms = 0; /* Will be set later */ ps->ddseq = htonl(n->dds); length = sizeof(struct ospf_dbdes2_packet); @@ -162,7 +162,8 @@ ospf_prepare_dbdes(struct ospf_proto *p, struct ospf_neighbor *n) } if ((en->lsa.age < LSA_MAXAGE) && - lsa_flooding_allowed(en->lsa_type, en->domain, ifa)) + lsa_flooding_allowed(en->lsa_type, en->domain, ifa) && + lsa_is_acceptable(en->lsa_type, n, p)) { lsa_hton_hdr(&(en->lsa), lsas + i); i++; @@ -237,6 +238,14 @@ ospf_rxmt_dbdes(struct ospf_proto *p, struct ospf_neighbor *n) ospf_do_send_dbdes(p, n); } +void +ospf_reset_ldd(struct ospf_proto *p UNUSED, struct ospf_neighbor *n) +{ + mb_free(n->ldd_buffer); + n->ldd_buffer = NULL; + n->ldd_bsize = 0; +} + static int ospf_process_dbdes(struct ospf_proto *p, struct ospf_packet *pkt, struct ospf_neighbor *n) { @@ -341,6 +350,16 @@ ospf_receive_dbdes(struct ospf_packet *pkt, struct ospf_iface *ifa, rcv_ddseq = ntohl(ps->ddseq); } + /* Reject packets with non-matching MTU */ + if ((ifa->type != OSPF_IT_VLINK) && + (rcv_iface_mtu != ifa->iface->mtu) && + (rcv_iface_mtu != 0) && (ifa->iface->mtu != 0)) + { + LOG_PKT("MTU mismatch with nbr %R on %s (remote %d, local %d)", + n->rid, ifa->ifname, rcv_iface_mtu, ifa->iface->mtu); + return; + } + switch (n->state) { case NEIGHBOR_DOWN: @@ -356,13 +375,6 @@ ospf_receive_dbdes(struct ospf_packet *pkt, struct ospf_iface *ifa, /* fallthrough */ case NEIGHBOR_EXSTART: - if ((ifa->type != OSPF_IT_VLINK) && - (rcv_iface_mtu != ifa->iface->mtu) && - (rcv_iface_mtu != 0) && - (ifa->iface->mtu != 0)) - LOG_PKT_WARN("MTU mismatch with nbr %R on %s (remote %d, local %d)", - n->rid, ifa->ifname, rcv_iface_mtu, ifa->iface->mtu); - if (((rcv_imms & DBDES_IMMS) == DBDES_IMMS) && (n->rid > p->router_id) && (plen == ospf_dbdes_hdrlen(p))) @@ -430,6 +442,7 @@ ospf_receive_dbdes(struct ospf_packet *pkt, struct ospf_iface *ifa, if (!(n->myimms & DBDES_M) && !(n->imms & DBDES_M)) { tm_stop(n->dbdes_timer); + ospf_reset_ldd(p, n); ospf_neigh_sm(n, INM_EXDONE); break; } @@ -453,7 +466,11 @@ ospf_receive_dbdes(struct ospf_packet *pkt, struct ospf_iface *ifa, ospf_send_dbdes(p, n); if (!(n->myimms & DBDES_M) && !(n->imms & DBDES_M)) + { + /* Use dbdes timer to postpone freeing of Last DBDES packet buffer */ + tm_start(n->dbdes_timer, n->ifa->deadint S); ospf_neigh_sm(n, INM_EXDONE); + } } break; diff --git a/proto/ospf/lsack.c b/proto/ospf/lsack.c index 251b5e47..9198dd92 100644 --- a/proto/ospf/lsack.c +++ b/proto/ospf/lsack.c @@ -106,6 +106,13 @@ ospf_send_lsack_(struct ospf_proto *p, struct ospf_neighbor *n, int queue) length = ospf_pkt_hdrlen(p) + i * sizeof(struct ospf_lsa_header); pkt->length = htons(length); + if (queue == ACKL_DIRECT) + { + OSPF_PACKET(ospf_dump_lsack, pkt, "LSACK packet sent to nbr %R on %s", n->rid, ifa->ifname); + ospf_send_to(ifa, n->ip); + return; + } + OSPF_PACKET(ospf_dump_lsack, pkt, "LSACK packet sent via %s", ifa->ifname); if (ifa->type == OSPF_IT_BCAST) diff --git a/proto/ospf/lsalib.c b/proto/ospf/lsalib.c index fbfd8d29..7ddf64e3 100644 --- a/proto/ospf/lsalib.c +++ b/proto/ospf/lsalib.c @@ -91,6 +91,30 @@ lsa_flooding_allowed(u32 type, u32 domain, struct ospf_iface *ifa) } } +int +lsa_is_acceptable(u32 type, struct ospf_neighbor *n, struct ospf_proto *p) +{ + if (ospf_is_v2(p)) + { + if (type == LSA_T_NSSA) + return !!(n->options & OPT_N); + + if (lsa_is_opaque(type)) + return !!(n->options & OPT_O); + + return 1; + } + else + { + /* + * There should be check whether receiving router understands that type + * of LSA (for LSA types with U-bit == 0). But as we do not support any + * optional LSA types, this is not needed yet. + */ + + return 1; + } +} static int unknown_lsa_type(u32 type) @@ -105,6 +129,9 @@ unknown_lsa_type(u32 type) case LSA_T_NSSA: case LSA_T_LINK: case LSA_T_PREFIX: + case LSA_T_RI_LINK: + case LSA_T_RI_AREA: + case LSA_T_RI_AS: return 0; default: @@ -112,28 +139,47 @@ unknown_lsa_type(u32 type) } } -#define LSA_V2_TMAX 8 -static const u16 lsa_v2_types[LSA_V2_TMAX] = - {0, LSA_T_RT, LSA_T_NET, LSA_T_SUM_NET, LSA_T_SUM_RT, LSA_T_EXT, 0, LSA_T_NSSA}; +/* Maps OSPFv2 types to OSPFv3 types */ +static const u16 lsa_v2_types[] = { + 0, LSA_T_RT, LSA_T_NET, LSA_T_SUM_NET, LSA_T_SUM_RT, LSA_T_EXT, 0, LSA_T_NSSA, + 0, LSA_T_OPAQUE_LINK, LSA_T_OPAQUE_AREA, LSA_T_OPAQUE_AS +}; + +/* Maps OSPFv2 opaque types to OSPFv3 function codes */ +static const u16 opaque_lsa_types[] = { + [LSA_OT_RI] = LSA_T_RI_, +}; + +/* Maps (subset of) OSPFv3 function codes to OSPFv2 opaque types */ +static const u8 opaque_lsa_types_inv[] = { + [LSA_T_RI_] = LSA_OT_RI, +}; + +#define LOOKUP(a, i) ({ uint _i = (i); (_i < ARRAY_SIZE(a)) ? a[_i] : 0; }) void -lsa_get_type_domain_(u32 itype, struct ospf_iface *ifa, u32 *otype, u32 *domain) +lsa_get_type_domain_(u32 type, u32 id, struct ospf_iface *ifa, u32 *otype, u32 *domain) { if (ospf_is_v2(ifa->oa->po)) { - itype = itype & LSA_T_V2_MASK; - itype = (itype < LSA_V2_TMAX) ? lsa_v2_types[itype] : 0; + type = type & LSA_T_V2_MASK; + type = LOOKUP(lsa_v2_types, type); + + uint code; + if (LSA_FUNCTION(type) == LSA_T_OPAQUE_) + if (code = LOOKUP(opaque_lsa_types, id >> 24)) + type = code | LSA_UBIT | LSA_SCOPE(type); } else { /* For unkown LSAs without U-bit change scope to LSA_SCOPE_LINK */ - if (unknown_lsa_type(itype) && !(itype & LSA_UBIT)) - itype = itype & ~LSA_SCOPE_MASK; + if (unknown_lsa_type(type) && !(type & LSA_UBIT)) + type = type & ~LSA_SCOPE_MASK; } - *otype = itype; + *otype = type; - switch (LSA_SCOPE(itype)) + switch (LSA_SCOPE(type)) { case LSA_SCOPE_LINK: *domain = ifa->iface_id; @@ -150,6 +196,12 @@ lsa_get_type_domain_(u32 itype, struct ospf_iface *ifa, u32 *otype, u32 *domain) } } +u32 +lsa_get_opaque_type(u32 type) +{ + return LOOKUP(opaque_lsa_types_inv, LSA_FUNCTION(type)); +} + void lsa_generate_checksum(struct ospf_lsa_header *lsa, const u8 *body) @@ -284,9 +336,10 @@ lsa_parse_sum_net(struct top_hash_entry *en, int ospf2, int af, net_addr *net, u { if (ospf2) { + uint opts = lsa_get_options(&en->lsa); struct ospf_lsa_sum2 *ls = en->lsa_body; net_fill_ip4(net, ip4_from_u32(en->lsa.id & ls->netmask), u32_masklen(ls->netmask)); - *pxopts = 0; + *pxopts = (opts & OPT_DN) ? OPT_PX_DN : 0; *metric = ls->metric & LSA_METRIC_MASK; } else @@ -334,6 +387,7 @@ lsa_parse_ext(struct top_hash_entry *en, int ospf2, int af, struct ospf_lsa_ext_ rt->tag = ext->tag; rt->propagate = lsa_get_options(&en->lsa) & OPT_P; + rt->downwards = lsa_get_options(&en->lsa) & OPT_DN; } else { @@ -350,6 +404,7 @@ lsa_parse_ext(struct top_hash_entry *en, int ospf2, int af, struct ospf_lsa_ext_ rt->tag = (ext->metric & LSA_EXT3_TBIT) ? *buf++ : 0; rt->propagate = rt->pxopts & OPT_PX_P; + rt->downwards = rt->pxopts & OPT_PX_DN; } } @@ -548,6 +603,17 @@ lsa_validate_prefix(struct ospf_lsa_header *lsa, struct ospf_lsa_prefix *body) return lsa_validate_pxlist(lsa, body->pxcount, sizeof(struct ospf_lsa_prefix), (u8 *) body); } +static int +lsa_validate_ri(struct ospf_lsa_header *lsa UNUSED, struct ospf_lsa_net *body UNUSED) +{ + /* + * There should be proper validation. But we do not really process RI LSAs, so + * we can just accept them like another unknown opaque LSAs. + */ + + return 1; +} + /** * lsa_validate - check whether given LSA is valid @@ -577,6 +643,14 @@ lsa_validate(struct ospf_lsa_header *lsa, u32 lsa_type, int ospf2, void *body) case LSA_T_EXT: case LSA_T_NSSA: return lsa_validate_ext2(lsa, body); + case LSA_T_RI_LINK: + case LSA_T_RI_AREA: + case LSA_T_RI_AS: + return lsa_validate_ri(lsa, body); + case LSA_T_OPAQUE_LINK: + case LSA_T_OPAQUE_AREA: + case LSA_T_OPAQUE_AS: + return 1; /* Unknown Opaque LSAs */ default: return 0; /* Should not happen, unknown LSAs are already rejected */ } @@ -600,6 +674,10 @@ lsa_validate(struct ospf_lsa_header *lsa, u32 lsa_type, int ospf2, void *body) return lsa_validate_link(lsa, body); case LSA_T_PREFIX: return lsa_validate_prefix(lsa, body); + case LSA_T_RI_LINK: + case LSA_T_RI_AREA: + case LSA_T_RI_AS: + return lsa_validate_ri(lsa, body); default: return 1; /* Unknown LSAs are OK in OSPFv3 */ } diff --git a/proto/ospf/lsalib.h b/proto/ospf/lsalib.h index fca7faec..af8901ce 100644 --- a/proto/ospf/lsalib.h +++ b/proto/ospf/lsalib.h @@ -36,16 +36,21 @@ struct ospf_lsa_rt_walk { }; -void lsa_get_type_domain_(u32 itype, struct ospf_iface *ifa, u32 *otype, u32 *domain); +void lsa_get_type_domain_(u32 type, u32 id, struct ospf_iface *ifa, u32 *otype, u32 *domain); static inline void lsa_get_type_domain(struct ospf_lsa_header *lsa, struct ospf_iface *ifa, u32 *otype, u32 *domain) -{ lsa_get_type_domain_(lsa->type_raw, ifa, otype, domain); } +{ lsa_get_type_domain_(lsa->type_raw, lsa->id, ifa, otype, domain); } static inline u32 lsa_get_etype(struct ospf_lsa_header *h, struct ospf_proto *p) { return ospf_is_v2(p) ? (h->type_raw & LSA_T_V2_MASK) : h->type_raw; } +/* Assuming OSPFv2 - All U-bit LSAs are mapped to Opaque LSAs */ +static inline int lsa_is_opaque(u32 type) +{ return !!(type & LSA_UBIT); } +u32 lsa_get_opaque_type(u32 type); int lsa_flooding_allowed(u32 type, u32 domain, struct ospf_iface *ifa); +int lsa_is_acceptable(u32 type, struct ospf_neighbor *n, struct ospf_proto *p); void lsa_generate_checksum(struct ospf_lsa_header *lsa, const u8 *body); u16 lsa_verify_checksum(const void *lsa_n, int lsa_len); diff --git a/proto/ospf/lsreq.c b/proto/ospf/lsreq.c index 657c0247..45af7533 100644 --- a/proto/ospf/lsreq.c +++ b/proto/ospf/lsreq.c @@ -125,7 +125,7 @@ ospf_receive_lsreq(struct ospf_packet *pkt, struct ospf_iface *ifa, id = ntohl(lsrs[i].id); rt = ntohl(lsrs[i].rt); - lsa_get_type_domain_(ntohl(lsrs[i].type), ifa, &type, &domain); + lsa_get_type_domain_(ntohl(lsrs[i].type), id, ifa, &type, &domain); DBG("Processing requested LSA: Type: %04x, Id: %R, Rt: %R\n", type, id, rt); diff --git a/proto/ospf/lsupd.c b/proto/ospf/lsupd.c index a98c9098..7318b751 100644 --- a/proto/ospf/lsupd.c +++ b/proto/ospf/lsupd.c @@ -171,7 +171,8 @@ ospf_add_flushed_to_lsrt(struct ospf_proto *p, struct ospf_neighbor *n) WALK_SLIST(en, p->lsal) if ((en->lsa.age == LSA_MAXAGE) && (en->lsa_body != NULL) && - lsa_flooding_allowed(en->lsa_type, en->domain, n->ifa)) + lsa_flooding_allowed(en->lsa_type, en->domain, n->ifa) && + lsa_is_acceptable(en->lsa_type, n, p)) ospf_lsa_lsrt_up(en, n); /* If we found any flushed LSA, we send them ASAP */ @@ -287,9 +288,9 @@ ospf_flood_lsa(struct ospf_proto *p, struct top_hash_entry *en, struct ospf_neig if (n == from) continue; - /* In OSPFv3, there should be check whether receiving router understand - that type of LSA (for LSA types with U-bit == 0). But as we do not support - any optional LSA types, this is not needed yet */ + /* Check whether optional LSAs are supported by neighbor */ + if (!lsa_is_acceptable(en->lsa_type, n, p)) + continue; /* 13.3 (1d) - add LSA to the link state retransmission list */ ospf_lsa_lsrt_up(en, n); diff --git a/proto/ospf/neighbor.c b/proto/ospf/neighbor.c index 7ce682b0..c143b130 100644 --- a/proto/ospf/neighbor.c +++ b/proto/ospf/neighbor.c @@ -176,8 +176,8 @@ ospf_neigh_chstate(struct ospf_neighbor *n, u8 state) if (state == NEIGHBOR_EXSTART) { - /* First time adjacency */ - if (n->adj == 0) + /* First time adjacency attempt */ + if (old_state < NEIGHBOR_EXSTART) n->dds = random_u32(); n->dds++; @@ -608,6 +608,12 @@ dbdes_timer_hook(timer *t) if ((n->state == NEIGHBOR_EXCHANGE) && (n->myimms & DBDES_MS)) ospf_rxmt_dbdes(p, n); + + if ((n->state > NEIGHBOR_LOADING) && !(n->myimms & DBDES_MS)) + { + ospf_reset_ldd(p, n); + tm_stop(n->dbdes_timer); + } } static void diff --git a/proto/ospf/ospf.c b/proto/ospf/ospf.c index a5e22269..ef2a0df4 100644 --- a/proto/ospf/ospf.c +++ b/proto/ospf/ospf.c @@ -92,11 +92,14 @@ * - RFC 2328 - main OSPFv2 standard * - RFC 5340 - main OSPFv3 standard * - RFC 3101 - OSPFv2 NSSA areas + * - RFC 4576 - OSPFv2 VPN loop prevention + * - RFC 5250 - OSPFv2 Opaque LSAs * - RFC 5709 - OSPFv2 HMAC-SHA Cryptographic Authentication * - RFC 5838 - OSPFv3 Support of Address Families * - RFC 6549 - OSPFv2 Multi-Instance Extensions * - RFC 6987 - OSPF Stub Router Advertisement * - RFC 7166 - OSPFv3 Authentication Trailer + * - RFC 7770 - OSPF Router Information LSA */ #include <stdlib.h> @@ -239,7 +242,9 @@ ospf_start(struct proto *P) p->rfc1583 = c->rfc1583; p->stub_router = c->stub_router; p->merge_external = c->merge_external; + p->instance_id = c->instance_id; p->asbr = c->asbr; + p->vpn_pe = c->vpn_pe; p->ecmp = c->ecmp; p->tick = c->tick; p->disp_timer = tm_new_init(P->pool, ospf_disp, p, p->tick S, 0); @@ -594,17 +599,25 @@ ospf_area_reconfigure(struct ospf_area *oa, struct ospf_area_config *nac) { struct ospf_proto *p = oa->po; struct ospf_area_config *oac = oa->ac; - struct ospf_iface *ifa; + struct ospf_iface *ifa, *ifx; oa->ac = nac; oa->options = nac->type | ospf_opts(p); if (nac->type != oac->type) { - /* Force restart of area interfaces */ - WALK_LIST(ifa, p->iface_list) + log(L_INFO "%s: Restarting area %R", p->p.name, oa->areaid); + + /* Remove area interfaces, will be re-added later */ + WALK_LIST_DELSAFE(ifa, ifx, p->iface_list) if (ifa->oa == oa) - ifa->marked = 2; + { + ospf_iface_shutdown(ifa); + ospf_iface_remove(ifa); + } + + /* Flush area LSAs */ + ospf_flush_area(p, oa->areaid); } /* Handle net_list */ @@ -634,7 +647,7 @@ ospf_reconfigure(struct proto *P, struct proto_config *CF) struct ospf_proto *p = (struct ospf_proto *) P; struct ospf_config *old = (struct ospf_config *) (P->cf); struct ospf_config *new = (struct ospf_config *) CF; - struct ospf_area_config *nac; + struct ospf_area_config *oac, *nac; struct ospf_area *oa, *oax; struct ospf_iface *ifa, *ifx; struct ospf_iface_patt *ip; @@ -648,9 +661,24 @@ ospf_reconfigure(struct proto *P, struct proto_config *CF) if (p->rfc1583 != new->rfc1583) return 0; + if (p->instance_id != new->instance_id) + return 0; + if (old->abr != new->abr) return 0; + if (p->areano == 1) + { + oac = HEAD(old->area_list); + nac = HEAD(new->area_list); + + if (oac->type != nac->type) + return 0; + } + + if (old->vpn_pe != new->vpn_pe) + return 0; + if ((p->af_ext != new->af_ext) || (p->af_mc != new->af_mc)) return 0; @@ -663,7 +691,7 @@ ospf_reconfigure(struct proto *P, struct proto_config *CF) p->ecmp = new->ecmp; p->tick = new->tick; p->disp_timer->recurrent = p->tick S; - tm_start(p->disp_timer, 100 MS); + tm_start(p->disp_timer, 10 MS); /* Mark all areas and ifaces */ WALK_LIST(oa, p->area_list) diff --git a/proto/ospf/ospf.h b/proto/ospf/ospf.h index ff55621a..7fac47c8 100644 --- a/proto/ospf/ospf.h +++ b/proto/ospf/ospf.h @@ -96,6 +96,7 @@ struct ospf_config u8 instance_id_set; u8 abr; u8 asbr; + u8 vpn_pe; int ecmp; list area_list; /* list of area configs (struct ospf_area_config) */ list vlink_list; /* list of configured vlinks (struct ospf_iface_patt) */ @@ -223,7 +224,9 @@ struct ospf_proto u8 rfc1583; /* RFC1583 compatibility */ u8 stub_router; /* Do not forward transit traffic */ u8 merge_external; /* Should i merge external routes? */ + u8 instance_id; /* Differentiate between more OSPF instances */ u8 asbr; /* May i originate any ext/NSSA lsa? */ + u8 vpn_pe; /* Should we do VPN PE specific behavior (RFC 4577)? */ u8 ecmp; /* Maximal number of nexthops in ECMP route, or 0 */ u64 csn64; /* Last used cryptographic sequence number */ struct ospf_area *backbone; /* If exists */ @@ -352,7 +355,6 @@ struct ospf_neighbor u32 rid; /* Router ID */ ip_addr ip; /* IP of it's interface */ u8 priority; /* Priority */ - u8 adj; /* built adjacency? */ u32 options; /* Options received */ /* Entries dr and bdr store IP addresses in OSPFv2 and router IDs in @@ -466,6 +468,8 @@ struct ospf_neighbor #define OPT_L_V2 0x0010 /* OSPFv2, link-local signaling, not used */ #define OPT_R 0x0010 /* OSPFv3, originator is active router */ #define OPT_DC 0x0020 /* Related to demand circuits, not used */ +#define OPT_O 0x0040 /* OSPFv2 Opaque LSA (RFC 5250) */ +#define OPT_DN 0x0080 /* OSPFv2 VPN loop prevention (RFC 4576)*/ #define OPT_AF 0x0100 /* OSPFv3 Address Families (RFC 5838) */ #define OPT_L_V3 0x0200 /* OSPFv3, link-local signaling */ #define OPT_AT 0x0400 /* OSPFv3, authentication trailer */ @@ -541,25 +545,44 @@ struct ospf_auth3 #define DBDES_IMMS (DBDES_I | DBDES_M | DBDES_MS) -#define LSA_T_RT 0x2001 -#define LSA_T_NET 0x2002 -#define LSA_T_SUM_NET 0x2003 -#define LSA_T_SUM_RT 0x2004 -#define LSA_T_EXT 0x4005 -#define LSA_T_NSSA 0x2007 -#define LSA_T_LINK 0x0008 -#define LSA_T_PREFIX 0x2009 - -#define LSA_T_V2_MASK 0x00ff - -#define LSA_UBIT 0x8000 - -#define LSA_SCOPE_LINK 0x0000 -#define LSA_SCOPE_AREA 0x2000 -#define LSA_SCOPE_AS 0x4000 -#define LSA_SCOPE_RES 0x6000 -#define LSA_SCOPE_MASK 0x6000 -#define LSA_SCOPE(type) ((type) & LSA_SCOPE_MASK) +/* OSPFv3 LSA Types / LSA Function Codes */ +/* https://www.iana.org/assignments/ospfv3-parameters/ospfv3-parameters.xhtml#ospfv3-parameters-3 */ +#define LSA_T_RT 0x2001 +#define LSA_T_NET 0x2002 +#define LSA_T_SUM_NET 0x2003 +#define LSA_T_SUM_RT 0x2004 +#define LSA_T_EXT 0x4005 +#define LSA_T_NSSA 0x2007 +#define LSA_T_LINK 0x0008 +#define LSA_T_PREFIX 0x2009 +#define LSA_T_RI_ 0x000C +#define LSA_T_RI_LINK 0x800C +#define LSA_T_RI_AREA 0xA00C +#define LSA_T_RI_AS 0xC00C +#define LSA_T_OPAQUE_ 0x1FFF +#define LSA_T_OPAQUE_LINK 0x9FFF +#define LSA_T_OPAQUE_AREA 0xBFFF +#define LSA_T_OPAQUE_AS 0xDFFF + +#define LSA_T_V2_OPAQUE_ 0x0009 +#define LSA_T_V2_MASK 0x00ff + +/* OSPFv2 Opaque LSA Types */ +/* https://www.iana.org/assignments/ospf-opaque-types/ospf-opaque-types.xhtml#ospf-opaque-types-2 */ +#define LSA_OT_RI 0x04 + +#define LSA_FUNCTION_MASK 0x1FFF +#define LSA_FUNCTION(type) ((type) & LSA_FUNCTION_MASK) + +#define LSA_UBIT 0x8000 + +#define LSA_SCOPE_LINK 0x0000 +#define LSA_SCOPE_AREA 0x2000 +#define LSA_SCOPE_AS 0x4000 +#define LSA_SCOPE_RES 0x6000 +#define LSA_SCOPE_MASK 0x6000 +#define LSA_SCOPE(type) ((type) & LSA_SCOPE_MASK) +#define LSA_SCOPE_ORDER(type) (((type) >> 13) & 0x3) #define LSA_MAXAGE 3600 /* 1 hour */ @@ -586,9 +609,20 @@ struct ospf_auth3 #define LSA_EXT2_TOS 0x7F000000 #define LSA_EXT2_EBIT 0x80000000 -#define LSA_EXT3_EBIT 0x4000000 -#define LSA_EXT3_FBIT 0x2000000 -#define LSA_EXT3_TBIT 0x1000000 +#define LSA_EXT3_EBIT 0x04000000 +#define LSA_EXT3_FBIT 0x02000000 +#define LSA_EXT3_TBIT 0x01000000 + +/* OSPF Router Information (RI) TLVs */ +/* https://www.iana.org/assignments/ospf-parameters/ospf-parameters.xhtml#ri-tlv */ +#define LSA_RI_RIC 1 +#define LSA_RI_RFC 2 + +/* OSPF Router Informational Capability Bits */ +/* https://www.iana.org/assignments/ospf-parameters/ospf-parameters.xhtml#router-informational-capability */ +#define LSA_RIC_GR_CAPABLE 0 +#define LSA_RIC_GR_HELPER 1 +#define LSA_RIC_STUB_ROUTER 2 struct ospf_lsa_header @@ -705,7 +739,7 @@ struct ospf_lsa_ext_local { net_addr net; ip_addr fwaddr; - u32 metric, ebit, fbit, tag, propagate; + u32 metric, ebit, fbit, tag, propagate, downwards; u8 pxopts; }; @@ -731,6 +765,18 @@ struct ospf_lsa_prefix u32 rest[]; }; +struct ospf_tlv +{ +#ifdef CPU_BIG_ENDIAN + u16 type; + u16 length; +#else + u16 length; + u16 type; +#endif + u32 data[]; +}; + static inline uint lsa_net_count(struct ospf_lsa_header *lsa) @@ -998,6 +1044,7 @@ uint ospf_hello3_options(struct ospf_packet *pkt); /* dbdes.c */ void ospf_send_dbdes(struct ospf_proto *p, struct ospf_neighbor *n); void ospf_rxmt_dbdes(struct ospf_proto *p, struct ospf_neighbor *n); +void ospf_reset_ldd(struct ospf_proto *p, struct ospf_neighbor *n); void ospf_receive_dbdes(struct ospf_packet *pkt, struct ospf_iface *ifa, struct ospf_neighbor *n); uint ospf_dbdes3_options(struct ospf_packet *pkt); diff --git a/proto/ospf/rt.c b/proto/ospf/rt.c index 4549ce2a..c580d06e 100644 --- a/proto/ospf/rt.c +++ b/proto/ospf/rt.c @@ -782,6 +782,10 @@ ospf_rt_sum(struct ospf_area *oa) if (pxopts & OPT_PX_NU) continue; + /* RFC 4576 4 - do not use LSAs with DN-bit on PE-routers */ + if (p->vpn_pe && (pxopts & OPT_PX_DN)) + continue; + options = 0; type = ORT_NET; } @@ -879,6 +883,10 @@ ospf_rt_sum_tr(struct ospf_area *oa) if (pxopts & OPT_PX_NU) continue; + /* RFC 4576 4 - do not use LSAs with DN-bit on PE-routers */ + if (p->vpn_pe && (pxopts & OPT_PX_DN)) + continue; + re = fib_find(&p->rtf, &net); } else // en->lsa_type == LSA_T_SUM_RT @@ -1104,11 +1112,11 @@ check_nssa_lsa(struct ospf_proto *p, ort *nf) /* RFC 3101 3.2 (3) - originate the aggregated address range */ if (anet && anet->active && !anet->hidden && oa->translate) ospf_originate_ext_lsa(p, NULL, nf, LSA_M_RTCALC, anet->metric, - (anet->metric & LSA_EXT3_EBIT), IPA_NONE, anet->tag, 0); + (anet->metric & LSA_EXT3_EBIT), IPA_NONE, anet->tag, 0, 0); /* RFC 3101 3.2 (2) - originate the same network */ else if (decide_nssa_lsa(p, nf, &rt)) - ospf_originate_ext_lsa(p, NULL, nf, LSA_M_RTCALC, rt.metric, rt.ebit, rt.fwaddr, rt.tag, 0); + ospf_originate_ext_lsa(p, NULL, nf, LSA_M_RTCALC, rt.metric, rt.ebit, rt.fwaddr, rt.tag, 0, 0); } /* RFC 2328 16.7. p2 - find new/lost vlink endpoints */ @@ -1238,7 +1246,7 @@ ospf_rt_abr1(struct ospf_proto *p) if (oa_is_nssa(oa) && oa->ac->default_nssa) ospf_originate_ext_lsa(p, oa, default_nf, LSA_M_RTCALC, oa->ac->default_cost, - (oa->ac->default_cost & LSA_EXT3_EBIT), IPA_NONE, 0, 0); + (oa->ac->default_cost & LSA_EXT3_EBIT), IPA_NONE, 0, 0, 0); /* RFC 2328 16.4. (3) - precompute preferred ASBR entries */ if (oa_is_ext(oa)) @@ -1474,6 +1482,10 @@ ospf_ext_spf(struct ospf_proto *p) if (rt.pxopts & OPT_PX_NU) continue; + /* RFC 4576 4 - do not use LSAs with DN-bit on PE-routers */ + if (p->vpn_pe && rt.downwards) + continue; + /* 16.4. (3) */ /* If there are more areas, we already precomputed preferred ASBR entries in ospf_rt_abr1() and stored them in the backbone diff --git a/proto/ospf/topology.c b/proto/ospf/topology.c index e58f1375..7d5deca0 100644 --- a/proto/ospf/topology.c +++ b/proto/ospf/topology.c @@ -224,12 +224,17 @@ ospf_do_originate_lsa(struct ospf_proto *p, struct top_hash_entry *en, void *lsa /* * lsa.type_raw is initialized by ospf_hash_get() to OSPFv3 LSA type. * lsa_set_options() implicitly converts it to OSPFv2 LSA type, assuming that - * old type is just new type masked by 0xff. That is not universally true, - * but it holds for all OSPFv2 types currently supported by BIRD. + * old type is just new type masked by 0xff. That holds for most OSPFv2 types, + * but we have to fix it for opaque LSAs. */ if (ospf_is_v2(p)) + { + if (lsa_is_opaque(en->lsa_type)) + en->lsa.type_raw = LSA_T_V2_OPAQUE_ + LSA_SCOPE_ORDER(en->lsa_type); + lsa_set_options(&en->lsa, lsa_opts); + } mb_free(en->lsa_body); en->lsa_body = lsa_body; @@ -273,6 +278,10 @@ ospf_originate_lsa(struct ospf_proto *p, struct ospf_new_lsa *lsa) u16 lsa_blen = p->lsab_used; u16 lsa_length = sizeof(struct ospf_lsa_header) + lsa_blen; + /* For OSPFv2 Opaque LSAs, LS ID consists of Opaque Type and Opaque ID */ + if (ospf_is_v2(p) && lsa_is_opaque(lsa->type)) + lsa->id |= (u32) lsa_get_opaque_type(lsa->type) << 24; + en = ospf_hash_get(p->gr, lsa->dom, lsa->id, p->router_id, lsa->type); if (!SNODE_VALID(en)) @@ -1088,7 +1097,7 @@ prepare_ext2_lsa_body(struct ospf_proto *p, uint pxlen, static inline void prepare_ext3_lsa_body(struct ospf_proto *p, ort *nf, - u32 metric, u32 ebit, ip_addr fwaddr, u32 tag, int pbit) + u32 metric, u32 ebit, ip_addr fwaddr, u32 tag, int pbit, int dn) { struct ospf_lsa_ext3 *ext; int bsize = sizeof(struct ospf_lsa_ext3) @@ -1100,7 +1109,8 @@ prepare_ext3_lsa_body(struct ospf_proto *p, ort *nf, ext->metric = metric & LSA_METRIC_MASK; u32 *buf = ext->rest; - buf = ospf3_put_prefix(buf, nf->fn.addr, pbit ? OPT_PX_P : 0, 0); + uint flags = (pbit ? OPT_PX_P : 0) | (dn ? OPT_PX_DN : 0); + buf = ospf3_put_prefix(buf, nf->fn.addr, flags, 0); if (ebit) ext->metric |= LSA_EXT3_EBIT; @@ -1138,21 +1148,21 @@ prepare_ext3_lsa_body(struct ospf_proto *p, ort *nf, */ void ospf_originate_ext_lsa(struct ospf_proto *p, struct ospf_area *oa, ort *nf, u8 mode, - u32 metric, u32 ebit, ip_addr fwaddr, u32 tag, int pbit) + u32 metric, u32 ebit, ip_addr fwaddr, u32 tag, int pbit, int dn) { struct ospf_new_lsa lsa = { .type = oa ? LSA_T_NSSA : LSA_T_EXT, .mode = mode, /* LSA_M_EXPORT or LSA_M_RTCALC */ .dom = oa ? oa->areaid : 0, .id = ort_to_lsaid(p, nf), - .opts = oa ? (pbit ? OPT_P : 0) : OPT_E, + .opts = (oa ? (pbit ? OPT_P : 0) : OPT_E) | (dn ? OPT_DN : 0), .nf = nf }; if (ospf_is_v2(p)) prepare_ext2_lsa_body(p, nf->fn.addr->pxlen, metric, ebit, fwaddr, tag); else - prepare_ext3_lsa_body(p, nf, metric, ebit, fwaddr, tag, oa && pbit); + prepare_ext3_lsa_body(p, nf, metric, ebit, fwaddr, tag, oa && pbit, dn); ospf_originate_lsa(p, &lsa); } @@ -1328,7 +1338,7 @@ ospf_rt_notify(struct proto *P, struct channel *ch UNUSED, net *n, rte *new, rte } nf = fib_get(&p->rtf, n->n.addr); - ospf_originate_ext_lsa(p, oa, nf, LSA_M_EXPORT, metric, ebit, fwd, tag, 1); + ospf_originate_ext_lsa(p, oa, nf, LSA_M_EXPORT, metric, ebit, fwd, tag, 1, p->vpn_pe); nf->external_rte = 1; } @@ -1658,6 +1668,41 @@ ospf_originate_prefix_net_lsa(struct ospf_proto *p, struct ospf_iface *ifa) ifa->pxn_lsa = ospf_originate_lsa(p, &lsa); } + +/* + * Router Information LSA handling + * Type = LSA_T_RI_AREA, opaque type = LSA_OT_RI + */ + +void +ospf_add_ric_tlv(struct ospf_proto *p) +{ + struct ospf_tlv *ri = lsab_allocz(p, sizeof(struct ospf_tlv) + sizeof(u32)); + ri->type = LSA_RI_RIC; + ri->length = sizeof(struct ospf_tlv) + sizeof(u32); + + BIT32R_SET(ri->data, LSA_RIC_STUB_ROUTER); +} + +void +ospf_originate_ri_lsa(struct ospf_proto *p, struct ospf_area *oa) +{ + struct ospf_new_lsa lsa = { + .type = LSA_T_RI_AREA, + .dom = oa->areaid, + .id = p->instance_id + }; + + ospf_add_ric_tlv(p); + + ospf_originate_lsa(p, &lsa); +} + + +/* + * Generic topology code + */ + static inline int breaks_minlsinterval(struct top_hash_entry *en) { return en && (en->lsa.age < LSA_MAXAGE) && (lsa_inst_age(en) < MINLSINTERVAL); } @@ -1692,6 +1737,7 @@ ospf_update_topology(struct ospf_proto *p) ospf_originate_rt_lsa(p, oa); ospf_originate_prefix_rt_lsa(p, oa); + // ospf_originate_ri_lsa(p, oa); oa->update_rt_lsa = 0; } } diff --git a/proto/ospf/topology.h b/proto/ospf/topology.h index 54ec9ccf..fd70239d 100644 --- a/proto/ospf/topology.h +++ b/proto/ospf/topology.h @@ -186,7 +186,7 @@ static inline void ospf_flush2_lsa(struct ospf_proto *p, struct top_hash_entry * void ospf_originate_sum_net_lsa(struct ospf_proto *p, struct ospf_area *oa, ort *nf, int metric); void ospf_originate_sum_rt_lsa(struct ospf_proto *p, struct ospf_area *oa, u32 drid, int metric, u32 options); -void ospf_originate_ext_lsa(struct ospf_proto *p, struct ospf_area *oa, ort *nf, u8 mode, u32 metric, u32 ebit, ip_addr fwaddr, u32 tag, int pbit); +void ospf_originate_ext_lsa(struct ospf_proto *p, struct ospf_area *oa, ort *nf, u8 mode, u32 metric, u32 ebit, ip_addr fwaddr, u32 tag, int pbit, int dn); void ospf_rt_notify(struct proto *P, struct channel *ch, net *n, rte *new, rte *old); void ospf_update_topology(struct ospf_proto *p); diff --git a/proto/perf/config.Y b/proto/perf/config.Y index 617b2233..60a96c11 100644 --- a/proto/perf/config.Y +++ b/proto/perf/config.Y @@ -38,6 +38,7 @@ perf_proto_start: proto_start PERF perf_proto: perf_proto_start proto_name '{' | perf_proto perf_proto_item ';' + | perf_proto proto_item ';' ; perf_proto_item: diff --git a/proto/perf/perf.c b/proto/perf/perf.c index 6741f7cb..8412254a 100644 --- a/proto/perf/perf.c +++ b/proto/perf/perf.c @@ -29,7 +29,7 @@ #include <stdlib.h> #include <time.h> -#define PLOG(msg, ...) log(L_INFO "Perf %s " msg, p->p.name, ##__VA_ARGS__) +#define PLOG(msg, ...) log(L_INFO "Perf %s %s " msg, BIRD_VERSION, p->p.name, ##__VA_ARGS__) static inline void random_data(void *p, uint len) @@ -206,6 +206,7 @@ perf_loop(void *data) p->exp++; } + rt_schedule_prune(P->main_channel->table); ev_schedule(p->loop); } diff --git a/sysdep/config.h b/sysdep/config.h index 96db1e7d..ab5f12a6 100644 --- a/sysdep/config.h +++ b/sysdep/config.h @@ -13,7 +13,7 @@ #ifdef GIT_LABEL #define BIRD_VERSION XSTR1(GIT_LABEL) #else -#define BIRD_VERSION "2.0.3" +#define BIRD_VERSION "2.0.4" #endif /* Include parameters determined by configure script */ |